summaryrefslogtreecommitdiff
path: root/packages/ixp4xx/ixp-osal-2.1/le.patch
blob: 3fc5ddf62400776a662629596cd26e52072c9c70 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
--- 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 <asm/page.h>
 #include <asm/io.h>
 #include <linux/ioport.h>
 
@@ -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);
 }