0

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 function 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.

Georg
  • 119
  • 1
  • 10

2 Answers2

0

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.

myron-semack
  • 6,259
  • 1
  • 26
  • 38
0

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.