I am facing same problem with PCIE driver in new Linux kernel
shipped along with SDK-V1.5-20131219 .I was using old
kernel Linux version 3.0.48 previously and now updated to
Linux version 3.8.13-rt9 inorder to add IEEE1588 support in
Eatherner driver . After updating to the new kernel ,the device
drivers are not woring properly and i am getting some error
messages in the boot-up . Please find below bootlog snippet
for both old kernel (PCIe working ) and the new one (PCIe not
working )
Working old kernel(linux version 3.0.48)
===============================
PCIe1: disabled
PCIe2: Root Complex, x1, regs @ 0xfe201000
01:00.0 - 13a8:0358 - Simple comm. controller
PCIe2: Bus 00 - 01
PCIe3: disabled
In: serial
Out: serial
Err: serial
SERDES bank 1 reference clock: 100MHz
SERDES bank 2 reference clock: 100MHz
Net: Initializing Fman
Fman1: Uploading microcode version 106.1.4
Change supported feature to 100:FD/HD for addr 6 features(X) 28C
FM1@DTSEC1 connected to Broadcom BCM54616S, address 6
Fiber optic mode active
FM1@DTSEC2 connected to Broadcom BCM54616S, address 7
Change supported feature to 100:FD/HD for addr 12 features(X) 28C
FM1@DTSEC3 connected to Broadcom BCM54616S, address 12
Fiber optic mode active
FM1@DTSEC4 connected to Broadcom BCM54616S, address 9
FM1@DTSEC5 connected to Broadcom BCM54616S, address 10
FM1@DTSEC1, FM1@DTSEC2, FM1@DTSEC3, FM1@DTSEC4, FM1@DTSEC5
Hit any key to stop autoboot: 0
=> boot
Setting bus to 1
Error writing the chip.
NAND read: device 0 offset 0x100000, size 0x500000
5242880 bytes read: OK
NAND read: device 0 offset 0x600000, size 0x100000
1048576 bytes read: OK
WARNING: adjusting available memory to 30000000
## Booting kernel from Legacy Image at 01000000 ...
Image Name: Linux-3.0.48-rt70
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 3972344 Bytes = 3.8 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 00c00000
Booting using the fdt blob at 0x00c00000
Uncompressing Kernel Image ... OK
Loading Device Tree to 03fe5000, end 03fff1a9 ... OK
WARNING: could not find compatible node fsl-usb2-mph or fsl-usb2-dr: FDT_ERR_NOTFOUND.
Using P2041 RDB machine description
Memory CAM mapping: 256/256/256/256 Mb, residual: 0Mb
Linux version 3.0.48-rt70 (root@localhost.localdomain) (gcc version 4.6.2 (GCC) ) #138 SMP PREEMPT RT Fri May 30 17:51:01 IST 2014
No /soc@ffe000000/qman@318000 property 'fsl,qman-fqd', using memblock_alloc(0000000000200000)
No /soc@ffe000000/qman@318000 property 'fsl,qman-pfdr', using memblock_alloc(0000000001000000)
Qman ver:0a01,01,02
No /soc@ffe000000/bman@31a000 property 'fsl,bman-fbpr', using memblock_alloc(0000000001000000)
Bman ver:0a02,01,00
pme: No /soc@ffe000000/pme@316000 property 'fsl,pme-pdsr', using memblock_alloc(0x0000000001000000)
pme: No /soc@ffe000000/pme@316000 property 'fsl,pme-sre', using memblock_alloc(0x0000000000a00000)
No USDPAA memory, no 'usdpaa_mem' bootarg
CPU maps initialized for 1 thread per core
bootconsole [udbg0] enabled
Found FSL PCI host bridge at 0x0000000ffe201000. Firmware bus number: 0->1
PCI host bridge /pcie@ffe201000 ranges:
MEM 0x0000000c20000000..0x0000000c3fffffff -> 0x00000000e0000000
IO 0x0000000ff8010000..0x0000000ff801ffff -> 0x0000000000000000
/pcie@ffe201000: PCICSRBAR @ 0xdf000000
P2041 RDB board from Freescale Semiconductor
Zone PFN ranges:
DMA 0x00000000 -> 0x00040000
Normal empty
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
0: 0x00000000 -> 0x00040000
MMU: Allocated 1088 bytes of context maps for 255 contexts
PERCPU: Embedded 10 pages/cpu @b1083000 s18752 r8192 d14016 u40960
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 260096
Kernel command line: root=/dev/mtdblock4 rootfstype=jffs2 rw console=ttyS0,115200
PID hash table entries: 4096 (order: 2, 16384 bytes)
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 969004k/1048576k available (7824k kernel code, 79572k reserved, 280k data, 553k bss, 276k init)
Kernel virtual memory layout:
* 0xfffdf000..0xfffff000 : fixmap
* 0xfdfe9000..0xfe000000 : early ioremap
* 0xf1000000..0xfdfe9000 : vmalloc & ioremap
Preemptible hierarchical RCU implementation.
RCU debugfs-based tracing is enabled.
NR_IRQS:512 nr_irqs:512 16
mpic: Setting up MPIC " OpenPIC " version 1.2 at ffe040000, max 4 CPUs
mpic: ISU size: 256, shift: 8, mask: ff
mpic: Initializing for 256 sources
clocksource: timebase mult[efffffb] shift[22] registered
Console: colour dummy device 80x25
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
mpic: requesting IPIs...
e500 family performance monitor hardware support registered
Brought up 4 CPUs
devtmpfs: initialized
xor: measuring software checksum speed
8regs : 760.000 MB/sec
8regs_prefetch: 660.000 MB/sec
32regs : 784.000 MB/sec
32regs_prefetch: 677.000 MB/sec
xor: using function: 32regs (784.000 MB/sec)
NET: Registered protocol family 16
EDAC PCI0: Giving out device to module 'MPC85xx_edac' controller 'mpc85xx_pci_err': DEV 'ffe201000.pcie' (INTERRUPT)
MPC85xx_edac acquired irq 493 for PCI Err
MPC85xx_edac PCI err registered
PCI: Probing PCI hardware
pci 0000:00:00.0: ignoring class b20 (doesn't match header type 01)
PCIE error(s) detected
pci 0000:00:00.0: PCI bridge to [bus 01-ff]
PCIE ERR_DR register: 0x80020000
PCIE ERR_CAP_STAT register: 0x80000001
PCIE ERR_CAP_R0 register: 0x00000800
PCIE ERR_CAP_R1 register: 0x00000000
PCIE ERR_CAP_R2 register: 0x00000000
PCIE ERR_CAP_R3 register: 0x00000000
pci 0000:00:00.0: PCI bridge to [bus 01-01]
pci 0000:00:00.0: bridge window [io 0xfdfea000-0xfdff9fff]
pci 0000:00:00.0: bridge window [mem 0xc20000000-0xc3fffffff]
pci 0000:00:00.0: bridge window [mem pref disabled]
bio: create slab <bio-0> at 0
raid6: int32x1 62 MB/s
raid6: int32x2 112 MB/s
raid6: int32x4 189 MB/s
raid6: int32x8 166 MB/s
raid6: using algorithm int32x4 (189 MB/s)
vgaarb: loaded
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
Not working new kernel(linux version 3.8.13)
===============================
PCIe1: disabled
PCIe2: Root Complex, x1, regs @ 0xfe201000
01:00.0 - 13a8:0358 - Simple comm. controller
PCIe2: Bus 00 - 01
PCIe3: disabled
In: serial
Out: serial
Err: serial
SERDES bank 1 reference clock: 100MHz
SERDES bank 2 reference clock: 100MHz
Net: Initializing Fman
Fman1: Uploading microcode version 106.1.4
Change supported feature to 100:FD/HD for addr 6 features(X) 28C
FM1@DTSEC1 connected to Broadcom BCM54616S, address 6
Fiber optic mode active
FM1@DTSEC2 connected to Broadcom BCM54616S, address 7
Change supported feature to 100:FD/HD for addr 12 features(X) 28C
FM1@DTSEC3 connected to Broadcom BCM54616S, address 12
Fiber optic mode active
FM1@DTSEC4 connected to Broadcom BCM54616S, address 9
FM1@DTSEC5 connected to Broadcom BCM54616S, address 10
FM1@DTSEC1, FM1@DTSEC2, FM1@DTSEC3, FM1@DTSEC4, FM1@DTSEC5
Hit any key to stop autoboot: 0
Setting bus to 1
Error writing the chip.
NAND read: device 0 offset 0x100000, size 0x500000
5242880 bytes read: OK
NAND read: device 0 offset 0x600000, size 0x100000
1048576 bytes read: OK
WARNING: adjusting available memory to 30000000
## Booting kernel from Legacy Image at 01000000 ...
Image Name: Linux-3.8.13-rt9
Image Type: PowerPC Linux Kernel Image (gzip compressed)
Data Size: 4542147 Bytes = 4.3 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 00c00000
Booting using the fdt blob at 0x00c00000
Uncompressing Kernel Image ... OK
Loading Device Tree to 03fe5000, end 03fff1a9 ... OK
WARNING: could not find compatible node fsl-usb2-mph or fsl-usb2-dr: FDT_ERR_NOTFOUND.
Using P2041 RDB machine description
Memory CAM mapping: 256/256/256/256 Mb, residual: 0Mb
Linux version 3.8.13-rt9 (root@localhost.localdomain) (gcc version 4.7.3 (GCC) ) #7 SMP PREEMPT RT Wed Aug 6 13:16:30 IST 201 4
No /soc@ffe000000/qman@318000 property 'fsl,qman-fqd', using memblock_alloc(0000000000200000)
No /soc@ffe000000/qman@318000 property 'fsl,qman-pfdr', using memblock_alloc(0000000002000000)
Qman ver:0a01,01,02
No /soc@ffe000000/bman@31a000 property 'fsl,bman-fbpr', using memblock_alloc(0000000001000000)
Bman ver:0a02,01,00
pme: No /soc@ffe000000/pme@316000 property 'fsl,pme-pdsr', using memblock_alloc(0x0000000001000000)
pme: No /soc@ffe000000/pme@316000 property 'fsl,pme-sre', using memblock_alloc(0x0000000000a00000)
No USDPAA memory, no 'usdpaa_mem' bootarg
CPU maps initialized for 1 thread per core
setup_arch: bootmem
arch: exit
bootconsole [udbg0] enabled
P2041 RDB board from Freescale Semiconductor
Zone ranges:
DMA [mem 0x00000000-0x3fffffff]
Normal empty
Movable zone start for each node
Early memory node ranges
node 0: [mem 0x00000000-0x3fffffff]
MMU: Allocated 1088 bytes of context maps for 255 contexts
PERCPU: Embedded 8 pages/cpu @b11de000 s10752 r8192 d13824 u32768
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 260096
Kernel command line: root=/dev/mtdblock4 rootfstype=jffs2 rw console=ttyS0,115200
PID hash table entries: 4096 (order: 2, 16384 bytes)
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 885312k/1048576k available (9156k kernel code, 163264k reserved, 340k data, 552k bss, 268k init)
Kernel virtual memory layout:
* 0xfffdf000..0xfffff000 : fixmap
* 0xfdffb000..0xfe000000 : early ioremap
* 0xf1000000..0xfdffb000 : vmalloc & ioremap
Preemptible hierarchical RCU implementation.
RCU debugfs-based tracing is enabled.
RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
NR_IRQS:512 nr_irqs:512 16
mpic: Setting up MPIC " OpenPIC " version 1.2 at ffe040000, max 4 CPUs
mpic: ISU size: 512, shift: 9, mask: 1ff
mpic: Initializing for 512 sources
clocksource: timebase mult[3bffffec] shift[24] registered
Console: colour dummy device 80x25
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
mpic: requesting IPIs...
e500 family performance monitor hardware support registered
Brought up 4 CPUs
devtmpfs: initialized
xor: measuring software checksum speed
8regs : 762.000 MB/sec
8regs_prefetch: 662.000 MB/sec
32regs : 820.000 MB/sec
32regs_prefetch: 727.000 MB/sec
xor: using function: 32regs (820.000 MB/sec)
NET: Registered protocol family 16
Found FSL PCI host bridge at 0x0000000ffe201000. Firmware bus number: 0->1
PCI host bridge /pcie@ffe201000 (primary) ranges:
MEM 0x0000000c20000000..0x0000000c3fffffff -> 0x00000000e0000000
IO 0x0000000ff8010000..0x0000000ff801ffff -> 0x0000000000000000
/pcie@ffe201000: PCICSRBAR @ 0xdf000000
EDAC PCI0: Giving out device to module 'MPC85xx_edac' controller 'mpc85xx_pci_err': DEV 'ffe201000.pcie' (INTERRUPT)
MPC85xx_edac acquired irq 481 for PCI Err
MPC85xx_edac PCI err registered
PCI: Probing PCI hardware
fsl-pci ffe201000.pcie: PCI host bridge to bus 0000:00
pci_bus 0000:00: root bus resource [io 0x0000-0xffff]
pci_bus 0000:00: root bus resource [mem 0xc20000000-0xc3fffffff] (bus address [0xe0000000-0xffffffff])
pci_bus 0000:00: root bus resource [bus 00-ff]
PCIE error(s) detected
PCIE ERR_DR register: 0x80020000
PCIE ERR_CAP_STAT register: 0x80000001
PCIE ERR_CAP_R0 register: 0x00000800
pci 0000:00:00.0: PCI bridge to [bus 01-ff]
PCIE ERR_CAP_R1 register: 0x00000000
PCIE ERR_CAP_R2 register: 0x00000000
PCIE ERR_CAP_R3 register: 0x00000000
PCI: Cannot allocate resource region 0 of device 0000:00:00.0, will remap
pci 0000:00:00.0: BAR 0: can't assign mem (size 0x1000000)
pci 0000:00:00.0: BAR 9: can't assign mem pref (size 0x200000)
pci 0000:00:00.0: PCI bridge to [bus 01]
pci 0000:00:00.0: bridge window [io 0x0000-0xffff]
pci 0000:00:00.0: bridge window [mem 0xc20000000-0xc3fffffff]
bio: create slab <bio-0> at 0
raid6: int32x1 164 MB/s
raid6: int32x2 227 MB/s
raid6: int32x4 299 MB/s
raid6: int32x8 217 MB/s
raid6: using algorithm int32x4 (299 MB/s)
raid6: using intx1 recovery algorithm
vgaarb: loaded
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
Please let me know how to fix the same
I read following mail thread , but couldn't understand what is the problem .
linuxppc-dev - Re: PCIE device errors after linux kernel upgrade | Threaded View