PCI标准手册 url1: https://ics.uci.edu/~iharris/ics216/pci/PCI_22.pdf
视频 url2: https://www.bilibili.com/video/BV1Dv4y1T7qN/?vd_source=7a1a0bc74158c6993c7355c5490fc600
在 PCI 标准中,要求每个设备都一个块空间作为配置空间
那么如何访问设备配置空间呢?如下是计算设备配置空间地址的方式,访问起来其实有点类似于 page table 对于 va —> pa 映射的计算
x86 架构 MMIO 的方式:先对 PCI_CONFIG_ADDR 写入数据,告诉总线内核要读写哪块寄存器,再通过 PCI_CONFIG_DATA 进行真正的读写
扫描出的设备信息如下:
可以通过 vendor ID 和 device ID 查到设备
也可以通过 class ID 查到设备
问题1:IRQ 共用
问题2:竞态条件
PCI 中 MSI 是可选功能,PCIE 中是强制要求