This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

XIO2001: PCIe/PCI Bridge not always detected

Part Number: XIO2001

Hello,

We have a custom PCB based on T1042 processor demo-board T1042D4RDB. We have an issue with a PCIe to PCI Bridge (Texas Instruments XIO2001) that we added to the design.

When we first boot the board, the bridge is correctly detected during u-boot boot procedure:

PCIe3: Root Complex, x1 gen1, regs @ 0xfe260000
04:00.0 - 104c:8240 - Bridge device

Then it is not seen by the u-boot command "pci":
=> pci 3
Scanning PCI devices on bus 3
BusDevFun VendorId DeviceId Device Class Sub-Class
_____________________________________________________________

Then after booting Linux, the bridge is not seen by "lspci" command :

root@t1042d4rdb:~# lspci
00:00.0 Class 0604: 1957:0825
04:00.0 Class 0604: 1957:0825
02:00.0 Class 0604: 1957:0825
03:00.0 Class 0500: 10ee:0007
06:00.0 Class 0604: 1957:0825

If we try to reboot the board, the boot procedure stops at "PCIe3", which is detected as "gen2":

PCIe3: Root Complex, x1 gen2, regs @ 0xfe260000


If we turn off the board and start it again after some time, the PCIe to PCI bridge is detected again in u-boot.

The supply voltages and the 125MHz clock seem OK.
We measured 97ms delay between the two reset signals PERST and GRST (specified as >100ms in the datasheet).
We tried to increase this delay but the behavior is still the same.

Thank you,

Hadrien

PS: I attached schematics and full log to this message.

TI - Log Bridge XIO2001.txt

U-Boot 2016.012.0+ga9b437f (Oct 31 2018 - 13:30:16 +0100)

CPU0:  T1042, Version: 1.1, (0x85200211)
Core:  e5500, Version: 2.1, (0x80241021)
Clock Configuration:
       CPU0:1400 MHz, CPU1:1400 MHz, CPU2:1400 MHz, CPU3:1400 MHz,
       CCB:600  MHz,
       DDR:800  MHz (1600 MT/s data rate) (Asynchronous), IFC:150  MHz
       QE:300  MHz
       FMAN1: 600 MHz
       QMAN:  300 MHz
       PME:   300 MHz
L1:    D-cache 32 KiB enabled
       I-cache 32 KiB enabled
Reset Configuration Word (RCW):
       00000000: 0c18000e 0e000000 00000000 00000000
       00000010: 86000002 40000002 ec027000 01000000
       00000020: 00000000 00000000 00000000 00030810
       00000030: 00000000 00fe000f 00000000 00000000
I2C:   ready
Board: T1042D4RDB
Board rev: 0x00 CPLD ver: 0x00, vBank: 0
SPI:   ready
DRAM:  Initializing....using SPD
Detected UDIMM 75.B93GN.G000B
Not enough bank(chip-select) for CS0+CS1 on controller 0, interleaving disabled!
2 GiB left unmapped
4 GiB (DDR4, 64-bit, CL=11, ECC on)
Flash: 256 MiB
L2:    256 KiB enabled
Corenet Platform Cache: 256 KiB enabled
Using SERDES1 Protocol: 134 (0x86)
NAND:  1024 MiB
MMC:   FSL_SDHC: 0
Firmware 'Microcode version 0.0.1 for T1040 r1.0' for 1040 V1.0
QE: uploading microcode 'Microcode for T1040 r1.0' version 0.0.1
PCIe1: Root Complex, no link, regs @ 0xfe240000
PCIe1: Bus 00 - 00
PCIe2: Root Complex, x1 gen1, regs @ 0xfe250000
  02:00.0     - 10ee:0007 - Memory controller
PCIe2: Bus 01 - 02
PCIe3: Root Complex, x1 gen1, regs @ 0xfe260000
  04:00.0     - 104c:8240 - Bridge device
