From 7a245f350a82e342742b549543471f0c5855c48f Mon Sep 17 00:00:00 2001 From: John Bowler <jbowler@nslu2-linux.org> Date: Mon, 21 Nov 2005 07:22:08 +0000 Subject: ixp4xx-csr: November 16 2005 release from Intel 2.1 --- packages/ixp4xx/ixp4xx-csr-2.1/.mtn2git_empty | 0 packages/ixp4xx/ixp4xx-csr-2.1/Makefile.patch | 59 +++++++++++ packages/ixp4xx/ixp4xx-csr-2.1/bit-macro.patch | 14 +++ .../ixp4xx/ixp4xx-csr-2.1/ixethdb-header.patch | 11 ++ .../ixnpemhconfigisr-is-private.patch | 18 ++++ packages/ixp4xx/ixp4xx-csr-2.1/le.patch | 13 +++ packages/ixp4xx/ixp4xx-csr_2.0.bb | 5 + packages/ixp4xx/ixp4xx-csr_2.1.bb | 113 +++++++++++++++++++++ 8 files changed, 233 insertions(+) create mode 100644 packages/ixp4xx/ixp4xx-csr-2.1/.mtn2git_empty create mode 100644 packages/ixp4xx/ixp4xx-csr-2.1/Makefile.patch create mode 100644 packages/ixp4xx/ixp4xx-csr-2.1/bit-macro.patch create mode 100644 packages/ixp4xx/ixp4xx-csr-2.1/ixethdb-header.patch create mode 100644 packages/ixp4xx/ixp4xx-csr-2.1/ixnpemhconfigisr-is-private.patch create mode 100644 packages/ixp4xx/ixp4xx-csr-2.1/le.patch create mode 100644 packages/ixp4xx/ixp4xx-csr_2.1.bb diff --git a/packages/ixp4xx/ixp4xx-csr-2.1/.mtn2git_empty b/packages/ixp4xx/ixp4xx-csr-2.1/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 diff --git a/packages/ixp4xx/ixp4xx-csr-2.1/Makefile.patch b/packages/ixp4xx/ixp4xx-csr-2.1/Makefile.patch new file mode 100644 index 0000000000..b90a3d7da4 --- /dev/null +++ b/packages/ixp4xx/ixp4xx-csr-2.1/Makefile.patch @@ -0,0 +1,59 @@ +--- ixp400_xscale_sw/Makefile 2005-11-20 08:43:17.610454268 -0800 ++++ ixp400_xscale_sw/Makefile 2005-11-20 08:44:37.387474319 -0800 +@@ -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 -mapcs-32 -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. +@@ -1321,10 +1323,18 @@ ixp400.o : $(OBJ_DIR)/ixp400.o + + ifndef IX_INCLUDE_MICROCODE + $(OBJ_DIR)/ixp400.o: $(COMPONENTS:%=$(OBJ_DIR)/ixp400_%.o) $(OSAL_MODULE) ++ touch $(OBJ_DIR)/ixp400.c ++ cp Makefile.kmod26 $(OBJ_DIR)/Makefile ++ make -C $(OBJ_DIR) + $(LD) $(LDFLAGS) $^ -o $@ ++ make -C $(OBJ_DIR) + else + $(OBJ_DIR)/ixp400.o: $(COMPONENTS:%=$(OBJ_DIR)/ixp400_%.o) $(NPE_PRODUCTION_HEADER_OBJ) $(OSAL_MODULE) ++ touch $(OBJ_DIR)/ixp400.c ++ cp Makefile.kmod26 $(OBJ_DIR)/Makefile ++ make -C $(OBJ_DIR) + $(LD) $(LDFLAGS) $^ -o $@ ++ make -C $(OBJ_DIR) + endif + + +--- ixp400_xscale_sw/Makefile.kmod26 1970-01-01 01:00:00.000000000 +0100 ++++ ixp400_xscale_sw/Makefile.kmod26 2005-08-24 22:33:12.000000000 +0200 +@@ -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/packages/ixp4xx/ixp4xx-csr-2.1/bit-macro.patch b/packages/ixp4xx/ixp4xx-csr-2.1/bit-macro.patch new file mode 100644 index 0000000000..5cdb395f28 --- /dev/null +++ b/packages/ixp4xx/ixp4xx-csr-2.1/bit-macro.patch @@ -0,0 +1,14 @@ +--- ixp400_xscale_sw/src/include/IxTypes.h 2005-08-24 00:16:36.000000000 +0200 ++++ ixp400_xscale_sw/src/include/IxTypes.h 2005-08-26 01:19:15.000000000 +0200 +@@ -79,6 +79,10 @@ + #endif + #endif + ++#ifndef BIT ++#define BIT(x) ((1)<<(x)) ++#endif ++ + #include "IxOsalBackward.h" + + #endif /* IxTypes_H */ + diff --git a/packages/ixp4xx/ixp4xx-csr-2.1/ixethdb-header.patch b/packages/ixp4xx/ixp4xx-csr-2.1/ixethdb-header.patch new file mode 100644 index 0000000000..e426afe914 --- /dev/null +++ b/packages/ixp4xx/ixp4xx-csr-2.1/ixethdb-header.patch @@ -0,0 +1,11 @@ +--- ixp400_xscale_sw/src/ethDB/include/IxEthDB_p.h.orig 2005-11-20 08:51:54.710993353 -0800 ++++ ixp400_xscale_sw/src/ethDB/include/IxEthDB_p.h 2005-11-20 08:51:57.559172578 -0800 +@@ -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/packages/ixp4xx/ixp4xx-csr-2.1/ixnpemhconfigisr-is-private.patch b/packages/ixp4xx/ixp4xx-csr-2.1/ixnpemhconfigisr-is-private.patch new file mode 100644 index 0000000000..6f853ac19e --- /dev/null +++ b/packages/ixp4xx/ixp4xx-csr-2.1/ixnpemhconfigisr-is-private.patch @@ -0,0 +1,18 @@ +--- ixp400_xscale_sw/src/npeMh/IxNpeMhSymbols.c.orig 2005-11-20 08:59:46.816701092 -0800 ++++ ixp400_xscale_sw/src/npeMh/IxNpeMhSymbols.c 2005-11-20 08:59:54.561188422 -0800 +@@ -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/packages/ixp4xx/ixp4xx-csr-2.1/le.patch b/packages/ixp4xx/ixp4xx-csr-2.1/le.patch new file mode 100644 index 0000000000..b62389cbee --- /dev/null +++ b/packages/ixp4xx/ixp4xx-csr-2.1/le.patch @@ -0,0 +1,13 @@ +--- ixp400_xscale_sw/.pc/le.patch/src/include/IxQMgr.h 2005-04-17 20:55:31.000000000 -0700 ++++ ixp400_xscale_sw/src/include/IxQMgr.h 2005-11-19 16:01:52.817556623 -0800 +@@ -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/packages/ixp4xx/ixp4xx-csr_2.0.bb b/packages/ixp4xx/ixp4xx-csr_2.0.bb index 88c8482d85..963ecc2f64 100644 --- a/packages/ixp4xx/ixp4xx-csr_2.0.bb +++ b/packages/ixp4xx/ixp4xx-csr_2.0.bb @@ -18,6 +18,11 @@ LICENSE_HOMEPAGE = "http://www.intel.com/design/network/products/npfamily/ixp425 # versions 2.0, encryption is not required.) # # Store the files with the names given below in your downloads directory +# and store the 32 character md5sum of the file in a file of the same +# name with the additional extension .md5: +# +# IPL_ixp400AccessLibrary-2_0.zip.md5 +# IPL_ixp400NpeLibrary-2_0_5.zip.md5 # SRC_URI = "http://www.intel.com/Please-Read-The-BB-File/IPL_ixp400AccessLibrary-2_0.zip" SRC_URI += "http://www.intel.com/Please-Read-The-BB-File/IPL_ixp400NpeLibrary-2_0_5.zip" diff --git a/packages/ixp4xx/ixp4xx-csr_2.1.bb b/packages/ixp4xx/ixp4xx-csr_2.1.bb new file mode 100644 index 0000000000..65282c4aa3 --- /dev/null +++ b/packages/ixp4xx/ixp4xx-csr_2.1.bb @@ -0,0 +1,113 @@ +# Intel ixp4xx access library software. Note that this has an Intel +# license which restricts its use. +MAINTAINER = "NSLU2 Linux <nslu2-linux@yahoogroups.com>" +HOMEPAGE = "http://www.intel.com/design/network/products/npfamily/ixp420.htm" +LICENSE = "http://www.intel.com/design/network/swsup/np_sla/ixp400.htm" +LICENSE_HOMEPAGE = "http://www.intel.com/design/network/products/npfamily/ixp425swr1.htm" +# You must download the following software to your OpenEmbedded downloads +# directory before using this package: +# +# IPL_ixp400AccessLibrary-2_1.zip +# IPL_ixp400NpeLibrary-2_1.zip +# +# To do this go to the LICENSE_HOMEPAGE above, register/login (using a +# web browser which is supported by the login page), this will give you +# access to the web page from which you can download the software - you +# need the: "IntelĀ® IXP400 Software and RedBoot* Boot Loader" and, from +# this the "Intel Hardware Access Software" and "NPE Microcode" (both +# versions 2.1, encryption is not required.) +# +# Store the files with the names given below in your downloads directory +# and store the 32 character md5sum of the file in a file of the same +# name with the additional extension .md5: +# +# IPL_ixp400AccessLibrary-2_1.zip.md5 +# IPL_ixp400NpeLibrary-2_1.zip.md5 +# +SRC_URI = "http://www.intel.com/Please-Read-The-BB-File/IPL_ixp400AccessLibrary-2_1.zip" +SRC_URI += "http://www.intel.com/Please-Read-The-BB-File/IPL_ixp400NpeLibrary-2_1.zip" +SRC_URI += "file://Makefile.patch;patch=1" +SRC_URI += "file://ixethdb-header.patch;patch=1" +SRC_URI += "file://bit-macro.patch;patch=1" +SRC_URI += "file://ixnpemhconfigisr-is-private.patch;patch=1" +SRC_URI += "file://le.patch;patch=1" + +DEPENDS = "ixp-osal" +S = "${WORKDIR}/ixp400_xscale_sw" +PR = "r0" + +COMPATIBLE_HOST = "^arm.*-linux.*" + +inherit module + +# Add the architecture compiler flags to KERNEL_CC and KERNEL_LD as +# required. Notice that this has to be done for each separately built +# module as well! +KERNEL_CC += "${TARGET_CC_KERNEL_ARCH}" +KERNEL_LD += "${TARGET_LD_KERNEL_ARCH}" + +IX_TARGET = "linux${ARCH_BYTE_SEX}" +IX_ENSURE = "" +#IX_ENSURE = "IX_OSAL_ENSURE_ON=1" + +OSAL_PATH = "lib/ixp425/linux/${IX_TARGET}" +# This is a somewhat arbitrary choice: +OSAL_DIR = "${STAGING_KERNEL_DIR}/ixp_osal" + +# COMPONENTS: do not build all the components, this just creates a +# ridiculously large module which duplicates functionality in the +# available Linux drivers. +COMPONENTS = "qmgr npeMh npeDl ethAcc ethDB ethMii featureCtrl osServices oslinux" +CODELETS_COMPONENTS = "" + +# NOTE: IX_INCLUDE_MICROCODE causes the microcode to be included in +# the ixp4xx-csr module, this *requires* the IPL_ixp400NpeLibrary-2_1.zip +# to be added to the SRC_URI - see above. +EXTRA_OEMAKE = "'AR=${AR}' \ + 'IX_XSCALE_SW=${S}' \ + 'IX_TARGET=${IX_TARGET}' \ + '${IX_TARGET}_COMPONENTS=${COMPONENTS}' \ + '${IX_TARGET}_CODELETS_COMPONENTS=${CODELETS_COMPONENTS}' \ + 'IX_DEVICE=ixp42X' \ + 'IX_MPHY=1' \ + 'IX_MPHYSINGLEPORT=1' \ + 'IX_INCLUDE_MICROCODE=1' \ + ${IX_ENSURE} \ + 'LINUX_SRC=${STAGING_KERNEL_DIR}' \ + 'LINUX_CROSS_COMPILE=${HOST_PREFIX}' \ + 'OSAL_DIR=${OSAL_DIR}' \ + 'OSAL_IMAGE=${OSAL_DIR}/${OSAL_PATH}/libosal.a' \ + 'OSAL_MODULE=${OSAL_DIR}/${OSAL_PATH}/ixp_osal.o' \ + " + +MAKE_TARGETS = "lib/${IX_TARGET}/ixp400.o" + +KCONFIG_FILE = "${STAGING_KERNEL_DIR}/config-${KERNEL_VERSION}" +do_stage () { + install -d ${STAGING_INCDIR}/linux/ixp4xx-csr + install -m 0644 src/include/*.h ${STAGING_INCDIR}/linux/ixp4xx-csr/ + # Since Module.symvers in the kernel staging directory doesn't include + # the symbols from ixp400.o we need to add them to another file for + # the ixp400-eth build + rm -f '${STAGING_KERNEL_DIR}/ixp400-csr.symvers' + . '${KCONFIG_FILE}' + if '${STAGING_KERNEL_DIR}/scripts/mod/modpost' \ + ${CONFIG_MODVERSIONS:+-m} \ + ${CONFIG_MODULE_SRCVERSION_ALL:+-a} \ + -i '${STAGING_KERNEL_DIR}/Module.symvers' \ + -o '${STAGING_KERNEL_DIR}/ixp400-csr.symvers' \ + ${MAKE_TARGETS} >&2 | egrep . + then + echo "MODPOST errors - see above" + return 1 + else + return 0 + fi +} + +PACKAGES = "${PN}" + +do_install () { + install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/ixp400 + install -m 0644 lib/${IX_TARGET}/ixp400.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/ixp400/ +} -- cgit v1.2.3