Intel® IXP400 Software

Operating System Abstraction Layer (OSAL)

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.8Supporting 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 */

Programmer’s Guide

IXP400 Software Version 2.0

April 2005

 

Document Number: 252539, Revision: 007

325

Page 325
Image 325
Intel IXP400 manual Supporting New Platforms, Example 1. Global Memory Map Definitions