PCIe3: Bus 03 - 05
PCIe4: Root Complex, no link, regs @ 0xfe270000
PCIe4: Bus 06 - 06
In:    serial
Out:   serial
Err:   serial
SERDES Reference : 0x86
Net:   Initializing Fman
Fman1: Uploading microcode version 106.4.18
Could not get PHY for FSL_MDIO0: addr 2
Failed to connect
Could not get PHY for FSL_MDIO0: addr 4
Failed to connect
Could not get PHY for FSL_MDIO0: addr 5
Failed to connect
FM1@DTSEC1, FM1@DTSEC2, FM1@DTSEC3 [PRIME], FM1@DTSEC4, FM1@DTSEC5
Hit any key to stop autoboot:  0
=> pci
Scanning PCI devices on bus 0
BusDevFun  VendorId   DeviceId   Device Class       Sub-Class
_____________________________________________________________
=> pci 3
Scanning PCI devices on bus 3
BusDevFun  VendorId   DeviceId   Device Class       Sub-Class
_____________________________________________________________
=> pci 2
Scanning PCI devices on bus 2
BusDevFun  VendorId   DeviceId   Device Class       Sub-Class
_____________________________________________________________
02.00.00   0x10ee     0x0007     Memory controller       0x00
=> pci 4
Scanning PCI devices on bus 4
BusDevFun  VendorId   DeviceId   Device Class       Sub-Class
_____________________________________________________________
=> pci 3
Scanning PCI devices on bus 3
BusDevFun  VendorId   DeviceId   Device Class       Sub-Class
_____________________________________________________________
=> boot
WARNING: adjusting available memory to 30000000
## Booting kernel from Legacy Image at e8020000 ...
   Image Name:   Linux-4.1.8-rt8+gbd51baf
   Image Type:   PowerPC Linux Kernel Image (gzip compressed)
   Data Size:    4641554 Bytes = 4.4 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at e9300000 ...
   Image Name:   fsl-image-core-t1042d4rdb-201605
   Image Type:   PowerPC Linux RAMDisk Image (gzip compressed)
   Data Size:    31556452 Bytes = 30.1 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at e8800000
   Booting using the fdt blob at 0xe8800000
   Uncompressing Kernel Image ... OK
   Loading Ramdisk to 2e1e7000, end 2ffff364 ... OK
   Loading Device Tree to 03fe4000, end 03fff9f9 ... OK
Reserved memory: initialized node bman-fbpr, compatible id fsl,bman-fbpr
Reserved memory: initialized node qman-fqd, compatible id fsl,qman-fqd
Reserved memory: initialized node qman-pfdr, compatible id fsl,qman-pfdr
Reserved memory: initialized node pme-pdsr, compatible id fsl,pme-pdsr
Reserved memory: initialized node pme-sre, compatible id fsl,pme-sre
Using CoreNet Generic machine description
Memory CAM mapping: 256/256/256 Mb, residual: 3328Mb
Linux version 4.1.8-rt8+gbd51baf (jenkins@mercury) (gcc version 4.9.2 (GCC) ) #1 SMP Sun May 15 03:47:30 CST 2016
Found initrd at 0xee1e7000:0xeffff364
CPU maps initialized for 1 thread per core
bootconsole [udbg0] enabled
setup_arch: initmem
CoreNet Generic board
arch: exit
Zone ranges:
  DMA      [mem 0x0000000000000000-0x000000002fffffff]
  Normal   empty
  HighMem  [mem 0x0000000030000000-0x00000000ffffffff]
Movable zone start for each node
Early memory node ranges
  node   0: [mem 0x0000000000000000-0x00000000ffffffff]
Initmem setup node 0 [mem 0x0000000000000000-0x00000000ffffffff]
MMU: Allocated 1088 bytes of context maps for 255 contexts
PERCPU: Embedded 12 pages/cpu @ec15e000 s19148 r8192 d21812 u49152
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 1047040
Kernel command line: root=/dev/ram rw console=ttyS0,115200 ramdisk_size=1000000
log_buf_len individual max cpu contribution: 4096 bytes
log_buf_len total cpu_extra contributions: 12288 bytes
log_buf_len min size: 16384 bytes
log_buf_len: 32768 bytes
early log buf free: 13268(80%)
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)
Sorting __ex_table...
Memory: 3969016K/4194304K available (7220K kernel code, 300K rwdata, 2016K rodata, 324K init, 458K bss, 225288K reserved, 0K cma-reserved, 3323892K highmem)
Kernel virtual memory layout:
  * 0xfff5f000..0xfffff000  : fixmap
  * 0xffc00000..0xffe00000  : highmem PTEs
  * 0xffbfd000..0xffc00000  : early ioremap
  * 0xf1000000..0xffbfd000  : vmalloc & ioremap
Hierarchical RCU implementation.
        RCU debugfs-based tracing is enabled.
        Additional per-CPU info printed with stalls.
        RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
RCU: Adjusting geometry for rcu_fanout_leaf=16, 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: mask: 0xffffffffffffffff max_cycles: 0x8a60dd6a9, max_idle_ns: 440795204056 ns
clocksource: timebase mult[1aaaaaab] shift[24] registered
Console: colour dummy device 80x25
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
e500 family performance monitor hardware support registered
Brought up 4 CPUs
devtmpfs: initialized
clocksource jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
NET: Registered protocol family 16
Bman ver:0a02,02,01
qman-fqd addr 0xff000000 size 0x800000
qman-pfdr addr 0xfc000000 size 0x2000000
Qman ver:0a01,03,01,03

Found FSL PCI host bridge at 0x0000000ffe240000. Firmware bus number: 0->0
PCI host bridge /pcie@ffe240000  ranges:
 MEM 0x0000000c00000000..0x0000000c0fffffff -> 0x00000000e0000000
  IO 0x0000000ff8000000..0x0000000ff800ffff -> 0x0000000000000000
