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
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;
int i;
param = strchr(path, ' ');
if (param) {
@@ -237,7 +241,8 @@ newworld_boot( void )
param = pop_fstr_copy();
}
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 {
uint16_t boot_device = fw_cfg_read_i16(FW_CFG_BOOT_DEVICE);
switch (boot_device) {
@@ -249,12 +254,14 @@ newworld_boot( void )
path = strdup("cd:");
break;
}
try_path(path, chrp_path, param);
for (i = 0; chrp_path[i]; i++)
try_path(path, chrp_path[i], param);
}
} else {
NEWWORLD_DPRINTF("Entering boot, path %s\n", path);
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");
}