summaryrefslogtreecommitdiff
path: root/recipes-kernel/linux/linux-toradex-mainline-4.9/0003-apalis_t30-tk1-igb-no-nvm-and-Ethernet-MAC-address-h.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-kernel/linux/linux-toradex-mainline-4.9/0003-apalis_t30-tk1-igb-no-nvm-and-Ethernet-MAC-address-h.patch')
-rw-r--r--recipes-kernel/linux/linux-toradex-mainline-4.9/0003-apalis_t30-tk1-igb-no-nvm-and-Ethernet-MAC-address-h.patch136
1 files changed, 0 insertions, 136 deletions
diff --git a/recipes-kernel/linux/linux-toradex-mainline-4.9/0003-apalis_t30-tk1-igb-no-nvm-and-Ethernet-MAC-address-h.patch b/recipes-kernel/linux/linux-toradex-mainline-4.9/0003-apalis_t30-tk1-igb-no-nvm-and-Ethernet-MAC-address-h.patch
deleted file mode 100644
index cd53bc6..0000000
--- a/recipes-kernel/linux/linux-toradex-mainline-4.9/0003-apalis_t30-tk1-igb-no-nvm-and-Ethernet-MAC-address-h.patch
+++ /dev/null
@@ -1,136 +0,0 @@
-From 259b864ce38d18f7de945f957ee2e11ea4429812 Mon Sep 17 00:00:00 2001
-From: Marcel Ziswiler <marcel.ziswiler@toradex.com>
-Date: Thu, 15 Dec 2016 10:55:54 +0100
-Subject: [PATCH 3/4] apalis_t30/tk1: igb: no nvm and Ethernet MAC address
- handling
-
-Only warn rather than fail on NVM validation failures on Apalis T30 and
-Apalis TK1.
-
-Revise Ethernet MAC address assignment: should now handle up to two
-instances of custom user MACs (2nd one with a 0x100000 offset). This
-way customer does not have to worry about NVM on a secondary Ethernet
-on the carrier board and still gets a valid official MAC address from
-us (e.g. analogous to how we did it on our Protea carrier board).
-
-Use the Toradex OUI as default MAC address if no valid one is
-encountered.
-
-Tested on samples of Apalis T30 2GB V1.0B, V1.0C, V1.1A, Apalis T30 1GB
-V1.0A, V1.1A and Apalis T30 1GB IT V1.1A both with blank NVMs as well
-as iNVMs programmed with Intel's defaults.
-
-Tested on samples of Apalis TK1 2GB V1.0A, V1.0B and V1.1A both with
-blank NVMs as well as iNVMs programmed with Intel's defaults.
-
-Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
-Acked-by: Dominik Sliwa <dominik.sliwa@toradex.com>
-
-(cherry picked from toradex_tk1_l4t_r21.5 commit
-70efa60d96c9f05d91d8875eee97446df7f9e877)
-(cherry picked from tegra commit
-c4c3c7449bdb15c53bfebb0a29c73b24ea810d23)
-
----
-
- drivers/net/ethernet/intel/igb/igb_main.c | 60 +++++++++++++++++++++++++++++--
- 1 file changed, 57 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
-index 680abcd..3df0e4e 100644
---- a/drivers/net/ethernet/intel/igb/igb_main.c
-+++ b/drivers/net/ethernet/intel/igb/igb_main.c
-@@ -55,6 +55,7 @@
- #include <linux/dca.h>
- #endif
- #include <linux/i2c.h>
-+#include <linux/ctype.h>
- #include "igb.h"
-
- #define MAJ 5
-@@ -69,6 +70,9 @@ static const char igb_driver_string[] =
- static const char igb_copyright[] =
- "Copyright (c) 2007-2014 Intel Corporation.";
-
-+static char g_mac_addr[ETH_ALEN];
-+static int g_usr_mac = 0;
-+
- static const struct e1000_info *igb_info_tbl[] = {
- [board_82575] = &e1000_82575_info,
- };
-@@ -258,6 +262,37 @@ static int debug = -1;
- module_param(debug, int, 0);
- MODULE_PARM_DESC(debug, "Debug level (0=none,...,16=all)");
-
-+/* Retrieve user set MAC address */
-+static int __init setup_igb_mac(char *macstr)
-+{
-+ int i, j;
-+ unsigned char result, value;
-+
-+ for (i = 0; i < ETH_ALEN; i++) {
-+ result = 0;
-+
-+ if (i != 5 && *(macstr + 2) != ':')
-+ return -1;
-+
-+ for (j = 0; j < 2; j++) {
-+ if (isxdigit(*macstr) && (value = isdigit(*macstr) ?
-+ *macstr - '0' : toupper(*macstr) - 'A' + 10) < 16) {
-+ result = result * 16 + value;
-+ macstr++;
-+ } else
-+ return -1;
-+ }
-+
-+ macstr++;
-+ g_mac_addr[i] = result;
-+ }
-+
-+ g_usr_mac = 1;
-+
-+ return 0;
-+}
-+__setup("igb_mac=", setup_igb_mac);
-+
- struct igb_reg_info {
- u32 ofs;
- char *name;
-@@ -2511,12 +2546,31 @@ static int igb_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
- dev_err(&pdev->dev, "NVM Read Error\n");
- }
-
-+ if (g_usr_mac && (g_usr_mac < 3)) {
-+ /* Get user set MAC address */
-+ if (g_usr_mac == 2) {
-+ /* 0x100000 offset for 2nd Ethernet MAC */
-+ g_mac_addr[3] += 0x10;
-+ if (g_mac_addr[3] < 0x10)
-+ dev_warn(&pdev->dev,
-+ "MAC addr byte 3 (0x%02x) wrap around"
-+ "\n",
-+ g_mac_addr[3]);
-+ }
-+ memcpy(hw->mac.addr, g_mac_addr, ETH_ALEN);
-+ g_usr_mac++;
-+ }
-+
- memcpy(netdev->dev_addr, hw->mac.addr, netdev->addr_len);
-
- if (!is_valid_ether_addr(netdev->dev_addr)) {
-- dev_err(&pdev->dev, "Invalid MAC Address\n");
-- err = -EIO;
-- goto err_eeprom;
-+ /* Use Toradex OUI as default */
-+ char default_mac_addr[ETH_ALEN] = {
-+ 0x0, 0x14, 0x2d, 0x0, 0x0, 0x0
-+ };
-+ dev_warn(&pdev->dev, "using Toradex OUI as default igb MAC\n");
-+ memcpy(hw->mac.addr, default_mac_addr, ETH_ALEN);
-+ memcpy(netdev->dev_addr, hw->mac.addr, netdev->addr_len);
- }
-
- /* get firmware version for ethtool -i */
---
-2.9.3
-