[U-Boot] Question: PCIe enumeration of PEX switch

Ramakrishna Maladi (rmaladi) rmaladi at cisco.com
Sat Jan 23 19:50:36 CET 2021


Hi
  U-boot is unable to enumerate pericom PCIe switch and subsequent end point devices on our board (arm v8.2, 64-bit)
  When booted to linux, we see the same enumerated with endpoints
  Have any one come ever come across this issue and found a workaround to it?
  I hope we no need to have a special driver in u-boot for it?

U-boot
rommon> dm tree
Class     Index  Probed  Driver                Name
-----------------------------------------------------------
pci_generi  25  [   ]   pci_generic_drv       |       |   `-- pci_15:0.0

PCIe debug logs

pci_auto_config_devices: done
pci_uclass_pre_probe, bus=25/pci at 8e0000000000, parent=soc at 0
decode_regions: len=28, cells_per_record=7
decode_regions: region 0, pci_addr=0, addr=886000000000, size=100000, space_code=1
- type=1, pos=0
decode_regions: region 1, pci_addr=1000000, addr=882001000000, size=1000000000, space_code=3
- type=0, pos=1
decode_regions: region 2, pci_addr=1000000000, addr=884000000000, size=1000000000, space_code=3
- type=8, pos=2
decode_regions: region 3, pci_addr=8e0000000000, addr=8e0000000000, size=1000000000, space_code=3
- type=0, pos=3
pci_uclass_post_probe: probing bus 25
bdf 190000 01.00.00: u1 0 (100000)
01.00.00: u1 0 (878030100000) 0
word 878030100000
01.00.00: u1 0 (878030100000) -> 12d8
bdf 190000 01.00.00: u0 e (100000)
01.00.00: u0 e (878030100000)
pci_find_and_bind_driver: Searching for driver: vendor=12d8, device=8619
pci_find_and_bind_driver: No match found: bound generic driver instead
bdf 190000 01.00.00: u2 100 (100000)
01.00.00: u2 100 (878030100000) 19ff00
long 878030100100
01.00.00: u2 100 (878030100000) -> fb410003
bdf 190000 01.00.00: u2 fb4 (100000)
01.00.00: u2 fb4 (878030100000) fb410003
long 878030100fb4
01.00.00: u2 fb4 (878030100000) -> 13810001
bdf 190000 01.00.00: u2 138 (100000)
01.00.00: u2 138 (878030100000) 13810001
long 878030100138
01.00.00: u2 138 (878030100000) -> 14810004
bdf 190000 01.00.00: u2 148 (100000)
01.00.00: u2 148 (878030100000) 14810004
long 878030100148
01.00.00: u2 148 (878030100000) -> 27010002
bdf 190000 01.00.00: u2 270 (100000)
01.00.00: u2 270 (878030100000) 27010002
long 878030100270
01.00.00: u2 270 (878030100000) -> 9001001e
bdf 190000 01.00.00: u2 900 (100000)
01.00.00: u2 900 (878030100000) 9001001e
long 878030100900
01.00.00: u2 900 (878030100000) -> 10012
bdf 190100 01.00.01: u1 0 (101000)
01.00.01: u1 0 (878030101000) 12d8
word 878030101000
01.00.01: u1 0 (878030101000) -> 12d8
bdf 190100 01.00.01: u0 e (101000)
01.00.01: u0 e (878030101000) 81
byte 87803010100e
01.00.01: u0 e (878030101000) -> 80
pci_bind_bus_devices: bus 25/pci at 8e0000000000: found device 0, function 1
bdf 190100 01.00.01: u1 2 (101000)
01.00.01: u1 2 (878030101000) 8619
word 878030101002
01.00.01: u1 2 (878030101000) -> 8619
bdf 190100 01.00.01: u2 8 (101000)

----

pci_uclass_pre_probe, bus=57/pci_19:1f.0, parent=pci at 8e0000000000
pci_uclass_post_probe: probing bus 57
bdf 390000 21.00.00: u1 0 (2100000)
21.00.00: u1 0 (878032100000) 0
word 878032100000
21.00.00: u1 0 (878032100000) -> ffff
bdf 390800 21.01.00: u1 0 (2108000)
21.01.00: u1 0 (878032108000) ffff
word 878032108000
21.01.00: u1 0 (878032108000) -> ffff
bdf 391000 21.02.00: u1 0 (2110000)
21.02.00: u1 0 (878032110000) ffff
word 878032110000
21.02.00: u1 0 (878032110000) -> ffff
bdf 391800 21.03.00: u1 0 (2118000)
21.03.00: u1 0 (878032118000) ffff
word 878032118000
21.03.00: u1 0 (878032118000) -> ffff
bdf 392000 21.04.00: u1 0 (2120000)
21.04.00: u1 0 (878032120000) ffff
word 878032120000
21.04.00: u1 0 (878032120000) -> ffff
bdf 392800 21.05.00: u1 0 (2128000)
21.05.00: u1 0 (878032128000) ffff
word 878032128000
21.05.00: u1 0 (878032128000) -> ffff
bdf 393000 21.06.00: u1 0 (2130000)
21.06.00: u1 0 (878032130000) ffff
word 878032130000
21.06.00: u1 0 (878032130000) -> ffff
bdf 393800 21.07.00: u1 0 (2138000)
21.07.00: u1 0 (878032138000) ffff
word 878032138000
21.07.00: u1 0 (878032138000) -> ffff
bdf 394000 21.08.00: u1 0 (2140000)
21.08.00: u1 0 (878032140000) ffff
word 878032140000
21.08.00: u1 0 (878032140000) -> ffff
bdf 394800 21.09.00: u1 0 (2148000)
21.09.00: u1 0 (878032148000) ffff
word 878032148000
21.09.00: u1 0 (878032148000) -> ffff
bdf 395000 21.0a.00: u1 0 (2150000)
21.0a.00: u1 0 (878032150000) ffff
word 878032150000
21.0a.00: u1 0 (878032150000) -> ffff
bdf 395800 21.0b.00: u1 0 (2158000)
21.0b.00: u1 0 (878032158000) ffff
word 878032158000
21.0b.00: u1 0 (878032158000) -> ffff
bdf 396000 21.0c.00: u1 0 (2160000)
21.0c.00: u1 0 (878032160000) ffff
word 878032160000
21.0c.00: u1 0 (878032160000) -> ffff
bdf 396800 21.0d.00: u1 0 (2168000)
21.0d.00: u1 0 (878032168000) ffff
word 878032168000
21.0d.00: u1 0 (878032168000) -> ffff
bdf 397000 21.0e.00: u1 0 (2170000)
21.0e.00: u1 0 (878032170000) ffff
word 878032170000
21.0e.00: u1 0 (878032170000) -> ffff
bdf 397800 21.0f.00: u1 0 (2178000)
21.0f.00: u1 0 (878032178000) ffff
word 878032178000
21.0f.00: u1 0 (878032178000) -> ffff
bdf 398000 21.10.00: u1 0 (2180000)
21.10.00: u1 0 (878032180000) ffff
word 878032180000
21.10.00: u1 0 (878032180000) -> ffff
bdf 398800 21.11.00: u1 0 (2188000)
21.11.00: u1 0 (878032188000) ffff
word 878032188000
21.11.00: u1 0 (878032188000) -> ffff
bdf 399000 21.12.00: u1 0 (2190000)
21.12.00: u1 0 (878032190000) ffff
word 878032190000
21.12.00: u1 0 (878032190000) -> ffff
bdf 399800 21.13.00: u321c8000) ffff
word 8780321c8000
21.19.00: u1 0 (8780321c8000) -> ffff
bdf 39d000 21.1a.00: u1 0 (21d0000)
21.1a.00: u1 0 (8780321d0000) ffff
word 8780321d0000
21.1a.00: u1 0 (8780321d0000) -> ffff
bdf 39d800 21.1b.00: u1 0 (21d8000)
21.1b.00: u1 0 (8780321d8000) ffff
word 8780321d8000
21.1b.00: u1 0 (8780321d8000) -> ffff
bdf 39e000 21.1c.00: u1 0 (21e0000)
21.1c.00: u1 0 (8780321e0000) ffff
word 8780321e0000
21.1c.00: u1 0 (8780321e0000) -> ffff
bdf 39e800 21.1d.00: u1 0 (21e8000)
21.1d.00: u1 0 (8780321e8000) ffff
word 8780321e8000
21.1d.00: u1 0 (8780321e8000) -> ffff
bdf 39f000 21.1e.00: u1 0 (21f0000)
21.1e.00: u1 0 (8780321f0000) ffff
word 8780321f0000
21.1e.00: u1 0 (8780321f0000) -> ffff
bdf 39f800 21.1f.00: u1 0 (21f8000)
21.1f.00: u1 0 (8780321f8000) ffff
word 8780321f8000
21.1f.00: u1 0 (8780321f8000) -> ffff
pci_auto_config_devices: start
pci_auto_config_devices: done
pci_get_bus_max: ret=57
bdf 19f800 01.1f.00: u0 1a (1f8000)
01.1f.00: u0 1a (8780301f8000) 20
tmp 8 long 8780301f8018 ff2000
tmp long 8780301f8018 202000
long 8780301f8018 202000
01.1f.00: u2 1a (8780301f8018) <- 202000
bdf 19f800 01.1f.00: u1 22 (1f8000)
01.1f.00: u1 22 (8780301f8000) 2ff
tmp 16 long 8780301f8020 fff0
tmp long 8780301f8020 2fffff0
long 8780301f8020 2fffff0
01.1f.00: u2 22 (8780301f8020) <- 2fffff0
bdf 19f800 01.1f.00: u1 26 (1f8000)
01.1f.00: u1 26 (8780301f8000) 3f5e8e430
word 8780301f8026
01.1f.00: u1 26 (8780301f8000) -> 1
bdf 19f800 01.1f.00: u1 26 (1f8000f.01: u2 30 (8780301f9000) -> 0
bdf 19f900 01.1f.01: u1 a (1f9000)
01.1f.01: u1 a (8780301f9000) 0
word 8780301f900a
01.1f.01: u1 a (8780301f9000) -> 880
bdf 19f900 01.1f.01: u1 4 (1f9000)
01.1f.01: u1 4 (8780301f9000) 6
tmp 16 long 8780301f9004 100006
tmp long 8780301f9004 6
long 8780301f9004 6
01.1f.01: u2 4 (8780301f9004) <- 6
bdf 19f900 01.1f.01: u0 c (1f9000)
01.1f.01: u0 c (8780301f9000) 8
tmp 8 long 8780301f900c 800008
tmp long 8780301f900c 800008
long 8780301f900c 800008
01.1f.01: u2 c (8780301f900c) <- 800008
bdf 19f900 01.1f.01: u0 d (1f9000)
01.1f.01: u0 d (8780301f9000) 80
tmp 8 long 8780301f900c 800008
tmp long 8780301f900c 808008
long 8780301f900c 808008
01.1f.01: u2 d (8780301f900c) <- 808008
pci_auto_config_devices: done

…

Linux logs
~# lspci -tv
-+-[0003:00]---00.0-[01]--+-00.0-[02-08]--+-01.0-[03]--
|                        |               +-02.0-[04]--
|                        |               +-03.0-[05]----00.0  Intel Corporation I211 Gigabit Network Connection
|                        |               +-07.0-[06]----00.0
 |                        |               +-08.0-[07]--
|                        |               \-09.0-[08]----00.0
 |                        \-00.1  Pericom Semiconductor Device 8619

Thanks,
Ram


More information about the U-Boot mailing list