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 325
IX_OSAL_IO_ENDIANESS
This selects the I/O endianness type required by the component. This can be:
Big endian (IX_OSAL_BE)
Little endian (IX_OSAL_LE). In this mode users cannot access IoMem macros such as
IX_OSAL_READ_LONG, IX_OSAL_WRITE_LONG, etc., and must declare coherency
mode before using them; see Section 24.8.
Little endian, address coherent (IX_OSAL_LE_AC)
Little endian, data coherent (IX_OSAL_LE_DC)
IX_OSAL_SDRAM_ENDIANESS
This selects the SDRAM endianness used in the component. This can be:
Big endian (IX_SDRAM_BE)
Little endian (IX_SDRAM_LE)
Little endian, address coherent (IX_SDRAM_LE_ADDRESS_COHERENT)
Little endian, data coherent (IX_SDRAM_LE_DATA_COHERENT)
It is recommended to use a unique identifier for each software component, known at build time,
and define these symbols in only one file for each component.
24.8 Supporting New Platforms
Each platform implementing the I/O memory mapping and endianness support module is required
to define a global memory map array, each element in the array having the IxOsalMemMap type.
Typically each contiguous range in the platform memory map is represented by an entry in the
global memory map. To support operating systems using dynamic memory mapping, custom
functions for mapping and un-mapping memory must be implemented. These functions have
already been implemented for Linux
Note: Platform specific refers to all the platforms using the same network processor variants. The
IXP4XX product line and IXC1100 control plane processorsare all part of the same platform in this
case. A change in product line refers to using the OSAL layer for a new platform.
The platform package must also include the definition for the global memory map using the
IX_OSAL_IO_MEM_GLOBAL_MEMORY_MAP define, as in the following example:
#define IX_OSAL_IO_MEM_GLOBAL_MEMORY_MAP ixp123GlobalMemoryMap
The following is an example fragment of a global memory map:
Example 1. Global Memory Map Definitions
IxOsalMemoryMap ixp123GlobalMemoryMap[] =
{
#ifdef IX_OSAL_LINUX
/* PCI config Registers */