VxWorks Reference Manual : Libraries

ioMmuMicroSparcLib

NAME

ioMmuMicroSparcLib - microSparc I/II I/O DMA library

ROUTINES

ioMmuMicroSparcInit( ) - initialize the microSparc I/II I/O MMU data structures
ioMmuMicroSparcMap( ) - map the I/O MMU for microSparc I/II (TMS390S10/MB86904)

DESCRIPTION

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.

INCLUDE FILES

arch/sparc/microSparc.h

SEE ALSO

ioMmuMicroSparcLib, cacheLib, mmuLib, vmLib


Libraries : Routines

ioMmuMicroSparcInit( )

NAME

ioMmuMicroSparcInit( ) - initialize the microSparc I/II I/O MMU data structures

SYNOPSIS

STATUS ioMmuMicroSparcInit
    (
    void * physBase, /* first valid DMA physical address */
    UINT   range     /* range covered by I/O Page Table */
    )

DESCRIPTION

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.

RETURNS

OK, or ERROR if unable to satisfy request.

SEE ALSO

ioMmuMicroSparcLib, ioMmuMicroSparcMap( )


Libraries : Routines

ioMmuMicroSparcMap( )

NAME

ioMmuMicroSparcMap( ) - map the I/O MMU for microSparc I/II (TMS390S10/MB86904)

SYNOPSIS

STATUS ioMmuMicroSparcMap
    (
    UINT   dvmaAdrs, /* ioDvma virtual address to map */
    void * physBase, /* physical address to add */
    UINT   size      /* size to map */
    )

DESCRIPTION

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.

RETURNS

OK, or ERROR if unable to satisfy request.

SEE ALSO

ioMmuMicroSparcLib, ioMmuMicroSparcInit( )