aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSeongUk Moon <antegral@antegral.net>2022-01-14 21:54:05 +0900
committerSungbo Eo <mans0n@gorani.run>2022-01-15 20:43:14 +0900
commit9c8ccdcdc86c46e8be52f20e3668f67eff94c8c0 (patch)
tree3697700fc905e4897f49033e921f8694d526c8a3
parent6041c693dd4660f1585322c182e83479afb3c381 (diff)
downloadupstream-9c8ccdcdc86c46e8be52f20e3668f67eff94c8c0.tar.gz
upstream-9c8ccdcdc86c46e8be52f20e3668f67eff94c8c0.tar.bz2
upstream-9c8ccdcdc86c46e8be52f20e3668f67eff94c8c0.zip
ramips: add support for ipTIME A6004NS-M
ipTIME A6004NS-M is a 2.4/5GHz band AC1900 router, based on MediaTek MT7621A. Specifications: - SoC: MediaTek MT7621A (880MHz, Duel-Core) - RAM: DDR3 256MB - Flash: SPI NOR 16MB (Winbond W25Q128BV) - WiFi: MediaTek MT7615E (2.4GHz, 5GHz) - Ethernet: MediaTek MT7530 (WAN x1, LAN x4, SoC built-in Estimated) - USB: USB 3.0 x1 - UART: [3.3V, TX, RX, GND] (57600 8N1) Installation via web interface: 1. Flash initramfs image using OEM's Firmware Update page. 2. Connect to OpenWrt with an SSH connection to `192.168.1.1`. 3. Perform sysupgrade with sysupgrade image. Revert to stock firmware: 1. Flash stock firmware via OEM's Recovery mode How to use OEM's Recovery mode: 1. Power on the device and connect the shell through UART. 2. Connect to the shell and press the `t` key on the keyboard. 3. Set fixed IP with `192.168.0.2` with subnet mask `255.255.255.0` 4. Flash image via TFTP to `192.168.0.1` Additional Notes: 1. The higher the 5Ghz Frequency, the lower the stability. It is recommended to use less than 5.775Ghz. 2. If the 5Ghz frequency is too high, 5Ghz may not work. 3. A6ns-M use shared dtsi file of A6004NS-M. (reference: /mt7621_iptime_a6004ns-m.dtsi). Signed-off-by: SeongUk Moon <antegral@antegral.net> [convert CRLF to LF] Signed-off-by: Sungbo Eo <mans0n@gorani.run>
-rw-r--r--target/linux/ramips/dts/mt7621_iptime_a6004ns-m.dts8
-rw-r--r--target/linux/ramips/dts/mt7621_iptime_a6004ns-m.dtsi180
-rw-r--r--target/linux/ramips/dts/mt7621_iptime_a6ns-m.dts177
-rw-r--r--target/linux/ramips/image/mt7621.mk11
4 files changed, 200 insertions, 176 deletions
diff --git a/target/linux/ramips/dts/mt7621_iptime_a6004ns-m.dts b/target/linux/ramips/dts/mt7621_iptime_a6004ns-m.dts
new file mode 100644
index 0000000000..8138cc31a7
--- /dev/null
+++ b/target/linux/ramips/dts/mt7621_iptime_a6004ns-m.dts
@@ -0,0 +1,8 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "mt7621_iptime_a6004ns-m.dtsi"
+
+/ {
+ compatible = "iptime,a6004ns-m", "mediatek,mt7621-soc";
+ model = "ipTIME A6004NS-M";
+};
diff --git a/target/linux/ramips/dts/mt7621_iptime_a6004ns-m.dtsi b/target/linux/ramips/dts/mt7621_iptime_a6004ns-m.dtsi
new file mode 100644
index 0000000000..a033d7f665
--- /dev/null
+++ b/target/linux/ramips/dts/mt7621_iptime_a6004ns-m.dtsi
@@ -0,0 +1,180 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "mt7621.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+ aliases {
+ led-boot = &led_cpu;
+ led-failsafe = &led_cpu;
+ led-running = &led_cpu;
+ led-upgrade = &led_cpu;
+ label-mac-device = &gmac0;
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ usb {
+ label = "blue:usb";
+ gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+ trigger-sources = <&xhci_ehci_port1>;
+ linux,default-trigger = "usbport";
+ };
+
+ wlan5g {
+ label = "blue:wlan5g";
+ gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "phy0radio";
+ };
+
+ wlan2g {
+ label = "blue:wlan2g";
+ gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
+ linux,default-trigger = "phy1radio";
+ };
+
+ led_cpu: cpu {
+ label = "blue:cpu";
+ gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ wps {
+ label = "wps";
+ gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+};
+
+&spi0 {
+ status = "okay";
+
+ flash@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <80000000>;
+ m25p,fast-read;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ uboot: partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x20000>;
+ read-only;
+ };
+
+ partition@20000 {
+ label = "config";
+ reg = <0x20000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@30000 {
+ label = "factory";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ partition@40000 {
+ compatible = "denx,uimage";
+ label = "firmware";
+ reg = <0x40000 0xfc0000>;
+ };
+ };
+ };
+};
+
+&state_default {
+ gpio {
+ groups = "i2c", "uart3", "jtag", "wdt";
+ function = "gpio";
+ };
+};
+
+&gmac0 {
+ nvmem-cells = <&macaddr_uboot_1fc20>;
+ nvmem-cell-names = "mac-address";
+};
+
+&switch0 {
+ ports {
+ port@0 {
+ status = "okay";
+ label = "wan";
+ nvmem-cells = <&macaddr_uboot_1fc40>;
+ nvmem-cell-names = "mac-address";
+ };
+
+ port@1 {
+ status = "okay";
+ label = "lan1";
+ };
+
+ port@2 {
+ status = "okay";
+ label = "lan2";
+ };
+
+ port@3 {
+ status = "okay";
+ label = "lan3";
+ };
+
+ port@4 {
+ status = "okay";
+ label = "lan4";
+ };
+ };
+};
+
+&pcie {
+ status = "okay";
+};
+
+&pcie0 {
+ wifi@0,0 {
+ compatible = "mediatek,mt76";
+ reg = <0x0000 0 0 0 0>;
+ mediatek,mtd-eeprom = <&factory 0x0>;
+ ieee80211-freq-limit = <5000000 6000000>;
+ };
+};
+
+&pcie1 {
+ wifi@0,0 {
+ compatible = "mediatek,mt76";
+ reg = <0x0000 0 0 0 0>;
+ mediatek,mtd-eeprom = <&factory 0x8000>;
+ ieee80211-freq-limit = <2400000 2500000>;
+ };
+};
+
+&uboot {
+ compatible = "nvmem-cells";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ macaddr_uboot_1fc20: macaddr@1fc20 {
+ reg = <0x1fc20 0x6>;
+ };
+
+ macaddr_uboot_1fc40: macaddr@1fc40 {
+ reg = <0x1fc40 0x6>;
+ };
+};
diff --git a/target/linux/ramips/dts/mt7621_iptime_a6ns-m.dts b/target/linux/ramips/dts/mt7621_iptime_a6ns-m.dts
index b3efe557e2..f83340e64a 100644
--- a/target/linux/ramips/dts/mt7621_iptime_a6ns-m.dts
+++ b/target/linux/ramips/dts/mt7621_iptime_a6ns-m.dts
@@ -1,183 +1,8 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
-#include "mt7621.dtsi"
-
-#include <dt-bindings/gpio/gpio.h>
-#include <dt-bindings/input/input.h>
+#include "mt7621_iptime_a6004ns-m.dtsi"
/ {
compatible = "iptime,a6ns-m", "mediatek,mt7621-soc";
model = "ipTIME A6ns-M";
-
- aliases {
- led-boot = &led_cpu;
- led-failsafe = &led_cpu;
- led-running = &led_cpu;
- led-upgrade = &led_cpu;
- label-mac-device = &gmac0;
- };
-
- leds {
- compatible = "gpio-leds";
-
- usb {
- label = "blue:usb";
- gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
- trigger-sources = <&xhci_ehci_port1>;
- linux,default-trigger = "usbport";
- };
-
- wlan5g {
- label = "blue:wlan5g";
- gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
- linux,default-trigger = "phy0radio";
- };
-
- wlan2g {
- label = "blue:wlan2g";
- gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
- linux,default-trigger = "phy1radio";
- };
-
- led_cpu: cpu {
- label = "blue:cpu";
- gpios = <&gpio 18 GPIO_ACTIVE_LOW>;
- };
- };
-
- keys {
- compatible = "gpio-keys";
-
- wps {
- label = "wps";
- gpios = <&gpio 3 GPIO_ACTIVE_LOW>;
- linux,code = <KEY_WPS_BUTTON>;
- };
-
- reset {
- label = "reset";
- gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
- linux,code = <KEY_RESTART>;
- };
- };
-};
-
-&spi0 {
- status = "okay";
-
- flash@0 {
- compatible = "jedec,spi-nor";
- reg = <0>;
- spi-max-frequency = <80000000>;
- m25p,fast-read;
-
- partitions {
- compatible = "fixed-partitions";
- #address-cells = <1>;
- #size-cells = <1>;
-
- uboot: partition@0 {
- label = "u-boot";
- reg = <0x0 0x20000>;
- read-only;
- };
-
- partition@20000 {
- label = "config";
- reg = <0x20000 0x10000>;
- read-only;
- };
-
- factory: partition@30000 {
- label = "factory";
- reg = <0x30000 0x10000>;
- read-only;
- };
-
- partition@40000 {
- compatible = "denx,uimage";
- label = "firmware";
- reg = <0x40000 0xfc0000>;
- };
- };
- };
-};
-
-&state_default {
- gpio {
- groups = "i2c", "uart3", "jtag", "wdt";
- function = "gpio";
- };
-};
-
-&gmac0 {
- nvmem-cells = <&macaddr_uboot_1fc20>;
- nvmem-cell-names = "mac-address";
-};
-
-&switch0 {
- ports {
- port@0 {
- status = "okay";
- label = "wan";
- nvmem-cells = <&macaddr_uboot_1fc40>;
- nvmem-cell-names = "mac-address";
- };
-
- port@1 {
- status = "okay";
- label = "lan1";
- };
-
- port@2 {
- status = "okay";
- label = "lan2";
- };
-
- port@3 {
- status = "okay";
- label = "lan3";
- };
-
- port@4 {
- status = "okay";
- label = "lan4";
- };
- };
-};
-
-&pcie {
- status = "okay";
-};
-
-&pcie0 {
- wifi@0,0 {
- compatible = "mediatek,mt76";
- reg = <0x0000 0 0 0 0>;
- mediatek,mtd-eeprom = <&factory 0x0>;
- ieee80211-freq-limit = <5000000 6000000>;
- };
-};
-
-&pcie1 {
- wifi@0,0 {
- compatible = "mediatek,mt76";
- reg = <0x0000 0 0 0 0>;
- mediatek,mtd-eeprom = <&factory 0x8000>;
- ieee80211-freq-limit = <2400000 2500000>;
- };
-};
-
-&uboot {
- compatible = "nvmem-cells";
- #address-cells = <1>;
- #size-cells = <1>;
-
- macaddr_uboot_1fc20: macaddr@1fc20 {
- reg = <0x1fc20 0x6>;
- };
-
- macaddr_uboot_1fc40: macaddr@1fc40 {
- reg = <0x1fc40 0x6>;
- };
};
diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
index 7755fbef81..a461c57f15 100644
--- a/target/linux/ramips/image/mt7621.mk
+++ b/target/linux/ramips/image/mt7621.mk
@@ -785,6 +785,17 @@ define Device/iptime_a3004t
endef
TARGET_DEVICES += iptime_a3004t
+define Device/iptime_a6004ns-m
+ $(Device/dsa-migration)
+ IMAGE_SIZE := 16128k
+ UIMAGE_NAME := a6004nm
+ DEVICE_VENDOR := ipTIME
+ DEVICE_MODEL := A6004NS-M
+ DEVICE_PACKAGES := kmod-mt7615e kmod-mt7615-firmware kmod-usb3 \
+ kmod-usb-ledtrig-usbport
+endef
+TARGET_DEVICES += iptime_a6004ns-m
+
define Device/iptime_a6ns-m
$(Device/dsa-migration)
IMAGE_SIZE := 16128k