linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* powerpc/4xx: Regression failed on sil24 (and other) drivers
@ 2011-06-25 23:52 Ayman El-Khashab
  2011-06-27 10:19 ` Benjamin Herrenschmidt
  0 siblings, 1 reply; 6+ messages in thread
From: Ayman El-Khashab @ 2011-06-25 23:52 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: cam

I noticed during a recent development with the 460SX that a
simple device that once worked stopped.  I did a bisect to
find the offending commit and it turns out to be this one:

0e52247a2ed1f211f0c4f682dc999610a368903f is the first bad
commit
commit 0e52247a2ed1f211f0c4f682dc999610a368903f
Author: Cam Macdonell <cam@cs.ualberta.ca>
Date:   Tue Sep 7 17:25:20 2010 -0700

    PCI: fix pci_resource_alignment prototype

I found it working with 2.6.36 but it seems that it is in
the current trunk as well.

I patched my code to take out this commit and (quickly)
verified it was ok.  I am guessing the patch is ok since it
converts int types to resource_size_t.  My guess is that the
problem is in the sil24 driver but I did not see anything 
obvious in that code.  Any tips on what could be wrong?  Is
the problem potentially somewhere being called by that code?

The device driver fails with "error -22" on a 460SX (which 
has the 36 bit pci space).

sil24 /drivers/ata/sata_sil24.c

Thanks
Ayman

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: powerpc/4xx: Regression failed on sil24 (and other) drivers
  2011-06-25 23:52 powerpc/4xx: Regression failed on sil24 (and other) drivers Ayman El-Khashab
@ 2011-06-27 10:19 ` Benjamin Herrenschmidt
  2011-06-27 11:31   ` Ayman El-Khashab
  0 siblings, 1 reply; 6+ messages in thread
From: Benjamin Herrenschmidt @ 2011-06-27 10:19 UTC (permalink / raw)
  To: Ayman El-Khashab; +Cc: cam, linuxppc-dev

On Sat, 2011-06-25 at 18:52 -0500, Ayman El-Khashab wrote:
> I noticed during a recent development with the 460SX that a
> simple device that once worked stopped.  I did a bisect to
> find the offending commit and it turns out to be this one:
> 
> 0e52247a2ed1f211f0c4f682dc999610a368903f is the first bad
> commit
> commit 0e52247a2ed1f211f0c4f682dc999610a368903f
> Author: Cam Macdonell <cam@cs.ualberta.ca>
> Date:   Tue Sep 7 17:25:20 2010 -0700
> 
>     PCI: fix pci_resource_alignment prototype
> 
> I found it working with 2.6.36 but it seems that it is in
> the current trunk as well.
> 
> I patched my code to take out this commit and (quickly)
> verified it was ok.  I am guessing the patch is ok since it
> converts int types to resource_size_t.  My guess is that the
> problem is in the sil24 driver but I did not see anything 
> obvious in that code.  Any tips on what could be wrong?  Is
> the problem potentially somewhere being called by that code?
> 
> The device driver fails with "error -22" on a 460SX (which 
> has the 36 bit pci space).
> 
> sil24 /drivers/ata/sata_sil24.c

Can you send a dmesg & output of /proc/iomem & ioport with and without
the patch (same kernel otherwise) ?

Also can you try to figure out (printk's) where in the driver does it
fail ? (Which function fails)

It's possible that this changes something in the core resource
assignment code causing something else to fail elsewhere or exposing
another bug elsewhere with the consequence of leaving the SiL with badly
assigned resources.

Cheers,
Ben.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: powerpc/4xx: Regression failed on sil24 (and other) drivers
  2011-06-27 10:19 ` Benjamin Herrenschmidt
