diff options
author | Rod Whitby <rod@whitby.id.au> | 2009-04-28 09:29:52 +0930 |
---|---|---|
committer | Rod Whitby <rod@whitby.id.au> | 2009-04-28 09:29:52 +0930 |
commit | 694436f22483c9dab39acbadafbdf315441873e4 (patch) | |
tree | db7afe8b913fe98561260ed18e3eb9935dcc8f34 /recipes | |
parent | 1a33200c79bb363cb5c7928f0e510919d6a65ea8 (diff) |
ixp4xx: Remove proprietary Intel ethernet driver.
See
http://lists.linuxtogo.org/pipermail/openembedded-devel/2007-January/001279.html
Diffstat (limited to 'recipes')
110 files changed, 0 insertions, 8509 deletions
diff --git a/recipes/ixp425-eth/files/2.6.13.patch b/recipes/ixp425-eth/files/2.6.13.patch deleted file mode 100644 index 7e8bea1b5d..0000000000 --- a/recipes/ixp425-eth/files/2.6.13.patch +++ /dev/null @@ -1,41 +0,0 @@ -# Patches for compilation with 2.6.13.2 -# ---- dir/ixp425_eth.c 2005-09-23 18:34:54.753729121 -0700 -+++ dir/ixp425_eth.c 2005-09-23 18:37:48.908688002 -0700 -@@ -659,7 +659,9 @@ - skb->pkt_type = PACKET_HOST; /* Default type */ - skb->ip_summed = 0; - skb->priority = 0; -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13) - skb->security = 0; -+#endif - - /* Some packets may get incorrectly process by netfilter firewall software - * if CONFIG_NETFILTER is enabled and filtering is in use. The solution is to -@@ -2358,8 +2362,14 @@ - } - - /* set port MAC addr and update the dev struct if successfull */ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13) - int dev_set_mac_address(struct net_device *dev, struct sockaddr *saddr) - { -+#else -+static int set_mac_address(struct net_device *dev, void *saddrIn) -+{ -+ struct sockaddr *saddr = saddrIn; -+#endif - int res; - priv_data_t *priv = dev->priv; - IxEthAccMacAddr npeMacAddr; -@@ -2476,7 +2486,11 @@ - ndev->poll_controller = ixp425eth_poll_controller; - #endif - -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13) - ndev->set_mac_address = dev_set_mac_address; -+#else -+ ndev->set_mac_address = set_mac_address; -+#endif - - memcpy(ndev->dev_addr, &default_mac_addr[priv->port_id].macAddress, - IX_IEEE803_MAC_ADDRESS_SIZE); diff --git a/recipes/ixp425-eth/files/2.6.14.patch b/recipes/ixp425-eth/files/2.6.14.patch deleted file mode 100644 index e93edb6e9b..0000000000 --- a/recipes/ixp425-eth/files/2.6.14.patch +++ /dev/null @@ -1,28 +0,0 @@ -# change in field semantic in 2.6.14 ---- dir/ixp425_eth.c 2005-09-24 17:50:57.828607113 -0700 -+++ dir/ixp425_eth.c 2005-09-24 17:54:19.593303365 -0700 -@@ -668,7 +668,11 @@ - * reset the following fields in the skbuff before re-using it on the Rx-path - */ - #ifdef CONFIG_NETFILTER -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,14) - skb->nfmark = skb->nfcache = 0; -+#else -+ skb->nfmark = 0; -+#endif - nf_conntrack_put(skb->nfct); - skb->nfct = NULL; - #ifdef CONFIG_NETFILTER_DEBUG -@@ -1300,8 +1300,12 @@ - skb->len -= header_len; - - /* fill the pkt arrival time (set at the irq callback entry) */ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,14) - skb->stamp.tv_sec = irq_stamp.tv_sec; - skb->stamp.tv_usec = irq_stamp.tv_usec; -+#else -+ skb_set_timestamp(skb, &irq_stamp); -+#endif - - /* fill the input device field */ - skb->dev = dev; diff --git a/recipes/ixp425-eth/files/ethhdr.patch b/recipes/ixp425-eth/files/ethhdr.patch deleted file mode 100644 index 79c9fef34f..0000000000 --- a/recipes/ixp425-eth/files/ethhdr.patch +++ /dev/null @@ -1,25 +0,0 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - ---- ixp425-eth-1.1-r0/ixp425_eth.c~ethhdr -+++ ixp425-eth-1.1-r0/ixp425_eth.c -@@ -1307,7 +1307,7 @@ - * and its constants are taken from the eth_type_trans() - * function. - */ -- struct ethhdr *eth = skb->mac.ethernet; -+ struct ethhdr *eth = eth_hdr(skb); - unsigned short hproto = ntohs(eth->h_proto); - - if (hproto >= 1536) -@@ -1349,7 +1349,7 @@ - * mode is set This costs - * a lookup inside the packet payload. - */ -- struct ethhdr *eth = skb->mac.ethernet; -+ struct ethhdr *eth = eth_hdr(skb); - unsigned char *hdest = eth->h_dest; - - if (memcmp(hdest, dev->dev_addr, ETH_ALEN)!=0) diff --git a/recipes/ixp425-eth/files/intdriven.patch b/recipes/ixp425-eth/files/intdriven.patch deleted file mode 100644 index 88b2444b5e..0000000000 --- a/recipes/ixp425-eth/files/intdriven.patch +++ /dev/null @@ -1,98 +0,0 @@ ---- ixp425-eth-1.1-r4/ixp425_eth.c 2005-06-16 00:47:55.360598896 -0700 -+++ ixp425-eth-1.1-r4/ixp425_eth.c 2005-06-16 18:42:09.840377651 -0700 -@@ -1028,6 +1030,7 @@ - */ - - /* PMU Timer reload : this should be done at each interrupt */ -+#if 0 /* UNUSED - used for polling */ - static void dev_pmu_timer_restart(void) - { - __asm__(" mcr p14,0,%0,c1,c1,0\n" /* write current counter */ -@@ -1039,6 +1042,7 @@ - " mcr p14,0,r1,c4,c1,0\n" /* enable interrupts */ - : : : "r1"); - } -+#endif - - /* Internal ISR : run a few thousand times per second and calls - * the queue manager dispatcher entry point. -@@ -1086,6 +1088,7 @@ - /* Internal ISR : run a few thousand times per second and calls - * the ethernet entry point. - */ -+#if 0 /* UNUSED - used for polling */ - static irqreturn_t dev_poll_os_isr(int irg, void *dev_id, struct pt_regs *regs) - { - int qlevel = __get_cpu_var(softnet_data).input_pkt_queue.qlen; -@@ -1127,8 +1130,10 @@ - ixEthTxFrameDoneQMCallback(0,0); - return IRQ_HANDLED; - } -+#endif - - /* initialize the PMU timer */ -+#if 0 /* UNUSED - used for polling */ - static int dev_pmu_timer_init(void) - { - UINT32 controlRegisterMask = -@@ -1164,6 +1169,7 @@ - - return 0; - } -+#endif - - /* stops the timer when the module terminates */ - static void dev_pmu_timer_disable(void) -@@ -1636,6 +1636,7 @@ - return 0; - } - -+#if 0 /* UNUSED - used for polling */ - /* The QMgr dispatch entry point can be called from the - * IXP425_INT_LVL_QM1 irq (which will trigger - * an interrupt for every packet) or a timer (which will -@@ -1686,7 +1687,7 @@ - */ - if (request_irq(IXP425_INT_LVL_QM1, - dev_qmgr_os_isr, -- SA_SHIRQ, -+ SA_SHIRQ | SA_SAMPLE_RANDOM, - DRV_NAME, - (void *)IRQ_ANY_PARAMETER)) - { -@@ -1710,6 +1711,7 @@ - } - return 0; - } -+#endif - - /* Enable the MAC port. - * Called on do_dev_open, dev_tx_timeout and mtu size changes -@@ -2234,7 +2236,7 @@ - */ - if (request_irq(IXP425_INT_LVL_QM1, - dev_qmgr_os_isr, -- SA_SHIRQ, -+ SA_SHIRQ | SA_SAMPLE_RANDOM, - DRV_NAME, - (void *)IRQ_ANY_PARAMETER)) - { -@@ -2669,6 +2671,10 @@ - - TRACE; - -+#if 0 /* DISABLE polling */ -+ /* Enable Interrupt driven driver -+ * see http://www.nslu2-linux.org/wiki/OpenSlug/StabilizeEthernetDriver -+ */ - if (no_csr_init == 0) /* module parameter */ - { - /* The QMgr dispatch entry point is called from the IXP425_INT_LVL_QM1 irq -@@ -2681,6 +2687,7 @@ - return res; - } - } -+#endif - - TRACE; - diff --git a/recipes/ixp425-eth/files/ixp400_pollcontroller.patch b/recipes/ixp425-eth/files/ixp400_pollcontroller.patch deleted file mode 100644 index b6fe10a5c6..0000000000 --- a/recipes/ixp425-eth/files/ixp400_pollcontroller.patch +++ /dev/null @@ -1,50 +0,0 @@ -*** ixp400-eth-1.4-r4/ixp400_eth.c.orig Mon Oct 31 22:45:46 2005 ---- ixp400-eth-1.4-r4/ixp400_eth.c Mon Oct 31 22:47:48 2005 -*************** -*** 306,311 **** ---- 306,316 ---- - ixEthRxFrameQMCallback(IxQMgrQId qId, IxQMgrCallbackId callbackId); - extern void - ixEthTxFrameDoneQMCallback(IxQMgrQId qId, IxQMgrCallbackId callbackId); -+ #ifdef CONFIG_NET_POLL_CONTROLLER -+ /* poll controller (needed for netconsole et al) */ -+ static void -+ ixp425eth_poll_controller(struct net_device *dev); -+ #endif - - /* Private device data */ - typedef struct { -*************** -*** 3082,3087 **** ---- 3087,3095 ---- - ndev->get_stats = dev_get_stats; - ndev->set_multicast_list = dev_set_multicast_list; - ndev->flags |= IFF_MULTICAST; -+ #ifdef CONFIG_NET_POLL_CONTROLLER -+ ndev->poll_controller = ixp425eth_poll_controller; -+ #endif - #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13) - ndev->set_mac_address = dev_set_mac_address; - #else -*************** -*** 3172,3177 **** ---- 3180,3198 ---- - return res; - } - -+ #ifdef CONFIG_NET_POLL_CONTROLLER -+ /* -+ * Polling receive - used by netconsole and other diagnostic tools -+ * to allow network i/o with interrupts disabled. -+ * (stolen from 8139too.c by siddy) -+ */ -+ static void ixp425eth_poll_controller(struct net_device *dev) -+ { -+ disable_irq(dev->irq); -+ dev_qmgr_os_isr(dev->irq, dev, NULL); -+ enable_irq(dev->irq); -+ } -+ #endif - - static int __devinit npe_eth_init_device(struct device *dev) - { diff --git a/recipes/ixp425-eth/files/makefile.patch b/recipes/ixp425-eth/files/makefile.patch deleted file mode 100644 index 2e47972995..0000000000 --- a/recipes/ixp425-eth/files/makefile.patch +++ /dev/null @@ -1,18 +0,0 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - ---- /dev/null -+++ ixp425-eth-1.1-r0/Makefile -@@ -0,0 +1,10 @@ -+ifneq ($(KERNELRELEASE),) -+obj-m := ixp425_eth.o -+ -+else -+KDIR := /lib/modules/$(shell uname -r)/build -+PWD := $(shell pwd) -+ -+default modules: -+ $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules -+endif diff --git a/recipes/ixp425-eth/files/mm4.patch b/recipes/ixp425-eth/files/mm4.patch deleted file mode 100644 index c40aaca998..0000000000 --- a/recipes/ixp425-eth/files/mm4.patch +++ /dev/null @@ -1,19 +0,0 @@ -# This corrects the type of dev_set_mac_address. The definition (prototype) -# was *added* to include/linux/netdevice.h in the 2.6.11 mm patches, so the -# change should not harm older builds ---- ixp425-eth-1.1-r1/ixp425_eth.c.pre-mm4 2005-03-19 14:02:32.883601440 -0800 -+++ ixp425-eth-1.1-r1/ixp425_eth.c 2005-03-19 14:03:25.849549392 -0800 -@@ -2347,12 +2347,11 @@ - } - - /* set port MAC addr and update the dev struct if successfull */ --int dev_set_mac_address(struct net_device *dev, void *addr) -+int dev_set_mac_address(struct net_device *dev, struct sockaddr *saddr) - { - int res; - priv_data_t *priv = dev->priv; - IxEthAccMacAddr npeMacAddr; -- struct sockaddr *saddr = (struct sockaddr *)addr; - - /* Set MAC addr in h/w */ - memcpy(&npeMacAddr.macAddress, diff --git a/recipes/ixp425-eth/files/modprobe.conf b/recipes/ixp425-eth/files/modprobe.conf deleted file mode 100644 index bfcbf916cf..0000000000 --- a/recipes/ixp425-eth/files/modprobe.conf +++ /dev/null @@ -1,3 +0,0 @@ -# Add an alias for eth0 to ixp425_eth to cause the S40networking -# init script to load the ixp425_eth driver on the first boot -alias eth0 ixp425_eth diff --git a/recipes/ixp425-eth/files/pollcontroller.patch b/recipes/ixp425-eth/files/pollcontroller.patch deleted file mode 100644 index f95db28977..0000000000 --- a/recipes/ixp425-eth/files/pollcontroller.patch +++ /dev/null @@ -1,50 +0,0 @@ -# Add a poll controller to the interface - required for netconsole ---- ixp425-eth-1.1-r1/ixp425_eth.c.pre-pollcontroller 2005-03-19 14:02:32.883601440 -0800 -+++ ixp425-eth-1.1-r1/ixp425_eth.c 2005-03-19 14:03:25.849549392 -0800 -@@ -273,6 +273,11 @@ - extern void - ixEthTxFrameDoneQMCallback(IxQMgrQId? qId, IxQMgrCallbackId? callbackId); - -+#ifdef CONFIG_NET_POLL_CONTROLLER -+/* poll controller (needed for netconsole et al) */ -+static void ixp425eth_poll_controller(struct net_device *dev); -+#endif -+ - /* Private device data */ - typedef struct { - unsigned int msdu_size; -@@ -2462,6 +2467,10 @@ - ndev->set_multicast_list = dev_set_multicast_list; - ndev->flags |= IFF_MULTICAST; - -+#ifdef CONFIG_NET_POLL_CONTROLLER -+ ndev->poll_controller = ixp425eth_poll_controller; -+#endif -+ - ndev->set_mac_address = dev_set_mac_address; - - memcpy(ndev->dev_addr, &default_mac_addr[priv->port_id].macAddress, -@@ -2491,6 +2500,23 @@ - return res; - } - -+ -+#ifdef CONFIG_NET_POLL_CONTROLLER -+/* -+ * Polling receive - used by netconsole and other diagnostic tools -+ * to allow network i/o with interrupts disabled. -+ * (stolen from 8139too.c by siddy) -+ */ -+static void ixp425eth_poll_controller(struct net_device *dev) -+{ -+ disable_irq(dev->irq); -+ dev_qmgr_os_isr(dev->irq, dev, NULL); -+ enable_irq(dev->irq); -+} -+#endif -+ -+ -+ - static int __devinit npe_eth_init_device(struct device *dev) - { - int res = -ENOMEM; diff --git a/recipes/ixp425-eth/ixp400-eth-1.4/2.6.13.patch b/recipes/ixp425-eth/ixp400-eth-1.4/2.6.13.patch deleted file mode 100644 index 376bb3b03b..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.4/2.6.13.patch +++ /dev/null @@ -1,39 +0,0 @@ ---- ./ixp400_eth.c.orig 2005-10-02 18:55:03.998477844 -0700 -+++ ./ixp400_eth.c 2005-10-02 19:00:43.187821684 -0700 -@@ -848,7 +848,9 @@ - skb->pkt_type = PACKET_HOST; /* Default type */ - skb->ip_summed = 0; - skb->priority = 0; -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13) - skb->security = 0; -+#endif - #ifdef CONFIG_NET_SCHED - skb->tc_index = 0; - #endif -@@ -2922,8 +2924,14 @@ - } - - /* set port MAC addr and update the dev struct if successfull */ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13) - int dev_set_mac_address(struct net_device *dev, struct sockaddr *saddr) - { -+#else -+static int set_mac_address(struct net_device *dev, void *saddrIn) -+{ -+ struct sockaddr *saddr = saddrIn; -+#endif - int res; - priv_data_t *priv = dev->priv; - IxEthAccMacAddr npeMacAddr; -@@ -3073,7 +3081,11 @@ - ndev->get_stats = dev_get_stats; - ndev->set_multicast_list = dev_set_multicast_list; - ndev->flags |= IFF_MULTICAST; -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13) - ndev->set_mac_address = dev_set_mac_address; -+#else -+ ndev->set_mac_address = set_mac_address; -+#endif - - TRACE; - diff --git a/recipes/ixp425-eth/ixp400-eth-1.4/2.6.14-mm.patch b/recipes/ixp425-eth/ixp400-eth-1.4/2.6.14-mm.patch deleted file mode 100644 index b2dfaaa4fe..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.4/2.6.14-mm.patch +++ /dev/null @@ -1,44 +0,0 @@ ---- ./ixp400_eth.c.orig 2005-11-13 16:17:57.943717806 -0800 -+++ ./ixp400_eth.c 2005-11-13 16:29:00.829430574 -0800 -@@ -65,6 +65,10 @@ - #include <linux/sysctl.h> - #include <linux/unistd.h> - -+#ifndef to_platform_device -+#include <linux/platform_device.h> -+#endif -+ - /* - * Intel IXP400 Software specific header files - */ -@@ -2410,7 +2414,7 @@ dev_tx_timeout_work(void* arg) - } - - -- -+#if 0 - static void - dev_tx_timeout_task(void *dev_id) - { -@@ -2444,6 +2448,7 @@ dev_tx_timeout_task(void *dev_id) - - up(maintenance_mutex); - } -+#endif - - - /* This function is called when kernel thinks that TX is stuck */ -@@ -3274,9 +3279,12 @@ static struct net_device ixp400_devices[ - - int init_module(void) - { -- int res, dev_count; -+ int res; -+#if 0 -+ int dev_count; - IxEthAccPortId portId; - struct net_device *dev; -+#endif - int i; - TRACE; - diff --git a/recipes/ixp425-eth/ixp400-eth-1.4/2.6.14.patch b/recipes/ixp425-eth/ixp400-eth-1.4/2.6.14.patch deleted file mode 100644 index c4c19db795..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.4/2.6.14.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- ./ixp400_eth.c 2005-10-01 00:50:45.179775259 -0700 -+++ ./ixp400_eth.c 2005-10-01 00:54:10.976725245 -0700 -@@ -777,7 +777,9 @@ - * before re-using it on the Rx-path - */ - skb->nfmark = 0; -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,14) - skb->nfcache = 0; -+#endif - nf_conntrack_put(skb->nfct); - skb->nfct = NULL; - #ifdef CONFIG_NETFILTER_DEBUG -@@ -1451,7 +1453,11 @@ - skb->len -= header_len; - - /* fill the pkt arrival time (set at the irq callback entry) */ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,14) - skb->stamp = irq_stamp; -+#else -+ skb_set_timestamp(skb, &irq_stamp); -+#endif - - /* fill the input device field */ - skb->dev = dev; diff --git a/recipes/ixp425-eth/ixp400-eth-1.4/ixp400-le-be.patch b/recipes/ixp425-eth/ixp400-eth-1.4/ixp400-le-be.patch deleted file mode 100644 index 87d4337eb3..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.4/ixp400-le-be.patch +++ /dev/null @@ -1,948 +0,0 @@ ---- ./.pc/ixp400-le-be.patch/ixp400_eth.c 2005-04-19 22:58:18.000000000 -0700 -+++ ./ixp400_eth.c 2005-10-23 23:29:06.760778566 -0700 -@@ -57,6 +57,7 @@ - #include <linux/mii.h> - #include <linux/socket.h> - #include <linux/cache.h> -+#include <linux/interrupt.h> - #include <asm/io.h> - #include <asm/errno.h> - #include <net/pkt_sched.h> -@@ -95,7 +96,7 @@ - MODULE_LICENSE("GPL"); - MODULE_AUTHOR("Intel Corporation"); - #define MODULE_NAME "ixp400_eth" --#define MODULE_VERSION "1.4" -+#define MODULE_VERSION_IXP400_ETH "1.4B" - - /* Module parameters */ - static int npe_learning = 1; /* default : NPE learning & filtering enable */ -@@ -358,8 +359,13 @@ - /* Used to stop the kernel thread for link monitoring. */ - volatile BOOL maintenanceCheckStopped; - -+ struct work_struct mii_job; -+ -+ - /* used for tx timeout */ -- struct tq_struct tq_timeout; -+ struct work_struct tx_timeout_job; -+ -+ - - /* used to control the message output */ - UINT32 devFlags; -@@ -557,6 +563,8 @@ - #endif - }; - -+static struct workqueue_struct *npe_eth_workqueue; -+ - /* Mutex lock used to coordinate access to IxEthAcc functions - * which manipulate the MII registers on the PHYs - */ -@@ -565,6 +573,11 @@ - /* mutex locked when maintenance is being performed */ - static struct semaphore *maintenance_mutex; - -+/* Flags which is set when corresponding NPE is running, -+ * cleared when NPE is stopped -+ */ -+static int npeRunning[IX_ETH_ACC_NUMBER_OF_PORTS]; -+ - /* Flags which is set when the corresponding IRQ is running, - */ - static int irq_pmu_used = 0; -@@ -1070,6 +1083,117 @@ - return 0; - } - -+/* -+ * WORKQUEUE JOBS -+ */ -+ -+/* This workqueue job will check the PHY for the link duplex and -+ * update the MAC accordingly. It also executes some buffer -+ * maintenance to release mbuf in excess or replenish after -+ * a severe starvation -+ * -+ * This function loops and wake up every 3 seconds. -+ */ -+static void dev_media_check_work(void* arg) -+{ -+ struct net_device *dev = (struct net_device *) arg; -+ priv_data_t *priv = dev->priv; -+ -+ TRACE; -+ -+ /* -+ * Determine the link status -+ */ -+ -+ if (default_phy_cfg[priv->port_id].linkMonitor) -+ { -+ int linkUp; -+ int speed100; -+ int fullDuplex = -1; /* unknown duplex mode */ -+ int newDuplex; -+ int autonegotiate; -+ unsigned phyNum = phyAddresses[priv->port_id]; -+ int res; -+ -+ TRACE; -+ -+ /* lock the MII register access mutex */ -+ down(miiAccessMutex); -+ -+ res = ixEthMiiLinkStatus(phyNum, -+ &linkUp, -+ &speed100, -+ &newDuplex, -+ &autonegotiate); -+ /* release the MII register access mutex */ -+ up(miiAccessMutex); -+ -+ if (res != IX_ETH_ACC_SUCCESS) -+ { -+ P_WARN("ixEthMiiLinkStatus failed on PHY%d.\n" -+ "\tCan't determine\nthe auto negotiated parameters. " -+ "Using default values.\n", -+ phyNum); -+ -+ /* this shouldn't happen. exit the thread if it does */ -+ goto out; -+ } -+ -+ if (linkUp) -+ { -+ if (! netif_carrier_ok(dev)) -+ { -+ /* inform the kernel of a change in link state */ -+ netif_carrier_on(dev); -+ } -+ -+ /* -+ * Update the MAC mode to match the PHY mode if -+ * there is a phy mode change. -+ */ -+ if (newDuplex != fullDuplex) -+ { -+ fullDuplex = newDuplex; -+ if (fullDuplex) -+ { -+ ixEthAccPortDuplexModeSet(priv->port_id, -+ IX_ETH_ACC_FULL_DUPLEX); -+ } -+ else -+ { -+ ixEthAccPortDuplexModeSet(priv->port_id, -+ IX_ETH_ACC_HALF_DUPLEX); -+ } -+ } -+ } -+ else -+ { -+ fullDuplex = -1; -+ if (netif_carrier_ok(dev)) -+ { -+ /* inform the kernel of a change in link state */ -+ netif_carrier_off(dev); -+ } -+ } -+ } -+ -+ TRACE; -+ -+ /* this is to prevent the rx pool from emptying when -+ * there's not enough memory for a long time -+ * It prevents also from holding the memory for too -+ * long -+ */ -+ dev_buff_maintenance(dev); -+ -+ /* reschedule to run in 3 seconds */ -+ queue_delayed_work(npe_eth_workqueue, &priv->mii_job, 3*HZ); -+ out: -+ return; -+} -+ -+ -+#define sigmask_lock sighand->siglock - - /* - * KERNEL THREADS -@@ -1122,11 +1246,11 @@ - */ - down (priv->maintenanceCheckThreadComplete); - -- daemonize(); -- reparent_to_init(); -+ daemonize("dev_media"); -+ // reparent_to_init(); - spin_lock_irq(¤t->sigmask_lock); - sigemptyset(¤t->blocked); -- recalc_sigpending(current); -+ recalc_sigpending(); - spin_unlock_irq(¤t->sigmask_lock); - - snprintf(current->comm, sizeof(current->comm), "ixp400 %s", dev->name); -@@ -1285,7 +1409,7 @@ - static void dev_pmu_timer_restart(void) - { - unsigned long flags; -- save_flags_cli(flags); -+ local_irq_save(flags); - __asm__(" mcr p14,0,%0,c1,c1,0\n" /* write current counter */ - : : "r" (timer_countup_ticks)); - -@@ -1294,13 +1418,13 @@ - " mcr p14,0,r1,c5,c1,0; " /* clear overflow */ - " mcr p14,0,r1,c4,c1,0\n" /* enable interrupts */ - : : : "r1"); -- restore_flags(flags); -+ local_irq_restore(flags); - } - - /* Internal ISR : run a few thousand times per second and calls - * the queue manager dispatcher entry point. - */ --static void dev_qmgr_os_isr(int irg, void *dev_id, struct pt_regs *regs) -+static irqreturn_t dev_qmgr_os_isr(int irg, void *dev_id, struct pt_regs *regs) - { - /* get the time of this interrupt : all buffers received during this - * interrupt will be assigned the same time */ -@@ -1308,22 +1432,32 @@ - - /* call the queue manager entry point */ - dispatcherFunc(IX_QMGR_QUELOW_GROUP); -+ return IRQ_HANDLED; - } - - /* Internal ISR : run a few thousand times per second and calls - * the ethernet entry point. - */ --static void dev_poll_os_isr(int irg, void *dev_id, struct pt_regs *regs) -+int icount = 2; -+static irqreturn_t dev_poll_os_isr(int irg, void *dev_id, struct pt_regs *regs) - { -- dev_pmu_timer_restart(); /* set up the timer for the next interrupt */ -+ if (icount > 0) { -+ icount--; -+ TRACE; -+ } - - /* get the time of this interrupt : all buffers received during this - * interrupt will be assigned the same time */ - do_gettimeofday(&irq_stamp); -- -+ if (icount) TRACE; - ixEthRxFrameQMCallback(rx_queue_id,0); -+ if (icount) TRACE; - ixEthTxFrameDoneQMCallback(0,0); -- -+ if (icount) TRACE; -+ /* here surely */ -+ dev_pmu_timer_restart(); /* set up the timer for the next interrupt */ -+ return IRQ_HANDLED; -+ - } - - /* initialize the PMU timer */ -@@ -1370,17 +1504,18 @@ - static void dev_pmu_timer_disable(void) - { - unsigned long flags; -- save_flags_cli(flags); -+ local_irq_save(flags); - __asm__(" mrc p14,0,r1,c4,c1,0; " /* get int enable register */ - " and r1,r1,#0x1e; " - " mcr p14,0,r1,c4,c1,0\n" /* disable interrupts */ - : : : "r1"); -- restore_flags(flags); -+ local_irq_restore(flags); - } - - /* This timer will call ixEthDBDatabaseMaintenance every - * IX_ETH_DB_MAINTENANCE_TIME jiffies - */ -+#if 0 - static void maintenance_timer_cb(unsigned long data); - - static struct timer_list maintenance_timer = { -@@ -1418,6 +1553,34 @@ - - maintenance_timer_set(); - } -+#endif -+static void db_maintenance_code(void *data); -+static DECLARE_WORK(db_maintenance_job, db_maintenance_code, NULL); -+ -+static inline -+void schedule_db_maintenance(void) -+{ -+ TRACE; -+ queue_delayed_work(npe_eth_workqueue, &db_maintenance_job, -+ DB_MAINTENANCE_TIME); -+} -+ -+static inline -+void cancel_db_maintenance(void) -+{ -+ TRACE; -+ cancel_delayed_work(&db_maintenance_job); -+} -+ -+static void db_maintenance_code(void *data) -+{ -+ TRACE; -+ down(maintenance_mutex); -+ ixEthDBDatabaseMaintenance(); -+ up(maintenance_mutex); -+ schedule_db_maintenance(); -+} -+ - - /* - * DATAPLANE -@@ -1531,7 +1694,7 @@ - * and its constants are taken from the eth_type_trans() - * function. - */ -- struct ethhdr *eth = skb->mac.ethernet; -+ struct ethhdr *eth = eth_hdr(skb); - unsigned short hproto = ntohs(eth->h_proto); - - if (hproto >= 1536) -@@ -1573,7 +1736,7 @@ - * mode is set This costs - * a lookup inside the packet payload. - */ -- struct ethhdr *eth = skb->mac.ethernet; -+ struct ethhdr *eth = eth_hdr(skb); - unsigned char *hdest = eth->h_dest; - - if (memcmp(hdest, dev->dev_addr, ETH_ALEN)!=0) -@@ -1632,7 +1795,7 @@ - dev = (struct net_device *)callbackTag; - priv = dev->priv; - -- qlevel = softnet_data[0].input_pkt_queue.qlen; -+ qlevel = __get_cpu_var(softnet_data).input_pkt_queue.qlen; - /* check if the system accepts more traffic and - * against chained mbufs - */ -@@ -1674,10 +1837,21 @@ - /* set the length of the received skb from the mbuf length */ - skb->tail = skb->data + len; - skb->len = len; -+ -+#ifndef __ARMEB__ -+ { -+ /* Byte swap all words containing data from the buffer. */ -+ unsigned long *p = (unsigned long*)((unsigned)skb->data & ~0x3); -+ unsigned long *e = (unsigned long*)(((unsigned)skb->data + skb->len + 3) & ~0x3); -+ while (p < e) -+ *p = ntohl(*p), ++p; -+ } -+#endif - - #ifdef DEBUG_DUMP - skb_dump("rx", skb); - #endif -+ - /* Set the skb protocol and set mcast/bcast flags */ - dev_eth_type_trans(mcastFlags, skb, dev); - -@@ -1821,6 +1995,39 @@ - spin_unlock_irq(&priv->lock); - } - -+/* start the NPEs */ -+static int npe_start(IxEthAccPortId port_id) -+{ -+ int res; -+ UINT32 npeImageId; -+ -+ switch (port_id) -+ { -+ case IX_ETH_PORT_1: -+ npeImageId = IX_ETH_NPE_B_IMAGE_ID; -+ break; -+ case IX_ETH_PORT_2: -+ npeImageId = IX_ETH_NPE_C_IMAGE_ID; -+ break; -+ default: -+ P_ERROR("Invalid port specified. IXP Ethernet NPE not started\n"); -+ return -ENODEV; -+ } -+ -+ /* Initialise and Start NPEs */ -+ if ((res = ixNpeDlNpeInitAndStart(npeImageId))) -+ { -+ P_ERROR("Error starting NPE for Ethernet port %d!\n", port_id); -+ return -1; -+ } -+ -+ /* set this flag to indicate that NPE is running */ -+ npeRunning[port_id] = 1; -+ -+ return 0; -+} -+ -+ - /* The QMgr dispatch entry point can be called from the - * IX_OSAL_IXP400_QM1_IRQ_LVL irq (which will trigger - * an interrupt for every packet) or a timer (which will -@@ -1906,7 +2113,16 @@ - IxEthAccMacAddr npeMacAddr; - priv_data_t *priv = dev->priv; - -- P_DEBUG("port_enable(%s)\n", dev->name); -+ P_DEBUG("port_enable(%s) %d\n", dev->name, priv->port_id); -+ -+ if (!npeRunning[priv->port_id]) -+ { -+ if ((res = npe_start(priv->port_id))) -+ { -+ TRACE; -+ return res; -+ } -+ } - - /* Set MAC addr in h/w (ethAcc checks for MAC address to be valid) */ - memcpy(&npeMacAddr.macAddress, -@@ -2085,6 +2301,16 @@ - return 0; - } - -+#ifndef __ARMEB__ -+ { -+ /* Byte swap all words containing data from the buffer. */ -+ unsigned long *p = (unsigned long*)((unsigned)skb->data & ~0x3); -+ unsigned long *e = (unsigned long*)(((unsigned)skb->data + skb->len + 3) & ~0x3); -+ while (p < e) -+ *p = ntohl(*p), ++p; -+ } -+#endif -+ - #ifdef DEBUG_DUMP - skb_dump("tx", skb); - #endif -@@ -2120,6 +2346,7 @@ - static int do_dev_open(struct net_device *dev) - { - int res; -+ TRACE; - - /* prevent the maintenance task from running while bringing up port */ - down(maintenance_mutex); -@@ -2151,6 +2378,27 @@ - } - - static void -+dev_tx_timeout_work(void* arg) -+{ -+ struct net_device *dev = (struct net_device *)arg; -+ priv_data_t *priv = dev->priv; -+ -+ P_ERROR("%s: Tx Timeout for port %d\n", dev->name, priv->port_id); -+ -+ down(maintenance_mutex); -+ port_disable(dev); -+ -+ /* Note to user: Consider performing other reset operations here (such as -+ * PHY reset), if it is known to help the Tx Flow to become "unstuck" -+ */ -+ -+ port_enable(dev); -+ up(maintenance_mutex); -+} -+ -+ -+ -+static void - dev_tx_timeout_task(void *dev_id) - { - struct net_device *dev = (struct net_device *)dev_id; -@@ -2191,7 +2439,7 @@ - priv_data_t *priv = dev->priv; - - TRACE; -- schedule_task(&priv->tq_timeout); -+ queue_work(npe_eth_workqueue, &priv->tx_timeout_job); - - } - -@@ -2352,7 +2600,8 @@ - - TRACE; - -- invalidate_dcache_range((unsigned int)ðStats, sizeof(ethStats)); -+ // invalidate_dcache_range((unsigned int)ðStats, sizeof(ethStats)); -+ IX_ACC_DATA_CACHE_INVALIDATE((unsigned int)ðStats, sizeof(ethStats)); - if ((res = ixEthAccMibIIStatsGetClear(priv->port_id, ðStats))) - { - P_ERROR("%s: ixEthAccMibIIStatsGet failed for port %d, res = %d\n", -@@ -2565,7 +2814,6 @@ - miiAccessMutex = (struct semaphore *) kmalloc(sizeof(struct semaphore), GFP_KERNEL); - if (!miiAccessMutex) - return -ENOMEM; -- - init_MUTEX(miiAccessMutex); - - TRACE; -@@ -2673,12 +2921,12 @@ - } - - /* set port MAC addr and update the dev struct if successfull */ --int dev_set_mac_address(struct net_device *dev, void *addr) -+int dev_set_mac_address(struct net_device *dev, struct sockaddr *saddr) - { - int res; - priv_data_t *priv = dev->priv; - IxEthAccMacAddr npeMacAddr; -- struct sockaddr *saddr = (struct sockaddr *)addr; -+ // struct sockaddr *saddr = (struct sockaddr *)addr; - - /* Get MAC addr from parameter */ - memcpy(&npeMacAddr.macAddress, -@@ -2751,35 +2999,16 @@ - /* Initialize device structs. - * Resource allocation is deffered until do_dev_open - */ --static int __devinit dev_eth_probe(struct net_device *dev) -+static int __devinit dev_eth_probe(struct device *_dev) - { -- static int found_devices = 0; -- priv_data_t *priv; -+ int res = -ENOMEM; -+ struct platform_device *pdev = to_platform_device(_dev); -+ struct net_device *ndev = dev_get_drvdata(_dev); -+ priv_data_t *priv = (priv_data_t*)ndev->priv; - - TRACE; - -- /* there is a limited number of devices */ -- if (found_devices >= dev_max_count) /* module parameter */ -- return -ENODEV; -- -- SET_MODULE_OWNER(dev); -- -- /* set device name */ -- sprintf(dev->name, DEVICE_NAME "%d", found_devices); -- -- /* allocate and initialize priv struct */ -- priv = dev->priv = kmalloc(sizeof(priv_data_t), GFP_KERNEL); -- if (dev->priv == NULL) -- return -ENOMEM; -- -- memset(dev->priv, 0, sizeof(priv_data_t)); -- -- TRACE; -- -- /* set the mapping between port ID and devices -- * -- */ -- priv->port_id = default_portId[found_devices]; -+ priv->port_id = pdev->id; - - TRACE; - -@@ -2789,9 +3018,8 @@ - if(priv->rx_pool == NULL) - { - P_ERROR("%s: Buffer RX Pool init failed on port %d\n", -- dev->name, priv->port_id); -- kfree(dev->priv); -- return -ENOMEM; -+ ndev->name, priv->port_id); -+ goto out; - } - - TRACE; -@@ -2802,45 +3030,45 @@ - if(priv->tx_pool == NULL) - { - P_ERROR("%s: Buffer TX Pool init failed on port %d\n", -- dev->name, priv->port_id); -- kfree(dev->priv); -- return -ENOMEM; -+ ndev->name, priv->port_id); -+ goto out; - } - -- TRACE; -- - /* initialise the MII register access mutex */ - priv->maintenanceCheckThreadComplete = (struct semaphore *) - kmalloc(sizeof(struct semaphore), GFP_KERNEL); - if (!priv->maintenanceCheckThreadComplete) - { -- kfree(dev->priv); -- return -ENOMEM; -+ P_ERROR("%s: Failed to allocate maintenance semaphore %d\n", -+ ndev->name, priv->port_id); -+ goto out; - } - priv->lock = SPIN_LOCK_UNLOCKED; - init_MUTEX(priv->maintenanceCheckThreadComplete); - priv->maintenanceCheckStopped = TRUE; - - /* initialize ethernet device (default handlers) */ -- ether_setup(dev); -+ ether_setup(ndev); - - TRACE; - -- /* fill in dev struct callbacks with customized handlers */ -- dev->open = do_dev_open; -- dev->stop = do_dev_stop; -+ INIT_WORK(&priv->mii_job, dev_media_check_work, ndev); -+ INIT_WORK(&priv->tx_timeout_job, dev_tx_timeout_work, ndev); - -- dev->hard_start_xmit = dev_hard_start_xmit; -- -- dev->watchdog_timeo = DEV_WATCHDOG_TIMEO; -- dev->tx_timeout = dev_tx_timeout; -- dev->change_mtu = dev_change_mtu; -- dev->do_ioctl = do_dev_ioctl; -- dev->get_stats = dev_get_stats; -- dev->set_multicast_list = dev_set_multicast_list; -- dev->flags |= IFF_MULTICAST; -+ TRACE; - -- dev->set_mac_address = dev_set_mac_address; -+ /* fill in dev struct callbacks with customized handlers */ -+ ndev->open = do_dev_open; -+ ndev->stop = do_dev_stop; -+ ndev->hard_start_xmit = dev_hard_start_xmit; -+ ndev->watchdog_timeo = DEV_WATCHDOG_TIMEO; -+ ndev->tx_timeout = dev_tx_timeout; -+ ndev->change_mtu = dev_change_mtu; -+ ndev->do_ioctl = do_dev_ioctl; -+ ndev->get_stats = dev_get_stats; -+ ndev->set_multicast_list = dev_set_multicast_list; -+ ndev->flags |= IFF_MULTICAST; -+ ndev->set_mac_address = dev_set_mac_address; - - TRACE; - -@@ -2858,22 +3086,22 @@ - * - */ - -- memcpy(dev->dev_addr, -+ memcpy(ndev->dev_addr, - &default_mac_addr[priv->port_id].macAddress, - IX_IEEE803_MAC_ADDRESS_SIZE); - - /* possibly remove this test and the message when a valid MAC address - * is not hardcoded in the driver source code. - */ -- if (is_valid_ether_addr(dev->dev_addr)) -+ if (is_valid_ether_addr(ndev->dev_addr)) - { - P_WARN("Use default MAC address %2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x for port %d\n", -- (unsigned)dev->dev_addr[0], -- (unsigned)dev->dev_addr[1], -- (unsigned)dev->dev_addr[2], -- (unsigned)dev->dev_addr[3], -- (unsigned)dev->dev_addr[4], -- (unsigned)dev->dev_addr[5], -+ (unsigned)ndev->dev_addr[0], -+ (unsigned)ndev->dev_addr[1], -+ (unsigned)ndev->dev_addr[2], -+ (unsigned)ndev->dev_addr[3], -+ (unsigned)ndev->dev_addr[4], -+ (unsigned)ndev->dev_addr[5], - priv->port_id); - } - -@@ -2883,31 +3111,30 @@ - */ - TRACE; - -- dev_change_msdu(dev, dev->mtu + dev->hard_header_len + VLAN_HDR); -- -+ dev_change_msdu(ndev, ndev->mtu + ndev->hard_header_len + VLAN_HDR); -+#if 0 - priv->tq_timeout.routine = dev_tx_timeout_task; - priv->tq_timeout.data = (void *)dev; -- -+#endif - #ifdef CONFIG_IXP400_ETH_QDISC_ENABLED - /* configure and enable a fast TX queuing discipline */ - TRACE; - -- priv->qdisc = qdisc_create_dflt(dev, &dev_qdisc_ops); -- dev->qdisc_sleeping = priv->qdisc; -- dev->qdisc = priv->qdisc; -+ priv->qdisc = qdisc_create_dflt(ndev, &dev_qdisc_ops); -+ ndev->qdisc_sleeping = priv->qdisc; -+ ndev->qdisc = priv->qdisc; - -- if (!dev->qdisc_sleeping) -+ if (!ndev->qdisc_sleeping) - { - P_ERROR("%s: qdisc_create_dflt failed on port %d\n", -- dev->name, priv->port_id); -- kfree(dev->priv); -- return -ENOMEM; -+ ndev->name, priv->port_id); -+ goto out; - } - #endif - - /* set the internal maximum queueing capabilities */ -- dev->tx_queue_len = TX_MBUF_POOL_SIZE; -- -+ ndev->tx_queue_len = TX_MBUF_POOL_SIZE; -+#if 0 - if (!netif_queue_stopped(dev)) - { - TRACE; -@@ -2917,9 +3144,63 @@ - } - - found_devices++; -+#endif -+ if ((res = register_netdev(ndev))) -+ P_ERROR("Failed to register netdev. res = %d\n", res); - - TRACE; - -+ out: -+ return res; -+} -+ -+ -+static int __devinit npe_eth_init_device(struct device *dev) -+{ -+ int res = -ENOMEM; -+ struct platform_device *pdev = to_platform_device(dev); -+ struct net_device *ndev = alloc_etherdev(sizeof(priv_data_t)); -+ TRACE; -+ if (ndev == NULL) { -+ P_ERROR("could not allocate device.\n"); -+ goto out; -+ } -+ SET_MODULE_OWNER(ndev); -+ SET_NETDEV_DEV(ndev, dev); -+ ixEthAccTxSchedulingDisciplineSet(pdev->id, FIFO_NO_PRIORITY); -+ dev_set_drvdata(dev, ndev); -+ res = dev_eth_probe(dev); -+ if (res == 0) { -+ /* This was added in v0.1.8 of the driver. It seems that we need to -+ * enable the port before the user can set a mac address for the port -+ * using 'ifconfig hw ether ...'. To enable the port we must first -+ * register Q callbacks, so we register the portDisable callbacks to -+ * ensure that no buffers are passed up to the kernel until the port is -+ * brought up properly (ifconfig up) -+ */ -+ ixEthAccPortTxDoneCallbackRegister(pdev->id, -+ tx_done_disable_cb, -+ (UINT32)ndev); -+ ixEthAccPortRxCallbackRegister(pdev->id, -+ rx_disable_cb, -+ (UINT32)ndev); -+ port_enable(ndev); -+ } else { -+ dev_set_drvdata(dev, NULL); -+ kfree(ndev); -+ } -+out: -+ TRACE; -+ return res; -+} -+ -+static int __devexit npe_eth_fini_device(struct device *dev) -+{ -+ struct net_device *ndev = dev_get_drvdata(dev); -+ TRACE; -+ dev_set_drvdata(dev, NULL); -+ unregister_netdev(ndev); -+ kfree(ndev); - return 0; - } - -@@ -2928,6 +3209,28 @@ - - #ifdef MODULE - -+#define MODULE_NAME "ixp400_eth" -+ -+static struct device_driver npe_eth_driver = { -+ .name = MODULE_NAME, -+ .bus = &platform_bus_type, -+ .probe = npe_eth_init_device, -+ .remove = npe_eth_fini_device, -+}; -+ -+static struct platform_device npe_eth_devs[] = { -+ { -+ .name = MODULE_NAME, -+ .id = IX_ETH_PORT_1, -+ }, -+ { -+ .name = MODULE_NAME, -+ .id = IX_ETH_PORT_2, -+ } -+}; -+ -+ -+ - static struct net_device ixp400_devices[IX_ETH_ACC_NUMBER_OF_PORTS]; - - int init_module(void) -@@ -2935,11 +3238,11 @@ - int res, dev_count; - IxEthAccPortId portId; - struct net_device *dev; -- -+ int i; - TRACE; - -- P_INFO("Initializing IXP400 NPE Ethernet driver software v. " MODULE_VERSION " \n"); -- -+ P_INFO("Initializing IXP400 NPE Ethernet driver software v. LE \n"); -+ ixOsalLogLevelSet(IX_OSAL_LOG_LVL_ALL); - TRACE; - - /* check module parameter range */ -@@ -2951,6 +3254,16 @@ - - TRACE; - -+ /* XXX do this very early */ -+ /* initialise the DB Maintenance task mutex */ -+ maintenance_mutex = (struct semaphore *) kmalloc(sizeof(struct semaphore), GFP_KERNEL); -+ if (!maintenance_mutex) -+ return -ENOMEM; -+ -+ init_MUTEX(maintenance_mutex); -+ -+ TRACE; -+ - #ifndef DEBUG - /* check module parameter range */ - if (log_level >= 2) /* module parameter */ -@@ -3015,6 +3328,13 @@ - /* Initialise the NPEs and access layer */ - TRACE; - -+ for (i = 0; i < IX_ETH_ACC_NUMBER_OF_PORTS; i++) -+ { -+ if ((res = npe_start(i))) -+ return res; -+ TRACE; -+ } -+ - if ((res = ethacc_init())) - return res; - -@@ -3026,6 +3346,13 @@ - - TRACE; - -+ npe_eth_workqueue = create_workqueue(MODULE_NAME); -+ if (npe_eth_workqueue == NULL) -+ return -ENOMEM; -+ -+ TRACE; -+ -+#if 0 - /* Initialise the driver structure */ - for (dev_count = 0; - dev_count < dev_max_count; /* module parameter */ -@@ -3038,7 +3365,7 @@ - dev->init = dev_eth_probe; - - TRACE; -- -+ } - if ((res = register_netdev(dev))) - { - TRACE; -@@ -3068,6 +3395,35 @@ - return convert_error_ethAcc(res); - } - } -+#endif -+ /* set the softirq rx queue thresholds -+ * (These numbers are based on tuning experiments) -+ * maxbacklog = (netdev_max_backlog * 10) / 63; -+ */ -+ if (netdev_max_backlog == 0) -+ { -+ netdev_max_backlog = 290; /* system default */ -+ } -+ netdev_max_backlog /= BACKLOG_TUNE; -+ -+ TRACE; -+ -+ res = driver_register(&npe_eth_driver); -+ if (res != 0) { -+ P_ERROR("Failed to register NPE EThernet driver (res = %d)\n", res); -+ return res; -+ } -+ -+ res = platform_device_register(&npe_eth_devs[0]); -+ if (res != 0) { -+ P_ERROR("Failed to register NPE platform device 0 (res = %d)\n", res); -+ return res; -+ } -+ res = platform_device_register(&npe_eth_devs[1]); -+ if (res != 0) { -+ P_ERROR("Failed to register NPE platform device 1 (res = %d)\n", res); -+ return res; -+ } - - TRACE; - -@@ -3104,33 +3460,13 @@ - } - - TRACE; -- -- /* initialise the DB Maintenance task mutex */ -- maintenance_mutex = (struct semaphore *) kmalloc(sizeof(struct semaphore), GFP_KERNEL); -- if (!maintenance_mutex) -- return -ENOMEM; -- -- init_MUTEX(maintenance_mutex); -- -- TRACE; -- -+TRACE; - /* Do not start the EthDB maintenance thread if learning & filtering feature is disabled */ - if (npe_learning) /* module parameter */ - { -- maintenance_timer_set(); -- } -- -- TRACE; -- -- /* set the softirq rx queue thresholds -- * (These numbers are based on tuning experiments) -- * maxbacklog = (netdev_max_backlog * 10) / 63; -- */ -- if (netdev_max_backlog == 0) -- { -- netdev_max_backlog = 290; /* system default */ -+ schedule_db_maintenance(); -+ // maintenance_timer_set(); - } -- netdev_max_backlog /= BACKLOG_TUNE; - - TRACE; - -@@ -3175,7 +3511,8 @@ - TRACE; - - /* stop the maintenance timer */ -- maintenance_timer_clear(); -+ // maintenance_timer_clear(); -+ cancel_db_maintenance(); - - TRACE; - diff --git a/recipes/ixp425-eth/ixp400-eth-1.4/makefile.patch b/recipes/ixp425-eth/ixp400-eth-1.4/makefile.patch deleted file mode 100644 index 350485c1aa..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.4/makefile.patch +++ /dev/null @@ -1,33 +0,0 @@ ---- /dev/null 2005-09-06 00:17:15.000000000 -0700 -+++ ./Makefile 2005-10-02 22:15:19.974595551 -0700 -@@ -0,0 +1,30 @@ -+obj-m := ixp400_eth.o -+ -+CFLAGS_ixp400_eth.o = -DWall \ -+ -I$(IXP4XX_CSR_DIR) \ -+ -I$(OSAL_DIR)/ \ -+ -I$(OSAL_DIR)/os/linux/include/ \ -+ -I$(OSAL_DIR)/os/linux/include/modules/ \ -+ -I$(OSAL_DIR)/os/linux/include/modules/ioMem/ \ -+ -I$(OSAL_DIR)/os/linux/include/modules/core/ \ -+ -I$(OSAL_DIR)/os/linux/include/modules/bufferMgt/ \ -+ -I$(OSAL_DIR)/os/linux/include/core/ \ -+ -I$(OSAL_DIR)/os/linux/include/platforms/ \ -+ -I$(OSAL_DIR)/os/linux/include/platforms/ixp400/ \ -+ -I$(OSAL_DIR)/os/linux/include/core/ \ -+ -I$(OSAL_DIR)/include/ \ -+ -I$(OSAL_DIR)/include/modules/ \ -+ -I$(OSAL_DIR)/include/modules/bufferMgt/ \ -+ -I$(OSAL_DIR)/include/modules/ioMem/ \ -+ -I$(OSAL_DIR)/include/modules/core/ \ -+ -I$(OSAL_DIR)/include/platforms/ \ -+ -I$(OSAL_DIR)/include/platforms/ixp400/ \ -+ -I$(OSAL_DIR)/include/platforms/ixp400/xp425/ \ -+ -I$(OSAL_DIR)/os/linux/include/platforms/ixp400/ixp425/ \ -+ $(IX_CFLAGS) -+ -+default: -+ $(MAKE) ARCH=arm CROSS_COMPILE=$(LINUX_CROSS_COMPILE) V=1 -C $(LINUX_SRC) SUBDIRS=$(PWD) modules -+ -+clean: -+ rm -f ixp400_eth.ko diff --git a/recipes/ixp425-eth/ixp400-eth-1.4/modprobe.conf b/recipes/ixp425-eth/ixp400-eth-1.4/modprobe.conf deleted file mode 100644 index 9d579eeac1..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.4/modprobe.conf +++ /dev/null @@ -1,3 +0,0 @@ -# Add an alias for eth0 to ixp400_eth to cause the S40networking -# init script to load the ixp400_eth driver on the first boot -alias eth0 ixp400_eth diff --git a/recipes/ixp425-eth/ixp400-eth-1.5.1/2.6.14.patch b/recipes/ixp425-eth/ixp400-eth-1.5.1/2.6.14.patch deleted file mode 100644 index fb55f92868..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5.1/2.6.14.patch +++ /dev/null @@ -1,28 +0,0 @@ - ixp400_eth.c | 6 +++++- - 1 files changed, 5 insertions(+), 1 deletion(-) - -Index: ixp400-eth-1.5.1-r0/ixp400_eth.c -=================================================================== ---- ixp400-eth-1.5.1-r0.orig/ixp400_eth.c -+++ ixp400-eth-1.5.1-r0/ixp400_eth.c -@@ -1848,7 +1848,11 @@ - skb->len -= header_len; - - /* fill the pkt arrival time (set at the irq callback entry) */ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,14) - skb->stamp = irq_stamp; -+#else -+ skb_set_timestamp(skb, &irq_stamp); -+#endif - - /* fill the input device field */ - skb->dev = dev; -@@ -3040,7 +3044,7 @@ - } - - /* set port MAC addr and update the dev struct if successfull */ --int ixp400_dev_set_mac_address(struct net_device *dev, void *addr) -+static int ixp400_dev_set_mac_address(struct net_device *dev, void *addr) - { - int res; - IxEthAccMacAddr npeMacAddr; diff --git a/recipes/ixp425-eth/ixp400-eth-1.5.1/2.6.15.patch b/recipes/ixp425-eth/ixp400-eth-1.5.1/2.6.15.patch deleted file mode 100644 index 83115d8efa..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5.1/2.6.15.patch +++ /dev/null @@ -1,18 +0,0 @@ -2.6.15 needs platform_device.h - - ixp400_eth.c | 4 ++++ - 1 file changed, 4 insertions(+) - ---- ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -@@ -65,6 +65,10 @@ - #include <linux/sysctl.h> - #include <linux/unistd.h> - -+#ifndef to_platform_device -+#include <linux/platform_device.h> -+#endif -+ - /* - * Intel IXP400 Software specific header files - */ diff --git a/recipes/ixp425-eth/ixp400-eth-1.5.1/Makefile.patch b/recipes/ixp425-eth/ixp400-eth-1.5.1/Makefile.patch deleted file mode 100644 index 3bc51f0b66..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5.1/Makefile.patch +++ /dev/null @@ -1,36 +0,0 @@ -This is an OpenEmbedded only patch to make the code buildable in -the OpenEmbedded environment. - ---- ixp400-eth/Makefile 1970-01-01 00:00:00.000000000 +0000 -+++ ixp400-eth/Makefile 1970-01-01 00:00:00.000000000 +0000 -@@ -0,0 +1,30 @@ -+obj-m := ixp400_eth.o -+ -+CFLAGS_ixp400_eth.o = -DWall \ -+ -I$(IXP4XX_CSR_DIR) \ -+ -I$(OSAL_DIR)/ \ -+ -I$(OSAL_DIR)/os/linux/include/ \ -+ -I$(OSAL_DIR)/os/linux/include/modules/ \ -+ -I$(OSAL_DIR)/os/linux/include/modules/ioMem/ \ -+ -I$(OSAL_DIR)/os/linux/include/modules/core/ \ -+ -I$(OSAL_DIR)/os/linux/include/modules/bufferMgt/ \ -+ -I$(OSAL_DIR)/os/linux/include/core/ \ -+ -I$(OSAL_DIR)/os/linux/include/platforms/ \ -+ -I$(OSAL_DIR)/os/linux/include/platforms/ixp400/ \ -+ -I$(OSAL_DIR)/os/linux/include/core/ \ -+ -I$(OSAL_DIR)/include/ \ -+ -I$(OSAL_DIR)/include/modules/ \ -+ -I$(OSAL_DIR)/include/modules/bufferMgt/ \ -+ -I$(OSAL_DIR)/include/modules/ioMem/ \ -+ -I$(OSAL_DIR)/include/modules/core/ \ -+ -I$(OSAL_DIR)/include/platforms/ \ -+ -I$(OSAL_DIR)/include/platforms/ixp400/ \ -+ -I$(OSAL_DIR)/include/platforms/ixp400/xp425/ \ -+ -I$(OSAL_DIR)/os/linux/include/platforms/ixp400/ixp425/ \ -+ $(IX_CFLAGS) -+ -+default: -+ $(MAKE) ARCH=arm CROSS_COMPILE=$(LINUX_CROSS_COMPILE) $(KERNEL_VERBOSE) symverfile=$(IXP4XX_CSR_SYMVERS) -C $(LINUX_SRC) SUBDIRS=$(PWD) modules -+ -+clean: -+ rm -f ixp400_eth.ko diff --git a/recipes/ixp425-eth/ixp400-eth-1.5.1/continue-if-qmgr-init-fails.patch b/recipes/ixp425-eth/ixp400-eth-1.5.1/continue-if-qmgr-init-fails.patch deleted file mode 100644 index 8508790fa5..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5.1/continue-if-qmgr-init-fails.patch +++ /dev/null @@ -1,22 +0,0 @@ -tries to go on even if queue manager initialization -fails. this is hand because you'll be allowed to -insert ixp400_eth immediately after you have removed -it, without re-inserting ixp400. - - ixp400_eth.c | 5 +---- - 1 file changed, 1 insertion(+), 4 deletions(-) - ---- ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -@@ -2850,10 +2850,7 @@ static int qmgr_init(void) - /* Initialise Queue Manager */ - P_VERBOSE("Initialising Queue Manager...\n"); - if ((res = ixQMgrInit())) -- { -- P_ERROR("Error initialising queue manager!\n"); -- return -1; -- } -+ P_ERROR("Error initialising queue manager, trying to continue!\n"); - - TRACE; - diff --git a/recipes/ixp425-eth/ixp400-eth-1.5.1/debug.patch b/recipes/ixp425-eth/ixp400-eth-1.5.1/debug.patch deleted file mode 100644 index c684c078d2..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5.1/debug.patch +++ /dev/null @@ -1,131 +0,0 @@ -This patch is not necessary but helps when debugging the build - ---- ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -@@ -1350,9 +1350,10 @@ static int dev_media_check_thread (void* - - if (res != IX_ETH_ACC_SUCCESS) - { -- P_WARN("ixEthMiiLinkStatus failed on PHY%d.\n" -+ P_WARN("%s: ixEthMiiLinkStatus failed on PHY%d.\n" - "\tCan't determine\nthe auto negotiated parameters. " - "Using default values.\n", -+ dev->name, - phyNum); - /* something is bad, gracefully stops the loop */ - priv->maintenanceCheckStopped = TRUE; -@@ -2213,7 +2214,8 @@ static int port_enable(struct net_device - IX_IEEE803_MAC_ADDRESS_SIZE); - if ((res = ixEthAccPortUnicastMacAddressSet(priv->port_id, &npeMacAddr))) - { -- P_VERBOSE("Failed to set MAC address %2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x for port %d\n", -+ P_VERBOSE("%s: Failed to set MAC address %2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x for port %d\n", -+ dev->name, - (unsigned)npeMacAddr.macAddress[0], - (unsigned)npeMacAddr.macAddress[1], - (unsigned)npeMacAddr.macAddress[2], -@@ -2707,8 +2709,8 @@ static int do_dev_ioctl(struct net_devic - down (miiAccessMutex); /* lock the MII register access mutex */ - if ((res = ixEthAccMiiReadRtn (data->phy_id, data->reg_num, &data->val_out))) - { -- P_ERROR("Error reading MII reg %d on phy %d\n", -- data->reg_num, data->phy_id); -+ P_ERROR("%s: Error reading MII reg %d on phy %d\n", -+ dev->name, data->reg_num, data->phy_id); - res = -1; - } - up (miiAccessMutex); /* release the MII register access mutex */ -@@ -2720,8 +2722,8 @@ static int do_dev_ioctl(struct net_devic - down (miiAccessMutex); /* lock the MII register access mutex */ - if ((res = ixEthAccMiiWriteRtn (data->phy_id, data->reg_num, data->val_in))) - { -- P_ERROR("Error writing MII reg %d on phy %d\n", -- data->reg_num, data->phy_id); -+ P_ERROR("%s: Error writing MII reg %d on phy %d\n", -+ dev->name, data->reg_num, data->phy_id); - res = -1; - } - up (miiAccessMutex); /* release the MII register access mutex */ -@@ -3049,7 +3051,8 @@ static int set_mac_address(struct net_de - /* Set MAC addr in h/w (ethAcc checks for MAC address to be valid) */ - if ((res = ixEthAccPortUnicastMacAddressSet(priv->port_id, &npeMacAddr))) - { -- P_VERBOSE("Failed to set MAC address %2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x for port %d\n", -+ P_VERBOSE("%s: Failed to set MAC address %2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x for port %d\n", -+ dev->name, - (unsigned)npeMacAddr.macAddress[0], - (unsigned)npeMacAddr.macAddress[1], - (unsigned)npeMacAddr.macAddress[2], -@@ -3267,6 +3270,8 @@ static int __devinit dev_eth_probe(struc - kmalloc(sizeof(struct semaphore), GFP_KERNEL); - if (!priv->maintenanceCheckThreadComplete) - { -+ P_ERROR("%s: Failed to allocate maintenance semaphore %d\n", -+ ndev->name, priv->port_id); - goto error; - } - priv->lock = SPIN_LOCK_UNLOCKED; -@@ -3360,7 +3365,11 @@ static int __devinit dev_eth_probe(struc - - #if IS_KERNEL26 - if (register_netdev(ndev)) -+ { -+ P_ERROR("%s: Failed to register netdevice %d\n", -+ ndev->name, priv->port_id); - goto error; -+ } - #else - found_devices++; - #endif /* IS_KERNEL26 */ -@@ -3370,6 +3379,8 @@ static int __devinit dev_eth_probe(struc - /* register EthAcc callbacks for this port */ - if (dev_rxtxcallback_register(portId, (UINT32)ndev)) - { -+ P_ERROR("%s: Failed to register callback %d\n", -+ ndev->name, priv->port_id); - goto error; - } - -@@ -3393,6 +3404,7 @@ static int __devinit dev_eth_probe(struc - - /* Error handling: enter here whenever error detected */ - error: -+ P_ERROR("%s: dev_eth_probe fails\n", ndev->name); - TRACE; - - #ifdef CONFIG_IXP400_ETH_QDISC_ENABLED -@@ -3465,21 +3477,21 @@ static int __devexit dev_eth_remove(int - { - if (IX_SUCCESS != ixNpeDlNpeStopAndReset(IX_NPEDL_NPEID_NPEA)) - { -- P_NOTICE("Error Halting NPE for Ethernet port %d!\n", portId); -+ P_NOTICE("%s: Error Halting NPE for Ethernet port %d!\n", ndev->name, portId); - } - } - if (default_npeImageId[portId] == IX_ETH_NPE_B_IMAGE_ID) - { - if (IX_SUCCESS != ixNpeDlNpeStopAndReset(IX_NPEDL_NPEID_NPEB)) - { -- P_NOTICE("Error Halting NPE for Ethernet port %d!\n", portId); -+ P_NOTICE("%s: Error Halting NPE for Ethernet port %d!\n", ndev->name, portId); - } - } - if (default_npeImageId[portId] == IX_ETH_NPE_C_IMAGE_ID) - { - if (IX_SUCCESS != ixNpeDlNpeStopAndReset(IX_NPEDL_NPEID_NPEC)) - { -- P_NOTICE("Error Halting NPE for Ethernet port %d!\n", portId); -+ P_NOTICE("%s: Error Halting NPE for Ethernet port %d!\n", ndev->name, portId); - } - } - -@@ -3528,6 +3540,9 @@ static int __init ixp400_eth_init(void) - TRACE; - - P_INFO("Initializing IXP400 NPE Ethernet driver software v. " MOD_VERSION " \n"); -+#ifdef IX_OSAL_ENSURE_ON -+ ixOsalLogLevelSet(IX_OSAL_LOG_LVL_ALL); -+#endif - - TRACE; - diff --git a/recipes/ixp425-eth/ixp400-eth-1.5.1/device-name.patch b/recipes/ixp425-eth/ixp400-eth-1.5.1/device-name.patch deleted file mode 100644 index 492c9274fd..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5.1/device-name.patch +++ /dev/null @@ -1,49 +0,0 @@ - register the ethernet devices as ethX - - ixp400_eth.c | 12 +++--------- - 1 files changed, 3 insertions(+), 9 deletions(-) - -Index: ixp400-eth-1.5.1-r0/ixp400_eth.c -=================================================================== ---- ixp400-eth-1.5.1-r0.orig/ixp400_eth.c -+++ ixp400-eth-1.5.1-r0/ixp400_eth.c -@@ -160,9 +160,6 @@ - MODULE_PARM(dev_max_count, "i"); - MODULE_PARM_DESC(dev_max_count, "Number of devices to initialize"); - --/* devices will be called ixp0 and ixp1 */ --#define DEVICE_NAME "ixp" -- - /* boolean values for PHY link speed, duplex, and autonegotiation */ - #define PHY_SPEED_10 0 - #define PHY_SPEED_100 1 -@@ -1579,7 +1576,7 @@ - if (request_irq(IX_OSAL_IXP400_XSCALE_PMU_IRQ_LVL, - dev_pmu_timer_os_isr, - SA_SHIRQ, -- DEVICE_NAME, -+ MODULE_NAME, - (void *)IRQ_ANY_PARAMETER)) - { - P_ERROR("Failed to reassign irq to PMU timer interrupt!\n"); -@@ -3035,8 +3032,8 @@ - if (port_id == IX_ETH_PORT_2) npe_id = "C"; - if (port_id == IX_ETH_PORT_3) npe_id = "A"; - -- P_INFO("%s%d is using NPE%s and the PHY at address %d\n", -- DEVICE_NAME, port_id, npe_id, phyAddresses[port_id]); -+ P_INFO("ethernet %d is using NPE%s and the PHY at address %d\n", -+ dev_count, npe_id, phyAddresses[port_id]); - - /* Set the MAC to the same duplex mode as the phy */ - ixEthAccPortDuplexModeSet(port_id, -@@ -3244,9 +3241,6 @@ - /* set the private port ID */ - priv->port_id = portId; - -- /* set device name */ -- sprintf(ndev->name, DEVICE_NAME"%d", priv->port_id); -- - TRACE; - - /* initialize RX pool */ diff --git a/recipes/ixp425-eth/ixp400-eth-1.5.1/int-random.patch b/recipes/ixp425-eth/ixp400-eth-1.5.1/int-random.patch deleted file mode 100644 index fede9daf90..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5.1/int-random.patch +++ /dev/null @@ -1,16 +0,0 @@ -use the ethernet device interrupts to gather entropy - - ixp400_eth.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -@@ -2864,7 +2864,7 @@ static int qmgr_init(void) - - if (request_irq(IX_OSAL_IXP400_QM1_IRQ_LVL, - dev_qmgr_os_isr, -- SA_SHIRQ, -+ SA_SHIRQ | SA_SAMPLE_RANDOM, - MODULE_NAME, - (void *)IRQ_ANY_PARAMETER)) - { diff --git a/recipes/ixp425-eth/ixp400-eth-1.5.1/le.patch b/recipes/ixp425-eth/ixp400-eth-1.5.1/le.patch deleted file mode 100644 index 3d569015e6..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5.1/le.patch +++ /dev/null @@ -1,41 +0,0 @@ -little endian support - - ixp400_eth.c | 20 ++++++++++++++++++++ - 1 file changed, 20 insertions(+) - ---- ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -@@ -2040,6 +2040,16 @@ static void rx_cb(UINT32 callbackTag, IX - skb->tail = skb->data + len; - skb->len = len; - -+#ifndef __ARMEB__ -+ { -+ /* Byte swap all words containing data from the buffer. */ -+ unsigned long *p = (unsigned long*)((unsigned)skb->data & ~0x3); -+ unsigned long *e = (unsigned long*)(((unsigned)skb->data + skb->len + 3) & ~0x3); -+ while (p < e) -+ *p = ntohl(*p), ++p; -+ } -+#endif -+ - #ifdef DEBUG_DUMP - skb_dump("rx", skb); - #endif -@@ -2431,6 +2441,16 @@ static int dev_hard_start_xmit(struct sk - return 0; - } - -+#ifndef __ARMEB__ -+ { -+ /* Byte swap all words containing data from the buffer. */ -+ unsigned long *p = (unsigned long*)((unsigned)skb->data & ~0x3); -+ unsigned long *e = (unsigned long*)(((unsigned)skb->data + skb->len + 3) & ~0x3); -+ while (p < e) -+ *p = ntohl(*p), ++p; -+ } -+#endif -+ - #ifdef DEBUG_DUMP - skb_dump("tx", skb); - #endif diff --git a/recipes/ixp425-eth/ixp400-eth-1.5.1/mac-address.patch b/recipes/ixp425-eth/ixp400-eth-1.5.1/mac-address.patch deleted file mode 100644 index e23eaf5f2b..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5.1/mac-address.patch +++ /dev/null @@ -1,123 +0,0 @@ -Patch to use maclist - get the MAC to use from the board level -MAC repository based on the device portId. - -Signed-off-by: John Bowler <jbowler@acm.org> - ---- ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -@@ -23,10 +23,10 @@ - * This driver is written and optimized for Intel Xscale technology. - * - * SETUP NOTES: -- * By default, this driver uses predefined MAC addresses. -- * These are set in global var 'default_mac_addr' in this file. -- * If required, these can be changed at run-time using -- * the 'ifconfig' tool. -+ * By default, this driver uses MAC addresses from maclist, if -+ * these are not available the kernel api to randomly generate -+ * a locally assigned MAC address is used. The MAC can be -+ * overridden with ifconfig if absolutely necessary. - * - * Example - to set ixp0 MAC address to 00:02:B3:66:88:AA, - * run ifconfig with the following arguments: -@@ -64,6 +64,7 @@ - #include <linux/sysctl.h> - #include <linux/unistd.h> - #include <linux/version.h> -+#include <net/maclist.h> - - #if KERNEL_VERSION(2,6,0) <= LINUX_VERSION_CODE - #include <linux/workqueue.h> -@@ -130,6 +131,8 @@ static int dev_max_count = 1; /* only NP - static int dev_max_count = 2; /* only NPEB and NPEC */ - #elif defined (CONFIG_ARCH_IXDP465) || defined(CONFIG_MACH_IXDP465) - static int dev_max_count = 3; /* all NPEs are used */ -+#else -+static int dev_max_count = -1;/* use maclist_count */ - #endif - - #ifndef CONFIG_IXP400_NAPI -@@ -614,21 +617,6 @@ static phy_cfg_t default_phy_cfg[] = - #endif - }; - --/* Default MAC addresses for EthAcc Ports 1 and 2 (using Intel MAC prefix) -- * Default is -- * IX_ETH_PORT_1 -> MAC 00:02:b3:01:01:01 -- * IX_ETH_PORT_2 -> MAC 00:02:b3:02:02:02 -- * IX_ETH_PORT_3 -> MAC 00:02:b3:03:03:03 --*/ --static IxEthAccMacAddr default_mac_addr[] = --{ -- {{0x00, 0x02, 0xB3, 0x01, 0x01, 0x01}} /* EthAcc Port 0 */ -- ,{{0x00, 0x02, 0xB3, 0x02, 0x02, 0x02}} /* EthAcc Port 1 */ --#if defined (CONFIG_ARCH_IXDP465) || defined(CONFIG_MACH_IXDP465) -- ,{{0x00, 0x02, 0xB3, 0x03, 0x03, 0x03}} /* EthAcc Port 2 */ --#endif --}; -- - /* Default mapping of NpeImageIds for EthAcc Ports - * Default is - * IX_ETH_PORT_1 -> IX_ETH_NPE_B -@@ -3325,28 +3313,10 @@ static int __devinit dev_eth_probe(struc - - /* Defines the unicast MAC address - * -- * Here is a good place to read a board-specific MAC address -- * from a non-volatile memory, e.g. an external eeprom. -- * -- * This memcpy uses a default MAC address from this -- * source code. -- * -- * This can be overriden later by the (optional) command -- * -- * ifconfig ixp0 ether 0002b3010101 -- * -+ * The code reads from the maclist API. - */ -- -- memcpy(ndev->dev_addr, -- &default_mac_addr[priv->port_id].macAddress, -- IX_IEEE803_MAC_ADDRESS_SIZE); -- -- /* possibly remove this test and the message when a valid MAC address -- * is not hardcoded in the driver source code. -- */ -- if (is_valid_ether_addr(ndev->dev_addr)) -- { -- P_WARN("Use default MAC address %2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x for port %d\n", -+ maclist_read((u8(*)[6])&ndev->dev_addr, priv->port_id); -+ P_INFO("Use MAC address %2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x for port %d\n", - (unsigned)ndev->dev_addr[0], - (unsigned)ndev->dev_addr[1], - (unsigned)ndev->dev_addr[2], -@@ -3354,7 +3324,6 @@ static int __devinit dev_eth_probe(struc - (unsigned)ndev->dev_addr[4], - (unsigned)ndev->dev_addr[5], - priv->port_id); -- } - - /* Set/update the internal packet size - * This can be overriden later by the command -@@ -3562,12 +3531,15 @@ static int __init ixp400_eth_init(void) - - TRACE; - -- /* check module parameter range */ -- if (dev_max_count == 0 || dev_max_count > IX_ETH_ACC_NUMBER_OF_PORTS) -- { -- P_ERROR("Number of ports supported is dev_max_count <= %d\n", IX_ETH_ACC_NUMBER_OF_PORTS); -- return -1; -- } -+ /* fix dev_max_count to maclist_count - the actual number of -+ * available MACs -+ */ -+ if (dev_max_count <= 0 || (dev_max_count > maclist_count() && maclist_count() > 0)) -+ dev_max_count = maclist_count(); -+ if (dev_max_count <= 0) -+ dev_max_count = 1; -+ else if (dev_max_count > IX_ETH_ACC_NUMBER_OF_PORTS) -+ dev_max_count = IX_ETH_ACC_NUMBER_OF_PORTS; - - TRACE; - diff --git a/recipes/ixp425-eth/ixp400-eth-1.5.1/modprobe.conf b/recipes/ixp425-eth/ixp400-eth-1.5.1/modprobe.conf deleted file mode 100644 index f08b9a404c..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5.1/modprobe.conf +++ /dev/null @@ -1,4 +0,0 @@ -# Add an alias for eth0 to ixp400_eth to cause the S40networking -# init script to load the ixp400_eth driver on the first boot -alias eth0 ixp400_eth -options ixp400_eth dev_max_count=1
\ No newline at end of file diff --git a/recipes/ixp425-eth/ixp400-eth-1.5.1/module-param.patch b/recipes/ixp425-eth/ixp400-eth-1.5.1/module-param.patch deleted file mode 100644 index c54c45d716..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5.1/module-param.patch +++ /dev/null @@ -1,62 +0,0 @@ - ixp400_eth.c | 32 ++++++++++++++++++++++++++++++++ - 1 files changed, 32 insertions(+) - -Index: ixp400_eth/ixp400_eth.c -=================================================================== ---- ixp400_eth.orig/ixp400_eth.c -+++ ixp400_eth/ixp400_eth.c -@@ -142,22 +142,54 @@ - - static int datapath_poll = 1; /* default : rx/tx polling, not interrupt driven*/ - -+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,16) - MODULE_PARM(ixp400_netdev_max_backlog, "i"); -+#else -+module_param(ixp400_netdev_max_backlog, int, 0644); -+#endif - MODULE_PARM_DESC(ixp400_netdev_max_backlog, "Should be set to the value of /proc/sys/net/core/netdev_max_backlog (perf affecting)"); -+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,16) - MODULE_PARM(datapath_poll, "i"); -+#else -+module_param(datapath_poll, int, 0644); -+#endif - MODULE_PARM_DESC(datapath_poll, "If non-zero, use polling method for datapath instead of interrupts"); - #endif /* CONFIG_IXP400_NAPI */ -+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,16) - MODULE_PARM(npe_learning, "i"); -+#else -+module_param(npe_learning, int, 0644); -+#endif - MODULE_PARM_DESC(npe_learning, "If non-zero, NPE MAC Address Learning & Filtering feature will be enabled"); -+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,16) - MODULE_PARM(log_level, "i"); -+#else -+module_param(log_level, int, 0644); -+#endif - MODULE_PARM_DESC(log_level, "Set log level: 0 - None, 1 - Verbose, 2 - Debug"); -+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,16) - MODULE_PARM(no_ixp400_sw_init, "i"); -+#else -+module_param(no_ixp400_sw_init, int, 0644); -+#endif - MODULE_PARM_DESC(no_ixp400_sw_init, "If non-zero, do not initialise Intel IXP400 Software Release core components"); -+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,16) - MODULE_PARM(no_phy_scan, "i"); -+#else -+module_param(no_phy_scan, int, 0644); -+#endif - MODULE_PARM_DESC(no_phy_scan, "If non-zero, use hard-coded phy addresses"); -+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,16) - MODULE_PARM(phy_reset, "i"); -+#else -+module_param(phy_reset, int, 0644); -+#endif - MODULE_PARM_DESC(phy_reset, "If non-zero, reset the phys"); -+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,16) - MODULE_PARM(dev_max_count, "i"); -+#else -+module_param(dev_max_count, int, 0644); -+#endif - MODULE_PARM_DESC(dev_max_count, "Number of devices to initialize"); - - /* boolean values for PHY link speed, duplex, and autonegotiation */ diff --git a/recipes/ixp425-eth/ixp400-eth-1.5.1/netdev_max_backlog.patch b/recipes/ixp425-eth/ixp400-eth-1.5.1/netdev_max_backlog.patch deleted file mode 100644 index 6891b6b4a9..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5.1/netdev_max_backlog.patch +++ /dev/null @@ -1,54 +0,0 @@ ---- ixp400_eth/ixp400_eth.c~ 2006-01-09 01:03:11.000000000 +1030 -+++ ixp400_eth/ixp400_eth.c 2006-01-09 01:05:27.000000000 +1030 -@@ -139,12 +139,12 @@ - * skbuf to push into the linux stack, and avoid the performance degradations - * during overflow. - */ --static int netdev_max_backlog = 290; -+static int ixp400_netdev_max_backlog = 290; - - static int datapath_poll = 1; /* default : rx/tx polling, not interrupt driven*/ - --MODULE_PARM(netdev_max_backlog, "i"); --MODULE_PARM_DESC(netdev_max_backlog, "Should be set to the value of /proc/sys/net/core/netdev_max_backlog (perf affecting)"); -+MODULE_PARM(ixp400_netdev_max_backlog, "i"); -+MODULE_PARM_DESC(ixp400_netdev_max_backlog, "Should be set to the value of /proc/sys/net/core/netdev_max_backlog (perf affecting)"); - MODULE_PARM(datapath_poll, "i"); - MODULE_PARM_DESC(datapath_poll, "If non-zero, use polling method for datapath instead of interrupts"); - #endif /* CONFIG_IXP400_NAPI */ -@@ -213,7 +213,7 @@ - * high traffic rates. To measure the maximum throughput between the - * ports of the driver, - * - Modify /proc/sys/net/core/netdev_max_backlog value in the kernel -- * - Adjust netdev_max_backlog=n in the driver's command line -+ * - Adjust ixp400_netdev_max_backlog=n in the driver's command line - * in order to get the best rates depending on the testing tool - * and the OS load. - * -@@ -1997,7 +1997,7 @@ - /* check if the system accepts more traffic and - * against chained mbufs - */ -- if ((qlevel < netdev_max_backlog) -+ if ((qlevel < ixp400_netdev_max_backlog) - && (IX_OSAL_MBUF_NEXT_PKT_IN_CHAIN_PTR(mbuf) == NULL)) - #else - /* check against chained mbufs -@@ -3776,13 +3776,13 @@ - #ifndef CONFIG_IXP400_NAPI - /* set the softirq rx queue thresholds - * (These numbers are based on tuning experiments) -- * maxbacklog = (netdev_max_backlog * 10) / 63; -+ * maxbacklog = (ixp400_netdev_max_backlog * 10) / 63; - */ -- if (netdev_max_backlog == 0) -+ if (ixp400_netdev_max_backlog == 0) - { -- netdev_max_backlog = 290; /* system default */ -+ ixp400_netdev_max_backlog = 290; /* system default */ - } -- netdev_max_backlog /= BACKLOG_TUNE; -+ ixp400_netdev_max_backlog /= BACKLOG_TUNE; - - TRACE; - #endif diff --git a/recipes/ixp425-eth/ixp400-eth-1.5.1/params.patch b/recipes/ixp425-eth/ixp400-eth-1.5.1/params.patch deleted file mode 100644 index 86011deaaa..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5.1/params.patch +++ /dev/null @@ -1,75 +0,0 @@ -*** ixp/ixp400_eth.c.orig Wed Jun 7 21:31:59 2006 ---- ixp/ixp400_eth.c Fri Jun 9 14:55:18 2006 -*************** -*** 112,135 **** - #define MOD_VERSION "1.5" - - /* Module parameters */ -! static int npe_learning = 1; /* default : NPE learning & filtering enable */ -! static int log_level = 0; /* default : no log */ -! static int no_ixp400_sw_init = 0; /* default : init core components of the IXP400 Software */ -! static int no_phy_scan = 0; /* default : do phy discovery */ -! static int phy_reset = 0; /* default : mo phy reset */ - - /* maximum number of ports supported by this driver ixp0, ixp1 .... - * The default is to configure all ports defined in EthAcc component - */ - #ifdef CONFIG_IXP400_ETH_NPEC_ONLY -! static int dev_max_count = 1; /* only NPEC is used */ -! #elif defined (CONFIG_IXP400_ETH_NPEB_ONLY) -! static int dev_max_count = 1; /* only NPEB is used */ - #elif defined (CONFIG_ARCH_IXDP425) || defined(CONFIG_ARCH_IXDPG425)\ - || defined (CONFIG_ARCH_ADI_COYOTE) -! static int dev_max_count = 2; /* only NPEB and NPEC */ - #elif defined (CONFIG_ARCH_IXDP465) || defined(CONFIG_MACH_IXDP465) -! static int dev_max_count = 3; /* all NPEs are used */ - #endif - - #ifndef CONFIG_IXP400_NAPI ---- 112,136 ---- - #define MOD_VERSION "1.5" - - /* Module parameters */ -! /* gcc 4.1.1+kernel2.6.16 do not like it if these are static! */ -! int npe_learning = 1; /* default : NPE learning & filtering enable */ -! int log_level = 0; /* default : no log */ -! int no_ixp400_sw_init = 0; /* default : init core components of the IXP400 Software */ -! int no_phy_scan = 0; /* default : do phy discovery */ -! int phy_reset = 0; /* default : mo phy reset */ - - /* maximum number of ports supported by this driver ixp0, ixp1 .... - * The default is to configure all ports defined in EthAcc component - */ - #ifdef CONFIG_IXP400_ETH_NPEC_ONLY -! int dev_max_count = 1; /* only NPEC is used */ -! #elif defined (CONFIG_IXP400_ETH_NPEB_ONLY) -! int dev_max_count = 1; /* only NPEB is used */ - #elif defined (CONFIG_ARCH_IXDP425) || defined(CONFIG_ARCH_IXDPG425)\ - || defined (CONFIG_ARCH_ADI_COYOTE) -! int dev_max_count = 2; /* only NPEB and NPEC */ - #elif defined (CONFIG_ARCH_IXDP465) || defined(CONFIG_MACH_IXDP465) -! int dev_max_count = 3; /* all NPEs are used */ - #endif - - #ifndef CONFIG_IXP400_NAPI -*************** -*** 138,146 **** - * skbuf to push into the linux stack, and avoid the performance degradations - * during overflow. - */ -! static int ixp400_netdev_max_backlog = 290; - -! static int datapath_poll = 1; /* default : rx/tx polling, not interrupt driven*/ - - MODULE_PARM(ixp400_netdev_max_backlog, "i"); - MODULE_PARM_DESC(ixp400_netdev_max_backlog, "Should be set to the value of /proc/sys/net/core/netdev_max_backlog (perf affecting)"); ---- 139,147 ---- - * skbuf to push into the linux stack, and avoid the performance degradations - * during overflow. - */ -! int ixp400_netdev_max_backlog = 290; - -! int datapath_poll = 1; /* default : rx/tx polling, not interrupt driven*/ - - MODULE_PARM(ixp400_netdev_max_backlog, "i"); - MODULE_PARM_DESC(ixp400_netdev_max_backlog, "Should be set to the value of /proc/sys/net/core/netdev_max_backlog (perf affecting)"); diff --git a/recipes/ixp425-eth/ixp400-eth-1.5.1/poll-controller.patch b/recipes/ixp425-eth/ixp400-eth-1.5.1/poll-controller.patch deleted file mode 100644 index 64fb310ee5..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5.1/poll-controller.patch +++ /dev/null @@ -1,50 +0,0 @@ -poll controller support - - ixp400_eth.c | 22 ++++++++++++++++++++++ - 1 file changed, 22 insertions(+) - ---- ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -@@ -348,6 +348,12 @@ static int dev_pmu_timer_init(void); - extern void - ixEthTxFrameDoneQMCallback(IxQMgrQId qId, IxQMgrCallbackId callbackId); - -+#ifdef CONFIG_NET_POLL_CONTROLLER -+/* poll controller (needed for netconsole et al) */ -+static void -+ixp425eth_poll_controller(struct net_device *dev); -+#endif -+ - /* Private device data */ - typedef struct { - spinlock_t lock; /* multicast management lock */ -@@ -3060,6 +3066,19 @@ static int set_mac_address(struct net_de - return 0; - } - -+#ifdef CONFIG_NET_POLL_CONTROLLER -+/* -+ * Polling receive - used by netconsole and other diagnostic tools -+ * to allow network i/o with interrupts disabled. -+ * (stolen from 8139too.c by siddy) -+ */ -+static void ixp425eth_poll_controller(struct net_device *dev) -+{ -+ disable_irq(dev->irq); -+ dev_qmgr_os_isr(dev->irq, dev, NULL); -+ enable_irq(dev->irq); -+} -+#endif - - /* - * TX QDISC -@@ -3270,6 +3289,9 @@ static int __devinit dev_eth_probe(struc - ndev->get_stats = dev_get_stats; - ndev->set_multicast_list = dev_set_multicast_list; - ndev->flags |= IFF_MULTICAST; -+#ifdef CONFIG_NET_POLL_CONTROLLER -+ ndev->poll_controller = ixp425eth_poll_controller; -+#endif - - ndev->set_mac_address = set_mac_address; - diff --git a/recipes/ixp425-eth/ixp400-eth-1.5.1/stop-on-rmmod.patch b/recipes/ixp425-eth/ixp400-eth-1.5.1/stop-on-rmmod.patch deleted file mode 100644 index 2ddc98938a..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5.1/stop-on-rmmod.patch +++ /dev/null @@ -1,29 +0,0 @@ -devices must be explicitely stopped when -the driver is going do be removed, otherwise -it will simply hang. - - ixp400_eth.c | 13 ++++++++++--- - 1 file changed, 10 insertions(+), 3 deletions(-) - ---- ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -@@ -3800,9 +3800,16 @@ void __exit ixp400_eth_exit(void) - - TRACE; - -- /* We can only get here when the module use count is 0, -- * so there's no need to stop devices. -- */ -+ /* stop devices */ -+ -+#if IS_KERNEL26 -+ for (dev_count = 0; -+ dev_count < dev_max_count; /* module parameter */ -+ dev_count++) -+ { -+ do_dev_stop(platform_get_drvdata(&ixp400_eth_devices[dev_count])); -+ } -+#endif - - if (no_ixp400_sw_init == 0) /* module parameter */ - { diff --git a/recipes/ixp425-eth/ixp400-eth-1.5/2.6.14.patch b/recipes/ixp425-eth/ixp400-eth-1.5/2.6.14.patch deleted file mode 100644 index f3426e4287..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5/2.6.14.patch +++ /dev/null @@ -1,35 +0,0 @@ - ixp400_eth.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - ---- ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -@@ -1838,7 +1838,11 @@ static inline void dev_eth_type_trans(un - skb->len -= header_len; - - /* fill the pkt arrival time (set at the irq callback entry) */ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,14) - skb->stamp = irq_stamp; -+#else -+ skb_set_timestamp(skb, &irq_stamp); -+#endif - - /* fill the input device field */ - skb->dev = dev; -@@ -3014,7 +3018,7 @@ static int phy_init(void) - } - - /* set port MAC addr and update the dev struct if successfull */ --int dev_set_mac_address(struct net_device *dev, void *addr) -+static int set_mac_address(struct net_device *dev, void *addr) - { - int res; - IxEthAccMacAddr npeMacAddr; -@@ -3266,7 +3270,7 @@ static int __devinit dev_eth_probe(struc - ndev->set_multicast_list = dev_set_multicast_list; - ndev->flags |= IFF_MULTICAST; - -- ndev->set_mac_address = dev_set_mac_address; -+ ndev->set_mac_address = set_mac_address; - - #ifdef CONFIG_IXP400_NAPI - ndev->poll = &dev_rx_poll; diff --git a/recipes/ixp425-eth/ixp400-eth-1.5/2.6.15.patch b/recipes/ixp425-eth/ixp400-eth-1.5/2.6.15.patch deleted file mode 100644 index 83115d8efa..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5/2.6.15.patch +++ /dev/null @@ -1,18 +0,0 @@ -2.6.15 needs platform_device.h - - ixp400_eth.c | 4 ++++ - 1 file changed, 4 insertions(+) - ---- ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -@@ -65,6 +65,10 @@ - #include <linux/sysctl.h> - #include <linux/unistd.h> - -+#ifndef to_platform_device -+#include <linux/platform_device.h> -+#endif -+ - /* - * Intel IXP400 Software specific header files - */ diff --git a/recipes/ixp425-eth/ixp400-eth-1.5/Makefile.patch b/recipes/ixp425-eth/ixp400-eth-1.5/Makefile.patch deleted file mode 100644 index 3bc51f0b66..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5/Makefile.patch +++ /dev/null @@ -1,36 +0,0 @@ -This is an OpenEmbedded only patch to make the code buildable in -the OpenEmbedded environment. - ---- ixp400-eth/Makefile 1970-01-01 00:00:00.000000000 +0000 -+++ ixp400-eth/Makefile 1970-01-01 00:00:00.000000000 +0000 -@@ -0,0 +1,30 @@ -+obj-m := ixp400_eth.o -+ -+CFLAGS_ixp400_eth.o = -DWall \ -+ -I$(IXP4XX_CSR_DIR) \ -+ -I$(OSAL_DIR)/ \ -+ -I$(OSAL_DIR)/os/linux/include/ \ -+ -I$(OSAL_DIR)/os/linux/include/modules/ \ -+ -I$(OSAL_DIR)/os/linux/include/modules/ioMem/ \ -+ -I$(OSAL_DIR)/os/linux/include/modules/core/ \ -+ -I$(OSAL_DIR)/os/linux/include/modules/bufferMgt/ \ -+ -I$(OSAL_DIR)/os/linux/include/core/ \ -+ -I$(OSAL_DIR)/os/linux/include/platforms/ \ -+ -I$(OSAL_DIR)/os/linux/include/platforms/ixp400/ \ -+ -I$(OSAL_DIR)/os/linux/include/core/ \ -+ -I$(OSAL_DIR)/include/ \ -+ -I$(OSAL_DIR)/include/modules/ \ -+ -I$(OSAL_DIR)/include/modules/bufferMgt/ \ -+ -I$(OSAL_DIR)/include/modules/ioMem/ \ -+ -I$(OSAL_DIR)/include/modules/core/ \ -+ -I$(OSAL_DIR)/include/platforms/ \ -+ -I$(OSAL_DIR)/include/platforms/ixp400/ \ -+ -I$(OSAL_DIR)/include/platforms/ixp400/xp425/ \ -+ -I$(OSAL_DIR)/os/linux/include/platforms/ixp400/ixp425/ \ -+ $(IX_CFLAGS) -+ -+default: -+ $(MAKE) ARCH=arm CROSS_COMPILE=$(LINUX_CROSS_COMPILE) $(KERNEL_VERBOSE) symverfile=$(IXP4XX_CSR_SYMVERS) -C $(LINUX_SRC) SUBDIRS=$(PWD) modules -+ -+clean: -+ rm -f ixp400_eth.ko diff --git a/recipes/ixp425-eth/ixp400-eth-1.5/continue-if-qmgr-init-fails.patch b/recipes/ixp425-eth/ixp400-eth-1.5/continue-if-qmgr-init-fails.patch deleted file mode 100644 index 8508790fa5..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5/continue-if-qmgr-init-fails.patch +++ /dev/null @@ -1,22 +0,0 @@ -tries to go on even if queue manager initialization -fails. this is hand because you'll be allowed to -insert ixp400_eth immediately after you have removed -it, without re-inserting ixp400. - - ixp400_eth.c | 5 +---- - 1 file changed, 1 insertion(+), 4 deletions(-) - ---- ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -@@ -2850,10 +2850,7 @@ static int qmgr_init(void) - /* Initialise Queue Manager */ - P_VERBOSE("Initialising Queue Manager...\n"); - if ((res = ixQMgrInit())) -- { -- P_ERROR("Error initialising queue manager!\n"); -- return -1; -- } -+ P_ERROR("Error initialising queue manager, trying to continue!\n"); - - TRACE; - diff --git a/recipes/ixp425-eth/ixp400-eth-1.5/debug.patch b/recipes/ixp425-eth/ixp400-eth-1.5/debug.patch deleted file mode 100644 index c684c078d2..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5/debug.patch +++ /dev/null @@ -1,131 +0,0 @@ -This patch is not necessary but helps when debugging the build - ---- ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -@@ -1350,9 +1350,10 @@ static int dev_media_check_thread (void* - - if (res != IX_ETH_ACC_SUCCESS) - { -- P_WARN("ixEthMiiLinkStatus failed on PHY%d.\n" -+ P_WARN("%s: ixEthMiiLinkStatus failed on PHY%d.\n" - "\tCan't determine\nthe auto negotiated parameters. " - "Using default values.\n", -+ dev->name, - phyNum); - /* something is bad, gracefully stops the loop */ - priv->maintenanceCheckStopped = TRUE; -@@ -2213,7 +2214,8 @@ static int port_enable(struct net_device - IX_IEEE803_MAC_ADDRESS_SIZE); - if ((res = ixEthAccPortUnicastMacAddressSet(priv->port_id, &npeMacAddr))) - { -- P_VERBOSE("Failed to set MAC address %2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x for port %d\n", -+ P_VERBOSE("%s: Failed to set MAC address %2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x for port %d\n", -+ dev->name, - (unsigned)npeMacAddr.macAddress[0], - (unsigned)npeMacAddr.macAddress[1], - (unsigned)npeMacAddr.macAddress[2], -@@ -2707,8 +2709,8 @@ static int do_dev_ioctl(struct net_devic - down (miiAccessMutex); /* lock the MII register access mutex */ - if ((res = ixEthAccMiiReadRtn (data->phy_id, data->reg_num, &data->val_out))) - { -- P_ERROR("Error reading MII reg %d on phy %d\n", -- data->reg_num, data->phy_id); -+ P_ERROR("%s: Error reading MII reg %d on phy %d\n", -+ dev->name, data->reg_num, data->phy_id); - res = -1; - } - up (miiAccessMutex); /* release the MII register access mutex */ -@@ -2720,8 +2722,8 @@ static int do_dev_ioctl(struct net_devic - down (miiAccessMutex); /* lock the MII register access mutex */ - if ((res = ixEthAccMiiWriteRtn (data->phy_id, data->reg_num, data->val_in))) - { -- P_ERROR("Error writing MII reg %d on phy %d\n", -- data->reg_num, data->phy_id); -+ P_ERROR("%s: Error writing MII reg %d on phy %d\n", -+ dev->name, data->reg_num, data->phy_id); - res = -1; - } - up (miiAccessMutex); /* release the MII register access mutex */ -@@ -3049,7 +3051,8 @@ static int set_mac_address(struct net_de - /* Set MAC addr in h/w (ethAcc checks for MAC address to be valid) */ - if ((res = ixEthAccPortUnicastMacAddressSet(priv->port_id, &npeMacAddr))) - { -- P_VERBOSE("Failed to set MAC address %2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x for port %d\n", -+ P_VERBOSE("%s: Failed to set MAC address %2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x for port %d\n", -+ dev->name, - (unsigned)npeMacAddr.macAddress[0], - (unsigned)npeMacAddr.macAddress[1], - (unsigned)npeMacAddr.macAddress[2], -@@ -3267,6 +3270,8 @@ static int __devinit dev_eth_probe(struc - kmalloc(sizeof(struct semaphore), GFP_KERNEL); - if (!priv->maintenanceCheckThreadComplete) - { -+ P_ERROR("%s: Failed to allocate maintenance semaphore %d\n", -+ ndev->name, priv->port_id); - goto error; - } - priv->lock = SPIN_LOCK_UNLOCKED; -@@ -3360,7 +3365,11 @@ static int __devinit dev_eth_probe(struc - - #if IS_KERNEL26 - if (register_netdev(ndev)) -+ { -+ P_ERROR("%s: Failed to register netdevice %d\n", -+ ndev->name, priv->port_id); - goto error; -+ } - #else - found_devices++; - #endif /* IS_KERNEL26 */ -@@ -3370,6 +3379,8 @@ static int __devinit dev_eth_probe(struc - /* register EthAcc callbacks for this port */ - if (dev_rxtxcallback_register(portId, (UINT32)ndev)) - { -+ P_ERROR("%s: Failed to register callback %d\n", -+ ndev->name, priv->port_id); - goto error; - } - -@@ -3393,6 +3404,7 @@ static int __devinit dev_eth_probe(struc - - /* Error handling: enter here whenever error detected */ - error: -+ P_ERROR("%s: dev_eth_probe fails\n", ndev->name); - TRACE; - - #ifdef CONFIG_IXP400_ETH_QDISC_ENABLED -@@ -3465,21 +3477,21 @@ static int __devexit dev_eth_remove(int - { - if (IX_SUCCESS != ixNpeDlNpeStopAndReset(IX_NPEDL_NPEID_NPEA)) - { -- P_NOTICE("Error Halting NPE for Ethernet port %d!\n", portId); -+ P_NOTICE("%s: Error Halting NPE for Ethernet port %d!\n", ndev->name, portId); - } - } - if (default_npeImageId[portId] == IX_ETH_NPE_B_IMAGE_ID) - { - if (IX_SUCCESS != ixNpeDlNpeStopAndReset(IX_NPEDL_NPEID_NPEB)) - { -- P_NOTICE("Error Halting NPE for Ethernet port %d!\n", portId); -+ P_NOTICE("%s: Error Halting NPE for Ethernet port %d!\n", ndev->name, portId); - } - } - if (default_npeImageId[portId] == IX_ETH_NPE_C_IMAGE_ID) - { - if (IX_SUCCESS != ixNpeDlNpeStopAndReset(IX_NPEDL_NPEID_NPEC)) - { -- P_NOTICE("Error Halting NPE for Ethernet port %d!\n", portId); -+ P_NOTICE("%s: Error Halting NPE for Ethernet port %d!\n", ndev->name, portId); - } - } - -@@ -3528,6 +3540,9 @@ static int __init ixp400_eth_init(void) - TRACE; - - P_INFO("Initializing IXP400 NPE Ethernet driver software v. " MOD_VERSION " \n"); -+#ifdef IX_OSAL_ENSURE_ON -+ ixOsalLogLevelSet(IX_OSAL_LOG_LVL_ALL); -+#endif - - TRACE; - diff --git a/recipes/ixp425-eth/ixp400-eth-1.5/device-name.patch b/recipes/ixp425-eth/ixp400-eth-1.5/device-name.patch deleted file mode 100644 index d8bbc97b8c..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5/device-name.patch +++ /dev/null @@ -1,47 +0,0 @@ - register the ethernet devices as ethX - - ixp400_eth.c | 41 +++++++++++++++++++---------------------- - 1 file changed, 19 insertions(+), 22 deletions(-) - ---- ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -@@ -160,9 +160,6 @@ MODULE_PARM_DESC(phy_reset, "If non-zero - MODULE_PARM(dev_max_count, "i"); - MODULE_PARM_DESC(dev_max_count, "Number of devices to initialize"); - --/* devices will be called ixp0 and ixp1 */ --#define DEVICE_NAME "ixp" -- - /* boolean values for PHY link speed, duplex, and autonegotiation */ - #define PHY_SPEED_10 0 - #define PHY_SPEED_100 1 -@@ -1570,7 +1568,7 @@ static int dev_pmu_timer_setup(void) - if (request_irq(IX_OSAL_IXP400_XSCALE_PMU_IRQ_LVL, - dev_pmu_timer_os_isr, - SA_SHIRQ, -- DEVICE_NAME, -+ MODULE_NAME, - (void *)IRQ_ANY_PARAMETER)) - { - P_ERROR("Failed to reassign irq to PMU timer interrupt!\n"); -@@ -3009,8 +3008,8 @@ static int phy_init(void) - if (port_id == IX_ETH_PORT_2) npe_id = "C"; - if (port_id == IX_ETH_PORT_3) npe_id = "A"; - -- P_INFO("%s%d is using NPE%s and the PHY at address %d\n", -- DEVICE_NAME, dev_count, npe_id, phyAddresses[port_id]); -+ P_INFO("ethernet %d using NPE%s and the PHY at address %d\n", -+ dev_count, npe_id, phyAddresses[port_id]); - - /* Set the MAC to the same duplex mode as the phy */ - ixEthAccPortDuplexModeSet(port_id, -@@ -3215,9 +3215,6 @@ static int __devinit dev_eth_probe(struc - /* set the private port ID */ - priv->port_id = portId; - -- /* set device name */ -- sprintf(ndev->name, DEVICE_NAME"%d", priv->port_id); -- - TRACE; - - /* initialize RX pool */ diff --git a/recipes/ixp425-eth/ixp400-eth-1.5/int-random.patch b/recipes/ixp425-eth/ixp400-eth-1.5/int-random.patch deleted file mode 100644 index fede9daf90..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5/int-random.patch +++ /dev/null @@ -1,16 +0,0 @@ -use the ethernet device interrupts to gather entropy - - ixp400_eth.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -@@ -2864,7 +2864,7 @@ static int qmgr_init(void) - - if (request_irq(IX_OSAL_IXP400_QM1_IRQ_LVL, - dev_qmgr_os_isr, -- SA_SHIRQ, -+ SA_SHIRQ | SA_SAMPLE_RANDOM, - MODULE_NAME, - (void *)IRQ_ANY_PARAMETER)) - { diff --git a/recipes/ixp425-eth/ixp400-eth-1.5/le.patch b/recipes/ixp425-eth/ixp400-eth-1.5/le.patch deleted file mode 100644 index 3d569015e6..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5/le.patch +++ /dev/null @@ -1,41 +0,0 @@ -little endian support - - ixp400_eth.c | 20 ++++++++++++++++++++ - 1 file changed, 20 insertions(+) - ---- ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -@@ -2040,6 +2040,16 @@ static void rx_cb(UINT32 callbackTag, IX - skb->tail = skb->data + len; - skb->len = len; - -+#ifndef __ARMEB__ -+ { -+ /* Byte swap all words containing data from the buffer. */ -+ unsigned long *p = (unsigned long*)((unsigned)skb->data & ~0x3); -+ unsigned long *e = (unsigned long*)(((unsigned)skb->data + skb->len + 3) & ~0x3); -+ while (p < e) -+ *p = ntohl(*p), ++p; -+ } -+#endif -+ - #ifdef DEBUG_DUMP - skb_dump("rx", skb); - #endif -@@ -2431,6 +2441,16 @@ static int dev_hard_start_xmit(struct sk - return 0; - } - -+#ifndef __ARMEB__ -+ { -+ /* Byte swap all words containing data from the buffer. */ -+ unsigned long *p = (unsigned long*)((unsigned)skb->data & ~0x3); -+ unsigned long *e = (unsigned long*)(((unsigned)skb->data + skb->len + 3) & ~0x3); -+ while (p < e) -+ *p = ntohl(*p), ++p; -+ } -+#endif -+ - #ifdef DEBUG_DUMP - skb_dump("tx", skb); - #endif diff --git a/recipes/ixp425-eth/ixp400-eth-1.5/mac-address.patch b/recipes/ixp425-eth/ixp400-eth-1.5/mac-address.patch deleted file mode 100644 index e23eaf5f2b..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5/mac-address.patch +++ /dev/null @@ -1,123 +0,0 @@ -Patch to use maclist - get the MAC to use from the board level -MAC repository based on the device portId. - -Signed-off-by: John Bowler <jbowler@acm.org> - ---- ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -@@ -23,10 +23,10 @@ - * This driver is written and optimized for Intel Xscale technology. - * - * SETUP NOTES: -- * By default, this driver uses predefined MAC addresses. -- * These are set in global var 'default_mac_addr' in this file. -- * If required, these can be changed at run-time using -- * the 'ifconfig' tool. -+ * By default, this driver uses MAC addresses from maclist, if -+ * these are not available the kernel api to randomly generate -+ * a locally assigned MAC address is used. The MAC can be -+ * overridden with ifconfig if absolutely necessary. - * - * Example - to set ixp0 MAC address to 00:02:B3:66:88:AA, - * run ifconfig with the following arguments: -@@ -64,6 +64,7 @@ - #include <linux/sysctl.h> - #include <linux/unistd.h> - #include <linux/version.h> -+#include <net/maclist.h> - - #if KERNEL_VERSION(2,6,0) <= LINUX_VERSION_CODE - #include <linux/workqueue.h> -@@ -130,6 +131,8 @@ static int dev_max_count = 1; /* only NP - static int dev_max_count = 2; /* only NPEB and NPEC */ - #elif defined (CONFIG_ARCH_IXDP465) || defined(CONFIG_MACH_IXDP465) - static int dev_max_count = 3; /* all NPEs are used */ -+#else -+static int dev_max_count = -1;/* use maclist_count */ - #endif - - #ifndef CONFIG_IXP400_NAPI -@@ -614,21 +617,6 @@ static phy_cfg_t default_phy_cfg[] = - #endif - }; - --/* Default MAC addresses for EthAcc Ports 1 and 2 (using Intel MAC prefix) -- * Default is -- * IX_ETH_PORT_1 -> MAC 00:02:b3:01:01:01 -- * IX_ETH_PORT_2 -> MAC 00:02:b3:02:02:02 -- * IX_ETH_PORT_3 -> MAC 00:02:b3:03:03:03 --*/ --static IxEthAccMacAddr default_mac_addr[] = --{ -- {{0x00, 0x02, 0xB3, 0x01, 0x01, 0x01}} /* EthAcc Port 0 */ -- ,{{0x00, 0x02, 0xB3, 0x02, 0x02, 0x02}} /* EthAcc Port 1 */ --#if defined (CONFIG_ARCH_IXDP465) || defined(CONFIG_MACH_IXDP465) -- ,{{0x00, 0x02, 0xB3, 0x03, 0x03, 0x03}} /* EthAcc Port 2 */ --#endif --}; -- - /* Default mapping of NpeImageIds for EthAcc Ports - * Default is - * IX_ETH_PORT_1 -> IX_ETH_NPE_B -@@ -3325,28 +3313,10 @@ static int __devinit dev_eth_probe(struc - - /* Defines the unicast MAC address - * -- * Here is a good place to read a board-specific MAC address -- * from a non-volatile memory, e.g. an external eeprom. -- * -- * This memcpy uses a default MAC address from this -- * source code. -- * -- * This can be overriden later by the (optional) command -- * -- * ifconfig ixp0 ether 0002b3010101 -- * -+ * The code reads from the maclist API. - */ -- -- memcpy(ndev->dev_addr, -- &default_mac_addr[priv->port_id].macAddress, -- IX_IEEE803_MAC_ADDRESS_SIZE); -- -- /* possibly remove this test and the message when a valid MAC address -- * is not hardcoded in the driver source code. -- */ -- if (is_valid_ether_addr(ndev->dev_addr)) -- { -- P_WARN("Use default MAC address %2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x for port %d\n", -+ maclist_read((u8(*)[6])&ndev->dev_addr, priv->port_id); -+ P_INFO("Use MAC address %2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x for port %d\n", - (unsigned)ndev->dev_addr[0], - (unsigned)ndev->dev_addr[1], - (unsigned)ndev->dev_addr[2], -@@ -3354,7 +3324,6 @@ static int __devinit dev_eth_probe(struc - (unsigned)ndev->dev_addr[4], - (unsigned)ndev->dev_addr[5], - priv->port_id); -- } - - /* Set/update the internal packet size - * This can be overriden later by the command -@@ -3562,12 +3531,15 @@ static int __init ixp400_eth_init(void) - - TRACE; - -- /* check module parameter range */ -- if (dev_max_count == 0 || dev_max_count > IX_ETH_ACC_NUMBER_OF_PORTS) -- { -- P_ERROR("Number of ports supported is dev_max_count <= %d\n", IX_ETH_ACC_NUMBER_OF_PORTS); -- return -1; -- } -+ /* fix dev_max_count to maclist_count - the actual number of -+ * available MACs -+ */ -+ if (dev_max_count <= 0 || (dev_max_count > maclist_count() && maclist_count() > 0)) -+ dev_max_count = maclist_count(); -+ if (dev_max_count <= 0) -+ dev_max_count = 1; -+ else if (dev_max_count > IX_ETH_ACC_NUMBER_OF_PORTS) -+ dev_max_count = IX_ETH_ACC_NUMBER_OF_PORTS; - - TRACE; - diff --git a/recipes/ixp425-eth/ixp400-eth-1.5/modprobe.conf b/recipes/ixp425-eth/ixp400-eth-1.5/modprobe.conf deleted file mode 100644 index f08b9a404c..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5/modprobe.conf +++ /dev/null @@ -1,4 +0,0 @@ -# Add an alias for eth0 to ixp400_eth to cause the S40networking -# init script to load the ixp400_eth driver on the first boot -alias eth0 ixp400_eth -options ixp400_eth dev_max_count=1
\ No newline at end of file diff --git a/recipes/ixp425-eth/ixp400-eth-1.5/module-param.patch b/recipes/ixp425-eth/ixp400-eth-1.5/module-param.patch deleted file mode 100644 index c54c45d716..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5/module-param.patch +++ /dev/null @@ -1,62 +0,0 @@ - ixp400_eth.c | 32 ++++++++++++++++++++++++++++++++ - 1 files changed, 32 insertions(+) - -Index: ixp400_eth/ixp400_eth.c -=================================================================== ---- ixp400_eth.orig/ixp400_eth.c -+++ ixp400_eth/ixp400_eth.c -@@ -142,22 +142,54 @@ - - static int datapath_poll = 1; /* default : rx/tx polling, not interrupt driven*/ - -+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,16) - MODULE_PARM(ixp400_netdev_max_backlog, "i"); -+#else -+module_param(ixp400_netdev_max_backlog, int, 0644); -+#endif - MODULE_PARM_DESC(ixp400_netdev_max_backlog, "Should be set to the value of /proc/sys/net/core/netdev_max_backlog (perf affecting)"); -+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,16) - MODULE_PARM(datapath_poll, "i"); -+#else -+module_param(datapath_poll, int, 0644); -+#endif - MODULE_PARM_DESC(datapath_poll, "If non-zero, use polling method for datapath instead of interrupts"); - #endif /* CONFIG_IXP400_NAPI */ -+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,16) - MODULE_PARM(npe_learning, "i"); -+#else -+module_param(npe_learning, int, 0644); -+#endif - MODULE_PARM_DESC(npe_learning, "If non-zero, NPE MAC Address Learning & Filtering feature will be enabled"); -+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,16) - MODULE_PARM(log_level, "i"); -+#else -+module_param(log_level, int, 0644); -+#endif - MODULE_PARM_DESC(log_level, "Set log level: 0 - None, 1 - Verbose, 2 - Debug"); -+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,16) - MODULE_PARM(no_ixp400_sw_init, "i"); -+#else -+module_param(no_ixp400_sw_init, int, 0644); -+#endif - MODULE_PARM_DESC(no_ixp400_sw_init, "If non-zero, do not initialise Intel IXP400 Software Release core components"); -+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,16) - MODULE_PARM(no_phy_scan, "i"); -+#else -+module_param(no_phy_scan, int, 0644); -+#endif - MODULE_PARM_DESC(no_phy_scan, "If non-zero, use hard-coded phy addresses"); -+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,16) - MODULE_PARM(phy_reset, "i"); -+#else -+module_param(phy_reset, int, 0644); -+#endif - MODULE_PARM_DESC(phy_reset, "If non-zero, reset the phys"); -+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,16) - MODULE_PARM(dev_max_count, "i"); -+#else -+module_param(dev_max_count, int, 0644); -+#endif - MODULE_PARM_DESC(dev_max_count, "Number of devices to initialize"); - - /* boolean values for PHY link speed, duplex, and autonegotiation */ diff --git a/recipes/ixp425-eth/ixp400-eth-1.5/netdev_max_backlog.patch b/recipes/ixp425-eth/ixp400-eth-1.5/netdev_max_backlog.patch deleted file mode 100644 index 6891b6b4a9..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5/netdev_max_backlog.patch +++ /dev/null @@ -1,54 +0,0 @@ ---- ixp400_eth/ixp400_eth.c~ 2006-01-09 01:03:11.000000000 +1030 -+++ ixp400_eth/ixp400_eth.c 2006-01-09 01:05:27.000000000 +1030 -@@ -139,12 +139,12 @@ - * skbuf to push into the linux stack, and avoid the performance degradations - * during overflow. - */ --static int netdev_max_backlog = 290; -+static int ixp400_netdev_max_backlog = 290; - - static int datapath_poll = 1; /* default : rx/tx polling, not interrupt driven*/ - --MODULE_PARM(netdev_max_backlog, "i"); --MODULE_PARM_DESC(netdev_max_backlog, "Should be set to the value of /proc/sys/net/core/netdev_max_backlog (perf affecting)"); -+MODULE_PARM(ixp400_netdev_max_backlog, "i"); -+MODULE_PARM_DESC(ixp400_netdev_max_backlog, "Should be set to the value of /proc/sys/net/core/netdev_max_backlog (perf affecting)"); - MODULE_PARM(datapath_poll, "i"); - MODULE_PARM_DESC(datapath_poll, "If non-zero, use polling method for datapath instead of interrupts"); - #endif /* CONFIG_IXP400_NAPI */ -@@ -213,7 +213,7 @@ - * high traffic rates. To measure the maximum throughput between the - * ports of the driver, - * - Modify /proc/sys/net/core/netdev_max_backlog value in the kernel -- * - Adjust netdev_max_backlog=n in the driver's command line -+ * - Adjust ixp400_netdev_max_backlog=n in the driver's command line - * in order to get the best rates depending on the testing tool - * and the OS load. - * -@@ -1997,7 +1997,7 @@ - /* check if the system accepts more traffic and - * against chained mbufs - */ -- if ((qlevel < netdev_max_backlog) -+ if ((qlevel < ixp400_netdev_max_backlog) - && (IX_OSAL_MBUF_NEXT_PKT_IN_CHAIN_PTR(mbuf) == NULL)) - #else - /* check against chained mbufs -@@ -3776,13 +3776,13 @@ - #ifndef CONFIG_IXP400_NAPI - /* set the softirq rx queue thresholds - * (These numbers are based on tuning experiments) -- * maxbacklog = (netdev_max_backlog * 10) / 63; -+ * maxbacklog = (ixp400_netdev_max_backlog * 10) / 63; - */ -- if (netdev_max_backlog == 0) -+ if (ixp400_netdev_max_backlog == 0) - { -- netdev_max_backlog = 290; /* system default */ -+ ixp400_netdev_max_backlog = 290; /* system default */ - } -- netdev_max_backlog /= BACKLOG_TUNE; -+ ixp400_netdev_max_backlog /= BACKLOG_TUNE; - - TRACE; - #endif diff --git a/recipes/ixp425-eth/ixp400-eth-1.5/params.patch b/recipes/ixp425-eth/ixp400-eth-1.5/params.patch deleted file mode 100644 index 86011deaaa..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5/params.patch +++ /dev/null @@ -1,75 +0,0 @@ -*** ixp/ixp400_eth.c.orig Wed Jun 7 21:31:59 2006 ---- ixp/ixp400_eth.c Fri Jun 9 14:55:18 2006 -*************** -*** 112,135 **** - #define MOD_VERSION "1.5" - - /* Module parameters */ -! static int npe_learning = 1; /* default : NPE learning & filtering enable */ -! static int log_level = 0; /* default : no log */ -! static int no_ixp400_sw_init = 0; /* default : init core components of the IXP400 Software */ -! static int no_phy_scan = 0; /* default : do phy discovery */ -! static int phy_reset = 0; /* default : mo phy reset */ - - /* maximum number of ports supported by this driver ixp0, ixp1 .... - * The default is to configure all ports defined in EthAcc component - */ - #ifdef CONFIG_IXP400_ETH_NPEC_ONLY -! static int dev_max_count = 1; /* only NPEC is used */ -! #elif defined (CONFIG_IXP400_ETH_NPEB_ONLY) -! static int dev_max_count = 1; /* only NPEB is used */ - #elif defined (CONFIG_ARCH_IXDP425) || defined(CONFIG_ARCH_IXDPG425)\ - || defined (CONFIG_ARCH_ADI_COYOTE) -! static int dev_max_count = 2; /* only NPEB and NPEC */ - #elif defined (CONFIG_ARCH_IXDP465) || defined(CONFIG_MACH_IXDP465) -! static int dev_max_count = 3; /* all NPEs are used */ - #endif - - #ifndef CONFIG_IXP400_NAPI ---- 112,136 ---- - #define MOD_VERSION "1.5" - - /* Module parameters */ -! /* gcc 4.1.1+kernel2.6.16 do not like it if these are static! */ -! int npe_learning = 1; /* default : NPE learning & filtering enable */ -! int log_level = 0; /* default : no log */ -! int no_ixp400_sw_init = 0; /* default : init core components of the IXP400 Software */ -! int no_phy_scan = 0; /* default : do phy discovery */ -! int phy_reset = 0; /* default : mo phy reset */ - - /* maximum number of ports supported by this driver ixp0, ixp1 .... - * The default is to configure all ports defined in EthAcc component - */ - #ifdef CONFIG_IXP400_ETH_NPEC_ONLY -! int dev_max_count = 1; /* only NPEC is used */ -! #elif defined (CONFIG_IXP400_ETH_NPEB_ONLY) -! int dev_max_count = 1; /* only NPEB is used */ - #elif defined (CONFIG_ARCH_IXDP425) || defined(CONFIG_ARCH_IXDPG425)\ - || defined (CONFIG_ARCH_ADI_COYOTE) -! int dev_max_count = 2; /* only NPEB and NPEC */ - #elif defined (CONFIG_ARCH_IXDP465) || defined(CONFIG_MACH_IXDP465) -! int dev_max_count = 3; /* all NPEs are used */ - #endif - - #ifndef CONFIG_IXP400_NAPI -*************** -*** 138,146 **** - * skbuf to push into the linux stack, and avoid the performance degradations - * during overflow. - */ -! static int ixp400_netdev_max_backlog = 290; - -! static int datapath_poll = 1; /* default : rx/tx polling, not interrupt driven*/ - - MODULE_PARM(ixp400_netdev_max_backlog, "i"); - MODULE_PARM_DESC(ixp400_netdev_max_backlog, "Should be set to the value of /proc/sys/net/core/netdev_max_backlog (perf affecting)"); ---- 139,147 ---- - * skbuf to push into the linux stack, and avoid the performance degradations - * during overflow. - */ -! int ixp400_netdev_max_backlog = 290; - -! int datapath_poll = 1; /* default : rx/tx polling, not interrupt driven*/ - - MODULE_PARM(ixp400_netdev_max_backlog, "i"); - MODULE_PARM_DESC(ixp400_netdev_max_backlog, "Should be set to the value of /proc/sys/net/core/netdev_max_backlog (perf affecting)"); diff --git a/recipes/ixp425-eth/ixp400-eth-1.5/poll-controller.patch b/recipes/ixp425-eth/ixp400-eth-1.5/poll-controller.patch deleted file mode 100644 index 64fb310ee5..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5/poll-controller.patch +++ /dev/null @@ -1,50 +0,0 @@ -poll controller support - - ixp400_eth.c | 22 ++++++++++++++++++++++ - 1 file changed, 22 insertions(+) - ---- ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -@@ -348,6 +348,12 @@ static int dev_pmu_timer_init(void); - extern void - ixEthTxFrameDoneQMCallback(IxQMgrQId qId, IxQMgrCallbackId callbackId); - -+#ifdef CONFIG_NET_POLL_CONTROLLER -+/* poll controller (needed for netconsole et al) */ -+static void -+ixp425eth_poll_controller(struct net_device *dev); -+#endif -+ - /* Private device data */ - typedef struct { - spinlock_t lock; /* multicast management lock */ -@@ -3060,6 +3066,19 @@ static int set_mac_address(struct net_de - return 0; - } - -+#ifdef CONFIG_NET_POLL_CONTROLLER -+/* -+ * Polling receive - used by netconsole and other diagnostic tools -+ * to allow network i/o with interrupts disabled. -+ * (stolen from 8139too.c by siddy) -+ */ -+static void ixp425eth_poll_controller(struct net_device *dev) -+{ -+ disable_irq(dev->irq); -+ dev_qmgr_os_isr(dev->irq, dev, NULL); -+ enable_irq(dev->irq); -+} -+#endif - - /* - * TX QDISC -@@ -3270,6 +3289,9 @@ static int __devinit dev_eth_probe(struc - ndev->get_stats = dev_get_stats; - ndev->set_multicast_list = dev_set_multicast_list; - ndev->flags |= IFF_MULTICAST; -+#ifdef CONFIG_NET_POLL_CONTROLLER -+ ndev->poll_controller = ixp425eth_poll_controller; -+#endif - - ndev->set_mac_address = set_mac_address; - diff --git a/recipes/ixp425-eth/ixp400-eth-1.5/stop-on-rmmod.patch b/recipes/ixp425-eth/ixp400-eth-1.5/stop-on-rmmod.patch deleted file mode 100644 index 2ddc98938a..0000000000 --- a/recipes/ixp425-eth/ixp400-eth-1.5/stop-on-rmmod.patch +++ /dev/null @@ -1,29 +0,0 @@ -devices must be explicitely stopped when -the driver is going do be removed, otherwise -it will simply hang. - - ixp400_eth.c | 13 ++++++++++--- - 1 file changed, 10 insertions(+), 3 deletions(-) - ---- ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp400-eth/ixp400_eth.c 1970-01-01 00:00:00.000000000 +0000 -@@ -3800,9 +3800,16 @@ void __exit ixp400_eth_exit(void) - - TRACE; - -- /* We can only get here when the module use count is 0, -- * so there's no need to stop devices. -- */ -+ /* stop devices */ -+ -+#if IS_KERNEL26 -+ for (dev_count = 0; -+ dev_count < dev_max_count; /* module parameter */ -+ dev_count++) -+ { -+ do_dev_stop(platform_get_drvdata(&ixp400_eth_devices[dev_count])); -+ } -+#endif - - if (no_ixp400_sw_init == 0) /* module parameter */ - { diff --git a/recipes/ixp425-eth/ixp400-eth_1.4.bb b/recipes/ixp425-eth/ixp400-eth_1.4.bb deleted file mode 100644 index 6b1ff0c8d2..0000000000 --- a/recipes/ixp425-eth/ixp400-eth_1.4.bb +++ /dev/null @@ -1,54 +0,0 @@ -# This is the Intel GPL IXP4XX ethernet driver (Linux) plus patches -# to make it work on 2.6 kernels. -# -LICENSE = "GPL" -SRC_URI = "ftp://aiedownload.intel.com/df-support/8500/eng/GPL_ixp400LinuxEthernetDriverPatch-1_4.zip" -SRC_URI += "file://ixp400-le-be.patch;patch=1" -SRC_URI += "file://makefile.patch;patch=1" -SRC_URI += "file://2.6.13.patch;patch=1" -SRC_URI += "file://2.6.14.patch;patch=1" -SRC_URI += "file://ixp400_pollcontroller.patch;patch=1" -SRC_URI += "file://2.6.14-mm.patch;patch=1" -SRC_URI += "file://modprobe.conf" -PR = "r9" - -DEPENDS = "ixp4xx-csr" -RDEPENDS = "ixp4xx-csr" - -S = "${WORKDIR}" - -COMPATIBLE_HOST = "^arm.*-linux.*" -COMPATIBLE_MACHINE = "(nslu2|ixp4xx)" - -PROVIDES = "virtual/ixp-eth" -RPROVIDES = "ixp-eth" - -inherit module - -# This is a somewhat arbitrary choice: -OSAL_DIR = "${STAGING_KERNEL_DIR}/ixp_osal" - -IX_TARGET = "linux${SITEINFO_ENDIANESS}" - -EXTRA_OEMAKE = "'CC=${KERNEL_CC}' \ - 'LD=${KERNEL_LD}' \ - 'PWD=${S}' \ - 'IX_TARGET=${IX_TARGET}' \ - 'IXP4XX_CSR_DIR=${STAGING_INCDIR}/linux/ixp4xx-csr' \ - 'OSAL_DIR=${OSAL_DIR}' \ - 'IX_CFLAGS=-DIX_UTOPIAMODE=0 -DIX_MPHYSINGLEPORT=1 -DCONFIG_IXP400_ETH_NPEB_ONLY=1' \ - 'LINUX_SRC=${STAGING_KERNEL_DIR}' \ - 'LINUX_CROSS_COMPILE=${HOST_PREFIX}' \ - " - -do_compile () { - unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS - oe_runmake -} - -do_install () { - install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net - install -m 0644 ixp400_eth.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net/ - install -d ${D}${sysconfdir}/modprobe.d - install -m 0644 modprobe.conf ${D}${sysconfdir}/modprobe.d/eth0 -} diff --git a/recipes/ixp425-eth/ixp400-eth_1.5.1.bb b/recipes/ixp425-eth/ixp400-eth_1.5.1.bb deleted file mode 100644 index 2fa04fc672..0000000000 --- a/recipes/ixp425-eth/ixp400-eth_1.5.1.bb +++ /dev/null @@ -1,87 +0,0 @@ -DEFAULT_PREFERENCE = "-1" -# This is the Intel GPL IXP4XX ethernet driver (Linux) plus patches -# to make it work on 2.6 kernels. -# -HOMEPAGE = "http://www.intel.com/design/network/products/npfamily/ixp420.htm" -LICENSE = "GPL" -PR = "r0" - -DEPENDS = "ixp-osal" -DEPENDS = "ixp4xx-csr" -RDEPENDS = "ixp4xx-csr" - -SRC_URI = "http://downloadmirror.intel.com/df-support/10159/eng/GPL_ixp400LinuxEthernetDriverPatch-1_5_1.zip" -SRC_URI += "file://2.6.14.patch;patch=1" -SRC_URI += "file://2.6.15.patch;patch=1" -SRC_URI += "file://device-name.patch;patch=1" -SRC_URI += "file://poll-controller.patch;patch=1" -SRC_URI += "file://le.patch;patch=1" -SRC_URI += "file://int-random.patch;patch=1" -SRC_URI += "file://stop-on-rmmod.patch;patch=1" -SRC_URI += "file://continue-if-qmgr-init-fails.patch;patch=1" -SRC_URI += "file://netdev_max_backlog.patch;patch=1" -SRC_URI += "file://debug.patch;patch=1" -SRC_URI += "file://Makefile.patch;patch=1" -SRC_URI += "file://params.patch;patch=1" -SRC_URI += "file://module-param.patch;patch=1" -SRC_URI += "file://modprobe.conf" - -S = "${WORKDIR}" - -COMPATIBLE_HOST = "^arm.*-linux.*" -COMPATIBLE_MACHINE = "(nslu2|ixp4xx)" - -PROVIDES = "virtual/ixp-eth" -RPROVIDES = "ixp-eth" - -inherit module - -# This is a somewhat arbitrary choice: -OSAL_DIR = "${STAGING_KERNEL_DIR}/ixp_osal" - -IX_TARGET = "linux${SITEINFO_ENDIANESS}" -IX_ENSURE = "" -#IX_ENSURE = "-DIX_OSAL_ENSURE_ON=1" -# The following controls the name of the ethernet devices which get -# registered, the default (if this is empty) is ixp0, ixp1, otherwise -# it is eth0, eth1 -DEVICE_NAME = "-DIX_DEVICE_NAME_ETH=1" - -IXP4XX_CSR_SYMVERS = "${STAGING_KERNEL_DIR}/ixp400-csr.symvers" - -EXTRA_OEMAKE = "'PWD=${S}' \ - 'IX_TARGET=${IX_TARGET}' \ - 'IXP4XX_CSR_DIR=${STAGING_INCDIR}/linux/ixp4xx-csr' \ - 'IXP4XX_CSR_SYMVERS=${IXP4XX_CSR_SYMVERS}' \ - 'OSAL_DIR=${OSAL_DIR}' \ - 'IX_CFLAGS=-DIX_UTOPIAMODE=0 -DIX_MPHYSINGLEPORT=1 ${IX_ENSURE} ${DEVICE_NAME} -DIX_COMPONENT_NAME=-1' \ - 'LINUX_SRC=${STAGING_KERNEL_DIR}' \ - 'LINUX_CROSS_COMPILE=${HOST_PREFIX}' \ - " - -# This is to check for unresolved symbol errors and ensure the build -# fails, an error here probably means too much as been deconfigured -# out of ixp4xx-csr. -KCONFIG_FILE = "${STAGING_KERNEL_DIR}/kernel-config" -do_compile_append () { - . '${KCONFIG_FILE}' - echo "MODPOST: checking that all symbols are resolved" - if '${STAGING_KERNEL_DIR}/scripts/mod/modpost' \ - ${CONFIG_MODVERSIONS:+-m} \ - ${CONFIG_MODULE_SRCVERSION_ALL:+-a} \ - -i '${STAGING_KERNEL_DIR}/ixp400-csr.symvers' \ - ixp400_eth.o 2>&1 | egrep . - then - echo "MODPOST errors - see above" - return 1 - else - return 0 - fi -} - -do_install () { - install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net - install -m 0644 ixp400_eth.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net/ - install -d ${D}${sysconfdir}/modprobe.d - install -m 0644 modprobe.conf ${D}${sysconfdir}/modprobe.d/eth0 -} diff --git a/recipes/ixp425-eth/ixp400-eth_1.5.bb b/recipes/ixp425-eth/ixp400-eth_1.5.bb deleted file mode 100644 index 5e25deb1d4..0000000000 --- a/recipes/ixp425-eth/ixp400-eth_1.5.bb +++ /dev/null @@ -1,86 +0,0 @@ -# This is the Intel GPL IXP4XX ethernet driver (Linux) plus patches -# to make it work on 2.6 kernels. -# -HOMEPAGE = "http://www.intel.com/design/network/products/npfamily/ixp420.htm" -LICENSE = "GPL" -PR = "r15" - -DEPENDS = "ixp-osal" -DEPENDS = "ixp4xx-csr" -RDEPENDS = "ixp4xx-csr" - -SRC_URI = "ftp://aiedownload.intel.com/df-support/9519/eng/GPL_ixp400LinuxEthernetDriverPatch-1_5.zip" -SRC_URI += "file://2.6.14.patch;patch=1" -SRC_URI += "file://2.6.15.patch;patch=1" -SRC_URI += "file://device-name.patch;patch=1" -SRC_URI += "file://poll-controller.patch;patch=1" -SRC_URI += "file://le.patch;patch=1" -SRC_URI += "file://int-random.patch;patch=1" -SRC_URI += "file://stop-on-rmmod.patch;patch=1" -SRC_URI += "file://continue-if-qmgr-init-fails.patch;patch=1" -SRC_URI += "file://netdev_max_backlog.patch;patch=1" -SRC_URI += "file://debug.patch;patch=1" -SRC_URI += "file://Makefile.patch;patch=1" -SRC_URI += "file://params.patch;patch=1" -SRC_URI += "file://module-param.patch;patch=1" -SRC_URI += "file://modprobe.conf" - -S = "${WORKDIR}" - -COMPATIBLE_HOST = "^arm.*-linux.*" -COMPATIBLE_MACHINE = "(nslu2|ixp4xx)" - -PROVIDES = "virtual/ixp-eth" -RPROVIDES = "ixp-eth" - -inherit module - -# This is a somewhat arbitrary choice: -OSAL_DIR = "${STAGING_KERNEL_DIR}/ixp_osal" - -IX_TARGET = "linux${SITEINFO_ENDIANESS}" -IX_ENSURE = "" -#IX_ENSURE = "-DIX_OSAL_ENSURE_ON=1" -# The following controls the name of the ethernet devices which get -# registered, the default (if this is empty) is ixp0, ixp1, otherwise -# it is eth0, eth1 -DEVICE_NAME = "-DIX_DEVICE_NAME_ETH=1" - -IXP4XX_CSR_SYMVERS = "${STAGING_KERNEL_DIR}/ixp400-csr.symvers" - -EXTRA_OEMAKE = "'PWD=${S}' \ - 'IX_TARGET=${IX_TARGET}' \ - 'IXP4XX_CSR_DIR=${STAGING_INCDIR}/linux/ixp4xx-csr' \ - 'IXP4XX_CSR_SYMVERS=${IXP4XX_CSR_SYMVERS}' \ - 'OSAL_DIR=${OSAL_DIR}' \ - 'IX_CFLAGS=-DIX_UTOPIAMODE=0 -DIX_MPHYSINGLEPORT=1 ${IX_ENSURE} ${DEVICE_NAME} -DIX_COMPONENT_NAME=-1' \ - 'LINUX_SRC=${STAGING_KERNEL_DIR}' \ - 'LINUX_CROSS_COMPILE=${HOST_PREFIX}' \ - " - -# This is to check for unresolved symbol errors and ensure the build -# fails, an error here probably means too much as been deconfigured -# out of ixp4xx-csr. -KCONFIG_FILE = "${STAGING_KERNEL_DIR}/kernel-config" -do_compile_append () { - . '${KCONFIG_FILE}' - echo "MODPOST: checking that all symbols are resolved" - if '${STAGING_KERNEL_DIR}/scripts/mod/modpost' \ - ${CONFIG_MODVERSIONS:+-m} \ - ${CONFIG_MODULE_SRCVERSION_ALL:+-a} \ - -i '${STAGING_KERNEL_DIR}/ixp400-csr.symvers' \ - ixp400_eth.o 2>&1 | egrep . - then - echo "MODPOST errors - see above" - return 1 - else - return 0 - fi -} - -do_install () { - install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net - install -m 0644 ixp400_eth.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net/ - install -d ${D}${sysconfdir}/modprobe.d - install -m 0644 modprobe.conf ${D}${sysconfdir}/modprobe.d/eth0 -} diff --git a/recipes/ixp425-eth/ixp425-eth-1.2/2.6.13.patch b/recipes/ixp425-eth/ixp425-eth-1.2/2.6.13.patch deleted file mode 100644 index e5825740bb..0000000000 --- a/recipes/ixp425-eth/ixp425-eth-1.2/2.6.13.patch +++ /dev/null @@ -1,39 +0,0 @@ ---- ./ixp425_eth.c 2005-10-01 00:45:45.180897520 -0700 -+++ ./ixp425_eth.c 2005-10-01 00:50:45.179775259 -0700 -@@ -797,7 +797,9 @@ - skb->pkt_type = PACKET_HOST; /* Default type */ - skb->ip_summed = 0; - skb->priority = 0; -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13) - skb->security = 0; -+#endif - #ifdef CONFIG_NET_SCHED - skb->tc_index = 0; - #endif -@@ -2564,8 +2566,14 @@ - } - - /* set port MAC addr and update the dev struct if successfull */ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13) - int dev_set_mac_address(struct net_device *dev, struct sockaddr *saddr) - { -+#else -+static int set_mac_address(struct net_device *dev, void *saddrIn) -+{ -+ struct sockaddr *saddr = saddrIn; -+#endif - int res; - priv_data_t *priv = dev->priv; - IxEthAccMacAddr npeMacAddr; -@@ -2700,7 +2708,11 @@ - #ifdef CONFIG_NET_POLL_CONTROLLER - ndev->poll_controller = ixp425eth_poll_controller; - #endif -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,13) - ndev->set_mac_address = dev_set_mac_address; -+#else -+ ndev->set_mac_address = set_mac_address; -+#endif - - TRACE; - diff --git a/recipes/ixp425-eth/ixp425-eth-1.2/2.6.14.patch b/recipes/ixp425-eth/ixp425-eth-1.2/2.6.14.patch deleted file mode 100644 index 57f441c5bc..0000000000 --- a/recipes/ixp425-eth/ixp425-eth-1.2/2.6.14.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- ./ixp425_eth.c 2005-10-01 00:50:45.179775259 -0700 -+++ ./ixp425_eth.c 2005-10-01 00:54:10.976725245 -0700 -@@ -777,7 +777,9 @@ - * before re-using it on the Rx-path - */ - skb->nfmark = 0; -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,14) - skb->nfcache = 0; -+#endif - nf_conntrack_put(skb->nfct); - skb->nfct = NULL; - #ifdef CONFIG_NETFILTER_DEBUG -@@ -1451,7 +1453,11 @@ - skb->len -= header_len; - - /* fill the pkt arrival time (set at the irq callback entry) */ -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,14) - skb->stamp = irq_stamp; -+#else -+ skb_set_timestamp(skb, &irq_stamp); -+#endif - - /* fill the input device field */ - skb->dev = dev; diff --git a/recipes/ixp425-eth/ixp425-eth-1.2/ixp400linuxethernetdriver-1_2-kernel26_hr_20050929.patch b/recipes/ixp425-eth/ixp425-eth-1.2/ixp400linuxethernetdriver-1_2-kernel26_hr_20050929.patch deleted file mode 100644 index e4ef3f96c8..0000000000 --- a/recipes/ixp425-eth/ixp425-eth-1.2/ixp400linuxethernetdriver-1_2-kernel26_hr_20050929.patch +++ /dev/null @@ -1,1468 +0,0 @@ -diff -Naur ixp425_eth.orig/Makefile ixp425_eth/Makefile ---- ixp425_eth.orig/Makefile 1970-01-01 01:00:00.000000000 +0100 -+++ ixp425_eth/Makefile 2005-09-28 19:03:50.000000000 +0200 -@@ -0,0 +1,36 @@ -+obj-m := ixp425_eth.o -+ -+PWD := $(shell pwd) -+ -+LINUX_SRC := $($(IX_TARGET)_KERNEL_DIR) -+ -+OSAL_DIR := $(IX_XSCALE_SW)/../ixp_osal -+CFLAGS_ixp425_eth.o = -DWall \ -+ -I$(IX_XSCALE_SW)/src/include \ -+ -I$(OSAL_DIR)/ \ -+ -I$(OSAL_DIR)/os/linux/include/ \ -+ -I$(OSAL_DIR)/os/linux/include/modules/ \ -+ -I$(OSAL_DIR)/os/linux/include/modules/ioMem/ \ -+ -I$(OSAL_DIR)/os/linux/include/modules/core/ \ -+ -I$(OSAL_DIR)/os/linux/include/modules/bufferMgt/ \ -+ -I$(OSAL_DIR)/os/linux/include/core/ \ -+ -I$(OSAL_DIR)/os/linux/include/platforms/ \ -+ -I$(OSAL_DIR)/os/linux/include/platforms/ixp400/ \ -+ -I$(OSAL_DIR)/os/linux/include/core/ \ -+ -I$(OSAL_DIR)/include/ \ -+ -I$(OSAL_DIR)/include/modules/ \ -+ -I$(OSAL_DIR)/include/modules/bufferMgt/ \ -+ -I$(OSAL_DIR)/include/modules/ioMem/ \ -+ -I$(OSAL_DIR)/include/modules/core/ \ -+ -I$(OSAL_DIR)/include/platforms/ \ -+ -I$(OSAL_DIR)/include/platforms/ixp400/ \ -+ -+# -DDEBUG -+ -+# -DDEBUG_DUMP -+ -+default: -+ $(MAKE) ARCH=arm CROSS_COMPILE=$(LINUX_CROSS_COMPILE) V=1 -C $(LINUX_SRC) SUBDIRS=$(PWD) modules -+ -+clean: -+ rm -f ixp425_eth.ko -diff -Naur ixp425_eth.orig/Readme-Kernel-2_6-Patch.txt ixp425_eth/Readme-Kernel-2_6-Patch.txt ---- ixp425_eth.orig/Readme-Kernel-2_6-Patch.txt 1970-01-01 01:00:00.000000000 +0100 -+++ ixp425_eth/Readme-Kernel-2_6-Patch.txt 2005-09-28 20:26:19.000000000 +0200 -@@ -0,0 +1,33 @@ -+This file describes a patch to use version 1.2 of the ethernet driver -+for Intel Ixp4XX with Linux 2.6 kernels. -+ -+Authors/History -+--------------- -+ -+This patch is based on the nslu2-linux project's patches for version -+1.1 of the same driver. The changes were adapted to version 1.2 by -+Hannes Reich & Cian Masterson. -+ -+Status -+------ -+ -+This code has been tested on a Linksys NSLU2. It works in big-endian -+mode, performance seems around 10% faster than 1.4. -+ -+The code does not work in little-endian mode. It appears as though the -+hardware is initialised correctly, but packet receive / transmit done -+callbacks are never called. -+ -+The driver has not been tested in "polling mode". -+ -+Licence Information -+------------------- -+ -+This patch is licenced under the same terms as the original Ethernet -+driver (GPL v2). -+ -+References -+---------- -+ -+The nslu2-linux project's patch for version 1.1 of the driver is at -+http://nslu.sourceforge.net/downloads/ixp425_eth.c.patch -\ No newline at end of file -diff -Naur ixp425_eth.orig/ixp425_eth.c ixp425_eth/ixp425_eth.c ---- ixp425_eth.orig/ixp425_eth.c 2005-08-26 21:44:19.000000000 +0200 -+++ ixp425_eth/ixp425_eth.c 2005-09-02 00:01:59.000000000 +0200 -@@ -47,21 +47,18 @@ - */ - #include <linux/config.h> - #include <linux/module.h> --#include <linux/kernel.h> -+#include <linux/moduleparam.h> - #include <linux/init.h> -+#include <linux/kernel.h> - #include <linux/ioport.h> -+#include <linux/device.h> - #include <linux/netdevice.h> - #include <linux/etherdevice.h> --#include <linux/delay.h> - #include <linux/mii.h> --#include <linux/socket.h> --#include <linux/cache.h> - #include <asm/io.h> - #include <asm/errno.h> - #include <net/pkt_sched.h> - #include <net/ip.h> --#include <linux/sysctl.h> --#include <linux/unistd.h> - - /* - * Intel IXP400 Software specific header files -@@ -93,8 +90,8 @@ - MODULE_DESCRIPTION("IXP425 NPE Ethernet driver"); - MODULE_LICENSE("GPL"); - MODULE_AUTHOR("Intel Corporation"); --#define MODULE_NAME "ixp425_eth" --#define MODULE_VERSION "1.2" -+#define DRV_NAME "ixp425_eth" -+#define DRV_VERSION "1.2A" - - /* Module parameters */ - static int npe_learning = 1; /* default : NPE learning & filtering enable */ -@@ -122,26 +119,23 @@ - */ - static int netdev_max_backlog = 290; - --MODULE_PARM(npe_learning, "i"); -+module_param(npe_learning, int, 4); - MODULE_PARM_DESC(npe_learning, "If non-zero, NPE MAC Address Learning & Filtering feature will be enabled"); --MODULE_PARM(log_level, "i"); -+module_param(log_level, int, 6); - MODULE_PARM_DESC(log_level, "Set log level: 0 - None, 1 - Verbose, 2 - Debug"); --MODULE_PARM(no_csr_init, "i"); -+module_param(no_csr_init, int, 0); - MODULE_PARM_DESC(no_csr_init, "If non-zero, do not initialise Intel IXP400 Software Release core components"); --MODULE_PARM(no_phy_scan, "i"); -+module_param(no_phy_scan, int, 0); - MODULE_PARM_DESC(no_phy_scan, "If non-zero, use hard-coded phy addresses"); --MODULE_PARM(datapath_poll, "i"); -+module_param(datapath_poll, int, 0); - MODULE_PARM_DESC(datapath_poll, "If non-zero, use polling method for datapath instead of interrupts"); --MODULE_PARM(phy_reset, "i"); -+module_param(phy_reset, int, 0); - MODULE_PARM_DESC(phy_reset, "If non-zero, reset the phys"); --MODULE_PARM(netdev_max_backlog, "i"); -+module_param(netdev_max_backlog, int, 4); - MODULE_PARM_DESC(netdev_max_backlog, "Should be set to the value of /proc/sys/net/core/netdev_max_backlog (perf affecting)"); --MODULE_PARM(dev_max_count, "i"); -+module_param(dev_max_count, int, 4); - MODULE_PARM_DESC(dev_max_count, "Number of devices to initialize"); - --/* devices will be called ixp0 and ixp1 */ --#define DEVICE_NAME "ixp" -- - /* boolean values for PHY link speed, duplex, and autonegotiation */ - #define PHY_SPEED_10 0 - #define PHY_SPEED_100 1 -@@ -257,36 +251,35 @@ - */ - /* Print kernel error */ - #define P_ERROR(args...) \ -- printk(KERN_ERR MODULE_NAME ": " args) -+ printk(KERN_ERR DRV_NAME ": " args) - /* Print kernel warning */ - #define P_WARN(args...) \ -- printk(KERN_WARNING MODULE_NAME ": " args) -+ printk(KERN_WARNING DRV_NAME ": " args) - /* Print kernel notice */ - #define P_NOTICE(args...) \ -- printk(KERN_NOTICE MODULE_NAME ": " args) -+ printk(KERN_NOTICE DRV_NAME ": " args) - /* Print kernel info */ - #define P_INFO(args...) \ -- printk(KERN_INFO MODULE_NAME ": " args) -+ printk(KERN_INFO DRV_NAME ": " args) - /* Print verbose message. Enabled/disabled by 'log_level' param */ - #define P_VERBOSE(args...) \ -- if (log_level >= 1) printk(MODULE_NAME ": " args) -+ if (log_level >= 1) printk(DRV_NAME ": " args) - /* Print debug message. Enabled/disabled by 'log_level' param */ - #define P_DEBUG(args...) \ - if (log_level >= 2) { \ -- printk("%s: %s()\n", MODULE_NAME, __FUNCTION__); \ -+ printk("%s: %s()\n", DRV_NAME, __FUNCTION__); \ - printk(args); } - - #ifdef DEBUG - /* Print trace message */ - #define TRACE \ -- if (log_level >= 2) printk("%s: %s(): line %d\n", MODULE_NAME, __FUNCTION__, __LINE__) -+ if (log_level >= 2) printk("%s: %s(): line %d\n", DRV_NAME, __FUNCTION__, __LINE__) - #else - /* no trace */ - #define TRACE - #endif - - /* extern Linux kernel data */ --extern struct softnet_data softnet_data[]; /* used to get the current queue level */ - extern unsigned long loops_per_jiffy; /* used to calculate CPU clock speed */ - - /* internal Ethernet Access layer polling entry points */ -@@ -295,10 +288,12 @@ - extern void - ixEthTxFrameDoneQMCallback(IxQMgrQId qId, IxQMgrCallbackId callbackId); - -+#ifdef CONFIG_NET_POLL_CONTROLLER -+static void ixp425eth_poll_controller(struct net_device *dev); -+#endif -+ - /* Private device data */ - typedef struct { -- spinlock_t lock; /* multicast management lock */ -- - unsigned int msdu_size; - unsigned int replenish_size; - unsigned int pkt_size; -@@ -338,17 +333,11 @@ - /* TX MBUF pool */ - IX_OSAL_MBUF_POOL *tx_pool; - -- /* id of thread for the link duplex monitoring */ -- int maintenanceCheckThreadId; -- -- /* mutex locked by thread, until the thread exits */ -- struct semaphore *maintenanceCheckThreadComplete; -- -- /* Used to stop the kernel thread for link monitoring. */ -- volatile BOOL maintenanceCheckStopped; -+ /* link duplex monitoring */ -+ struct work_struct mii_job; - -- /* used for tx timeout */ -- struct tq_struct tq_timeout; -+ /* handle tx timeouts */ -+ struct work_struct tx_timeout_job; - - /* used to control the message output */ - UINT32 devFlags; -@@ -370,11 +359,13 @@ - */ - - /* values used inside the irq */ -+#ifdef IXP425ETH_POLLING_MODE - static unsigned long timer_countup_ticks; -+static unsigned int rx_queue_id = IX_QMGR_MAX_NUM_QUEUES; -+#endif - static IxQMgrDispatcherFuncPtr dispatcherFunc; - static struct timeval irq_stamp; /* time of interrupt */ - static unsigned int maxbacklog = RX_MBUF_POOL_SIZE; --static unsigned int rx_queue_id = IX_QMGR_MAX_NUM_QUEUES; - - /* Implements a software queue for skbufs - * This queue is written in the tx done process and -@@ -523,13 +514,18 @@ - #endif - }; - -+/* -+ * Shared workqueue thread for device maintenance tasks. -+ */ -+static struct workqueue_struct *npe_eth_workqueue; -+ - /* Mutex lock used to coordinate access to IxEthAcc functions - * which manipulate the MII registers on the PHYs - */ --static struct semaphore *miiAccessMutex; -+static DECLARE_MUTEX(miiAccessMutex); - - /* mutex locked when maintenance is being performed */ --static struct semaphore *maintenance_mutex; -+static DECLARE_MUTEX(maintenance_mutex); - - /* Flags which is set when the corresponding IRQ is running, - */ -@@ -592,7 +588,7 @@ - printk(">> mbuf:\n"); - hex_dump(mbuf, sizeof(*mbuf)); - printk(">> m_data:\n"); -- hex_dump(__va(IX_OSAL_MBUF_MDATA(mbuf)), IX_OSAL_MBUF_MLEN(mbuf)); -+ hex_dump(IX_OSAL_MBUF_MDATA(mbuf), IX_OSAL_MBUF_MLEN(mbuf)); - printk("\n-------------------------\n"); - } - -@@ -791,6 +787,8 @@ - #ifdef CONFIG_NETFILTER - #if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE) - /* We need to free the memory attached to the nf_bridge pointer to avoid a memory leak */ -+ nf_bridge_put(skb->nf_bridge); -+ skb->nf_bridge = NULL; - - #endif - #endif /* CONFIG_NETFILTER */ -@@ -1041,135 +1039,63 @@ - * KERNEL THREADS - */ - --/* flush the pending signals for a thread and -- * check if a thread is killed (e.g. system shutdown) -- */ --static BOOL dev_thread_signal_killed(void) --{ -- int killed = FALSE; -- if (signal_pending (current)) -- { -- spin_lock_irq(¤t->sigmask_lock); -- if (sigismember(&(current->pending.signal), SIGKILL) -- || sigismember(&(current->pending.signal), SIGTERM)) -- { -- /* someone kills this thread */ -- killed = TRUE; -- } -- flush_signals(current); -- spin_unlock_irq(¤t->sigmask_lock); -- } -- return killed; --} -- --/* This timer will check the PHY for the link duplex and -+/* This workqueue job will check the PHY for the link duplex and - * update the MAC accordingly. It also executes some buffer - * maintenance to release mbuf in excess or replenish after - * a severe starvation - * - * This function loops and wake up every 3 seconds. - */ --static int dev_media_check_thread (void* arg) -+static void dev_media_check_work (void* arg) - { - struct net_device *dev = (struct net_device *) arg; - priv_data_t *priv = dev->priv; -- int linkUp; -- int speed100; -- int fullDuplex = -1; /* unknown duplex mode */ -- int newDuplex; -- int autonegotiate; -- unsigned phyNum = phyAddresses[priv->port_id]; -- int res; - -- TRACE; - -- /* Lock the mutex for this thread. -- This mutex can be used to wait until the thread exits -- */ -- down (priv->maintenanceCheckThreadComplete); -- -- daemonize(); -- reparent_to_init(); -- spin_lock_irq(¤t->sigmask_lock); -- sigemptyset(¤t->blocked); -- recalc_sigpending(current); -- spin_unlock_irq(¤t->sigmask_lock); -- -- snprintf(current->comm, sizeof(current->comm), "ixp425 %s", dev->name); -+ /* -+ * Determine the link status -+ */ - -- TRACE; -- -- while (1) -+ if (default_phy_cfg[priv->port_id].linkMonitor) - { -- /* We may have been woken up by a signal. If so, we need to -- * flush it out and check for thread termination -- */ -- if (dev_thread_signal_killed()) -- { -- priv->maintenanceCheckStopped = TRUE; -- } -- -- /* If the interface is down, or the thread is killed, -- * or gracefully aborted, we need to exit this loop -- */ -- if (priv->maintenanceCheckStopped) -- { -- break; -- } -- -- /* -- * Determine the link status -- */ -+ int linkUp; -+ int speed100; -+ int fullDuplex = -1; /* unknown duplex mode */ -+ int newDuplex; -+ int autonegotiate; -+ unsigned phyNum = phyAddresses[priv->port_id]; -+ int res; - - TRACE; - -- if (default_phy_cfg[priv->port_id].linkMonitor) -- { -- /* lock the MII register access mutex */ -- down(miiAccessMutex); -+ /* lock the MII register access mutex */ -+ down(&miiAccessMutex); - -- res = ixEthMiiLinkStatus(phyNum, -- &linkUp, -- &speed100, -- &newDuplex, -- &autonegotiate); -- /* release the MII register access mutex */ -- up(miiAccessMutex); -- -- /* We may have been woken up by a signal. If so, we need to -- * flush it out and check for thread termination -- */ -- if (dev_thread_signal_killed()) -- { -- priv->maintenanceCheckStopped = TRUE; -- } -+ res = ixEthMiiLinkStatus(phyNum, -+ &linkUp, -+ &speed100, -+ &newDuplex, -+ &autonegotiate); -+ /* release the MII register access mutex */ -+ up(&miiAccessMutex); -+ -+ if (res != IX_ETH_ACC_SUCCESS) -+ { -+ P_WARN("ixEthMiiLinkStatus failed on PHY%d.\n" -+ "\tCan't determine\nthe auto negotiated parameters. " -+ "Using default values.\n", -+ phyNum); -+ /* this shouldn't happen. exit the thread if it does */ -+ goto out; -+ } - -- /* If the interface is down, or the thread is killed, -- * or gracefully aborted, we need to exit this loop -- */ -- if (priv->maintenanceCheckStopped) -- { -- break; -- } -- -- if (res != IX_ETH_ACC_SUCCESS) -+ if (linkUp) -+ { -+ if (! netif_carrier_ok(dev)) - { -- P_WARN("ixEthMiiLinkStatus failed on PHY%d.\n" -- "\tCan't determine\nthe auto negotiated parameters. " -- "Using default values.\n", -- phyNum); -- /* something is bad, gracefully stops the loop */ -- priv->maintenanceCheckStopped = TRUE; -- break; -+ /* inform the kernel of a change in link state */ -+ netif_carrier_on(dev); - } -- -- if (linkUp) -- { -- if (! netif_carrier_ok(dev)) -- { -- /* inform the kernel of a change in link state */ -- netif_carrier_on(dev); -- } - - /* - * Update the MAC mode to match the PHY mode if -@@ -1218,18 +1144,14 @@ - * long - */ - dev_buff_maintenance(dev); -- -- /* Now sleep for 3 seconds */ -- current->state = TASK_INTERRUPTIBLE; -- schedule_timeout(MEDIA_CHECK_INTERVAL); -- } /* while (1) ... */ -- -- /* free the mutex for this thread. */ -- up (priv->maintenanceCheckThreadComplete); -- -- return 0; -+ /* reschedule to run in 3 seconds */ -+ queue_delayed_work(npe_eth_workqueue, &priv->mii_job, 3*HZ); -+out: -+ return; - } - -+#ifdef IXP425ETH_POLLING_MODE -+ - /* - * TIMERS - * -@@ -1263,12 +1185,14 @@ - restore_flags(flags); - } - -+#endif /* IXP425ETH_POLLING_MODE */ -+ - /* Internal ISR : run a few thousand times per second and calls - * the queue manager dispatcher entry point. - */ --static void dev_qmgr_os_isr(int irg, void *dev_id, struct pt_regs *regs) -+static irqreturn_t dev_qmgr_os_isr(int irg, void *dev_id, struct pt_regs *regs) - { -- int qlevel = softnet_data[0].input_pkt_queue.qlen; -+ int qlevel = __get_cpu_var(softnet_data).input_pkt_queue.qlen; - - /* at the interrupt entry, the queue contains already a few entries - * so it is safe to decrease the number of entries -@@ -1302,14 +1226,17 @@ - - /* call the queue manager entry point */ - dispatcherFunc(IX_QMGR_QUELOW_GROUP); -+ return IRQ_HANDLED; - } - -+#ifdef IXP425ETH_POLLING_MODE -+ - /* Internal ISR : run a few thousand times per second and calls - * the ethernet entry point. - */ --static void dev_poll_os_isr(int irg, void *dev_id, struct pt_regs *regs) -+static irqreturn_t dev_poll_os_isr(int irg, void *dev_id, struct pt_regs *regs) - { -- int qlevel = softnet_data[0].input_pkt_queue.qlen; -+ int qlevel = __get_cpu_var(softnet_data).input_pkt_queue.qlen; - dev_pmu_timer_restart(); /* set up the timer for the next interrupt */ - - /* at the interrupt entry, the queue contains already a few entries -@@ -1346,6 +1273,7 @@ - ixEthRxFrameQMCallback(rx_queue_id,0); - ixEthTxFrameDoneQMCallback(0,0); - -+ return IRQ_HANDLED; - } - - /* initialize the PMU timer */ -@@ -1400,46 +1328,33 @@ - restore_flags(flags); - } - --/* This timer will call ixEthDBDatabaseMaintenance every -- * IX_ETH_DB_MAINTENANCE_TIME jiffies -- */ --static void maintenance_timer_cb(unsigned long data); -- --static struct timer_list maintenance_timer = { -- function:&maintenance_timer_cb --}; -+#endif /* IXP425ETH_POLLING_MODE */ - --static void maintenance_timer_task(void *data); - --/* task spawned by timer interrupt for EthDB maintenance */ --static struct tq_struct tq_maintenance = { -- routine:maintenance_timer_task --}; -+static void db_maintenance_code(void *data); -+static DECLARE_WORK(db_maintenance_job, db_maintenance_code, NULL); - --static void maintenance_timer_set(void) -+static inline -+void schedule_db_maintenance(void) - { -- maintenance_timer.expires = jiffies + DB_MAINTENANCE_TIME; -- add_timer(&maintenance_timer); -+ queue_delayed_work(npe_eth_workqueue, &db_maintenance_job, -+ DB_MAINTENANCE_TIME); - } - --static void maintenance_timer_clear(void) -+static inline -+void cancel_db_maintenance(void) - { -- del_timer_sync(&maintenance_timer); -+ cancel_delayed_work(&db_maintenance_job); - } - --static void maintenance_timer_task(void *data) -+static void db_maintenance_code(void *data) - { -- down(maintenance_mutex); -+ down(&maintenance_mutex); - ixEthDBDatabaseMaintenance(); -- up(maintenance_mutex); -+ up(&maintenance_mutex); -+ schedule_db_maintenance(); - } - --static void maintenance_timer_cb(unsigned long data) --{ -- schedule_task(&tq_maintenance); -- -- maintenance_timer_set(); --} - - /* - * DATAPLANE -@@ -1553,7 +1468,7 @@ - * and its constants are taken from the eth_type_trans() - * function. - */ -- struct ethhdr *eth = skb->mac.ethernet; -+ struct ethhdr *eth = eth_hdr(skb); - unsigned short hproto = ntohs(eth->h_proto); - - if (hproto >= 1536) -@@ -1595,7 +1510,7 @@ - * mode is set This costs - * a lookup inside the packet payload. - */ -- struct ethhdr *eth = skb->mac.ethernet; -+ struct ethhdr *eth = eth_hdr(skb); - unsigned char *hdest = eth->h_dest; - - if (memcmp(hdest, dev->dev_addr, ETH_ALEN)!=0) -@@ -1654,7 +1569,7 @@ - dev = (struct net_device *)callbackTag; - priv = dev->priv; - -- qlevel = softnet_data[0].input_pkt_queue.qlen; -+ qlevel = __get_cpu_var(softnet_data).input_pkt_queue.qlen; - /* check if the system accepts more traffic and - * against chained mbufs - */ -@@ -1754,10 +1669,6 @@ - - TRACE; - -- /* if called from irq handler, lock already acquired */ -- if (!in_irq()) -- spin_lock_irq(&priv->lock); -- - /* clear multicast addresses that were set the last time (if exist) */ - ixEthAccPortMulticastAddressLeaveAll (priv->port_id); - -@@ -1838,10 +1749,10 @@ - } - - Exit: -- if (!in_irq()) -- spin_unlock_irq(&priv->lock); -+ return; - } - -+#ifdef IXP425ETH_POLLING_MODE - /* The QMgr dispatch entry point can be called from the - * IX_OSAL_IXP400_QM1_IRQ_LVL irq (which will trigger - * an interrupt for every packet) or a timer (which will -@@ -1893,8 +1804,8 @@ - /* poll the datapath from a timer IRQ */ - if (request_irq(IX_OSAL_IXP400_XSCALE_PMU_IRQ_LVL, - dev_poll_os_isr, -- SA_SHIRQ, -- MODULE_NAME, -+ SA_SHIRQ | SA_SAMPLE_RANDOM, -+ DRV_NAME, - (void *)IRQ_ANY_PARAMETER)) - { - P_ERROR("Failed to reassign irq to PMU timer interrupt!\n"); -@@ -1918,6 +1829,8 @@ - return 0; - } - -+#endif /* IXP425ETH_POLLING_MODE */ -+ - /* Enable the MAC port. - * Called on do_dev_open, dev_tx_timeout and mtu size changes - */ -@@ -1946,23 +1859,6 @@ - return convert_error_ethAcc(res); - } - -- /* restart the link-monitoring thread if necessary */ -- if (priv->maintenanceCheckStopped) -- { -- /* Starts the driver monitoring thread, if configured */ -- priv->maintenanceCheckStopped = FALSE; -- -- priv->maintenanceCheckThreadId = -- kernel_thread(dev_media_check_thread, -- (void *) dev, -- CLONE_FS | CLONE_FILES); -- if (priv->maintenanceCheckThreadId < 0) -- { -- P_ERROR("%s: Failed to start thread for media checks\n", dev->name); -- priv->maintenanceCheckStopped = TRUE; -- } -- } -- - /* force replenish if necessary */ - dev_rx_buff_prealloc(priv); - -@@ -2019,38 +1915,11 @@ - static void port_disable(struct net_device *dev) - { - priv_data_t *priv = dev->priv; -- int res; - IX_STATUS status; - - P_DEBUG("port_disable(%s)\n", dev->name); - -- if (!netif_queue_stopped(dev)) -- { -- dev->trans_start = jiffies; -- netif_stop_queue(dev); -- } -- -- if (priv->maintenanceCheckStopped) -- { -- /* thread is not running */ -- } -- else -- { -- /* thread is running */ -- priv->maintenanceCheckStopped = TRUE; -- /* Wake up the media-check thread with a signal. -- It will check the 'running' flag and exit */ -- if ((res = kill_proc (priv->maintenanceCheckThreadId, SIGKILL, 1))) -- { -- P_ERROR("%s: unable to signal thread\n", dev->name); -- } -- else -- { -- /* wait for the thread to exit. */ -- down (priv->maintenanceCheckThreadComplete); -- up (priv->maintenanceCheckThreadComplete); -- } -- } -+ netif_stop_queue(dev); - - /* Set callbacks when port is disabled */ - ixEthAccPortTxDoneCallbackRegister(priv->port_id, -@@ -2100,7 +1969,6 @@ - ixEthAccPortTxDoneCallbackRegister(priv->port_id, - tx_done_queue_stopped_cb, - (UINT32)dev); -- dev->trans_start = jiffies; - netif_stop_queue (dev); - } - return 0; -@@ -2143,12 +2011,19 @@ - int res; - - /* prevent the maintenance task from running while bringing up port */ -- down(maintenance_mutex); -+ down(&maintenance_mutex); - - /* bring up the port */ - res = port_enable(dev); - -- up(maintenance_mutex); -+ up(&maintenance_mutex); -+ -+ if(!res) -+ { -+ /* schedule mii job to run in 3 seconds */ -+ priv_data_t *priv = dev->priv; -+ queue_delayed_work(npe_eth_workqueue, &priv->mii_job, 3*HZ); -+ } - - return res; - } -@@ -2158,28 +2033,34 @@ - */ - static int do_dev_stop(struct net_device *dev) - { -+ priv_data_t *priv = dev->priv; -+ - TRACE; - -+ cancel_delayed_work(&priv->mii_job); -+ cancel_delayed_work(&priv->tx_timeout_job); -+ netif_stop_queue(dev); -+ netif_carrier_off(dev); - /* prevent the maintenance task from running while bringing up port */ -- down(maintenance_mutex); -+ down(&maintenance_mutex); - - /* bring the port down */ - port_disable(dev); - -- up(maintenance_mutex); -+ up(&maintenance_mutex); - - return 0; - } - - static void --dev_tx_timeout_task(void *dev_id) -+dev_tx_timeout_work(void *arg) - { -- struct net_device *dev = (struct net_device *)dev_id; -+ struct net_device *dev = (struct net_device *)arg; - priv_data_t *priv = dev->priv; - - P_WARN("%s: Tx Timeout for port %d\n", dev->name, priv->port_id); - -- down(maintenance_mutex); -+ down(&maintenance_mutex); - port_disable(dev); - - /* Note to user: Consider performing other reset operations here -@@ -2202,7 +2083,7 @@ - port_enable(dev); - } - -- up(maintenance_mutex); -+ up(&maintenance_mutex); - } - - -@@ -2212,8 +2093,7 @@ - priv_data_t *priv = dev->priv; - - TRACE; -- schedule_task(&priv->tq_timeout); -- -+ queue_work(npe_eth_workqueue, &priv->tx_timeout_job); - } - - /* update the maximum msdu value for this device */ -@@ -2270,14 +2150,14 @@ - } - - /* safer to stop maintenance task while bringing port down and up */ -- down(maintenance_mutex); -+ down(&maintenance_mutex); - - if (ixEthDBFilteringPortMaximumFrameSizeSet(priv->port_id, - new_msdu_size)) - { - P_ERROR("%s: ixEthDBFilteringPortMaximumFrameSizeSet failed for port %d\n", - dev->name, priv->port_id); -- up(maintenance_mutex); -+ up(&maintenance_mutex); - - return -1; - } -@@ -2287,7 +2167,7 @@ - /* update the driver mtu value */ - dev->mtu = new_mtu_size; - -- up(maintenance_mutex); -+ up(&maintenance_mutex); - - return 0; - } -@@ -2316,27 +2196,27 @@ - /* Read MII PHY register */ - case SIOCGMIIREG: - case SIOCDEVPRIVATE+1: -- down (miiAccessMutex); /* lock the MII register access mutex */ -+ down (&miiAccessMutex); /* lock the MII register access mutex */ - if ((res = ixEthAccMiiReadRtn (data->phy_id, data->reg_num, &data->val_out))) - { - P_ERROR("Error reading MII reg %d on phy %d\n", - data->reg_num, data->phy_id); - res = -1; - } -- up (miiAccessMutex); /* release the MII register access mutex */ -+ up (&miiAccessMutex); /* release the MII register access mutex */ - return res; - - /* Write MII PHY register */ - case SIOCSMIIREG: - case SIOCDEVPRIVATE+2: -- down (miiAccessMutex); /* lock the MII register access mutex */ -+ down (&miiAccessMutex); /* lock the MII register access mutex */ - if ((res = ixEthAccMiiWriteRtn (data->phy_id, data->reg_num, data->val_in))) - { - P_ERROR("Error writing MII reg %d on phy %d\n", - data->reg_num, data->phy_id); - res = -1; - } -- up (miiAccessMutex); /* release the MII register access mutex */ -+ up (&miiAccessMutex); /* release the MII register access mutex */ - return res; - - /* set the MTU size */ -@@ -2373,7 +2253,7 @@ - - TRACE; - -- invalidate_dcache_range((unsigned int)ðStats, sizeof(ethStats)); -+ IX_ACC_DATA_CACHE_INVALIDATE(ðStats, sizeof(ethStats)); - if ((res = ixEthAccMibIIStatsGetClear(priv->port_id, ðStats))) - { - P_ERROR("%s: ixEthAccMibIIStatsGet failed for port %d, res = %d\n", -@@ -2462,8 +2342,8 @@ - */ - if (request_irq(IX_OSAL_IXP400_QM1_IRQ_LVL, - dev_qmgr_os_isr, -- SA_SHIRQ, -- MODULE_NAME, -+ SA_SHIRQ | SA_SAMPLE_RANDOM, -+ DRV_NAME, - (void *)IRQ_ANY_PARAMETER)) - { - P_ERROR("Failed to request_irq to Queue Manager interrupt!\n"); -@@ -2582,15 +2462,6 @@ - BOOL physcan[IXP425_ETH_ACC_MII_MAX_ADDR]; - int i, phy_found, num_phys_to_set, dev_count; - -- /* initialise the MII register access mutex */ -- miiAccessMutex = (struct semaphore *) kmalloc(sizeof(struct semaphore), GFP_KERNEL); -- if (!miiAccessMutex) -- return -ENOMEM; -- -- init_MUTEX(miiAccessMutex); -- -- TRACE; -- - /* detect the PHYs (ethMii requires the PHYs to be detected) - * and provides a maximum number of PHYs to search for. - */ -@@ -2680,8 +2551,8 @@ - if (port_id == IX_ETH_PORT_1) npe_id = "B"; - if (port_id == IX_ETH_PORT_2) npe_id = "C"; - -- P_INFO("%s%d is using NPE%s and the PHY at address %d\n", -- DEVICE_NAME, dev_count, npe_id, phyAddresses[port_id]); -+ P_INFO("npe%d is using NPE%s and the PHY at address %d\n", -+ dev_count, npe_id, phyAddresses[port_id]); - - /* Set the MAC to the same duplex mode as the phy */ - ixEthAccPortDuplexModeSet(port_id, -@@ -2693,12 +2564,11 @@ - } - - /* set port MAC addr and update the dev struct if successfull */ --int dev_set_mac_address(struct net_device *dev, void *addr) -+int dev_set_mac_address(struct net_device *dev, struct sockaddr *saddr) - { - int res; - priv_data_t *priv = dev->priv; - IxEthAccMacAddr npeMacAddr; -- struct sockaddr *saddr = (struct sockaddr *)addr; - - /* Get MAC addr from parameter */ - memcpy(&npeMacAddr.macAddress, -@@ -2758,7 +2628,7 @@ - - static struct Qdisc_ops dev_qdisc_ops = - { -- NULL, NULL, "ixp425_eth", 0, -+ NULL, NULL, DRV_NAME, 0, - dev_qdisc_no_enqueue, - dev_qdisc_no_dequeue, - dev_qdisc_no_enqueue, -@@ -2771,35 +2641,13 @@ - /* Initialize device structs. - * Resource allocation is deffered until do_dev_open - */ --static int __devinit dev_eth_probe(struct net_device *dev) -+static int __devinit dev_eth_probe(struct device *dev) - { -- static int found_devices = 0; -- priv_data_t *priv; -- -- TRACE; -- -- /* there is a limited number of devices */ -- if (found_devices >= dev_max_count) /* module parameter */ -- return -ENODEV; -- -- SET_MODULE_OWNER(dev); -- -- /* set device name */ -- strcpy(dev->name, found_devices ? DEVICE_NAME "1" : DEVICE_NAME "0"); -- -- /* allocate and initialize priv struct */ -- priv = dev->priv = kmalloc(sizeof(priv_data_t), GFP_KERNEL); -- if (dev->priv == NULL) -- return -ENOMEM; -- -- memset(dev->priv, 0, sizeof(priv_data_t)); -- -- TRACE; -- -- /* set the mapping between port ID and devices -- * -- */ -- priv->port_id = default_portId[found_devices]; -+ int res = -ENOMEM; -+ struct platform_device *pdev = to_platform_device(dev); -+ struct net_device *ndev = dev_get_drvdata(dev); -+ priv_data_t *priv = (priv_data_t*)ndev->priv; -+ priv->port_id = pdev->id; - - TRACE; - -@@ -2809,9 +2657,8 @@ - if(priv->rx_pool == NULL) - { - P_ERROR("%s: Buffer RX Pool init failed on port %d\n", -- dev->name, priv->port_id); -- kfree(dev->priv); -- return -ENOMEM; -+ ndev->name, priv->port_id); -+ goto out; - } - - TRACE; -@@ -2822,45 +2669,38 @@ - if(priv->tx_pool == NULL) - { - P_ERROR("%s: Buffer TX Pool init failed on port %d\n", -- dev->name, priv->port_id); -- kfree(dev->priv); -- return -ENOMEM; -+ ndev->name, priv->port_id); -+ goto out; - } - -- TRACE; -+ TRACE; - -- /* initialise the MII register access mutex */ -- priv->maintenanceCheckThreadComplete = (struct semaphore *) -- kmalloc(sizeof(struct semaphore), GFP_KERNEL); -- if (!priv->maintenanceCheckThreadComplete) -- { -- kfree(dev->priv); -- return -ENOMEM; -- } -- priv->lock = SPIN_LOCK_UNLOCKED; -- init_MUTEX(priv->maintenanceCheckThreadComplete); -- priv->maintenanceCheckStopped = TRUE; -- -- /* initialize ethernet device (default handlers) */ -- ether_setup(dev); -+ /* initialise the MII and tx timeout jobs */ -+ INIT_WORK(&priv->mii_job, dev_media_check_work, ndev); -+ INIT_WORK(&priv->tx_timeout_job, dev_tx_timeout_work, ndev); - - TRACE; - -- /* fill in dev struct callbacks with customized handlers */ -- dev->open = do_dev_open; -- dev->stop = do_dev_stop; -+ /* initialize ethernet device (default handlers) */ -+ ether_setup(ndev); - -- dev->hard_start_xmit = dev_hard_start_xmit; -+ /* fill in dev struct callbacks with customized handlers */ -+ ndev->open = do_dev_open; -+ ndev->stop = do_dev_stop; - -- dev->watchdog_timeo = DEV_WATCHDOG_TIMEO; -- dev->tx_timeout = dev_tx_timeout; -- dev->change_mtu = dev_change_mtu; -- dev->do_ioctl = do_dev_ioctl; -- dev->get_stats = dev_get_stats; -- dev->set_multicast_list = dev_set_multicast_list; -- dev->flags |= IFF_MULTICAST; -+ ndev->hard_start_xmit = dev_hard_start_xmit; - -- dev->set_mac_address = dev_set_mac_address; -+ ndev->watchdog_timeo = DEV_WATCHDOG_TIMEO; -+ ndev->tx_timeout = dev_tx_timeout; -+ ndev->change_mtu = dev_change_mtu; -+ ndev->do_ioctl = do_dev_ioctl; -+ ndev->get_stats = dev_get_stats; -+ ndev->set_multicast_list = dev_set_multicast_list; -+ ndev->flags |= IFF_MULTICAST; -+#ifdef CONFIG_NET_POLL_CONTROLLER -+ ndev->poll_controller = ixp425eth_poll_controller; -+#endif -+ ndev->set_mac_address = dev_set_mac_address; - - TRACE; - -@@ -2878,22 +2718,22 @@ - * - */ - -- memcpy(dev->dev_addr, -+ memcpy(ndev->dev_addr, - &default_mac_addr[priv->port_id].macAddress, - IX_IEEE803_MAC_ADDRESS_SIZE); - - /* possibly remove this test and the message when a valid MAC address - * is not hardcoded in the driver source code. - */ -- if (is_valid_ether_addr(dev->dev_addr)) -+ if (is_valid_ether_addr(ndev->dev_addr)) - { - P_WARN("Use default MAC address %2.2x:%2.2x:%2.2x:%2.2x:%2.2x:%2.2x for port %d\n", -- (unsigned)dev->dev_addr[0], -- (unsigned)dev->dev_addr[1], -- (unsigned)dev->dev_addr[2], -- (unsigned)dev->dev_addr[3], -- (unsigned)dev->dev_addr[4], -- (unsigned)dev->dev_addr[5], -+ (unsigned)ndev->dev_addr[0], -+ (unsigned)ndev->dev_addr[1], -+ (unsigned)ndev->dev_addr[2], -+ (unsigned)ndev->dev_addr[3], -+ (unsigned)ndev->dev_addr[4], -+ (unsigned)ndev->dev_addr[5], - priv->port_id); - } - -@@ -2903,62 +2743,132 @@ - */ - TRACE; - -- dev_change_msdu(dev, dev->mtu + dev->hard_header_len + VLAN_HDR); -- -- priv->tq_timeout.routine = dev_tx_timeout_task; -- priv->tq_timeout.data = (void *)dev; -+ dev_change_msdu(ndev, ndev->mtu + ndev->hard_header_len + VLAN_HDR); - - #ifdef CONFIG_IXP425_ETH_QDISC_ENABLED - /* configure and enable a fast TX queuing discipline */ - TRACE; - -- priv->qdisc = qdisc_create_dflt(dev, &dev_qdisc_ops); -- dev->qdisc_sleeping = priv->qdisc; -- dev->qdisc = priv->qdisc; -+ priv->qdisc = qdisc_create_dflt(ndev, &dev_qdisc_ops); -+ ndev->qdisc_sleeping = priv->qdisc; -+ ndev->qdisc = priv->qdisc; - -- if (!dev->qdisc_sleeping) -+ if (!ndev->qdisc_sleeping) - { - P_ERROR("%s: qdisc_create_dflt failed on port %d\n", -- dev->name, priv->port_id); -- kfree(dev->priv); -- return -ENOMEM; -+ ndev->name, priv->port_id); -+ goto out; - } - #endif - - /* set the internal maximum queueing capabilities */ -- dev->tx_queue_len = TX_MBUF_POOL_SIZE; -+ ndev->tx_queue_len = TX_MBUF_POOL_SIZE; - -- if (!netif_queue_stopped(dev)) -- { -- TRACE; -+ if ((res = register_netdev(ndev))) -+ P_ERROR("Failed to register netdev. res = %d\n", res); -+out: -+ return res; -+} - -- dev->trans_start = jiffies; -- netif_stop_queue(dev); -- } -+#ifdef CONFIG_NET_POLL_CONTROLLER -+/* -+ * Polling receive - used by netconsole and other diagnostic tools -+ * to allow network i/o with interrupts disabled. -+ * (stolen from 8139too.c by siddy) -+ */ -+static void ixp425eth_poll_controller(struct net_device *dev) -+{ -+ disable_irq(dev->irq); -+ dev_qmgr_os_isr(dev->irq, dev, NULL); -+ enable_irq(dev->irq); -+} -+#endif - -- found_devices++; -+static int __devinit npe_eth_init_device(struct device *dev) -+{ -+ int res = -ENOMEM; -+ int ixRes = 0; -+ struct platform_device *pdev = to_platform_device(dev); -+ struct net_device *ndev = alloc_etherdev(sizeof(priv_data_t)); -+ if (ndev == NULL) { -+ P_ERROR("could not allocate device.\n"); -+ goto out; -+ } -+ SET_MODULE_OWNER(ndev); -+ SET_NETDEV_DEV(ndev, dev); -+ ixEthAccTxSchedulingDisciplineSet(pdev->id, FIFO_NO_PRIORITY); -+ dev_set_drvdata(dev, ndev); -+ res = dev_eth_probe(dev); -+ if (res == 0) { -+ /* This was added in v0.1.8 of the driver. It seems that we need to -+ * enable the port before the user can set a mac address for the port -+ * using 'ifconfig hw ether ...'. To enable the port we must first -+ * register Q callbacks, so we register the portDisable callbacks to -+ * ensure that no buffers are passed up to the kernel until the port is -+ * brought up properly (ifconfig up) -+ */ -+ if ((ixRes = ixEthAccPortTxDoneCallbackRegister(pdev->id, -+ tx_done_disable_cb, -+ (UINT32)dev))) - -- TRACE; -+ { -+ TRACE; -+ res = convert_error_ethAcc(ixRes); -+ goto out; -+ } -+ if ((ixRes = ixEthAccPortRxCallbackRegister(pdev->id, -+ rx_disable_cb, -+ (UINT32)dev))) -+ { -+ TRACE; -+ res = convert_error_ethAcc(ixRes); -+ goto out; -+ } -+ port_enable(ndev); -+ } else { -+ dev_set_drvdata(dev, NULL); -+ kfree(ndev); -+ } -+out: -+ return res; -+} - -+static int __devexit npe_eth_fini_device(struct device *dev) -+{ -+ struct net_device *ndev = dev_get_drvdata(dev); -+ dev_set_drvdata(dev, NULL); -+ unregister_netdev(ndev); -+ kfree(ndev); - return 0; - } - -- - /* Module initialization and cleanup */ - - #ifdef MODULE - --static struct net_device ixp425_devices[IX_ETH_ACC_NUMBER_OF_PORTS]; -+static struct device_driver npe_eth_driver = { -+ .name = DRV_NAME, -+ .bus = &platform_bus_type, -+ .probe = npe_eth_init_device, -+ .remove = npe_eth_fini_device, -+}; - --int init_module(void) --{ -- int res, dev_count; -- IxEthAccPortId portId; -- struct net_device *dev; -+static struct platform_device npe_eth_devs[] = { -+ { -+ .name = DRV_NAME, -+ .id = IX_ETH_PORT_1, -+ }, -+ { -+ .name = DRV_NAME, -+ .id = IX_ETH_PORT_2, -+ } -+}; - -- TRACE; -+static int __init ixp425_eth_init(void) -+{ -+ int res; - -- P_INFO("Initializing IXP425 NPE Ethernet driver software v. " MODULE_VERSION " \n"); -+ P_INFO("Initializing IXP425 NPE Ethernet driver software v. " DRV_VERSION " \n"); - - TRACE; - -@@ -3037,82 +2947,16 @@ - - TRACE; - -- /* Initialise the driver structure */ -- for (dev_count = 0; -- dev_count < dev_max_count; /* module parameter */ -- dev_count++) -- { -- portId = default_portId[dev_count]; -- -- dev = &ixp425_devices[dev_count]; -- -- dev->init = dev_eth_probe; -- -- TRACE; -- -- if ((res = register_netdev(dev))) -- { -- TRACE; -- -- P_ERROR("Failed to register netdev. res = %d\n", res); -- return res; -- } -- -- TRACE; -- -- /* register "safe" callbacks. This ensure that no traffic will be -- * sent to the stack until the port is brought up (ifconfig up) -- */ -- if ((res = ixEthAccPortTxDoneCallbackRegister(portId, -- tx_done_disable_cb, -- (UINT32)dev))) -- -- { -- TRACE; -- return convert_error_ethAcc(res); -- } -- if ((res = ixEthAccPortRxCallbackRegister(portId, -- rx_disable_cb, -- (UINT32)dev))) -- { -- TRACE; -- return convert_error_ethAcc(res); -- } -- } -- -- TRACE; -- -- if (no_csr_init == 0 && datapath_poll != 0 ) /* module parameter */ -- { -- /* The QMgr dispatch entry point is called from the -- * IX_OSAL_IXP400_QM1_IRQ_LVL irq (which will trigger -- * an interrupt for every packet) -- * This function setup the datapath in polling mode -- * for better performances. -- */ -- -- if ((res = ethAcc_datapath_poll_setup())) -- { -- TRACE; -- return res; -- } -- } -- -- TRACE; -- -- /* initialise the DB Maintenance task mutex */ -- maintenance_mutex = (struct semaphore *) kmalloc(sizeof(struct semaphore), GFP_KERNEL); -- if (!maintenance_mutex) -+ npe_eth_workqueue = create_workqueue(DRV_NAME); -+ if (npe_eth_workqueue == NULL) - return -ENOMEM; - -- init_MUTEX(maintenance_mutex); -- - TRACE; - - /* Do not start the EthDB maintenance thread if learning & filtering feature is disabled */ - if (npe_learning) /* module parameter */ - { -- maintenance_timer_set(); -+ schedule_db_maintenance(); - } - - TRACE; -@@ -3127,12 +2971,29 @@ - } - netdev_max_backlog /= BACKLOG_TUNE; - -+ res = driver_register(&npe_eth_driver); -+ if (res != 0) { -+ P_ERROR("Failed to register NPE EThernet driver (res = %d)\n", res); -+ return res; -+ } -+ - TRACE; - -+ res = platform_device_register(&npe_eth_devs[0]); -+ if (res != 0) { -+ P_ERROR("Failed to register NPE platform device 0 (res = %d)\n", res); -+ return res; -+ } -+ res = platform_device_register(&npe_eth_devs[1]); -+ if (res != 0) { -+ P_ERROR("Failed to register NPE platform device 1 (res = %d)\n", res); -+ return res; -+ } -+ - return 0; - } - --void cleanup_module(void) -+static void __exit ixp425_eth_exit(void) - { - int dev_count; - -@@ -3147,7 +3008,9 @@ - { - TRACE; - -+#ifdef IXP425ETH_POLLING_MODE - dev_pmu_timer_disable(); /* stop the timer */ -+#endif - - if (irq_pmu_used) - { -@@ -3169,19 +3032,10 @@ - - TRACE; - -- /* stop the maintenance timer */ -- maintenance_timer_clear(); -- -- TRACE; -- -- /* Wait for maintenance task to complete (if started) */ -- if (npe_learning) /* module parameter */ -- { -- TRACE; -- -- down(maintenance_mutex); -- up(maintenance_mutex); -- } -+ /* stop the maintenance timer and destroy the driver's work queue */ -+ cancel_db_maintenance(); -+ flush_workqueue(npe_eth_workqueue); -+ destroy_workqueue(npe_eth_workqueue); - - TRACE; - -@@ -3194,37 +3048,39 @@ - dev_count < dev_max_count; /* module parameter */ - dev_count++) - { -- struct net_device *dev = &ixp425_devices[dev_count]; -- priv_data_t *priv = dev->priv; -- if (priv != NULL) -+ IxEthAccPortId portId = default_portId[dev_count]; -+ -+ if (default_npeImageId[portId] == IX_ETH_NPE_B_IMAGE_ID) - { -- IxEthAccPortId portId = default_portId[dev_count]; -- -- if (default_npeImageId[portId] == IX_ETH_NPE_B_IMAGE_ID) -+ if (IX_SUCCESS != ixNpeDlNpeStopAndReset(IX_NPEDL_NPEID_NPEB)) - { -- if (IX_SUCCESS != ixNpeDlNpeStopAndReset(IX_NPEDL_NPEID_NPEB)) -- { -- P_NOTICE("Error Halting NPE for Ethernet port %d!\n", portId); -- } -+ P_NOTICE("Error Halting NPE for Ethernet port %d!\n", portId); - } -- if (default_npeImageId[portId] == IX_ETH_NPE_C_IMAGE_ID) -+ } -+ if (default_npeImageId[portId] == IX_ETH_NPE_C_IMAGE_ID) -+ { -+ if (IX_SUCCESS != ixNpeDlNpeStopAndReset(IX_NPEDL_NPEID_NPEC)) - { -- if (IX_SUCCESS != ixNpeDlNpeStopAndReset(IX_NPEDL_NPEID_NPEC)) -- { -- P_NOTICE("Error Halting NPE for Ethernet port %d!\n", portId); -- } -+ P_NOTICE("Error Halting NPE for Ethernet port %d!\n", portId); - } -- unregister_netdev(dev); -- kfree(dev->priv); -- dev->priv = NULL; - } - } - - TRACE; - -+ driver_unregister(&npe_eth_driver); -+ platform_device_unregister(&npe_eth_devs[1]); -+ platform_device_unregister(&npe_eth_devs[0]); -+ -+ TRACE; -+ - P_VERBOSE("IXP425 NPE Ethernet driver software uninstalled\n"); - } - - #endif /* MODULE */ - -+module_init(ixp425_eth_init); -+module_exit(ixp425_eth_exit); -+ -+ - diff --git a/recipes/ixp425-eth/ixp425-eth-1.2/makefile.patch b/recipes/ixp425-eth/ixp425-eth-1.2/makefile.patch deleted file mode 100644 index f26c28e351..0000000000 --- a/recipes/ixp425-eth/ixp425-eth-1.2/makefile.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ./Makefile 2005-10-01 00:36:42.634757244 -0700 -+++ ./Makefile 2005-10-01 00:39:00.107407852 -0700 -@@ -6,7 +6,7 @@ - - OSAL_DIR := $(IX_XSCALE_SW)/../ixp_osal - CFLAGS_ixp425_eth.o = -DWall \ -- -I$(IX_XSCALE_SW)/src/include \ -+ -I$(IXP4XX_CSR_DIR) \ - -I$(OSAL_DIR)/ \ - -I$(OSAL_DIR)/os/linux/include/ \ - -I$(OSAL_DIR)/os/linux/include/modules/ \ diff --git a/recipes/ixp425-eth/ixp425-eth_1.1.bb b/recipes/ixp425-eth/ixp425-eth_1.1.bb deleted file mode 100644 index 92e11e3fd2..0000000000 --- a/recipes/ixp425-eth/ixp425-eth_1.1.bb +++ /dev/null @@ -1,46 +0,0 @@ -DEPENDS = "ixp4xx-csr patcher-native" -LICENSE = "GPL" -SRC_URI = "http://www.intel.com/design/network/swsup/ixp400LinuxEthernetDriverPatch-1_1.zip \ - http://nslu.sourceforge.net/downloads/ixp425_eth.c.patch \ - file://makefile.patch;patch=1 \ - file://ethhdr.patch;patch=1 \ - file://intdriven.patch;patch=1 \ - file://pollcontroller.patch;patch=1 \ - file://mm4.patch;patch=1" -SRC_URI += "file://2.6.13.patch;patch=1" -SRC_URI += "file://2.6.14.patch;patch=1" -SRC_URI += "file://modprobe.conf" -PR = "r15" - -RDEPENDS = "ixp4xx-csr" - -S = "${WORKDIR}" - -COMPATIBLE_HOST = "^armeb-linux.*" - -PROVIDES = "virtual/ixp-eth" -RPROVIDES = "ixp-eth" - -inherit module - -do_pre_patch () { - patcher -p 0 -i ixp425_eth_1_1_update_nf_bridge.patch - patcher -f -p 0 -i ixp425_eth.c.patch -} - -addtask pre_patch before do_patch - -do_compile () { - unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS - oe_runmake 'KDIR=${STAGING_KERNEL_DIR}' \ - 'CC=${KERNEL_CC}' \ - 'LD=${KERNEL_LD}' \ - 'EXTRA_CFLAGS=-I${STAGING_INCDIR}/linux/ixp4xx-csr -I${STAGING_KERNEL_DIR}/include -DCPU=33 -DXSCALE=33' -} - -do_install () { - install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net - install -m 0644 ixp425_eth.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net/ - install -d ${D}${sysconfdir}/modprobe.d - install -m 0644 modprobe.conf ${D}${sysconfdir}/modprobe.d/eth0 -} diff --git a/recipes/ixp425-eth/ixp425-eth_1.2.bb b/recipes/ixp425-eth/ixp425-eth_1.2.bb deleted file mode 100644 index 9d537d9126..0000000000 --- a/recipes/ixp425-eth/ixp425-eth_1.2.bb +++ /dev/null @@ -1,46 +0,0 @@ -# This is the Intel GPL IXP4XX ethernet driver (Linux) plus patches -# to make it work on 2.6 kernels. -# -LICENSE = "GPL" -SRC_URI = "ftp://download.intel.com/design/network/swsup/ixp400linuxethernetdriverpatch-1_2.zip" -SRC_URI += "file://ixp400linuxethernetdriver-1_2-kernel26_hr_20050929.patch;patch=1" -SRC_URI += "file://makefile.patch;patch=1" -SRC_URI += "file://2.6.13.patch;patch=1" -SRC_URI += "file://2.6.14.patch;patch=1" -SRC_URI += "file://modprobe.conf" -PR = "r4" - -DEPENDS = "ixp4xx-csr" -RDEPENDS = "ixp4xx-csr" - -S = "${WORKDIR}" - -COMPATIBLE_HOST = "^armeb-linux.*" - -PROVIDES = "virtual/ixp-eth" -RPROVIDES = "ixp-eth" - -inherit module - -# This is a somewhat arbitrary choice: -OSAL_DIR = "${STAGING_KERNEL_DIR}/ixp_osal" - -EXTRA_OEMAKE = "'CC=${KERNEL_CC}' \ - 'LD=${KERNEL_LD}' \ - 'IXP4XX_CSR_DIR=${STAGING_INCDIR}/linux/ixp4xx-csr' \ - 'OSAL_DIR=${OSAL_DIR}' \ - 'LINUX_SRC=${STAGING_KERNEL_DIR}' \ - 'LINUX_CROSS_COMPILE=${HOST_PREFIX}' \ - " - -do_compile () { - unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS - oe_runmake -} - -do_install () { - install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net - install -m 0644 ixp425_eth.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/net/ - install -d ${D}${sysconfdir}/modprobe.d - install -m 0644 modprobe.conf ${D}${sysconfdir}/modprobe.d/eth0 -} diff --git a/recipes/ixp4xx/ixp-osal-1.5/2.6.patch b/recipes/ixp4xx/ixp-osal-1.5/2.6.patch deleted file mode 100644 index 3e47fe28de..0000000000 --- a/recipes/ixp4xx/ixp-osal-1.5/2.6.patch +++ /dev/null @@ -1,413 +0,0 @@ -diff -Naur ixp_osal.orig/Makefile ixp_osal/Makefile ---- ixp_osal.orig/Makefile 2005-08-24 00:16:37.000000000 +0200 -+++ ixp_osal/Makefile 2005-08-24 00:18:02.000000000 +0200 -@@ -172,7 +172,7 @@ - - # TODO push this to linux make - ifeq ($(IX_OSAL_MK_HOST_OS), linux) --INCLUDE_DIRS += $(LINUX_SRC)/include/asm-arm/arch-ixp425/ -+INCLUDE_DIRS += $(LINUX_SRC)/include/asm-arm/arch-ixp4xx/ - endif - - CFLAGS += $(INCLUDE_DIRS:%=-I%) -diff -Naur ixp_osal.orig/include/linux-2.6.h ixp_osal/include/linux-2.6.h ---- ixp_osal.orig/include/linux-2.6.h 1970-01-01 01:00:00.000000000 +0100 -+++ ixp_osal/include/linux-2.6.h 2005-08-26 15:20:23.000000000 +0200 -@@ -0,0 +1,52 @@ -+/* */ -+ -+#include "asm/page.h" -+ -+#if !defined (IXP425_TIMER_BASE_PHYS) -+# define IXP425_TIMER_BASE_PHYS IXP4XX_TIMER_BASE_PHYS -+#endif -+#if !defined (IRQ_IXP425_XSCALE_PMU) -+# define IRQ_IXP425_XSCALE_PMU IRQ_IXP4XX_XSCALE_PMU -+#endif -+#if !defined (IXP425_QMGR_BASE_PHYS) -+# define IXP425_QMGR_BASE_PHYS IXP4XX_QMGR_BASE_PHYS -+#endif -+#if !defined (IXP425_PERIPHERAL_BASE_PHYS) -+# define IXP425_PERIPHERAL_BASE_PHYS IXP4XX_PERIPHERAL_BASE_PHYS -+#endif -+#if !defined (IXP425_PERIPHERAL_BASE_VIRT) -+# define IXP425_PERIPHERAL_BASE_VIRT IXP4XX_PERIPHERAL_BASE_VIRT -+#endif -+#if !defined (IXP425_EXP_CFG_BASE_PHYS) -+# define IXP425_EXP_CFG_BASE_PHYS IXP4XX_EXP_CFG_BASE_PHYS -+#endif -+#if !defined (IXP425_EXP_CFG_BASE_VIRT) -+# define IXP425_EXP_CFG_BASE_VIRT IXP4XX_EXP_CFG_BASE_VIRT -+#endif -+#if !defined (IXP425_PCI_CFG_BASE_PHYS) -+# define IXP425_PCI_CFG_BASE_PHYS IXP4XX_PCI_CFG_BASE_PHYS -+#endif -+#if !defined (IXP425_PCI_CFG_BASE_VIRT) -+# define IXP425_PCI_CFG_BASE_VIRT IXP4XX_PCI_CFG_BASE_VIRT -+#endif -+#if !defined (IXP425_EXP_BUS_BASE2_PHYS) -+# define IXP425_EXP_BUS_BASE2_PHYS IXP4XX_EXP_BUS_CS2_BASE_PHYS -+#endif -+#if !defined (IXP425_EthA_BASE_PHYS) -+# define IXP425_EthA_BASE_PHYS (IXP4XX_PERIPHERAL_BASE_PHYS + 0x9000) -+#endif -+#if !defined (IXP425_EthB_BASE_PHYS) -+# define IXP425_EthB_BASE_PHYS (IXP4XX_PERIPHERAL_BASE_PHYS + 0xA000) -+#endif -+#if !defined (IXP425_ICMR) -+# define IXP425_ICMR IXP4XX_ICMR -+#endif -+#if !defined (IXP425_USB_BASE_PHYS) -+# define IXP425_USB_BASE_PHYS IXP4XX_USB_BASE_PHYS -+#endif -+#if !defined (IXP425_INTC_BASE_PHYS) -+# define IXP425_INTC_BASE_PHYS IXP4XX_INTC_BASE_PHYS -+#endif -+#if !defined (IRQ_IXP425_USB) -+# define IRQ_IXP425_USB IRQ_IXP4XX_USB -+#endif -diff -Naur ixp_osal.orig/os/linux/include/core/IxOsalOs.h ixp_osal/os/linux/include/core/IxOsalOs.h ---- ixp_osal.orig/os/linux/include/core/IxOsalOs.h 2005-08-24 00:16:37.000000000 +0200 -+++ ixp_osal/os/linux/include/core/IxOsalOs.h 2005-08-26 01:56:22.000000000 +0200 -@@ -56,6 +56,7 @@ - #include <linux/cache.h> - #include <linux/mm.h> - #include <linux/config.h> -+#include <linux/version.h> - #include <asm/pgalloc.h> - - /** -@@ -66,9 +67,23 @@ - - #define IX_OSAL_OS_MMU_PHYS_TO_VIRT(addr) ((addr) ? phys_to_virt((unsigned int)(addr)) : 0) - --#define IX_OSAL_OS_CACHE_INVALIDATE(addr, size) ( invalidate_dcache_range((__u32)addr, (__u32)addr + size )) -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) -+/* -+ * 2.6 kernels do not export the required cache functions. -+ */ -+extern void ixOsalCacheInvalidateRange(unsigned long start, unsigned long size); -+extern void ixOsalCacheFlushRange(unsigned long start, unsigned long size); -+ -+#define IX_OSAL_OS_CACHE_INVALIDATE(addr, size) \ -+ixOsalCacheInvalidateRange((unsigned long)addr, (unsigned long)addr + size) -+#define IX_OSAL_OS_CACHE_FLUSH(addr, size) \ -+ixOsalCacheFlushRange((unsigned long)addr, (unsigned long)addr + size ) - -+#else -+ -+#define IX_OSAL_OS_CACHE_INVALIDATE(addr, size) ( invalidate_dcache_range((__u32)addr, (__u32)addr + size )) - #define IX_OSAL_OS_CACHE_FLUSH(addr, size) ( clean_dcache_range((__u32)addr, (__u32)addr + size )) -+#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) */ - - #define printf printk /* For backword compatibility, needs to move to better location */ - -diff -Naur ixp_osal.orig/os/linux/include/platforms/ixp400/IxOsalOsIxp400.h ixp_osal/os/linux/include/platforms/ixp400/IxOsalOsIxp400.h ---- ixp_osal.orig/os/linux/include/platforms/ixp400/IxOsalOsIxp400.h 2005-08-24 00:16:37.000000000 +0200 -+++ ixp_osal/os/linux/include/platforms/ixp400/IxOsalOsIxp400.h 2005-08-26 15:20:23.000000000 +0200 -@@ -53,6 +53,8 @@ - #include "asm/hardware.h" - #include "asm/arch/irqs.h" - -+#include <linux-2.6.h> /* Glue */ -+ - /* physical addresses to be used when requesting memory with IX_OSAL_MEM_MAP */ - #define IX_OSAL_IXP400_INTC_PHYS_BASE IXP425_INTC_BASE_PHYS - #define IX_OSAL_IXP400_GPIO_PHYS_BASE IXP425_GPIO_BASE_PHYS -@@ -108,7 +110,6 @@ - #define IX_OSAL_IXP400_NPEB_VIRT_BASE IXP425_NPEB_BASE_VIRT - #define IX_OSAL_IXP400_NPEC_VIRT_BASE IXP425_NPEC_BASE_VIRT - #define IX_OSAL_IXP400_PERIPHERAL_VIRT_BASE IXP425_PERIPHERAL_BASE_VIRT --#define IX_OSAL_IXP400_QMGR_VIRT_BASE IXP425_QMGR_BASE_VIRT - #define IX_OSAL_IXP400_OSTS_VIRT_BASE IXP425_TIMER_BASE_VIRT - #define IX_OSAL_IXP400_USB_VIRT_BASE IXP425_USB_BASE_VIRT - #define IX_OSAL_IXP400_EXP_CFG_VIRT_BASE IXP425_EXP_CFG_BASE_VIRT -@@ -239,12 +240,21 @@ - * Queue Manager - */ - { -+#ifdef IXP425_QMGR_BASE_VIRT - IX_OSAL_STATIC_MAP, /* type */ - IX_OSAL_IXP400_QMGR_PHYS_BASE, /* physicalAddress */ - IX_OSAL_IXP400_QMGR_MAP_SIZE, /* size */ - IX_OSAL_IXP400_QMGR_VIRT_BASE, /* virtualAddress */ - NULL, /* mapFunction */ - NULL, /* unmapFunction */ -+#else -+ IX_OSAL_DYNAMIC_MAP, /* type */ -+ IX_OSAL_IXP400_QMGR_PHYS_BASE, /* physicalAddress */ -+ IX_OSAL_IXP400_QMGR_MAP_SIZE, /* size */ -+ 0, /* virtualAddress */ -+ ixOsalLinuxMemMap, /* mapFunction */ -+ ixOsalLinuxMemUnmap, /* unmapFunction */ -+#endif - 0, /* refCount */ - IX_OSAL_BE | IX_OSAL_LE_DC, /* endianType */ - "qMgr" /* name */ -diff -Naur ixp_osal.orig/os/linux/make/macros.mk ixp_osal/os/linux/make/macros.mk ---- ixp_osal.orig/os/linux/make/macros.mk 2005-08-24 00:16:37.000000000 +0200 -+++ ixp_osal/os/linux/make/macros.mk 2005-08-26 15:17:37.000000000 +0200 -@@ -71,10 +71,12 @@ - ################################################################ - # Linux Compiler & linker commands - --ifeq ($(IX_OSAL_MK_TARGET_ENDIAN), linuxbe) --LINUX_CROSS_COMPILE := $(HARDHAT_BASE)/devkit/arm/xscale_be/bin/xscale_be- --else --LINUX_CROSS_COMPILE := $(HARDHAT_BASE)/devkit/arm/xscale_le/bin/xscale_le- -+ifeq "$(LINUX_CROSS_COMPILE)" "" -+ ifeq ($(IX_OSAL_MK_TARGET_ENDIAN), linuxbe) -+ LINUX_CROSS_COMPILE := $(HARDHAT_BASE)/devkit/arm/xscale_be/bin/xscale_be- -+ else -+ LINUX_CROSS_COMPILE := $(HARDHAT_BASE)/devkit/arm/xscale_le/bin/xscale_le- -+ endif - endif - - LINUX_SRC := $($(IX_TARGET)_KERNEL_DIR) -@@ -91,9 +93,11 @@ - LINUX_MACH_CFLAGS := -D__LINUX_ARM_ARCH__=5 -mcpu=xscale -mtune=xscale - - CFLAGS := -D__KERNEL__ -I$(LINUX_SRC)/include -Wall -Wno-trigraphs -fno-common \ -- -pipe -mapcs-32 -mshort-load-bytes -msoft-float -DMODULE \ -+ -pipe -mapcs-32 -msoft-float -DMODULE \ - -D__linux -DCPU=33 -DXSCALE=33 $(LINUX_MACH_CFLAGS) -DEXPORT_SYMTAB - -+# -mshort-load-bytes removed by Marc Singer's patch TODO(hannes) why? -+ - # Linux linker flags - LDFLAGS := -r - -diff -Naur ixp_osal.orig/os/linux/src/core/IxOsalOsCacheMMU.c ixp_osal/os/linux/src/core/IxOsalOsCacheMMU.c ---- ixp_osal.orig/os/linux/src/core/IxOsalOsCacheMMU.c 2005-08-24 00:16:37.000000000 +0200 -+++ ixp_osal/os/linux/src/core/IxOsalOsCacheMMU.c 2005-08-26 01:56:22.000000000 +0200 -@@ -210,3 +210,59 @@ - free_pages ((unsigned int) memptr, order); - } - } -+ -+ -+/* -+ * 2.6 kernels do not export the required cache functions. -+ */ -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) -+ -+#define _IX_STR(x) #x -+#define IX_STR(x) _IX_STR(x) -+#define IX_CLM IX_STR(IX_OSAL_CACHE_LINE_SIZE-1) -+ -+/* -+ * reimplementation of kernel's invalidate_dcache_range() -+ */ -+void -+ixOsalCacheInvalidateRange(unsigned long start, unsigned long size) -+{ -+ __asm__ -+ (" tst %0, #" IX_CLM "\n" -+ " mcrne p15, 0, %0, c7, c10, 1 @ clean D cache line\n" -+ " bic %0, %0, #" IX_CLM "\n" -+ " tst %1, #" IX_CLM "\n" -+ " mcrne p15, 0, %1, c7, c10, 1 @ clean D cache line\n" -+ "1: mcr p15, 0, %0, c7, c6, 1 @ invalidate D cache line\n" -+ " add %0, %0, #" IX_STR(IX_OSAL_CACHE_LINE_SIZE) "\n" -+ " cmp %0, %1\n" -+ " blo 1b\n" -+ " mcr p15, 0, %0, c7, c10, 4 @ drain write & fill buffer\n" -+ : /* no output */ -+ : "r"(start), "r"(size) -+ : "cc"); -+} -+ -+/* -+ * reimplementation of kernel's invalidate_dcache_range() -+ */ -+void -+ixOsalCacheFlushRange(unsigned long start, unsigned long size) -+{ -+ __asm__ -+ (" bic %0, %0, #" IX_CLM "\n" -+ "1: mcr p15, 0, %0, c7, c10, 1 @ clean D cache line\n" -+ " add %0, %0, #" IX_STR(IX_OSAL_CACHE_LINE_SIZE) "\n" -+ " cmp %0, %1\n" -+ " blo 1b\n" -+ " mcr p15, 0, %0, c7, c10, 4 @ drain write & fill buffer\n" -+ : /* no output */ -+ : "r"(start), "r"(size) -+ : "cc"); -+} -+ -+#undef _IX_STR -+#undef IX_STR -+#undef IX_CLM -+ -+#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) */ -diff -Naur ixp_osal.orig/os/linux/src/core/IxOsalOsMsgQ.c ixp_osal/os/linux/src/core/IxOsalOsMsgQ.c ---- ixp_osal.orig/os/linux/src/core/IxOsalOsMsgQ.c 2005-08-24 00:16:37.000000000 +0200 -+++ ixp_osal/os/linux/src/core/IxOsalOsMsgQ.c 2005-08-24 00:18:02.000000000 +0200 -@@ -45,9 +45,9 @@ - * -- End Intel Copyright Notice -- - */ - #include <linux/linkage.h> -+#include <linux/spinlock.h> - #include <linux/ipc.h> - #include <linux/msg.h> --#include <linux/spinlock.h> - #include <linux/interrupt.h> - - #include "IxOsal.h" -diff -Naur ixp_osal.orig/os/linux/src/core/IxOsalOsSemaphore.c ixp_osal/os/linux/src/core/IxOsalOsSemaphore.c ---- ixp_osal.orig/os/linux/src/core/IxOsalOsSemaphore.c 2005-08-24 00:16:37.000000000 +0200 -+++ ixp_osal/os/linux/src/core/IxOsalOsSemaphore.c 2005-08-26 15:58:16.000000000 +0200 -@@ -46,7 +46,7 @@ - */ - - #include <linux/slab.h> --#include <asm-arm/hardirq.h> -+#include <linux/hardirq.h> - #include "IxOsal.h" - - /* Define a large number */ -@@ -93,7 +93,7 @@ - { - - IX_STATUS ixStatus = IX_SUCCESS; -- UINT32 timeoutTime; -+ unsigned long timeoutTime; - - if (sid == NULL) - { -diff -Naur ixp_osal.orig/os/linux/src/core/IxOsalOsServices.c ixp_osal/os/linux/src/core/IxOsalOsServices.c ---- ixp_osal.orig/os/linux/src/core/IxOsalOsServices.c 2005-08-24 00:16:37.000000000 +0200 -+++ ixp_osal/os/linux/src/core/IxOsalOsServices.c 2005-08-26 15:53:22.000000000 +0200 -@@ -53,6 +53,7 @@ - #include <linux/time.h> - #include <linux/sched.h> - #include <linux/slab.h> -+#include <linux/interrupt.h> - - #include "IxOsal.h" - -@@ -88,7 +89,7 @@ - /* - * General interrupt handler - */ --static void -+static irqreturn_t - ixOsalOsIsrProxy (int irq, void *dev_id, struct pt_regs *regs) - { - IxOsalInfoType *isr_proxy_info = (IxOsalInfoType *) dev_id; -@@ -97,6 +98,7 @@ - "ixOsalOsIsrProxy: Interrupt used before ixOsalIrqBind was invoked"); - - isr_proxy_info->routine (isr_proxy_info->parameter); -+ return IRQ_HANDLED; - } - - /* -@@ -104,11 +106,12 @@ - * This handler saves the interrupted Program Counter (PC) - * into a global variable - */ --static void -+static irqreturn_t - ixOsalOsIsrProxyWithPC (int irq, void *dev_id, struct pt_regs *regs) - { - ixOsalLinuxInterruptedPc = regs->ARM_pc; - ixOsalOsIsrProxy(irq, dev_id, regs); -+ return IRQ_HANDLED; - } - - /************************************** -@@ -190,10 +193,15 @@ - PUBLIC UINT32 - ixOsalIrqLock () - { -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) -+ unsigned long flags; -+ local_irq_save(flags); -+#else - UINT32 flags; - save_flags (flags); - cli (); -- return flags; -+#endif -+ return (UINT32)flags; - } - - /* Enable interrupts and task scheduling, -@@ -203,7 +211,11 @@ - PUBLIC void - ixOsalIrqUnlock (UINT32 lockKey) - { -+# if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) -+ local_irq_restore((unsigned long)lockKey); -+# else - restore_flags (lockKey); -+# endif - } - - PUBLIC UINT32 -@@ -315,10 +327,11 @@ - PUBLIC void - ixOsalSleep (UINT32 milliseconds) - { -- if (milliseconds != 0) -+ signed long delay = milliseconds*HZ; -+ if ( delay >= 1000 ) - { - current->state = TASK_INTERRUPTIBLE; -- schedule_timeout ((milliseconds * HZ) / 1000); -+ schedule_timeout (delay / 1000); - } - else - { -diff -Naur ixp_osal.orig/os/linux/src/core/IxOsalOsSymbols.c ixp_osal/os/linux/src/core/IxOsalOsSymbols.c ---- ixp_osal.orig/os/linux/src/core/IxOsalOsSymbols.c 2005-08-24 00:16:37.000000000 +0200 -+++ ixp_osal/os/linux/src/core/IxOsalOsSymbols.c 2005-08-30 19:19:33.000000000 +0200 -@@ -64,6 +64,10 @@ - - EXPORT_SYMBOL (ixOsalCacheDmaMalloc); - EXPORT_SYMBOL (ixOsalCacheDmaFree); -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) -+EXPORT_SYMBOL (ixOsalCacheInvalidateRange); -+EXPORT_SYMBOL (ixOsalCacheFlushRange); -+#endif - - EXPORT_SYMBOL (ixOsalThreadCreate); - EXPORT_SYMBOL (ixOsalThreadStart); -diff -Naur ixp_osal.orig/os/linux/src/core/IxOsalOsThread.c ixp_osal/os/linux/src/core/IxOsalOsThread.c ---- ixp_osal.orig/os/linux/src/core/IxOsalOsThread.c 2005-08-24 00:16:37.000000000 +0200 -+++ ixp_osal/os/linux/src/core/IxOsalOsThread.c 2005-08-26 00:50:32.000000000 +0200 -@@ -46,6 +46,7 @@ - */ - - #include <linux/sched.h> -+#include <linux/version.h> - - #include "IxOsal.h" - -@@ -65,11 +66,11 @@ - void *arg = IxOsalOsThreadData.arg; - static int seq = 0; - -- daemonize (); -+ daemonize ("IxOsal %d", ++seq); - -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)) - exit_files (current); -- -- snprintf(current->comm, sizeof(current->comm), "IxOsal %d", ++seq); -+#endif - - up (&IxOsalThreadMutex); - -diff -Naur ixp_osal.orig/os/linux/src/modules/ioMem/IxOsalOsIoMem.c ixp_osal/os/linux/src/modules/ioMem/IxOsalOsIoMem.c ---- ixp_osal.orig/os/linux/src/modules/ioMem/IxOsalOsIoMem.c 2005-08-24 00:16:37.000000000 +0200 -+++ ixp_osal/os/linux/src/modules/ioMem/IxOsalOsIoMem.c 2005-08-24 00:18:02.000000000 +0200 -@@ -45,6 +45,7 @@ - * -- End Intel Copyright Notice -- - */ - -+#include <asm/page.h> - #include <asm/io.h> - #include <linux/ioport.h> - diff --git a/recipes/ixp4xx/ixp-osal-2.0/2.6.patch b/recipes/ixp4xx/ixp-osal-2.0/2.6.patch deleted file mode 100644 index 6c143859a4..0000000000 --- a/recipes/ixp4xx/ixp-osal-2.0/2.6.patch +++ /dev/null @@ -1,363 +0,0 @@ -diff -Naur ixp_osal.orig/include/linux-2.6.h ixp_osal/include/linux-2.6.h ---- ixp_osal.orig/include/linux-2.6.h 1970-01-01 01:00:00.000000000 +0100 -+++ ixp_osal/include/linux-2.6.h 2005-08-26 15:20:23.000000000 +0200 -@@ -0,0 +1,52 @@ -+/* */ -+ -+#include "asm/page.h" -+ -+#if !defined (IXP425_TIMER_BASE_PHYS) -+# define IXP425_TIMER_BASE_PHYS IXP4XX_TIMER_BASE_PHYS -+#endif -+#if !defined (IRQ_IXP425_XSCALE_PMU) -+# define IRQ_IXP425_XSCALE_PMU IRQ_IXP4XX_XSCALE_PMU -+#endif -+#if !defined (IXP425_QMGR_BASE_PHYS) -+# define IXP425_QMGR_BASE_PHYS IXP4XX_QMGR_BASE_PHYS -+#endif -+#if !defined (IXP425_PERIPHERAL_BASE_PHYS) -+# define IXP425_PERIPHERAL_BASE_PHYS IXP4XX_PERIPHERAL_BASE_PHYS -+#endif -+#if !defined (IXP425_PERIPHERAL_BASE_VIRT) -+# define IXP425_PERIPHERAL_BASE_VIRT IXP4XX_PERIPHERAL_BASE_VIRT -+#endif -+#if !defined (IXP425_EXP_CFG_BASE_PHYS) -+# define IXP425_EXP_CFG_BASE_PHYS IXP4XX_EXP_CFG_BASE_PHYS -+#endif -+#if !defined (IXP425_EXP_CFG_BASE_VIRT) -+# define IXP425_EXP_CFG_BASE_VIRT IXP4XX_EXP_CFG_BASE_VIRT -+#endif -+#if !defined (IXP425_PCI_CFG_BASE_PHYS) -+# define IXP425_PCI_CFG_BASE_PHYS IXP4XX_PCI_CFG_BASE_PHYS -+#endif -+#if !defined (IXP425_PCI_CFG_BASE_VIRT) -+# define IXP425_PCI_CFG_BASE_VIRT IXP4XX_PCI_CFG_BASE_VIRT -+#endif -+#if !defined (IXP425_EXP_BUS_BASE2_PHYS) -+# define IXP425_EXP_BUS_BASE2_PHYS IXP4XX_EXP_BUS_CS2_BASE_PHYS -+#endif -+#if !defined (IXP425_EthA_BASE_PHYS) -+# define IXP425_EthA_BASE_PHYS (IXP4XX_PERIPHERAL_BASE_PHYS + 0x9000) -+#endif -+#if !defined (IXP425_EthB_BASE_PHYS) -+# define IXP425_EthB_BASE_PHYS (IXP4XX_PERIPHERAL_BASE_PHYS + 0xA000) -+#endif -+#if !defined (IXP425_ICMR) -+# define IXP425_ICMR IXP4XX_ICMR -+#endif -+#if !defined (IXP425_USB_BASE_PHYS) -+# define IXP425_USB_BASE_PHYS IXP4XX_USB_BASE_PHYS -+#endif -+#if !defined (IXP425_INTC_BASE_PHYS) -+# define IXP425_INTC_BASE_PHYS IXP4XX_INTC_BASE_PHYS -+#endif -+#if !defined (IRQ_IXP425_USB) -+# define IRQ_IXP425_USB IRQ_IXP4XX_USB -+#endif -diff -Naur ixp_osal.orig/os/linux/include/core/IxOsalOs.h ixp_osal/os/linux/include/core/IxOsalOs.h ---- ixp_osal.orig/os/linux/include/core/IxOsalOs.h 2005-08-24 00:16:37.000000000 +0200 -+++ ixp_osal/os/linux/include/core/IxOsalOs.h 2005-08-26 01:56:22.000000000 +0200 -@@ -56,6 +56,7 @@ - #include <linux/cache.h> - #include <linux/mm.h> - #include <linux/config.h> -+#include <linux/version.h> - #include <asm/pgalloc.h> - - /** -@@ -66,9 +67,23 @@ - - #define IX_OSAL_OS_MMU_PHYS_TO_VIRT(addr) ((addr) ? phys_to_virt((unsigned int)(addr)) : 0) - --#define IX_OSAL_OS_CACHE_INVALIDATE(addr, size) ( invalidate_dcache_range((__u32)addr, (__u32)addr + size )) -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) -+/* -+ * 2.6 kernels do not export the required cache functions. -+ */ -+extern void ixOsalCacheInvalidateRange(unsigned long start, unsigned long size); -+extern void ixOsalCacheFlushRange(unsigned long start, unsigned long size); -+ -+#define IX_OSAL_OS_CACHE_INVALIDATE(addr, size) \ -+ixOsalCacheInvalidateRange((unsigned long)addr, (unsigned long)addr + size) -+#define IX_OSAL_OS_CACHE_FLUSH(addr, size) \ -+ixOsalCacheFlushRange((unsigned long)addr, (unsigned long)addr + size ) - -+#else -+ -+#define IX_OSAL_OS_CACHE_INVALIDATE(addr, size) ( invalidate_dcache_range((__u32)addr, (__u32)addr + size )) - #define IX_OSAL_OS_CACHE_FLUSH(addr, size) ( clean_dcache_range((__u32)addr, (__u32)addr + size )) -+#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) */ - - #define printf printk /* For backword compatibility, needs to move to better location */ - -diff -Naur ixp_osal.orig/os/linux/src/core/IxOsalOsCacheMMU.c ixp_osal/os/linux/src/core/IxOsalOsCacheMMU.c ---- ixp_osal.orig/os/linux/src/core/IxOsalOsCacheMMU.c 2005-08-24 00:16:37.000000000 +0200 -+++ ixp_osal/os/linux/src/core/IxOsalOsCacheMMU.c 2005-08-26 01:56:22.000000000 +0200 -@@ -210,3 +210,59 @@ - free_pages ((unsigned int) memptr, order); - } - } -+ -+ -+/* -+ * 2.6 kernels do not export the required cache functions. -+ */ -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) -+ -+#define _IX_STR(x) #x -+#define IX_STR(x) _IX_STR(x) -+#define IX_CLM IX_STR(IX_OSAL_CACHE_LINE_SIZE-1) -+ -+/* -+ * reimplementation of kernel's invalidate_dcache_range() -+ */ -+void -+ixOsalCacheInvalidateRange(unsigned long start, unsigned long size) -+{ -+ __asm__ -+ (" tst %0, #" IX_CLM "\n" -+ " mcrne p15, 0, %0, c7, c10, 1 @ clean D cache line\n" -+ " bic %0, %0, #" IX_CLM "\n" -+ " tst %1, #" IX_CLM "\n" -+ " mcrne p15, 0, %1, c7, c10, 1 @ clean D cache line\n" -+ "1: mcr p15, 0, %0, c7, c6, 1 @ invalidate D cache line\n" -+ " add %0, %0, #" IX_STR(IX_OSAL_CACHE_LINE_SIZE) "\n" -+ " cmp %0, %1\n" -+ " blo 1b\n" -+ " mcr p15, 0, %0, c7, c10, 4 @ drain write & fill buffer\n" -+ : /* no output */ -+ : "r"(start), "r"(size) -+ : "cc"); -+} -+ -+/* -+ * reimplementation of kernel's invalidate_dcache_range() -+ */ -+void -+ixOsalCacheFlushRange(unsigned long start, unsigned long size) -+{ -+ __asm__ -+ (" bic %0, %0, #" IX_CLM "\n" -+ "1: mcr p15, 0, %0, c7, c10, 1 @ clean D cache line\n" -+ " add %0, %0, #" IX_STR(IX_OSAL_CACHE_LINE_SIZE) "\n" -+ " cmp %0, %1\n" -+ " blo 1b\n" -+ " mcr p15, 0, %0, c7, c10, 4 @ drain write & fill buffer\n" -+ : /* no output */ -+ : "r"(start), "r"(size) -+ : "cc"); -+} -+ -+#undef _IX_STR -+#undef IX_STR -+#undef IX_CLM -+ -+#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) */ -diff -Naur ixp_osal.orig/os/linux/src/core/IxOsalOsMsgQ.c ixp_osal/os/linux/src/core/IxOsalOsMsgQ.c ---- ixp_osal.orig/os/linux/src/core/IxOsalOsMsgQ.c 2005-08-24 00:16:37.000000000 +0200 -+++ ixp_osal/os/linux/src/core/IxOsalOsMsgQ.c 2005-08-24 00:18:02.000000000 +0200 -@@ -45,9 +45,9 @@ - * -- End Intel Copyright Notice -- - */ - #include <linux/linkage.h> -+#include <linux/spinlock.h> - #include <linux/ipc.h> - #include <linux/msg.h> --#include <linux/spinlock.h> - #include <linux/interrupt.h> - - #include "IxOsal.h" -diff -Naur ixp_osal.orig/os/linux/src/core/IxOsalOsSemaphore.c ixp_osal/os/linux/src/core/IxOsalOsSemaphore.c ---- ixp_osal.orig/os/linux/src/core/IxOsalOsSemaphore.c 2005-08-24 00:16:37.000000000 +0200 -+++ ixp_osal/os/linux/src/core/IxOsalOsSemaphore.c 2005-08-26 15:58:16.000000000 +0200 -@@ -46,7 +46,7 @@ - */ - - #include <linux/slab.h> --#include <asm-arm/hardirq.h> -+#include <linux/hardirq.h> - #include "IxOsal.h" - - /* Define a large number */ -@@ -93,7 +93,7 @@ - { - - IX_STATUS ixStatus = IX_SUCCESS; -- UINT32 timeoutTime; -+ unsigned long timeoutTime; - - if (sid == NULL) - { -diff -Naur ixp_osal.orig/os/linux/src/core/IxOsalOsSymbols.c ixp_osal/os/linux/src/core/IxOsalOsSymbols.c ---- ixp_osal.orig/os/linux/src/core/IxOsalOsSymbols.c 2005-08-24 00:16:37.000000000 +0200 -+++ ixp_osal/os/linux/src/core/IxOsalOsSymbols.c 2005-08-30 19:19:33.000000000 +0200 -@@ -64,6 +64,10 @@ - - EXPORT_SYMBOL (ixOsalCacheDmaMalloc); - EXPORT_SYMBOL (ixOsalCacheDmaFree); -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) -+EXPORT_SYMBOL (ixOsalCacheInvalidateRange); -+EXPORT_SYMBOL (ixOsalCacheFlushRange); -+#endif - - EXPORT_SYMBOL (ixOsalThreadCreate); - EXPORT_SYMBOL (ixOsalThreadStart); -diff -Naur ixp_osal.orig/os/linux/src/modules/ioMem/IxOsalOsIoMem.c ixp_osal/os/linux/src/modules/ioMem/IxOsalOsIoMem.c ---- ixp_osal.orig/os/linux/src/modules/ioMem/IxOsalOsIoMem.c 2005-08-24 00:16:37.000000000 +0200 -+++ ixp_osal/os/linux/src/modules/ioMem/IxOsalOsIoMem.c 2005-08-24 00:18:02.000000000 +0200 -@@ -45,6 +45,7 @@ - * -- End Intel Copyright Notice -- - */ - -+#include <asm/page.h> - #include <asm/io.h> - #include <linux/ioport.h> - ---- ixp_osal/os/linux/include/platforms/ixp400/IxOsalOsIxp400.h.orig 2005-04-17 20:56:27.000000000 -0700 -+++ ixp_osal/os/linux/include/platforms/ixp400/IxOsalOsIxp400.h 2005-10-01 16:27:05.566984144 -0700 -@@ -53,6 +53,8 @@ - #include "asm/hardware.h" - #include "asm/arch/irqs.h" - -+#include <linux-2.6.h> /* Glue */ -+ - /* physical addresses to be used when requesting memory with IX_OSAL_MEM_MAP */ - #define IX_OSAL_IXP400_INTC_PHYS_BASE IXP425_INTC_BASE_PHYS - #define IX_OSAL_IXP400_GPIO_PHYS_BASE IXP425_GPIO_BASE_PHYS -@@ -108,7 +110,6 @@ - #define IX_OSAL_IXP400_NPEB_VIRT_BASE IXP425_NPEB_BASE_VIRT - #define IX_OSAL_IXP400_NPEC_VIRT_BASE IXP425_NPEC_BASE_VIRT - #define IX_OSAL_IXP400_PERIPHERAL_VIRT_BASE IXP425_PERIPHERAL_BASE_VIRT --#define IX_OSAL_IXP400_QMGR_VIRT_BASE IXP425_QMGR_BASE_VIRT - #define IX_OSAL_IXP400_OSTS_VIRT_BASE IXP425_TIMER_BASE_VIRT - #define IX_OSAL_IXP400_USB_VIRT_BASE IXP425_USB_BASE_VIRT - #define IX_OSAL_IXP400_EXP_CFG_VIRT_BASE IXP425_EXP_CFG_BASE_VIRT ---- ixp_osal/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Sys.h.orig 2005-04-17 20:56:27.000000000 -0700 -+++ ixp_osal/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Sys.h 2005-10-01 16:31:05.670092880 -0700 -@@ -85,12 +85,21 @@ - * Queue Manager - */ - { -+#ifdef IXP425_QMGR_BASE_VIRT - IX_OSAL_STATIC_MAP, /* type */ - IX_OSAL_IXP400_QMGR_PHYS_BASE, /* physicalAddress */ - IX_OSAL_IXP400_QMGR_MAP_SIZE, /* size */ - IX_OSAL_IXP400_QMGR_VIRT_BASE, /* virtualAddress */ - NULL, /* mapFunction */ - NULL, /* unmapFunction */ -+#else -+ IX_OSAL_DYNAMIC_MAP, /* type */ -+ IX_OSAL_IXP400_QMGR_PHYS_BASE, /* physicalAddress */ -+ IX_OSAL_IXP400_QMGR_MAP_SIZE, /* size */ -+ 0, /* virtualAddress */ -+ ixOsalLinuxMemMap, /* mapFunction */ -+ ixOsalLinuxMemUnmap, /* unmapFunction */ -+#endif - 0, /* refCount */ - IX_OSAL_BE | IX_OSAL_LE_DC, /* endianType */ - "qMgr" /* name */ ---- ixp_osal/os/linux/src/core/IxOsalOsServices.c.orig 2005-04-17 20:56:28.000000000 -0700 -+++ ixp_osal/os/linux/src/core/IxOsalOsServices.c 2005-10-01 16:37:00.876444607 -0700 -@@ -54,6 +54,7 @@ - #include <linux/time.h> - #include <linux/sched.h> - #include <linux/slab.h> -+#include <linux/interrupt.h> - - #include "IxOsal.h" - -@@ -89,7 +90,7 @@ - /* - * General interrupt handler - */ --static void -+static irqreturn_t - ixOsalOsIsrProxy (int irq, void *dev_id, struct pt_regs *regs) - { - IxOsalInfoType *isr_proxy_info = (IxOsalInfoType *) dev_id; -@@ -98,6 +99,7 @@ - "ixOsalOsIsrProxy: Interrupt used before ixOsalIrqBind was invoked"); - - isr_proxy_info->routine (isr_proxy_info->parameter); -+ return IRQ_HANDLED; - } - - /* -@@ -105,11 +107,12 @@ - * This handler saves the interrupted Program Counter (PC) - * into a global variable - */ --static void -+static irqreturn_t - ixOsalOsIsrProxyWithPC (int irq, void *dev_id, struct pt_regs *regs) - { - ixOsalLinuxInterruptedPc = regs->ARM_pc; - ixOsalOsIsrProxy(irq, dev_id, regs); -+ return IRQ_HANDLED; - } - - /************************************** -@@ -191,10 +194,15 @@ - PUBLIC UINT32 - ixOsalIrqLock () - { -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) -+ unsigned long flags; -+ local_irq_save(flags); -+#else - UINT32 flags; - save_flags (flags); - cli (); -- return flags; -+#endif -+ return (UINT32)flags; - } - - /* Enable interrupts and task scheduling, -@@ -204,7 +212,11 @@ - PUBLIC void - ixOsalIrqUnlock (UINT32 lockKey) - { -+# if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) -+ local_irq_restore((unsigned long)lockKey); -+# else - restore_flags (lockKey); -+# endif - } - - PUBLIC UINT32 -@@ -329,7 +341,7 @@ - PUBLIC void - ixOsalSleep (UINT32 milliseconds) - { -- if (milliseconds != 0) -+ if (milliseconds*HZ >= 1000) - { - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout ((milliseconds * HZ) / 1000); ---- ixp_osal/os/linux/src/core/IxOsalOsThread.c.orig 2005-04-17 20:56:28.000000000 -0700 -+++ ixp_osal/os/linux/src/core/IxOsalOsThread.c 2005-10-01 16:38:58.227829064 -0700 -@@ -46,6 +46,7 @@ - */ - - #include <linux/sched.h> -+#include <linux/version.h> - - #include "IxOsal.h" - -@@ -65,12 +66,12 @@ - void *arg = IxOsalOsThreadData.arg; - static int seq = 0; - -- daemonize (); -+ daemonize ("IxOsal %d", ++seq); -+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)) - reparent_to_init (); - - exit_files (current); -- -- snprintf(current->comm, sizeof(current->comm), "IxOsal %d", ++seq); -+#endif - - up (&IxOsalThreadMutex); - diff --git a/recipes/ixp4xx/ixp-osal-2.0/Makefile.patch b/recipes/ixp4xx/ixp-osal-2.0/Makefile.patch deleted file mode 100644 index f852ea2b26..0000000000 --- a/recipes/ixp4xx/ixp-osal-2.0/Makefile.patch +++ /dev/null @@ -1,27 +0,0 @@ -diff -Naur ixp_osal.orig/Makefile ixp_osal/Makefile ---- ixp_osal.orig/Makefile 2005-08-24 00:16:37.000000000 +0200 -+++ ixp_osal/Makefile 2005-08-24 00:18:02.000000000 +0200 -@@ -172,7 +172,7 @@ - - # TODO push this to linux make - ifeq ($(IX_OSAL_MK_HOST_OS), linux) --INCLUDE_DIRS += $(LINUX_SRC)/include/asm-arm/arch-ixp425/ -+INCLUDE_DIRS += $(LINUX_SRC)/include/asm-arm/arch-ixp4xx/ - endif - - CFLAGS += $(INCLUDE_DIRS:%=-I%) ---- ixp_osal/os/linux/make/macros.mk.orig 2005-10-01 15:50:19.544167880 -0700 -+++ ixp_osal/os/linux/make/macros.mk 2005-10-01 15:50:43.053647239 -0700 -@@ -88,10 +88,10 @@ - # Compiler & linker options - - # Compiler flags --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 \ -+ -pipe -mapcs-32 -msoft-float -DMODULE \ - -D__linux -DCPU=33 -DXSCALE=33 $(LINUX_MACH_CFLAGS) -DEXPORT_SYMTAB - - # Linux linker flags diff --git a/recipes/ixp4xx/ixp-osal-2.0/le.patch b/recipes/ixp4xx/ixp-osal-2.0/le.patch deleted file mode 100644 index ecb93d7d76..0000000000 --- a/recipes/ixp4xx/ixp-osal-2.0/le.patch +++ /dev/null @@ -1,50 +0,0 @@ -diff -urp ixp_osal/.pc/le.patch/include/modules/ioMem/IxOsalMemAccess.h ixp_osal/include/modules/ioMem/IxOsalMemAccess.h ---- ixp_osal/.pc/le.patch/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) - -diff -urp ixp_osal/.pc/le.patch/os/linux/include/platforms/ixp400/IxOsalOsIxp400CustomizedMapping.h ixp_osal/os/linux/include/platforms/ixp400/IxOsalOsIxp400CustomizedMapping.h ---- ixp_osal/.pc/le.patch/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 */ - -diff -urp ixp_osal/.pc/le.patch/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Sys.h ixp_osal/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Sys.h ---- ixp_osal/.pc/le.patch/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,7 +101,7 @@ IxOsalMemoryMap ixOsalGlobalMemoryMap[] - ixOsalLinuxMemUnmap, /* unmapFunction */ - #endif - 0, /* refCount */ -- IX_OSAL_BE | IX_OSAL_LE_DC, /* endianType */ -+ IX_OSAL_BE | IX_OSAL_LE_AC, /* endianType */ - "qMgr" /* name */ - }, - -diff -bBdurN hannes/ixp_osal/include/modules/ioMem/IxOsalIoMem.h merged/ixp_osal/include/modules/ioMem/IxOsalIoMem.h ---- 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) diff --git a/recipes/ixp4xx/ixp-osal-2.1.1/2.6.patch b/recipes/ixp4xx/ixp-osal-2.1.1/2.6.patch deleted file mode 100644 index 9725b447c8..0000000000 --- a/recipes/ixp4xx/ixp-osal-2.1.1/2.6.patch +++ /dev/null @@ -1,143 +0,0 @@ - os/linux/src/core/IxOsalOsMsgQ.c | 2 +- - os/linux/src/core/IxOsalOsSemaphore.c | 6 +++--- - os/linux/src/core/IxOsalOsServices.c | 20 ++++++++++++++++---- - os/linux/src/core/IxOsalOsThread.c | 7 +------ - 4 files changed, 21 insertions(+), 14 deletions(-) - ---- ixp_osal/os/linux/src/core/IxOsalOsMsgQ.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp_osal/os/linux/src/core/IxOsalOsMsgQ.c 1970-01-01 00:00:00.000000000 +0000 -@@ -45,9 +45,9 @@ - * -- End Intel Copyright Notice -- - */ - #include <linux/linkage.h> -+#include <linux/spinlock.h> - #include <linux/ipc.h> - #include <linux/msg.h> --#include <linux/spinlock.h> - #include <linux/interrupt.h> - - #include "IxOsal.h" ---- ixp_osal/os/linux/src/core/IxOsalOsSemaphore.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp_osal/os/linux/src/core/IxOsalOsSemaphore.c 1970-01-01 00:00:00.000000000 +0000 -@@ -46,7 +46,7 @@ - */ - - #include <linux/slab.h> --#include <asm-arm/hardirq.h> -+#include <linux/hardirq.h> - #include "IxOsal.h" - - /* Define a large number */ -@@ -93,7 +93,7 @@ ixOsalSemaphoreWait (IxOsalOsSemaphore * - { - - IX_STATUS ixStatus = IX_SUCCESS; -- UINT32 timeoutTime; -+ unsigned long timeoutTime; - - if (sid == NULL) - { -@@ -261,7 +261,7 @@ ixOsalMutexInit (IxOsalMutex * mutex) - PUBLIC IX_STATUS - ixOsalMutexLock (IxOsalMutex * mutex, INT32 timeout) - { -- UINT32 timeoutTime; -+ unsigned long timeoutTime; - - if (in_irq ()) - { ---- ixp_osal/os/linux/src/core/IxOsalOsServices.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp_osal/os/linux/src/core/IxOsalOsServices.c 1970-01-01 00:00:00.000000000 +0000 -@@ -54,6 +54,7 @@ - #include <linux/time.h> - #include <linux/sched.h> - #include <linux/slab.h> -+#include <linux/interrupt.h> - - #include "IxOsal.h" - -@@ -89,7 +90,7 @@ static IxOsalInfoType IxOsalInfo[NR_IRQS - /* - * General interrupt handler - */ --static void -+static irqreturn_t - ixOsalOsIsrProxy (int irq, void *dev_id, struct pt_regs *regs) - { - IxOsalInfoType *isr_proxy_info = (IxOsalInfoType *) dev_id; -@@ -98,6 +99,7 @@ ixOsalOsIsrProxy (int irq, void *dev_id, - "ixOsalOsIsrProxy: Interrupt used before ixOsalIrqBind was invoked"); - - isr_proxy_info->routine (isr_proxy_info->parameter); -+ return IRQ_HANDLED; - } - - /* -@@ -105,11 +107,12 @@ ixOsalOsIsrProxy (int irq, void *dev_id, - * This handler saves the interrupted Program Counter (PC) - * into a global variable - */ --static void -+static irqreturn_t - ixOsalOsIsrProxyWithPC (int irq, void *dev_id, struct pt_regs *regs) - { - ixOsalLinuxInterruptedPc = regs->ARM_pc; - ixOsalOsIsrProxy(irq, dev_id, regs); -+ return IRQ_HANDLED; - } - - /************************************** -@@ -191,10 +194,15 @@ ixOsalIrqUnbind (UINT32 vector) - PUBLIC UINT32 - ixOsalIrqLock () - { -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) -+ unsigned long flags; -+ local_irq_save(flags); -+#else - UINT32 flags; - save_flags (flags); - cli (); -- return flags; -+#endif -+ return (UINT32)flags; - } - - /* Enable interrupts and task scheduling, -@@ -204,7 +212,11 @@ ixOsalIrqLock () - PUBLIC void - ixOsalIrqUnlock (UINT32 lockKey) - { -+# if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) -+ local_irq_restore((unsigned long)lockKey); -+# else - restore_flags (lockKey); -+# endif - } - - PUBLIC UINT32 -@@ -329,7 +341,7 @@ ixOsalBusySleep (UINT32 microseconds) - PUBLIC void - ixOsalSleep (UINT32 milliseconds) - { -- if (milliseconds != 0) -+ if (milliseconds*HZ >= 1000) - { - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout ((milliseconds * HZ) / 1000); ---- ixp_osal/os/linux/src/core/IxOsalOsThread.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp_osal/os/linux/src/core/IxOsalOsThread.c 1970-01-01 00:00:00.000000000 +0000 -@@ -65,12 +65,7 @@ thread_internal (void *unused) - void *arg = IxOsalOsThreadData.arg; - static int seq = 0; - -- daemonize (); -- reparent_to_init (); -- -- exit_files (current); -- -- snprintf(current->comm, sizeof(current->comm), "IxOsal %d", ++seq); -+ daemonize ("IxOsal %d", ++seq); - - up (&IxOsalThreadMutex); - diff --git a/recipes/ixp4xx/ixp-osal-2.1.1/Makefile.patch b/recipes/ixp4xx/ixp-osal-2.1.1/Makefile.patch deleted file mode 100644 index 1558e9cdb3..0000000000 --- a/recipes/ixp4xx/ixp-osal-2.1.1/Makefile.patch +++ /dev/null @@ -1,30 +0,0 @@ - Makefile | 2 +- - os/linux/make/macros.mk | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) - ---- ixp_osal/Makefile 1970-01-01 00:00:00.000000000 +0000 -+++ ixp_osal/Makefile 1970-01-01 00:00:00.000000000 +0000 -@@ -185,7 +185,7 @@ endif - INCLUDE_DIRS = include $(OSAL_DIRS:%=$(MAIN_INC_PREFIX)/%) $(OSAL_DIRS:%=$(OS_INC_PREFIX)/%) - - ifeq ($(IX_OSAL_MK_HOST_OS), linux) --INCLUDE_DIRS += $(LINUX_SRC)/include/asm-arm/arch-ixp425/ -+INCLUDE_DIRS += $(LINUX_SRC)/include/asm-arm/arch-ixp4xx/ - endif - - CFLAGS += $(INCLUDE_DIRS:%=-I%) ---- ixp_osal/os/linux/make/macros.mk 1970-01-01 00:00:00.000000000 +0000 -+++ ixp_osal/os/linux/make/macros.mk 1970-01-01 00:00:00.000000000 +0000 -@@ -88,10 +88,10 @@ AR := $(LINUX_CROSS_COMPILE)ar - # Compiler & linker options - - # Compiler flags --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 \ -+ -pipe -msoft-float -DMODULE \ - -D__linux -DCPU=33 -DXSCALE=33 $(LINUX_MACH_CFLAGS) -DEXPORT_SYMTAB - - # Linux linker flags diff --git a/recipes/ixp4xx/ixp-osal-2.1.1/assert.patch b/recipes/ixp4xx/ixp-osal-2.1.1/assert.patch deleted file mode 100644 index a03113dcc2..0000000000 --- a/recipes/ixp4xx/ixp-osal-2.1.1/assert.patch +++ /dev/null @@ -1,41 +0,0 @@ -# Unnecessary patch - reduces the code size slightly, gives clearer -# messages if IX_OSAL_ENSURE_ON is set -# include/IxOsalAssert.h | 4 ++-- -# os/linux/include/core/IxOsalOsAssert.h | 9 ++++++++- -# 2 files changed, 10 insertions(+), 3 deletions(-) -# ---- ixp_osal/include/IxOsalAssert.h 1970-01-01 00:00:00.000000000 +0000 -+++ ixp_osal/include/IxOsalAssert.h 1970-01-01 00:00:00.000000000 +0000 -@@ -72,8 +72,8 @@ - */ - #ifdef IX_OSAL_ENSURE_ON - #define IX_OSAL_ENSURE(c, str) do { \ --if (!(c)) ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE, IX_OSAL_LOG_DEV_STDOUT, str, \ --0, 0, 0, 0, 0, 0); } while (0) -+if (!(c)) ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE, IX_OSAL_LOG_DEV_STDOUT, __FILE__ ": line %d: " str, \ -+__LINE__, 0, 0, 0, 0, 0); } while (0) - - #else - #define IX_OSAL_ENSURE(c, str) ---- ixp_osal/os/linux/include/core/IxOsalOsAssert.h 1970-01-01 00:00:00.000000000 +0000 -+++ ixp_osal/os/linux/include/core/IxOsalOsAssert.h 1970-01-01 00:00:00.000000000 +0000 -@@ -47,11 +47,18 @@ - - #ifndef IxOsalOsAssert_H - #define IxOsalOsAssert_H -+#ifdef IX_OSAL_ENSURE_ON - #define IX_OSAL_OS_ASSERT(c) if(!(c)) \ - { \ -- ixOsalLog (IX_OSAL_LOG_LVL_ERROR, IX_OSAL_LOG_DEV_STDOUT, "Assertion failure \n", 0, 0, 0, 0, 0, 0);\ -+ ixOsalLog (IX_OSAL_LOG_LVL_ERROR, IX_OSAL_LOG_DEV_STDOUT, "%s line %d: Assertion failure: %s\n", (int)__FILE__, __LINE__, (int)#c, 0, 0, 0);\ - BUG(); \ - } -+#else -+#define IX_OSAL_OS_ASSERT(c) if(!(c)) \ -+ { \ -+ BUG(); \ -+ } -+#endif - - /* - * Place holder. diff --git a/recipes/ixp4xx/ixp-osal-2.1.1/invalidate-cache.patch b/recipes/ixp4xx/ixp-osal-2.1.1/invalidate-cache.patch deleted file mode 100644 index 33c1d132db..0000000000 --- a/recipes/ixp4xx/ixp-osal-2.1.1/invalidate-cache.patch +++ /dev/null @@ -1,115 +0,0 @@ - os/linux/include/core/IxOsalOs.h | 17 ++++++++++ - os/linux/src/core/IxOsalOsCacheMMU.c | 56 +++++++++++++++++++++++++++++++++++ - os/linux/src/core/IxOsalOsSymbols.c | 4 ++ - 3 files changed, 76 insertions(+), 1 deletion(-) - ---- ixp_osal/os/linux/include/core/IxOsalOs.h 1970-01-01 00:00:00.000000000 +0000 -+++ ixp_osal/os/linux/include/core/IxOsalOs.h 1970-01-01 00:00:00.000000000 +0000 -@@ -56,6 +56,7 @@ - #include <linux/cache.h> - #include <linux/mm.h> - #include <linux/config.h> -+#include <linux/version.h> - #include <asm/pgalloc.h> - - /** -@@ -66,9 +67,23 @@ - - #define IX_OSAL_OS_MMU_PHYS_TO_VIRT(addr) ((addr) ? phys_to_virt((unsigned int)(addr)) : 0) - --#define IX_OSAL_OS_CACHE_INVALIDATE(addr, size) ( invalidate_dcache_range((__u32)addr, (__u32)addr + size )) -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) -+/* -+ * 2.6 kernels do not export the required cache functions. -+ */ -+extern void ixOsalCacheInvalidateRange(unsigned long start, unsigned long size); -+extern void ixOsalCacheFlushRange(unsigned long start, unsigned long size); -+ -+#define IX_OSAL_OS_CACHE_INVALIDATE(addr, size) \ -+ixOsalCacheInvalidateRange((unsigned long)addr, (unsigned long)addr + size) -+#define IX_OSAL_OS_CACHE_FLUSH(addr, size) \ -+ixOsalCacheFlushRange((unsigned long)addr, (unsigned long)addr + size ) - -+#else -+ -+#define IX_OSAL_OS_CACHE_INVALIDATE(addr, size) ( invalidate_dcache_range((__u32)addr, (__u32)addr + size )) - #define IX_OSAL_OS_CACHE_FLUSH(addr, size) ( clean_dcache_range((__u32)addr, (__u32)addr + size )) -+#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) */ - - /* Cache preload not available*/ - #define IX_OSAL_OS_CACHE_PRELOAD(addr,size) {} ---- ixp_osal/os/linux/src/core/IxOsalOsCacheMMU.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp_osal/os/linux/src/core/IxOsalOsCacheMMU.c 1970-01-01 00:00:00.000000000 +0000 -@@ -210,3 +210,59 @@ ixOsalCacheDmaFree (void *ptr) - free_pages ((unsigned int) memptr, order); - } - } -+ -+ -+/* -+ * 2.6 kernels do not export the required cache functions. -+ */ -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) -+ -+#define _IX_STR(x) #x -+#define IX_STR(x) _IX_STR(x) -+#define IX_CLM IX_STR(IX_OSAL_CACHE_LINE_SIZE-1) -+ -+/* -+ * reimplementation of kernel's invalidate_dcache_range() -+ */ -+void -+ixOsalCacheInvalidateRange(unsigned long start, unsigned long size) -+{ -+ __asm__ -+ (" tst %0, #" IX_CLM "\n" -+ " mcrne p15, 0, %0, c7, c10, 1 @ clean D cache line\n" -+ " bic %0, %0, #" IX_CLM "\n" -+ " tst %1, #" IX_CLM "\n" -+ " mcrne p15, 0, %1, c7, c10, 1 @ clean D cache line\n" -+ "1: mcr p15, 0, %0, c7, c6, 1 @ invalidate D cache line\n" -+ " add %0, %0, #" IX_STR(IX_OSAL_CACHE_LINE_SIZE) "\n" -+ " cmp %0, %1\n" -+ " blo 1b\n" -+ " mcr p15, 0, %0, c7, c10, 4 @ drain write & fill buffer\n" -+ : /* no output */ -+ : "r"(start), "r"(size) -+ : "cc"); -+} -+ -+/* -+ * reimplementation of kernel's invalidate_dcache_range() -+ */ -+void -+ixOsalCacheFlushRange(unsigned long start, unsigned long size) -+{ -+ __asm__ -+ (" bic %0, %0, #" IX_CLM "\n" -+ "1: mcr p15, 0, %0, c7, c10, 1 @ clean D cache line\n" -+ " add %0, %0, #" IX_STR(IX_OSAL_CACHE_LINE_SIZE) "\n" -+ " cmp %0, %1\n" -+ " blo 1b\n" -+ " mcr p15, 0, %0, c7, c10, 4 @ drain write & fill buffer\n" -+ : /* no output */ -+ : "r"(start), "r"(size) -+ : "cc"); -+} -+ -+#undef _IX_STR -+#undef IX_STR -+#undef IX_CLM -+ -+#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) */ ---- ixp_osal/os/linux/src/core/IxOsalOsSymbols.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp_osal/os/linux/src/core/IxOsalOsSymbols.c 1970-01-01 00:00:00.000000000 +0000 -@@ -64,6 +64,10 @@ EXPORT_SYMBOL (ixOsalMemSet); - - EXPORT_SYMBOL (ixOsalCacheDmaMalloc); - EXPORT_SYMBOL (ixOsalCacheDmaFree); -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) -+EXPORT_SYMBOL (ixOsalCacheInvalidateRange); -+EXPORT_SYMBOL (ixOsalCacheFlushRange); -+#endif - - EXPORT_SYMBOL (ixOsalThreadCreate); - EXPORT_SYMBOL (ixOsalThreadStart); diff --git a/recipes/ixp4xx/ixp-osal-2.1.1/ixp4xx-header.patch b/recipes/ixp4xx/ixp-osal-2.1.1/ixp4xx-header.patch deleted file mode 100644 index a9d87d4b56..0000000000 --- a/recipes/ixp4xx/ixp-osal-2.1.1/ixp4xx-header.patch +++ /dev/null @@ -1,115 +0,0 @@ - os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Base.h | 72 ++++++++++ - os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Sys.h | 10 - - 2 files changed, 78 insertions(+), 4 deletions(-) - ---- 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 -@@ -53,6 +53,8 @@ - #error "Error: IxOsalOsIxp425Sys.h cannot be included directly before IxOsalOsIxp400.h" - #endif - -+#include "IxOsalOsIxp425Base.h" -+ - /* Memory Base Address */ - #define IX_OSAL_IXP400_EXP_BUS_PHYS_BASE IXP425_EXP_BUS_BASE2_PHYS - #define IX_OSAL_IXP400_EXP_BUS_BOOT_PHYS_BASE IXP425_EXP_BUS_BASE1_PHYS -@@ -98,12 +100,12 @@ IxOsalMemoryMap ixOsalGlobalMemoryMap[] - * Queue Manager - */ - { -- IX_OSAL_STATIC_MAP, /* type */ -+ IX_OSAL_DYNAMIC_MAP, /* type */ - IX_OSAL_IXP400_QMGR_PHYS_BASE, /* physicalAddress */ - IX_OSAL_IXP400_QMGR_MAP_SIZE, /* size */ -- IX_OSAL_IXP400_QMGR_VIRT_BASE, /* virtualAddress */ -- NULL, /* mapFunction */ -- NULL, /* unmapFunction */ -+ 0, /* virtualAddress */ -+ ixOsalLinuxMemMap, /* mapFunction */ -+ ixOsalLinuxMemUnmap, /* unmapFunction */ - 0, /* refCount */ - IX_OSAL_BE | IX_OSAL_LE_DC, /* endianType */ - "qMgr" /* name */ ---- ixp_osal/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Base.h 1970-01-01 00:00:00.000000000 +0000 -+++ ixp_osal/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Base.h 1970-01-01 00:00:00.000000000 +0000 -@@ -0,0 +1,80 @@ -+/* -+ * Glue for the current linux definitons of this stuff. -+ */ -+#ifndef IxOsalOsIxp425Base_H -+#define IxOsalOsIxp425Base_H 1 -+#include <asm-arm/arch-ixp4xx/ixp4xx-regs.h> -+#include <linux/version.h> -+ -+/* Force Address Coherent (the default) mapping on LE - Linux 2.6 -+ * does not have a way of changing it. -+ */ -+#if defined IX_OSAL_LINUX_LE -+# if !defined IX_OSAL_ENFORCED_LE_AC_MAPPING -+# define IX_OSAL_ENFORCED_LE_AC_MAPPING -+# endif -+# if defined IX_OSAL_LE_DC_MAPPING -+# error Little Endian Data Coherent mapping not supported on this platform -+# endif -+ -+/* This doesn't matter on a BE build because it will never be used, -+ * however it will be selected and will fail on an LE build. -+ */ -+# undef IX_OSAL_LE_DC -+# define IX_OSAL_LE_DC IX_OSAL_LE_DC_IS_INVALID_ON_THIS_PLATFORM -+#endif -+ -+/* Physical addresses. */ -+#define IXP425_PERIPHERAL_BASE_PHYS IXP4XX_PERIPHERAL_BASE_PHYS -+#define IXP425_EXP_CFG_BASE_PHYS IXP4XX_EXP_CFG_BASE_PHYS -+#define IXP425_PCI_CFG_BASE_PHYS IXP4XX_PCI_CFG_BASE_PHYS -+ -+//#define IXP425_EXP_BUS_BASE1_PHYS -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16) -+#define IXP425_EXP_BUS_BASE2_PHYS IXP4XX_EXP_BUS_CS2_BASE_PHYS -+#else -+/* The following definition should be IXP4XX_EXP_BUS_BASE(2), but that is not -+ static and causes compilation problems later. So we need to hard-code it. -+ Note that this hard-coded value is only correct for IXP42X. */ -+#define IXP425_EXP_BUS_BASE2_PHYS (IXP4XX_EXP_BUS_BASE_PHYS + (2 * SZ_16M)) -+#endif -+//#define IXP425_EXP_BUS_CS0_BASE_PHYS -+//#define IXP425_EXP_BUS_CS1_BASE_PHYS -+//#define IXP425_EXP_BUS_CS4_BASE_PHYS -+#define IXP425_EthA_BASE_PHYS (IXP4XX_PERIPHERAL_BASE_PHYS + 0x9000) -+#define IXP425_EthB_BASE_PHYS (IXP4XX_PERIPHERAL_BASE_PHYS + 0xA000) -+//#define IXP425_GPIO_BASE_PHYS -+#define IXP425_INTC_BASE_PHYS IXP4XX_INTC_BASE_PHYS -+//#define IXP425_NPEA_BASE_PHYS -+//#define IXP425_NPEB_BASE_PHYS -+//#define IXP425_NPEC_BASE_PHYS -+//#define IXP425_PMU_BASE_PHYS -+#define IXP425_QMGR_BASE_PHYS IXP4XX_QMGR_BASE_PHYS -+#define IXP425_TIMER_BASE_PHYS IXP4XX_TIMER_BASE_PHYS -+//#define IXP425_UART1_BASE_PHYS -+//#define IXP425_UART2_BASE_PHYS -+#define IXP425_USB_BASE_PHYS IXP4XX_USB_BASE_PHYS -+ -+/* Virtual addresses. */ -+#define IXP425_PERIPHERAL_BASE_VIRT IXP4XX_PERIPHERAL_BASE_VIRT -+#define IXP425_PERIPHERAL_REGION_SIZE IXP4XX_PERIPHERAL_REGION_SIZE -+#define IXP425_EXP_CFG_BASE_VIRT IXP4XX_EXP_CFG_BASE_VIRT -+#define IXP425_PCI_CFG_BASE_VIRT IXP4XX_PCI_CFG_BASE_VIRT -+ -+//#define IXP425_EthA_BASE_VIRT -+//#define IXP425_EthB_BASE_VIRT -+//#define IXP425_GPIO_BASE_VIRT -+//#define IXP425_NPEA_BASE_VIRT -+//#define IXP425_NPEB_BASE_VIRT -+//#define IXP425_NPEC_BASE_VIRT -+//#define IXP425_QMGR_BASE_VIRT /* must be ioremapped on Linux 2.6 */ -+//#define IXP425_TIMER_BASE_VIRT -+//#define IXP425_UART1_BASE_VIRT -+//#define IXP425_UART2_BASE_VIRT -+//#define IXP425_USB_BASE_VIRT -+ -+/* Miscellaneous stuff. */ -+#define IRQ_IXP425_XSCALE_PMU IRQ_IXP4XX_XSCALE_PMU -+#define IXP425_ICMR IXP4XX_ICMR -+#define IRQ_IXP425_USB IRQ_IXP4XX_USB -+#endif diff --git a/recipes/ixp4xx/ixp-osal-2.1.1/le.patch b/recipes/ixp4xx/ixp-osal-2.1.1/le.patch deleted file mode 100644 index a6936ea33b..0000000000 --- a/recipes/ixp4xx/ixp-osal-2.1.1/le.patch +++ /dev/null @@ -1,72 +0,0 @@ - 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); - } - diff --git a/recipes/ixp4xx/ixp-osal-2.1/2.6.patch b/recipes/ixp4xx/ixp-osal-2.1/2.6.patch deleted file mode 100644 index 9725b447c8..0000000000 --- a/recipes/ixp4xx/ixp-osal-2.1/2.6.patch +++ /dev/null @@ -1,143 +0,0 @@ - os/linux/src/core/IxOsalOsMsgQ.c | 2 +- - os/linux/src/core/IxOsalOsSemaphore.c | 6 +++--- - os/linux/src/core/IxOsalOsServices.c | 20 ++++++++++++++++---- - os/linux/src/core/IxOsalOsThread.c | 7 +------ - 4 files changed, 21 insertions(+), 14 deletions(-) - ---- ixp_osal/os/linux/src/core/IxOsalOsMsgQ.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp_osal/os/linux/src/core/IxOsalOsMsgQ.c 1970-01-01 00:00:00.000000000 +0000 -@@ -45,9 +45,9 @@ - * -- End Intel Copyright Notice -- - */ - #include <linux/linkage.h> -+#include <linux/spinlock.h> - #include <linux/ipc.h> - #include <linux/msg.h> --#include <linux/spinlock.h> - #include <linux/interrupt.h> - - #include "IxOsal.h" ---- ixp_osal/os/linux/src/core/IxOsalOsSemaphore.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp_osal/os/linux/src/core/IxOsalOsSemaphore.c 1970-01-01 00:00:00.000000000 +0000 -@@ -46,7 +46,7 @@ - */ - - #include <linux/slab.h> --#include <asm-arm/hardirq.h> -+#include <linux/hardirq.h> - #include "IxOsal.h" - - /* Define a large number */ -@@ -93,7 +93,7 @@ ixOsalSemaphoreWait (IxOsalOsSemaphore * - { - - IX_STATUS ixStatus = IX_SUCCESS; -- UINT32 timeoutTime; -+ unsigned long timeoutTime; - - if (sid == NULL) - { -@@ -261,7 +261,7 @@ ixOsalMutexInit (IxOsalMutex * mutex) - PUBLIC IX_STATUS - ixOsalMutexLock (IxOsalMutex * mutex, INT32 timeout) - { -- UINT32 timeoutTime; -+ unsigned long timeoutTime; - - if (in_irq ()) - { ---- ixp_osal/os/linux/src/core/IxOsalOsServices.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp_osal/os/linux/src/core/IxOsalOsServices.c 1970-01-01 00:00:00.000000000 +0000 -@@ -54,6 +54,7 @@ - #include <linux/time.h> - #include <linux/sched.h> - #include <linux/slab.h> -+#include <linux/interrupt.h> - - #include "IxOsal.h" - -@@ -89,7 +90,7 @@ static IxOsalInfoType IxOsalInfo[NR_IRQS - /* - * General interrupt handler - */ --static void -+static irqreturn_t - ixOsalOsIsrProxy (int irq, void *dev_id, struct pt_regs *regs) - { - IxOsalInfoType *isr_proxy_info = (IxOsalInfoType *) dev_id; -@@ -98,6 +99,7 @@ ixOsalOsIsrProxy (int irq, void *dev_id, - "ixOsalOsIsrProxy: Interrupt used before ixOsalIrqBind was invoked"); - - isr_proxy_info->routine (isr_proxy_info->parameter); -+ return IRQ_HANDLED; - } - - /* -@@ -105,11 +107,12 @@ ixOsalOsIsrProxy (int irq, void *dev_id, - * This handler saves the interrupted Program Counter (PC) - * into a global variable - */ --static void -+static irqreturn_t - ixOsalOsIsrProxyWithPC (int irq, void *dev_id, struct pt_regs *regs) - { - ixOsalLinuxInterruptedPc = regs->ARM_pc; - ixOsalOsIsrProxy(irq, dev_id, regs); -+ return IRQ_HANDLED; - } - - /************************************** -@@ -191,10 +194,15 @@ ixOsalIrqUnbind (UINT32 vector) - PUBLIC UINT32 - ixOsalIrqLock () - { -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) -+ unsigned long flags; -+ local_irq_save(flags); -+#else - UINT32 flags; - save_flags (flags); - cli (); -- return flags; -+#endif -+ return (UINT32)flags; - } - - /* Enable interrupts and task scheduling, -@@ -204,7 +212,11 @@ ixOsalIrqLock () - PUBLIC void - ixOsalIrqUnlock (UINT32 lockKey) - { -+# if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) -+ local_irq_restore((unsigned long)lockKey); -+# else - restore_flags (lockKey); -+# endif - } - - PUBLIC UINT32 -@@ -329,7 +341,7 @@ ixOsalBusySleep (UINT32 microseconds) - PUBLIC void - ixOsalSleep (UINT32 milliseconds) - { -- if (milliseconds != 0) -+ if (milliseconds*HZ >= 1000) - { - set_current_state(TASK_INTERRUPTIBLE); - schedule_timeout ((milliseconds * HZ) / 1000); ---- ixp_osal/os/linux/src/core/IxOsalOsThread.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp_osal/os/linux/src/core/IxOsalOsThread.c 1970-01-01 00:00:00.000000000 +0000 -@@ -65,12 +65,7 @@ thread_internal (void *unused) - void *arg = IxOsalOsThreadData.arg; - static int seq = 0; - -- daemonize (); -- reparent_to_init (); -- -- exit_files (current); -- -- snprintf(current->comm, sizeof(current->comm), "IxOsal %d", ++seq); -+ daemonize ("IxOsal %d", ++seq); - - up (&IxOsalThreadMutex); - diff --git a/recipes/ixp4xx/ixp-osal-2.1/Makefile.patch b/recipes/ixp4xx/ixp-osal-2.1/Makefile.patch deleted file mode 100644 index 1558e9cdb3..0000000000 --- a/recipes/ixp4xx/ixp-osal-2.1/Makefile.patch +++ /dev/null @@ -1,30 +0,0 @@ - Makefile | 2 +- - os/linux/make/macros.mk | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) - ---- ixp_osal/Makefile 1970-01-01 00:00:00.000000000 +0000 -+++ ixp_osal/Makefile 1970-01-01 00:00:00.000000000 +0000 -@@ -185,7 +185,7 @@ endif - INCLUDE_DIRS = include $(OSAL_DIRS:%=$(MAIN_INC_PREFIX)/%) $(OSAL_DIRS:%=$(OS_INC_PREFIX)/%) - - ifeq ($(IX_OSAL_MK_HOST_OS), linux) --INCLUDE_DIRS += $(LINUX_SRC)/include/asm-arm/arch-ixp425/ -+INCLUDE_DIRS += $(LINUX_SRC)/include/asm-arm/arch-ixp4xx/ - endif - - CFLAGS += $(INCLUDE_DIRS:%=-I%) ---- ixp_osal/os/linux/make/macros.mk 1970-01-01 00:00:00.000000000 +0000 -+++ ixp_osal/os/linux/make/macros.mk 1970-01-01 00:00:00.000000000 +0000 -@@ -88,10 +88,10 @@ AR := $(LINUX_CROSS_COMPILE)ar - # Compiler & linker options - - # Compiler flags --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 \ -+ -pipe -msoft-float -DMODULE \ - -D__linux -DCPU=33 -DXSCALE=33 $(LINUX_MACH_CFLAGS) -DEXPORT_SYMTAB - - # Linux linker flags diff --git a/recipes/ixp4xx/ixp-osal-2.1/assert.patch b/recipes/ixp4xx/ixp-osal-2.1/assert.patch deleted file mode 100644 index a03113dcc2..0000000000 --- a/recipes/ixp4xx/ixp-osal-2.1/assert.patch +++ /dev/null @@ -1,41 +0,0 @@ -# Unnecessary patch - reduces the code size slightly, gives clearer -# messages if IX_OSAL_ENSURE_ON is set -# include/IxOsalAssert.h | 4 ++-- -# os/linux/include/core/IxOsalOsAssert.h | 9 ++++++++- -# 2 files changed, 10 insertions(+), 3 deletions(-) -# ---- ixp_osal/include/IxOsalAssert.h 1970-01-01 00:00:00.000000000 +0000 -+++ ixp_osal/include/IxOsalAssert.h 1970-01-01 00:00:00.000000000 +0000 -@@ -72,8 +72,8 @@ - */ - #ifdef IX_OSAL_ENSURE_ON - #define IX_OSAL_ENSURE(c, str) do { \ --if (!(c)) ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE, IX_OSAL_LOG_DEV_STDOUT, str, \ --0, 0, 0, 0, 0, 0); } while (0) -+if (!(c)) ixOsalLog (IX_OSAL_LOG_LVL_MESSAGE, IX_OSAL_LOG_DEV_STDOUT, __FILE__ ": line %d: " str, \ -+__LINE__, 0, 0, 0, 0, 0); } while (0) - - #else - #define IX_OSAL_ENSURE(c, str) ---- ixp_osal/os/linux/include/core/IxOsalOsAssert.h 1970-01-01 00:00:00.000000000 +0000 -+++ ixp_osal/os/linux/include/core/IxOsalOsAssert.h 1970-01-01 00:00:00.000000000 +0000 -@@ -47,11 +47,18 @@ - - #ifndef IxOsalOsAssert_H - #define IxOsalOsAssert_H -+#ifdef IX_OSAL_ENSURE_ON - #define IX_OSAL_OS_ASSERT(c) if(!(c)) \ - { \ -- ixOsalLog (IX_OSAL_LOG_LVL_ERROR, IX_OSAL_LOG_DEV_STDOUT, "Assertion failure \n", 0, 0, 0, 0, 0, 0);\ -+ ixOsalLog (IX_OSAL_LOG_LVL_ERROR, IX_OSAL_LOG_DEV_STDOUT, "%s line %d: Assertion failure: %s\n", (int)__FILE__, __LINE__, (int)#c, 0, 0, 0);\ - BUG(); \ - } -+#else -+#define IX_OSAL_OS_ASSERT(c) if(!(c)) \ -+ { \ -+ BUG(); \ -+ } -+#endif - - /* - * Place holder. diff --git a/recipes/ixp4xx/ixp-osal-2.1/invalidate-cache.patch b/recipes/ixp4xx/ixp-osal-2.1/invalidate-cache.patch deleted file mode 100644 index 33c1d132db..0000000000 --- a/recipes/ixp4xx/ixp-osal-2.1/invalidate-cache.patch +++ /dev/null @@ -1,115 +0,0 @@ - os/linux/include/core/IxOsalOs.h | 17 ++++++++++ - os/linux/src/core/IxOsalOsCacheMMU.c | 56 +++++++++++++++++++++++++++++++++++ - os/linux/src/core/IxOsalOsSymbols.c | 4 ++ - 3 files changed, 76 insertions(+), 1 deletion(-) - ---- ixp_osal/os/linux/include/core/IxOsalOs.h 1970-01-01 00:00:00.000000000 +0000 -+++ ixp_osal/os/linux/include/core/IxOsalOs.h 1970-01-01 00:00:00.000000000 +0000 -@@ -56,6 +56,7 @@ - #include <linux/cache.h> - #include <linux/mm.h> - #include <linux/config.h> -+#include <linux/version.h> - #include <asm/pgalloc.h> - - /** -@@ -66,9 +67,23 @@ - - #define IX_OSAL_OS_MMU_PHYS_TO_VIRT(addr) ((addr) ? phys_to_virt((unsigned int)(addr)) : 0) - --#define IX_OSAL_OS_CACHE_INVALIDATE(addr, size) ( invalidate_dcache_range((__u32)addr, (__u32)addr + size )) -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) -+/* -+ * 2.6 kernels do not export the required cache functions. -+ */ -+extern void ixOsalCacheInvalidateRange(unsigned long start, unsigned long size); -+extern void ixOsalCacheFlushRange(unsigned long start, unsigned long size); -+ -+#define IX_OSAL_OS_CACHE_INVALIDATE(addr, size) \ -+ixOsalCacheInvalidateRange((unsigned long)addr, (unsigned long)addr + size) -+#define IX_OSAL_OS_CACHE_FLUSH(addr, size) \ -+ixOsalCacheFlushRange((unsigned long)addr, (unsigned long)addr + size ) - -+#else -+ -+#define IX_OSAL_OS_CACHE_INVALIDATE(addr, size) ( invalidate_dcache_range((__u32)addr, (__u32)addr + size )) - #define IX_OSAL_OS_CACHE_FLUSH(addr, size) ( clean_dcache_range((__u32)addr, (__u32)addr + size )) -+#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) */ - - /* Cache preload not available*/ - #define IX_OSAL_OS_CACHE_PRELOAD(addr,size) {} ---- ixp_osal/os/linux/src/core/IxOsalOsCacheMMU.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp_osal/os/linux/src/core/IxOsalOsCacheMMU.c 1970-01-01 00:00:00.000000000 +0000 -@@ -210,3 +210,59 @@ ixOsalCacheDmaFree (void *ptr) - free_pages ((unsigned int) memptr, order); - } - } -+ -+ -+/* -+ * 2.6 kernels do not export the required cache functions. -+ */ -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) -+ -+#define _IX_STR(x) #x -+#define IX_STR(x) _IX_STR(x) -+#define IX_CLM IX_STR(IX_OSAL_CACHE_LINE_SIZE-1) -+ -+/* -+ * reimplementation of kernel's invalidate_dcache_range() -+ */ -+void -+ixOsalCacheInvalidateRange(unsigned long start, unsigned long size) -+{ -+ __asm__ -+ (" tst %0, #" IX_CLM "\n" -+ " mcrne p15, 0, %0, c7, c10, 1 @ clean D cache line\n" -+ " bic %0, %0, #" IX_CLM "\n" -+ " tst %1, #" IX_CLM "\n" -+ " mcrne p15, 0, %1, c7, c10, 1 @ clean D cache line\n" -+ "1: mcr p15, 0, %0, c7, c6, 1 @ invalidate D cache line\n" -+ " add %0, %0, #" IX_STR(IX_OSAL_CACHE_LINE_SIZE) "\n" -+ " cmp %0, %1\n" -+ " blo 1b\n" -+ " mcr p15, 0, %0, c7, c10, 4 @ drain write & fill buffer\n" -+ : /* no output */ -+ : "r"(start), "r"(size) -+ : "cc"); -+} -+ -+/* -+ * reimplementation of kernel's invalidate_dcache_range() -+ */ -+void -+ixOsalCacheFlushRange(unsigned long start, unsigned long size) -+{ -+ __asm__ -+ (" bic %0, %0, #" IX_CLM "\n" -+ "1: mcr p15, 0, %0, c7, c10, 1 @ clean D cache line\n" -+ " add %0, %0, #" IX_STR(IX_OSAL_CACHE_LINE_SIZE) "\n" -+ " cmp %0, %1\n" -+ " blo 1b\n" -+ " mcr p15, 0, %0, c7, c10, 4 @ drain write & fill buffer\n" -+ : /* no output */ -+ : "r"(start), "r"(size) -+ : "cc"); -+} -+ -+#undef _IX_STR -+#undef IX_STR -+#undef IX_CLM -+ -+#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) */ ---- ixp_osal/os/linux/src/core/IxOsalOsSymbols.c 1970-01-01 00:00:00.000000000 +0000 -+++ ixp_osal/os/linux/src/core/IxOsalOsSymbols.c 1970-01-01 00:00:00.000000000 +0000 -@@ -64,6 +64,10 @@ EXPORT_SYMBOL (ixOsalMemSet); - - EXPORT_SYMBOL (ixOsalCacheDmaMalloc); - EXPORT_SYMBOL (ixOsalCacheDmaFree); -+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) -+EXPORT_SYMBOL (ixOsalCacheInvalidateRange); -+EXPORT_SYMBOL (ixOsalCacheFlushRange); -+#endif - - EXPORT_SYMBOL (ixOsalThreadCreate); - EXPORT_SYMBOL (ixOsalThreadStart); diff --git a/recipes/ixp4xx/ixp-osal-2.1/ixp4xx-header.patch b/recipes/ixp4xx/ixp-osal-2.1/ixp4xx-header.patch deleted file mode 100644 index a9d87d4b56..0000000000 --- a/recipes/ixp4xx/ixp-osal-2.1/ixp4xx-header.patch +++ /dev/null @@ -1,115 +0,0 @@ - os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Base.h | 72 ++++++++++ - os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Sys.h | 10 - - 2 files changed, 78 insertions(+), 4 deletions(-) - ---- 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 -@@ -53,6 +53,8 @@ - #error "Error: IxOsalOsIxp425Sys.h cannot be included directly before IxOsalOsIxp400.h" - #endif - -+#include "IxOsalOsIxp425Base.h" -+ - /* Memory Base Address */ - #define IX_OSAL_IXP400_EXP_BUS_PHYS_BASE IXP425_EXP_BUS_BASE2_PHYS - #define IX_OSAL_IXP400_EXP_BUS_BOOT_PHYS_BASE IXP425_EXP_BUS_BASE1_PHYS -@@ -98,12 +100,12 @@ IxOsalMemoryMap ixOsalGlobalMemoryMap[] - * Queue Manager - */ - { -- IX_OSAL_STATIC_MAP, /* type */ -+ IX_OSAL_DYNAMIC_MAP, /* type */ - IX_OSAL_IXP400_QMGR_PHYS_BASE, /* physicalAddress */ - IX_OSAL_IXP400_QMGR_MAP_SIZE, /* size */ -- IX_OSAL_IXP400_QMGR_VIRT_BASE, /* virtualAddress */ -- NULL, /* mapFunction */ -- NULL, /* unmapFunction */ -+ 0, /* virtualAddress */ -+ ixOsalLinuxMemMap, /* mapFunction */ -+ ixOsalLinuxMemUnmap, /* unmapFunction */ - 0, /* refCount */ - IX_OSAL_BE | IX_OSAL_LE_DC, /* endianType */ - "qMgr" /* name */ ---- ixp_osal/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Base.h 1970-01-01 00:00:00.000000000 +0000 -+++ ixp_osal/os/linux/include/platforms/ixp400/ixp425/IxOsalOsIxp425Base.h 1970-01-01 00:00:00.000000000 +0000 -@@ -0,0 +1,80 @@ -+/* -+ * Glue for the current linux definitons of this stuff. -+ */ -+#ifndef IxOsalOsIxp425Base_H -+#define IxOsalOsIxp425Base_H 1 -+#include <asm-arm/arch-ixp4xx/ixp4xx-regs.h> -+#include <linux/version.h> -+ -+/* Force Address Coherent (the default) mapping on LE - Linux 2.6 -+ * does not have a way of changing it. -+ */ -+#if defined IX_OSAL_LINUX_LE -+# if !defined IX_OSAL_ENFORCED_LE_AC_MAPPING -+# define IX_OSAL_ENFORCED_LE_AC_MAPPING -+# endif -+# if defined IX_OSAL_LE_DC_MAPPING -+# error Little Endian Data Coherent mapping not supported on this platform -+# endif -+ -+/* This doesn't matter on a BE build because it will never be used, -+ * however it will be selected and will fail on an LE build. -+ */ -+# undef IX_OSAL_LE_DC -+# define IX_OSAL_LE_DC IX_OSAL_LE_DC_IS_INVALID_ON_THIS_PLATFORM -+#endif -+ -+/* Physical addresses. */ -+#define IXP425_PERIPHERAL_BASE_PHYS IXP4XX_PERIPHERAL_BASE_PHYS -+#define IXP425_EXP_CFG_BASE_PHYS IXP4XX_EXP_CFG_BASE_PHYS -+#define IXP425_PCI_CFG_BASE_PHYS IXP4XX_PCI_CFG_BASE_PHYS -+ -+//#define IXP425_EXP_BUS_BASE1_PHYS -+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16) -+#define IXP425_EXP_BUS_BASE2_PHYS IXP4XX_EXP_BUS_CS2_BASE_PHYS -+#else -+/* The following definition should be IXP4XX_EXP_BUS_BASE(2), but that is not -+ static and causes compilation problems later. So we need to hard-code it. -+ Note that this hard-coded value is only correct for IXP42X. */ -+#define IXP425_EXP_BUS_BASE2_PHYS (IXP4XX_EXP_BUS_BASE_PHYS + (2 * SZ_16M)) -+#endif -+//#define IXP425_EXP_BUS_CS0_BASE_PHYS -+//#define IXP425_EXP_BUS_CS1_BASE_PHYS -+//#define IXP425_EXP_BUS_CS4_BASE_PHYS -+#define IXP425_EthA_BASE_PHYS (IXP4XX_PERIPHERAL_BASE_PHYS + 0x9000) -+#define IXP425_EthB_BASE_PHYS (IXP4XX_PERIPHERAL_BASE_PHYS + 0xA000) -+//#define IXP425_GPIO_BASE_PHYS -+#define IXP425_INTC_BASE_PHYS IXP4XX_INTC_BASE_PHYS -+//#define IXP425_NPEA_BASE_PHYS -+//#define IXP425_NPEB_BASE_PHYS -+//#define IXP425_NPEC_BASE_PHYS -+//#define IXP425_PMU_BASE_PHYS -+#define IXP425_QMGR_BASE_PHYS IXP4XX_QMGR_BASE_PHYS -+#define IXP425_TIMER_BASE_PHYS IXP4XX_TIMER_BASE_PHYS -+//#define IXP425_UART1_BASE_PHYS -+//#define IXP425_UART2_BASE_PHYS -+#define IXP425_USB_BASE_PHYS IXP4XX_USB_BASE_PHYS -+ -+/* Virtual addresses. */ -+#define IXP425_PERIPHERAL_BASE_VIRT IXP4XX_PERIPHERAL_BASE_VIRT -+#define IXP425_PERIPHERAL_REGION_SIZE IXP4XX_PERIPHERAL_REGION_SIZE -+#define IXP425_EXP_CFG_BASE_VIRT IXP4XX_EXP_CFG_BASE_VIRT -+#define IXP425_PCI_CFG_BASE_VIRT IXP4XX_PCI_CFG_BASE_VIRT -+ -+//#define IXP425_EthA_BASE_VIRT -+//#define IXP425_EthB_BASE_VIRT -+//#define IXP425_GPIO_BASE_VIRT -+//#define IXP425_NPEA_BASE_VIRT -+//#define IXP425_NPEB_BASE_VIRT -+//#define IXP425_NPEC_BASE_VIRT -+//#define IXP425_QMGR_BASE_VIRT /* must be ioremapped on Linux 2.6 */ -+//#define IXP425_TIMER_BASE_VIRT -+//#define IXP425_UART1_BASE_VIRT -+//#define IXP425_UART2_BASE_VIRT -+//#define IXP425_USB_BASE_VIRT -+ -+/* Miscellaneous stuff. */ -+#define IRQ_IXP425_XSCALE_PMU IRQ_IXP4XX_XSCALE_PMU -+#define IXP425_ICMR IXP4XX_ICMR -+#define IRQ_IXP425_USB IRQ_IXP4XX_USB -+#endif diff --git a/recipes/ixp4xx/ixp-osal-2.1/le.patch b/recipes/ixp4xx/ixp-osal-2.1/le.patch deleted file mode 100644 index a6936ea33b..0000000000 --- a/recipes/ixp4xx/ixp-osal-2.1/le.patch +++ /dev/null @@ -1,72 +0,0 @@ - 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); - } - diff --git a/recipes/ixp4xx/ixp-osal_1.5.bb b/recipes/ixp4xx/ixp-osal_1.5.bb deleted file mode 100644 index eac1c1c28d..0000000000 --- a/recipes/ixp4xx/ixp-osal_1.5.bb +++ /dev/null @@ -1,72 +0,0 @@ -# Intel ixp4xx access library software. Note that this has an Intel -# license which restricts its use. -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: -# -# ixp400AccessLibrary-1_5.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" (versions 1.5 encryption is -# not required.) -# -# Store the file with the name given below in your downloads directory -# -SRC_URI = "http://www.intel.com/Please-Read-The-BB-File/ixp400AccessLibrary-1_5.zip" -SRC_URI += "file://2.6.patch;patch=1" -S = "${WORKDIR}/ixp_osal" -PR = "r1" - -COMPATIBLE_HOST = "^armeb-linux.*" -COMPATIBLE_MACHINE = "(nslu2|ixp4xx)" - -inherit module - -EXTRA_OEMAKE = "'CC=${KERNEL_CC}' \ - 'LD=${KERNEL_LD}' \ - 'AR=${AR}' \ - 'IX_XSCALE_SW=${S}' \ - 'IX_TARGET=linuxbe' \ - 'IX_MPHY=1' \ - 'IX_MPHYSINGLEPORT=1' \ - 'LINUX_SRC=${STAGING_KERNEL_DIR}' \ - 'LINUX_CROSS_COMPILE=${HOST_PREFIX}' \ - " - -OSAL_PATH = "lib/linux/linuxbe/ixp400" -# This is a somewhat arbitrary choice: -OSAL_DIR = "${STAGING_KERNEL_DIR}/ixp_osal" - -do_compile () { - oe_runmake ${OSAL_PATH}/libosal.a ${OSAL_PATH}/ixp_osal.o -} - -do_stage () { - install -d ${OSAL_DIR} - - # First the include files, maintain the tree structure (ixp4xx-csr - # expects the exact same tree) - cp -RLf include ${OSAL_DIR} - install -d ${OSAL_DIR}/os/linux - cp -RLf os/linux/include ${OSAL_DIR}/os/linux - - # Install the library/object - install -d ${OSAL_DIR}/${OSAL_PATH} - rm -f ${OSAL_DIR}/libosal - install -m 0644 ${OSAL_PATH}/libosal.a ${OSAL_DIR}/${OSAL_PATH} - touch ${OSAL_DIR}/libosal - rm -f ${OSAL_DIR}/module - install -m 0644 ${OSAL_PATH}/ixp_osal.o ${OSAL_DIR}/${OSAL_PATH} - touch ${OSAL_DIR}/module -} - -# This stuff doesn't install anything... -PACKAGES = "" - -do_install () { -} diff --git a/recipes/ixp4xx/ixp-osal_2.0.bb b/recipes/ixp4xx/ixp-osal_2.0.bb deleted file mode 100644 index 009d45d67a..0000000000 --- a/recipes/ixp4xx/ixp-osal_2.0.bb +++ /dev/null @@ -1,82 +0,0 @@ -# Intel ixp4xx access library software. Note that this has an Intel -# license which restricts its use. -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_0.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" (versions 2.0 encryption is -# not required.) -# -# Store the file with the name 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 -# -SRC_URI = "http://www.intel.com/Please-Read-The-BB-File/IPL_ixp400AccessLibrary-2_0.zip" -SRC_URI += "file://Makefile.patch;patch=1" -SRC_URI += "file://2.6.patch;patch=1" -SRC_URI += "file://le.patch;patch=1" -S = "${WORKDIR}/ixp_osal" -PR = "r4" - -COMPATIBLE_HOST = "^arm.*-linux.*" -COMPATIBLE_MACHINE = "(nslu2|ixp4xx)" - -inherit module - -IX_TARGET = "linux${SITEINFO_ENDIANESS}" - -EXTRA_OEMAKE = "'CC=${KERNEL_CC}' \ - 'LD=${KERNEL_LD}' \ - 'AR=${AR}' \ - 'IX_XSCALE_SW=${S}' \ - 'IX_TARGET=${IX_TARGET}' \ - 'IX_DEVICE=ixp42X' \ - 'LINUX_SRC=${STAGING_KERNEL_DIR}' \ - 'LINUX_CROSS_COMPILE=${HOST_PREFIX}' \ - " - -OSAL_PATH = "lib/ixp425/linux/${IX_TARGET}" -# This is a somewhat arbitrary choice: -OSAL_DIR = "${STAGING_KERNEL_DIR}/ixp_osal" - -do_compile () { - oe_runmake ${OSAL_PATH}/libosal.a ${OSAL_PATH}/ixp_osal.o -} - -do_stage () { - # Clean the directory first, this ensures incremental builds have - # a slightly better chance of working - rm -rf ${OSAL_DIR} - install -d ${OSAL_DIR} - - # First the include files, maintain the tree structure (ixp4xx-csr - # expects the exact same tree) - cp -RLf include ${OSAL_DIR} - install -d ${OSAL_DIR}/os/linux - cp -RLf os/linux/include ${OSAL_DIR}/os/linux - - # Install the library/object - install -d ${OSAL_DIR}/${OSAL_PATH} - rm -f ${OSAL_DIR}/libosal - install -m 0644 ${OSAL_PATH}/libosal.a ${OSAL_DIR}/${OSAL_PATH} - touch ${OSAL_DIR}/libosal - rm -f ${OSAL_DIR}/module - install -m 0644 ${OSAL_PATH}/ixp_osal.o ${OSAL_DIR}/${OSAL_PATH} - touch ${OSAL_DIR}/module -} - -# This stuff doesn't install anything... -PACKAGES = "" - -do_install () { -} diff --git a/recipes/ixp4xx/ixp-osal_2.1.1.bb b/recipes/ixp4xx/ixp-osal_2.1.1.bb deleted file mode 100644 index 481033fd0a..0000000000 --- a/recipes/ixp4xx/ixp-osal_2.1.1.bb +++ /dev/null @@ -1,101 +0,0 @@ -DEFAULT_PREFERENCE = "-1" -# Intel ixp4xx access library software. Note that this has an Intel -# license which restricts its use. -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: -# -# BSD_ixp400AccessLibrary-2_1.zip -# BSD_ixp400AccessLibrary-2_1_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" (versions 2.1 encryption is -# not required.) -# -# Store the file with the name 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: -# -# BSD_ixp400AccessLibrary-2_1.zip.md5 -# BSD_ixp400AccessLibrary-2_1_1.zip.md5 -# -SRC_URI = "http://www.intel.com/Please-Read-The-BB-File/BSD_ixp400AccessLibrary-2_1.zip" -SRC_URI += "http://www.intel.com/Please-Read-The-BB-File/BSD_ixp400AccessLibrary-2_1_1.zip" -SRC_URI += "file://Makefile.patch;patch=1" -SRC_URI += "file://2.6.patch;patch=1" -SRC_URI += "file://invalidate-cache.patch;patch=1" -SRC_URI += "file://ixp4xx-header.patch;patch=1" -SRC_URI += "file://le.patch;patch=1" -SRC_URI += "file://assert.patch;patch=1" - -S = "${WORKDIR}/ixp_osal" -PR = "r0" - -COMPATIBLE_HOST = "^arm.*-linux.*" -COMPATIBLE_MACHINE = "(nslu2|ixp4xx)" - -inherit module - -do_pre_patch () { - ( cd ${WORKDIR} ; mkdir patches ; mv BSD_ixp400AccessLibrary-2_1_1.patch patches/ ; \ - echo "BSD_ixp400AccessLibrary-2_1_1.patch -p0" >> patches/series ; \ - quilt push ) -} - -addtask pre_patch before do_patch - -IX_TARGET = "linux${SITEINFO_ENDIANESS}" -IX_ENSURE = "" -#IX_ENSURE = "IX_OSAL_ENSURE_ON=1" - -EXTRA_OEMAKE = "'CC=${KERNEL_CC}' \ - 'LD=${KERNEL_LD}' \ - 'AR=${AR}' \ - 'IX_XSCALE_SW=${S}' \ - 'IX_TARGET=${IX_TARGET}' \ - 'IX_DEVICE=ixp42X' \ - ${IX_ENSURE} \ - 'LINUX_SRC=${STAGING_KERNEL_DIR}' \ - 'LINUX_CROSS_COMPILE=${HOST_PREFIX}' \ - " - -OSAL_PATH = "lib/ixp425/linux/${IX_TARGET}" -# This is a somewhat arbitrary choice: -OSAL_DIR = "${STAGING_KERNEL_DIR}/ixp_osal" - -do_compile () { - oe_runmake ${OSAL_PATH}/libosal.a ${OSAL_PATH}/ixp_osal.o -} - -do_stage () { - # Clean the directory first, this ensures incremental builds have - # a slightly better chance of working - rm -rf ${OSAL_DIR} - install -d ${OSAL_DIR} - - # First the include files, maintain the tree structure (ixp4xx-csr - # expects the exact same tree) - cp -RLf include ${OSAL_DIR} - install -d ${OSAL_DIR}/os/linux - cp -RLf os/linux/include ${OSAL_DIR}/os/linux - - # Install the library/object - install -d ${OSAL_DIR}/${OSAL_PATH} - rm -f ${OSAL_DIR}/libosal - install -m 0644 ${OSAL_PATH}/libosal.a ${OSAL_DIR}/${OSAL_PATH} - touch ${OSAL_DIR}/libosal - rm -f ${OSAL_DIR}/module - install -m 0644 ${OSAL_PATH}/ixp_osal.o ${OSAL_DIR}/${OSAL_PATH} - touch ${OSAL_DIR}/module -} - -# This stuff doesn't install anything... -PACKAGES = "" - -do_install () { -} diff --git a/recipes/ixp4xx/ixp-osal_2.1.bb b/recipes/ixp4xx/ixp-osal_2.1.bb deleted file mode 100644 index dd70289598..0000000000 --- a/recipes/ixp4xx/ixp-osal_2.1.bb +++ /dev/null @@ -1,89 +0,0 @@ -# Intel ixp4xx access library software. Note that this has an Intel -# license which restricts its use. -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 -# -# 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" (versions 2.1 encryption is -# not required.) -# -# Store the file with the name 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 -# -SRC_URI = "http://www.intel.com/Please-Read-The-BB-File/IPL_ixp400AccessLibrary-2_1.zip" -SRC_URI += "file://Makefile.patch;patch=1" -SRC_URI += "file://2.6.patch;patch=1" -SRC_URI += "file://invalidate-cache.patch;patch=1" -SRC_URI += "file://ixp4xx-header.patch;patch=1" -SRC_URI += "file://le.patch;patch=1" -SRC_URI += "file://assert.patch;patch=1" - -S = "${WORKDIR}/ixp_osal" -PR = "r6" - -COMPATIBLE_HOST = "^arm.*-linux.*" -COMPATIBLE_MACHINE = "(nslu2|ixp4xx)" - -inherit module - -IX_TARGET = "linux${SITEINFO_ENDIANESS}" -IX_ENSURE = "" -#IX_ENSURE = "IX_OSAL_ENSURE_ON=1" - -EXTRA_OEMAKE = "'CC=${KERNEL_CC}' \ - 'LD=${KERNEL_LD}' \ - 'AR=${AR}' \ - 'IX_XSCALE_SW=${S}' \ - 'IX_TARGET=${IX_TARGET}' \ - 'IX_DEVICE=ixp42X' \ - ${IX_ENSURE} \ - 'LINUX_SRC=${STAGING_KERNEL_DIR}' \ - 'LINUX_CROSS_COMPILE=${HOST_PREFIX}' \ - " - -OSAL_PATH = "lib/ixp425/linux/${IX_TARGET}" -# This is a somewhat arbitrary choice: -OSAL_DIR = "${STAGING_KERNEL_DIR}/ixp_osal" - -do_compile () { - oe_runmake ${OSAL_PATH}/libosal.a ${OSAL_PATH}/ixp_osal.o -} - -do_stage () { - # Clean the directory first, this ensures incremental builds have - # a slightly better chance of working - rm -rf ${OSAL_DIR} - install -d ${OSAL_DIR} - - # First the include files, maintain the tree structure (ixp4xx-csr - # expects the exact same tree) - cp -RLf include ${OSAL_DIR} - install -d ${OSAL_DIR}/os/linux - cp -RLf os/linux/include ${OSAL_DIR}/os/linux - - # Install the library/object - install -d ${OSAL_DIR}/${OSAL_PATH} - rm -f ${OSAL_DIR}/libosal - install -m 0644 ${OSAL_PATH}/libosal.a ${OSAL_DIR}/${OSAL_PATH} - touch ${OSAL_DIR}/libosal - rm -f ${OSAL_DIR}/module - install -m 0644 ${OSAL_PATH}/ixp_osal.o ${OSAL_DIR}/${OSAL_PATH} - touch ${OSAL_DIR}/module -} - -# This stuff doesn't install anything... -PACKAGES = "" - -do_install () { -} diff --git a/recipes/ixp4xx/ixp4xx-csr-1.5/2.6.patch b/recipes/ixp4xx/ixp4xx-csr-1.5/2.6.patch deleted file mode 100644 index 58c3cbded5..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-1.5/2.6.patch +++ /dev/null @@ -1,238 +0,0 @@ -diff -Naur ixp400_xscale_sw.orig/Makefile ixp400_xscale_sw/Makefile ---- ixp400_xscale_sw.orig/Makefile 2005-08-24 00:16:35.000000000 +0200 -+++ ixp400_xscale_sw/Makefile 2005-08-30 19:01:47.000000000 +0200 -@@ -93,15 +93,16 @@ - # platforms. Components that work only for a subset of platforms - # should be added to the relevant *_COMPONENTS lists. - # --BI_ENDIAN_COMPONENTS := atmdAcc atmm atmsch qmgr npeMh npeDl ethAcc ethDB ethMii hssAcc usb uartAcc featureCtrl ossl osServices - -+# Intel default value: atmdAcc atmm atmsch qmgr npeMh npeDl ethAcc ethDB ethMii hssAcc usb uartAcc featureCtrl ossl osServices -+BI_ENDIAN_COMPONENTS := qmgr npeMh npeDl ethAcc ethDB ethMii ossl osServices featureCtrl - - # The lists below contain the set of components available for each target platform - vxbe_COMPONENTS := $(BI_ENDIAN_COMPONENTS) perfProfAcc dmaAcc - vxle_COMPONENTS := $(BI_ENDIAN_COMPONENTS) perfProfAcc - vxsim_COMPONENTS := $(BI_ENDIAN_COMPONENTS) dmaAcc --linuxbe_COMPONENTS := $(BI_ENDIAN_COMPONENTS) perfProfAcc dmaAcc --linuxle_COMPONENTS := $(BI_ENDIAN_COMPONENTS) perfProfAcc -+linuxbe_COMPONENTS := $(BI_ENDIAN_COMPONENTS) # perfProfAcc dmaAcc -+linuxle_COMPONENTS := $(BI_ENDIAN_COMPONENTS) # perfProfAcc - - # To facilitate automated builds, do not modify the value of COMPONENTS directly - - # just change the per-platform component lists above. -@@ -222,10 +223,12 @@ - else # IX_TARGET_OS == vxworks - - # Linux tool names --ifeq ($(IX_TARGET), linuxbe) --LINUX_CROSS_COMPILE := $(HARDHAT_BASE)/devkit/arm/xscale_be/bin/xscale_be- --else --LINUX_CROSS_COMPILE := $(HARDHAT_BASE)/devkit/arm/xscale_le/bin/xscale_le- -+ifeq "$(LINUX_CROSS_COMPILE)" "" -+ ifeq ($(IX_TARGET), linuxbe) -+ LINUX_CROSS_COMPILE := $(HARDHAT_BASE)/devkit/arm/xscale_be/bin/xscale_be- -+ else -+ LINUX_CROSS_COMPILE := $(HARDHAT_BASE)/devkit/arm/xscale_le/bin/xscale_le- -+ endif - endif - - LD := $(LINUX_CROSS_COMPILE)ld -@@ -253,7 +256,9 @@ - - LINUX_MACH_CFLAGS := -D__LINUX_ARM_ARCH__=5 -mcpu=xscale -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 -I$(NPE_OUTPUT_DIR) -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 -I$(NPE_OUTPUT_DIR) -D__linux -DCPU=33 -DXSCALE=33 $(LINUX_MACH_CFLAGS) -+ -+# -mshort-load-bytes removed by Marc Singer's patch TODO(hannes) why? - - # Linux linker flags - LDFLAGS := -r -@@ -1139,9 +1144,14 @@ - - ixp400.o : $(OBJ_DIR)/ixp400.o - -+ixp400.ko : $(OBJ_DIR)/ixp400.o - --$(OBJ_DIR)/ixp400.o: $(COMPONENTS:%=$(OBJ_DIR)/ixp400_%.o) $(NPE_PRODUCTION_HEADER_OBJ) $(OSAL_MODULE) -+$(OBJ_DIR)/ixp400.o: $(COMPONENTS:%=$(OBJ_DIR)/ixp400_%.o) $(NPE_PRODUCTION_HEADER_OBJ) $(OSAL_MODULE) # add this to hack in the ethAcc codelet: $(OBJ_DIR)/ixp400_codelets_ethAcc.o -+ touch $(OBJ_DIR)/ixp400.c -+ cp Makefile.kmod26 $(OBJ_DIR)/Makefile -+ make -C $(OBJ_DIR) - $(LD) $(LDFLAGS) $^ -o $@ -+ make -C $(OBJ_DIR) - - - -diff -Naur ixp400_xscale_sw.orig/Makefile.kmod26 ixp400_xscale_sw/Makefile.kmod26 ---- ixp400_xscale_sw.orig/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) V=1 -C $(LINUX_SRC) SUBDIRS=$(PWD) modules -+ -+clean: -+ rm -f ixp400.ko -diff -Naur ixp400_xscale_sw.orig/Readme-Kernel-2_6-Patch.txt ixp400_xscale_sw/Readme-Kernel-2_6-Patch.txt ---- ixp400_xscale_sw.orig/Readme-Kernel-2_6-Patch.txt 1970-01-01 01:00:00.000000000 +0100 -+++ ixp400_xscale_sw/Readme-Kernel-2_6-Patch.txt 2005-09-28 19:50:30.000000000 +0200 -@@ -0,0 +1,49 @@ -+This file describes a patch to use version 1.5 of the Intel Ixp4XX -+Access Library with Linux 2.6 kernels. -+ -+Authors/History -+--------------- -+ -+This patch consists of the changes made by Marc Singer for use of -+version 1.5 of the library with the APEX bootloader, and a patch made -+by Robin Farine and Tom Winkler for use of version 1.4 of the library -+with Linux-2.6 kernels. These changes were merged together by Hannes -+Reich. -+ -+Both patches are incorporated in their entirety, with the exception of -+some tweaks to sleep times in the ethAcc code and modifications to -+the code in src/codelets/usb/ from the Robin Farine / Tom Winkler -+patch. -+ -+Status -+------ -+ -+This code has been tested on a Linksys NSLU2. It works in big-endian -+mode, performance seems around 10% faster than 1.4. -+ -+The code does not work in little-endian mode. It appears as though the -+hardware is initialised correctly, but packet receive / transmit done -+callbacks are never called. -+ -+Licence Information -+------------------- -+ -+The patch is licenced under the same conditions as the original Access -+Library 1.5 (INTEL SOFTWARE LICENSE AGREEMENT). The full text of the -+licence can be downloaded from: -+http://www.intel.com/design/network/swsup/np_sla/ixp400.htm -+ -+The patch is free, unsupported and the authors make no warranties. -+Use it at your own risk, do with it as you see fit so long as you do -+not violate the original licence agreement. -+ -+The authors permit derivative works based upon the patch. -+ -+References -+---------- -+ -+The version 1.4 patch by Robin Farine and Tom Winkler is available from -+http://www.wnk.at/ixp400_accesslib_kernel26/data/patch_accesslib_kernel26_20040811.diff -+ -+The version 1.5 patch by Marc Singer is at -+http://wiki.buici.com/bin/view/Main/IXPAccessLibrary -diff -Naur ixp400_xscale_sw.orig/src/codelets/dmaAcc/IxDmaAccCodelet_p.h ixp400_xscale_sw/src/codelets/dmaAcc/IxDmaAccCodelet_p.h ---- ixp400_xscale_sw.orig/src/codelets/dmaAcc/IxDmaAccCodelet_p.h 2005-08-24 00:16:36.000000000 +0200 -+++ ixp400_xscale_sw/src/codelets/dmaAcc/IxDmaAccCodelet_p.h 2005-08-24 00:18:02.000000000 +0200 -@@ -113,7 +113,7 @@ - * @return IX_FAIL - Error initialising codelet - */ - IX_STATUS --ixDmaAccCodeletInit(IxDmaNpeId npeId); -+ixDmaAccCodeletInit(IxNpeDlNpeId npeId); - - /** - * @fn ixDmaAccCodeletTestPerform( UINT16 transferLength, -diff -Naur ixp400_xscale_sw.orig/src/ethDB/include/IxEthDB_p.h ixp400_xscale_sw/src/ethDB/include/IxEthDB_p.h ---- ixp400_xscale_sw.orig/src/ethDB/include/IxEthDB_p.h 2005-08-24 00:16:36.000000000 +0200 -+++ ixp400_xscale_sw/src/ethDB/include/IxEthDB_p.h 2005-08-24 00:18:02.000000000 +0200 -@@ -633,7 +633,7 @@ - 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 -Naur ixp400_xscale_sw.orig/src/include/IxTypes.h ixp400_xscale_sw/src/include/IxTypes.h ---- ixp400_xscale_sw.orig/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 -Naur ixp400_xscale_sw.orig/src/usb/include/usbprivatetypes.h ixp400_xscale_sw/src/usb/include/usbprivatetypes.h ---- ixp400_xscale_sw.orig/src/usb/include/usbprivatetypes.h 2005-08-24 00:16:36.000000000 +0200 -+++ ixp400_xscale_sw/src/usb/include/usbprivatetypes.h 2005-08-24 00:18:02.000000000 +0200 -@@ -164,6 +164,53 @@ - } USBEventProcessor; - - /* UDC Registers */ -+ -+#undef UDCCR -+#undef UDCCS0 -+#undef UDCCS1 -+#undef UDCCS2 -+#undef UDCCS3 -+#undef UDCCS4 -+#undef UDCCS5 -+#undef UDCCS6 -+#undef UDCCS7 -+#undef UDCCS8 -+#undef UDCCS9 -+#undef UDCCS10 -+#undef UDCCS11 -+#undef UDCCS12 -+#undef UDCCS13 -+#undef UDCCS14 -+#undef UDCCS15 -+#undef UICR0 -+#undef UICR1 -+#undef USIR0 -+#undef USIR1 -+#undef UFNHR -+#undef UFNLR -+#undef UBCR2 -+#undef UBCR4 -+#undef UBCR7 -+#undef UBCR9 -+#undef UBCR12 -+#undef UBCR14 -+#undef UDDR0 -+#undef UDDR5 -+#undef UDDR10 -+#undef UDDR15 -+#undef UDDR1 -+#undef UDDR2 -+#undef UDDR3 -+#undef UDDR4 -+#undef UDDR6 -+#undef UDDR7 -+#undef UDDR8 -+#undef UDDR9 -+#undef UDDR11 -+#undef UDDR12 -+#undef UDDR13 -+#undef UDDR14 -+ - typedef struct /* UDCRegisters */ - { - volatile UINT32 UDCCR; -@@ -229,6 +276,7 @@ - volatile UINT32 UDDR14; - } UDCRegisters; - -+ - typedef struct /* USBDeviceContext */ - { - UINT32 checkPattern; /* Check pattern for verifying the context */ diff --git a/recipes/ixp4xx/ixp4xx-csr-2.0/2.6.14.patch b/recipes/ixp4xx/ixp4xx-csr-2.0/2.6.14.patch deleted file mode 100644 index 9630e6cd4a..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.0/2.6.14.patch +++ /dev/null @@ -1,20 +0,0 @@ -# Additional patches for v2.0 on 2.6.14 ---- ixp400_xscale_sw/src/oslinux/IxLinuxInit.c.orig 2005-10-01 18:21:34.731233399 -0700 -+++ ixp400_xscale_sw/src/oslinux/IxLinuxInit.c 2005-10-01 18:21:45.811930663 -0700 -@@ -160,7 +160,6 @@ - return -EEXIST; - } - -- MOD_INC_USE_COUNT; /* Increment use count to prevent premature rmmod-ing */ - ixNpeDlSegmentedListHead = NULL; /* Reset linked list which keeps track of Microcode fragments */ - ixNpeDlSegmentedListTail = NULL; - ixNpeDlTotalBytesReadIn = 0; -@@ -225,8 +224,6 @@ - kfree (temp); - } - -- MOD_DEC_USE_COUNT; -- - return 0; - } - diff --git a/recipes/ixp4xx/ixp4xx-csr-2.0/2.6.patch b/recipes/ixp4xx/ixp4xx-csr-2.0/2.6.patch deleted file mode 100644 index 37d390bf71..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.0/2.6.patch +++ /dev/null @@ -1,148 +0,0 @@ -diff -Naur ixp400_xscale_sw.orig/Readme-Kernel-2_6-Patch.txt ixp400_xscale_sw/Readme-Kernel-2_6-Patch.txt ---- ixp400_xscale_sw.orig/Readme-Kernel-2_6-Patch.txt 1970-01-01 01:00:00.000000000 +0100 -+++ ixp400_xscale_sw/Readme-Kernel-2_6-Patch.txt 2005-09-28 19:50:30.000000000 +0200 -@@ -0,0 +1,49 @@ -+This file describes a patch to use version 1.5 of the Intel Ixp4XX -+Access Library with Linux 2.6 kernels. -+ -+Authors/History -+--------------- -+ -+This patch consists of the changes made by Marc Singer for use of -+version 1.5 of the library with the APEX bootloader, and a patch made -+by Robin Farine and Tom Winkler for use of version 1.4 of the library -+with Linux-2.6 kernels. These changes were merged together by Hannes -+Reich. -+ -+Both patches are incorporated in their entirety, with the exception of -+some tweaks to sleep times in the ethAcc code and modifications to -+the code in src/codelets/usb/ from the Robin Farine / Tom Winkler -+patch. -+ -+Status -+------ -+ -+This code has been tested on a Linksys NSLU2. It works in big-endian -+mode, performance seems around 10% faster than 1.4. -+ -+The code does not work in little-endian mode. It appears as though the -+hardware is initialised correctly, but packet receive / transmit done -+callbacks are never called. -+ -+Licence Information -+------------------- -+ -+The patch is licenced under the same conditions as the original Access -+Library 1.5 (INTEL SOFTWARE LICENSE AGREEMENT). The full text of the -+licence can be downloaded from: -+http://www.intel.com/design/network/swsup/np_sla/ixp400.htm -+ -+The patch is free, unsupported and the authors make no warranties. -+Use it at your own risk, do with it as you see fit so long as you do -+not violate the original licence agreement. -+ -+The authors permit derivative works based upon the patch. -+ -+References -+---------- -+ -+The version 1.4 patch by Robin Farine and Tom Winkler is available from -+http://www.wnk.at/ixp400_accesslib_kernel26/data/patch_accesslib_kernel26_20040811.diff -+ -+The version 1.5 patch by Marc Singer is at -+http://wiki.buici.com/bin/view/Main/IXPAccessLibrary -diff -Naur ixp400_xscale_sw.orig/src/codelets/dmaAcc/IxDmaAccCodelet_p.h ixp400_xscale_sw/src/codelets/dmaAcc/IxDmaAccCodelet_p.h ---- ixp400_xscale_sw.orig/src/codelets/dmaAcc/IxDmaAccCodelet_p.h 2005-08-24 00:16:36.000000000 +0200 -+++ ixp400_xscale_sw/src/codelets/dmaAcc/IxDmaAccCodelet_p.h 2005-08-24 00:18:02.000000000 +0200 -@@ -113,7 +113,7 @@ - * @return IX_FAIL - Error initialising codelet - */ - IX_STATUS --ixDmaAccCodeletInit(IxDmaNpeId npeId); -+ixDmaAccCodeletInit(IxNpeDlNpeId npeId); - - /** - * @fn ixDmaAccCodeletTestPerform( UINT16 transferLength, -diff -Naur ixp400_xscale_sw.orig/src/ethDB/include/IxEthDB_p.h ixp400_xscale_sw/src/ethDB/include/IxEthDB_p.h ---- ixp400_xscale_sw.orig/src/ethDB/include/IxEthDB_p.h 2005-08-24 00:16:36.000000000 +0200 -+++ ixp400_xscale_sw/src/ethDB/include/IxEthDB_p.h 2005-08-24 00:18:02.000000000 +0200 -@@ -633,7 +633,7 @@ - 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 -Naur ixp400_xscale_sw.orig/src/include/IxTypes.h ixp400_xscale_sw/src/include/IxTypes.h ---- ixp400_xscale_sw.orig/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 -Naur ixp400_xscale_sw.orig/src/usb/include/usbprivatetypes.h ixp400_xscale_sw/src/usb/include/usbprivatetypes.h ---- ixp400_xscale_sw.orig/src/usb/include/usbprivatetypes.h 2005-08-24 00:16:36.000000000 +0200 -+++ ixp400_xscale_sw/src/usb/include/usbprivatetypes.h 2005-08-24 00:18:02.000000000 +0200 -@@ -164,6 +164,53 @@ - } USBEventProcessor; - - /* UDC Registers */ -+ -+#undef UDCCR -+#undef UDCCS0 -+#undef UDCCS1 -+#undef UDCCS2 -+#undef UDCCS3 -+#undef UDCCS4 -+#undef UDCCS5 -+#undef UDCCS6 -+#undef UDCCS7 -+#undef UDCCS8 -+#undef UDCCS9 -+#undef UDCCS10 -+#undef UDCCS11 -+#undef UDCCS12 -+#undef UDCCS13 -+#undef UDCCS14 -+#undef UDCCS15 -+#undef UICR0 -+#undef UICR1 -+#undef USIR0 -+#undef USIR1 -+#undef UFNHR -+#undef UFNLR -+#undef UBCR2 -+#undef UBCR4 -+#undef UBCR7 -+#undef UBCR9 -+#undef UBCR12 -+#undef UBCR14 -+#undef UDDR0 -+#undef UDDR5 -+#undef UDDR10 -+#undef UDDR15 -+#undef UDDR1 -+#undef UDDR2 -+#undef UDDR3 -+#undef UDDR4 -+#undef UDDR6 -+#undef UDDR7 -+#undef UDDR8 -+#undef UDDR9 -+#undef UDDR11 -+#undef UDDR12 -+#undef UDDR13 -+#undef UDDR14 -+ - typedef struct /* UDCRegisters */ - { - volatile UINT32 UDCCR; diff --git a/recipes/ixp4xx/ixp4xx-csr-2.0/Makefile.patch b/recipes/ixp4xx/ixp4xx-csr-2.0/Makefile.patch deleted file mode 100644 index c5a907e1f1..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.0/Makefile.patch +++ /dev/null @@ -1,61 +0,0 @@ -diff -Naur ixp400_xscale_sw.orig/Makefile ixp400_xscale_sw/Makefile ---- ixp400_xscale_sw/.pc/Makefile.patch/Makefile 2005-04-17 20:54:58.000000000 -0700 -+++ ixp400_xscale_sw/Makefile 2005-10-01 18:15:08.422924549 -0700 -@@ -312,9 +312,9 @@ - else - # linux compiler flags - --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 -@@ -806,9 +806,11 @@ - - 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. -@@ -1253,10 +1255,18 @@ - - 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 - - -diff -Naur ixp400_xscale_sw.orig/Makefile.kmod26 ixp400_xscale_sw/Makefile.kmod26 ---- ixp400_xscale_sw.orig/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) V=1 -C $(LINUX_SRC) SUBDIRS=$(PWD) modules -+ -+clean: -+ rm -f ixp400.ko diff --git a/recipes/ixp4xx/ixp4xx-csr-2.0/le.patch b/recipes/ixp4xx/ixp4xx-csr-2.0/le.patch deleted file mode 100644 index e32b795755..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.0/le.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- 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 -@@ -87,7 +87,9 @@ - /* - * Define QMgr's IoMem macros, in DC mode if in LE - * regular if in BE. (Note: For Linux LSP gold release -- * may need to adjust mode. -+ * may need to adjust mode. For standard Linux kernels -+ * data coherent access is not used, therefore address -+ * coherency must be set. - */ - #if defined (__BIG_ENDIAN) - -@@ -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.1/Makefile.patch b/recipes/ixp4xx/ixp4xx-csr-2.1.1/Makefile.patch deleted file mode 100644 index f082b713f0..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.1.1/Makefile.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- 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.1/bit-macro.patch b/recipes/ixp4xx/ixp4xx-csr-2.1.1/bit-macro.patch deleted file mode 100644 index 6efdba5c1e..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.1.1/bit-macro.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- 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.1/gcc4.patch b/recipes/ixp4xx/ixp4xx-csr-2.1.1/gcc4.patch deleted file mode 100644 index a701328dd1..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.1.1/gcc4.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- 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.1/ixethdb-header.patch b/recipes/ixp4xx/ixp4xx-csr-2.1.1/ixethdb-header.patch deleted file mode 100644 index 8ab22bee89..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.1.1/ixethdb-header.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- 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.1/ixnpemhconfigisr-is-private.patch b/recipes/ixp4xx/ixp4xx-csr-2.1.1/ixnpemhconfigisr-is-private.patch deleted file mode 100644 index 54faadf34a..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.1.1/ixnpemhconfigisr-is-private.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- 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.1/le.patch b/recipes/ixp4xx/ixp4xx-csr-2.1.1/le.patch deleted file mode 100644 index c308493a08..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.1.1/le.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- 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.1/livelock.patch b/recipes/ixp4xx/ixp4xx-csr-2.1.1/livelock.patch deleted file mode 100644 index 0b4e4ba026..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.1.1/livelock.patch +++ /dev/null @@ -1,19 +0,0 @@ -*** 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.1/mii-debug.patch b/recipes/ixp4xx/ixp4xx-csr-2.1.1/mii-debug.patch deleted file mode 100644 index 762743cef5..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.1.1/mii-debug.patch +++ /dev/null @@ -1,26 +0,0 @@ -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.1/module-param.patch b/recipes/ixp4xx/ixp4xx-csr-2.1.1/module-param.patch deleted file mode 100644 index 6472ef8b05..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.1.1/module-param.patch +++ /dev/null @@ -1,19 +0,0 @@ - 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 -@@ -103,7 +103,11 @@ - #if KERNEL_VERSION(2,6,0) <= LINUX_VERSION_CODE - MODULE_VERSION("2.1.1"); - #endif -+#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.1/module-use-count.patch b/recipes/ixp4xx/ixp4xx-csr-2.1.1/module-use-count.patch deleted file mode 100644 index 0fc2c5270e..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.1.1/module-use-count.patch +++ /dev/null @@ -1,24 +0,0 @@ - src/oslinux/IxLinuxInit.c | 3 --- - 1 files changed, 3 deletions(-) - -Index: ixp400_xscale_sw/src/oslinux/IxLinuxInit.c -=================================================================== ---- ixp400_xscale_sw.orig/src/oslinux/IxLinuxInit.c -+++ ixp400_xscale_sw/src/oslinux/IxLinuxInit.c -@@ -164,7 +164,6 @@ - return -EEXIST; - } - -- MOD_INC_USE_COUNT; /* Increment use count to prevent premature rmmod-ing */ - ixNpeDlSegmentedListHead = NULL; /* Reset linked list which keeps track of Microcode fragments */ - ixNpeDlSegmentedListTail = NULL; - ixNpeDlTotalBytesReadIn = 0; -@@ -229,8 +228,6 @@ - kfree (temp); - } - -- MOD_DEC_USE_COUNT; -- - return 0; - } - diff --git a/recipes/ixp4xx/ixp4xx-csr-2.1.1/oe-makefile.patch b/recipes/ixp4xx/ixp4xx-csr-2.1.1/oe-makefile.patch deleted file mode 100644 index 9f1d253a93..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.1.1/oe-makefile.patch +++ /dev/null @@ -1,61 +0,0 @@ -changes to Makefile required only on OE - - Makefile | 11 ++++++++++- - Makefile.kmod26 | 11 +++++++++++ - ixp400.c | 1 + - 3 files changed, 22 insertions(+), 1 deletion(-) - -Index: ixp400_xscale_sw/Makefile -=================================================================== ---- ixp400_xscale_sw.orig/Makefile -+++ ixp400_xscale_sw/Makefile -@@ -1385,9 +1385,10 @@ - - ifeq ($(IX_LINUXVER),2.6) - ixp400 : $(OBJ_DIR)/ixp400.o -+ cp $(OSAL_MODULE) $(OBJ_DIR) - @echo 'EXTRA_LDFLAGS := --whole-archive' > $(OBJ_DIR)/Makefile - @echo ' ' >> $(OBJ_DIR)/Makefile -- @echo 'lib-m := $(COMPONENTS:%=ixp400_%.o) $(OBJ_DIR_EXIT)/$(OSAL_MODULE)'>> $(OBJ_DIR)/Makefile -+ @echo 'lib-m := $(COMPONENTS:%=ixp400_%.o) ixp_osal.o'>> $(OBJ_DIR)/Makefile - @echo ' ' >> $(OBJ_DIR)/Makefile - @echo 'obj-m := ixp400.o' >> $(OBJ_DIR)/Makefile - @echo ' ' >> $(OBJ_DIR)/Makefile -@@ -1403,7 +1404,15 @@ - - $(OBJ_DIR)/ixp400.o: $(COMPONENTS:%=$(OBJ_DIR)/ixp400_%.o) $(OSAL_MODULE) - ifneq ($(IX_LINUXVER),2.6) -+ 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 - - -Index: ixp400_xscale_sw/ixp400.c -=================================================================== ---- /dev/null -+++ ixp400_xscale_sw/ixp400.c -@@ -0,0 +1 @@ -+#error this file must never be compiled -Index: ixp400_xscale_sw/Makefile.kmod26 -=================================================================== ---- /dev/null -+++ ixp400_xscale_sw/Makefile.kmod26 -@@ -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.1/rtl8201-support.patch b/recipes/ixp4xx/ixp4xx-csr-2.1.1/rtl8201-support.patch deleted file mode 100644 index 150dc27016..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.1.1/rtl8201-support.patch +++ /dev/null @@ -1,30 +0,0 @@ -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 diff --git a/recipes/ixp4xx/ixp4xx-csr-2.1.1/undefined-attribute.patch b/recipes/ixp4xx/ixp4xx-csr-2.1.1/undefined-attribute.patch deleted file mode 100644 index 8a08f862f6..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.1.1/undefined-attribute.patch +++ /dev/null @@ -1,16 +0,0 @@ - src/include/IxEthDB.h | 2 +- - 1 files changed, 1 insertion(+), 1 deletion(-) - -Index: ixp400_xscale_sw/src/include/IxEthDB.h -=================================================================== ---- ixp400_xscale_sw.orig/src/include/IxEthDB.h -+++ ixp400_xscale_sw/src/include/IxEthDB.h -@@ -273,7 +273,7 @@ - typedef struct - { - UINT8 macAddress[IX_IEEE803_MAC_ADDRESS_SIZE]; --} IX_OSAL_ATTRIBUTE_PACKED IxEthDBMacAddr; -+} IxEthDBMacAddr; - - /** - * diff --git a/recipes/ixp4xx/ixp4xx-csr-2.1/Makefile.patch b/recipes/ixp4xx/ixp4xx-csr-2.1/Makefile.patch deleted file mode 100644 index f082b713f0..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.1/Makefile.patch +++ /dev/null @@ -1,26 +0,0 @@ ---- 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 deleted file mode 100644 index 6efdba5c1e..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.1/bit-macro.patch +++ /dev/null @@ -1,14 +0,0 @@ ---- 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 deleted file mode 100644 index a701328dd1..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.1/gcc4.patch +++ /dev/null @@ -1,23 +0,0 @@ ---- 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 deleted file mode 100644 index 8ab22bee89..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.1/ixethdb-header.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- 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 deleted file mode 100644 index 54faadf34a..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.1/ixnpemhconfigisr-is-private.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- 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 deleted file mode 100644 index c308493a08..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.1/le.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- 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 deleted file mode 100644 index 0b4e4ba026..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.1/livelock.patch +++ /dev/null @@ -1,19 +0,0 @@ -*** 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 deleted file mode 100644 index 762743cef5..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.1/mii-debug.patch +++ /dev/null @@ -1,26 +0,0 @@ -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 deleted file mode 100644 index c61fcc00d3..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.1/module-param.patch +++ /dev/null @@ -1,19 +0,0 @@ - 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 deleted file mode 100644 index 492b1eab03..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.1/oe-makefile.patch +++ /dev/null @@ -1,49 +0,0 @@ -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 deleted file mode 100644 index 150dc27016..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr-2.1/rtl8201-support.patch +++ /dev/null @@ -1,30 +0,0 @@ -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 diff --git a/recipes/ixp4xx/ixp4xx-csr/badpaths.patch b/recipes/ixp4xx/ixp4xx-csr/badpaths.patch deleted file mode 100644 index c5981aa3b7..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr/badpaths.patch +++ /dev/null @@ -1,18 +0,0 @@ - -# -# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher -# - ---- ixp400_xscale_sw/src/linux/vx.c~ugh 2003-12-12 14:58:34.000000000 -0500 -+++ ixp400_xscale_sw/src/linux/vx.c 2004-11-14 17:50:07.610969440 -0500 -@@ -31,8 +31,8 @@ - * - * -- End Intel Copyright Notice -- - */ --#include <asm-arm/system.h> --#include <asm-arm/semaphore.h> -+#include <asm/system.h> -+#include <asm/semaphore.h> - #include <linux/kernel.h> - #include <linux/time.h> - #include <linux/sched.h> diff --git a/recipes/ixp4xx/ixp4xx-csr/build-timing-annoyance.patch b/recipes/ixp4xx/ixp4xx-csr/build-timing-annoyance.patch deleted file mode 100644 index 0c040ec2df..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr/build-timing-annoyance.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- ixp400_xscale_sw/Makefile~ 2004-11-18 21:26:43.000000000 +1030 -+++ ixp400_xscale_sw/Makefile 2004-11-18 21:31:20.000000000 +1030 -@@ -1015,6 +1015,7 @@ - cp Makefile.kmod26 $(OBJ_DIR)/Makefile - make -C $(OBJ_DIR) - $(LD) $(LDFLAGS) $^ -o $@ -+ sleep 2 - make -C $(OBJ_DIR) - - diff --git a/recipes/ixp4xx/ixp4xx-csr_1.4.bb b/recipes/ixp4xx/ixp4xx-csr_1.4.bb deleted file mode 100644 index 3e5b444002..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr_1.4.bb +++ /dev/null @@ -1,63 +0,0 @@ -# Intel ixp4xx access library software. Note that this has an Intel -# license which restricts its use. -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: -# -# ixp400AccessLibrary-1_4.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", follow -# the "Archived" link and the v1.4 software then select the the "Intel -# Hardware Access Software" "1.4 download", this will take you to the -# license agreement which you must accept to use this package. -# -# Store the file with the name given below in your downloads directory -# -SRC_URI = "http://www.intel.com/Please-Read-The-BB-File/ixp400AccessLibrary-1_4.zip" -SRC_URI += "http://www.wnk.at/ixp400_accesslib_kernel26/data/patch_accesslib_kernel26_20040811.diff;patch=1" -SRC_URI += "file://badpaths.patch;patch=1" -SRC_URI += "file://build-timing-annoyance.patch;patch=1" - -S = "${WORKDIR}/ixp400_xscale_sw" -PR = "r6" - -COMPATIBLE_HOST = "^armeb-linux.*" -COMPATIBLE_MACHINE = "(nslu2|ixp4xx)" - -inherit module - -#LINUX_MACH_CFLAGS := -D__LINUX_ARM_ARCH__=5 -mcpu=xscale -mtune=xscale -CFLAGS = "-fno-common -D__KERNEL__ -DMODULE -D__linux -DCPU=33 -DXSCALE=33 \ - -D__LINUX_ARM_ARCH__=5 \ - -I${S}/src/linux -I${S}/src/include \ - ${BUILD_OPTIMIZATION} \ - -I${STAGING_KERNEL_DIR}/include" - -EXTRA_OEMAKE = "'CFLAGS=${CFLAGS}' \ - 'CC=${KERNEL_CC}' \ - 'LD=${KERNEL_LD}' \ - 'IX_TARGET=linuxbe' \ - 'LINUX_SRC=${STAGING_KERNEL_DIR}' \ - 'ARCH=${ARCH}'" -#EXTRA_OEMAKE = "'LINUX_SRC=${STAGING_KERNEL_DIR}' 'IX_TARGET=${IX_TARGET}' \ -# 'ARCH=${TARGET_ARCH}' 'CROSS_COMPILE=${TARGET_PREFIX}'" - -do_compile () { - oe_runmake ixp400.ko -} - -do_stage () { - install -d ${STAGING_INCDIR}/linux/ixp4xx-csr - install -m 0644 src/include/*.h ${STAGING_INCDIR}/linux/ixp4xx-csr/ - cp -RLf src/linux/* ${STAGING_INCDIR}/linux/ixp4xx-csr/ -} - -do_install () { - install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/drivers/ixp400 - install -m 0644 lib/linuxbe/ixp400.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/drivers/ixp400/ -} diff --git a/recipes/ixp4xx/ixp4xx-csr_1.5.bb b/recipes/ixp4xx/ixp4xx-csr_1.5.bb deleted file mode 100644 index d9c69564f7..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr_1.5.bb +++ /dev/null @@ -1,63 +0,0 @@ -# Intel ixp4xx access library software. Note that this has an Intel -# license which restricts its use. -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: -# -# ixp400AccessLibrary-1_5.zip -# ixp400NpeLibrary-1_5.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 1.5, encryption is not required.) -# -# Store the files with the names given below in your downloads directory -# -SRC_URI = "http://www.intel.com/Please-Read-The-BB-File/ixp400AccessLibrary-1_5.zip" -SRC_URI += "http://www.intel.com/Please-Read-The-BB-File/ixp400NpeLibrary-1_5.zip" -SRC_URI += "file://2.6.patch;patch=1" -DEPENDS = "ixp-osal" -S = "${WORKDIR}/ixp400_xscale_sw" -PR = "r1" - -COMPATIBLE_HOST = "^armeb-linux.*" -COMPATIBLE_MACHINE = "(nslu2|ixp4xx)" - -inherit module - -OSAL_PATH = "lib/linux/linuxbe/ixp400" -# This is a somewhat arbitrary choice: -OSAL_DIR = "${STAGING_KERNEL_DIR}/ixp_osal" - -EXTRA_OEMAKE = "'CC=${KERNEL_CC}' \ - 'LD=${KERNEL_LD}' \ - 'AR=${AR}' \ - 'IX_XSCALE_SW=${S}' \ - 'IX_TARGET=linuxbe' \ - 'IX_MPHY=1' \ - 'IX_MPHYSINGLEPORT=1' \ - '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' \ - " - -do_compile () { - oe_runmake ixp400.ko -} - -do_stage () { - install -d ${STAGING_INCDIR}/linux/ixp4xx-csr - install -m 0644 src/include/*.h ${STAGING_INCDIR}/linux/ixp4xx-csr/ -} - -do_install () { - install -d ${D}${base_libdir}/modules/${KERNEL_VERSION}/drivers/ixp400 - install -m 0644 lib/linuxbe/ixp400.ko ${D}${base_libdir}/modules/${KERNEL_VERSION}/drivers/ixp400/ -} diff --git a/recipes/ixp4xx/ixp4xx-csr_2.0.bb b/recipes/ixp4xx/ixp4xx-csr_2.0.bb deleted file mode 100644 index e462c505fb..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr_2.0.bb +++ /dev/null @@ -1,89 +0,0 @@ -# Intel ixp4xx access library software. Note that this has an Intel -# license which restricts its use. -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_0.zip -# IPL_ixp400NpeLibrary-2_0_5.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.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" -SRC_URI += "file://Makefile.patch;patch=1" -SRC_URI += "file://2.6.patch;patch=1" -SRC_URI += "file://2.6.14.patch;patch=1" -SRC_URI += "file://le.patch;patch=1" -DEPENDS = "ixp-osal" -S = "${WORKDIR}/ixp400_xscale_sw" -PR = "r6" - -COMPATIBLE_HOST = "^arm.*-linux.*" -COMPATIBLE_MACHINE = "(nslu2|ixp4xx)" - -inherit module - -IX_TARGET = "linux${SITEINFO_ENDIANESS}" - -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_0.zip -# to be added to the SRC_URI - see above. -EXTRA_OEMAKE = "'CC=${KERNEL_CC}' \ - 'LD=${KERNEL_LD}' \ - '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' \ - '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' \ - " - -do_compile () { - # The target makes the .ko as a side effect, as a result of the - # Makefile.patch - oe_runmake lib/${IX_TARGET}/ixp400.o -} - -do_stage () { - install -d ${STAGING_INCDIR}/linux/ixp4xx-csr - install -m 0644 src/include/*.h ${STAGING_INCDIR}/linux/ixp4xx-csr/ -} - - -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/ -} diff --git a/recipes/ixp4xx/ixp4xx-csr_2.1.1.bb b/recipes/ixp4xx/ixp4xx-csr_2.1.1.bb deleted file mode 100644 index 32685d30f6..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr_2.1.1.bb +++ /dev/null @@ -1,121 +0,0 @@ -DEFAULT_PREFERENCE = "-1" -# Intel ixp4xx access library software. Note that this has an Intel -# license which restricts its use. -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: -# -# BSD_ixp400AccessLibrary-2_1.zip -# BSD_ixp400AccessLibrary-2_1_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: -# -# BSD_ixp400AccessLibrary-2_1.zip.md5 -# BSD_ixp400AccessLibrary-2_1_1.zip.md5 -# IPL_ixp400NpeLibrary-2_1.zip.md5 -# -SRC_URI = "http://www.intel.com/Please-Read-The-BB-File/BSD_ixp400AccessLibrary-2_1.zip" -SRC_URI += "http://www.intel.com/Please-Read-The-BB-File/BSD_ixp400AccessLibrary-2_1_1.zip" -SRC_URI += "http://www.intel.com/Please-Read-The-BB-File/IPL_ixp400NpeLibrary-2_1.zip" -SRC_URI += "file://bit-macro.patch;patch=1" -SRC_URI += "file://le.patch;patch=1" -SRC_URI += "file://mii-debug.patch;patch=1" -SRC_URI += "file://rtl8201-support.patch;patch=1" -SRC_URI += "file://oe-makefile.patch;patch=1" -SRC_URI += "file://livelock.patch;patch=1" -SRC_URI += "file://module-param.patch;patch=1" -SRC_URI += "file://undefined-attribute.patch;patch=1" - -DEPENDS = "ixp-osal" -S = "${WORKDIR}/ixp400_xscale_sw" -PR = "r2" - -COMPATIBLE_HOST = "^arm.*-linux.*" -COMPATIBLE_MACHINE = "(nslu2|ixp4xx)" - -inherit module - -do_pre_patch () { - cd ${WORKDIR} ; patch -p0 < BSD_ixp400AccessLibrary-2_1_1.patch -} - -addtask pre_patch before do_patch - -IX_TARGET = "linux${SITEINFO_ENDIANESS}" -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_LINUXVER=2.6' \ - 'IX_XSCALE_SW=${S}' \ - 'IX_TARGET=${IX_TARGET}' \ - '${IX_TARGET}_COMPONENTS=${COMPONENTS}' \ - '${IX_TARGET}_CODELETS_COMPONENTS=${CODELETS_COMPONENTS}' \ - 'IX_DEVICE=ixp42X' \ - 'IX_BUILD_MICROCODE=1' \ - 'IX_UTOPIAMODE=0' \ - 'IX_MPHYSINGLEPORT=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 = "ixp400" - -KCONFIG_FILE = "${STAGING_KERNEL_DIR}/kernel-config" -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' \ - lib/${IX_TARGET}/ixp400.o 2>&1 | egrep . - then - echo "MODPOST errors - see above" - return 1 - else - return 0 - fi -} - - -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/ - install -m 0644 lib/${IX_TARGET}/IxNpeMicrocode.dat ${D}${base_libdir}/modules/${KERNEL_VERSION}/kernel/drivers/ixp400/ -} diff --git a/recipes/ixp4xx/ixp4xx-csr_2.1.bb b/recipes/ixp4xx/ixp4xx-csr_2.1.bb deleted file mode 100644 index e95f807107..0000000000 --- a/recipes/ixp4xx/ixp4xx-csr_2.1.bb +++ /dev/null @@ -1,112 +0,0 @@ -# Intel ixp4xx access library software. Note that this has an Intel -# license which restricts its use. -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" -SRC_URI += "file://mii-debug.patch;patch=1" -SRC_URI += "file://rtl8201-support.patch;patch=1" -SRC_URI += "file://gcc4.patch;patch=1" -SRC_URI += "file://oe-makefile.patch;patch=1" -SRC_URI += "file://livelock.patch;patch=1" -SRC_URI += "file://module-param.patch;patch=1" - -DEPENDS = "ixp-osal" -S = "${WORKDIR}/ixp400_xscale_sw" -PR = "r12" - -COMPATIBLE_HOST = "^arm.*-linux.*" -COMPATIBLE_MACHINE = "(nslu2|ixp4xx)" - -inherit module - -IX_TARGET = "linux${SITEINFO_ENDIANESS}" -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_INCLUDE_MICROCODE=1' \ - 'IX_UTOPIAMODE=0' \ - 'IX_MPHYSINGLEPORT=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}/kernel-config" -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>&1 | egrep . - then - echo "MODPOST errors - see above" - return 1 - else - return 0 - fi -} - - -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/ -} |