diff options
Diffstat (limited to 'packages/ixp4xx/ixp-osal-2.1.1/le.patch')
-rw-r--r-- | packages/ixp4xx/ixp-osal-2.1.1/le.patch | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/packages/ixp4xx/ixp-osal-2.1.1/le.patch b/packages/ixp4xx/ixp-osal-2.1.1/le.patch new file mode 100644 index 0000000000..a6936ea33b --- /dev/null +++ b/packages/ixp4xx/ixp-osal-2.1.1/le.patch @@ -0,0 +1,72 @@ + 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 <asm/page.h> + #include <asm/io.h> + #include <linux/ioport.h> + +@@ -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); + } + |