include/modules/ioMem/IxOsalIoMem.h | 4 ++-- include/modules/ioMem/IxOsalMemAccess.h | 2 +- os/linux/include/platforms/ixp400/IxOsalOsIxp400CustomizedMapping.h | 2 +- os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Sys.h | 2 +- os/linux/src/modules/ioMem/IxOsalOsIoMem.c | 3 +++ 5 files changed, 8 insertions(+), 5 deletions(-) --- ixp_osal/include/modules/ioMem/IxOsalIoMem.h 1970-01-01 00:00:00.000000000 +0000 +++ ixp_osal/include/modules/ioMem/IxOsalIoMem.h 1970-01-01 00:00:00.000000000 +0000 @@ -117,8 +117,8 @@ ixOsalCoreWordSwap (UINT32 wordIn) #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 1970-01-01 00:00:00.000000000 +0000 +++ ixp_osal/include/modules/ioMem/IxOsalMemAccess.h 1970-01-01 00:00:00.000000000 +0000 @@ -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 1970-01-01 00:00:00.000000000 +0000 +++ ixp_osal/os/linux/include/platforms/ixp400/IxOsalOsIxp400CustomizedMapping.h 1970-01-01 00:00:00.000000000 +0000 @@ -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 1970-01-01 00:00:00.000000000 +0000 +++ ixp_osal/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Sys.h 1970-01-01 00:00:00.000000000 +0000 @@ -107,7 +107,7 @@ IxOsalMemoryMap ixOsalGlobalMemoryMap[] ixOsalLinuxMemMap, /* mapFunction */ 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 1970-01-01 00:00:00.000000000 +0000 +++ ixp_osal/os/linux/src/modules/ioMem/IxOsalOsIoMem.c 1970-01-01 00:00:00.000000000 +0000 @@ -45,6 +45,7 @@ * -- End Intel Copyright Notice -- */ +#include #include #include @@ -54,6 +55,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); }