Re: [OpenWrt-Devel] [PATCH][bcm63xx]: Add DGND3700 v1 / DGND3800B support

2015-03-16 Thread Jonas Gorski
On Sun, Mar 1, 2015 at 12:54 AM, David Lang da...@lang.hm wrote:
 Is this going to include support for the DSL on these boxes? the Table of
 Hardware page still says that the DSL is not and will never be supported.
 I've seen enough changes in such things over the years to hope that this is
 no longer the case.

No, and probably never will be.


Jonas
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] [PATCH][bcm63xx]: Add DGND3700 v1 / DGND3800B support

2015-03-16 Thread Jonas Gorski
On Sun, Mar 1, 2015 at 12:09 AM, dani dgcb...@gmail.com wrote:
 Ok, patch updated with latest changes in trunk, and suggestions.

 About SPROM fixups, I misundertsood its purpouse. Deleted since it's not 
 required.

 Signed-off-by: Daniel Gonzalez dgcb...@gmail.com

Thanks, applied with a few white space fixes. Next time if you
resubmit a patch please keep the commit log intact, so I can just grab
it from patchwork directly.


Jonas
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


Re: [OpenWrt-Devel] [PATCH][bcm63xx]: Add DGND3700 v1 / DGND3800B support

2015-02-28 Thread dani
Ok, patch updated with latest changes in trunk, and suggestions.

About SPROM fixups, I misundertsood its purpouse. Deleted since it's not 
required.

Signed-off-by: Daniel Gonzalez dgcb...@gmail.com
diff --git a/target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds 
b/target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds
index 854b3b2..69d797e 100644
--- a/target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds
+++ b/target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds
@@ -14,6 +14,14 @@ case $board_name in
 96328dg2x2)
ucidef_set_led_usbdev usb USB A4001N:green:usb 1-1
;;
+DGND3700v1_3800B)
+   ucidef_set_led_netdev lan LAN DGND3700v1_3800B:green:lan eth0.1
+   ucidef_set_led_netdev wan WAN DGND3700v1_3800B:green:inet eth0.2
+   ucidef_set_led_netdev wlan0 WIFI2G DGND3700v1_3800B:green:wifi2g 
wlan0
+   ucidef_set_led_netdev wlan1 WIFI5G DGND3700v1_3800B:blue:wifi5g 
wlan1
+   ucidef_set_led_usbdev usb1 USB1 DGND3700v1_3800B:green:usb-back 
1-1
+   ucidef_set_led_usbdev usb2 USB2 DGND3700v1_3800B:green:usb-front 
1-2
+   ;;
 'F@ST2704V2')
ucidef_set_led_usbdev usb USB F@ST2704V2:green:usb 1-1
;;
diff --git a/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network 
b/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network
index 709a1c8..6b9736a 100644
--- a/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network
+++ b/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network
@@ -108,6 +108,13 @@ P870HW-51a_v2)
ucidef_add_switch_vlan eth0 2 4 5t
;;
 
+DGND3700v1_3800B)
+   ucidef_set_interfaces_lan_wan eth0.1 eth0.2
+   ucidef_add_switch eth0 1 1
+   ucidef_add_switch_vlan eth0 1 1 2 3 4 8t
+   ucidef_add_switch_vlan eth0 2 0 8t
+   ;;
+
 NB6)
ucidef_set_interfaces_lan_wan eth0.1 eth0.2
ucidef_add_switch switch0 1 1
diff --git a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh 
b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
index 58ce71e..53dd759 100755
--- a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
+++ b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
@@ -111,6 +111,13 @@ brcm63xx_detect() {
brcm63xx_has_reset_button=true
ifname=eth0
;;
+
+   DGND3700v1_3800B)
+   status_led=DGND3700v1_3800B:green:power
+   brcm63xx_has_reset_button=true
+   ifname=eth0
+   ;;
+
F@ST2504n)
status_led=fast2504n:green:ok
brcm63xx_has_reset_button=true
diff --git a/target/linux/brcm63xx/image/Makefile 
b/target/linux/brcm63xx/image/Makefile
index dd16355..3fb9b1c 100755
--- a/target/linux/brcm63xx/image/Makefile
+++ b/target/linux/brcm63xx/image/Makefile
@@ -111,6 +111,12 @@ define Image/Build/HCSDTB
--output_file=$(BIN_DIR)/openwrt-$(2)-$(1).bin
 endef
 