/pcie@ffe240000: PCICSRBAR @ 0xff000000
setup_pci_atmu: end of DRAM 100000000
/pcie@ffe240000: Setup 64-bit PCI DMA window
/pcie@ffe240000: WARNING: Outbound window cfg leaves gaps in memory map. Adjusting the memory map could reduce unnecessary bounce buffering.
/pcie@ffe240000: DMA window size is 0xe0000000
EDAC PCI0: Giving out device to module MPC85xx_edac controller mpc85xx_pci_err: DEV ffe240000.pcie (INTERRUPT)
MPC85xx_edac acquired irq 20 for PCI Err
MPC85xx_edac PCI err registered
Found FSL PCI host bridge at 0x0000000ffe250000. Firmware bus number: 0->1
PCI host bridge /pcie@ffe250000  ranges:
 MEM 0x0000000c10000000..0x0000000c1fffffff -> 0x00000000e0000000
  IO 0x0000000ff8010000..0x0000000ff801ffff -> 0x0000000000000000
/pcie@ffe250000: PCICSRBAR @ 0xff000000
setup_pci_atmu: end of DRAM 100000000
/pcie@ffe250000: Setup 64-bit PCI DMA window
/pcie@ffe250000: WARNING: Outbound window cfg leaves gaps in memory map. Adjusting the memory map could reduce unnecessary bounce buffering.
/pcie@ffe250000: DMA window size is 0xe0000000
EDAC PCI1: Giving out device to module MPC85xx_edac controller mpc85xx_pci_err: DEV ffe250000.pcie (INTERRUPT)
MPC85xx_edac acquired irq 21 for PCI Err
MPC85xx_edac PCI err registered
Found FSL PCI host bridge at 0x0000000ffe260000. Firmware bus number: 0->2
PCI host bridge /pcie@ffe260000  ranges:
 MEM 0x0000000c20000000..0x0000000c2fffffff -> 0x00000000e0000000
  IO 0x0000000ff8020000..0x0000000ff802ffff -> 0x0000000000000000
/pcie@ffe260000: PCICSRBAR @ 0xff000000
setup_pci_atmu: end of DRAM 100000000
/pcie@ffe260000: Setup 64-bit PCI DMA window
/pcie@ffe260000: WARNING: Outbound window cfg leaves gaps in memory map. Adjusting the memory map could reduce unnecessary bounce buffering.
/pcie@ffe260000: DMA window size is 0xe0000000
EDAC PCI2: Giving out device to module MPC85xx_edac controller mpc85xx_pci_err: DEV ffe260000.pcie (INTERRUPT)
MPC85xx_edac acquired irq 22 for PCI Err
MPC85xx_edac PCI err registered
Found FSL PCI host bridge at 0x0000000ffe270000. Firmware bus number: 0->0
random: nonblocking pool is initialized
PCI host bridge /pcie@ffe270000  ranges:
 MEM 0x0000000c30000000..0x0000000c3fffffff -> 0x00000000e0000000
  IO 0x0000000ff8030000..0x0000000ff803ffff -> 0x0000000000000000
/pcie@ffe270000: PCICSRBAR @ 0xff000000
setup_pci_atmu: end of DRAM 100000000
/pcie@ffe270000: Setup 64-bit PCI DMA window
/pcie@ffe270000: WARNING: Outbound window cfg leaves gaps in memory map. Adjusting the memory map could reduce unnecessary bounce buffering.
/pcie@ffe270000: DMA window size is 0xe0000000
EDAC PCI3: Giving out device to module MPC85xx_edac controller mpc85xx_pci_err: DEV ffe270000.pcie (INTERRUPT)
MPC85xx_edac acquired irq 23 for PCI Err
MPC85xx_edac PCI err registered
software IO TLB [mem 0x28092000-0x2c092000] (64MB) mapped at [e8092000-ec091fff]
PCI: Probing PCI hardware
fsl-pci ffe240000.pcie: PCI host bridge to bus 0000:00
pci_bus 0000:00: root bus resource [io  0xf18a0000-0xf18affff] (bus address [0x0000-0xffff])
pci_bus 0000:00: root bus resource [mem 0xc00000000-0xc0fffffff] (bus address [0xe0000000-0xefffffff])
pci_bus 0000:00: root bus resource [bus 00-ff]
pci 0000:00:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
pci 0000:00:00.0: PCI bridge to [bus 01-ff]
fsl-pci ffe250000.pcie: PCI host bridge to bus 0001:02
pci_bus 0001:02: root bus resource [io  0xf1900000-0xf190ffff] (bus address [0x0000-0xffff])
pci_bus 0001:02: root bus resource [mem 0xc10000000-0xc1fffffff] (bus address [0xe0000000-0xefffffff])
pci_bus 0001:02: root bus resource [bus 02-ff]
irq 22: nobody cared (try booting with the "irqpoll" option)
CPU: 3 PID: 0 Comm: swapper/3 Not tainted 4.1.8-rt8+gbd51baf #1
Call Trace:
[ee1a1f00] [c0706328] dump_stack+0x78/0xa0 (unreliable)
[ee1a1f10] [c0077f94] __report_bad_irq+0x34/0xf0
[ee1a1f30] [c00785ec] note_interrupt+0x2bc/0x310
[ee1a1f60] [c0075384] handle_irq_event_percpu+0x134/0x1c0
[ee1a1fa0] [c0075454] handle_irq_event+0x44/0x80
[ee1a1fc0] [c0078cd8] handle_fasteoi_irq+0xd8/0x1f0
[ee1a1fd0] [c007482c] generic_handle_irq+0x3c/0x70
[ee1a1fe0] [c000447c] __do_irq+0x2c/0x80
[ee1a1ff0] [c000d70c] call_do_irq+0x24/0x3c
[e706be80] [c000455c] do_IRQ+0x8c/0x120
[e706bea0] [c000f7f0] ret_from_except+0x0/0x18
--- interrupt: 501 at arch_cpu_idle+0x24/0x70
    LR = arch_cpu_idle+0x24/0x70
