[OpenWrt-Devel] [PATCH] Add support for Inventel DV4210

Daniel Gonzalez Cabanelas dgcbueu at gmail.com
Sun Sep 22 16:05:52 EDT 2019


Add support for the Inventel DV4210 router.

This is an Inventel Livebox 1 board. The patch supports the board with a CFE bootloader, and
a RAM mod (64 MB, tested).  The board originally comes with 8 MB flash.  Under this conditions
this old BCM6348 based board still runs quite fine with current snapshots.

Signed-off-by: Daniel Gonzalez Cabanelas <dgcbueu at gmail.com>
---
 .../brcm63xx/base-files/etc/board.d/01_leds   |   1 +
 .../base-files/etc/board.d/02_network         |   2 +-
 target/linux/brcm63xx/base-files/etc/diag.sh  |   1 +
 .../linux/brcm63xx/base-files/lib/brcm63xx.sh |   3 +
 target/linux/brcm63xx/dts/dv4210.dts          | 102 ++++++++++++++++++
 target/linux/brcm63xx/image/bcm63xx.mk        |  13 +++
 .../patches-4.14/599-board_DV4210.patch       |  50 +++++++++
 7 files changed, 171 insertions(+), 1 deletion(-)
 create mode 100644 target/linux/brcm63xx/dts/dv4210.dts
 create mode 100644 target/linux/brcm63xx/patches-4.14/599-board_DV4210.patch

diff --git a/target/linux/brcm63xx/base-files/etc/board.d/01_leds b/target/linux/brcm63xx/base-files/etc/board.d/01_leds
index d25d37e847..00109ba112 100755
--- a/target/linux/brcm63xx/base-files/etc/board.d/01_leds
+++ b/target/linux/brcm63xx/base-files/etc/board.d/01_leds
@@ -69,6 +69,7 @@ homehub2a)
 	ucidef_set_led_usbdev "usb1" "USB1" "HOMEHUB2A:blue:phone" "1-1"
 	ucidef_set_led_usbdev "usb2" "USB2" "HOMEHUB2A:green:phone" "2-1"
 	;;
+dv4210|\
 livebox1)
 	ucidef_set_led_netdev "lan" "LAN" "Livebox1:red:traffic" "eth0"
 	ucidef_set_led_netdev "wan" "WAN" "Livebox1:red:adsl" "eth1"
diff --git a/target/linux/brcm63xx/base-files/etc/board.d/02_network b/target/linux/brcm63xx/base-files/etc/board.d/02_network
index a2ca5a37b3..0e384f82f6 100755
--- a/target/linux/brcm63xx/base-files/etc/board.d/02_network
+++ b/target/linux/brcm63xx/base-files/etc/board.d/02_network
@@ -145,8 +145,8 @@ bcm963268bu_p300)
 	ucidef_add_switch "switch0" \
 		"0:lan" "3:lan" "4:lan" "5:lan" "6:lan" "7:lan" "8t at eth0"
 	;;
-
 cpva502p |\
+dv4210 |\
 livebox1)
 	ucidef_set_interfaces_lan_wan "eth0" "eth1"
 	;;
diff --git a/target/linux/brcm63xx/base-files/etc/diag.sh b/target/linux/brcm63xx/base-files/etc/diag.sh
index 34464ec44a..c673a75e40 100644
--- a/target/linux/brcm63xx/base-files/etc/diag.sh
+++ b/target/linux/brcm63xx/base-files/etc/diag.sh
@@ -114,6 +114,7 @@ set_state() {
 	hg655b)
 		status_led="HW65x:green:power"
 		;;
+	dv4210|\
 	livebox1)
 		status_led="Livebox1:red:adsl-fail-power"
 		;;
diff --git a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
index 1676ae0abb..9c0c33cc31 100755
--- a/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
+++ b/target/linux/brcm63xx/base-files/lib/brcm63xx.sh
@@ -177,6 +177,9 @@ brcm63xx_dt_detect() {
 	"Inteno VG50")
 		board_name="vg50"
 		;;
+	"Inventel DV4210")
+		board_name="dv4210"
+		;;
 	"Inventel Livebox 1")
 		board_name="livebox1"
 		;;
