NXP MCU 技术论坛
直播中

李颜

7年用户 1292经验值
私信 关注
[问答]

LSDK-21.08的uboot无法检测到LX2160A PCIe设备是什么原因?

环境:启用 4 个 PCIe RC。每个 RC 连接到一个具有 5 个设备的交换机。共有 20 个 PCIe 设备和 32 条总线。
当 uboot 启动时,它在 pci_init() 上看起来不错。但是如果我输入 pci 命令来读取设备信息,我会从设备中得到 0xFFFF。同样在 linux 中,我找不到 lspci 的任何欺骗。
在 LSDK-20.12 中,一切都很好。所以我认为这不是硬件问题。
详细信息和日志如下:
1. pci_init() 的 uboot 调试消息的一部分。vendor ID(1745)和device ID(5000)可以正常读取。
pci_uclass_pre_probe, bus=-1/pcie@3400000, parent=root_driver
寻找“pci”的最高别名 ID
- spi0, /flexspi@20c0000
- spi1, /dspi@2100000
decode_regions: len=14, cells_per_record=7
decode_regions: region 0 , pci_addr=0, addr=8000020000, size=10000, space_code=1
- type=1, pos=0
decode_regions: region 1, pci_addr=40000000, addr=8040000000, size=40000000, space_code=2
- type=0, pos =1
ofnode_read_bool: u-boot,skip-auto-config-until-reloc: false
使用 SERDES1 协议:10 (0xa)
使用 SERDES2 协议:7 (0x7)
使用 SERDES3 协议:2 (0x2)
fdtdec_get_bool: big-endian
pcie@ 3400000 dbi:3400000 lut:3480000 ctrl:0x34c0000 cfg0:0x8000000000, big-endian:0
PCIe1: pcie@3400000 Root ComplexiATU0:
LOWER PHYS 0x00000000
UPPER PHYS 0x00000080
LOWER BUS 0x00000000
UPPER BUS 0x00000000
LIMIT 0x00000fff
CR1 0x00000004
CR2 0x80000000
iATU1:
LOWER PHYS 0x00001000
UPPER PHYS 0x00000080
LOWER BUS 0x00000000
UPPER BUS 0x00000000
LIMIT 0x00001fff
CR1 0x00000005
CR2 0x80000000
iATU2:
LOWER PHYS 0x00020000
上层物理0x00000080
下级总线0x00000000
上级总线0x00000000
限制0x0002FFFF
CR1 0x0000000002
CR2 CR2 0x80000000
IATU3:下部物理0x40000000上层物理
0x0000000000000080
下级总线0x4000000000 x4000000000
x4000000000 x40000000
UPPER BUS 0x00000000
LIMIT 0x7fffffff
CR1 0x00000000
CR2 0x80000000
iATU4:
LOWER PHYS 0x00000000
UPPER PHYS 0x00000000
LOWER BUS 0x00000000
UPPER BUS 0x00000000
LIMIT 0x00000fff
CR1 0x00000000
CR2 0x00000000
iATU5:
LOWER PHYS 0x00000000
UPPER PHYS 0x00000000
LOWER BUS 0x00000000
UPPER BUS 0x00000000
LIMIT 0x00000fff
CR1 0x00000000
CR2 0x00000000
: x1 gen2
pci_uclass_post_probe:探测总线 0
pci_bind_bus_devices:总线 0/pcie@3400000:找到设备 0,函数 0:找到 ret=-19
pci_find_and_bind_driver:搜索驱动程序:vendor=1957,device=8d90
pci_find_and_bind_driver:找不到匹配项:绑定通用驱动程序而不是
pci_auto_config_devices:启动
PCI 自动配置:总线内存区域:[40000000-7fffffff],
物理内存 [8040000000-807fffffffx]
PCI 自动配置:总线 I/O 区域:[0-ffff],
物理内存[8000020000-800002ffffx]
pci_auto_config_devices: 设备 pci_0:0.0
PCI Autoconfig: 找到 P2P 桥,设备 0
dm_pci_hose_probe_bus
pci_get_bus_max: ret=0
dm_pci_hose_probe_bus: bus = 1/pci_0:0.0
pci_uclass_pre_probe, bus_0:-1.pcie, parent_0:-1.pcie 3400000
正在寻找“pci”的最高别名 ID
- spi0,/flexspi@20c0000
- spi1,/dspi@2100000
pci_uclass_post_probe:探测总线 1
pci_bind_bus_devices: bus 1/pci_0:0.0: found device 0, function 0: find ret=-19
pci_find_and_bind_driver: Searching for driver: vendor=12d8, device=2608
pci_find_and_bind_driver: No match found: bound generic driver instead
pci_auto_config_devices: start
pci_auto_config_devices: 设备pci_1:0.0
PCI Autoconfig: Found P2P bridge, device 0
dm_pci_hose_probe_bus
pci_get_bus_max: ret=1
dm_pci_hose_probe_bus: bus = 2/pci_1:0.0
pci_uclass_pre_probe, bus=-1/pci_1:0.0, parent=pci_0:0.0
寻找最高的别名 ID ' pci'
- spi0, /flexspi@20c0000
- spi1, /dspi@2100000
pci_uclass_post_probe: 探测总线 2
pci_bind_bus_devices: bus 2/pci_1:0.0: found device 1, function 0: find ret=-19
pci_find_and_bind_driver: Searching for driver: vendor=12d8, device=2608
pci_find_and_bind_driver: 找不到匹配项:绑定通用驱动程序而不是
pci_bind_bus_devices: 总线 2/pci_1 :0.0:找到设备 2,函数 0:查找 ret=-19
pci_find_and_bind_driver:搜索驱动程序:vendor=12d8,device=2608
pci_find_and_bind_driver:找不到匹配项:绑定通用驱动程序而不是
pci_bind_bus_devices:总线 2/pci_1:0.0:找到设备 3 ,函数 0:查找 ret=-19
pci_find_and_bind_driver:正在搜索驱动程序:vendor=12d8,device=2608
pci_find_and_bind_driver:找不到匹配项:改为绑定通用驱动程序
pci_bind_bus_devices: bus 2/pci_1:0.0: found device 4, function 0: find ret=-19
pci_find_and_bind_driver: Searching for driver: vendor=12d8, device=2608
pci_find_and_bind_driver: 找不到匹配项:绑定通用驱动程序而不是
pci_bind_bus_devices: bus 2/pci_1 :0.0:找到设备 5,功能 0:查找 ret=-19
pci_find_and_bind_driver:正在搜索驱动程序:vendor=12d8,device=2608
pci_find_and_bind_driver:找不到匹配项:绑定通用驱动程序而不是
pci_auto_config_devices:启动
pci_auto_config_devices:设备 pci_2:1.0
PCI 自动配置:发现P2P网桥,设备1
dm_pci_hose_probe_bus
pci_get_bus_max: ret=2
dm_pci_hose_probe_bus: bus = 3/pci_2:1.0
pci_uclass_pre_probe, bus=-1/pci_2:1.0, parent=pci_1:0.0
寻找“pci”的最高别名 ID
- spi0, /flexspi@20c0000
- spi1, /dspi@2100000
pci_uclass_post_probe: probing bus 3
pci_bind_bus_devices: bus 3/pci_2 :1.0:找到设备 0,功能 0:查找 ret=-19
pci_find_and_bind_driver:正在搜索驱动程序:vendor=1745,device=5000
pci_find_and_bind_driver:找不到匹配项:绑定通用驱动程序而不是
pci_auto_config_devices:启动
pci_auto_config_devices:设备 pci_3:0.0
PCI 自动配置: BAR 0,内存,大小=0x100000,地址=0x40000000 bus_lower=0x40100000
PCI Autoconfig: BAR 1, Mem, size=0x10000, address=0x40100000 bus_lower=0x40110000
pci_auto_config_devices:完成
pci_auto_config_devices:设备 pci_2:2.0
PCI 自动配置:找到 P2P 桥,设备 2
dm_pci_hose_probe_bus
pci_get_bus_max:ret = 3
dm_pci_hose_probe_bus:总线 = 4/pci_2:2.0 pci_uclass_pre_probe,总线 =-1/pci_2:2.0:父
=pci
对于“pci”的最高别名 ID
- spi0,/flexspi@20c0000
- spi1,/dspi@2100000
pci_uclass_post_probe:探测总线 4
pci_bind_bus_devices:总线 4/pci_2:2.0:找到设备 0,函数 0:找到 ret=-19
pci_find_and_bind_driver:正在搜索驱动程序:供应商=1745,设备=5000
pci_find_and_bind_driver:找不到匹配项:绑定通用驱动程序而不是
pci_auto_config_devices:启动
pci_auto_config_devices: 设备 pci_4:0.0
PCI Autoconfig: BAR 0, Mem, size=0x100000, address=0x40200000 bus_lower=0x40300000
PCI Autoconfig: BAR 1, Mem, size=0x10000, address=0x40300000 bus_lower=0x40310000
pci_auto_config_devices:完成
pci_auto_config_devices:设备 pci_2:3.0
PCI 自动配置:找到 P2P 桥,设备 3
dm_pci_hose_probe_bus
pci_get_bus_max:ret = 4
dm_pci_hose_probe_bus:总线 = 5/pci_2:3.0 pci_uclass_pre_probe,总线 =-1/pci_2:3_1:父
=pci
对于“pci”的最高别名 ID
- spi0,/flexspi@20c0000
- spi1,/dspi@2100000
pci_uclass_post_probe:探测总线 5
pci_bind_bus_devices:总线 5/pci_2:3.0:找到设备 0,函数 0:找到 ret=-19
pci_find_and_bind_driver:正在搜索驱动程序:供应商=1745,设备=5000
pci_find_and_bind_driver:找不到匹配项:绑定通用驱动程序而不是
pci_auto_config_devices:启动
pci_auto_config_devices: 设备 pci_5:0.0
PCI Autoconfig: BAR 0, Mem, size=0x100000, address=0x40400000 bus_lower=0x40500000
PCI Autoconfig: BAR 1, Mem, size=0x10000, address=0x40500000 bus_lower=0x40510000
pci_auto_config_devices:完成
pci_auto_config_devices:设备 pci_2:4.0
PCI Autoconfig:找到 P2P 桥,设备 4
dm_pci_hose_probe_bus
pci_get_bus_max:ret = 5
dm_pci_hose_probe_bus:bus = 6/pci_2:4.0 pci_uclass_pre_probe,总线
=-1/pci_2:4.0,parent = pci_1
对于“pci”的最高别名 ID
- spi0,/flexspi@20c0000
- spi1,/dspi@2100000
pci_uclass_post_probe:探测总线 6
pci_bind_bus_devices:总线 6/pci_2:4.0:找到设备 0,函数 0:找到 ret=-19
pci_find_and_bind_driver:正在搜索驱动程序:供应商=1745,设备=5000
pci_find_and_bind_driver:找不到匹配项:绑定通用驱动程序而不是
pci_auto_config_devices:启动
pci_auto_config_devices: 设备 pci_6:0.0
PCI Autoconfig: BAR 0, Mem, size=0x100000, address=0x40600000 bus_lower=0x40700000
PCI Autoconfig: BAR 1, Mem, size=0x10000, address=0x40700000 bus_lower=0x40710000
pci_auto_config_devices:完成
pci_auto_config_devices:设备 pci_2:5.0
PCI 自动配置:找到 P2P 桥,设备 5
dm_pci_hose_probe_bus
pci_get_bus_max:ret = 6
dm_pci_hose_probe_bus:总线 = 7/pci_2:5.0 pci_uclass_pre_probe,总线 =-1/pci_2:5.0:父
=pci
对于“pci”的最高别名 ID
- spi0,/flexspi@20c0000
- spi1,/dspi@2100000
pci_uclass_post_probe:探测总线 7
pci_bind_bus_devices:总线 7/pci_2:5.0:找到设备 0,函数 0:找到 ret=-19
pci_find_and_bind_driver:正在搜索驱动程序:供应商=1745,设备=5000
pci_find_and_bind_driver:找不到匹配项:绑定通用驱动程序而不是
pci_auto_config_devices:启动
pci_auto_config_devices: 设备 pci_7:0.0
PCI Autoconfig: BAR 0, Mem, size=0x100000, address=0x40800000 bus_lower=0x40900000
PCI Autoconfig: BAR 1, Mem, size=0x10000, address=0x40900000 bus_lower=0x40910000
pci_auto_config_devices:完成
pci_auto_config_devices:完成
pci_auto_config_devices:完成
pci_auto_config_devices:完成
2. uboot pci command
=> pci 3
Scanning PCI devices on bus 3
BusDevFun VendorId DeviceId Device Class Sub-Class
_____________________________________________________________
03.00.00 0xffff 0xffff 不适合任何类 0xff
3. lspci
# lspci -t
-+-[0004:00]---00.0-[01-ff]--
+-[0003:00]---00.0-[01-ff]----00.0- [02]--+-01.0-[03]--
| +-02.0-[04]--
| +-03.0-[05]--
| +-04.0-[06]--
| -05.0-[07]--
+-[0002:00]---00.0-[01-ff]----00.0-[02]--+-01.0-[03]--
| +-02.0-[04]--
| +-03.0-[05]--
| +-04.0-[06]--
| -05.0-[07]--
+-[0001:00]---00.0-[01-ff]----00.0-[02]--+-01.0-[03]--
| +-02.0-[04]--
| +-03.0-[05]--
| +-04.0-[06]--
| -05.0-[07]--
-[0000:00]---00.0-[01-ff]----00.0-[02]--+-01.0-[03]-- +
                                                           -02.0- [04]--
                                                           +-03.0-[05]--
                                                           +-04.0-[06]--
                                                           -05.0-[07]--