[e706bf60] [c007ee58] rcu_idle_enter+0xd8/0xe0 (unreliable)
[e706bf70] [c0068d60] cpu_startup_entry+0x1a0/0x240
[e706bfd0] [c0011050] start_secondary+0x240/0x250
[e706bff0] [c0001b30] __secondary_start+0x7c/0xc8
handlers:
[<c052cea0>] mpc85xx_pci_isr
Disabling IRQ #22
pci 0001:02:00.0: Primary bus is hard wired to 0
pci 0001:02:00.0: bridge configuration invalid ([bus 01-01]), reconfiguring
pci 0001:02:00.0: PCI bridge to [bus 03-ff]
fsl-pci ffe260000.pcie: PCI host bridge to bus 0002:04
pci_bus 0002:04: root bus resource [io  0xf1960000-0xf196ffff] (bus address [0x0000-0xffff])
pci_bus 0002:04: root bus resource [mem 0xc20000000-0xc2fffffff] (bus address [0xe0000000-0xefffffff])
pci_bus 0002:04: root bus resource [bus 04-ff]
pci 0002:04:00.0: Primary bus is hard wired to 0
pci 0002:04:00.0: bridge configuration invalid ([bus 01-02]), reconfiguring
pci 0002:04:00.0: PCI bridge to [bus 05-ff]
fsl-pci ffe270000.pcie: PCI host bridge to bus 0003:06
pci_bus 0003:06: root bus resource [io  0xf19c0000-0xf19cffff] (bus address [0x0000-0xffff])
pci_bus 0003:06: root bus resource [mem 0xc30000000-0xc3fffffff] (bus address [0xe0000000-0xefffffff])
pci_bus 0003:06: root bus resource [bus 06-ff]
pci 0003:06:00.0: bridge configuration invalid ([bus 00-00]), reconfiguring
pci 0003:06:00.0: PCI bridge to [bus 07-ff]
PCI: Cannot allocate resource region 0 of device 0000:00:00.0, will remap
PCI: Cannot allocate resource region 0 of device 0001:02:00.0, will remap
PCI: Cannot allocate resource region 0 of device 0002:04:00.0, will remap
PCI: Cannot allocate resource region 0 of device 0003:06:00.0, will remap
pci 0000:00:00.0: BAR 0: no space for [mem size 0x01000000]
pci 0000:00:00.0: BAR 0: failed to assign [mem size 0x01000000]
pci 0000:00:00.0: PCI bridge to [bus 01]
pci 0000:00:00.0:   bridge window [io  0xf18a0000-0xf18affff]
pci 0000:00:00.0:   bridge window [mem 0xc00000000-0xc0fffffff]
pci_bus 0000:00: Some PCI device resources are unassigned, try booting with pci=realloc
pci 0001:02:00.0: BAR 0: no space for [mem size 0x01000000]
pci 0001:02:00.0: BAR 0: failed to assign [mem size 0x01000000]
pci 0001:02:00.0: PCI bridge to [bus 03]
pci 0001:02:00.0:   bridge window [io  0xf1900000-0xf190ffff]
pci 0001:02:00.0:   bridge window [mem 0xc10000000-0xc1fffffff]
pci_bus 0001:02: Some PCI device resources are unassigned, try booting with pci=realloc
pci 0002:04:00.0: BAR 0: no space for [mem size 0x01000000]
pci 0002:04:00.0: BAR 0: failed to assign [mem size 0x01000000]
pci 0002:04:00.0: PCI bridge to [bus 05]
pci 0002:04:00.0:   bridge window [io  0xf1960000-0xf196ffff]
pci 0002:04:00.0:   bridge window [mem 0xc20000000-0xc2fffffff]
pci_bus 0002:04: Some PCI device resources are unassigned, try booting with pci=realloc
pci 0003:06:00.0: BAR 0: no space for [mem size 0x01000000]
pci 0003:06:00.0: BAR 0: failed to assign [mem size 0x01000000]
pci 0003:06:00.0: PCI bridge to [bus 07]
pci 0003:06:00.0:   bridge window [io  0xf19c0000-0xf19cffff]
pci 0003:06:00.0:   bridge window [mem 0xc30000000-0xc3fffffff]
pci_bus 0003:06: Some PCI device resources are unassigned, try booting with pci=realloc
vgaarb: loaded
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
pps_core: LinuxPPS API ver. 1 registered
pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
PTP clock support registered
EDAC MC: Ver: 3.0.0
bman-fbpr addr 0xfe000000 size 0x1000000
Bman err interrupt handler present
Bman portal initialised, cpu 0
Bman portal initialised, cpu 1
Bman portal initialised, cpu 2
Bman portal initialised, cpu 3
Bman portals initialised
Qman err interrupt handler present
Qman portal initialised, cpu 0
Qman portal initialised, cpu 1
Qman portal initialised, cpu 2
Qman portal initialised, cpu 3
Qman portals initialised
Bman: BPID allocator includes range 32:32
Qman: FQID allocator includes range 256:512
Qman: FQID allocator includes range 32768:32768
Qman: CGRID allocator includes range 0:256
Qman: pool channel allocator includes range 1025:15
No USDPAA memory, no 'fsl,usdpaa-mem' in device-tree
fsl-ifc ffe124000.localbus: Freescale Integrated Flash Controller
fsl-ifc ffe124000.localbus: IFC version 1.3, 8 banks
Switched to clocksource timebase
NET: Registered protocol family 2
TCP established hash table entries: 8192 (order: 3, 32768 bytes)
TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
TCP: Hash tables configured (established 8192 bind 8192)
UDP hash table entries: 512 (order: 2, 16384 bytes)
UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
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: 30816K (ee1e7000 - effff000)
futex hash table entries: 1024 (order: 4, 65536 bytes)
audit: initializing netlink subsys (disabled)
audit: type=2000 audit(0.828:1): initialized
HugeTLB registered 4 MB page size, pre-allocated 0 pages
HugeTLB registered 16 MB page size, pre-allocated 0 pages
HugeTLB registered 64 MB page size, pre-allocated 0 pages
HugeTLB registered 256 MB page size, pre-allocated 0 pages
HugeTLB registered 1 GB page size, pre-allocated 0 pages
NFS: Registering the id_resolver key type
Key type id_resolver registered
Key type id_legacy registered
ntfs: driver 2.1.32 [Flags: R/O].
jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc.
bounce: pool size: 64 pages
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
pcieport 0000:00:00.0: Signaling PME through PCIe PME interrupt
pcieport 0001:02:00.0: Signaling PME through PCIe PME interrupt
pci 0001:03:00.0: Signaling PME through PCIe PME interrupt
pcieport 0002:04:00.0: Signaling PME through PCIe PME interrupt
pcieport 0003:06:00.0: Signaling PME through PCIe PME interrupt
Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
console [ttyS0] disabled
serial8250.0: ttyS0 at MMIO 0xffe11c500 (irq = 36, base_baud = 18750000) is a 16550A_FSL64
console [ttyS0] enabled
console [ttyS0] enabled
bootconsole [udbg0] disabled
bootconsole [udbg0] disabled
serial8250.0: ttyS1 at MMIO 0xffe11c600 (irq = 36, base_baud = 18750000) is a 16550A_FSL64
serial8250.0: ttyS2 at MMIO 0xffe11d500 (irq = 37, base_baud = 18750000) is a 16550A_FSL64
serial8250.0: ttyS3 at MMIO 0xffe11d600 (irq = 37, base_baud = 18750000) is a 16550A_FSL64
ePAPR hypervisor byte channel driver
Generic non-volatile memory driver v1.1
brd: module loaded
loop: module loaded
st: Version 20101219, fixed bufsize 32768, s/g segs 256
fsl-sata ffe220000.sata: Sata FSL Platform/CSB Driver init
scsi host0: sata_fsl
ata1: SATA max UDMA/133 irq 68
fsl-sata ffe221000.sata: Sata FSL Platform/CSB Driver init
scsi host1: sata_fsl
ata2: SATA max UDMA/133 irq 69
fe8000000.nor: Found 1 x16 devices at 0x0 in 16-bit bank. Manufacturer ID 0x000089 Chip ID 0x00227e
Amd/Fujitsu Extended Query Table at 0x0040
  Amd/Fujitsu Extended Query version 1.3.
