On Tue, Aug 3, 2010 at 4:13 PM, Blue Swirl blauwirbel@gmail.com wrote:
On Sun, Aug 1, 2010 at 3:13 PM, repository service svn@openbios.org wrote:
Author: mcayland Date: Sun Aug 1 17:13:48 2010 New Revision: 828 URL: http://tracker.coreboot.org/trac/openbios/changeset/828
Log: Rework the OpenBIOS internals so that boot, load and init-program now all use the unified libopenbios loader code with improved IEEE-1275 spec compliance.
This patch implements the following:
- Fix bootpath/bootargs handling so that default values are read from NVRAM, and allow multiple space-separated values to be
specified. 2) With correct bootargs handling in place, move the ELF loader over to the new libopenbios unified loaders. 3) Remove all the loader code from all architecture directories sine we don't need it anymore. 4) Simplify the boot word so it invokes platform-specific code where required, then calls load and go as per the specification.
Tested on all my available images for SPARC32, SPARC64 and PPC, and compile-tested on x86.
In addition, the command line set with -append is broken: qemu-system-sparc -kernel sparc-test/vmlinux-2.6.11+tcx -append 'root=/dev/ram' -initrd sparc-test/linux.img -L . -nographic Configuration device id QEMU version 1 machine id 32 UUID: 00000000-0000-0000-0000-000000000000 CPUs: 1 x FMI,MB86904 Welcome to OpenBIOS v1.0 built on Aug 2 2010 20:59 Type 'help' for detailed information
Trying disk... [sparc] Kernel already loaded switching to new context: PROMLIB: obio_ranges 1 Booting Linux... PROMLIB: Sun Boot Prom Version 3 Revision 2 Linux version 2.6.11 (test@host) (gcc version 2.95.4 20010319 (prerelease)) #3 Tue Mar 15 18:21:10 UTC 2005 ARCH: SUN4M TYPE: SPARCstation 5 Ethernet address: 52:54:0:12:34:56 Boot time fixup v1.6. 4/Mar/98 Jakub Jelinek (jj@ultra.linux.cz). Patching kernel for srmmu[Fujitsu TurboSparc]/iommu Power off control detected. Built 1 zonelists Kernel command line: ELF PID hash table entries: 512 (order: 9, 8192 bytes) Console: colour dummy device 80x25 Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) Memory: 119836k/130144k available (1848k kernel code, 10144k reserved, 496k data, 156k init, 0k highmem) Mount-cache hash table entries: 512 (order: 0, 4096 bytes) checking if image is initramfs...it isn't (bad gzip magic numbers); looks like an initrd Freeing initrd memory: 4096k freed NET: Registered protocol family 16 SCSI subsystem initialized IOMMU: impl 0 vers 5 table 0xf0b40000[262144 B] map [65536 b] sbus0: Clock 21.1250 MHz dma0: Revision 2 dma1: Revision 2 ioremap: done with statics, switching to malloc apc: power management initialized Initializing Cryptographic API Console: switching to colour frame buffer device 128x48 tcx: SUNW,tcx at 0:50800000, 8-bit only lp: driver loaded but no devices found zs2 at 0xfd018004 (irq = 44) is a SunZilog zs3 at 0xfd018000 (irq = 44) is a SunZilog Console: ttyS0 (SunZilog zs0) ttyS0 at MMIO 0x0 (irq = 44) is a SunZilog ttyS1 at MMIO 0x0 (irq = 44) is a SunZilog io scheduler noop registered Floppy drive(s): fd0 is 1.44M reset set in interrupt, calling f01396a0 floppy0: no floppy controllers found RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize loop: loaded (max 8 devices) sunlance.c:v2.02 24/Aug/03 Miguel de Icaza (miguel@nuclecu.unam.mx) SunLance: using auto-carrier-detection. eth0: LANCE 52:54:00:12:34:56 esp0: IRQ 36 SCSI ID 7 Clk 40MHz CCYC=25000 CCF=8 TOut 167 NCR53C9XF(espfast) ESP: Total of 1 ESP hosts found, 1 actually in use. scsi0 : Sparc ESP100A-FAST Vendor: QEMU Model: QEMU CD-ROM Rev: 0.12 Type: CD-ROM ANSI SCSI revision: 05 sr0: scsi3-mmc drive: 16x/50x cd/rw xa/form2 cdda tray Uniform CD-ROM driver Revision: 3.20 Attached scsi generic sg0 at scsi0, channel 0, id 2, lun 0, type 5 mice: PS/2 mouse device common for all mice input: Sun Mouse on zs/serio1 NET: Registered protocol family 2 IP: routing cache hash table of 1024 buckets, 8Kbytes TCP established hash table entries: 4096 (order: 3, 32768 bytes) TCP bind hash table entries: 4096 (order: 3, 32768 bytes) TCP: Hash tables configured (established 4096 bind 4096) NET: Registered protocol family 1 NET: Registered protocol family 17 RAMDISK: ext2 filesystem found at block 0 RAMDISK: Loading 4096KiB [1 disk] into ram disk... done. EXT2-fs warning: checktime reached, running e2fsck is recommended VFS: Mounted root (ext2 filesystem). Root-NFS: No NFS server available, giving up. Unable to handle kernel NULL pointer dereference tsk->{mm,active_mm}->context = ffffffff tsk->{mm,active_mm}->pgd = fc000000 |/ ____ |/ "@'/ ,. `@" /_| __/ |_\ __U_/ swapper(1): Oops [#1] PSR: 040010c7 PC: f0109538 NPC: f010953c Y: 00000000 Not tainted PC: <tty_wakeup+0x4/0x64> %G: f0bf0c60 f079d4bc 00000001 044010e2 f0034854 00000000 f05ee000 00000001 %O: 00000ff0 00000ff0 f0216800 f0216ab8 f027e768 f7f02d40 f05ef6c0 f002f4e4 RPC: <call_console_drivers+0x148/0x158> %L: 040010c0 f0109534 f0109538 00000001 00000000 00000000 f05ee000 0000000a %I: 00000000 f079d4a0 00000fbf f05efc30 0000000a ffffffff f05ef728 f01224a0 Caller[f01224a0]: uart_tasklet_action+0x8/0x18 Caller[f00348b8]: tasklet_action+0x74/0xbc Caller[f00344f8]: Letext+0x4c/0xd0 Caller[f00345b8]: do_softirq+0x3c/0x54 Caller[f0034698]: irq_exit+0x3c/0x4c Caller[f0012bc8]: handler_irq+0x9c/0xac Caller[f0010398]: patch_handler_irq+0x0/0x24 Caller[f002f4e4]: call_console_drivers+0x148/0x158 Caller[f002f8a0]: release_console_sem+0x48/0xdc Caller[f002f768]: vprintk+0x148/0x164 Caller[f002f610]: printk+0x1c/0x2c Caller[f0265a28]: video_setup+0x0/0x14c Caller[f0265a58]: video_setup+0x30/0x14c Caller[f0265d6c]: rand_initialize+0x14/0x124 Caller[f0252914]: inflate_block+0x130/0x154 Caller[f0252ac4]: gunzip+0x14/0x748 Caller[f0255768]: inflate_dynamic+0x5e8/0x64c Caller[f02558c0]: inflate_block+0xf4/0x144 Caller[f0252cc8]: gunzip+0x218/0x748 Caller[f00100fc]: init+0x54/0xfc Caller[f0014a4c]: kernel_thread+0x34/0x50 Caller[f001002c]: rest_init+0x10/0x28 Caller[f0251ed8]: inflate_stored+0x104/0x1fc Caller[f0251790]: huft_build+0x40c/0x55c Caller[f02510a8]: rd_load_image+0x100/0x314 Instruction DUMP: 81c7e008 81e80000 9de3bf98 <d00620bc> 808a2020 02800010 90062940 7ffffe9a 90100018 Kernel panic - not syncing: Aiee, killing interrupt handler! <0>Press L1-A to return to the boot prom
This is wrong: 'Kernel command line: ELF', it should be 'Kernel command line: root=/dev/ram'.