1 --- a/arch/mips/bcm63xx/nvram.c
2 +++ b/arch/mips/bcm63xx/nvram.c
3 @@ -52,6 +52,7 @@ void __init bcm63xx_nvram_init(void *add
5 unsigned int check_len;
7 + u8 hcs_mac_addr[ETH_ALEN] = { 0x00, 0x10, 0x18, 0xff, 0xff, 0xff };
9 /* extract nvram data */
10 memcpy(&nvram, addr, sizeof(nvram));
11 @@ -73,6 +74,15 @@ void __init bcm63xx_nvram_init(void *add
12 if (crc != expected_crc)
13 pr_warn("nvram checksum failed, contents may be invalid (expected %08x, got %08x)\n",
16 + /* Cable modems have a different NVRAM which is embedded in the eCos
17 + * firmware and not easily extractible, give at least a MAC address
20 + if (BCMCPU_IS_3368()) {
21 + memcpy(nvram.mac_addr_base, hcs_mac_addr, ETH_ALEN);
22 + nvram.mac_addr_count = 2;
26 u8 *bcm63xx_nvram_get_name(void)