number of CFI chips: 1
nand: device found, Manufacturer ID: 0x2c, Chip ID: 0xd3
nand: Micron MT29F8G08ABACAWP
nand: 1024 MiB, SLC, erase size: 256 KiB, page size: 4096, OOB size: 224
nand: WARNING: fff800000.flash: the ECC used on your system is too weak compared to the one required by the NAND chip
Bad block table found at page 262080, version 0x01
Bad block table found at page 262016, version 0x01
fsl,ifc-nand fff800000.nand: IFC NAND device at 0xfff800000, bank 1
fsl_espi ffe110000.spi: cs=0, init_csmode=0x100008
m25p80 spi32766.0: unrecognized JEDEC id bytes: ff, ff, ff
fsl_espi ffe110000.spi: at 0xf193e000 (irq = 53)
libphy: Fixed MDIO Bus: probed
libphy: Freescale XGMAC MDIO Bus: probed
libphy: Freescale XGMAC MDIO Bus: probed
libphy: Freescale XGMAC MDIO Bus: probed
libphy: Freescale XGMAC MDIO Bus: probed
libphy: Freescale XGMAC MDIO Bus: probed
libphy: Freescale XGMAC MDIO Bus: probed
Freescale FM module, FMD API version 21.1.0
Freescale FM Ports module
fsl_mac: fsl_mac: FSL FMan MAC API based driver
fsl_mac ffe4e0000.ethernet: FMan MEMAC
fsl_mac ffe4e0000.ethernet: FMan MAC address: 00:04:9f:05:4c:0c
fsl_mac ffe4e2000.ethernet: FMan MEMAC
fsl_mac ffe4e2000.ethernet: FMan MAC address: 00:04:9f:05:4c:0d
fsl_mac ffe4e4000.ethernet: FMan MEMAC
fsl_mac ffe4e4000.ethernet: FMan MAC address: 00:04:9f:05:4c:0e
fsl_mac ffe4e6000.ethernet: FMan MEMAC
fsl_mac ffe4e6000.ethernet: FMan MAC address: 00:04:9f:05:4c:0f
fsl_mac ffe4e8000.ethernet: FMan MEMAC
fsl_mac ffe4e8000.ethernet: FMan MAC address: 00:04:9f:05:4c:10
fsl_dpa: FSL DPAA Ethernet driver
fsl_dpa: fsl_dpa: Probed interface eth0
fsl_dpa: fsl_dpa: Probed interface eth1
fsl_dpa: fsl_dpa: Probed interface eth2
fsl_dpa: fsl_dpa: Probed interface eth3
fsl_dpa: fsl_dpa: Probed interface eth4
fsl_advanced: FSL DPAA Advanced drivers:
fsl_proxy: FSL DPAA Proxy initialization driver
fsl_dpa_shared: FSL DPAA Shared Ethernet driver
fsl_dpa_macless: FSL DPAA MACless Ethernet driver
fsl_oh: FSL FMan Offline Parsing port driver
e1000: Intel(R) PRO/1000 Network Driver - version 7.3.21-k8-NAPI
e1000: Copyright (c) 1999-2006 Intel Corporation.
e1000e: Intel(R) PRO/1000 Network Driver - 2.3.2-k
e1000e: Copyright(c) 1999 - 2014 Intel Corporation.
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-pci: EHCI PCI platform driver
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
ohci-pci: OHCI PCI platform driver
/soc@ffe000000/usb@210000: Invalid 'dr_mode' property, fallback to host mode
fsl-ehci fsl-ehci.0: Freescale On-Chip EHCI Host Controller
fsl-ehci fsl-ehci.0: new USB bus registered, assigned bus number 1
fsl-ehci fsl-ehci.0: irq 44, io mem 0xffe210000
fsl-ehci fsl-ehci.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
fsl-ehci fsl-ehci.1: Freescale On-Chip EHCI Host Controller
fsl-ehci fsl-ehci.1: new USB bus registered, assigned bus number 2
fsl-ehci fsl-ehci.1: irq 45, io mem 0xffe211000
fsl-ehci fsl-ehci.1: USB 2.0 started, EHCI 1.00
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
usbcore: registered new interface driver usb-storage
i2c /dev entries driver
mpc-i2c ffe118000.i2c: timeout 1000000 us
rtc-ds1307: probe of 0-0068 failed with error -5
mpc-i2c ffe118100.i2c: timeout 1000000 us
mpc-i2c ffe119000.i2c: timeout 1000000 us
mpc-i2c ffe119100.i2c: timeout 1000000 us
pca954x 1-0077: probe failed
Freescale(R) MPC85xx EDAC driver, (C) 2006 Montavista Software
EDAC MC0: Giving out device to module MPC85xx_edac controller mpc85xx_mc_err: DEV mpc85xx_mc_err (INTERRUPT)
MPC85xx_edac acquired irq 490 for MC
MPC85xx_edac MC err registered
qoriq_cpufreq: Freescale QorIQ CPU frequency scaling driver
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
/soc@ffe000000/sdhc@114000: voltage-ranges unspecified
sdhci-esdhc ffe114000.sdhc: No vmmc regulator found
sdhci-esdhc ffe114000.sdhc: No vqmmc regulator found
mmc0: SDHCI controller on ffe114000.sdhc [ffe114000.sdhc] using ADMA 64-bit
Freescale USDPAA process driver
fsl-usdpaa: no region found
Freescale USDPAA process IRQ driver
fsl-pme ffe316000.pme: ver: 0x00100202
ata1: No Device OR PHYRDY change,Hstatus = 0xa0000000
ata1: SATA link down (SStatus 10 SControl 300)
ata2: No Device OR PHYRDY change,Hstatus = 0x80000000
ata2: SATA link down (SStatus 10 SControl 300)
Freescale pme2 db driver
Freescale pme2 scan driver
fsl-pme2-scan: device pme_scan registered
Freescale hypervisor management driver
fsl-hv: no hypervisor found
ipip: IPv4 over IPv4 tunneling driver
Initializing XFRM netlink socket
NET: Registered protocol family 10
sit: IPv6 over IPv4 tunneling driver
NET: Registered protocol family 17
NET: Registered protocol family 15
8021q: 802.1Q VLAN Support v1.8
Key type dns_resolver registered
fsl_generic: FSL DPAA Generic Ethernet driver
hctosys: unable to open rtc device (rtc0)
RAMDISK: gzip image found at block 0
VFS: Mounted root (ext2 filesystem) on device 1:0.
devtmpfs: mounted
Freeing unused kernel memory: 324K (c0909000 - c095a000)
INIT: version 2.88 booting
Starting udev
udevd[948]: starting version 182
fsl_dpa fsl,dpaa:ethernet@0 fm1-gb0: renamed from eth0
fsl_dpa fsl,dpaa:ethernet@1 fm1-gb1: renamed from eth1
udevd[952]: renamed network interface eth0 to fm1-gb0
fsl_dpa fsl,dpaa:ethernet@2 fm1-gb2: renamed from eth2
udevd[953]: renamed network interface eth1 to fm1-gb1
fsl_dpa fsl,dpaa:ethernet@4 fm1-gb4: renamed from eth4
udevd[954]: renamed network interface eth2 to fm1-gb2
udevd[956]: renamed network interface eth4 to fm1-gb4
fsl_dpa fsl,dpaa:ethernet@3 fm1-gb3: renamed from eth3
udevd[955]: renamed network interface eth3 to fm1-gb3
bootlogd: cannot allocate pseudo tty: No such file or directory
Populating dev cache
hwclock: can't open '/dev/misc/rtc': No such file or directory
Sat May 14 19:54:50 UTC 2016
hwclock: can't open '/dev/misc/rtc': No such file or directory
Running postinst /etc/rpm-postinsts/100-sysvinit-inittab...
Running postinst /etc/rpm-postinsts/101-inetutils-inetd...
Running postinst /etc/rpm-postinsts/102-inetutils-ftpd...
update-rc.d: /etc/init.d/run-postinsts exists during rc.d purge (continuing)
INIT: Entering runlevel: 5up links for run-posti
Configuring network interfaces... done.
Starting OpenBSD Secure Shell server: sshd
  generating ssh RSA key...
  generating ssh ECDSA key...
  generating ssh DSA key...
  generating ssh ED25519 key...
