I've been scratching my head trying to understand the BAR addressing in Legacy PCI.
At tho moment I'm having trouble understanding how the size and starting location of a BAR is allocated. From what I understand the size is determined by the number of bits right of the rightmost '1'. But I do not really understand how to specify the starting address.
- Suppose I have a BAR initialised to address 0xA8003000 and another at 0xA8002000, what's the difference between them?
- Suppose I want to assign a BAR with 4KB of address space starting at 0, what would be the input value to the BAR?