gpt4 book ai didi

c - ioread32 和 pci_bus_read_config_word 包装函数有什么区别?在 pci 设备驱动程序中使用哪一个更安全?

转载 作者:行者123 更新时间:2023-11-30 19:33:37 24 4
gpt4 key购买 nike

在 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 将处理对该平台有效的访问方法。

关于c - ioread32 和 pci_bus_read_config_word 包装函数有什么区别?在 pci 设备驱动程序中使用哪一个更安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45219288/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com