mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 08:42:12 +02:00
pxe: parse initrd file from append string
For syslinux, the initrd can be set in the append string as "initrd=<file>", so try to find it there if we haven't already set the initrd. Signed-off-by: Rob Herring <rob.herring@calxeda.com>
This commit is contained in:
committed by
Wolfgang Denk
parent
90ba7d7c44
commit
34bd23e42f
@@ -999,6 +999,7 @@ static int parse_label_menu(char **c, struct pxe_menu *cfg,
|
|||||||
static int parse_label(char **c, struct pxe_menu *cfg)
|
static int parse_label(char **c, struct pxe_menu *cfg)
|
||||||
{
|
{
|
||||||
struct token t;
|
struct token t;
|
||||||
|
int len;
|
||||||
char *s = *c;
|
char *s = *c;
|
||||||
struct pxe_label *label;
|
struct pxe_label *label;
|
||||||
int err;
|
int err;
|
||||||
@@ -1033,10 +1034,22 @@ static int parse_label(char **c, struct pxe_menu *cfg)
|
|||||||
|
|
||||||
case T_APPEND:
|
case T_APPEND:
|
||||||
err = parse_sliteral(c, &label->append);
|
err = parse_sliteral(c, &label->append);
|
||||||
|
if (label->initrd)
|
||||||
|
break;
|
||||||
|
s = strstr(label->append, "initrd=");
|
||||||
|
if (!s)
|
||||||
|
break;
|
||||||
|
s += 7;
|
||||||
|
len = (int)(strchr(s, ' ') - s);
|
||||||
|
label->initrd = malloc(len + 1);
|
||||||
|
strncpy(label->initrd, s, len);
|
||||||
|
label->initrd[len] = '\0';
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case T_INITRD:
|
case T_INITRD:
|
||||||
err = parse_sliteral(c, &label->initrd);
|
if (!label->initrd)
|
||||||
|
err = parse_sliteral(c, &label->initrd);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case T_LOCALBOOT:
|
case T_LOCALBOOT:
|
||||||
|
@@ -224,9 +224,6 @@ PXELINUX and U-boot's pxe support.
|
|||||||
- U-boot's pxe expects U-boot uimg's as kernels. Anything that would work
|
- U-boot's pxe expects U-boot uimg's as kernels. Anything that would work
|
||||||
with the 'bootm' command in U-boot could work with the 'pxe boot' command.
|
with the 'bootm' command in U-boot could work with the 'pxe boot' command.
|
||||||
|
|
||||||
- U-boot's pxe doesn't recognize initrd options in the append command - you
|
|
||||||
must specify initrd files using the initrd command.
|
|
||||||
|
|
||||||
- U-boot's pxe only recognizes a single file on the initrd command line. It
|
- U-boot's pxe only recognizes a single file on the initrd command line. It
|
||||||
could be extended to support multiple.
|
could be extended to support multiple.
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user