0
votes

I am trying to write to a board control register on a PMC A/D card attached to a PCI board with 4 DSPs on it. The A/D card sits on the PCI local bus and I know the values for its BARs, but I still cannot seem to write to the board control register from either the host PC or the DSPs.

So, my question is where exactly would the base address of the device be located? Is it in the RAM always, or is there not a specific location the PCI device is mapped to? I would like to initialize the board control register (which is supposed to be at 0x00 offset from its base) and be able to see that it is being set to the expected initialization value.

1

1 Answers

0
votes

Base address for the board is assigned to the board by the operating system on start-up.

OS does a scanning of the PCI devices in the board and allots each device a non-conflicting address range.ie. OS writes the BAR during startup. BAR is a register (Read/Writable) which is implemented inside the PCI card. OS uses configuration cycles to write the to the BAR.