-1
在pci設備驅動程序中,我試圖在MIPS平臺中使用ioread32讀取PCI_COMMAND寄存器,但引發了數據總線錯誤。在傳入ioread32之前,我已驗證了有效參數。對此有何幫助?在這種情況下使用pci_bus_read_config_word是否會阻止數據總線錯誤?ioread32和pci_bus_read_config_word包裝函數有什麼區別?哪一個更安全的使用在PCI設備驅動程序?
在pci設備驅動程序中,我試圖在MIPS平臺中使用ioread32讀取PCI_COMMAND寄存器,但引發了數據總線錯誤。在傳入ioread32之前,我已驗證了有效參數。對此有何幫助?在這種情況下使用pci_bus_read_config_word是否會阻止數據總線錯誤?ioread32和pci_bus_read_config_word包裝函數有什麼區別?哪一個更安全的使用在PCI設備驅動程序?
這取決於您的平臺對配置空間訪問具有何種支持。有兩種類型的訪問 -
1 - 傳統PCI配置機制 - 這使用IO端口地址訪問端點配置空間。你可以使用ioread32()來做到這一點。
2 - 增強型PCI配置機制 - 使用內存映射IO。你可以使用簡單的指針操作來讀取它。
由於很難找到訪問機制支持,所以使用pci API(在本例中爲pci_bus_read_config_word)比使用ioread32()更好。
pci _ *()API將處理對該平臺有效的訪問方法。