Intel IXP400 Frozen Dessert Maker User Manual


 
Intel
®
IXP400 Software
Operating System Abstraction Layer (OSAL)
Programmer’s Guide IXP400 Software Version 2.0 April 2005
Document Number: 252539, Revision: 007 323
The OSAL layer also provides APIs for dealing with the following situations:
Transparently accessing I/O-memory-mapped hardware in different endian modes
Transparently accessing SDRAM memory between any endian type and big endian, for the
purpose of sharing data with big-endian auxiliary processing engines
The OSAL layer supports the following endianness modes:
Big endian
Little endian
Little endian address coherent where
Core is operating in little endian mode but the bus addresses are swapped
32-bit word accesses are made automatically in big endian mode
Byte and 16-bit half-word addresses are swapped (address XOR 3)
Little endian, data coherent where,
Core is operating in little endian mode but the bus data is swapped
Byte accesses are made automatically in big endian mode
32-bit word and 16-bit half-word values are swapped
In little endian mode, users must specify coherency modes before using the IO/Memory access
macros (for example, IX_OSAL_READ_LONG, IX_OSAL_WRITE_LONG). This can be
performed by declaring Little Endian Coherency mode in the customized mapping declarations
under os/vxworks/include/platforms/ixp400/.
Table 64 provides an overview of the I/O memory and endianness support module.
Table 64. OSAL I/O Memory and Endianness Interface (Sheet 1 of 2)
IX_OSAL_COMPONENT_MAPPING select endianness mapping type
IX_OSAL_MEM_MAP_TYPE select static/dynamic I/O mapping
Defines
required
IX_OSAL_SDRAM_ENDIANNESS select SDRAM endianness
IX_OSAL_MEM_MAP map I/O memory
IX_OSAL_MEM_UNMAP unmap I/O memory
IX_OSAL_MMAP_PHYS_TO_VIRT physical to virtual translation
I/O
Mapping
IX_OSAL_MMAP_VIRT_TO_PHYS virtual to physical translation