+define Image/Build/ChkDTB
+   # Generate Netgear factory image
+   $(STAGING_DIR_HOST)/bin/mkchkimg -o 
$(BIN_DIR)/openwrt-$(2)-$(1)-factory.chk \
+   -k $(BIN_DIR)/openwrt-$(4)-$(1)-cfe.bin -b $(5) -r $(6)
+endef
+
 define Build/Clean
$(MAKE) -C lzma-loader clean
 endef
@@ -303,6 +309,12 @@ $(eval $(call 
ImageDTB,RedBootDTB,Livebox,livebox,livebox-blue-5g))
 $(eval $(call ImageDTB,HCSDTB,CVG834G,,cvg834g,a020,0001,0022,vmlinux-cvg834g))
 # Netgear DG834GT/PN
 $(eval $(call ImageDTB,CFEDTB,DG834GTPN,DG834GT_PN,dg834gtpn,96348GW-10,6348))
+# Netgear DGND3700 v1 / DGND3800B
+$(eval $(call 
ImageDTB,CFEDTB,DGND3700v1_3800B,DGND3700v1_3800B,dgnd3700v1,96368MVWG,6368,--image-offset
 0x2 --block-size 0x2))
+#Netgear DGND3700 v1 factory firmware
+$(eval $(call 
ImageDTB,ChkDTB,DGND3700v1_3800B,DGND3700v1,,DGND3700v1_3800B,U12L144T01_NETGEAR_NEWLED,1))
+#Netgear DGND3800B factory firmware
+$(eval $(call 
ImageDTB,ChkDTB,DGND3700v1_3800B,DGND3800B,,DGND3700v1_3800B,U12L144T11_NETGEAR_NEWLED,1))
 # Pirelli Alice Gate VoIP 2 Plus Wi-Fi AGPF-S0
 $(eval $(call ImageDTB,CFEDTB,AGPF_S0,AGV2+W,agpf-s0,AGPF-S0,6358,--block-size 
0x2 --image-offset 0x2 --signature2 IMAGE --tag-version 8))
 # Pirelli A226G
diff --git a/target/linux/brcm63xx/profiles/netgear.mk 
b/target/linux/brcm63xx/profiles/netgear.mk
index 75ddab5..20224a2 100644
--- a/target/linux/brcm63xx/profiles/netgear.mk
+++ b/target/linux/brcm63xx/profiles/netgear.mk
@@ -12,7 +12,6 @@ endef
 define Profile/CVG834G/Description
   Package set optimized for CVG834G.
 endef
-
 $(eval $(call Profile,CVG834G))
 
 define Profile/DG834GTPN
@@ -23,3 +22,13 @@ define Profile/DG834GTPN/Description
   Package set optimized for DG834GT/PN.
 endef
 $(eval $(call Profile,DG834GTPN))
+
+define Profile/DGND3700v1_3800B
+  NAME:=Netgear DGND3700 v1 / DGND3800B
+  PACKAGES:=kmod-b43 wpad-mini \
+   kmod-usb2 kmod-usb-ohci kmod-ledtrig-usbdev
+endef
+define Profile/DGND3700v1_3800B/Description
+  Package set optimized for DGND3700 v1 / DGND3800B.
+endef
+$(eval $(call Profile,DGND3700v1_3800B))
diff 

Re: [OpenWrt-Devel] [PATCH][bcm63xx]: Add DGND3700 v1 / DGND3800B support

2015-02-28 Thread David Lang
Is this going to include support for the DSL on these boxes? the Table of 
Hardware page still says that the DSL is not and will never be supported. I've 
seen enough changes in such things over the years to hope that this is no longer 
the case.


David Lang

On Sun, 1 Mar 2015, dani wrote:


Date: Sun, 01 Mar 2015 00:09:59 +0100
From: dani dgcb...@gmail.com
To: openwrt-devel@lists.openwrt.org, j...@openwrt.org
Subject: Re: [OpenWrt-Devel] [PATCH][bcm63xx]: Add DGND3700 v1 / DGND3800B
support

Ok, patch updated with latest changes in trunk, and suggestions.

About SPROM fixups, I misundertsood its purpouse. Deleted since it's not 
required.

