From 058998acdb05b859b1a85246fae668132a851756 Mon Sep 17 00:00:00 2001
From: Gabor Juhos <juhosg@openwrt.org>
Date: Tue, 13 Dec 2011 14:59:40 +0000
Subject: [PATCH] ar71xx: Build images for Netgear WNDRMAC and WNDRMACv2

The WNDRMAC is a WNDR3700v2 (64MB RAM, 16MB flash) in a white case. The
WNDRMACv2 is a WNDR3800 (128MB RAM, 16MB flash) in a WNDRMAC case.

The WNDRMAC case doesn't have "holes" or labels for the 2.4GHz LED or
switch ports 2-4. The stock firmware uses a single LED (in the 5GHz
position) to indicate the status of both radios, and a single LED (in the
switch port 1 position) to indicate the status of all LAN ports. The
"missing" LEDs are present on the board, and easily shine through the
case. Unlike the stock firmware, OpenWrt will use these "hidden" LEDs.

I've tested the WNDRMACv2 image. I don't have a v1 WNDRMAC, but assume
that this is sufficient to build a fully-functional image.

Signed-off-by: Mark Mentovai <mark@moxienet.com>

SVN-Revision: 29513
---
 target/linux/ar71xx/base-files/lib/ar71xx.sh               | 2 +-
 target/linux/ar71xx/files/arch/mips/ar71xx/mach-wndr3700.c | 3 ++-
 target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h      | 2 +-
 target/linux/ar71xx/generic/profiles/netgear.mk            | 4 ++--
 target/linux/ar71xx/image/Makefile                         | 2 ++
 5 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
index bbd84d1703..c8a202e6fd 100755
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
@@ -271,7 +271,7 @@ ar71xx_board_detect() {
 	*WP543)
 		name="wp543"
 		;;
-	*"WNDR3700/WNDR3800")
+	*"WNDR3700/WNDR3800/WNDRMAC")
 		wndr3700_board_detect "$machine"
 		;;
 	*WNR2000)
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 568dac917d..cfd0ba90c9 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wndr3700.c
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/mach-wndr3700.c
@@ -162,5 +162,6 @@ static void __init wndr3700_setup(void)
 		      art + WNDR3700_WMAC1_MAC_OFFSET);
 }
 
-MIPS_MACHINE(AR71XX_MACH_WNDR3700, "WNDR3700", "NETGEAR WNDR3700/WNDR3800",
+MIPS_MACHINE(AR71XX_MACH_WNDR3700, "WNDR3700",
+	     "NETGEAR WNDR3700/WNDR3800/WNDRMAC",
 	     wndr3700_setup);
diff --git a/target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h b/target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h
index 3a9e97396a..d3b7fc715a 100644
--- a/target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h
+++ b/target/linux/ar71xx/files/arch/mips/ar71xx/machtype.h
@@ -69,7 +69,7 @@ enum ar71xx_mach_type {
 	AR71XX_MACH_WHR_G301N,	/* Buffalo WHR-G301N */
 	AR71XX_MACH_WHR_HP_G300N, /* Buffalo WHR-HP-G300N */
 	AR71XX_MACH_WHR_HP_GN,	/* Buffalo WHR-HP-GN */
-	AR71XX_MACH_WNDR3700,	/* NETGEAR WNDR3700/WNDR3800 */
+	AR71XX_MACH_WNDR3700,	/* NETGEAR WNDR3700/WNDR3800/WNDRMAC */
 	AR71XX_MACH_WNR2000,	/* NETGEAR WNR2000 */
 	AR71XX_MACH_WP543,	/* Compex WP543 */
 	AR71XX_MACH_WRT160NL,	/* Linksys WRT160NL */
diff --git a/target/linux/ar71xx/generic/profiles/netgear.mk b/target/linux/ar71xx/generic/profiles/netgear.mk
index 78dba9762a..5978a32682 100644
--- a/target/linux/ar71xx/generic/profiles/netgear.mk
+++ b/target/linux/ar71xx/generic/profiles/netgear.mk
@@ -6,12 +6,12 @@
 #
 
 define Profile/WNDR3700
-	NAME:=NETGEAR WNDR3700/3800
+	NAME:=NETGEAR WNDR3700/WNDR3800/WNDRMAC
 	PACKAGES:=kmod-usb-core kmod-usb-ohci kmod-usb2 kmod-ledtrig-usbdev
 endef
 
 define Profile/WNDR3700/Description
-	Package set optimized for the NETGEAR WNDR3700/3800
+	Package set optimized for the NETGEAR WNDR3700/WNDR3800/WNDRMAC
 endef
 
 $(eval $(call Profile,WNDR3700))
diff --git a/target/linux/ar71xx/image/Makefile b/target/linux/ar71xx/image/Makefile
index a58f53ac61..bbfb5387ff 100644
--- a/target/linux/ar71xx/image/Makefile
+++ b/target/linux/ar71xx/image/Makefile
@@ -796,7 +796,9 @@ wndr3700v2_mtdlayout=mtdparts=spi0.0:320k(u-boot)ro,128k(u-boot-env)ro,1024k(ker
 define Image/Build/Profile/WNDR3700
 	$(call Image/Build/Template/$(fs_64k)/$(1),Netgear,wndr3700,$(wndr3700_cmdline),$(wndr3700_mtdlayout),3700,WNDR3700,"" NA,)
 	$(call Image/Build/Template/$(fs_64k)/$(1),Netgear,wndr3700v2,$(wndr3700_cmdline),$(wndr3700v2_mtdlayout),3701,WNDR3700v2,"",-H 29763654+16+64)
+	$(call Image/Build/Template/$(fs_64k)/$(1),Netgear,wndrmac,$(wndr3700_cmdline),$(wndr3700v2_mtdlayout),3701,WNDRMAC,"",-H 29763654+16+64)
 	$(call Image/Build/Template/$(fs_64k)/$(1),Netgear,wndr3800,$(wndr3700_cmdline),$(wndr3700v2_mtdlayout),3701,WNDR3800,"",-H 29763654+16+128)
+	$(call Image/Build/Template/$(fs_64k)/$(1),Netgear,wndrmacv2,$(wndr3700_cmdline),$(wndr3700v2_mtdlayout),3701,WNDRMACv2,"",-H 29763654+16+128)
 endef
 
 wr400n_cmdline=board=WRT400N console=ttyS0,115200
-- 
2.30.2