主题中讨论的其他器件: TUSB7340
工具/软件:Linux
从 AM5728 RC 对 PCI 交换机进行非32位对齐访问时出现问题。 RC 下方有一个 PEX 8606、开关接头类型未正确拾取。 我最初在 e2e.ti.com/.../597740中对此进行了讨论。
说明问题的摘要如下:
Debian@arm:~$ lspci -s 0000:01:00.0 -x
0000:01:00.0 PCI 桥:PLX Technology、Inc. PEX 8606 6通道、6端口 PCI Express Gen 2 (5.0 GT/s)开关(修订版 BA)
00:B5 10 06 86 40 01 10 00 BA 00 04 06 10 00 01 00
10:00 00 20 20 00 00 00 01 02 07 00 F1 01 00
20:F0 ff 00 00 F1 ff 01 00 00 00 00 00 00 00 00 00 00 00
30:00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 01 01 00
然后对标头类型执行字节访问:
Debian@arm:~$ sudo setpci -s 0001:02:09.0 e.b
00
但执行32位访问:
Debian@arm:~$ sudo setpci -s 0001:02:09.0 c.l
00010010
因此 PCI 设备探测器出现故障,其库存代码如下所示:
[1.850281] PCI 0000:01:00.0:[10b5:8606]类型00类0x060400
[1.850311] PCI 0000:01:00.0:忽略类0x060400 (与标头类型00不匹配)
我们可以修改内核驱动程序代码、但此操作看起来很基本、必须存在其他问题。
有什么想法不一致的访问失败的原因?