Signed-off-by: Daniel Gonzalez dgcb...@gmail.com
diff --git a/target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds 
b/target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds
index 854b3b2..69d797e 100644
--- a/target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds
+++ b/target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds
@@ -14,6 +14,14 @@ case $board_name in
96328dg2x2)
ucidef_set_led_usbdev usb USB A4001N:green:usb 1-1
;;
+DGND3700v1_3800B)
+   ucidef_set_led_netdev lan LAN DGND3700v1_3800B:green:lan eth0.1
+   ucidef_set_led_netdev wan WAN DGND3700v1_3800B:green:inet eth0.2
+   ucidef_set_led_netdev wlan0 WIFI2G DGND3700v1_3800B:green:wifi2g 
wlan0
+   ucidef_set_led_netdev wlan1 WIFI5G DGND3700v1_3800B:blue:wifi5g 
wlan1
+   ucidef_set_led_usbdev usb1 USB1 DGND3700v1_3800B:green:usb-back 
1-1
+   ucidef_set_led_usbdev usb2 USB2 DGND3700v1_3800B:green:usb-front 
1-2
+   ;;
'F@ST2704V2')
ucidef_set_led_usbdev usb USB F@ST2704V2:green:usb 1-1
;;
diff --git a/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network 
b/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network
index 709a1c8..6b9736a 100644
--- a/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network
+++ b/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network
@@ -108,6 +108,13 @@ P870HW-51a_v2)
ucidef_add_switch_vlan eth0 2 4 5t
;;

+DGND3700v1_3800B)
+   ucidef_set_interfaces_lan_wan eth0.1 eth0.2
+   ucidef_add_switch eth0 1 1
+   ucidef_add_switch_vlan eth0 1 1 2 3 4 8t
+   ucidef_add_switch_vlan eth0 2 0 8t
+   ;;
+
NB6)
ucidef_set_interfaces_lan_wan eth0.1 eth0.2
ucidef_add_switch switch0 1 1
diff --git a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh 
b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
index 58ce71e..53dd759 100755
--- a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
+++ b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
@@ -111,6 +111,13 @@ brcm63xx_detect() {
brcm63xx_has_reset_button=true
ifname=eth0
;;
+
+   DGND3700v1_3800B)
+   status_led=DGND3700v1_3800B:green:power
+   brcm63xx_has_reset_button=true
+   ifname=eth0
+   ;;
+
F@ST2504n)
status_led=fast2504n:green:ok
brcm63xx_has_reset_button=true
diff --git a/target/linux/brcm63xx/image/Makefile 
b/target/linux/brcm63xx/image/Makefile
index dd16355..3fb9b1c 100755
--- a/target/linux/brcm63xx/image/Makefile
+++ b/target/linux/brcm63xx/image/Makefile
@@ -111,6 +111,12 @@ define Image/Build/HCSDTB
--output_file=$(BIN_DIR)/openwrt-$(2)-$(1).bin
endef

+define Image/Build/ChkDTB
+   # Generate Netgear factory image
+   $(STAGING_DIR_HOST)/bin/mkchkimg -o 
$(BIN_DIR)/openwrt-$(2)-$(1)-factory.chk \
+   -k $(BIN_DIR)/openwrt-$(4)-$(1)-cfe.bin -b $(5) -r $(6)
+endef
+
define Build/Clean
$(MAKE) -C lzma-loader clean
endef
@@ -303,6 +309,12 @@ $(eval $(call 
ImageDTB,RedBootDTB,Livebox,livebox,livebox-blue-5g))
$(eval $(call ImageDTB,HCSDTB,CVG834G,,cvg834g,a020,0001,0022,vmlinux-cvg834g))
# Netgear DG834GT/PN
$(eval $(call ImageDTB,CFEDTB,DG834GTPN,DG834GT_PN,dg834gtpn,96348GW-10,6348))
+# Netgear DGND3700 v1 / DGND3800B
+$(eval $(call 
ImageDTB,CFEDTB,DGND3700v1_3800B,DGND3700v1_3800B,dgnd3700v1,96368MVWG,6368,--image-offset
 0x2 --block-size 0x2))
+#Netgear DGND3700 v1 factory firmware
+$(eval $(call 
ImageDTB,ChkDTB,DGND3700v1_3800B,DGND3700v1,,DGND3700v1_3800B,U12L144T01_NETGEAR_NEWLED,1))
+#Netgear DGND3800B factory firmware
+$(eval $(call 
ImageDTB,ChkDTB,DGND3700v1_3800B,DGND3800B,,DGND3700v1_3800B,U12L144T11_NETGEAR_NEWLED,1))
# Pirelli Alice Gate VoIP 2 Plus Wi-Fi AGPF-S0
$(eval $(call ImageDTB,CFEDTB,AGPF_S0,AGV2+W,agpf-s0,AGPF-S0,6358,--block-size 
0x2 --image-offset 0x2 --signature2 IMAGE --tag-version 8))
# Pirelli A226G
diff --git a/target/linux/brcm63xx/profiles/netgear.mk 
b/target/linux/brcm63xx/profiles/netgear.mk
index 75ddab5..20224a2 100644
--- a/target/linux/brcm63xx/profiles/netgear.mk
+++ b/target/linux/brcm63xx/profiles/netgear.mk
@@ -12,7 +12,6 @@ endef
define Profile/CVG834G/Description
  Package set optimized for CVG834G.