diff --git a/target/linux/brcm63xx/dts/dv4210.dts b/target/linux/brcm63xx/dts/dv4210.dts
new file mode 100644
index 0000000000..02975fe3b6
--- /dev/null
+++ b/target/linux/brcm63xx/dts/dv4210.dts
@@ -0,0 +1,102 @@
+/dts-v1/;
+
+#include "bcm6348.dtsi"
+
+#include <dt-bindings/input/input.h>
+
+/ {
+	model = "Inventel DV4210";
+	compatible = "inventel,dv4210", "brcm,bcm6348";
+
+	chosen {
+		bootargs = "rootfstype=squashfs,jffs2 noinitrd console=ttyS0,115200";
+		stdout-path = "serial0:115200n8";
+	};
+
+	keys {
+		compatible = "gpio-keys-polled";
+		#address-cells = <1>;
+		#size-cells = <0>;
+		poll-interval = <20>;
+
+		button1 {
+			label = "1";
+			gpios = <&pinctrl 36 1>;
+			linux,code = <KEY_RESTART>;
+			debounce-interval = <60>;
+		};
+
+		button2 {
+			label = "2";
+			gpios = <&pinctrl 7 1>;
+			linux,code = <BTN_2>;
+			debounce-interval = <60>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		red_adsl_fail {
+			label = "Livebox1:red:adsl-fail-power";
+			gpios = <&pinctrl 0 0>;
+			default-state = "on";
+		};
+
+		red_adsl {
+			label = "Livebox1:red:adsl";
+			gpios = <&pinctrl 1 0>;
+		};
+
+		red_traffic {
+			label = "Livebox1:red:traffic";
+			gpios = <&pinctrl 2 0>;
+		};
+
+		red_phone {
+			label = "Livebox1:red:phone";
+			gpios = <&pinctrl 3 0>;
+		};
+
+		red_wifi {
+			label = "Livebox1:red:wifi";
+			gpios = <&pinctrl 4 0>;
+		};
+	};
+};
+
+&pflash {
+	reg = <0x1f400000 0x800000>;
+	status = "ok";
+
+	partitions {
+		compatible = "fixed-partitions";
+		#address-cells = <1>;
+		#size-cells = <1>;
+
+		cfe at 0 {
+			reg = <0x000000 0x010000>;
+			label = "cfe";
+		};
+
+		linux at 10000 {
+			reg = <0x010000 0x7e0000>;
+			label = "linux";
+			compatible = "brcm,bcm963xx-imagetag";
+		};
+
+		nvram at 7f0000 {
+			reg = <0x7f0000 0x010000>;
+			label = "nvram";
+		};
+	};
+};
+
+&pinctrl {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_pci &pinctrl_ext_mii &pinctrl_mii_pccard>;
+};
+
+&uart0 {
+	status = "ok";
+};
diff --git a/target/linux/brcm63xx/image/bcm63xx.mk b/target/linux/brcm63xx/image/bcm63xx.mk
index 212960e972..690ffb49fa 100644
--- a/target/linux/brcm63xx/image/bcm63xx.mk
+++ b/target/linux/brcm63xx/image/bcm63xx.mk
@@ -769,6 +769,19 @@ define Device/livebox
 endef
 TARGET_DEVICES += livebox
 
+define Device/DV4210
+  $(Device/bcm63xx)
+  DEVICE_TITLE := Inventel DV4210
+  DEVICE_DESCRIPTION = Build firmware images for the Inventel DV4210. Board with CFE bootloader and >32MB RAM
+  DEVICE_DTS := dv4210
+  CFE_BOARD_ID := DV4210
+  CFE_CHIP_ID := 6348
+  DEVICE_PACKAGES := \
+    $(B43_PACKAGES) $(USB1_PACKAGES)
+  DEFAULT := y
+endef
+TARGET_DEVICES += DV4210
+
 ### Netgear ###
 define Device/CVG834G
   $(Device/bcm33xx)
diff --git a/target/linux/brcm63xx/patches-4.14/599-board_DV4210.patch b/target/linux/brcm63xx/patches-4.14/599-board_DV4210.patch
new file mode 100644
index 0000000000..618a214d63
--- /dev/null
+++ b/target/linux/brcm63xx/patches-4.14/599-board_DV4210.patch
@@ -0,0 +1,50 @@
+--- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
++++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
+@@ -1058,6 +1058,31 @@
+ 	},
+ };
+ 
++static struct board_info __initdata board_DV4210 = {
++	.name				= "DV4210",
++	.expected_cpu_id		= 0x6348,
++
++	.has_enet0			= 1,
++	.has_enet1			= 1,
++	.has_pci			= 1,
++
++	.enet0 = {
++		.has_phy		= 1,
++		.use_internal_phy	= 1,
++	},
++
++	.enet1 = {
++		  .has_phy		= 1,
++		  .phy_id 		= 31,
++	},
++
++	.ephy_reset_gpio		= 6,
++	.ephy_reset_gpio_flags	= GPIO_ACTIVE_LOW,
++
++	.has_ohci0			= 1,
++	.has_pccard			= 0,
++};
++
+ static struct board_info __initdata board_96348A_122 = {
+ 	.name				= "96348A-122",
+ 	.expected_cpu_id		= 0x6348,
+@@ -2746,6 +2771,7 @@
+ 	&board_FAST2404,
+ 	&board_FAST2604,
+ 	&board_DV201AMR,
++	&board_DV4210,
+ 	&board_96348gw_a,
+ 	&board_rta1025w_16,
+ 	&board_96348_D4PW,
+@@ -2859,6 +2885,7 @@
+ 	{ .compatible = "d-link,dsl-2640b-b", .data = &board_96348_D4PW, },
+ 	{ .compatible = "davolink,dv-201amr", .data = &board_DV201AMR, },
+ 	{ .compatible = "dynalink,rta1025w", .data = &board_rta1025w_16, },
++	{ .compatible = "inventel,dv4210", .data = &board_DV4210, },
+ 	{ .compatible = "netgear,dg834gtpn", .data = &board_96348gw_10, },
+  	{ .compatible = "netgear,dg834g-v4", .data = &board_96348W3, },
+ 	{ .compatible = "sagem,f at st2404", .data = &board_FAST2404, },
-- 
2.23.0





_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list