1
我在64位linux主機上使用64位PCI express卡,問題是它是酒吧是64位,但總是得到一個地址在32位位地址範圍,即BAR的高32位始終爲零。64位linux主機上的地址分配到64位pcie卡
如何強制使用真正的64位地址?我試圖通過重寫BIOS枚舉來強制執行它,並將啓動時參數指向內核,以便內核可枚舉PCI設備,但結果與BIOS相同。
Linux不支持真正的64位地址嗎?
我在64位linux主機上使用64位PCI express卡,問題是它是酒吧是64位,但總是得到一個地址在32位位地址範圍,即BAR的高32位始終爲零。64位linux主機上的地址分配到64位pcie卡
如何強制使用真正的64位地址?我試圖通過重寫BIOS枚舉來強制執行它,並將啓動時參數指向內核,以便內核可枚舉PCI設備,但結果與BIOS相同。
Linux不支持真正的64位地址嗎?
您可以嘗試以下事情。 首先在內核中啓用PAE(物理地址擴展)。然後使用setpci命令或從驅動程序中,將高32位條形寄存器更改爲非零值(如果您的終點設備在pci橋下),請不要忘記更改預取基本高位32位和預高位可捕獲適當限制高位32位寄存器。
重要嗎? I/O地址不應占用太多內存,所以32位就足夠了。也許Linux選擇了一種簡單的方法來支持舊設備,併爲它們提供了低地址。 – ugoren
你應該檢查是否支持窗口,這樣你可以映射你的窗口遍歷地址高達64位 –