endef
-
$(eval $(call Profile,CVG834G

Re: [OpenWrt-Devel] [PATCH][bcm63xx]: Add DGND3700 v1 / DGND3800B support

2015-02-27 Thread Jonas Gorski
On Fri, Feb 20, 2015 at 1:08 PM, dani dgcb...@gmail.com wrote:
 This adds support for the Netgear DGND3700 v1 and DGND3800B.

Thanks, I have one lying around but never got around to properly
adding support for it. A few things before I can commit it ...

 DGND3700 v1 and DGND3800B are exactly the same router, only one difference,
 the factory firmware. This patch produces two factory firmwares for each 
 router.
 The miniPCI card have two radios, I included sprom fixups bor both spite wifi 
 works
 ok without it.

At least my dgnd3700 has properly populated/valid sproms on the card
and does not need any fixups, so I wonder where you took the values
from.

Also I added DT support for the gpio drivero (finally), so please move
any buttons/leds to it. Should also help to reduce the patch size.

 The router includes an onboard NAND flash for extra storage. NAND is currently
 not supported in bcm63xx, so no code added for this part. The NOR flash (32MB)
 is enough for storing an openwrt firmware.

Makes sense if there is no driver.

(snip)
 diff --git a/target/linux/brcm63xx/image/Makefile 
 b/target/linux/brcm63xx/image/Makefile
 index fd1e157..4520f06 100755
 --- a/target/linux/brcm63xx/image/Makefile
 +++ b/target/linux/brcm63xx/image/Makefile
 @@ -105,6 +105,11 @@ define Image/Build/HCS
 --output_file=$(BIN_DIR)/openwrt-$(2)-$(1).bin
  endef

 +define Image/Build/Chk
 +   $(STAGING_DIR_HOST)/bin/mkchkimg -o 
 $(BIN_DIR)/openwrt-$(5)-$(1)-factory.chk \
 +   -k $(BIN_DIR)/openwrt-$(2)-$(1)-cfe.bin -b $(3) -r $(4)
 +endef
 +
  define Build/Clean
 $(MAKE) -C lzma-loader clean
  endef
 @@ -209,6 +214,11 @@ define Image/Build
 # build dtb image list
 $(foreach image,$(TARGET_$(PROFILE)_IMAGES),$(call 
 Image/Build/$(image),$(1)))

 +   #Netgear DGND3700 v1 factory firmware
 +   $(call 
 Image/Build/Chk,$(1),DGND3700v1_3800B,U12L144T01_NETGEAR_NEWLED,1,DGND3700v1)
 +   #Netgear DGND3800B factory firmware
 +   $(call 
 Image/Build/Chk,$(1),DGND3700v1_3800B,U12L144T11_NETGEAR_NEWLED,1,DGND3800B)
 +

Please don't add any further calls here but instead let the ImageDTB
call an aprpriate define that does these wraps.

ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y)
 $(call Image/Build/Initramfs)
endif
 @@ -298,6 +308,8 @@ $(eval $(call 
 ImageDTB,CFEDTB,HG556a_AB,hg556a-b,HW556,6358,HG556a_B,--rsa-signa
  $(eval $(call 
 ImageDTB,CFEDTB,HG556a_C,hg556a-c,HW556,6358,HG556a_C,--rsa-signature 
 EchoLife_HG556a --image-offset 0x2 --block-size 0x2 --tag-version 
 8))
  # Netgear DG834GT/PN
  $(eval $(call 
 ImageDTB,CFEDTB,DG834GTPN,dg834gtpn,96348GW-10,6348,DG834GT_PN))
 +# Netgear DGND3700 v1 / DGND3800B
 +$(eval $(call 
 ImageDTB,CFEDTB,DGND3700v1_3800B,dgnd3700v1,96368MVWG,6368,DGND3700v1_3800B,--image-offset
  0x2 --block-size 0x2))
  # Pirelli Alice Gate VoIP 2 Plus Wi-Fi AGPF-S0
  $(eval $(call 
 ImageDTB,CFEDTB,AGPF_S0,agpf-s0,AGPF-S0,6358,AGV2+W,--block-size 0x2 
 --image-offset 0x2 --signature2 IMAGE --tag-version 8))
  # Pirelli A226G
 diff --git a/target/linux/brcm63xx/profiles/netgear.mk 
 b/target/linux/brcm63xx/profiles/netgear.mk
 index 562e0f5..a731b36 100644
 --- a/target/linux/brcm63xx/profiles/netgear.mk
 +++ b/target/linux/brcm63xx/profiles/netgear.mk
 @@ -13,3 +13,13 @@ define Profile/DG834GTPN/Description
Package set optimized for DG834GT/PN.
  endef
  $(eval $(call Profile,DG834GTPN))
 +
 +define Profile/DGND3700v1_3800B
 +  NAME:=Netgear DGND3700 v1 / DGND3800B
 +  PACKAGES:=kmod-b43 wpad-mini \
 +   kmod-usb2 kmod-usb-ohci kmod-ledtrig-usbdev
 +endef
 +define Profile/DGND3700v1_3800B/Description
 +  Package set optimized for DGND3700 v1 / DGND3800B.
 +endef
 +$(eval $(call Profile,DGND3700v1_3800B))
 diff --git a/target/linux/brcm63xx/dts/dgnd3700v1.dts 
 b/target/linux/brcm63xx/dts/dgnd3700v1.dts
 new file mode 100644
 index 000..a647476
 --- /dev/null
 +++ b/target/linux/brcm63xx/dts/dgnd3700v1.dts
 @@ -0,0 +1,36 @@
 +/dts-v1/;
 +
 +/include/ bcm6368.dtsi
 +
 +/ {
 +   model = Netgear DGND3700v1/DGND3800B;
 +   compatible = netgear,dgnd3700v1, brcm,bcm6368;
 +};
 +
 +pflash {
 +   status = ok;
 +
 +   linux,part-probe = bcm63xxpart;
 +
 +   cfe@0 {
 +   label = CFE;
 +   reg = 0x00 0x02;
 +   read-only;
 +   };
 +
 +   linux@2 {
 +   label = linux;
 +   reg = 0x02 0x1e2;
 +   };
 +
 +   netgear_parts@1e4 {
 +   label = netgear_parts;

Let's call this partition board_data, like it is done for other targets.


Jonas
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


[OpenWrt-Devel] [PATCH][bcm63xx]: Add DGND3700 v1 / DGND3800B support

2015-02-20 Thread dani
This adds support for the Netgear DGND3700 v1 and DGND3800B. 

DGND3700 v1 and DGND3800B are exactly the same router, only one difference,
the factory firmware. This patch produces two factory firmwares for each 
router. 
The miniPCI card have two radios, I included sprom fixups bor both spite wifi 
works
ok without it.

The router includes an onboard NAND flash for extra storage. NAND is currently
not supported in bcm63xx, so no code added for this part. The NOR flash (32MB)
is enough for storing an openwrt firmware.

Signed-off-by: Daniel Gonzalez dgcb...@gmail.com
diff --git a/target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds 
b/target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds
index 854b3b2..69d797e 100644
--- a/target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds
+++ b/target/linux/brcm63xx/base-files/etc/uci-defaults/01_leds
@@ -14,6 +14,14 @@ case $board_name in
 96328dg2x2)
ucidef_set_led_usbdev usb USB A4001N:green:usb 1-1
;;
+DGND3700v1_3800B)
+   ucidef_set_led_netdev lan LAN DGND3700v1_3800B:green:lan eth0.1
+   ucidef_set_led_netdev wan WAN DGND3700v1_3800B:green:inet eth0.2
+   ucidef_set_led_netdev wlan0 WIFI2G DGND3700v1_3800B:green:wifi2g 
wlan0
+   ucidef_set_led_netdev wlan1 WIFI5G DGND3700v1_3800B:blue:wifi5g 
wlan1
+   ucidef_set_led_usbdev usb1 USB1 DGND3700v1_3800B:green:usb-back 
1-1
+   ucidef_set_led_usbdev usb2 USB2 DGND3700v1_3800B:green:usb-front 
1-2
+   ;;
 'F@ST2704V2')
ucidef_set_led_usbdev usb USB F@ST2704V2:green:usb 1-1
;;
diff --git a/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network 
b/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network
index 709a1c8..6b9736a 100644
--- a/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network
+++ b/target/linux/brcm63xx/base-files/etc/uci-defaults/02_network
@@ -108,6 +108,13 @@ P870HW-51a_v2)
ucidef_add_switch_vlan eth0 2 4 5t
;;
 
+DGND3700v1_3800B)
+   ucidef_set_interfaces_lan_wan eth0.1 eth0.2
+   ucidef_add_switch eth0 1 1
+   ucidef_add_switch_vlan eth0 1 1 2 3 4 8t
+   ucidef_add_switch_vlan eth0 2 0 8t
+   ;;
+
 NB6)
