Author: mcayland Date: Sun Aug 22 23:29:25 2010 New Revision: 857 URL: http://tracker.coreboot.org/trac/openbios/changeset/857
Log: 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
Modified: trunk/openbios-devel/packages/sun-parts.c
Modified: trunk/openbios-devel/packages/sun-parts.c ============================================================================== --- trunk/openbios-devel/packages/sun-parts.c Sun Aug 22 23:23:19 2010 (r856) +++ trunk/openbios-devel/packages/sun-parts.c Sun Aug 22 23:29:25 2010 (r857) @@ -220,6 +220,20 @@ } } else { 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 );