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

David Lang david at lang.hm
Sat Feb 28 18:54:48 EST 2015


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 <dgcbueu at gmail.com>
> To: openwrt-devel at lists.openwrt.org, jogo at 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 <dgcbueu at 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 at ST2704V2')
> 	ucidef_set_led_usbdev "usb" "USB" "F at 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 at 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 0x20000 --block-size 0x20000))
> +#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 0x20000 --image-offset 0x20000 --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 --git a/target/linux/brcm63xx/dts/dgnd3700v1.dts b/target/linux/brcm63xx/dts/dgnd3700v1.dts
> new file mode 100644
> index 0000000..65fae44
> --- /dev/null
> +++ b/target/linux/brcm63xx/dts/dgnd3700v1.dts
> @@ -0,0 +1,110 @@
> +/dts-v1/;
> +
> +/include/ "bcm6368.dtsi"
> +
> +/ {
> +	model = "Netgear DGND3700v1/DGND3800B";
> +	compatible = "netgear,dgnd3700v1", "brcm,bcm6368";
> +
> +	gpio-keys-polled {
> +		compatible = "gpio-keys-polled";
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +		poll-interval = <20>;
> +		debounce-interval = <60>;
> +
> +		wlan {
> +			label = "wlan";
> +			gpios = <&gpio0 10 1>;
> +			linux,code = <0xee>;
> +		};
> +		reset {
> +			label = "reset";
> +			gpios = <&gpio0 12 1>;
> +			linux,code = <0x198>;
> +		};
> +		wps {
> +			label = "wps";
> +			gpios = <&gpio1 3 1>;
> +			linux,code = <0x211>;
> +		};
> +	};
> +
> +	gpio-leds {
> +		compatible = "gpio-leds";
> +
> +		dsl_green {
> +			label = "DGND3700v1_3800B:green:dsl";
> +			gpios = <&gpio0 2 1>;
> +		};
> +		inet_red {
> +			label = "DGND3700v1_3800B:red:inet";
> +			gpios = <&gpio0 4 1>;
> +		};
> +		inet_green {
> +			label = "DGND3700v1_3800B:green:inet";
> +			gpios = <&gpio0 5 1>;
> +		};
> +		wps_green {
> +			label = "DGND3700v1_3800B:green:wps";
> +			gpios = <&gpio0 11 1>;
> +		};
> +		usbfront_green {
> +			label = "DGND3700v1_3800B:green:usb-front";
> +			gpios = <&gpio0 13 1>;
> +		};
> +		usbback_green {
> +			label = "DGND3700v1_3800B:green:usb-back";
> +			gpios = <&gpio0 14 1>;
> +		};
> +		power_red {
> +			label = "DGND3700v1_3800B:red:power";
> +			gpios = <&gpio0 22 1>;
> +		};
> +		lan_green {
> +			label = "DGND3700v1_3800B:green:lan";
> +			gpios = <&gpio0 23 1>;
> +		};
> +		power_green {
> +			label = "DGND3700v1_3800B:green:power";
> +			gpios = <&gpio0 24 1>;
> +			default-state = "on";
> +		};
> +		wifi2g_green {
> +			label = "DGND3700v1_3800B:green:wifi2g";
> +			gpios = <&gpio0 26 1>;
> +		};
> +		wifi5g_blue {
> +			label = "DGND3700v1_3800B:blue:wifi5g";
> +			gpios = <&gpio0 27 1>;
> +		};
> +	};
> +};
> +
> +&pflash {
> +	status = "ok";
> +
> +	linux,part-probe = "bcm63xxpart";
> +
> +	cfe at 0 {
> +		label = "CFE";
> +		reg = <0x000000 0x020000>;
> +		read-only;
> +	};
> +
> +	linux at 20000 {
> +		label = "linux";
> +		reg = <0x020000 0x1e20000>;
> +	};
> +
> +	board_data at 1e40000 {
> +		label = "board_data";
> +		reg = <0x1e40000 0x1a0000>;
> +		read-only;
> +	};
> +
> +	nvram at 1fe0000 {
> +		label = "nvram";
> +		reg = <0x1fe0000 0x20000>;
> +	};
> +};
> diff --git a/target/linux/brcm63xx/patches-3.14/568-board_DGND3700v1_3800B.patch b/target/linux/brcm63xx/patches-3.14/568-board_DGND3700v1_3800B.patch
> new file mode 100644
> index 0000000..b4013bb
> --- /dev/null
> +++ b/target/linux/brcm63xx/patches-3.14/568-board_DGND3700v1_3800B.patch
> @@ -0,0 +1,67 @@
> +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
> ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
> +@@ -2132,6 +2132,48 @@
> + 	.has_ehci0 = 1,
> + };
> +
> ++static struct b53_platform_data DGND3700v1_3800B_b53_pdata = {
> ++	.alias    = "eth0",
> ++};
> ++
> ++static struct spi_board_info DGND3700v1_3800B_spi_devices[] = {
> ++	{
> ++		.modalias = "b53-switch",
> ++		.max_speed_hz = 781000,
> ++		.bus_num = 0,
> ++		.chip_select = 1,
> ++		.platform_data = &DGND3700v1_3800B_b53_pdata,
> ++	}
> ++};
> ++
> ++static struct board_info __initdata board_DGND3700v1_3800B = {
> ++	.name				= "DGND3700v1_3800B",
> ++	.expected_cpu_id		= 0x6368,
> ++
> ++	.has_uart0			= 1,
> ++	.has_pci			= 1,
> ++	.has_ohci0			= 1,
> ++	.has_ehci0			= 1,
> ++	.num_usbh_ports			= 2,
> ++
> ++	.has_enetsw			= 1,
> ++	.enetsw = {
> ++		.used_ports = {
> ++			[5] = {
> ++				.used  = 1,
> ++				.phy_id  = 0xff,
> ++				.bypass_link = 1,
> ++				.force_speed = 1000,
> ++				.force_duplex_full = 1,
> ++				.name  = "RGMII",
> ++			},
> ++		},
> ++	},
> ++
> ++	.spis = DGND3700v1_3800B_spi_devices,
> ++	.num_spis = ARRAY_SIZE(DGND3700v1_3800B_spi_devices),
> ++};
> ++
> + static struct sprom_fixup __initdata vr3025u_fixups[] = {
> + 	{ .offset = 97, .value = 0xfeb3 },
> + 	{ .offset = 98, .value = 0x1618 },
> +@@ -2723,6 +2765,7 @@
> + #ifdef CONFIG_BCM63XX_CPU_6368
> + 	&board_96368mvwg,
> + 	&board_96368mvngr,
> ++	&board_DGND3700v1_3800B,
> + 	&board_P870HW51A_V2,
> + 	&board_VR3025u,
> + 	&board_VR3025un,
> +@@ -2813,6 +2856,7 @@
> + 	{ .compatible = "comtrend,vr-3025u", .data = &board_VR3025u, },
> + 	{ .compatible = "comtrend,vr-3025un", .data = &board_VR3025un, },
> + 	{ .compatible = "comtrend,wap-5813n", .data = &board_WAP5813n, },
> ++	{ .compatible = "netgear,dgnd3700v1", .data = &board_DGND3700v1_3800B, },
> + 	{ .compatible = "zyxel,p870hw-51a-v2", .data = &board_P870HW51A_V2, },
> + #endif
> + #ifdef CONFIG_BCM63XX_CPU_63268
> diff --git a/target/linux/brcm63xx/patches-3.18/568-board_DGND3700v1_3800B.patch b/target/linux/brcm63xx/patches-3.18/568-board_DGND3700v1_3800B.patch
> new file mode 100644
> index 0000000..b4013bb
> --- /dev/null
> +++ b/target/linux/brcm63xx/patches-3.18/568-board_DGND3700v1_3800B.patch
> @@ -0,0 +1,67 @@
> +--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
> ++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
> +@@ -2132,6 +2132,48 @@
> + 	.has_ehci0 = 1,
> + };
> +
> ++static struct b53_platform_data DGND3700v1_3800B_b53_pdata = {
> ++	.alias    = "eth0",
> ++};
> ++
> ++static struct spi_board_info DGND3700v1_3800B_spi_devices[] = {
> ++	{
> ++		.modalias = "b53-switch",
> ++		.max_speed_hz = 781000,
> ++		.bus_num = 0,
> ++		.chip_select = 1,
> ++		.platform_data = &DGND3700v1_3800B_b53_pdata,
> ++	}
> ++};
> ++
> ++static struct board_info __initdata board_DGND3700v1_3800B = {
> ++	.name				= "DGND3700v1_3800B",
> ++	.expected_cpu_id		= 0x6368,
> ++
> ++	.has_uart0			= 1,
> ++	.has_pci			= 1,
> ++	.has_ohci0			= 1,
> ++	.has_ehci0			= 1,
> ++	.num_usbh_ports			= 2,
> ++
> ++	.has_enetsw			= 1,
> ++	.enetsw = {
> ++		.used_ports = {
> ++			[5] = {
> ++				.used  = 1,
> ++				.phy_id  = 0xff,
> ++				.bypass_link = 1,
> ++				.force_speed = 1000,
> ++				.force_duplex_full = 1,
> ++				.name  = "RGMII",
> ++			},
> ++		},
> ++	},
> ++
> ++	.spis = DGND3700v1_3800B_spi_devices,
> ++	.num_spis = ARRAY_SIZE(DGND3700v1_3800B_spi_devices),
> ++};
> ++
> + static struct sprom_fixup __initdata vr3025u_fixups[] = {
> + 	{ .offset = 97, .value = 0xfeb3 },
> + 	{ .offset = 98, .value = 0x1618 },
> +@@ -2723,6 +2765,7 @@
> + #ifdef CONFIG_BCM63XX_CPU_6368
> + 	&board_96368mvwg,
> + 	&board_96368mvngr,
> ++	&board_DGND3700v1_3800B,
> + 	&board_P870HW51A_V2,
> + 	&board_VR3025u,
> + 	&board_VR3025un,
> +@@ -2813,6 +2856,7 @@
> + 	{ .compatible = "comtrend,vr-3025u", .data = &board_VR3025u, },
> + 	{ .compatible = "comtrend,vr-3025un", .data = &board_VR3025un, },
> + 	{ .compatible = "comtrend,wap-5813n", .data = &board_WAP5813n, },
> ++	{ .compatible = "netgear,dgnd3700v1", .data = &board_DGND3700v1_3800B, },
> + 	{ .compatible = "zyxel,p870hw-51a-v2", .data = &board_P870HW51A_V2, },
> + #endif
> + #ifdef CONFIG_BCM63XX_CPU_63268
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel at lists.openwrt.org
> https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
>
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list