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);
}
|