--- ixp_osal/include/modules/ioMem/IxOsalIoMem.h 2005-04-17 20:56:25.000000000 -0700 +++ ixp_osal/include/modules/ioMem/IxOsalIoMem.h 2005-10-07 16:20:27.786083595 -0700 @@ -105,8 +105,8 @@ #endif /* ndef __wince */ #define IX_OSAL_SWAP_SHORT(sData) ((sData >> 8) | ((sData & 0xFF) << 8)) -#define IX_OSAL_SWAP_SHORT_ADDRESS(sAddr) ((sAddr) ^ 0x2) -#define IX_OSAL_SWAP_BYTE_ADDRESS(bAddr) ((bAddr) ^ 0x3) +#define IX_OSAL_SWAP_SHORT_ADDRESS(sAddr) ((UINT16*)((UINT32)(sAddr) ^ 0x2)) +#define IX_OSAL_SWAP_BYTE_ADDRESS(bAddr) ((UINT8*)((UINT32)(bAddr) ^ 0x3)) #define IX_OSAL_BE_XSTOBUSL(wData) (wData) #define IX_OSAL_BE_XSTOBUSS(sData) (sData) --- ixp_osal/include/modules/ioMem/IxOsalMemAccess.h 2005-04-17 20:56:25.000000000 -0700 +++ ixp_osal/include/modules/ioMem/IxOsalMemAccess.h 2005-11-19 16:44:33.414684841 -0800 @@ -84,7 +84,7 @@ #elif defined (IX_OSAL_LINUX_LE) -#define IX_SDRAM_LE_DATA_COHERENT +#define IX_SDRAM_LE_ADDRESS_COHERENT #elif defined (IX_OSAL_WINCE_LE) --- ixp_osal/os/linux/include/platforms/ixp400/IxOsalOsIxp400CustomizedMapping.h 2005-04-17 20:56:27.000000000 -0700 +++ ixp_osal/os/linux/include/platforms/ixp400/IxOsalOsIxp400CustomizedMapping.h 2005-11-19 16:45:35.298578949 -0800 @@ -171,7 +171,7 @@ ***************************/ #if (IX_COMPONENT_NAME == ix_qmgr) -#define IX_OSAL_LE_DC_MAPPING +#define IX_OSAL_LE_AC_MAPPING #endif /* qmgr */ --- ixp_osal/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Sys.h 2005-11-19 15:53:11.808771607 -0800 +++ ixp_osal/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Sys.h 2005-11-19 16:51:40.729574072 -0800 @@ -101,6 +101,6 @@ IxOsalMemoryMap ixOsalGlobalMemoryMap[] ixOsalLinuxMemUnmap, /* unmapFunction */ 0, /* refCount */ - IX_OSAL_BE | IX_OSAL_LE_DC, /* endianType */ + IX_OSAL_BE | IX_OSAL_LE_AC, /* endianType */ "qMgr" /* name */ }, --- ixp_osal/os/linux/src/modules/ioMem/IxOsalOsIoMem.c 2005-09-24 20:57:03.000000000 -0700 +++ ixp_osal/os/linux/src/modules/ioMem/IxOsalOsIoMem.c 2005-11-20 15:21:33.670138502 -0800 @@ -45,6 +45,7 @@ * -- End Intel Copyright Notice -- */ +#include #include #include @@ -54,6 +54,8 @@ PUBLIC void ixOsalLinuxMemMap (IxOsalMemoryMap * map) { + /* Linux requires LE mappings to use address coherency */ + IX_OSAL_ENSURE((map->mapEndianType & IX_OSAL_LE_DC) == 0, "LE Data Coherency not supported"); map->virtualAddress = (UINT32) ioremap (map->physicalAddress, map->size); }