On Fri, Jan 22, 2010 at 9:07 PM, Nick Couchman Nick.Couchman@seakr.com wrote:
On 2010/01/22 at 11:50, svn@openbios.org wrote:
Author: blueswirl Date: 2010-01-22 19:50:54 +0100 (Fri, 22 Jan 2010) New Revision: 667
Modified: trunk/openbios-devel/include/sparc64/pci.h Log: Sparc64: use correct PCI probe mechanism
Signed-off-by: Blue Swirl blauwirbel@gmail.com
Output after updating to this revision:
OpenBIOS for Sparc64 Cannot manage 'multimedia device' PCI device type '<NULL>': 8e10 50 (4 6 0)
Please update to QEMU git HEAD. PCI access was changed in a very incompatible way in both places. The new way is however compatible with what Linux expects. I get this:
[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) #9 SMP Fri Jan 22 18:48:45 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 32175 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 On node 0 totalpages: 16192 Normal zone: 127 pages used for memmap Normal zone: 0 pages reserved Normal zone: 16065 pages, LIFO batch:3 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/hda1 console=prom -p debug lpj=100000 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: 116592k available (2720k kernel code, 800k 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 loop (skipped) preset value.. 50.00 BogoMIPS (lpj=100000) Mount-cache hash table entries: 512 Brought up 1 CPUs CPU0 attaching NULL sched-domain. NET: Registered protocol family 16 /pci: PCI IO[1fe02000000] MEM[1ff00000000] /pci: SABRE PCI Bus Module ver[0:0] PCI: Scanning PBM /pci ------------[ 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 [00000000005c8568] 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 [00000000006a02ec] pci_scan_one_pbm+0x6c/0xa0 [00000000006a0b30] sabre_probe+0x2d0/0x5a0 [000000000061e8fc] of_platform_device_probe+0x3c/0x80 [00000000005caff0] driver_probe_device+0x70/0x160 [00000000005cb158] __driver_attach+0x78/0xa0 [00000000005ca4ac] bus_for_each_dev+0x4c/0x80 [00000000005caabc] bus_add_driver+0x9c/0x240 [00000000005cb510] 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 [00000000005c8568] device_add+0x3c8/0x500 [0000000000578494] pci_bus_add_child+0x14/0x80 [00000000005786a4] pci_bus_add_devices+0x144/0x200 [00000000006a02ec] pci_scan_one_pbm+0x6c/0xa0 [00000000006a0b30] sabre_probe+0x2d0/0x5a0 [000000000061e8fc] of_platform_device_probe+0x3c/0x80 [00000000005caff0] driver_probe_device+0x70/0x160 [00000000005cb158] __driver_attach+0x78/0xa0 [00000000005ca4ac] bus_for_each_dev+0x4c/0x80 [00000000005caabc] bus_add_driver+0x9c/0x240 [00000000005cb510] driver_register+0x50/0x160 [0000000000426ab8] do_one_initcall+0x18/0x160 [000000000077c3c8] 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 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 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 [00000000005813f4] pci_proc_attach_device+0xb4/0xe0 [000000000079165c] pci_proc_init+0x5c/0xa0 [0000000000426ab8] do_one_initcall+0x18/0x160 [000000000077c3c8] kernel_init+0x1c8/0x240 [000000000042b3b0] kernel_thread+0x30/0x60 [000000000069d398] 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 [00000000005813f4] pci_proc_attach_device+0xb4/0xe0 [000000000079165c] pci_proc_init+0x5c/0xa0 [0000000000426ab8] do_one_initcall+0x18/0x160 [000000000077c3c8] kernel_init+0x1c8/0x240 [000000000042b3b0] kernel_thread+0x30/0x60 [000000000069d398] rest_init+0x18/0x80 ---[ end trace 139ce121c98e96cc ]--- su: probe of ffe2ee58 failed with error -12 Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled 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 Probing IDE interface ide0...
Then it hangs because the ticks are not working.