[OpenWrt-Devel] [PATCH v2] brcm63xx: Add support for the Inventel DV4210.
Daniel Gonzalez Cabanelas
dgcbueu at gmail.com
Sun Oct 27 09:35:54 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>
---
Changes in v2:
- Added missing target (brcm63xx) to the subjet.
.../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