ucidef_set_interfaces_lan_wan eth0.1 eth0.2
ucidef_add_switch switch0 1 1
diff --git a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh 
b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
index 58ce71e..53dd759 100755
--- a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
+++ b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
@@ -111,6 +111,13 @@ brcm63xx_detect() {
brcm63xx_has_reset_button=true
ifname=eth0
;;
+
+   DGND3700v1_3800B)
+   status_led=DGND3700v1_3800B:green:power
+   brcm63xx_has_reset_button=true
+   ifname=eth0
+   ;;
+
F@ST2504n)
status_led=fast2504n:green:ok
brcm63xx_has_reset_button=true
diff --git a/target/linux/brcm63xx/image/Makefile 
b/target/linux/brcm63xx/image/Makefile
index fd1e157..4520f06 100755
--- a/target/linux/brcm63xx/image/Makefile
+++ b/target/linux/brcm63xx/image/Makefile
@@ -105,6 +105,11 @@ define Image/Build/HCS
--output_file=$(BIN_DIR)/openwrt-$(2)-$(1).bin
 endef
 
+define Image/Build/Chk
+   $(STAGING_DIR_HOST)/bin/mkchkimg -o 
$(BIN_DIR)/openwrt-$(5)-$(1)-factory.chk \
+   -k $(BIN_DIR)/openwrt-$(2)-$(1)-cfe.bin -b $(3) -r $(4)
+endef
+
 define Build/Clean