@ 2011-06-27 11:31   ` Ayman El-Khashab
  2011-06-27 12:29     ` Benjamin Herrenschmidt
  2011-06-29  1:42     ` Benjamin Herrenschmidt
  0 siblings, 2 replies; 6+ messages in thread
From: Ayman El-Khashab @ 2011-06-27 11:31 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: cam, linuxppc-dev

On Mon, Jun 27, 2011 at 08:19:56PM +1000, Benjamin Herrenschmidt wrote:
> On Sat, 2011-06-25 at 18:52 -0500, Ayman El-Khashab wrote:
> > I noticed during a recent development with the 460SX that a
> > simple device that once worked stopped.  I did a bisect to
> > find the offending commit and it turns out to be this one:
> > 
> > 0e52247a2ed1f211f0c4f682dc999610a368903f is the first bad
> > commit
> > commit 0e52247a2ed1f211f0c4f682dc999610a368903f
> > Author: Cam Macdonell <cam@cs.ualberta.ca>
> > Date:   Tue Sep 7 17:25:20 2010 -0700
> > 
> >     PCI: fix pci_resource_alignment prototype
> > 

<snip>

> > 
> > The device driver fails with "error -22" on a 460SX (which 
> > has the 36 bit pci space).
> > 
> > sil24 /drivers/ata/sata_sil24.c
> 
> Can you send a dmesg & output of /proc/iomem & ioport with and without
> the patch (same kernel otherwise) ?
> 
> Also can you try to figure out (printk's) where in the driver does it
> fail ? (Which function fails)

Yes, here is the output from a canyonlands (460ex) that exhibits
the same problem and in the same place.  Of the two devices
I have that fail (sil24 and one other), both fail in exactly 
the same place in lib/devres.c within the function
pcim_iomap_regions.  In that function, there is the
following call -- it fails b/c len returns 0 and tha failure
bubbles up to "error -22".

 len = pci_resource_len(pdev, i);

> It's possible that this changes something in the core resource
> assignment code causing something else to fail elsewhere or exposing
> another bug elsewhere with the consequence of leaving the SiL with badly
> assigned resources.

That was my initial thought as well, but I wasn't versed
enough in the pci magic in order to completely figure it
out.

Here is the output, it is dmesg, iomem, then ioports for the
passing and then the failing cases.

thanks
ayman

============== Passing ======================

Using PowerPC 44x Platform machine description
Linux version 2.6.36-rc3-00186-g0e52247-dirty (aymane@lablinux) (gcc version 4.2.2) #18 Sat Jun 25 13:51:44 CDT 2011
Found initrd at 0xdfa5c000:0xdfe4cbfa
Found legacy serial port 0 for /plb/opb/serial@ef600300
  mem=4ef600300, taddr=4ef600300, irq=0, clk=6451612, speed=0
Found legacy serial port 1 for /plb/opb/serial@ef600400
  mem=4ef600400, taddr=4ef600400, irq=0, clk=6451612, speed=0
Top of RAM: 0x20000000, Total RAM: 0x20000000
Memory hole size: 0MB
Zone PFN ranges:
  DMA      0x00000000 -> 0x00020000
  Normal   empty
  HighMem  empty
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
    0: 0x00000000 -> 0x00020000
On node 0 totalpages: 131072
free_area_init_node: node 0, pgdat c03b9f48, node_mem_map c03ed000
  DMA zone: 1024 pages used for memmap
  DMA zone: 0 pages reserved
  DMA zone: 130048 pages, LIFO batch:31
MMU: Allocated 1088 bytes of context maps for 255 contexts
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
Kernel command line: root=/dev/ram rw mem=512M ip=169.254.0.180:169.254.0.100:169.254.0.100:255.255.255.0:tanosx:eth0:off panic=1 console=ttyS0,57600
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
High memory: 0k
Memory: 511668k/524288k available (3692k kernel code, 12620k reserved, 176k data, 141k bss, 184k init)
Kernel virtual memory layout:
  * 0xfffcf000..0xfffff000  : fixmap
  * 0xffc00000..0xffe00000  : highmem PTEs
  * 0xffa00000..0xffc00000  : consistent mem
  * 0xffa00000..0xffa00000  : early ioremap
  * 0xe1000000..0xffa00000  : vmalloc & ioremap
SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
NR_IRQS:512
UIC0 (32 IRQ sources) at DCR 0xc0
UIC1 (32 IRQ sources) at DCR 0xd0
irq: irq 30 on host /interrupt-controller0 mapped to virtual irq 30
UIC2 (32 IRQ sources) at DCR 0xe0
irq: irq 10 on host /interrupt-controller0 mapped to virtual irq 16
UIC3 (32 IRQ sources) at DCR 0xf0
irq: irq 16 on host /interrupt-controller0 mapped to virtual irq 17
time_init: decrementer frequency = 800.000010 MHz
time_init: processor frequency   = 800.000010 MHz
clocksource: timebase mult[500000] shift[22] registered
clockevent: decrementer mult[ccccccf7] shift[32] cpu[0]
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
NET: Registered protocol family 16
i2c-core: driver [dummy] registered
irq: irq 11 on host /interrupt-controller1 mapped to virtual irq 18
256k L2-cache enabled
PCIE0: Checking link...
PCIE0: No device detected.
PCI host bridge /plb/pciex@d00000000 (primary) ranges:
 MEM 0x0000000e00000000..0x0000000e7fffffff -> 0x0000000080000000 
 MEM 0x0000000f00000000..0x0000000f000fffff -> 0x0000000000000000 
  IO 0x0000000f80000000..0x0000000f8000ffff -> 0x0000000000000000
 Removing ISA hole at 0x0000000f00000000
4xx PCI DMA offset set to 0x00000000
/plb/pciex@d00000000: Legacy ISA memory support enabled
PCIE0: successfully set as root-complex
PCIE1: Checking link...
PCIE1: Device detected, waiting for link...
PCIE1: link is up !
PCI host bridge /plb/pciex@d20000000 (primary) ranges:
 MEM 0x0000000e80000000..0x0000000effffffff -> 0x0000000080000000 
 MEM 0x0000000f00100000..0x0000000f001fffff -> 0x0000000000000000 
  IO 0x0000000f80010000..0x0000000f8001ffff -> 0x0000000000000000
 Removing ISA hole at 0x0000000f00100000
4xx PCI DMA offset set to 0x00000000
/plb/pciex@d20000000: Legacy ISA memory support enabled
PCIE1: successfully set as root-complex
PCI host bridge /plb/pci@c0ec00000 (primary) ranges:
 MEM 0x0000000d80000000..0x0000000dffffffff -> 0x0000000080000000 
 MEM 0x0000000c0ee00000..0x0000000c0eefffff -> 0x0000000000000000 
  IO 0x0000000c08000000..0x0000000c0800ffff -> 0x0000000000000000
 Removing ISA hole at 0x0000000c0ee00000
4xx PCI DMA offset set to 0x00000000
/plb/pci@c0ec00000: Legacy ISA memory support enabled
PCI: Probing PCI hardware
pci_bus 0000:40: scanning bus
pci 0000:40:00.0: found [aaa0:bed0] class 000604 header type 01
pci 0000:40:00.0: reg 10: [mem 0x00000000-0x7fffffff pref]
pci_bus 0000:40: fixups for bus
pci 0000:40:00.0: scanning [bus 41-7f] behind bridge, pass 0
pci_bus 0000:41: scanning bus
pci_bus 0000:41: fixups for bus
pci 0000:40:00.0: PCI bridge to [bus 41-7f]
pci 0000:40:00.0:   bridge window [io  0x0000-0x0000] (disabled)
pci 0000:40:00.0:   bridge window [mem 0x00000000-0x000fffff] (disabled)
pci 0000:40:00.0:   bridge window [mem 0x00000000-0x000fffff pref] (disabled)
pci_bus 0000:41: bus scan returning with max=41
pci 0000:40:00.0: scanning [bus 41-7f] behind bridge, pass 1
pci_bus 0000:40: bus scan returning with max=7f
pci_bus 0001:80: scanning bus
pci 0001:80:00.0: found [aaa1:bed1] class 000604 header type 01
pci 0001:80:00.0: reg 10: [mem 0x00000000-0x7fffffff pref]
pci_bus 0001:80: fixups for bus
pci 0001:80:00.0: scanning [bus 81-bf] behind bridge, pass 0
pci_bus 0001:81: scanning bus
pci 0001:81:00.0: found [1095:3531] class 000180 header type 00
pci 0001:81:00.0: reg 10: [mem 0x00000000-0x0000007f 64bit]
pci 0001:81:00.0: reg 18: [mem 0x00000000-0x00001fff 64bit]
pci 0001:81:00.0: reg 20: [io  0x0000-0x007f]
pci 0001:81:00.0: supports D1 D2
pci_bus 0001:81: fixups for bus
pci 0001:80:00.0: PCI bridge to [bus 81-bf]
pci 0001:80:00.0:   bridge window [io  0x0000-0x0000] (disabled)
pci 0001:80:00.0:   bridge window [mem 0x00000000-0x000fffff] (disabled)
pci 0001:80:00.0:   bridge window [mem 0x00000000-0x000fffff pref] (disabled)
irq: irq 16 on host /interrupt-controller3 mapped to virtual irq 19
pci_bus 0001:81: bus scan returning with max=81
pci 0001:80:00.0: scanning [bus 81-bf] behind bridge, pass 1
pci_bus 0001:80: bus scan returning with max=bf
pci_bus 0002:00: scanning bus
pci_bus 0002:00: fixups for bus
pci_bus 0002:00: bus scan returning with max=00
pci 0000:40:00.0: BAR 0: can't assign mem pref (size 0x80000000)
pci 0000:40:00.0: PCI bridge to [bus 41-7f]
pci 0000:40:00.0:   bridge window [io  disabled]
pci 0000:40:00.0:   bridge window [mem disabled]
pci 0000:40:00.0:   bridge window [mem pref disabled]
pci 0001:80:00.0: BAR 0: can't assign mem pref (size 0x80000000)
pci 0001:80:00.0: BAR 8: assigned [mem 0xe80000000-0xe800fffff]
pci 0001:80:00.0: BAR 7: assigned [io  0xfffe1000-0xfffe1fff]
pci 0001:81:00.0: BAR 2: assigned [mem 0xe80000000-0xe80001fff 64bit]
pci 0001:81:00.0: BAR 2: set to [mem 0xe80000000-0xe80001fff 64bit] (PCI address [0x80000000-0x80001fff]
pci 0001:81:00.0: BAR 0: assigned [mem 0xe80002000-0xe8000207f 64bit]
pci 0001:81:00.0: BAR 0: set to [mem 0xe80002000-0xe8000207f 64bit] (PCI address [0x80002000-0x8000207f]
pci 0001:81:00.0: BAR 4: assigned [io  0xfffe1000-0xfffe107f]
pci 0001:81:00.0: BAR 4: set to [io  0xfffe1000-0xfffe107f] (PCI address [0x1000-0x107f]
pci 0001:80:00.0: PCI bridge to [bus 81-bf]
pci 0001:80:00.0:   bridge window [io  0xfffe1000-0xfffe1fff]
pci 0001:80:00.0:   bridge window [mem 0xe80000000-0xe800fffff]
pci 0001:80:00.0:   bridge window [mem pref disabled]
pci_bus 0000:40: resource 0 [io  0xfffc0000-0xfffcffff]
pci_bus 0000:40: resource 1 [mem 0xe00000000-0xe7fffffff]
pci_bus 0001:80: resource 0 [io  0xfffe0000-0xfffeffff]
pci_bus 0001:80: resource 1 [mem 0xe80000000-0xeffffffff]
pci_bus 0001:81: resource 0 [io  0xfffe1000-0xfffe1fff]
pci_bus 0001:81: resource 1 [mem 0xe80000000-0xe800fffff]
pci_bus 0002:00: resource 0 [io  0x0000-0xffff]
pci_bus 0002:00: resource 1 [mem 0xd80000000-0xdffffffff]
bio: create slab <bio-0> at 0
i2c-core: driver [pcf857x] registered
vgaarb: loaded
SCSI subsystem initialized
libata version 3.00 loaded.
Switching to clocksource timebase
NET: Registered protocol family 2
IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
TCP established hash table entries: 16384 (order: 5, 131072 bytes)
TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
TCP: Hash tables configured (established 16384 bind 16384)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
Trying to unpack rootfs image as initramfs...
rootfs image is not initramfs (no cpio magic); looks like an initrd
Freeing initrd memory: 4034k freed
irq: irq 1 on host /interrupt-controller1 mapped to virtual irq 20
irq: irq 1 on host /interrupt-controller0 mapped to virtual irq 21
irq: irq 29 on host /interrupt-controller0 mapped to virtual irq 29
irq: irq 6 on host /interrupt-controller2 mapped to virtual irq 22
irq: irq 7 on host /interrupt-controller2 mapped to virtual irq 23
irq: irq 3 on host /interrupt-controller2 mapped to virtual irq 24
irq: irq 4 on host /interrupt-controller2 mapped to virtual irq 25
irq: irq 5 on host /interrupt-controller2 mapped to virtual irq 26
irq: irq 29 on host /interrupt-controller2 mapped to virtual irq 27
irq: irq 30 on host /interrupt-controller2 mapped to virtual irq 28
irq: irq 28 on host /interrupt-controller2 mapped to virtual irq 31
irq: irq 26 on host /interrupt-controller1 mapped to virtual irq 32
irq: irq 12 on host /interrupt-controller0 mapped to virtual irq 33
irq: irq 0 on host /interrupt-controller3 mapped to virtual irq 34
irq: irq 5 on host /interrupt-controller3 mapped to virtual irq 35
irq: irq 6 on host /interrupt-controller1 mapped to virtual irq 36
irq: irq 2 on host /interrupt-controller0 mapped to virtual irq 37
irq: irq 3 on host /interrupt-controller0 mapped to virtual irq 38
irq: irq 16 on host /interrupt-controller2 mapped to virtual irq 39
irq: irq 20 on host /interrupt-controller2 mapped to virtual irq 40
irq: irq 17 on host /interrupt-controller2 mapped to virtual irq 41
irq: irq 21 on host /interrupt-controller2 mapped to virtual irq 42
msgmni has been set to 1007
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
pci_hotplug: PCI Hot Plug PCI Core version: 0.5
pciehp: PCI Express Hot Plug Controller Driver version: 0.4
Serial: 8250/16550 driver, 2 ports, IRQ sharing enabled
serial8250.0: ttyS0 at MMIO 0x4ef600300 (irq = 20) is a U6_16550A
console [ttyS0] enabled
serial8250.0: ttyS1 at MMIO 0x4ef600400 (irq = 21) is a U6_16550A
4ef600300.serial: ttyS0 at MMIO 0x4ef600300 (irq = 20) is a 16550
4ef600400.serial: ttyS1 at MMIO 0x4ef600400 (irq = 21) is a 16550
brd: module loaded
i2c-core: driver [at24] registered
sata_sil24 0001:81:00.0: version 1.1
sata_sil24 0001:81:00.0: enabling device (0000 -> 0003)
sata_sil24 0001:81:00.0: enabling bus mastering
scsi0 : sata_sil24
ata1: SATA max UDMA/100 host m128@0xe80002000 port 0xe80000000 irq 19
PPC 4xx OCP EMAC driver, version 3.54
MAL v2 /plb/mcmal, 2 TX channels, 16 RX channels
ZMII /plb/opb/emac-zmii@ef600d00 initialized
RGMII /plb/opb/emac-rgmii@ef601500 initialized with MDIO support
TAH /plb/opb/emac-tah@ef601350 initialized
TAH /plb/opb/emac-tah@ef601450 initialized
/plb/opb/emac-rgmii@ef601500: input 0 in RGMII mode
eth0: EMAC-0 /plb/opb/ethernet@ef600e00, MAC 00:10:ec:01:02:b9
eth0: found Generic MII PHY (0x00)
/plb/opb/emac-rgmii@ef601500: input 1 in RGMII mode
eth1: EMAC-1 /plb/opb/ethernet@ef600f00, MAC 00:10:ec:81:02:b9
eth1: found Generic MII PHY (0x01)
i2c /dev entries driver
i2c-core: driver [dev_driver] registered
of:ibm-iic 4ef600700.i2c: clckdiv = 9
i2c i2c-0: adapter [IBM IIC] registered
irq: irq 25 on host /interrupt-controller2 mapped to virtual irq 43
i2c 0-0068: uevent
i2c i2c-0: client [m41t80] registered with bus id 0-0068
irq: irq 20 on host /interrupt-controller1 mapped to virtual irq 44
i2c 0-0048: uevent
i2c i2c-0: client [ad7414] registered with bus id 0-0048
i2c-dev: adapter [IBM IIC] registered as minor 0
of:ibm-iic 4ef600700.i2c: using standard (100 kHz) mode
of:ibm-iic 4ef600800.i2c: clckdiv = 9
i2c i2c-1: adapter [IBM IIC] registered
i2c-dev: adapter [IBM IIC] registered as minor 1
of:ibm-iic 4ef600800.i2c: using standard (100 kHz) mode
Netfilter messages via NETLINK v0.30.
nf_conntrack version 0.5.0 (8057 buckets, 32228 max)
ctnetlink v0.93: registering with nfnetlink.
xt_time: kernel timezone is -0000
IPVS: Registered protocols ()
IPVS: Connection hash table configured (size=4096, memory=32Kbytes)
IPVS: ipvs loaded.
ip_tables: (C) 2000-2006 Netfilter Core Team
ipt_CLUSTERIP: ClusterIP Version 0.8 loaded successfully
arp_tables: (C) 2002 David S. Miller
TCP cubic registered
NET: Registered protocol family 17
Bridge firewalling registered
Ebtables v2.0 registered
eth0: link is down
IP-Config: Complete:
     device=eth0, addr=169.254.0.180, mask=255.255.255.0, gw=169.254.0.100,
     host=tanosx, domain=, nis-domain=(none),
     bootserver=169.254.0.100, rootserver=169.254.0.100, rootpath=
ata1: SATA link down (SStatus 0 SControl 0)
RAMDISK: gzip image found at block 0
eth0: link is up, 100 FDX, pause enabled
VFS: Mounted root (ext2 filesystem) on device 1:0.
Freeing unused kernel memory: 184k init


/proc/iomem

4ef600300-4ef600307 : serial
4ef600400-4ef600407 : serial
d80000000-dffffffff : /plb/pci@c0ec00000
e00000000-e7fffffff : /plb/pciex@d00000000
e80000000-effffffff : /plb/pciex@d20000000
  e80000000-e800fffff : PCI Bus 0001:81
    e80000000-e80001fff : 0001:81:00.0
      e80000000-e80001fff : sata_sil24
    e80002000-e8000207f : 0001:81:00.0
      e80002000-e8000207f : sata_sil24


/proc/ioports

00000000-0000ffff : /plb/pci@c0ec00000
  00000000-00000fff : Legacy IO
fffc0000-fffcffff : /plb/pciex@d00000000
  fffc0000-fffc0fff : Legacy IO
fffe0000-fffeffff : /plb/pciex@d20000000
  fffe0000-fffe0fff : Legacy IO
  fffe1000-fffe1fff : PCI Bus 0001:81
    fffe1000-fffe107f : 0001:81:00.0



============== Failing ======================


Using PowerPC 44x Platform machine description
Linux version 2.6.36-rc3-00186-g0e52247 (aymane@lablinux) (gcc version 4.2.2) #19 Mon Jun 27 06:09:26 CDT 2011
Found initrd at 0xdfa5c000:0xdfe4cbfa
Found legacy serial port 0 for /plb/opb/serial@ef600300
  mem=4ef600300, taddr=4ef600300, irq=0, clk=6451612, speed=0
Found legacy serial port 1 for /plb/opb/serial@ef600400
  mem=4ef600400, taddr=4ef600400, irq=0, clk=6451612, speed=0
Top of RAM: 0x20000000, Total RAM: 0x20000000
Memory hole size: 0MB
Zone PFN ranges:
  DMA      0x00000000 -> 0x00020000
  Normal   empty
  HighMem  empty
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
    0: 0x00000000 -> 0x00020000
On node 0 totalpages: 131072
free_area_init_node: node 0, pgdat c03b9f48, node_mem_map c03ed000
  DMA zone: 1024 pages used for memmap
  DMA zone: 0 pages reserved
  DMA zone: 130048 pages, LIFO batch:31
MMU: Allocated 1088 bytes of context maps for 255 contexts
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
Kernel command line: root=/dev/ram rw mem=512M ip=169.254.0.180:169.254.0.100:169.254.0.100:255.255.255.0:tanosx:eth0:off panic=1 console=ttyS0,57600
PID hash table entries: 2048 (order: 1, 8192 bytes)
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
High memory: 0k
Memory: 511668k/524288k available (3692k kernel code, 12620k reserved, 176k data, 141k bss, 184k init)
Kernel virtual memory layout:
  * 0xfffcf000..0xfffff000  : fixmap
  * 0xffc00000..0xffe00000  : highmem PTEs
  * 0xffa00000..0xffc00000  : consistent mem
  * 0xffa00000..0xffa00000  : early ioremap
  * 0xe1000000..0xffa00000  : vmalloc & ioremap
SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
NR_IRQS:512
UIC0 (32 IRQ sources) at DCR 0xc0
UIC1 (32 IRQ sources) at DCR 0xd0
irq: irq 30 on host /interrupt-controller0 mapped to virtual irq 30
UIC2 (32 IRQ sources) at DCR 0xe0
irq: irq 10 on host /interrupt-controller0 mapped to virtual irq 16
UIC3 (32 IRQ sources) at DCR 0xf0
irq: irq 16 on host /interrupt-controller0 mapped to virtual irq 17
time_init: decrementer frequency = 800.000010 MHz
time_init: processor frequency   = 800.000010 MHz
clocksource: timebase mult[500000] shift[22] registered
clockevent: decrementer mult[ccccccf7] shift[32] cpu[0]
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
NET: Registered protocol family 16
i2c-core: driver [dummy] registered
irq: irq 11 on host /interrupt-controller1 mapped to virtual irq 18
256k L2-cache enabled
PCIE0: Checking link...
PCIE0: No device detected.
PCI host bridge /plb/pciex@d00000000 (primary) ranges:
 MEM 0x0000000e00000000..0x0000000e7fffffff -> 0x0000000080000000 
 MEM 0x0000000f00000000..0x0000000f000fffff -> 0x0000000000000000 
  IO 0x0000000f80000000..0x0000000f8000ffff -> 0x0000000000000000
 Removing ISA hole at 0x0000000f00000000
4xx PCI DMA offset set to 0x00000000
/plb/pciex@d00000000: Legacy ISA memory support enabled
PCIE0: successfully set as root-complex
PCIE1: Checking link...
PCIE1: Device detected, waiting for link...
PCIE1: link is up !
PCI host bridge /plb/pciex@d20000000 (primary) ranges:
 MEM 0x0000000e80000000..0x0000000effffffff -> 0x0000000080000000 
 MEM 0x0000000f00100000..0x0000000f001fffff -> 0x0000000000000000 
  IO 0x0000000f80010000..0x0000000f8001ffff -> 0x0000000000000000
 Removing ISA hole at 0x0000000f00100000
4xx PCI DMA offset set to 0x00000000
/plb/pciex@d20000000: Legacy ISA memory support enabled
PCIE1: successfully set as root-complex
PCI host bridge /plb/pci@c0ec00000 (primary) ranges:
 MEM 0x0000000d80000000..0x0000000dffffffff -> 0x0000000080000000 
 MEM 0x0000000c0ee00000..0x0000000c0eefffff -> 0x0000000000000000 
  IO 0x0000000c08000000..0x0000000c0800ffff -> 0x0000000000000000
 Removing ISA hole at 0x0000000c0ee00000
4xx PCI DMA offset set to 0x00000000
/plb/pci@c0ec00000: Legacy ISA memory support enabled
PCI: Probing PCI hardware
pci_bus 0000:40: scanning bus
pci 0000:40:00.0: found [aaa0:bed0] class 000604 header type 01
pci 0000:40:00.0: reg 10: [mem 0x00000000-0x7fffffff pref]
pci_bus 0000:40: fixups for bus
pci 0000:40:00.0: scanning [bus 41-7f] behind bridge, pass 0
pci_bus 0000:41: scanning bus
pci_bus 0000:41: fixups for bus
pci 0000:40:00.0: PCI bridge to [bus 41-7f]
pci 0000:40:00.0:   bridge window [io  0x0000-0x0000] (disabled)
pci 0000:40:00.0:   bridge window [mem 0x00000000-0x000fffff] (disabled)
pci 0000:40:00.0:   bridge window [mem 0x00000000-0x000fffff pref] (disabled)
pci_bus 0000:41: bus scan returning with max=41
pci 0000:40:00.0: scanning [bus 41-7f] behind bridge, pass 1
pci_bus 0000:40: bus scan returning with max=7f
pci_bus 0001:80: scanning bus
pci 0001:80:00.0: found [aaa1:bed1] class 000604 header type 01
pci 0001:80:00.0: reg 10: [mem 0x00000000-0x7fffffff pref]
pci_bus 0001:80: fixups for bus
pci 0001:80:00.0: scanning [bus 81-bf] behind bridge, pass 0
pci_bus 0001:81: scanning bus
pci 0001:81:00.0: found [1095:3531] class 000180 header type 00
pci 0001:81:00.0: reg 10: [mem 0x00000000-0x0000007f 64bit]
pci 0001:81:00.0: reg 18: [mem 0x00000000-0x00001fff 64bit]
pci 0001:81:00.0: reg 20: [io  0x0000-0x007f]
pci 0001:81:00.0: supports D1 D2
pci_bus 0001:81: fixups for bus
pci 0001:80:00.0: PCI bridge to [bus 81-bf]
pci 0001:80:00.0:   bridge window [io  0x0000-0x0000] (disabled)
pci 0001:80:00.0:   bridge window [mem 0x00000000-0x000fffff] (disabled)
pci 0001:80:00.0:   bridge window [mem 0x00000000-0x000fffff pref] (disabled)
irq: irq 16 on host /interrupt-controller3 mapped to virtual irq 19
pci_bus 0001:81: bus scan returning with max=81
pci 0001:80:00.0: scanning [bus 81-bf] behind bridge, pass 1
pci_bus 0001:80: bus scan returning with max=bf
pci_bus 0002:00: scanning bus
pci_bus 0002:00: fixups for bus
pci_bus 0002:00: bus scan returning with max=00
pci 0000:40:00.0: BAR 0: assigned [mem 0xe00000000-0xe7fffffff pref]
pci 0000:40:00.0: BAR 0: set to [mem 0xe00000000-0xe7fffffff pref] (PCI address [0x80000000-0xffffffff]
pci 0000:40:00.0: PCI bridge to [bus 41-7f]
pci 0000:40:00.0:   bridge window [io  disabled]
pci 0000:40:00.0:   bridge window [mem disabled]
pci 0000:40:00.0:   bridge window [mem pref disabled]
pci 0001:80:00.0: BAR 0: assigned [mem 0xe80000000-0xeffffffff pref]
pci 0001:80:00.0: BAR 0: set to [mem 0xe80000000-0xeffffffff pref] (PCI address [0x80000000-0xffffffff]
pci 0001:80:00.0: BAR 8: can't assign mem (size 0x100000)
pci 0001:80:00.0: BAR 7: assigned [io  0xfffe1000-0xfffe1fff]
pci 0001:81:00.0: BAR 2: can't assign mem (size 0x2000)
pci 0001:81:00.0: BAR 0: can't assign mem (size 0x80)
pci 0001:81:00.0: BAR 4: assigned [io  0xfffe1000-0xfffe107f]
pci 0001:81:00.0: BAR 4: set to [io  0xfffe1000-0xfffe107f] (PCI address [0x1000-0x107f]
pci 0001:80:00.0: PCI bridge to [bus 81-bf]
pci 0001:80:00.0:   bridge window [io  0xfffe1000-0xfffe1fff]
pci 0001:80:00.0:   bridge window [mem disabled]
pci 0001:80:00.0:   bridge window [mem pref disabled]
pci_bus 0000:40: resource 0 [io  0xfffc0000-0xfffcffff]
pci_bus 0000:40: resource 1 [mem 0xe00000000-0xe7fffffff]
pci_bus 0001:80: resource 0 [io  0xfffe0000-0xfffeffff]
pci_bus 0001:80: resource 1 [mem 0xe80000000-0xeffffffff]
pci_bus 0001:81: resource 0 [io  0xfffe1000-0xfffe1fff]
pci_bus 0002:00: resource 0 [io  0x0000-0xffff]
pci_bus 0002:00: resource 1 [mem 0xd80000000-0xdffffffff]
bio: create slab <bio-0> at 0
i2c-core: driver [pcf857x] registered
vgaarb: loaded
SCSI subsystem initialized
libata version 3.00 loaded.
Switching to clocksource timebase
NET: Registered protocol family 2
IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
TCP established hash table entries: 16384 (order: 5, 131072 bytes)
TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
TCP: Hash tables configured (established 16384 bind 16384)
TCP reno registered
UDP hash table entries: 256 (order: 0, 4096 bytes)
UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
NET: Registered protocol family 1
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
Trying to unpack rootfs image as initramfs...
rootfs image is not initramfs (no cpio magic); looks like an initrd
Freeing initrd memory: 4034k freed
irq: irq 1 on host /interrupt-controller1 mapped to virtual irq 20
irq: irq 1 on host /interrupt-controller0 mapped to virtual irq 21
irq: irq 29 on host /interrupt-controller0 mapped to virtual irq 29
irq: irq 6 on host /interrupt-controller2 mapped to virtual irq 22
irq: irq 7 on host /interrupt-controller2 mapped to virtual irq 23
irq: irq 3 on host /interrupt-controller2 mapped to virtual irq 24
irq: irq 4 on host /interrupt-controller2 mapped to virtual irq 25
irq: irq 5 on host /interrupt-controller2 mapped to virtual irq 26
irq: irq 29 on host /interrupt-controller2 mapped to virtual irq 27
irq: irq 30 on host /interrupt-controller2 mapped to virtual irq 28
irq: irq 28 on host /interrupt-controller2 mapped to virtual irq 31
irq: irq 26 on host /interrupt-controller1 mapped to virtual irq 32
irq: irq 12 on host /interrupt-controller0 mapped to virtual irq 33
irq: irq 0 on host /interrupt-controller3 mapped to virtual irq 34
irq: irq 5 on host /interrupt-controller3 mapped to virtual irq 35
irq: irq 6 on host /interrupt-controller1 mapped to virtual irq 36
irq: irq 2 on host /interrupt-controller0 mapped to virtual irq 37
irq: irq 3 on host /interrupt-controller0 mapped to virtual irq 38
irq: irq 16 on host /interrupt-controller2 mapped to virtual irq 39
irq: irq 20 on host /interrupt-controller2 mapped to virtual irq 40
irq: irq 17 on host /interrupt-controller2 mapped to virtual irq 41
irq: irq 21 on host /interrupt-controller2 mapped to virtual irq 42
msgmni has been set to 1007
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
pci_hotplug: PCI Hot Plug PCI Core version: 0.5
pciehp: PCI Express Hot Plug Controller Driver version: 0.4
Serial: 8250/16550 driver, 2 ports, IRQ sharing enabled
serial8250.0: ttyS0 at MMIO 0x4ef600300 (irq = 20) is a U6_16550A
console [ttyS0] enabled
serial8250.0: ttyS1 at MMIO 0x4ef600400 (irq = 21) is a U6_16550A
4ef600300.serial: ttyS0 at MMIO 0x4ef600300 (irq = 20) is a 16550
4ef600400.serial: ttyS1 at MMIO 0x4ef600400 (irq = 21) is a 16550
brd: module loaded
i2c-core: driver [at24] registered
sata_sil24 0001:81:00.0: version 1.1
sata_sil24 0001:81:00.0: enabling device (0000 -> 0001)
sata_sil24: probe of 0001:81:00.0 failed with error -22
PPC 4xx OCP EMAC driver, version 3.54
MAL v2 /plb/mcmal, 2 TX channels, 16 RX channels
ZMII /plb/opb/emac-zmii@ef600d00 initialized
RGMII /plb/opb/emac-rgmii@ef601500 initialized with MDIO support
TAH /plb/opb/emac-tah@ef601350 initialized
TAH /plb/opb/emac-tah@ef601450 initialized
/plb/opb/emac-rgmii@ef601500: input 0 in RGMII mode
eth0: EMAC-0 /plb/opb/ethernet@ef600e00, MAC 00:10:ec:01:02:b9
eth0: found Generic MII PHY (0x00)
/plb/opb/emac-rgmii@ef601500: input 1 in RGMII mode
eth1: EMAC-1 /plb/opb/ethernet@ef600f00, MAC 00:10:ec:81:02:b9
eth1: found Generic MII PHY (0x01)
i2c /dev entries driver
i2c-core: driver [dev_driver] registered
of:ibm-iic 4ef600700.i2c: clckdiv = 9
i2c i2c-0: adapter [IBM IIC] registered
irq: irq 25 on host /interrupt-controller2 mapped to virtual irq 43
i2c 0-0068: uevent
i2c i2c-0: client [m41t80] registered with bus id 0-0068
irq: irq 20 on host /interrupt-controller1 mapped to virtual irq 44
i2c 0-0048: uevent
i2c i2c-0: client [ad7414] registered with bus id 0-0048
i2c-dev: adapter [IBM IIC] registered as minor 0
of:ibm-iic 4ef600700.i2c: using standard (100 kHz) mode
of:ibm-iic 4ef600800.i2c: clckdiv = 9
i2c i2c-1: adapter [IBM IIC] registered
i2c-dev: adapter [IBM IIC] registered as minor 1
of:ibm-iic 4ef600800.i2c: using standard (100 kHz) mode
Netfilter messages via NETLINK v0.30.
nf_conntrack version 0.5.0 (8057 buckets, 32228 max)
ctnetlink v0.93: registering with nfnetlink.
xt_time: kernel timezone is -0000
IPVS: Registered protocols ()
IPVS: Connection hash table configured (size=4096, memory=32Kbytes)
IPVS: ipvs loaded.
ip_tables: (C) 2000-2006 Netfilter Core Team
ipt_CLUSTERIP: ClusterIP Version 0.8 loaded successfully
arp_tables: (C) 2002 David S. Miller
TCP cubic registered
NET: Registered protocol family 17
Bridge firewalling registered
Ebtables v2.0 registered
eth0: link is down
IP-Config: Complete:
     device=eth0, addr=169.254.0.180, mask=255.255.255.0, gw=169.254.0.100,
     host=tanosx, domain=, nis-domain=(none),
     bootserver=169.254.0.100, rootserver=169.254.0.100, rootpath=
RAMDISK: gzip image found at block 0
eth0: link is up, 100 FDX, pause enabled
VFS: Mounted root (ext2 filesystem) on device 1:0.
Freeing unused kernel memory: 184k init

/proc/iomem

4ef600300-4ef600307 : serial
4ef600400-4ef600407 : serial
d80000000-dffffffff : /plb/pci@c0ec00000
e00000000-e7fffffff : /plb/pciex@d00000000
  e00000000-e7fffffff : 0000:40:00.0
e80000000-effffffff : /plb/pciex@d20000000
  e80000000-effffffff : 0001:80:00.0

/proc/ioports

00000000-0000ffff : /plb/pci@c0ec00000
  00000000-00000fff : Legacy IO
fffc0000-fffcffff : /plb/pciex@d00000000
  fffc0000-fffc0fff : Legacy IO
fffe0000-fffeffff : /plb/pciex@d20000000
  fffe0000-fffe0fff : Legacy IO
  fffe1000-fffe1fff : PCI Bus 0001:81
    fffe1000-fffe107f : 0001:81:00.0

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: powerpc/4xx: Regression failed on sil24 (and other) drivers
  2011-06-27 11:31   ` Ayman El-Khashab
