mirror of
https://gitlab.com/qemu-project/openbios.git
synced 2024-02-13 08:34:06 +08:00
The Solaris 9 Fcode boot block relies on the assumption that Sun's OpenBOOT would always interpose /packages/ufs-file-system if
it existed when opening a disk device. Emulate this behaviour in order to fix Solaris 9 boot. With thanks to Tarl for pointing me in the right direction. Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@siriusit.co.uk> git-svn-id: svn://coreboot.org/openbios/trunk/openbios-devel@857 f158a5a8-5612-0410-a976-696ce0be7e32
This commit is contained in:
committed by
Mark Cave-Ayland
parent
bb488d3045
commit
6532c83e1f
@@ -220,6 +220,20 @@ sunparts_open( sunparts_info_t *di )
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
DPRINTF("sun-parts: no filesystem found; bypassing misc-files interpose\n");
|
DPRINTF("sun-parts: no filesystem found; bypassing misc-files interpose\n");
|
||||||
|
|
||||||
|
/* Solaris Fcode boot blocks assume that the disk-label package will always
|
||||||
|
automatically interpose the "ufs-file-system" package if it exists! We
|
||||||
|
need to mimic this behaviour in order for the boot to work. */
|
||||||
|
push_str("ufs-file-system");
|
||||||
|
feval("find-package");
|
||||||
|
ph = POP_ph();
|
||||||
|
|
||||||
|
if (ph) {
|
||||||
|
ph = POP_ph();
|
||||||
|
push_str(argstr);
|
||||||
|
PUSH_ph(ph);
|
||||||
|
fword("interpose");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
free( str );
|
free( str );
|
||||||
|
|||||||
Reference in New Issue
Block a user