Browse Source

add support for BT Voyager 2500 (#9070)

SVN-Revision: 26954
Florian Fainelli 14 years ago
parent
commit
f0a99c1692

+ 1 - 1
target/linux/brcm63xx/base-files/etc/uci-defaults/brcm63xx_fixcrc.sh

@@ -13,7 +13,7 @@ do_fixcrc() {
 brcm63xx_detect
 
 case "$board_name" in
-	"bcm63xx/CPVA642 "* | "bcm63xx/MAGIC "*)
+	"bcm63xx/CPVA642 "* | "bcm63xx/MAGIC "* | "bcm63xx/V2500V_BB "* )
 		do_fixcrc
 		;;
 esac

+ 114 - 0
target/linux/brcm63xx/patches-2.6.37/454-board_V2500V.patch

@@ -0,0 +1,114 @@
+Index: b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+===================================================================
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c	2011-03-21 08:29:36.500387994 +0000
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c	2011-03-31 12:35:08.209787004 +0100
+@@ -845,6 +845,63 @@
+ 	},
+ };
+ 
++	static struct board_info __initdata board_V2500V_BB = {
++        .name                           = "V2500V_BB",
++        .expected_cpu_id                = 0x6348,
++
++        .has_uart0                      = 1,
++        .has_enet0                      = 1,
++        .has_enet1                      = 1,
++        .has_pci                        = 1,
++
++        .enet0 = {
++                .has_phy                = 1,
++                .use_internal_phy       = 1,
++        },
++        .enet1 = {
++                .force_speed_100        = 1,
++                .force_duplex_full      = 1,
++        },
++
++	.leds = {
++		{
++			.name		= "power:green",
++			.gpio		= 0,
++			.active_low	= 1,
++			.default_trigger = "default-on",
++		},
++		{
++			.name		= "power:red",
++			.gpio		= 1,
++			.active_low	= 1,
++		},
++		{
++			.name		= "adsl",
++			.gpio		= 2,
++			.active_low	= 1,
++		},
++		{	.name		= "ppp",
++			.gpio		= 3,
++			.active_low	= 1,
++		},
++		{
++			.name		= "wireless",
++			.gpio		= 6,
++			.active_low	= 1,
++		},
++	},
++	.buttons = {
++		{
++			.desc		= "reset",
++			.gpio		= 31,
++			.active_low	= 1,
++			.type		= EV_KEY,
++			.code		= KEY_RESTART,
++			.threshold	= 3,
++		},
++	},
++};
++
+ #endif
+ 
+ /*
+@@ -1830,6 +1887,7 @@
+ 	&board_spw500v,
+ 	&board_ct536_ct5621,
+ 	&board_96348sv,
++	&board_V2500V_BB,
+ #endif
+ 
+ #ifdef CONFIG_BCM63XX_CPU_6358
+@@ -1977,6 +2035,22 @@
+ 		val &= MPI_CSBASE_BASE_MASK;
+ 	}
+ 	boot_addr = (u8 *)KSEG1ADDR(val);
++	printk(KERN_INFO PFX "Boot address 0x%08x\n",(unsigned int)boot_addr);
++
++	/* BT Voyager 2500V (RTA1046VW PCB) has 8 Meg flash used as two */
++	/* banks of 4 Meg. The byte at 0xBF800000 identifies the back to use.*/
++	/* Loading firmware from the CFE Prompt always loads to Bank 0 */
++	/* Do an early check of CFE and then select bank 0 */
++
++       	if (boot_addr == (u8 *)0xbf800000) {
++		u8 *tmp_boot_addr;
++		tmp_boot_addr = (u8 *)0xbfc00000; // Address of Bank 0
++		memcpy(&nvram, tmp_boot_addr + BCM963XX_NVRAM_OFFSET, sizeof(nvram));
++		if (!strcmp(nvram.name, "V2500V_BB")) {
++	               	printk(KERN_INFO PFX "V2500V: nvram bank 0\n");
++			boot_addr = (u8 *)0xbfc00000; // Bank 0
++		}
++	}
+ 
+ 	/* dump cfe version */
+ 	cfe = boot_addr + BCM963XX_CFE_VERSION_OFFSET;
+@@ -2184,6 +2258,14 @@
+ 		val = bcm_mpi_readl(MPI_CSBASE_REG(0));
+ 		val &= MPI_CSBASE_BASE_MASK;
+ 	}
++
++	/* BT Voyager 2500V has 8 Meg flash in two 4 Meg banks */
++	/* Loading from CFE always uses Bank 0 */
++	if (!strcmp(board.name, "V2500V_BB")) {
++		printk(KERN_INFO PFX "V2500V: Start in Bank 0\n");
++		val = val + 0x400000; // Select Bank 0 start address
++		}
++
+ 	mtd_resources[0].start = val;
+ 	mtd_resources[0].end = 0x1FFFFFFF;
+