开发者

Change IOaddress of a PCI device

I would like to change the IOaddress of a PCI device by writing the new (page aligned) address into BAR0/1. When I did that using a BIOS funct开发者_开发知识库ion I could not access the PCI device at the new address.

Is there anything else that needs to be done to get that to work? I am using Assembler in real mode.


Overwriting the BAR should change the address of the device. (As long as you did it properly.)

Is the device behind a bridge? If so, you will also need to update the bridge configuration registers.

Also, the chipset/root complex may have it's own bus decode configuration. Check the chipset datasheet.


if your end point device is behind the bridge then change the Pre-fetchable Base Upper 32 Bit and Pre-fetchable Limit Upper 32 Bit registers appropriately. I dont think you need to worry about root complex.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