C语言 ioread32 和 pci_bus_read_config_word 包装器函数有什么区别?在 pci 设备驱



在pci设备驱动程序中,我正在尝试在MIPS平台中使用ioread32读取PCI_COMMAND寄存器,但抛出了数据总线错误。在传入ioread32之前,我已经验证了有效参数。对此有任何帮助吗?在这种情况下使用pci_bus_read_config_word可以防止数据总线错误吗?

这取决于您的平台对配置空间访问的支持类型。有两种类型的访问 -

1 -旧版 PCI 配置机制- 这使用 IO 端口地址访问端点配置空间。你可以为此使用 ioread32((。
2 -增强的 PCI 配置机制- 这使用内存映射 IO。您可以使用简单的指针操作从中读取。

由于很难找到访问机制支持,因此最好使用 pci API(在本例中为 pci_bus_read_config_word(而不是使用 ioread32((。

pci_*(( API 将负责对该平台有效的访问方法。

最新更新