@ 2011-06-27 12:29     ` Benjamin Herrenschmidt
  2011-06-29  1:42     ` Benjamin Herrenschmidt
  1 sibling, 0 replies; 6+ messages in thread
From: Benjamin Herrenschmidt @ 2011-06-27 12:29 UTC (permalink / raw)
  To: Ayman El-Khashab; +Cc: cam, linuxppc-dev

On Mon, 2011-06-27 at 06:31 -0500, Ayman El-Khashab wrote:

> That was my initial thought as well, but I wasn't versed
> enough in the pci magic in order to completely figure it
> out.
> 
> Here is the output, it is dmesg, iomem, then ioports for the
> passing and then the failing cases.

Ok, I can see some resource allocation errors in the log, I don't have
enough active brain cells left today to figure out what's going on but
I'll have a look tomorrow.

Cheers,
Ben.

> thanks
> ayman
> 
> ============== Passing ======================
> 
> Using PowerPC 44x Platform machine description
> Linux version 2.6.36-rc3-00186-g0e52247-dirty (aymane@lablinux) (gcc version 4.2.2) #18 Sat Jun 25 13:51:44 CDT 2011
> Found initrd at 0xdfa5c000:0xdfe4cbfa
> Found legacy serial port 0 for /plb/opb/serial@ef600300
>   mem=4ef600300, taddr=4ef600300, irq=0, clk=6451612, speed=0
> Found legacy serial port 1 for /plb/opb/serial@ef600400
>   mem=4ef600400, taddr=4ef600400, irq=0, clk=6451612, speed=0
> Top of RAM: 0x20000000, Total RAM: 0x20000000
> Memory hole size: 0MB
> Zone PFN ranges:
>   DMA      0x00000000 -> 0x00020000
>   Normal   empty
>   HighMem  empty
> Movable zone start PFN for each node
> early_node_map[1] active PFN ranges
>     0: 0x00000000 -> 0x00020000
> On node 0 totalpages: 131072
> free_area_init_node: node 0, pgdat c03b9f48, node_mem_map c03ed000
>   DMA zone: 1024 pages used for memmap
>   DMA zone: 0 pages reserved
>   DMA zone: 130048 pages, LIFO batch:31
> MMU: Allocated 1088 bytes of context maps for 255 contexts
> Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
> Kernel command line: root=/dev/ram rw mem=512M ip=169.254.0.180:169.254.0.100:169.254.0.100:255.255.255.0:tanosx:eth0:off panic=1 console=ttyS0,57600
> PID hash table entries: 2048 (order: 1, 8192 bytes)
> Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
> Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
> High memory: 0k
> Memory: 511668k/524288k available (3692k kernel code, 12620k reserved, 176k data, 141k bss, 184k init)
> Kernel virtual memory layout:
>   * 0xfffcf000..0xfffff000  : fixmap
>   * 0xffc00000..0xffe00000  : highmem PTEs
>   * 0xffa00000..0xffc00000  : consistent mem
>   * 0xffa00000..0xffa00000  : early ioremap
>   * 0xe1000000..0xffa00000  : vmalloc & ioremap
> SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
> NR_IRQS:512
> UIC0 (32 IRQ sources) at DCR 0xc0
> UIC1 (32 IRQ sources) at DCR 0xd0
> irq: irq 30 on host /interrupt-controller0 mapped to virtual irq 30
> UIC2 (32 IRQ sources) at DCR 0xe0
> irq: irq 10 on host /interrupt-controller0 mapped to virtual irq 16
> UIC3 (32 IRQ sources) at DCR 0xf0
> irq: irq 16 on host /interrupt-controller0 mapped to virtual irq 17
> time_init: decrementer frequency = 800.000010 MHz
> time_init: processor frequency   = 800.000010 MHz
> clocksource: timebase mult[500000] shift[22] registered
> clockevent: decrementer mult[ccccccf7] shift[32] cpu[0]
> pid_max: default: 32768 minimum: 301
> Mount-cache hash table entries: 512
> NET: Registered protocol family 16
> i2c-core: driver [dummy] registered
> irq: irq 11 on host /interrupt-controller1 mapped to virtual irq 18
> 256k L2-cache enabled
> PCIE0: Checking link...
> PCIE0: No device detected.
> PCI host bridge /plb/pciex@d00000000 (primary) ranges:
>  MEM 0x0000000e00000000..0x0000000e7fffffff -> 0x0000000080000000 
>  MEM 0x0000000f00000000..0x0000000f000fffff -> 0x0000000000000000 
>   IO 0x0000000f80000000..0x0000000f8000ffff -> 0x0000000000000000
>  Removing ISA hole at 0x0000000f00000000
> 4xx PCI DMA offset set to 0x00000000
> /plb/pciex@d00000000: Legacy ISA memory support enabled
> PCIE0: successfully set as root-complex
> PCIE1: Checking link...
> PCIE1: Device detected, waiting for link...
> PCIE1: link is up !
> PCI host bridge /plb/pciex@d20000000 (primary) ranges:
>  MEM 0x0000000e80000000..0x0000000effffffff -> 0x0000000080000000 
>  MEM 0x0000000f00100000..0x0000000f001fffff -> 0x0000000000000000 
>   IO 0x0000000f80010000..0x0000000f8001ffff -> 0x0000000000000000
>  Removing ISA hole at 0x0000000f00100000
> 4xx PCI DMA offset set to 0x00000000
> /plb/pciex@d20000000: Legacy ISA memory support enabled
> PCIE1: successfully set as root-complex
> PCI host bridge /plb/pci@c0ec00000 (primary) ranges:
>  MEM 0x0000000d80000000..0x0000000dffffffff -> 0x0000000080000000 
>  MEM 0x0000000c0ee00000..0x0000000c0eefffff -> 0x0000000000000000 
>   IO 0x0000000c08000000..0x0000000c0800ffff -> 0x0000000000000000
>  Removing ISA hole at 0x0000000c0ee00000
> 4xx PCI DMA offset set to 0x00000000
> /plb/pci@c0ec00000: Legacy ISA memory support enabled
> PCI: Probing PCI hardware
> pci_bus 0000:40: scanning bus
> pci 0000:40:00.0: found [aaa0:bed0] class 000604 header type 01
> pci 0000:40:00.0: reg 10: [mem 0x00000000-0x7fffffff pref]
> pci_bus 0000:40: fixups for bus
> pci 0000:40:00.0: scanning [bus 41-7f] behind bridge, pass 0
> pci_bus 0000:41: scanning bus
> pci_bus 0000:41: fixups for bus
> pci 0000:40:00.0: PCI bridge to [bus 41-7f]
> pci 0000:40:00.0:   bridge window [io  0x0000-0x0000] (disabled)
> pci 0000:40:00.0:   bridge window [mem 0x00000000-0x000fffff] (disabled)
> pci 0000:40:00.0:   bridge window [mem 0x00000000-0x000fffff pref] (disabled)
> pci_bus 0000:41: bus scan returning with max=41
> pci 0000:40:00.0: scanning [bus 41-7f] behind bridge, pass 1
> pci_bus 0000:40: bus scan returning with max=7f
> pci_bus 0001:80: scanning bus
> pci 0001:80:00.0: found [aaa1:bed1] class 000604 header type 01
> pci 0001:80:00.0: reg 10: [mem 0x00000000-0x7fffffff pref]
> pci_bus 0001:80: fixups for bus
> pci 0001:80:00.0: scanning [bus 81-bf] behind bridge, pass 0
> pci_bus 0001:81: scanning bus
> pci 0001:81:00.0: found [1095:3531] class 000180 header type 00
> pci 0001:81:00.0: reg 10: [mem 0x00000000-0x0000007f 64bit]
> pci 0001:81:00.0: reg 18: [mem 0x00000000-0x00001fff 64bit]
> pci 0001:81:00.0: reg 20: [io  0x0000-0x007f]
> pci 0001:81:00.0: supports D1 D2
> pci_bus 0001:81: fixups for bus
> pci 0001:80:00.0: PCI bridge to [bus 81-bf]
> pci 0001:80:00.0:   bridge window [io  0x0000-0x0000] (disabled)
> pci 0001:80:00.0:   bridge window [mem 0x00000000-0x000fffff] (disabled)
> pci 0001:80:00.0:   bridge window [mem 0x00000000-0x000fffff pref] (disabled)
> irq: irq 16 on host /interrupt-controller3 mapped to virtual irq 19
> pci_bus 0001:81: bus scan returning with max=81
> pci 0001:80:00.0: scanning [bus 81-bf] behind bridge, pass 1
> pci_bus 0001:80: bus scan returning with max=bf
> pci_bus 0002:00: scanning bus
> pci_bus 0002:00: fixups for bus
> pci_bus 0002:00: bus scan returning with max=00
> pci 0000:40:00.0: BAR 0: can't assign mem pref (size 0x80000000)
> pci 0000:40:00.0: PCI bridge to [bus 41-7f]
> pci 0000:40:00.0:   bridge window [io  disabled]
> pci 0000:40:00.0:   bridge window [mem disabled]
> pci 0000:40:00.0:   bridge window [mem pref disabled]
> pci 0001:80:00.0: BAR 0: can't assign mem pref (size 0x80000000)
> pci 0001:80:00.0: BAR 8: assigned [mem 0xe80000000-0xe800fffff]
> pci 0001:80:00.0: BAR 7: assigned [io  0xfffe1000-0xfffe1fff]
> pci 0001:81:00.0: BAR 2: assigned [mem 0xe80000000-0xe80001fff 64bit]
> pci 0001:81:00.0: BAR 2: set to [mem 0xe80000000-0xe80001fff 64bit] (PCI address [0x80000000-0x80001fff]
> pci 0001:81:00.0: BAR 0: assigned [mem 0xe80002000-0xe8000207f 64bit]
> pci 0001:81:00.0: BAR 0: set to [mem 0xe80002000-0xe8000207f 64bit] (PCI address [0x80002000-0x8000207f]
> pci 0001:81:00.0: BAR 4: assigned [io  0xfffe1000-0xfffe107f]
> pci 0001:81:00.0: BAR 4: set to [io  0xfffe1000-0xfffe107f] (PCI address [0x1000-0x107f]
> pci 0001:80:00.0: PCI bridge to [bus 81-bf]
> pci 0001:80:00.0:   bridge window [io  0xfffe1000-0xfffe1fff]
> pci 0001:80:00.0:   bridge window [mem 0xe80000000-0xe800fffff]
> pci 0001:80:00.0:   bridge window [mem pref disabled]
> pci_bus 0000:40: resource 0 [io  0xfffc0000-0xfffcffff]
> pci_bus 0000:40: resource 1 [mem 0xe00000000-0xe7fffffff]
> pci_bus 0001:80: resource 0 [io  0xfffe0000-0xfffeffff]
> pci_bus 0001:80: resource 1 [mem 0xe80000000-0xeffffffff]
> pci_bus 0001:81: resource 0 [io  0xfffe1000-0xfffe1fff]
> pci_bus 0001:81: resource 1 [mem 0xe80000000-0xe800fffff]
> pci_bus 0002:00: resource 0 [io  0x0000-0xffff]
> pci_bus 0002:00: resource 1 [mem 0xd80000000-0xdffffffff]
> bio: create slab <bio-0> at 0
> i2c-core: driver [pcf857x] registered
> vgaarb: loaded
> SCSI subsystem initialized
> libata version 3.00 loaded.
> Switching to clocksource timebase
> NET: Registered protocol family 2
> IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
> TCP established hash table entries: 16384 (order: 5, 131072 bytes)
> TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
> TCP: Hash tables configured (established 16384 bind 16384)
> TCP reno registered
> UDP hash table entries: 256 (order: 0, 4096 bytes)
> UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
> NET: Registered protocol family 1
> RPC: Registered udp transport module.
> RPC: Registered tcp transport module.
> RPC: Registered tcp NFSv4.1 backchannel transport module.
> Trying to unpack rootfs image as initramfs...
> rootfs image is not initramfs (no cpio magic); looks like an initrd
> Freeing initrd memory: 4034k freed
> irq: irq 1 on host /interrupt-controller1 mapped to virtual irq 20
> irq: irq 1 on host /interrupt-controller0 mapped to virtual irq 21
> irq: irq 29 on host /interrupt-controller0 mapped to virtual irq 29
> irq: irq 6 on host /interrupt-controller2 mapped to virtual irq 22
> irq: irq 7 on host /interrupt-controller2 mapped to virtual irq 23
> irq: irq 3 on host /interrupt-controller2 mapped to virtual irq 24
> irq: irq 4 on host /interrupt-controller2 mapped to virtual irq 25
> irq: irq 5 on host /interrupt-controller2 mapped to virtual irq 26
> irq: irq 29 on host /interrupt-controller2 mapped to virtual irq 27
> irq: irq 30 on host /interrupt-controller2 mapped to virtual irq 28
> irq: irq 28 on host /interrupt-controller2 mapped to virtual irq 31
> irq: irq 26 on host /interrupt-controller1 mapped to virtual irq 32
> irq: irq 12 on host /interrupt-controller0 mapped to virtual irq 33
> irq: irq 0 on host /interrupt-controller3 mapped to virtual irq 34
> irq: irq 5 on host /interrupt-controller3 mapped to virtual irq 35
> irq: irq 6 on host /interrupt-controller1 mapped to virtual irq 36
> irq: irq 2 on host /interrupt-controller0 mapped to virtual irq 37
> irq: irq 3 on host /interrupt-controller0 mapped to virtual irq 38
> irq: irq 16 on host /interrupt-controller2 mapped to virtual irq 39
> irq: irq 20 on host /interrupt-controller2 mapped to virtual irq 40
> irq: irq 17 on host /interrupt-controller2 mapped to virtual irq 41
> irq: irq 21 on host /interrupt-controller2 mapped to virtual irq 42
> msgmni has been set to 1007
> Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
> io scheduler noop registered
> io scheduler deadline registered
> io scheduler cfq registered (default)
> pci_hotplug: PCI Hot Plug PCI Core version: 0.5
> pciehp: PCI Express Hot Plug Controller Driver version: 0.4
> Serial: 8250/16550 driver, 2 ports, IRQ sharing enabled
> serial8250.0: ttyS0 at MMIO 0x4ef600300 (irq = 20) is a U6_16550A
> console [ttyS0] enabled
> serial8250.0: ttyS1 at MMIO 0x4ef600400 (irq = 21) is a U6_16550A
> 4ef600300.serial: ttyS0 at MMIO 0x4ef600300 (irq = 20) is a 16550
> 4ef600400.serial: ttyS1 at MMIO 0x4ef600400 (irq = 21) is a 16550
> brd: module loaded
> i2c-core: driver [at24] registered
> sata_sil24 0001:81:00.0: version 1.1
> sata_sil24 0001:81:00.0: enabling device (0000 -> 0003)
> sata_sil24 0001:81:00.0: enabling bus mastering
> scsi0 : sata_sil24
> ata1: SATA max UDMA/100 host m128@0xe80002000 port 0xe80000000 irq 19
> PPC 4xx OCP EMAC driver, version 3.54
> MAL v2 /plb/mcmal, 2 TX channels, 16 RX channels
> ZMII /plb/opb/emac-zmii@ef600d00 initialized
> RGMII /plb/opb/emac-rgmii@ef601500 initialized with MDIO support
> TAH /plb/opb/emac-tah@ef601350 initialized
> TAH /plb/opb/emac-tah@ef601450 initialized
> /plb/opb/emac-rgmii@ef601500: input 0 in RGMII mode
> eth0: EMAC-0 /plb/opb/ethernet@ef600e00, MAC 00:10:ec:01:02:b9
> eth0: found Generic MII PHY (0x00)
> /plb/opb/emac-rgmii@ef601500: input 1 in RGMII mode
> eth1: EMAC-1 /plb/opb/ethernet@ef600f00, MAC 00:10:ec:81:02:b9
> eth1: found Generic MII PHY (0x01)
> i2c /dev entries driver
> i2c-core: driver [dev_driver] registered
> of:ibm-iic 4ef600700.i2c: clckdiv = 9
> i2c i2c-0: adapter [IBM IIC] registered
> irq: irq 25 on host /interrupt-controller2 mapped to virtual irq 43
> i2c 0-0068: uevent
> i2c i2c-0: client [m41t80] registered with bus id 0-0068
> irq: irq 20 on host /interrupt-controller1 mapped to virtual irq 44
> i2c 0-0048: uevent
> i2c i2c-0: client [ad7414] registered with bus id 0-0048
> i2c-dev: adapter [IBM IIC] registered as minor 0
> of:ibm-iic 4ef600700.i2c: using standard (100 kHz) mode
> of:ibm-iic 4ef600800.i2c: clckdiv = 9
> i2c i2c-1: adapter [IBM IIC] registered
> i2c-dev: adapter [IBM IIC] registered as minor 1
> of:ibm-iic 4ef600800.i2c: using standard (100 kHz) mode
> Netfilter messages via NETLINK v0.30.
> nf_conntrack version 0.5.0 (8057 buckets, 32228 max)
> ctnetlink v0.93: registering with nfnetlink.
> xt_time: kernel timezone is -0000
> IPVS: Registered protocols ()
> IPVS: Connection hash table configured (size=4096, memory=32Kbytes)
> IPVS: ipvs loaded.
> ip_tables: (C) 2000-2006 Netfilter Core Team
> ipt_CLUSTERIP: ClusterIP Version 0.8 loaded successfully
> arp_tables: (C) 2002 David S. Miller
> TCP cubic registered
> NET: Registered protocol family 17
> Bridge firewalling registered
> Ebtables v2.0 registered
> eth0: link is down
> IP-Config: Complete:
>      device=eth0, addr=169.254.0.180, mask=255.255.255.0, gw=169.254.0.100,
>      host=tanosx, domain=, nis-domain=(none),
>      bootserver=169.254.0.100, rootserver=169.254.0.100, rootpath=
> ata1: SATA link down (SStatus 0 SControl 0)
> RAMDISK: gzip image found at block 0
> eth0: link is up, 100 FDX, pause enabled
> VFS: Mounted root (ext2 filesystem) on device 1:0.
> Freeing unused kernel memory: 184k init
> 
> 
> /proc/iomem
> 
> 4ef600300-4ef600307 : serial
> 4ef600400-4ef600407 : serial
> d80000000-dffffffff : /plb/pci@c0ec00000
> e00000000-e7fffffff : /plb/pciex@d00000000
> e80000000-effffffff : /plb/pciex@d20000000
>   e80000000-e800fffff : PCI Bus 0001:81
>     e80000000-e80001fff : 0001:81:00.0
>       e80000000-e80001fff : sata_sil24
>     e80002000-e8000207f : 0001:81:00.0
>       e80002000-e8000207f : sata_sil24
> 
> 
> /proc/ioports
> 
> 00000000-0000ffff : /plb/pci@c0ec00000
>   00000000-00000fff : Legacy IO
> fffc0000-fffcffff : /plb/pciex@d00000000
>   fffc0000-fffc0fff : Legacy IO
> fffe0000-fffeffff : /plb/pciex@d20000000
>   fffe0000-fffe0fff : Legacy IO
>   fffe1000-fffe1fff : PCI Bus 0001:81
>     fffe1000-fffe107f : 0001:81:00.0
> 
> 
> 
> ============== Failing ======================
> 
> 
> Using PowerPC 44x Platform machine description
> Linux version 2.6.36-rc3-00186-g0e52247 (aymane@lablinux) (gcc version 4.2.2) #19 Mon Jun 27 06:09:26 CDT 2011
> Found initrd at 0xdfa5c000:0xdfe4cbfa
> Found legacy serial port 0 for /plb/opb/serial@ef600300
>   mem=4ef600300, taddr=4ef600300, irq=0, clk=6451612, speed=0
> Found legacy serial port 1 for /plb/opb/serial@ef600400
>   mem=4ef600400, taddr=4ef600400, irq=0, clk=6451612, speed=0
> Top of RAM: 0x20000000, Total RAM: 0x20000000
> Memory hole size: 0MB
> Zone PFN ranges:
>   DMA      0x00000000 -> 0x00020000
>   Normal   empty
>   HighMem  empty
> Movable zone start PFN for each node
> early_node_map[1] active PFN ranges
>     0: 0x00000000 -> 0x00020000
> On node 0 totalpages: 131072
> free_area_init_node: node 0, pgdat c03b9f48, node_mem_map c03ed000
>   DMA zone: 1024 pages used for memmap
>   DMA zone: 0 pages reserved
>   DMA zone: 130048 pages, LIFO batch:31
> MMU: Allocated 1088 bytes of context maps for 255 contexts
> Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 130048
> Kernel command line: root=/dev/ram rw mem=512M ip=169.254.0.180:169.254.0.100:169.254.0.100:255.255.255.0:tanosx:eth0:off panic=1 console=ttyS0,57600
> PID hash table entries: 2048 (order: 1, 8192 bytes)
> Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
> Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
> High memory: 0k
> Memory: 511668k/524288k available (3692k kernel code, 12620k reserved, 176k data, 141k bss, 184k init)
> Kernel virtual memory layout:
>   * 0xfffcf000..0xfffff000  : fixmap
>   * 0xffc00000..0xffe00000  : highmem PTEs
>   * 0xffa00000..0xffc00000  : consistent mem
>   * 0xffa00000..0xffa00000  : early ioremap
>   * 0xe1000000..0xffa00000  : vmalloc & ioremap
> SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
> NR_IRQS:512
> UIC0 (32 IRQ sources) at DCR 0xc0
> UIC1 (32 IRQ sources) at DCR 0xd0
> irq: irq 30 on host /interrupt-controller0 mapped to virtual irq 30
> UIC2 (32 IRQ sources) at DCR 0xe0
> irq: irq 10 on host /interrupt-controller0 mapped to virtual irq 16
> UIC3 (32 IRQ sources) at DCR 0xf0
> irq: irq 16 on host /interrupt-controller0 mapped to virtual irq 17
> time_init: decrementer frequency = 800.000010 MHz
> time_init: processor frequency   = 800.000010 MHz
> clocksource: timebase mult[500000] shift[22] registered
> clockevent: decrementer mult[ccccccf7] shift[32] cpu[0]
> pid_max: default: 32768 minimum: 301
> Mount-cache hash table entries: 512
> NET: Registered protocol family 16
> i2c-core: driver [dummy] registered
> irq: irq 11 on host /interrupt-controller1 mapped to virtual irq 18
> 256k L2-cache enabled
> PCIE0: Checking link...
> PCIE0: No device detected.
> PCI host bridge /plb/pciex@d00000000 (primary) ranges:
>  MEM 0x0000000e00000000..0x0000000e7fffffff -> 0x0000000080000000 
>  MEM 0x0000000f00000000..0x0000000f000fffff -> 0x0000000000000000 
>   IO 0x0000000f80000000..0x0000000f8000ffff -> 0x0000000000000000
>  Removing ISA hole at 0x0000000f00000000
> 4xx PCI DMA offset set to 0x00000000
> /plb/pciex@d00000000: Legacy ISA memory support enabled
> PCIE0: successfully set as root-complex
> PCIE1: Checking link...
> PCIE1: Device detected, waiting for link...
> PCIE1: link is up !
> PCI host bridge /plb/pciex@d20000000 (primary) ranges:
>  MEM 0x0000000e80000000..0x0000000effffffff -> 0x0000000080000000 
>  MEM 0x0000000f00100000..0x0000000f001fffff -> 0x0000000000000000 
>   IO 0x0000000f80010000..0x0000000f8001ffff -> 0x0000000000000000
>  Removing ISA hole at 0x0000000f00100000
> 4xx PCI DMA offset set to 0x00000000
> /plb/pciex@d20000000: Legacy ISA memory support enabled
> PCIE1: successfully set as root-complex
> PCI host bridge /plb/pci@c0ec00000 (primary) ranges:
>  MEM 0x0000000d80000000..0x0000000dffffffff -> 0x0000000080000000 
>  MEM 0x0000000c0ee00000..0x0000000c0eefffff -> 0x0000000000000000 
>   IO 0x0000000c08000000..0x0000000c0800ffff -> 0x0000000000000000
>  Removing ISA hole at 0x0000000c0ee00000
> 4xx PCI DMA offset set to 0x00000000
> /plb/pci@c0ec00000: Legacy ISA memory support enabled
> PCI: Probing PCI hardware
> pci_bus 0000:40: scanning bus
> pci 0000:40:00.0: found [aaa0:bed0] class 000604 header type 01
> pci 0000:40:00.0: reg 10: [mem 0x00000000-0x7fffffff pref]
> pci_bus 0000:40: fixups for bus
> pci 0000:40:00.0: scanning [bus 41-7f] behind bridge, pass 0
> pci_bus 0000:41: scanning bus
> pci_bus 0000:41: fixups for bus
> pci 0000:40:00.0: PCI bridge to [bus 41-7f]
> pci 0000:40:00.0:   bridge window [io  0x0000-0x0000] (disabled)
> pci 0000:40:00.0:   bridge window [mem 0x00000000-0x000fffff] (disabled)
> pci 0000:40:00.0:   bridge window [mem 0x00000000-0x000fffff pref] (disabled)
> pci_bus 0000:41: bus scan returning with max=41
> pci 0000:40:00.0: scanning [bus 41-7f] behind bridge, pass 1
> pci_bus 0000:40: bus scan returning with max=7f
> pci_bus 0001:80: scanning bus
> pci 0001:80:00.0: found [aaa1:bed1] class 000604 header type 01
> pci 0001:80:00.0: reg 10: [mem 0x00000000-0x7fffffff pref]
> pci_bus 0001:80: fixups for bus
> pci 0001:80:00.0: scanning [bus 81-bf] behind bridge, pass 0
> pci_bus 0001:81: scanning bus
> pci 0001:81:00.0: found [1095:3531] class 000180 header type 00
> pci 0001:81:00.0: reg 10: [mem 0x00000000-0x0000007f 64bit]
> pci 0001:81:00.0: reg 18: [mem 0x00000000-0x00001fff 64bit]
> pci 0001:81:00.0: reg 20: [io  0x0000-0x007f]
> pci 0001:81:00.0: supports D1 D2
> pci_bus 0001:81: fixups for bus
> pci 0001:80:00.0: PCI bridge to [bus 81-bf]
> pci 0001:80:00.0:   bridge window [io  0x0000-0x0000] (disabled)
> pci 0001:80:00.0:   bridge window [mem 0x00000000-0x000fffff] (disabled)
> pci 0001:80:00.0:   bridge window [mem 0x00000000-0x000fffff pref] (disabled)
> irq: irq 16 on host /interrupt-controller3 mapped to virtual irq 19
> pci_bus 0001:81: bus scan returning with max=81
> pci 0001:80:00.0: scanning [bus 81-bf] behind bridge, pass 1
> pci_bus 0001:80: bus scan returning with max=bf
> pci_bus 0002:00: scanning bus
> pci_bus 0002:00: fixups for bus
> pci_bus 0002:00: bus scan returning with max=00
> pci 0000:40:00.0: BAR 0: assigned [mem 0xe00000000-0xe7fffffff pref]
> pci 0000:40:00.0: BAR 0: set to [mem 0xe00000000-0xe7fffffff pref] (PCI address [0x80000000-0xffffffff]
> pci 0000:40:00.0: PCI bridge to [bus 41-7f]
> pci 0000:40:00.0:   bridge window [io  disabled]
> pci 0000:40:00.0:   bridge window [mem disabled]
> pci 0000:40:00.0:   bridge window [mem pref disabled]
> pci 0001:80:00.0: BAR 0: assigned [mem 0xe80000000-0xeffffffff pref]
> pci 0001:80:00.0: BAR 0: set to [mem 0xe80000000-0xeffffffff pref] (PCI address [0x80000000-0xffffffff]
> pci 0001:80:00.0: BAR 8: can't assign mem (size 0x100000)
> pci 0001:80:00.0: BAR 7: assigned [io  0xfffe1000-0xfffe1fff]
> pci 0001:81:00.0: BAR 2: can't assign mem (size 0x2000)
> pci 0001:81:00.0: BAR 0: can't assign mem (size 0x80)
> pci 0001:81:00.0: BAR 4: assigned [io  0xfffe1000-0xfffe107f]
> pci 0001:81:00.0: BAR 4: set to [io  0xfffe1000-0xfffe107f] (PCI address [0x1000-0x107f]
> pci 0001:80:00.0: PCI bridge to [bus 81-bf]
> pci 0001:80:00.0:   bridge window [io  0xfffe1000-0xfffe1fff]
> pci 0001:80:00.0:   bridge window [mem disabled]
> pci 0001:80:00.0:   bridge window [mem pref disabled]
> pci_bus 0000:40: resource 0 [io  0xfffc0000-0xfffcffff]
> pci_bus 0000:40: resource 1 [mem 0xe00000000-0xe7fffffff]
> pci_bus 0001:80: resource 0 [io  0xfffe0000-0xfffeffff]
> pci_bus 0001:80: resource 1 [mem 0xe80000000-0xeffffffff]
> pci_bus 0001:81: resource 0 [io  0xfffe1000-0xfffe1fff]
> pci_bus 0002:00: resource 0 [io  0x0000-0xffff]
> pci_bus 0002:00: resource 1 [mem 0xd80000000-0xdffffffff]
> bio: create slab <bio-0> at 0
> i2c-core: driver [pcf857x] registered
> vgaarb: loaded
> SCSI subsystem initialized
> libata version 3.00 loaded.
> Switching to clocksource timebase
> NET: Registered protocol family 2
> IP route cache hash table entries: 4096 (order: 2, 16384 bytes)
> TCP established hash table entries: 16384 (order: 5, 131072 bytes)
> TCP bind hash table entries: 16384 (order: 4, 65536 bytes)
> TCP: Hash tables configured (established 16384 bind 16384)
> TCP reno registered
> UDP hash table entries: 256 (order: 0, 4096 bytes)
> UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)
> NET: Registered protocol family 1
> RPC: Registered udp transport module.
> RPC: Registered tcp transport module.
> RPC: Registered tcp NFSv4.1 backchannel transport module.
> Trying to unpack rootfs image as initramfs...
> rootfs image is not initramfs (no cpio magic); looks like an initrd
> Freeing initrd memory: 4034k freed
> irq: irq 1 on host /interrupt-controller1 mapped to virtual irq 20
> irq: irq 1 on host /interrupt-controller0 mapped to virtual irq 21
> irq: irq 29 on host /interrupt-controller0 mapped to virtual irq 29
> irq: irq 6 on host /interrupt-controller2 mapped to virtual irq 22
> irq: irq 7 on host /interrupt-controller2 mapped to virtual irq 23
> irq: irq 3 on host /interrupt-controller2 mapped to virtual irq 24
> irq: irq 4 on host /interrupt-controller2 mapped to virtual irq 25
> irq: irq 5 on host /interrupt-controller2 mapped to virtual irq 26
> irq: irq 29 on host /interrupt-controller2 mapped to virtual irq 27
> irq: irq 30 on host /interrupt-controller2 mapped to virtual irq 28
> irq: irq 28 on host /interrupt-controller2 mapped to virtual irq 31
> irq: irq 26 on host /interrupt-controller1 mapped to virtual irq 32
> irq: irq 12 on host /interrupt-controller0 mapped to virtual irq 33
> irq: irq 0 on host /interrupt-controller3 mapped to virtual irq 34
> irq: irq 5 on host /interrupt-controller3 mapped to virtual irq 35
> irq: irq 6 on host /interrupt-controller1 mapped to virtual irq 36
> irq: irq 2 on host /interrupt-controller0 mapped to virtual irq 37
> irq: irq 3 on host /interrupt-controller0 mapped to virtual irq 38
> irq: irq 16 on host /interrupt-controller2 mapped to virtual irq 39
> irq: irq 20 on host /interrupt-controller2 mapped to virtual irq 40
> irq: irq 17 on host /interrupt-controller2 mapped to virtual irq 41
> irq: irq 21 on host /interrupt-controller2 mapped to virtual irq 42
> msgmni has been set to 1007
> Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
> io scheduler noop registered
> io scheduler deadline registered
> io scheduler cfq registered (default)
> pci_hotplug: PCI Hot Plug PCI Core version: 0.5
> pciehp: PCI Express Hot Plug Controller Driver version: 0.4
> Serial: 8250/16550 driver, 2 ports, IRQ sharing enabled
> serial8250.0: ttyS0 at MMIO 0x4ef600300 (irq = 20) is a U6_16550A
> console [ttyS0] enabled
> serial8250.0: ttyS1 at MMIO 0x4ef600400 (irq = 21) is a U6_16550A
> 4ef600300.serial: ttyS0 at MMIO 0x4ef600300 (irq = 20) is a 16550
> 4ef600400.serial: ttyS1 at MMIO 0x4ef600400 (irq = 21) is a 16550
> brd: module loaded
> i2c-core: driver [at24] registered
> sata_sil24 0001:81:00.0: version 1.1
> sata_sil24 0001:81:00.0: enabling device (0000 -> 0001)
> sata_sil24: probe of 0001:81:00.0 failed with error -22
> PPC 4xx OCP EMAC driver, version 3.54
> MAL v2 /plb/mcmal, 2 TX channels, 16 RX channels
> ZMII /plb/opb/emac-zmii@ef600d00 initialized
> RGMII /plb/opb/emac-rgmii@ef601500 initialized with MDIO support
> TAH /plb/opb/emac-tah@ef601350 initialized
> TAH /plb/opb/emac-tah@ef601450 initialized
> /plb/opb/emac-rgmii@ef601500: input 0 in RGMII mode
> eth0: EMAC-0 /plb/opb/ethernet@ef600e00, MAC 00:10:ec:01:02:b9
> eth0: found Generic MII PHY (0x00)
> /plb/opb/emac-rgmii@ef601500: input 1 in RGMII mode
> eth1: EMAC-1 /plb/opb/ethernet@ef600f00, MAC 00:10:ec:81:02:b9
> eth1: found Generic MII PHY (0x01)
> i2c /dev entries driver
> i2c-core: driver [dev_driver] registered
> of:ibm-iic 4ef600700.i2c: clckdiv = 9
> i2c i2c-0: adapter [IBM IIC] registered
> irq: irq 25 on host /interrupt-controller2 mapped to virtual irq 43
> i2c 0-0068: uevent
> i2c i2c-0: client [m41t80] registered with bus id 0-0068
> irq: irq 20 on host /interrupt-controller1 mapped to virtual irq 44
> i2c 0-0048: uevent
> i2c i2c-0: client [ad7414] registered with bus id 0-0048
> i2c-dev: adapter [IBM IIC] registered as minor 0
> of:ibm-iic 4ef600700.i2c: using standard (100 kHz) mode
> of:ibm-iic 4ef600800.i2c: clckdiv = 9
> i2c i2c-1: adapter [IBM IIC] registered
> i2c-dev: adapter [IBM IIC] registered as minor 1
> of:ibm-iic 4ef600800.i2c: using standard (100 kHz) mode
> Netfilter messages via NETLINK v0.30.
> nf_conntrack version 0.5.0 (8057 buckets, 32228 max)
> ctnetlink v0.93: registering with nfnetlink.
> xt_time: kernel timezone is -0000
> IPVS: Registered protocols ()
> IPVS: Connection hash table configured (size=4096, memory=32Kbytes)
> IPVS: ipvs loaded.
> ip_tables: (C) 2000-2006 Netfilter Core Team
> ipt_CLUSTERIP: ClusterIP Version 0.8 loaded successfully
> arp_tables: (C) 2002 David S. Miller
> TCP cubic registered
> NET: Registered protocol family 17
> Bridge firewalling registered
> Ebtables v2.0 registered
> eth0: link is down
> IP-Config: Complete:
>      device=eth0, addr=169.254.0.180, mask=255.255.255.0, gw=169.254.0.100,
>      host=tanosx, domain=, nis-domain=(none),
>      bootserver=169.254.0.100, rootserver=169.254.0.100, rootpath=
> RAMDISK: gzip image found at block 0
> eth0: link is up, 100 FDX, pause enabled
> VFS: Mounted root (ext2 filesystem) on device 1:0.
> Freeing unused kernel memory: 184k init
> 
> /proc/iomem
> 
> 4ef600300-4ef600307 : serial
> 4ef600400-4ef600407 : serial
> d80000000-dffffffff : /plb/pci@c0ec00000
> e00000000-e7fffffff : /plb/pciex@d00000000
>   e00000000-e7fffffff : 0000:40:00.0
> e80000000-effffffff : /plb/pciex@d20000000
>   e80000000-effffffff : 0001:80:00.0
> 
> /proc/ioports
> 
> 00000000-0000ffff : /plb/pci@c0ec00000
>   00000000-00000fff : Legacy IO
> fffc0000-fffcffff : /plb/pciex@d00000000
>   fffc0000-fffc0fff : Legacy IO
> fffe0000-fffeffff : /plb/pciex@d20000000
>   fffe0000-fffe0fff : Legacy IO
>   fffe1000-fffe1fff : PCI Bus 0001:81
>     fffe1000-fffe107f : 0001:81:00.0

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: powerpc/4xx: Regression failed on sil24 (and other) drivers
  2011-06-27 11:31   ` Ayman El-Khashab
  2011-06-27 12:29     ` Benjamin Herrenschmidt
@ 2011-06-29  1:42     ` Benjamin Herrenschmidt
  2011-06-29 18:13       ` Ayman El-Khashab
  1 sibling, 1 reply; 6+ messages in thread
From: Benjamin Herrenschmidt @ 2011-06-29  1:42 UTC (permalink / raw)
  To: Ayman El-Khashab; +Cc: cam, linuxppc-dev

On Mon, 2011-06-27 at 06:31 -0500, Ayman El-Khashab wrote:
> On Mon, Jun 27, 2011 at 08:19:56PM +1000, Benjamin Herrenschmidt wrote:
> > On Sat, 2011-06-25 at 18:52 -0500, Ayman El-Khashab wrote:
> > > I noticed during a recent development with the 460SX that a
> > > simple device that once worked stopped.  I did a bisect to
> > > find the offending commit and it turns out to be this one:
> > > 
> > > 0e52247a2ed1f211f0c4f682dc999610a368903f is the first bad
> > > commit
> > > commit 0e52247a2ed1f211f0c4f682dc999610a368903f
> > > Author: Cam Macdonell <cam@cs.ualberta.ca>
> > > Date:   Tue Sep 7 17:25:20 2010 -0700
> > > 
> > >     PCI: fix pci_resource_alignment prototype
> > > 

Ok, let's see what I can dig out of those logs (sorry for the delay)

Let's start with iomem & ioport, stripped of the legacy & common stuff:

/proc/iomem, bad:

e00000000-e7fffffff : /plb/pciex@d00000000
  e00000000-e7fffffff : 0000:40:00.0
e80000000-effffffff : /plb/pciex@d20000000
  e80000000-effffffff : 0001:80:00.0

good:

e00000000-e7fffffff : /plb/pciex@d00000000
e80000000-effffffff : /plb/pciex@d20000000
  e80000000-e800fffff : PCI Bus 0001:81
    e80000000-e80001fff : 0001:81:00.0
      e80000000-e80001fff : sata_sil24
    e80002000-e8000207f : 0001:81:00.0
      e80002000-e8000207f : sata_sil24

So now that's interesting, you have a device at 0000:40:00.0 that
appears on your first PHB in the "bad" case and doesn't show up in the
"good" case.

In addition, on the "other" PHB, the bus itself doesn't show up in the
bad case. (Let's ignore IOs and focus on mem. for now).

Let's see what lead us to that from the logs. First setup before probing
is all identical. The device at 0000:40:00.0 is detected in both cases,
it's the root complex bridge. So the scanning is identical as expected.

Now the fixup/resource allocation, we start seeing some differences:

Bad:

pci 0000:40:00.0: BAR 0: assigned [mem 0xe00000000-0xe7fffffff pref]
pci 0000:40:00.0: BAR 0: set to [mem 0xe00000000-0xe7fffffff pref] (PCI address [0x80000000-0xffffffff]

vs Good:

pci 0000:40:00.0: BAR 0: can't assign mem pref (size 0x80000000)

So the "bad" case succeeds in giving out resources to the root complex,
while the "good" case fails... fun.

And similarily for the other PHB, bad:

pci 0001:80:00.0: BAR 0: assigned [mem 0xe80000000-0xeffffffff pref]
pci 0001:80:00.0: BAR 0: set to [mem 0xe80000000-0xeffffffff pref] (PCI address [0x80000000-0xffffffff]

vs good:

pci 0001:80:00.0: BAR 0: can't assign mem pref (size 0x80000000)

This then goes down to the "bad" case:

pci 0001:80:00.0: BAR 8: can't assign mem (size 0x100000)
pci 0001:80:00.0: BAR 7: assigned [io  0xfffe1000-0xfffe1fff]
pci 0001:81:00.0: BAR 2: can't assign mem (size 0x2000)
pci 0001:81:00.0: BAR 0: can't assign mem (size 0x80)

while the "good" one succeeds assigning BAR 8,2 and 0 :

pci 0001:80:00.0: BAR 8: assigned [mem 0xe80000000-0xe800fffff]
pci 0001:81:00.0: BAR 2: assigned [mem 0xe80000000-0xe80001fff 64bit]
pci 0001:81:00.0: BAR 2: set to [mem 0xe80000000-0xe80001fff 64bit] (PCI address [0x80000000-0x80001fff]
pci 0001:81:00.0: BAR 0: assigned [mem 0xe80002000-0xe8000207f 64bit]
pci 0001:81:00.0: BAR 0: set to [mem 0xe80002000-0xe8000207f 64bit] (PCI address [0x80002000-0x8000207f]

It looks to me like the "BAR 0" of the host bridges are basically taking the
resource aways from the rest of the devices. Now "BAR 0" are not bridge
resources, which would have been OK, but they are MMIO resources of the
bridge itself.

On 44x, the problem is that those bridges (stupidly) expose BARs that represent
main memory (inbound DMA). It would make sense if these weren't host bridges
but in this case that's totally non sensical (and thus IMHO a HW bug).

I thought we had code to "hide" them to avoid that problem, so I wonder what's
going on... If you look at arch/powerpc/sysdev/ppc4xx_pci.c, there's this
quirk:

static void fixup_ppc4xx_pci_bridge(struct pci_dev *dev)
{
	struct pci_controller *hose;
	int i;

	if (dev->devfn != 0 || dev->bus->self != NULL)
		return;

	hose = pci_bus_to_host(dev->bus);
	if (hose == NULL)
		return;

	if (!of_device_is_compatible(hose->dn, "ibm,plb-pciex") &&
	    !of_device_is_compatible(hose->dn, "ibm,plb-pcix") &&
	    !of_device_is_compatible(hose->dn, "ibm,plb-pci"))
		return;

	if (of_device_is_compatible(hose->dn, "ibm,plb440epx-pci") ||
		of_device_is_compatible(hose->dn, "ibm,plb440grx-pci")) {
		hose->indirect_type |= PPC_INDIRECT_TYPE_BROKEN_MRM;
	}

	/* Hide the PCI host BARs from the kernel as their content doesn't
	 * fit well in the resource management
	 */
	for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
		dev->resource[i].start = dev->resource[i].end = 0;
		dev->resource[i].flags = 0;
	}

	printk(KERN_INFO "PCI: Hiding 4xx host bridge resources %s\n",
	       pci_name(dev));
}
DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, fixup_ppc4xx_pci_bridge);

This should basically "clear out" the bridge resources for the pcie
bridge itself, which appears to haven't been done in your case.

I suspect you don't have CONFIG_PCI_QUIRKS enabled... I think that's the
cause of your problem.

It looks like this config option controls both compiling the "generic"
quirks in from drivers/pci/quirk.c, and the actually mechanism for
having quirks in the first place (pci_fixup_device() goes away without
that config option).

I think we probably want to unconditionally select that if CONFIG_PCI is
enabled in arch/powerpc...

Can you try changing it and tell us if that helps ?

Cheers,
Ben.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: powerpc/4xx: Regression failed on sil24 (and other) drivers
  2011-06-29  1:42     ` Benjamin Herrenschmidt
@ 2011-06-29 18:13       ` Ayman El-Khashab
  0 siblings, 0 replies; 6+ messages in thread
From: Ayman El-Khashab @ 2011-06-29 18:13 UTC (permalink / raw)
  To: Benjamin Herrenschmidt; +Cc: cam, linuxppc-dev

On Wed, Jun 29, 2011 at 11:42:03AM +1000, Benjamin Herrenschmidt wrote:
> On Mon, 2011-06-27 at 06:31 -0500, Ayman El-Khashab wrote:
> > On Mon, Jun 27, 2011 at 08:19:56PM +1000, Benjamin Herrenschmidt wrote:
> > > On Sat, 2011-06-25 at 18:52 -0500, Ayman El-Khashab wrote:
> > > > I noticed during a recent development with the 460SX that a
> > > > simple device that once worked stopped.  I did a bisect to
> > > > find the offending commit and it turns out to be this one:
> > > > 
> > > > 0e52247a2ed1f211f0c4f682dc999610a368903f is the first bad
> > > > commit
> > > > commit 0e52247a2ed1f211f0c4f682dc999610a368903f
> > > > Author: Cam Macdonell <cam@cs.ualberta.ca>
> > > > Date:   Tue Sep 7 17:25:20 2010 -0700
> > > > 
> > > >     PCI: fix pci_resource_alignment prototype
> > > > 
> 
....
> 
> I suspect you don't have CONFIG_PCI_QUIRKS enabled... I think that's the
> cause of your problem.
> 
> It looks like this config option controls both compiling the "generic"
> quirks in from drivers/pci/quirk.c, and the actually mechanism for
> having quirks in the first place (pci_fixup_device() goes away without
> that config option).
> 
> I think we probably want to unconditionally select that if CONFIG_PCI is
> enabled in arch/powerpc...
> 
> Can you try changing it and tell us if that helps ?

Yes, that fixed our problem, thanks for your time.  I am
going to try to get the MSI to work.

Ayman

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2011-06-29 18:20 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-06-25 23:52 powerpc/4xx: Regression failed on sil24 (and other) drivers Ayman El-Khashab
2011-06-27 10:19 ` Benjamin Herrenschmidt
2011-06-27 11:31   ` Ayman El-Khashab
2011-06-27 12:29     ` Benjamin Herrenschmidt
2011-06-29  1:42     ` Benjamin Herrenschmidt
2011-06-29 18:13       ` Ayman El-Khashab

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).