diff options
Diffstat (limited to 'recipes/ixp425-eth/ixp400-eth-1.5/mac-address.patch')
-rw-r--r-- | recipes/ixp425-eth/ixp400-eth-1.5/mac-address.patch | 123 |
1 files changed, 0 insertions, 123 deletions
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; - |