diff options
Diffstat (limited to 'target/linux/brcm63xx/patches-3.10/038-MIPS-BCM63XX-provide-a-MAC-address-for-BCM3368-chips.patch')
-rw-r--r-- | target/linux/brcm63xx/patches-3.10/038-MIPS-BCM63XX-provide-a-MAC-address-for-BCM3368-chips.patch | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/target/linux/brcm63xx/patches-3.10/038-MIPS-BCM63XX-provide-a-MAC-address-for-BCM3368-chips.patch b/target/linux/brcm63xx/patches-3.10/038-MIPS-BCM63XX-provide-a-MAC-address-for-BCM3368-chips.patch new file mode 100644 index 0000000000..ad32ac1738 --- /dev/null +++ b/target/linux/brcm63xx/patches-3.10/038-MIPS-BCM63XX-provide-a-MAC-address-for-BCM3368-chips.patch @@ -0,0 +1,46 @@ +From 404fdc457082772ff52e22988e09e82c0d6e8780 Mon Sep 17 00:00:00 2001 +From: Florian Fainelli <florian@openwrt.org> +Date: Tue, 18 Jun 2013 16:55:42 +0000 +Subject: [PATCH 4/6] MIPS: BCM63XX: provide a MAC address for BCM3368 chips + +The BCM3368 SoC uses a NVRAM format which is not compatible with the one +used by CFE, provide a default MAC address which is suitable for use and +which is the default one also being used by the bootloader on these +chips. + +Signed-off-by: Florian Fainelli <florian@openwrt.org> +Cc: linux-mips@linux-mips.org +Cc: cernekee@gmail.com +Cc: jogo@openwrt.org +Patchwork: https://patchwork.linux-mips.org/patch/5498/ +Signed-off-by: Ralf Baechle <ralf@linux-mips.org> +--- + arch/mips/bcm63xx/nvram.c | 10 ++++++++++ + 1 file changed, 10 insertions(+) + +--- a/arch/mips/bcm63xx/nvram.c ++++ b/arch/mips/bcm63xx/nvram.c +@@ -45,6 +45,7 @@ void __init bcm63xx_nvram_init(void *add + { + unsigned int check_len; + u32 crc, expected_crc; ++ u8 hcs_mac_addr[ETH_ALEN] = { 0x00, 0x10, 0x18, 0xff, 0xff, 0xff }; + + /* extract nvram data */ + memcpy(&nvram, addr, sizeof(nvram)); +@@ -65,6 +66,15 @@ void __init bcm63xx_nvram_init(void *add + if (crc != expected_crc) + pr_warn("nvram checksum failed, contents may be invalid (expected %08x, got %08x)\n", + expected_crc, crc); ++ ++ /* Cable modems have a different NVRAM which is embedded in the eCos ++ * firmware and not easily extractible, give at least a MAC address ++ * pool. ++ */ ++ if (BCMCPU_IS_3368()) { ++ memcpy(nvram.mac_addr_base, hcs_mac_addr, ETH_ALEN); ++ nvram.mac_addr_count = 2; ++ } + } + + u8 *bcm63xx_nvram_get_name(void) |