aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/ixp4xx/ixp4xx-csr-2.1
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/ixp4xx/ixp4xx-csr-2.1')
-rw-r--r--recipes/ixp4xx/ixp4xx-csr-2.1/Makefile.patch26
-rw-r--r--recipes/ixp4xx/ixp4xx-csr-2.1/bit-macro.patch14
-rw-r--r--recipes/ixp4xx/ixp4xx-csr-2.1/gcc4.patch23
-rw-r--r--recipes/ixp4xx/ixp4xx-csr-2.1/ixethdb-header.patch11
-rw-r--r--recipes/ixp4xx/ixp4xx-csr-2.1/ixnpemhconfigisr-is-private.patch18
-rw-r--r--recipes/ixp4xx/ixp4xx-csr-2.1/le.patch13
-rw-r--r--recipes/ixp4xx/ixp4xx-csr-2.1/livelock.patch19
-rw-r--r--recipes/ixp4xx/ixp4xx-csr-2.1/mii-debug.patch26
-rw-r--r--recipes/ixp4xx/ixp4xx-csr-2.1/module-param.patch19
-rw-r--r--recipes/ixp4xx/ixp4xx-csr-2.1/oe-makefile.patch49
-rw-r--r--recipes/ixp4xx/ixp4xx-csr-2.1/rtl8201-support.patch30
11 files changed, 248 insertions, 0 deletions
diff --git a/recipes/ixp4xx/ixp4xx-csr-2.1/Makefile.patch b/recipes/ixp4xx/ixp4xx-csr-2.1/Makefile.patch
new file mode 100644
index 0000000000..f082b713f0
--- /dev/null
+++ b/recipes/ixp4xx/ixp4xx-csr-2.1/Makefile.patch
@@ -0,0 +1,26 @@
+--- ixp400_xscale_sw/Makefile 1970-01-01 00:00:00.000000000 +0000
++++ ixp400_xscale_sw/Makefile 1970-01-01 00:00:00.000000000 +0000
+@@ -297,9 +297,9 @@ endif
+ else # IX_TARGET_OS == vxworks
+ # linux compiler flags
+ MAKE_DEP_FLAG := -M
+-LINUX_MACH_CFLAGS := -D__LINUX_ARM_ARCH__=5 -mcpu=xscale -mtune=xscale
++LINUX_MACH_CFLAGS := -D__LINUX_ARM_ARCH__=5 -mtune=xscale
+
+-CFLAGS := -D__KERNEL__ -I$(LINUX_SRC)/include -Wall -Wno-trigraphs -fno-common -pipe -mapcs-32 -mshort-load-bytes -msoft-float -DMODULE -Isrc/include -D__linux -DCPU=33 -DXSCALE=33 $(LINUX_MACH_CFLAGS)
++CFLAGS := -D__KERNEL__ -I$(LINUX_SRC)/include -Wall -Wno-trigraphs -fno-common -pipe -msoft-float -DMODULE -Isrc/include -D__linux -DCPU=33 -DXSCALE=33 $(LINUX_MACH_CFLAGS)
+ ifndef IX_INCLUDE_MICROCODE
+ CFLAGS += -DIX_NPEDL_READ_MICROCODE_FROM_FILE
+ endif
+@@ -867,9 +867,11 @@ $(NPE_DAT) : $(NPE_CONVERTER)
+
+ ifeq ($(IX_HOST_OS),linux)
+ ifndef IX_INCLUDE_MICROCODE
++ifdef IX_BUILD_MICROCODE
+ Makefile: $(NPE_CONVERTER) $(NPE_DAT)
+ endif
+ endif
++endif
+
+ ################################################################
+ # Rules to check that macros are defined.
diff --git a/recipes/ixp4xx/ixp4xx-csr-2.1/bit-macro.patch b/recipes/ixp4xx/ixp4xx-csr-2.1/bit-macro.patch
new file mode 100644
index 0000000000..6efdba5c1e
--- /dev/null
+++ b/recipes/ixp4xx/ixp4xx-csr-2.1/bit-macro.patch
@@ -0,0 +1,14 @@
+--- ixp400_xscale_sw/src/include/IxTypes.h 1970-01-01 00:00:00.000000000 +0000
++++ ixp400_xscale_sw/src/include/IxTypes.h 1970-01-01 00:00:00.000000000 +0000
+@@ -79,6 +79,10 @@
+ #endif
+ #endif
+
++#ifndef BIT
++#define BIT(x) ((1)<<(x))
++#endif
++
+ #include "IxOsalBackward.h"
+
+ #endif /* IxTypes_H */
+
diff --git a/recipes/ixp4xx/ixp4xx-csr-2.1/gcc4.patch b/recipes/ixp4xx/ixp4xx-csr-2.1/gcc4.patch
new file mode 100644
index 0000000000..a701328dd1
--- /dev/null
+++ b/recipes/ixp4xx/ixp4xx-csr-2.1/gcc4.patch
@@ -0,0 +1,23 @@
+--- ixp400/src/npeMh/IxNpeMhSymbols.c~ 2006-01-08 03:13:28.000000000 +1030
++++ ixp400/src/npeMh/IxNpeMhSymbols.c 2006-01-09 00:56:57.000000000 +1030
+@@ -52,6 +52,7 @@
+
+ #include <linux/module.h>
+ #include <IxNpeMh.h>
++#include <IxNpeMhConfig_p.h>
+
+ EXPORT_SYMBOL(ixNpeMhInitialize);
+ EXPORT_SYMBOL(ixNpeMhUnload);
+@@ -67,9 +68,9 @@ extern BOOL ixNpeMhConfigInFifoIsFull(Ix
+ extern BOOL ixNpeMhConfigOutFifoIsEmpty (IxNpeMhNpeId npeId);
+ extern void ixNpeMhConfigLockRelease (IxNpeMhNpeId npeId);
+ extern void ixNpeMhConfigLockGet (IxNpeMhNpeId npeId);
+-extern void ixNpeMhConfigOutFifoRead (IxNpeMhNpeId npeId,IxNpeMhMessage *message);
+-extern void ixNpeMhConfigInFifoWrite (IxNpeMhNpeId npeId,IxNpeMhMessage message);
+-extern struct ixNpeMhConfigNpeInfo ixNpeMhConfigNpeInfo[IX_NPEMH_NUM_NPES];
++extern IX_STATUS ixNpeMhConfigOutFifoRead (IxNpeMhNpeId npeId,IxNpeMhMessage *message);
++extern IX_STATUS ixNpeMhConfigInFifoWrite (IxNpeMhNpeId npeId,IxNpeMhMessage message);
++extern IxNpeMhConfigNpeInfo ixNpeMhConfigNpeInfo[IX_NPEMH_NUM_NPES];
+
+ EXPORT_SYMBOL(ixNpeMhConfigInFifoIsFull);
+ EXPORT_SYMBOL(ixNpeMhConfigOutFifoIsEmpty);
diff --git a/recipes/ixp4xx/ixp4xx-csr-2.1/ixethdb-header.patch b/recipes/ixp4xx/ixp4xx-csr-2.1/ixethdb-header.patch
new file mode 100644
index 0000000000..8ab22bee89
--- /dev/null
+++ b/recipes/ixp4xx/ixp4xx-csr-2.1/ixethdb-header.patch
@@ -0,0 +1,11 @@
+--- ixp400_xscale_sw/src/ethDB/include/IxEthDB_p.h 1970-01-01 00:00:00.000000000 +0000
++++ ixp400_xscale_sw/src/ethDB/include/IxEthDB_p.h 1970-01-01 00:00:00.000000000 +0000
+@@ -693,7 +693,7 @@ IX_ETH_DB_PUBLIC UINT32 ixEthDBEntryXORH
+ IX_ETH_DB_PUBLIC UINT32 ixEthDBKeyXORHash(void *macAddress);
+
+ /* Port updates */
+-IX_ETH_DB_PUBLIC IxEthDBStatus ixEthDBNPEUpdateHandler(IxEthDBPortId portID, IxEthDBFeature type);
++IX_ETH_DB_PUBLIC IxEthDBStatus ixEthDBNPEUpdateHandler(IxEthDBPortId portID, IxEthDBRecordType type);
+ IX_ETH_DB_PUBLIC void ixEthDBUpdatePortLearningTrees(IxEthDBPortMap triggerPorts);
+ IX_ETH_DB_PUBLIC void ixEthDBNPEAccessRequest(IxEthDBPortId portID);
+ IX_ETH_DB_PUBLIC void ixEthDBUpdateLock(void);
diff --git a/recipes/ixp4xx/ixp4xx-csr-2.1/ixnpemhconfigisr-is-private.patch b/recipes/ixp4xx/ixp4xx-csr-2.1/ixnpemhconfigisr-is-private.patch
new file mode 100644
index 0000000000..54faadf34a
--- /dev/null
+++ b/recipes/ixp4xx/ixp4xx-csr-2.1/ixnpemhconfigisr-is-private.patch
@@ -0,0 +1,18 @@
+--- ixp400_xscale_sw/src/npeMh/IxNpeMhSymbols.c 1970-01-01 00:00:00.000000000 +0000
++++ ixp400_xscale_sw/src/npeMh/IxNpeMhSymbols.c 1970-01-01 00:00:00.000000000 +0000
+@@ -63,7 +63,6 @@ EXPORT_SYMBOL(ixNpeMhMessagesReceive);
+ EXPORT_SYMBOL(ixNpeMhShow);
+ EXPORT_SYMBOL(ixNpeMhShowReset);
+
+-extern void ixNpeMhConfigIsr (void *parameter);
+ extern BOOL ixNpeMhConfigInFifoIsFull(IxNpeMhNpeId npeId);
+ extern BOOL ixNpeMhConfigOutFifoIsEmpty (IxNpeMhNpeId npeId);
+ extern void ixNpeMhConfigLockRelease (IxNpeMhNpeId npeId);
+@@ -72,7 +71,6 @@ extern void ixNpeMhConfigOutFifoRead (Ix
+ extern void ixNpeMhConfigInFifoWrite (IxNpeMhNpeId npeId,IxNpeMhMessage message);
+ extern struct ixNpeMhConfigNpeInfo ixNpeMhConfigNpeInfo[IX_NPEMH_NUM_NPES];
+
+-EXPORT_SYMBOL(ixNpeMhConfigIsr);
+ EXPORT_SYMBOL(ixNpeMhConfigInFifoIsFull);
+ EXPORT_SYMBOL(ixNpeMhConfigOutFifoIsEmpty);
+ EXPORT_SYMBOL(ixNpeMhConfigLockRelease);
diff --git a/recipes/ixp4xx/ixp4xx-csr-2.1/le.patch b/recipes/ixp4xx/ixp4xx-csr-2.1/le.patch
new file mode 100644
index 0000000000..c308493a08
--- /dev/null
+++ b/recipes/ixp4xx/ixp4xx-csr-2.1/le.patch
@@ -0,0 +1,13 @@
+--- ixp400_xscale_sw/src/include/IxQMgr.h 1970-01-01 00:00:00.000000000 +0000
++++ ixp400_xscale_sw/src/include/IxQMgr.h 1970-01-01 00:00:00.000000000 +0000
+@@ -96,8 +98,8 @@
+
+ #else
+
+-#define IX_QMGR_INLINE_READ_LONG IX_OSAL_READ_LONG_LE_DC
+-#define IX_QMGR_INLINE_WRITE_LONG IX_OSAL_WRITE_LONG_LE_DC
++#define IX_QMGR_INLINE_READ_LONG IX_OSAL_READ_LONG_LE_AC
++#define IX_QMGR_INLINE_WRITE_LONG IX_OSAL_WRITE_LONG_LE_AC
+
+ #endif
+
diff --git a/recipes/ixp4xx/ixp4xx-csr-2.1/livelock.patch b/recipes/ixp4xx/ixp4xx-csr-2.1/livelock.patch
new file mode 100644
index 0000000000..0b4e4ba026
--- /dev/null
+++ b/recipes/ixp4xx/ixp4xx-csr-2.1/livelock.patch
@@ -0,0 +1,19 @@
+*** ixp400_xscale_sw/src/oslinux/IxLinuxInit.c.orig Sun Sep 25 05:59:03 2005
+--- ixp400_xscale_sw/src/oslinux/IxLinuxInit.c Fri Jun 9 14:07:06 2006
+***************
+*** 91,97 ****
+
+
+ /* Module parameters */
+! static int livelock_dispatcher = 0;/* default: don't use livelock dispatcher*/
+
+ MODULE_PARM(livelock_dispatcher, "i");
+ MODULE_PARM_DESC(livelock_dispatcher, "If non-zero, use the livelock prevention qmgr dispatcher");
+--- 91,97 ----
+
+
+ /* Module parameters */
+! int livelock_dispatcher = 0;/* default: don't use livelock dispatcher*/
+
+ MODULE_PARM(livelock_dispatcher, "i");
+ MODULE_PARM_DESC(livelock_dispatcher, "If non-zero, use the livelock prevention qmgr dispatcher");
diff --git a/recipes/ixp4xx/ixp4xx-csr-2.1/mii-debug.patch b/recipes/ixp4xx/ixp4xx-csr-2.1/mii-debug.patch
new file mode 100644
index 0000000000..762743cef5
--- /dev/null
+++ b/recipes/ixp4xx/ixp4xx-csr-2.1/mii-debug.patch
@@ -0,0 +1,26 @@
+debug only patch to add information about MII id problems
+
+--- ixp400_xscale_sw/src/ethMii/IxEthMii.c 1970-01-01 00:00:00.000000000 +0000
++++ ixp400_xscale_sw/src/ethMii/IxEthMii.c 1970-01-01 00:00:00.000000000 +0000
+@@ -122,6 +122,10 @@ ixEthMiiPhyScan(BOOL phyPresent[], UINT3
+ )
+ {
+ /* supported phy */
++ ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE,
++ IX_OSAL_LOG_DEV_STDOUT,
++ "ixEthMiiPhyScan, Mii %d: Mii PHY ID %8.8x\n",
++ i, ixEthMiiPhyId[i], 3, 4, 5, 6);
+ phyPresent[i] = TRUE;
+ } /* end of if(ixEthMiiPhyId) */
+ else
+@@ -131,8 +135,8 @@ ixEthMiiPhyScan(BOOL phyPresent[], UINT3
+ /* unsupported phy */
+ ixOsalLog (IX_OSAL_LOG_LVL_ERROR,
+ IX_OSAL_LOG_DEV_STDOUT,
+- "ixEthMiiPhyScan : unexpected Mii PHY ID %8.8x\n",
+- ixEthMiiPhyId[i], 2, 3, 4, 5, 6);
++ "ixEthMiiPhyScan, Mii %d: unexpected Mii PHY ID %8.8x\n",
++ i, ixEthMiiPhyId[i], 3, 4, 5, 6);
+ ixEthMiiPhyId[i] = IX_ETH_MII_UNKNOWN_PHY_ID;
+ phyPresent[i] = TRUE;
+ }
diff --git a/recipes/ixp4xx/ixp4xx-csr-2.1/module-param.patch b/recipes/ixp4xx/ixp4xx-csr-2.1/module-param.patch
new file mode 100644
index 0000000000..c61fcc00d3
--- /dev/null
+++ b/recipes/ixp4xx/ixp4xx-csr-2.1/module-param.patch
@@ -0,0 +1,19 @@
+ src/oslinux/IxLinuxInit.c | 4 ++++
+ 1 files changed, 4 insertions(+)
+
+Index: ixp400_xscale_sw/src/oslinux/IxLinuxInit.c
+===================================================================
+--- ixp400_xscale_sw.orig/src/oslinux/IxLinuxInit.c
++++ ixp400_xscale_sw/src/oslinux/IxLinuxInit.c
+@@ -93,7 +93,11 @@
+ /* Module parameters */
+ static int livelock_dispatcher = 0;/* default: don't use livelock dispatcher*/
+
++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,16)
+ MODULE_PARM(livelock_dispatcher, "i");
++#else
++module_param(livelock_dispatcher, int, 0644);
++#endif
+ MODULE_PARM_DESC(livelock_dispatcher, "If non-zero, use the livelock prevention qmgr dispatcher");
+
+ /* Init and cleanup functions for module */
diff --git a/recipes/ixp4xx/ixp4xx-csr-2.1/oe-makefile.patch b/recipes/ixp4xx/ixp4xx-csr-2.1/oe-makefile.patch
new file mode 100644
index 0000000000..492b1eab03
--- /dev/null
+++ b/recipes/ixp4xx/ixp4xx-csr-2.1/oe-makefile.patch
@@ -0,0 +1,49 @@
+changes to Makefile required only on OE
+
+--- ixp400_xscale_sw/Makefile 1970-01-01 00:00:00.000000000 +0000
++++ ixp400_xscale_sw/Makefile 1970-01-01 00:00:00.000000000 +0000
+@@ -1321,10 +1323,26 @@ ixp400.o : $(OBJ_DIR)/ixp400.o
+
+ ifndef IX_INCLUDE_MICROCODE
+ $(OBJ_DIR)/ixp400.o: $(COMPONENTS:%=$(OBJ_DIR)/ixp400_%.o) $(OSAL_MODULE)
++ rm -f $(OBJ_DIR)/ixp400.c
++ touch $(OBJ_DIR)/ixp400.c
++ cp Makefile.kmod26 $(OBJ_DIR)/Makefile
++ make -C $(OBJ_DIR)
++ rm -f $(OBJ_DIR)/ixp400.c
++ cp ixp400.c $(OBJ_DIR)/ixp400.c
+ $(LD) $(LDFLAGS) $^ -o $@
++ rm -f $(OBJ_DIR)/ixp400.ko $(OBJ_DIR)/ixp400.mod.o
++ make -C $(OBJ_DIR)
+ else
+ $(OBJ_DIR)/ixp400.o: $(COMPONENTS:%=$(OBJ_DIR)/ixp400_%.o) $(NPE_PRODUCTION_HEADER_OBJ) $(OSAL_MODULE)
++ rm -f $(OBJ_DIR)/ixp400.c
++ touch $(OBJ_DIR)/ixp400.c
++ cp Makefile.kmod26 $(OBJ_DIR)/Makefile
++ make -C $(OBJ_DIR)
++ rm -f $(OBJ_DIR)/ixp400.c
++ cp ixp400.c $(OBJ_DIR)/ixp400.c
+ $(LD) $(LDFLAGS) $^ -o $@
++ rm -f $(OBJ_DIR)/ixp400.ko $(OBJ_DIR)/ixp400.mod.o
++ make -C $(OBJ_DIR)
+ endif
+
+
+--- ixp400_xscale_sw/ixp400.c 1970-01-01 00:00:00.000000000 +0000
++++ ixp400_xscale_sw/ixp400.c 1970-01-01 00:00:00.000000000 +0000
+@@ -0,0 +1,1 @@
++#error this file must never be compiled
+--- ixp400_xscale_sw/Makefile.kmod26 1970-01-01 00:00:00.000000000 +0000
++++ ixp400_xscale_sw/Makefile.kmod26 1970-01-01 00:00:00.000000000 +0000
+@@ -0,0 +1,11 @@
++obj-m := ixp400.o
++
++PWD := $(shell pwd)
++
++LINUX_SRC := $($(IX_TARGET)_KERNEL_DIR)
++
++default:
++ $(MAKE) ARCH=arm CROSS_COMPILE=$(LINUX_CROSS_COMPILE) $(KERNEL_VERBOSE) -C $(LINUX_SRC) SUBDIRS=$(PWD) modules
++
++clean:
++ rm -f ixp400.ko
diff --git a/recipes/ixp4xx/ixp4xx-csr-2.1/rtl8201-support.patch b/recipes/ixp4xx/ixp4xx-csr-2.1/rtl8201-support.patch
new file mode 100644
index 0000000000..150dc27016
--- /dev/null
+++ b/recipes/ixp4xx/ixp4xx-csr-2.1/rtl8201-support.patch
@@ -0,0 +1,30 @@
+this patch adds support for the RTL8201CP PHY
+
+--- ixp400_xscale_sw/src/ethMii/IxEthMii.c 1970-01-01 00:00:00.000000000 +0000
++++ ixp400_xscale_sw/src/ethMii/IxEthMii.c 1970-01-01 00:00:00.000000000 +0000
+@@ -119,6 +119,7 @@ ixEthMiiPhyScan(BOOL phyPresent[], UINT3
+ || (ixEthMiiPhyId[i] == IX_ETH_MII_LXT973_PHY_ID)
+ || (ixEthMiiPhyId[i] == IX_ETH_MII_LXT973A3_PHY_ID)
+ || (ixEthMiiPhyId[i] == IX_ETH_MII_LXT9785_PHY_ID)
++ || (ixEthMiiPhyId[i] == IX_ETH_MII_RTL8201_PHY_ID)
+ )
+ {
+ /* supported phy */
+@@ -287,6 +288,7 @@ ixEthMiiPhyReset(UINT32 phyAddr)
+ (ixEthMiiPhyId[phyAddr] == IX_ETH_MII_LXT972_PHY_ID) ||
+ (ixEthMiiPhyId[phyAddr] == IX_ETH_MII_LXT973_PHY_ID) ||
+ (ixEthMiiPhyId[phyAddr] == IX_ETH_MII_LXT973A3_PHY_ID) ||
++ (ixEthMiiPhyId[phyAddr] == IX_ETH_MII_RTL8201_PHY_ID) ||
+ (ixEthMiiPhyId[phyAddr] == IX_ETH_MII_LXT9785_PHY_ID)
+ )
+ {
+--- ixp400_xscale_sw/src/ethMii/IxEthMii_p.h 1970-01-01 00:00:00.000000000 +0000
++++ ixp400_xscale_sw/src/ethMii/IxEthMii_p.h 1970-01-01 00:00:00.000000000 +0000
+@@ -179,6 +179,7 @@
+ #define IX_ETH_MII_LXT973A3_PHY_ID 0x00137A11
+ #define IX_ETH_MII_KS8995_PHY_ID 0x00221450
+ #define IX_ETH_MII_LXT9785_PHY_ID 0x001378FF
++#define IX_ETH_MII_RTL8201_PHY_ID 0x00008201
+ #define IX_ETH_MII_RTL8305_FAKE_PHY_ID 0x83058305
+
+ #define IX_ETH_MII_INVALID_PHY_ID 0x00000000