Subject: Re: DVMA on VME under NetBSD-current
To: Rob Ginn <rob@olg.com>
From: Paul Kranenburg <pk@cs.few.eur.nl>
List: port-sparc
Date: 10/05/1998 22:40:07
> I'm unclear as to how the VME code should determine that the card is
> A16,A24, or A32 as the VMEMOD_A* parameters are not passed into
> the bus_dmamap_create() function.

This is the reason why that code is still "to do".

> Perhaps a set of flags on the configuration
> line which specify special capabilities/limitations of the specific
> VME card could be used? 

A couple of changes and enhancements to the VME bus implementation
are being planned. These will also address the issue of specifying
VME modifiers for drivers that need to know.

In this case though, the VME modifier must be passed on through the
bus_dmamap_*() functions, and it's not yet clear to me how that is
best done.

> At any rate, I don't want to push, but: do you plan to extend the current
> VME support in the very near future to include support for A16/A24 DMA
> capable cards?  I kind-of need it now, so if not, I may take a stab at it.
> I suppose I could do a quick hack and just limit DVMA to the top 1MB and
> subtract DVMA_BASE4M from the returned value in the driver, but I'd really
> like something cleaner.

You need to allocate in the top 8MB of DVMA space of which A24 devices
take the first 1MB. In other words, the DVMA address range ff800000-ff900000
maps to VME/A24 space 0-00100000. I suppose A16 devices map into the
first 64KB of this MB.

-pk