From 9e07cb05fa87936116d72d4fafe2a27d84e65f37 Mon Sep 17 00:00:00 2001 From: juhosg Date: Wed, 26 Jan 2011 20:35:42 +0000 Subject: ar71xx: add support for the WNDR3700v2 board Based on a patch by Mark Mentovai git-svn-id: svn://svn.openwrt.org/openwrt/trunk@25118 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../ar71xx/files/arch/mips/ar71xx/mach-wndr3700.c | 81 ++++++++++++++++++++-- .../linux/ar71xx/files/arch/mips/ar71xx/machtype.h | 1 + 2 files changed, 75 insertions(+), 7 deletions(-) (limited to 'target/linux/ar71xx/files/arch/mips') diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wndr3700.c b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wndr3700.c index 7b1ee90ae..f0b781955 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wndr3700.c +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wndr3700.c @@ -96,14 +96,64 @@ static struct mtd_partition wndr3700_partitions[] = { .mask_flags = MTD_WRITEABLE, } }; -#endif /* CONFIG_MTD_PARTITIONS */ -static struct flash_platform_data wndr3700_flash_data = { -#ifdef CONFIG_MTD_PARTITIONS - .parts = wndr3700_partitions, - .nr_parts = ARRAY_SIZE(wndr3700_partitions), -#endif +static struct mtd_partition wndr3700v2_partitions[] = { + { + .name = "uboot", + .offset = 0, + .size = 0x050000, + .mask_flags = MTD_WRITEABLE, + }, { + .name = "env", + .offset = 0x050000, + .size = 0x020000, + .mask_flags = MTD_WRITEABLE, + }, { + .name = "rootfs", + .offset = 0x070000, + .size = 0xe40000, + }, { + .name = "config", + .offset = 0xeb0000, + .size = 0x010000, + .mask_flags = MTD_WRITEABLE, + }, { + .name = "config_bak", + .offset = 0xec0000, + .size = 0x010000, + .mask_flags = MTD_WRITEABLE, + }, { + .name = "pot", + .offset = 0xed0000, + .size = 0x010000, + .mask_flags = MTD_WRITEABLE, + }, { + .name = "traffic_meter", + .offset = 0xee0000, + .size = 0x010000, + .mask_flags = MTD_WRITEABLE, + }, { + .name = "language", + .offset = 0xef0000, + .size = 0x100000, + .mask_flags = MTD_WRITEABLE, + }, { + .name = "caldata", + .offset = 0xff0000, + .size = 0x010000, + .mask_flags = MTD_WRITEABLE, + } }; +#define wndr3700_num_partitions ARRAY_SIZE(wndr3700_partitions) +#define wndr3700v2_num_partitions ARRAY_SIZE(wndr3700v2_partitions) +#else +#define wndr3700_partitions NULL +#define wndr3700_num_partitions 0 +#define wndr3700v2_partitions NULL +#define wndr3700v2_num_partitions 0 +#endif /* CONFIG_MTD_PARTITIONS */ + +static struct flash_platform_data wndr3700_flash_data; static struct gpio_led wndr3700_leds_gpio[] __initdata = { { @@ -167,7 +217,7 @@ static struct platform_device wndr3700_rtl8366s_device = { } }; -static void __init wndr3700_setup(void) +static void __init wndr3700_common_setup(void) { u8 *art = (u8 *) KSEG1ADDR(0x1fff0000); @@ -218,5 +268,22 @@ static void __init wndr3700_setup(void) art + WNDR3700_WMAC1_MAC_OFFSET); } +static void __init wndr3700_setup(void) +{ + wndr3700_flash_data.parts = wndr3700_partitions, + wndr3700_flash_data.nr_parts = wndr3700_num_partitions, + wndr3700_common_setup(); +} + MIPS_MACHINE(AR71XX_MACH_WNDR3700, "WNDR3700", "NETGEAR WNDR3700", wndr3700_setup); + +static void __init wndr3700v2_setup(void) +{ + wndr3700_flash_data.parts = wndr3700v2_partitions, + wndr3700_flash_data.nr_parts = wndr3700v2_num_partitions, + wndr3700_common_setup(); +} + +MIPS_MACHINE(AR71XX_MACH_WNDR3700V2, "WNDR3700v2", "NETGEAR WNDR3700v2", + wndr3700v2_setup); diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h b/target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h index 2a233d79f..40f1b0902 100644 --- a/target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h +++ b/target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h @@ -54,6 +54,7 @@ enum ar71xx_mach_type { AR71XX_MACH_UBNT_ROCKET_M, /* Ubiquiti Rocket M */ AR71XX_MACH_UBNT_NANO_M, /* Ubiquiti NanoStation M */ AR71XX_MACH_WNDR3700, /* NETGEAR WNDR3700 */ + AR71XX_MACH_WNDR3700V2, /* NETGEAR WNDR3700v2 */ AR71XX_MACH_WNR2000, /* NETGEAR WNR2000 */ AR71XX_MACH_WP543, /* Compex WP543 */ AR71XX_MACH_WRT160NL, /* Linksys WRT160NL */ -- cgit v1.2.3