4. LSDK-20.12 uboot pci command
=> pci 3
Scanning PCI devices on bus 3
BusDevFun VendorId DeviceId Device Class          Sub-Class
_____________________________________________________________
03.00.00     0x1745   0x5000   Multimedia device 0x80
5. LSDK-20.12 lspci
# lspci -t
-+-[0004:00]---00.0-[01-ff]--
+-[0003:00]---00.0-[01-ff]--- -00.0-[02-07]--+-01.0-[03]----00.0
| +-02.0-[04]----00.0
| +-03.0-[05]----00.0
| +-04.0-[06]----00.0
| -05.0-[07]----00.0
+-[0002:00]---00.0-[01-ff]----00.0-[02-07]--+-01.0-[03]- ---00.0
| +-02.0-[04]----00.0
| +-03.0-[05]----00.0
| +-04.0-[06]----00.0
| -05.0-[07]----00.0
+-[0001:00]---00.0-[01-ff]----00.0-[02-07]--+-01.0-[03]- ---00.0
| +-02.0-[04]----00.0
| +-03.0-[05]----00.0
| +-04.0-[06]----00.0
| -05.0-[07]----00.0
-[0000:00]---00.0-[01-ff]----00.0-[02-07]--+-01.0-[03]- ---00.0
                                                                 +-02.0-[04]----00.0
                                                                 +-03.0-[05]----00.0
                                                                 +-04.0-[06]----00.0
                                                                 -05.0-[07]----00.0

                                       

更多回帖

发帖
×
20
完善资料,
赚取积分