mirror of
https://gitlab.com/qemu-project/openbios.git
synced 2024-02-13 08:34:06 +08:00
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:
@@ -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");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user