ppc: if "\\:tbxi" (mac) fails, try "ppc\bootinfo.txt" (chrp).

This is needed to load the bootloader of OpenBSD.

Signed-off-by: Laurent Vivier <Laurent@vivier.eu>


git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@590 f158a5a8-5612-0410-a976-696ce0be7e32
This commit is contained in:
Laurent Vivier
2009-10-19 23:02:10 +00:00
parent 6e47ae9e09
commit b9486926d9

View File

@@ -205,8 +205,12 @@ oldworld_boot( void )
static void static void
newworld_boot( void ) newworld_boot( void )
{ {
static const char * const chrp_path = "\\\\:tbxi" ; static const char * const chrp_path[] = { "\\\\:tbxi",
"ppc\\bootinfo.txt",
NULL
};
char *path = pop_fstr_copy(), *param; char *path = pop_fstr_copy(), *param;
int i;
param = strchr(path, ' '); param = strchr(path, ' ');
if (param) { if (param) {
@@ -237,7 +241,8 @@ newworld_boot( void )
param = pop_fstr_copy(); param = pop_fstr_copy();
} }
try_path(path, NULL, param); try_path(path, NULL, param);
try_path(path, chrp_path, param); for (i = 0; chrp_path[i]; i++)
try_path(path, chrp_path[i], param);
} else { } else {
uint16_t boot_device = fw_cfg_read_i16(FW_CFG_BOOT_DEVICE); uint16_t boot_device = fw_cfg_read_i16(FW_CFG_BOOT_DEVICE);
switch (boot_device) { switch (boot_device) {
@@ -249,12 +254,14 @@ newworld_boot( void )
path = strdup("cd:"); path = strdup("cd:");
break; break;
} }
try_path(path, chrp_path, param); for (i = 0; chrp_path[i]; i++)
try_path(path, chrp_path[i], param);
} }
} else { } else {
NEWWORLD_DPRINTF("Entering boot, path %s\n", path); NEWWORLD_DPRINTF("Entering boot, path %s\n", path);
try_path(path, NULL, param); try_path(path, NULL, param);
try_path(path, chrp_path, param); for (i = 0; chrp_path[i]; i++)
try_path(path, chrp_path[i], param);
} }
printk("*** Boot failure! No secondary bootloader specified ***\n"); printk("*** Boot failure! No secondary bootloader specified ***\n");
} }