VxWorks Reference Manual : Libraries
ioMmuMicroSparcLib - microSparc I/II I/O DMA library
ioMmuMicroSparcInit( ) - initialize the microSparc I/II I/O MMU data structures
ioMmuMicroSparcMap( ) - map the I/O MMU for microSparc I/II (TMS390S10/MB86904)
This library contains the SPARC architecture-specific functions ioMmuMicroSparcInit( ) and ioMmuMicroSparcMap( ), needed to set up the I/O mapping for S-Bus DMA devices using the TI TMS390S10 and the MicroSparc II Mb86904 architecture.
arch/sparc/microSparc.h
ioMmuMicroSparcLib, cacheLib, mmuLib, vmLib
ioMmuMicroSparcInit( ) - initialize the microSparc I/II I/O MMU data structures
STATUS ioMmuMicroSparcInit ( void * physBase, /* first valid DMA physical address */ UINT range /* range covered by I/O Page Table */ )
This routine initializes the I/O MMU for S-Bus DMA with the TMS390S10 and Mb86904. This function is executed after the VxWorks kernel is initialized. The memory allocated for the ioPage tables is write protected and cache inhibited only if one of the MMU libraries (vmBaseLib or vmLib) is initialized. It has been implemented this way because boot ROMs do not initialize the MMU library in bootConfig.c; instead, they initialize the MMU separately from romInit.s.
OK, or ERROR if unable to satisfy request.
ioMmuMicroSparcLib, ioMmuMicroSparcMap( )
ioMmuMicroSparcMap( ) - map the I/O MMU for microSparc I/II (TMS390S10/MB86904)
STATUS ioMmuMicroSparcMap ( UINT dvmaAdrs, /* ioDvma virtual address to map */ void * physBase, /* physical address to add */ UINT size /* size to map */ )
This routine maps the specified amount of memory (size), starting at the specified ioDvma virtual address (dvmaAdrs), to the specified physical base (physBase).
Do not call ioMmuMicroSparcMap( ) without first calling the initialization routine ioMmuMicroSparcInit( ), because this routine depends on the data structures initialized there. The ioMmuMicroSparcMap( ) routine checks that the I/O MMU range specified at initialization is sufficient for the size of the memory being mapped. The physical base specified should be on a page boundary. Similarly, the size of the memory being mapped must be a multiple of the page size.
OK, or ERROR if unable to satisfy request.