$(MAKE) -C lzma-loader clean
 endef
@@ -209,6 +214,11 @@ define Image/Build
# build dtb image list
$(foreach image,$(TARGET_$(PROFILE)_IMAGES),$(call 
Image/Build/$(image),$(1)))
 
+   #Netgear DGND3700 v1 factory firmware
+   $(call 
Image/Build/Chk,$(1),DGND3700v1_3800B,U12L144T01_NETGEAR_NEWLED,1,DGND3700v1)
+   #Netgear DGND3800B factory firmware
+   $(call 
Image/Build/Chk,$(1),DGND3700v1_3800B,U12L144T11_NETGEAR_NEWLED,1,DGND3800B)
+
   ifeq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),y)
$(call Image/Build/Initramfs)
   endif
@@ -298,6 +308,8 @@ $(eval $(call 
ImageDTB,CFEDTB,HG556a_AB,hg556a-b,HW556,6358,HG556a_B,--rsa-signa
 $(eval $(call 
ImageDTB,CFEDTB,HG556a_C,hg556a-c,HW556,6358,HG556a_C,--rsa-signature 
EchoLife_HG556a --image-offset 0x2 --block-size 0x2 --tag-version 8))
 # Netgear DG834GT/PN
 $(eval $(call ImageDTB,CFEDTB,DG834GTPN,dg834gtpn,96348GW-10,6348,DG834GT_PN))
+# Netgear DGND3700 v1 / DGND3800B
+$(eval $(call 
ImageDTB,CFEDTB,DGND3700v1_3800B,dgnd3700v1,96368MVWG,6368,DGND3700v1_3800B,--image-offset
 0x2 --block-size 0x2))
 # Pirelli Alice Gate VoIP 2 Plus Wi-Fi AGPF-S0
 $(eval $(call ImageDTB,CFEDTB,AGPF_S0,agpf-s0,AGPF-S0,6358,AGV2+W,--block-size 
0x2 --image-offset 0x2 --signature2 IMAGE --tag-version 8))
 # Pirelli A226G
diff --git a/target/linux/brcm63xx/profiles/netgear.mk 
b/target/linux/brcm63xx/profiles/netgear.mk
index 562e0f5..a731b36 100644
--- a/target/linux/brcm63xx/profiles/netgear.mk
+++