ramips: add support for Netgear R6120
authorLudwig Thomeczek <ledesrc@wxorx.net>
Tue, 12 Jun 2018 19:17:23 +0000 (21:17 +0200)
committerMathias Kresin <dev@kresin.me>
Mon, 13 Aug 2018 06:37:19 +0000 (08:37 +0200)
This patch adds support for the Netgear R6120, aka Netgear AC1200.

Specification:
- SoC: MediaTek MT7628 (580 MHz)
- Flash: 16 MiB
- RAM: 64 MiB
- Wireless: 2.4Ghz(builtin) and 5Ghz (MT7612E)
- LAN speed: 10/100
- LAN ports: 4
- WAN speed: 10/100
- WAN ports: 1
- Serial baud rate of Bootloader and factory firmware: 57600

To flash use nmrpflash with the provided factory.img.
Flashing via webinterface will not work, for now.

Signed-off-by: Ludwig Thomeczek <ledesrc@wxorx.net>
target/linux/ramips/base-files/etc/board.d/01_leds
target/linux/ramips/base-files/etc/board.d/02_network
target/linux/ramips/base-files/lib/upgrade/platform.sh
target/linux/ramips/dts/R6120.dts [new file with mode: 0644]
target/linux/ramips/image/mt76x8.mk

index 0d5a2e97c294f40a8f5f1db5cf4039635ee29ad7..5d833e4410ba1e0ccdf5f7b50dd03d72c58b730f 100755 (executable)
@@ -319,6 +319,11 @@ mzk-ex750np)
 na930)
        set_usb_led "$boardname:blue:status"
        ;;
+netgear,r6120)
+       ucidef_set_led_switch "lan" "lan" "$boardname:green:lan" "switch0" "0x0f"
+       ucidef_set_led_wlan "wlan2g" "WiFi 2.4GHz" "$boardname:green:wlan2g" "phy0tpt"
+       ucidef_set_led_wlan "wlan5g" "WiFi 5GHz" "$boardname:green:wlan5g" "phy1tpt"
+       ;;
 newifi-d1)
        set_usb_led "$boardname:red:status"
        ;;
index 5be50f48c300b6a3c2adde853447defecd09cb07..28bf815ee9afb60f38b570fb384c8d563598605b 100755 (executable)
@@ -103,6 +103,7 @@ ramips_setup_interfaces()
        mzk-750dhp|\
        mzk-w300nh2|\
        d-team,newifi-d2|\
+       netgear,r6120|\
        nixcore-x1-8M|\
        nixcore-x1-16M|\
        oy-0001|\
