PCI设备编号:
00:00:1f.1则是一个PCI外设的地址,
第一个16位表示域(lspci的时候没有显示出来),
第二个8位表示一个总线编号,
第三个5位表示一 个设备号,
最后是3位,表示功能号。
Lspci:
Lspci 显示pci设备简略信息列表
-s:指定pci设备号
-v: 显示详细信息
-vv: 显示更加详细的信息
-t: 显示pci设备tree
-x:以十六进制显示 PCI 配置空间(头64 Byte)
常用如:
Lspci -tv
lspci -s 04:00.0 -vv
Lspci -v
Setpci:
访问pci设备的配置空间
setpci [<options>] (<device>+ <reg>[=<values>]*)*
-s:指定pci设备号
-v: 显示执行信息
显示pci配置空间的地址和意义
setpci --dumpregs
查看PCI设备的reg值
setpci -v -s 00:02.0 VENDOR_ID+4.L
setpci -v -s 00:02.0 F4.B
设备PCI设备的reg值
sudo setpci -v -s 00:02.0 F4.B=FF
Lspci和setpci, 只要是标准的PCI设备, 即使该PCI设备没有驱动,也是能用的,他们都是只和PCI设备的配置空间交互, 不与PCI内存空间交互.
PCI内存/IO地址空间访问:
访问PCI映射后的系统内存地址(绝对物理地址),就能直接访问PCI的内部寄存器
根据配置空间信息, 可以知道PCI设备的系统内存地址的基址,
后再根据芯片资料描述的内部寄存器地址,就可以访问相关的PCI内存寄存器了
查看系统内存地址和IO地址:
cat /proc/iomem 可以查看系统内存地址空间的分配情况
cat /proc/ioports 可以查看系统IO地址空间的分配情况
阅读(1698) | 评论(0) | 转发(0) |