DMA

Kevin Sheehan {Consulting Poster Child} kevin at corp.sun.com
Sat Jun 2 05:49:27 AEST 1990


In article <8290 at brazos.Rice.edu> eplunix!das at harvard.harvard.edu (David Steffens) writes:
>X-Sun-Spots-Digest: Volume 9, Issue 185, message 10
>
>In article <8186 at brazos.Rice.edu>, Sun-Spots Volume 9, Issue 180, message 13
>kevin at corp.sun.com (Kevin Sheehan {Consulting Poster Child}) writes:
>> On the SS1, all of the kernel context is visible to the SBus devices,
>> so all you really need to do is use bp_mapin() to make it visible,
>> then set up the xfer.
>
>What are the implications, if any, of these comments for a DMA driver
>running on a Sun4/260 under SunOS4.1?  Is there now a general way around
>the 600K DVMA limit, i.e. does bp_mapin() on the 4/260 work as described
>for the SS1?

No - VME still goes thru the 1MB DVMA window.  You are limited by hardware
to 1MB, by usage to something less.  You can map more than 64K in 4.1, as
the mapping routines now allow it, but the 1MB limit remains for VME
machines like the 4/260.

The SBus does not have this limit, as it can see all of the kernel
context.

>And while I've got your attention...  I'm currently using mbsetup(),
>MBI_ADDR() and mbrelse() as described in the 24 Apr 89 edition of "Writing
>Device Drivers".
> [ stuff deleted ]
>Are there any changes I
>absolutely _must_ make to a DMA driver which runs under SunOS4.0.3 in
>order to run it under SunOS4.1?

No - mbsetup() is now a front end to the routines that do the real work,
but you don't *need* to know that. It would be a good idea to read the 4.1
manual to see the direction we are going with drivers, but the old stuff
still works just fine in 4.1.

Kevin Sheehan
Sun Microsystems
kevin at sun.com



More information about the Comp.sys.sun mailing list