Linux如何测试PCIe驱动程序?

Linux如何测试PCIe驱动程序?,linux,driver,linux-device-driver,pci,pci-e,Linux,Driver,Linux Device Driver,Pci,Pci E,我写了一个简单的PCIe驱动程序,我想测试它是否工作。例如,如果可以写入和读取设备使用的存储器 我该怎么做 哪些东西也应该被证明?例如,您需要为您的设备找到sysfs条目 /sys/devices/pci0000:00/0000:00:07.0/0000:28:00.0 (通过/sys的其他子目录(例如/sys/class/…)中的符号链接可以更容易地到达那里) 在此目录中,应该有名为resource…的(伪)文件,它们对应于设备的各种地址范围(基址寄存器)。我认为这些可以是mmap()ed(

我写了一个简单的PCIe驱动程序,我想测试它是否工作。例如,如果可以写入和读取设备使用的存储器

我该怎么做


哪些东西也应该被证明?

例如,您需要为您的设备找到sysfs条目

/sys/devices/pci0000:00/0000:00:07.0/0000:28:00.0
(通过
/sys
的其他子目录(例如
/sys/class/…
)中的符号链接可以更容易地到达那里)

在此目录中,应该有名为
resource…
的(伪)文件,它们对应于设备的各种地址范围(基址寄存器)。我认为这些可以是
mmap()
ed(但我从来没有这样做过)


对于/sys中的条目,还可以执行许多其他操作。有关更多详细信息,请参阅内核文档。

要测试内存,可以采用以下方法:

1) 做lspci-v吗

Output of this command will be something like this

0002:03:00.1 Ethernet controller: QUALCOMM Corporation Device ABCD (rev 11)
Subsystem: QUALCOMM Corporation Device 8470
Flags: fast devsel, IRQ 110
Memory at 11d00f1008000 (64-bit, prefetchable) [disabled] [size=32K]
Memory at 11d00f0800000 (64-bit, prefetchable) [disabled] [size=8M]
Capabilities: [48] Power Management version 3
Capabilities: [50] Vital Product Data
Capabilities: [58] MSI: Enable- Count=1/8 Maskable- 64bit+
Capabilities: [a0] MSI-X: Enable- Count=1 Masked-
Capabilities: [ac] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [13c] Device Serial Number 00-00-00-00-00-00-00-00
Capabilities: [150] Power Budgeting <?>
Capabilities: [180] Vendor Specific Information: ID=0000 Rev=0 Len=028 <?>
Capabilities: [250] #12
此命令将启用地址11d00f1008000处的内存

现在,尝试使用处理器读取命令读取此内存,它应该是可访问的

setpci -s 0002:03:00.1 COMMAND=0x02