On 4/3/10, Mark Cave-Ayland mark.cave-ayland@siriusit.co.uk wrote:
Mark Cave-Ayland wrote:
So looks like its possibly related to the MMU? What I do find interesting
aswell is that the getprop CIF calls seem to throw argument count errors too...
On closer inspection, the key turned out to be the argument count errors. It seems that the client interface code for returning arguments back to the caller was broken (off by one error) :(
I believe I've fixed this in r732 and now get this:
0 > go Jumping to entry point 00000000010071d8 for type 0000000000000001... switching to new context: entry point 0x10071d8 stack 0x00000000ffe02a91 krtld: load_exec: fail to expand cpu/$CPU krtld: error during initial load/link phase
krtld could neither locate nor resolve symbols for: /platform/sun4u/kernel/sparcv9/unix in the boot archive. Please verify that this file matches what is found in the boot archive. You may need to boot using the Solaris failsafe to fix this. panic - kernel: Unable to boot EXIT 0 >
Which is an improvement ;) Incidentally, it may be worth someone trying a Linux boot again to see if my last CIF fix enables things to get a bit further there too.
Unfortunately some Linux images break, for example like this: OpenBIOS for Sparc64 Configuration device id QEMU version 1 machine id 0 kernel addr 404000 size 404d61 kernel cmdline root=/dev/ram -p console=prom init=/sbin/init of_debug=3 ofpci_debug=1 CPUs: 1 x SUNW,UltraSPARC-II UUID: 00000000-0000-0000-0000-000000000000 Welcome to OpenBIOS v1.0 built on Apr 2 2010 14:10 Type 'help' for detailed information
[sparc64] Kernel already loaded Unhandled Exception 0x0000000000000010 PC = 0x0000000000404380 NPC = 0x0000000000404384 Stopping execution
With r731 I get:
OpenBIOS for Sparc64 Configuration device id QEMU version 1 machine id 0 kernel addr 404000 size 404d61 kernel cmdline root=/dev/ram -p console=prom init=/sbin/init of_debug=3 ofpci_debug=1 CPUs: 1 x SUNW,UltraSPARC-II UUID: 00000000-0000-0000-0000-000000000000 Welcome to OpenBIOS v1.0 built on Apr 2 2010 14:10 Type 'help' for detailed information
[sparc64] Kernel already loaded
PROMLIB: Sun IEEE Boot Prom 'OBP 3.10.24 1999/01/01 01:01' PROMLIB: Root node compatible: sun4u Linux version 2.6.32 (test@host) (gcc version 4.2.4) #20 SMP Wed Jan 27 21:44:29 UTC 2010 bootconsole [earlyprom0] enabled ARCH: SUN4U Ethernet address: 52:54:00:12:34:56 Kernel: Using 2 locked TLB entries for main kernel image. Remapping the kernel... done. OF stdout device is: /pci@1fe,0/pci@1/pci@1,1/ebus@3/su@1fe PROM: Built device tree with 32987 bytes of memory. Top of RAM: 0x7e80000, Total RAM: 0x7e80000 Memory hole size: 0MB Zone PFN ranges: Normal 0x00000000 -> 0x00003f40 Movable zone start PFN for each node early_node_map[1] active PFN ranges 0: 0x00000000 -> 0x00003f40 Booting Linux... PERCPU: Embedded 5 pages/cpu @fffff80001400000 s16000 r0 d24960 u4194304 pcpu-alloc: s16000 r0 d24960 u4194304 alloc=1*4194304 pcpu-alloc: [0] 0 Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16065 Kernel command line: root=/dev/ram -p console=prom init=/sbin/init of_debug=3 ofpci_debug=1 PID hash table entries: 512 (order: -1, 4096 bytes) Dentry cache hash table entries: 16384 (order: 4, 131072 bytes) Inode-cache hash table entries: 8192 (order: 3, 65536 bytes) Memory: 116272k available (2656k kernel code, 784k data, 216k init) [fffff80000000000,0000000007e80000] SLUB: Genslabs=14, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 Hierarchical RCU implementation. NR_IRQS:255 clocksource: mult[a0000] shift[16] clockevent: mult[19999999] shift[32] Console: colour dummy device 80x25 Calibrating delay using timer specific routine.. 247.67 BogoMIPS (lpj=495348) Mount-cache hash table entries: 512 Brought up 1 CPUs NET: Registered protocol family 16 /memory reg[0] -> 0 /pci reg[0] -> 1fe00000000 /pci reg[1] -> 1fe01000000 /pci: direct translate 7f0 --> 1 /pci: direct translate 7ee --> 1 /pci: direct translate 7ef --> 1 /pci: direct translate 7e5 --> 1 /pci/pci@1/pci@1,1/QEMU,VGA@2 reg[0] -> 1ff00800000 /pci/pci@1/pci@1,1/ebus@3 reg[0] -> 1ff01000000 /pci/pci@1/pci@1,1/ebus@3 reg[1] -> 1ff02000000 /pci/pci@1/pci@1,1/NE2000@4 reg[0] -> 1fe02000400 /pci/pci@1/pci@1,1/NE2000@4: PCI swizzle [/pci/pci@1/pci@1,1] 1 --> 1 /pci/pci@1/pci@1,1/NE2000@4: PCI swizzle [/pci/pci@1] 1 --> 2 /pci/pci@1/pci@1,1/NE2000@4: PCI swizzle [/pci] 2 --> fffffffd /pci/pci@1/pci@1,1/NE2000@4: Apply IRQ trans [/pci] 1 --> 1 /pci/pci@1/pci@1,1/pci-ata@5 reg[0] -> 1fe02000500 /pci/pci@1/pci@1,1/pci-ata@5 reg[1] -> 1fe02000580 /pci/pci@1/pci@1,1/pci-ata@5 reg[2] -> 1fe02000600 /pci/pci@1/pci@1,1/pci-ata@5 reg[3] -> 1fe02000680 /pci/pci@1/pci@1,1/pci-ata@5 reg[4] -> 1fe02000700 /pci/pci@1/pci@1,1/pci-ata@5: PCI swizzle [/pci/pci@1/pci@1,1] 1 --> 2 /pci/pci@1/pci@1,1/pci-ata@5: PCI swizzle [/pci/pci@1] 2 --> 3 /pci/pci@1/pci@1,1/pci-ata@5: PCI swizzle [/pci] 3 --> fffffffe /pci/pci@1/pci@1,1/pci-ata@5: Apply IRQ trans [/pci] 1 --> 1 /pci/pci@1/pci@1,1/pci-ata@5/ide0@0,500 reg[0] -> 50000000000 /pci/pci@1/pci@1,1/pci-ata@5/ide0@0,500 reg[1] -> 582 /pci/pci@1/pci@1,1/pci-ata@5/ide0@0,500: PCI swizzle [/pci/pci@1/pci@1,1] 0 --> 0 /pci/pci@1/pci@1,1/pci-ata@5/ide0@0,500: PCI swizzle [/pci/pci@1] 0 --> 0 /pci/pci@1/pci@1,1/pci-ata@5/ide0@0,500: PCI swizzle [/pci] 0 --> 0 /pci/pci@1/pci@1,1/pci-ata@5/ide0@0,500: Apply IRQ trans [/pci] 0 --> 2 /pci/pci@1/pci@1,1/pci-ata@5/ide0@0,500: PCI swizzle [/pci/pci@1/pci@1,1] e --> e /pci/pci@1/pci@1,1/pci-ata@5/ide0@0,500: PCI swizzle [/pci/pci@1] e --> e /pci/pci@1/pci@1,1/pci-ata@5/ide0@0,500: PCI swizzle [/pci] e --> e /pci/pci@1/pci@1,1/pci-ata@5/ide0@0,500: Apply IRQ trans [/pci] e --> 3 /pci/pci@1/pci@1,1/pci-ata@5/ide0@0,500: PCI swizzle [/pci/pci@1/pci@1,1] 0 --> 0 /pci/pci@1/pci@1,1/pci-ata@5/ide0@0,500: PCI swizzle [/pci/pci@1] 0 --> 0 /pci/pci@1/pci@1,1/pci-ata@5/ide0@0,500: PCI swizzle [/pci] 0 --> 0 /pci/pci@1/pci@1,1/pci-ata@5/ide0@0,500: Apply IRQ trans [/pci] 0 --> 2 /pci/pci@1/pci@1,1/pci-ata@5/ide0@0,500: PCI swizzle [/pci/pci@1/pci@1,1] 0 --> 0 /pci/pci@1/pci@1,1/pci-ata@5/ide0@0,500: PCI swizzle [/pci/pci@1] 0 --> 0 /pci/pci@1/pci@1,1/pci-ata@5/ide0@0,500: PCI swizzle [/pci] 0 --> 0 /pci/pci@1/pci@1,1/pci-ata@5/ide0@0,500: Apply IRQ trans [/pci] 0 --> 2 /pci/pci@1/pci@1,1/pci-ata@5/ide0@0,500/disk@0,0 reg[0] -> 0 /pci/pci@1/pci@1,1/pci-ata@5/ide1@0,600 reg[0] -> 60000000000 /pci/pci@1/pci@1,1/pci-ata@5/ide1@0,600 reg[1] -> 682 /pci/pci@1/pci@1,1/pci-ata@5/ide1@0,600: PCI swizzle [/pci/pci@1/pci@1,1] 0 --> 0 /pci/pci@1/pci@1,1/pci-ata@5/ide1@0,600: PCI swizzle [/pci/pci@1] 0 --> 0 /pci/pci@1/pci@1,1/pci-ata@5/ide1@0,600: PCI swizzle [/pci] 0 --> 0 /pci/pci@1/pci@1,1/pci-ata@5/ide1@0,600: Apply IRQ trans [/pci] 0 --> 2 /pci/pci@1/pci@1,1/pci-ata@5/ide1@0,600: PCI swizzle [/pci/pci@1/pci@1,1] e --> e /pci/pci@1/pci@1,1/pci-ata@5/ide1@0,600: PCI swizzle [/pci/pci@1] e --> e /pci/pci@1/pci@1,1/pci-ata@5/ide1@0,600: PCI swizzle [/pci] e --> e /pci/pci@1/pci@1,1/pci-ata@5/ide1@0,600: Apply IRQ trans [/pci] e --> 3 /pci/pci@1/pci@1,1/pci-ata@5/ide1@0,600: PCI swizzle [/pci/pci@1/pci@1,1] 0 --> 0 /pci/pci@1/pci@1,1/pci-ata@5/ide1@0,600: PCI swizzle [/pci/pci@1] 0 --> 0 /pci/pci@1/pci@1,1/pci-ata@5/ide1@0,600: PCI swizzle [/pci] 0 --> 0 /pci/pci@1/pci@1,1/pci-ata@5/ide1@0,600: Apply IRQ trans [/pci] 0 --> 2 /pci/pci@1/pci@1,1/pci-ata@5/ide1@0,600: PCI swizzle [/pci/pci@1/pci@1,1] 0 --> 0 /pci/pci@1/pci@1,1/pci-ata@5/ide1@0,600: PCI swizzle [/pci/pci@1] 0 --> 0 /pci/pci@1/pci@1,1/pci-ata@5/ide1@0,600: PCI swizzle [/pci] 0 --> 0 /pci/pci@1/pci@1,1/pci-ata@5/ide1@0,600: Apply IRQ trans [/pci] 0 --> 2 /pci/pci@1/pci@1,1/pci-ata@5/ide1@0,600/cdrom@0,0 reg[0] -> 0 /pci: PCI IO[1fe02000000] MEM[1ff00000000] /pci: SABRE PCI Bus Module ver[0:0] PCI: Scanning PBM /pci PCI: scan_bus[/pci] bus no 0 * /pci/pci@1 create device, devfn: 8, type: pci class: 0x60400 device name: 0000:00:01.0 adding to system ... PCI: dev header type: 1 of_scan_pci_bridge(/pci/pci@1) bus name: PCI Bus 0000:00 PCI: scan_bus[/pci/pci@1] bus no 0 * /pci/pci@1/pci@1,1 create device, devfn: 9, type: pci class: 0x60400 device name: 0000:00:01.1 adding to system ... PCI: dev header type: 1 of_scan_pci_bridge(/pci/pci@1/pci@1,1) bus name: PCI Bus 0000:00 PCI: scan_bus[/pci/pci@1/pci@1,1] bus no 0 * /pci/pci@1/pci@1,1/QEMU,VGA@2 create device, devfn: 10, type: display class: 0x30000 device name: 0000:00:02.0 parse addresses (20 bytes) @ fffff80007e75ac0 start: 1ff00800000, end: 1ff00ffffff, i: 10 adding to system ... PCI: dev header type: 0 * /pci/pci@1/pci@1,1/ebus@3 create device, devfn: 18, type: class: 0x68000 device name: 0000:00:03.0 parse addresses (40 bytes) @ fffff80007e74640 start: 1ff01000000, end: 1ff01ffffff, i: 10 start: 1ff02000000, end: 1ff027fffff, i: 14 adding to system ... PCI: dev header type: 0 * /pci/pci@1/pci@1,1/NE2000@4 create device, devfn: 20, type: network class: 0x20000 device name: 0000:00:04.0 parse addresses (20 bytes) @ fffff80007e728c0 start: 1fe02000400, end: 1fe020004ff, i: 10 adding to system ... PCI: dev header type: 0 * /pci/pci@1/pci@1,1/pci-ata@5 create device, devfn: 28, type: pci-ide class: 0x1018f device name: 0000:00:05.0 parse addresses (100 bytes) @ fffff80007e71780 start: 1fe02000500, end: 1fe02000507, i: 10 start: 1fe02000580, end: 1fe02000583, i: 14 start: 1fe02000600, end: 1fe02000607, i: 18 start: 1fe02000680, end: 1fe02000683, i: 1c start: 1fe02000700, end: 1fe0200070f, i: 20 adding to system ... PCI: dev header type: 0 ------------[ cut here ]------------ WARNING: at /src/linux.git/fs/sysfs/dir.c:491 sysfs_add_one+0x8c/0xc0() sysfs: cannot create duplicate filename '/class/pci_bus/0000:00' Call Trace: [000000000045cd68] warn_slowpath_fmt+0x28/0x40 [0000000000507bac] sysfs_add_one+0x8c/0xc0 [0000000000508dbc] sysfs_do_create_link+0x9c/0x160 [00000000005c3648] device_add+0x3c8/0x500 [0000000000578494] pci_bus_add_child+0x14/0x80 [00000000005786a4] pci_bus_add_devices+0x144/0x200 [000000000057864c] pci_bus_add_devices+0xec/0x200 [000000000069000c] pci_scan_one_pbm+0x6c/0xa0 [0000000000690850] sabre_probe+0x2d0/0x5a0 [000000000060e61c] of_platform_device_probe+0x3c/0x80 [00000000005c60d0] driver_probe_device+0x70/0x160 [00000000005c6238] __driver_attach+0x78/0xa0 [00000000005c558c] bus_for_each_dev+0x4c/0x80 [00000000005c5b9c] bus_add_driver+0x9c/0x240 [00000000005c65f0] driver_register+0x50/0x160 [0000000000426ab8] do_one_initcall+0x18/0x160 ---[ end trace 139ce121c98e96c9 ]--- pci 0000:00:01.1: Error adding bus, continuing ------------[ cut here ]------------ WARNING: at /src/linux.git/fs/sysfs/dir.c:491 sysfs_add_one+0x8c/0xc0() sysfs: cannot create duplicate filename '/class/pci_bus/0000:00' Call Trace: [000000000045cd68] warn_slowpath_fmt+0x28/0x40 [0000000000507bac] sysfs_add_one+0x8c/0xc0 [0000000000508dbc] sysfs_do_create_link+0x9c/0x160 [00000000005c3648] device_add+0x3c8/0x500 [0000000000578494] pci_bus_add_child+0x14/0x80 [00000000005786a4] pci_bus_add_devices+0x144/0x200 [000000000069000c] pci_scan_one_pbm+0x6c/0xa0 [0000000000690850] sabre_probe+0x2d0/0x5a0 [000000000060e61c] of_platform_device_probe+0x3c/0x80 [00000000005c60d0] driver_probe_device+0x70/0x160 [00000000005c6238] __driver_attach+0x78/0xa0 [00000000005c558c] bus_for_each_dev+0x4c/0x80 [00000000005c5b9c] bus_add_driver+0x9c/0x240 [00000000005c65f0] driver_register+0x50/0x160 [0000000000426ab8] do_one_initcall+0x18/0x160 [00000000007683c8] kernel_init+0x1c8/0x240 ---[ end trace 139ce121c98e96ca ]--- pci 0000:00:01.0: Error adding bus, continuing bio: create slab <bio-0> at 0 vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=none,locks=none vgaarb: loaded usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb Switching to clocksource tick CE: tick increasing min_delta_ns to 3000 nsec CE: tick increasing min_delta_ns to 4500 nsec CE: tick increasing min_delta_ns to 6750 nsec CE: tick increasing min_delta_ns to 10124 nsec CE: tick increasing min_delta_ns to 15186 nsec NET: Registered protocol family 2 IP route cache hash table entries: 1024 (order: 0, 8192 bytes) TCP established hash table entries: 4096 (order: 3, 65536 bytes) TCP bind hash table entries: 4096 (order: 3, 65536 bytes) TCP: Hash tables configured (established 4096 bind 4096) TCP reno registered NET: Registered protocol family 1 Unpacking initramfs... Freeing initrd memory: 392k freed io scheduler noop registered (default) ------------[ cut here ]------------ WARNING: at /src/linux.git/fs/proc/generic.c:590 proc_register+0x108/0x200() proc_dir_entry 'pci/0000:00' already registered Call Trace: [000000000045cd68] warn_slowpath_fmt+0x28/0x40 [0000000000500568] proc_register+0x108/0x200 [0000000000500870] proc_mkdir_mode+0x30/0x60 [0000000000581514] pci_proc_attach_device+0xb4/0xe0 [000000000077d65c] pci_proc_init+0x5c/0xa0 [0000000000426ab8] do_one_initcall+0x18/0x160 [00000000007683c8] kernel_init+0x1c8/0x240 [000000000042b3b0] kernel_thread+0x30/0x60 [000000000068d0b8] rest_init+0x18/0x80 ---[ end trace 139ce121c98e96cb ]--- ------------[ cut here ]------------ WARNING: at /src/linux.git/fs/proc/generic.c:590 proc_register+0x108/0x200() proc_dir_entry 'pci/0000:00' already registered Call Trace: [000000000045cd68] warn_slowpath_fmt+0x28/0x40 [0000000000500568] proc_register+0x108/0x200 [0000000000500870] proc_mkdir_mode+0x30/0x60 [0000000000581514] pci_proc_attach_device+0xb4/0xe0 [000000000077d65c] pci_proc_init+0x5c/0xa0 [0000000000426ab8] do_one_initcall+0x18/0x160 [00000000007683c8] kernel_init+0x1c8/0x240 [000000000042b3b0] kernel_thread+0x30/0x60 [000000000068d0b8] rest_init+0x18/0x80 ---[ end trace 139ce121c98e96cc ]--- su: probe of ffe2d750 failed with error -12 loop: module loaded nbd: registered device at major 43 Uniform Multi-Platform E-IDE driver cmd64x 0000:00:05.0: IDE controller (0x1095:0x0646 rev 0x07) cmd64x 0000:00:05.0: 100% native mode on irq 1 ide0: BM-DMA at 0x1fe02000700-0x1fe02000707 ide1: BM-DMA at 0x1fe02000708-0x1fe0200070f hda: QEMU HARDDISK, ATA DISK drive hda: UDMA/33 mode selected hdc: QEMU DVD-ROM, ATAPI CD/DVD-ROM drive hdc: UDMA/33 mode selected ide0 at 0x1fe02000500-0x1fe02000507,0x1fe02000582 on irq 1 (serialized) ide1 at 0x1fe02000600-0x1fe02000607,0x1fe02000682 on irq 1 (serialized) ide-gd driver 1.18 hda: max request size: 512KiB hda: 20971520 sectors (10737 MB) w/256KiB Cache, CHS=16383/255/63 hda: lost interrupt hda: lost interrupt