更改PCI设备的IO地址

时间:2011-10-02 20:12:26

标签: pci pci-bus

我想通过将新的(页面对齐的)地址写入BAR0 / 1来更改PCI设备的IO地址。当我使用BIOS功能执行此操作时,无法在新地址访问PCI设备。

还有什么需要做才能让它发挥作用吗?我在实模式下使用Assembler。

2 个答案:

答案 0 :(得分:0)

覆盖BAR应该更改设备的地址。 (只要你做得恰到好处。)

设备是否在桥后?如果是这样,您还需要更新桥配置寄存器。

此外,芯片组/根复合体可能具有自己的总线解码配置。检查芯片组数据表。

答案 1 :(得分:0)

如果您的终点设备位于网桥后面,则相应地更改可预先获取的Base 32位和Pre-fetchable Limit Upper 32位寄存器。我不认为你需要担心根复合体。