diff options
| -rw-r--r-- | common/cmd_pxe.c | 15 | ||||
| -rw-r--r-- | doc/README.pxe | 3 | 
2 files changed, 14 insertions, 4 deletions
| diff --git a/common/cmd_pxe.c b/common/cmd_pxe.c index 8d2c1e866..0fc863b22 100644 --- a/common/cmd_pxe.c +++ b/common/cmd_pxe.c @@ -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)  {  	struct token t; +	int len;  	char *s = *c;  	struct pxe_label *label;  	int err; @@ -1033,10 +1034,22 @@ static int parse_label(char **c, struct pxe_menu *cfg)  		case T_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;  		case T_INITRD: -			err = parse_sliteral(c, &label->initrd); +			if (!label->initrd) +				err = parse_sliteral(c, &label->initrd);  			break;  		case T_LOCALBOOT: diff --git a/doc/README.pxe b/doc/README.pxe index 95cd9b90d..2bbf53d95 100644 --- a/doc/README.pxe +++ b/doc/README.pxe @@ -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    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    could be extended to support multiple. |