不同于单片机, linux提供了相当完善的PCIe驱动已经调试工具。
1. 最基本的是用 cat 就能查看加载的PCI 设备信息。
Ex: cat /sys/bus/pci/device/{BDF}/
2. 使用pciutils
这个估计要安装, 一般linux不会自带。我一般用lspci 查看每个设备功能的config space。
setpci 可以用来修改某些config space 寄存器
主要是以下两个命令
lspci -vvv 或者lspci -xxx
setpci
3. 使用pcimem
pcimem 有点像 devmem 。 如果你的pci controller 是用作root complexe 的话。 可以用pcimem 读取或写入EP 的ressources.
用 devmem 的话 你得知道物理地址。pcimem 的话, 可以直接使用ressources的路径。
/sys/bus/pci/device/{BDF}/ressource0
但是pcimem 不能一次写入多个word, 最多一次一个longword。测试性能不是很方便。
4. dmesg | grep pci
dmesg 里包含了很多pci 资源分配信息。 如果某个pci设备探测不到,可以用这个命令pci相关的log 找找原因
905

被折叠的 条评论
为什么被折叠?



