openwrtv4/target/linux/brcm63xx/patches-3.9/426-hcs_mac_addr_pool.patch
Florian Fainelli 4ef56823e0 brcm63xx: reduce the number of Ethernet DMA channels from 16 to 8
We currently used 16 DMA Ethernet channels, but the hardware only
supports up to 8 (with 2 per enet and the remaining for USB slave).

Signed-off-by: Florian Fainelli <florian@openwrt.org>

SVN-Revision: 36979
2013-06-20 18:47:36 +00:00

26 lines
829 B
Diff

--- 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)