Subject: Re: 64-bit memory fun with an adaptec 3950U2B..
To: Chris G. Demetriou <cgd@netbsd.org>
From: Frank van der Linden <frank@wins.uva.nl>
List: tech-kern
Date: 03/14/2000 11:18:16
On Mon, Mar 13, 2000 at 06:30:08PM -0800, Chris G. Demetriou wrote:
> > 	* make sure bus_addr_t is 64-bits wide, and you might want
> > 	  bus_size_t to be as well.
> 
> to be clear, this is only if the bios/firmware/whatever actually maps
> things such that you need more than the low 32 bits.
> 
> if it always puts things in the low 32 bits, or if you're just brave,
> you can still keep using 32-bit bus_addr_t/bus_size_t, and:

It could make sense to bump bus_addr_t to 64 bits on LP64 platforms to
support 64bit PCI buses, however, an awful lot of code out there deals
with devices that can at most address 32 bits across the bus, i.e. that
bus_addr_t <= 32 bits, and that it can be programmed into 32bit wide
card registers. It will need some work to make the code accept that
bus_addr_t is 64 bits, although it's doable.

I've also been told that on Alphas, when a 32bit adaptec card is put
into a 64bit slot, pci_mem_find will find 64bit memory. So I think
that pci_mem_find should find either type, and only fail if the
upper word is != 0.

- Frank