pxe: try bootz if bootm fails to find a valid image

Standard pxelinux servers will typically use a zImage rather than u-boot
image format, so fallback to bootz if bootm fails.

Signed-off-by: Rob Herring <rob.herring@calxeda.com>
master
Rob Herring 12 years ago committed by Joe Hershberger
parent da620222f8
commit e6b6ccf203
  1. 11
      common/cmd_pxe.c

@ -579,6 +579,7 @@ static int label_localboot(struct pxe_label *label)
static int label_boot(struct pxe_label *label)
{
char *bootm_argv[] = { "bootm", NULL, NULL, NULL, NULL };
char initrd_str[22];
int bootm_argc = 3;
label_print(label);
@ -604,7 +605,10 @@ static int label_boot(struct pxe_label *label)
return 1;
}
bootm_argv[2] = getenv("ramdisk_addr_r");
bootm_argv[2] = initrd_str;
strcpy(bootm_argv[2], getenv("ramdisk_addr_r"));
strcat(bootm_argv[2], ":");
strcat(bootm_argv[2], getenv("filesize"));
} else {
bootm_argv[2] = "-";
}
@ -649,6 +653,11 @@ static int label_boot(struct pxe_label *label)
bootm_argc = 4;
do_bootm(NULL, 0, bootm_argc, bootm_argv);
#ifdef CONFIG_CMD_BOOTZ
/* Try booting a zImage if do_bootm returns */
do_bootz(NULL, 0, bootm_argc, bootm_argv);
#endif
return 1;
}

Loading…
Cancel
Save