[U-Boot] Question: PCIe enumeration of PEX switch does not go thru

ramkrish maladi rammaladi at yahoo.com
Sun Jan 24 19:10:11 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