done.
hwclock: can't open '/dev/misc/rtc': No such file or directory
Starting network benchmark server: netserver.
Starting system log daemon...0
Starting kernel log daemon...0
Starting internet superserver: xinetd.

QorIQ SDK (FSL Reference Distro) 2.0 t1042d4rdb /dev/ttyS0

t1042d4rdb login: root
root@t1042d4rdb:~# lspci
00:00.0 Class 0604: 1957:0825
04:00.0 Class 0604: 1957:0825
02:00.0 Class 0604: 1957:0825
03:00.0 Class 0500: 10ee:0007
06:00.0 Class 0604: 1957:0825
root@t1042d4rdb:~# reboot

INIT: Sending processes the TERM signal
INIT:Stopping OpenBSD Secure Shell server: sshdstopped /usr/sbin/sshd (pid 1584)
.
hwclock: can't open '/dev/misc/rtc': No such file or directory
Stopping network benchmark server: netserverstopped /usr/sbin/netserver (pid 1591)
.
Stopping system log daemon...0
Stopping kernel log daemon...0
Stopping internet superserver: xinetd.
Deconfiguring network interfaces... done.
Sending all processes the TERM signal...
Sending all processes the KILL signal...
Unmounting remote filesystems...
Deactivating swap...
Unmounting local filesystems...
Rebooting... reboot: Restarting system


