mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 05:54:26 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			113 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
 | |
| +++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
 | |
| @@ -858,6 +858,63 @@ static struct board_info __initdata boar
 | |
|  	},
 | |
|  };
 | |
|  
 | |
| +	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
 | |
|  
 | |
|  /*
 | |
| @@ -1909,6 +1966,7 @@ static const struct board_info __initdat
 | |
|  	&board_96348_D4PW,
 | |
|  	&board_spw500v,
 | |
|  	&board_96348sv,
 | |
| +	&board_V2500V_BB,
 | |
|  #endif
 | |
|  
 | |
|  #ifdef CONFIG_BCM63XX_CPU_6358
 | |
| @@ -2057,6 +2115,22 @@ void __init board_prom_init(void)
 | |
|  		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;
 | |
| @@ -2264,6 +2338,14 @@ int __init board_register_devices(void)
 | |
|  		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;
 | |
|  
 |