2010/8/4 Blue Swirl blauwirbel@gmail.com:
On Wed, Aug 4, 2010 at 10:32 AM, Mark Cave-Ayland mark.cave-ayland@siriusit.co.uk wrote:
repository service wrote:
Log: sparc32: fix pre-loaded kernel command line
Fix more breakage from r828:
For some reason, QEMU/Sparc32 does not set FW_CFG_CMDLINE_SIZE, so we have to use FW_CFG_KERNEL_CMDLINE instead.
Setup romvec obp_arg.argv[1] and "boot-file" property.
Remove obsolete command line setup code from obio.c.
Looks good to me.
Just for the record, with r828 the way that bootpath/bootargs should now work is as follows:
- All Qemu configuration should now take place in the arch_init() (or
equivalent) function only
- arch_init() should read the Qemu firmware device and setup the NVRAM
variables boot-device and boot-file (boot-device can now take a list of space-separated devices to search - see ppc/qemu for an example of this)
- Everything else is now magically handled by Forth in (encode-bootpath)
based upon the following rules from the IEEE-1275 spec:
- If either "load" or "boot" are issued on their own, search through each boot-device in order until open returns a valid ihandle, then load/boot from this. bootargs is set to the contents of boot-file.
Does not work: Trying cdrom... Not a bootable ELF image Not a bootable a.out image No valid state has been set by load or init-program
0 > printenv name "options" boot-from "disk" boot-args "" boot-device "cdrom cdrom:d" use-generic? "false" boot-script "" boot-screen "" ttyb-rts-dtr-off "false" ttyb-ignore-cd "true" ttyb-mode "9600,8,n,1,-" ttya-rts-dtr-off "false" ttya-ignore-cd "true" ttya-mode "9600,8,n,1,-" tpe-link-test? "true" load-base "4000" scroll-lock "true" skip-netboot? "false" default-mac-address "false" pci-probe-mask "-1" selftest-#megs "0" screen-#rows "24" screen-#columns "80" output-device "ttya" input-device "ttya" use-nvramrc? "false" oem-logo? "false" oem-banner "" oem-banner? "false" nvramrc "" fcode-debug? "false" diag-switch? "false" boot-file "" boot-command "boot" auto-boot? "true" ok 0 > boot Trying cdrom... Not a bootable ELF image Not a bootable a.out image No valid state has been set by load or init-program ok 0 > boot cdrom:d Not a bootable ELF image Loading a.out image... Loaded 65536 bytes entry point is 0x4000 bootpath: /iommu/sbus/espdma/esp/sd@2,0:d
Jumping to entry point 00004000 for type 00000005... switching to new context:
NetBSD/sparc Secondary Boot, Revision 1.12 (autobuild@tgm.daemon.org, Wed Apr 9 02:46:11 UTC 2003)
Booting netbsd
I changed the boot-device like this: diff --git a/arch/sparc32/openbios.c b/arch/sparc32/openbios.c index 60ee180..3624269 100644 --- a/arch/sparc32/openbios.c +++ b/arch/sparc32/openbios.c @@ -187,11 +187,11 @@ arch_init( void ) push_str("floppy"); break; case 'c':
- push_str("disk");
- push_str("disk disk:d");
break; default: case 'd':
- push_str("cdrom");
- push_str("cdrom cdrom:d");
Why not make cdrom an alias to the slice d, as OBP does?
break; case 'n': push_str("net");
-- OpenBIOS http://openbios.org/ Mailinglist: http://lists.openbios.org/mailman/listinfo Free your System - May the Forth be with you