U-Boot 2016.012.0+ga9b437f (Oct 31 2018 - 13:30:16 +0100)

CPU0:  T1042, Version: 1.1, (0x85200211)
Core:  e5500, Version: 2.1, (0x80241021)
Clock Configuration:
       CPU0:1400 MHz, CPU1:1400 MHz, CPU2:1400 MHz, CPU3:1400 MHz,
       CCB:600  MHz,
       DDR:800  MHz (1600 MT/s data rate) (Asynchronous), IFC:150  MHz
       QE:300  MHz
       FMAN1: 600 MHz
       QMAN:  300 MHz
       PME:   300 MHz
L1:    D-cache 32 KiB enabled
       I-cache 32 KiB enabled
Reset Configuration Word (RCW):
       00000000: 0c18000e 0e000000 00000000 00000000
       00000010: 86000002 40000002 ec027000 01000000
       00000020: 00000000 00000000 00000000 00030810
       00000030: 00000000 00fe000f 00000000 00000000
I2C:   ready
Board: T1042D4RDB
Board rev: 0x00 CPLD ver: 0x00, vBank: 0
SPI:   ready
DRAM:  Initializing....using SPD
Detected UDIMM 75.B93GN.G000B
Not enough bank(chip-select) for CS0+CS1 on controller 0, interleaving disabled!
2 GiB left unmapped
4 GiB (DDR4, 64-bit, CL=11, ECC on)
Flash: 256 MiB
L2:    256 KiB enabled
Corenet Platform Cache: 256 KiB enabled
Using SERDES1 Protocol: 134 (0x86)
NAND:  1024 MiB
MMC:   FSL_SDHC: 0
Firmware 'Microcode version 0.0.1 for T1040 r1.0' for 1040 V1.0
QE: uploading microcode 'Microcode for T1040 r1.0' version 0.0.1
PCIe1: Root Complex, no link, regs @ 0xfe240000
PCIe1: Bus 00 - 00
PCIe2: Root Complex, x1 gen1, regs @ 0xfe250000
  02:00.0     - 10ee:0007 - Memory controller
