Subject: pci_mapreg_map - basep argument
To: None <tech-kern@netbsd.org>
From: Leo Weppelman <leo@wau.mis.ah.nl>
List: tech-kern
Date: 06/27/2000 13:16:58
I was wondering what the allow usage of the basep argument is. Is this
1) the value of the BAR or 2) a valid physical address from the view of
the PCI card or 3) a valid physical address from the view of the CPU...

The story behind the question is this:

On the atari Hades, the PCI cards have memory mapped I/O and memory and
config space space. So, to access the memory space of a card, the CPU writes
to address 0x8xxxxxxx. The card however sees this as address 0x0xxxxxxx. So,
the value of the BAR != physical address. To make it even more fun, from the
cards view, CPU RAM space is located at [0x80000000-0xb0000000].

Now, the eso driver used the return value in *basep to rewrite the BAR...

Should there be a function to turn a tag/handle pair into a physical address?
And maybe a physical address into a BAR-value?

Leo.