[OpenBIOS] [commit] r828 - in trunk/openbios-devel: arch/ppc/qemu arch/sparc32 arch/sparc64 arch/x86 forth/admin forth/debugging include/libopenbios libopenbios

Blue Swirl blauwirbel at gmail.com
Tue Aug 3 19:38:06 CEST 2010

On Tue, Aug 3, 2010 at 4:13 PM, Blue Swirl <blauwirbel at gmail.com> wrote:
> On Sun, Aug 1, 2010 at 3:13 PM, repository service <svn at 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:
>> 1) 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 at host) (gcc version 2.95.4 20010319
(prerelease)) #3 Tue Mar 15 18:21:10 UTC 2005
TYPE: SPARCstation 5
Ethernet address: 52:54:0:12:34:56
Boot time fixup v1.6. 4/Mar/98 Jakub Jelinek (jj at 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 at 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
              \|/ ____ \|/
              "@'/ ,. \`@"
              /_| \__/ |_\
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'.

More information about the OpenBIOS mailing list