2013-06-30 13:09:50 +00:00
|
|
|
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(+)
|
|
|
|
|
2013-06-18 10:54:24 +00:00
|
|
|
--- a/arch/mips/bcm63xx/nvram.c
|
|
|
|
+++ b/arch/mips/bcm63xx/nvram.c
|
2013-06-20 18:47:36 +00:00
|
|
|
@@ -45,6 +45,7 @@ void __init bcm63xx_nvram_init(void *add
|
2013-06-18 10:54:24 +00:00
|
|
|
{
|
|
|
|
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));
|
2013-06-20 18:47:36 +00:00
|
|
|
@@ -65,6 +66,15 @@ void __init bcm63xx_nvram_init(void *add
|
2013-06-18 10:54:24 +00:00
|
|
|
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)
|