index 19662b706749cf7f5cb72d31bb83e91f991968e3..51691e30fbcc84c8247b653d714bb0878bbe7650 100755 (executable)
@@ -132,6 +132,7 @@ platform_check_image() {
        psr-680w|\
        px-4885-4M|\
        px-4885-8M|\
+       netgear,r6120|\
        rb750gr3|\
        re6500|\
        rp-n53|\
diff --git a/target/linux/ramips/dts/R6120.dts b/target/linux/ramips/dts/R6120.dts
new file mode 100644 (file)
index 0000000..eac9e17
--- /dev/null
@@ -0,0 +1,145 @@
+/dts-v1/;
+
+#include "mt7628an.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+       compatible = "netgear,r6120", "mediatek,mt7628an-soc";
+       model = "Netgear AC1200 R6120";
+
+       aliases {
+               led-status = &led_power;
+       };
+
+       memory@0 {
+               device_type = "memory";
+               reg = <0x0 0x4000000>;
+       };
+
+       gpio-keys-polled {
+               compatible = "gpio-keys-polled";
+               poll-interval = <20>;
+
+               reset {
+                       label = "reset";
+                       gpios = <&gpio1 6 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_RESTART>;
+               };
+       };
+
+       gpio-leds {
+               compatible = "gpio-leds";
+
+               lan {
+                       label = "r6120:green:lan";
+                       gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
+               };
+
+               led_power: power {
+                       label = "r6120:green:power";
+                       gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
+               };
+
+               wlan {
+                       label = "r6120:green:wlan2g";
+                       gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
+               };
+
+               wlan_orange {
+                       label = "r6120:orange:wlan2g";
+                       gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
+               };
+
+               wlan5 {
+                       label = "r6120:green:wlan5g";
+                       gpios = <&gpio1 8 GPIO_ACTIVE_LOW>;
+               };
+
+               wlan5_orange {
+                       label = "r6120:orange:wlan5g";
+                       gpios = <&gpio1 7 GPIO_ACTIVE_LOW>;
+               };
+       };
+};
+
+&pinctrl {
+       state_default: pinctrl0 {
+               gpio {
+                       ralink,group = "p0led_an", "p1led_an", "p2led_an",
+                                      "p3led_an", "p4led_an", "wdt", "wled_an";
+                       ralink,function = "gpio";
+               };
+       };
+};
+
+&spi0 {
+       status = "okay";
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <10000000>;
+               m25p,chunked-io = <32>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "u-boot";
+                               reg = <0x0 0x40000>;
+                               read-only;
+                       };
+
+                       factory: partition@40000 {
+                               label = "factory";
+                               reg = <0x40000 0x20000>;
+                               read-only;
+                       };
+
+                       nvram: partition@60000 {
+                               label = "nvram";
+                               reg = <0x60000 0x30000>;
+                               read-only;
+                       };
+
+                       partition@90000 {
+                               label = "firmware";
+                               reg = <0x90000 0xf60000>;
+                       };
+
+                       partition@ff0000 {
+                               label = "reserved";
+                               reg = <0xff0000 0x10000>;
+                               read-only;
+                       };
+               };
+       };
+};
+
+&wmac {
+       status = "okay";
+       mtd-mac-address = <&nvram 0x100b0>;
+       mediatek,mtd-eeprom = <&factory 0x20000>;
+};
+
+&ethernet {
+       mtd-mac-address = <&nvram 0x100b0>;
+};
+
+&pcie {
+       status = "okay";
+};
+
+&pcie0 {
+       wifi@0,0 {
+               reg = <0x0000 0 0 0 0>;
+               mediatek,mtd-eeprom = <&factory 0x28000>;
+               ieee80211-freq-limit = <5000000 6000000>;
+               mtd-mac-address = <&nvram 0x100b0>;
+               mtd-mac-address-increment = <(2)>;
+       };
+};
index 143944176dd2f272ac6915a3bca51b787ff6bed3..eddbbea3c23ed73ad8eb6014c40877f50c411743 100644 (file)
@@ -2,6 +2,17 @@
 # MT76x8 Profiles
 #
 
+DEVICE_VARS += SERCOMM_KERNEL_OFFSET SERCOMM_HWID SERCOMM_HWVER SERCOMM_SWVER
+
+define Build/mksercommfw
+       $(STAGING_DIR_HOST)/bin/mksercommfw \
+               $@ \
+               $(SERCOMM_KERNEL_OFFSET) \
+               $(SERCOMM_HWID) \
+               $(SERCOMM_HWVER) \
+               $(SERCOMM_SWVER)
+endef
+
 define Device/tplink
   TPLINK_FLASHLAYOUT :=
   TPLINK_HWID :=
@@ -91,6 +102,23 @@ define Device/mt7628
 endef
 TARGET_DEVICES += mt7628
 
+define Device/netgear_r6120
+  DTS := R6120
+  BLOCKSIZE := 64k
+  IMAGE_SIZE := $(ralink_default_fw_size_16M)
+  DEVICE_TITLE := Netgear AC1200 R6120
+  DEVICE_PACKAGES := kmod-usb2 kmod-usb-ohci
+  SERCOMM_KERNEL_OFFSET := 90000
+  SERCOMM_HWID := CGQ
+  SERCOMM_HWVER := A001
+  SERCOMM_SWVER := 0040
+  IMAGES += factory.img
+  IMAGE/default := append-kernel | pad-to $$$$(BLOCKSIZE)| append-rootfs | pad-rootfs
+  IMAGE/sysupgrade.bin := $$(IMAGE/default) | append-metadata | check-size $$$$(IMAGE_SIZE)
+  IMAGE/factory.img := $$(IMAGE/default) | mksercommfw
+endef
+TARGET_DEVICES += netgear_r6120
+
 define Device/omega2
   DTS := OMEGA2
   IMAGE_SIZE := $(ralink_default_fw_size_16M)