PCIe2: Bus 01 - 02
PCIe3: Root Complex, x1 gen2, regs @ 0xfe260000

  • Hadrien,

    I am looking into this and will get back to you as soon as possible.
  • Hadrien,

    Have you tested the signal quality of PCIe connection through a eye diagram? It may be that your connection has some signal noise cause disruptions to the link. I am till reviewing your schematic for error but could not find any issue upon a initial review. Is the refclk starting at the correct time to be in line with figure 4 of the datasheet?
  • Hello Malik,

    Unfortunately, I do not have enough bandwidth on my oscilloscope to make eye diagram of PCIe signals. We will send a board to an external company that can do these measurements.

    REFCLK starts about 100ms before PERST/ is de-asserted (this delay is specified >100µs in the datasheet). (The ripple on PERST is coming from the probes I guess)

    Here is REFCLK measured with a 1GHz bandwidth scope (that I do not have access to anymore) :

    We also tried to use the EEPROM to configure the bridge. But it seems that the bridge has trouble accessing it through I²C. The bridge sends one start bit then nothing :

    Thank you for your time,

    Hadrien

  • Hello again,

    I noticed that the REFCLK125_SEL was pulled down on my board, which means that the bridge was configured for 100MHz differential clock.

    REFCLK125_SEL is now pulled up as it should be, and as a result the bridge isn't detected at all during boot :

    PCIe1: Root Complex, no link, regs @ 0xfe240000
    PCIe1: Bus 00 - 00
    PCIe2: Root Complex, x1 gen1, regs @ 0xfe250000
    02:00.0 - 10ee:0007 - Memory controller
    PCIe2: Bus 01 - 02
    PCIe3: Root Complex, no link, regs @ 0xfe260000
    PCIe3: Bus 03 - 03
    PCIe4: Root Complex, no link, regs @ 0xfe270000
    PCIe4: Bus 04 - 04

  • Hardien,

    Could you confirm what your high and low levels are on your REFCLK? They appear to be different in the scope captures attached. Also is your GRST come up after power to XIO2001 is stable?
  • The REFCLK high is 3.3V and low is 0V, as the capture from 1GHZ oscilloscope shows. The other capture is not representative as the scope only has 50MHz bandwidth.

    GRST comes after the power is stable
  • I found what was causing the problem :

    The RCW bit 160 (SRDS_PLL_REF_CLK_SEL_S1) was not correctly configured.

    This bit selects PLL1 frequency (0 : 100MHz, 1 : 125MHz). It was set to 0 as PLL1 uses 100MHz on the NXP eval board ...

    So I set it to 1 because we use 125MHz on PLL1 on our custom board, and now the XIO2001 is recognized in u-boot and Linux.