aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ipq40xx
diff options
context:
space:
mode:
authorYanase Yuki <dev@zpc.sakura.ne.jp>2020-01-29 19:27:25 +0900
committerPetr Štetiar <ynezz@true.cz>2020-07-08 16:07:05 +0200
commit4a77a060ab6219f830390cd53c2817b621f39760 (patch)
tree7bfaab6550c63807fb27b3db4ae5f2f26c12eecb /target/linux/ipq40xx
parentd2c3131b3fcc55d9c26abdb7cd3c32d3827c10ed (diff)
downloadupstream-4a77a060ab6219f830390cd53c2817b621f39760.tar.gz
upstream-4a77a060ab6219f830390cd53c2817b621f39760.tar.bz2
upstream-4a77a060ab6219f830390cd53c2817b621f39760.zip
ipq40xx: add support for Buffalo WTR-M2133HP
Buffalo WTR-M2133HP is a Tri-Band router based on IPQ4019. Specification ------------- - SoC: Qualcomm IPQ4019 - RAM: 512MiB - Flash Memory: NAND 128MiB (MXIC MX30LF1G18AC) - Wi-Fi: Qualcomm IPQ4019 (2.4GHz, 1ch - 13ch) - Wi-Fi: Qualcomm IPQ4019 (5GHz, 36ch - 64ch) - Wi-Fi: Qualcomm QCA9984 (2T2R, 5GHz, 100ch - 140ch) - Ethernet: 4x 10/100/1000 Mbps (1x WAN, 3x LAN) - LED: 4x white LED, 4x orange LED, 1x blue LED - USB: 1x USB 3.0 port - Input: 2x tactile switch, 2x slide switch (2x SP3T) - Serial console: 115200bps, pinheader JP5 on PCB - Power: DC 12V 2A Flash instruction ----------------- 1. Set up a TFTP server (IP address: 192.168.11.10) 2. Rename "initramfs-fit-uImage.itb" to "WTR-M2133HP-initramfs.uImage" and put it into the TFTP server directory. 3. Connect the TFTP server and WTR-M2133HP. 4. Hold down the AOSS button, then power on the router. 5. After booting OpenWrt initramfs image, connect to the router by SSH. 6. Transfer "squashfs-nand-factory.ubi" to the router. 7. Execute the following commands. # ubidetach -p /dev/mtd15 # ubiformat /dev/mtd15 -f /tmp/openwrt-ipq40xx-generic-buffalo_wtr-m2133hp-squashfs-nand-factory.ubi # fw_setenv bootcmd bootipq 8. Perform reboot. Recover to stock firmware ------------------------- 1. Execute the following command. # fw_setenv bootcmd bootbf 2. Reboot and wait several minutes. Signed-off-by: Yanase Yuki <dev@zpc.sakura.ne.jp>
Diffstat (limited to 'target/linux/ipq40xx')
-rwxr-xr-xtarget/linux/ipq40xx/base-files/etc/board.d/02_network5
-rw-r--r--target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata12
-rw-r--r--target/linux/ipq40xx/base-files/lib/upgrade/platform.sh1
-rw-r--r--target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-wtr-m2133hp.dts419
-rw-r--r--target/linux/ipq40xx/image/Makefile12
-rw-r--r--target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch1
-rw-r--r--target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch1
7 files changed, 451 insertions, 0 deletions
diff --git a/target/linux/ipq40xx/base-files/etc/board.d/02_network b/target/linux/ipq40xx/base-files/etc/board.d/02_network
index cd336a9e6a..61d02a17bc 100755
--- a/target/linux/ipq40xx/base-files/etc/board.d/02_network
+++ b/target/linux/ipq40xx/base-files/etc/board.d/02_network
@@ -65,6 +65,11 @@ ipq40xx_setup_interfaces()
engenius,eap2200)
ucidef_set_interface_lan "eth0 eth1"
;;
+ buffalo,wtr-m2133hp)
+ ucidef_set_interfaces_lan_wan "eth0" "eth1"
+ ucidef_add_switch "switch0" \
+ "0u@eth0" "2:lan:3" "3:lan:2" "4:lan:1"
+ ;;
cellc,rtl30vw)
ucidef_set_interface_lan "eth0"
ucidef_add_switch "switch0" \
diff --git a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
index b95bab7cae..8df7990f2e 100644
--- a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
+++ b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata
@@ -31,6 +31,10 @@ case "$FIRMWARE" in
/usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \
/usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x212 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
;;
+ buffalo,wtr-m2133hp)
+ caldata_extract "ART" 0x9000 0x2f20
+ ath10k_patch_mac $(mtd_get_mac_binary ORGDATA 0x32)
+ ;;
engenius,eap2200 |\
openmesh,a62)
caldata_extract "0:ART" 0x9000 0x2f20
@@ -82,6 +86,10 @@ case "$FIRMWARE" in
/usr/bin/fritz_cal_extract -i 1 -s 0x3C800 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \
/usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x207 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
;;
+ buffalo,wtr-m2133hp)
+ caldata_extract "ART" 0x1000 0x2f20
+ ath10k_patch_mac $(mtd_get_mac_binary ORGDATA 0x26)
+ ;;
cellc,rtl30vw |\
compex,wpj419 |\
compex,wpj428 |\
@@ -171,6 +179,10 @@ case "$FIRMWARE" in
/usr/bin/fritz_cal_extract -i 1 -s 0x3D000 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1") || \
/usr/bin/fritz_cal_extract -i 1 -s 0x3C000 -e 0x208 -l 12064 -o /lib/firmware/$FIRMWARE $(find_mtd_chardev "urlader1")
;;
+ buffalo,wtr-m2133hp)
+ caldata_extract "ART" 0x5000 0x2f20
+ ath10k_patch_mac $(mtd_get_mac_binary ORGDATA 0x2c)
+ ;;
cellc,rtl30vw |\
compex,wpj419 |\
compex,wpj428 |\
diff --git a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh
index 2abff3bd00..5b89710a22 100644
--- a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh
@@ -64,6 +64,7 @@ platform_do_upgrade() {
avm,fritzbox-7530 |\
avm,fritzrepeater-1200 |\
avm,fritzrepeater-3000 |\
+ buffalo,wtr-m2133hp |\
cilab,meshpoint-one |\
engenius,eap2200 |\
mobipromo,cm520-79f |\
diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-wtr-m2133hp.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-wtr-m2133hp.dts
new file mode 100644
index 0000000000..1977358525
--- /dev/null
+++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-wtr-m2133hp.dts
@@ -0,0 +1,419 @@
+// SPDX-License-Identifier: ISC
+/*
+ * Copyright (c) 2015 - 2016, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2020 Yanase Yuki <dev@zpc.sakura.ne.jp>
+ */
+
+#include "qcom-ipq4019.dtsi"
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/soc/qcom,tcsr.h>
+
+/ {
+ model = "Buffalo WTR-M2133HP";
+ compatible = "buffalo,wtr-m2133hp", "qcom,ipq4019";
+
+ memory {
+ device_type = "memory";
+ reg = <0x80000000 0x20000000>;
+ };
+
+ chosen {
+ /*
+ * U-Boot adds "ubi.mtd=rootfs root=mtd:ubi_rootfs" to
+ * kernel command line. But we use different partition names,
+ * so we have to set correct parameters.
+ */
+ bootargs-append = " ubi.mtd=ubi root=/dev/ubiblock0_1";
+ };
+
+ aliases {
+ led-boot = &led_power_blue;
+ led-failsafe = &led_power_orange;
+ led-running = &led_power_white;
+ led-upgrade = &led_power_blue;
+ label-mac-device = &gmac0;
+ };
+
+ soc {
+ rng@22000 {
+ status = "okay";
+ };
+
+ tcsr@1949000 {
+ compatible = "qcom,tcsr";
+ reg = <0x1949000 0x100>;
+ qcom,wifi_glb_cfg = <TCSR_WIFI_GLB_CFG>;
+ };
+
+ tcsr@194b000 {
+ compatible = "qcom,tcsr";
+ reg = <0x194b000 0x100>;
+ qcom,usb-hsphy-mode-select = <TCSR_USB_HSPHY_HOST_MODE>;
+ status = "okay";
+ };
+
+ ess_tcsr@1953000 {
+ compatible = "qcom,tcsr";
+ reg = <0x1953000 0x1000>;
+ qcom,ess-interface-select = <TCSR_ESS_PSGMII>;
+ };
+
+ tcsr@1957000 {
+ compatible = "qcom,tcsr";
+ reg = <0x1957000 0x100>;
+ qcom,wifi_noc_memtype_m0_m2 = <TCSR_WIFI_NOC_MEMTYPE_M0_M2>;
+ };
+
+ crypto@8e3a000 {
+ status = "okay";
+ };
+
+ watchdog@b017000 {
+ status = "okay";
+ };
+
+ ess-switch@c000000 {
+ status = "okay";
+ switch_lan_bmp = <0x1c>;
+ };
+
+ ess-psgmii@98000 {
+ status = "okay";
+ };
+
+ edma@c080000 {
+ status = "okay";
+ };
+
+ usb3@8af8800 {
+ status = "okay";
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led_power_white: power_white {
+ label = "wtr-m2133hp:white:power";
+ gpios = <&tlmm 40 GPIO_ACTIVE_HIGH>;
+ };
+
+ led_power_orange: power_orange {
+ label = "wtr-m2133hp:orange:power";
+ gpios = <&tlmm 25 GPIO_ACTIVE_HIGH>;
+ };
+
+ led_power_blue: power_blue {
+ label = "wtr-m2133hp:blue:power";
+ gpios = <&tlmm 43 GPIO_ACTIVE_HIGH>;
+ };
+
+ router_white {
+ label = "wtr-m2133hp:white:router";
+ gpios = <&tlmm 28 GPIO_ACTIVE_HIGH>;
+ };
+
+ router_orange {
+ label = "wtr-m2133hp:orange:router";
+ gpios = <&tlmm 46 GPIO_ACTIVE_HIGH>;
+ };
+
+ internet_white {
+ label = "wtr-m2133hp:white:internet";
+ gpios = <&tlmm 27 GPIO_ACTIVE_HIGH>;
+ };
+
+ internet_orange {
+ label = "wtr-m2133hp:orange:internet";
+ gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>;
+ };
+
+ wireless_white {
+ label = "wtr-m2133hp:white:wireless";
+ gpios = <&tlmm 24 GPIO_ACTIVE_HIGH>;
+ };
+
+ wireless_orange {
+ label = "wtr-m2133hp:orange:wireless";
+ gpios = <&tlmm 44 GPIO_ACTIVE_HIGH>;
+ };
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ auto_mode {
+ label = "auto_mode";
+ gpios = <&tlmm 9 GPIO_ACTIVE_LOW>;
+ linux,code = <BTN_0>;
+ linux,input-type = <EV_SW>;
+ };
+
+ router_mode {
+ label = "router_mode";
+ gpios = <&tlmm 10 GPIO_ACTIVE_LOW>;
+ linux,code = <BTN_1>;
+ linux,input-type = <EV_SW>;
+ };
+
+ ap_mode {
+ label = "ap_mode";
+ gpios = <&tlmm 11 GPIO_ACTIVE_LOW>;
+ linux,code = <BTN_2>;
+ linux,input-type = <EV_SW>;
+ };
+
+ reset {
+ label = "reset";
+ gpios = <&tlmm 18 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+
+ wps {
+ label = "AOSS Button";
+ gpios = <&tlmm 32 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_WPS_BUTTON>;
+ };
+ };
+};
+
+&tlmm {
+ serial_0_pins: serial0_pinmux {
+ mux {
+ pins = "gpio16", "gpio17";
+ function = "blsp_uart0";
+ bias-disable;
+ };
+ };
+
+ mdio_pins: mdio_pinmux {
+ mux_1 {
+ pins = "gpio6";
+ function = "mdio";
+ bias-pull-up;
+ };
+
+ mux_2 {
+ pins = "gpio7";
+ function = "mdc";
+ bias-pull-up;
+ };
+ };
+
+ nand_pins: nand_pins {
+ pullups {
+ pins = "gpio52", "gpio53", "gpio58",
+ "gpio59";
+ function = "qpic";
+ bias-pull-up;
+ };
+
+ pulldowns {
+ pins = "gpio54", "gpio55", "gpio56",
+ "gpio57", "gpio60", "gpio61",
+ "gpio62", "gpio63", "gpio64",
+ "gpio65", "gpio66", "gpio67",
+ "gpio68", "gpio69";
+ function = "qpic";
+ bias-pull-down;
+ };
+ };
+
+ usb_power {
+ line-name = "USB power";
+ gpios = <34 GPIO_ACTIVE_HIGH>;
+ gpio-hog;
+ output-high;
+ };
+};
+
+&blsp_dma {
+ status = "okay";
+};
+
+&blsp1_uart1 {
+ pinctrl-0 = <&serial_0_pins>;
+ pinctrl-names = "default";
+ status = "okay";
+};
+
+&cryptobam {
+ status = "okay";
+};
+
+&pcie0 {
+ status = "okay";
+
+ bridge@0,0 {
+ reg = <0x00000000 0 0 0 0>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges;
+
+ wifi@0,0 {
+ compatible = "qcom,ath10k";
+ reg = <0 0 0 0 0>;
+
+ qcom,ath10k-calibration-variant = "Buffalo-WTR-M2133HP";
+ };
+ };
+};
+
+&qpic_bam {
+ status = "okay";
+};
+
+&nand {
+ pinctrl-0 = <&nand_pins>;
+ pinctrl-names = "default";
+ status = "okay";
+
+ nand@0 {
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "SBL1";
+ reg = <0x0000000 0x0100000>;
+ read-only;
+ };
+
+ partition@100000 {
+ label = "MIBIB";
+ reg = <0x0100000 0x0100000>;
+ read-only;
+ };
+
+ partition@200000 {
+ label = "BOOTCONFIG";
+ reg = <0x0200000 0x0100000>;
+ read-only;
+ };
+
+ partition@300000 {
+ label = "QSEE";
+ reg = <0x0300000 0x0100000>;
+ read-only;
+ };
+
+ partition@400000 {
+ label = "QSEE_1";
+ reg = <0x0400000 0x0100000>;
+ read-only;
+ };
+
+ partition@500000 {
+ label = "CDT";
+ reg = <0x0500000 0x0080000>;
+ read-only;
+ };
+
+ partition@580000 {
+ label = "CDT_1";
+ reg = <0x0580000 0x0080000>;
+ read-only;
+ };
+
+ partition@600000 {
+ label = "BOOTCONFIG1";
+ reg = <0x0600000 0x0080000>;
+ read-only;
+ };
+
+ partition@680000 {
+ label = "APPSBLENV";
+ reg = <0x0680000 0x0080000>;
+ };
+
+ partition@700000 {
+ label = "APPSBL";
+ reg = <0x0700000 0x0200000>;
+ read-only;
+ };
+
+ partition@900000 {
+ label = "APPSBL_1";
+ reg = <0x0900000 0x0200000>;
+ read-only;
+ };
+
+ art: partition@b00000 {
+ label = "ART";
+ reg = <0x0b00000 0x0080000>;
+ read-only;
+ };
+
+ partition@b80000 {
+ label = "ART_1";
+ reg = <0x0b80000 0x0080000>;
+ read-only;
+ };
+
+ orgdata: partition@c00000 {
+ label = "ORGDATA";
+ reg = <0x0c00000 0x0080000>;
+ read-only;
+ };
+
+ partition@c80000 {
+ label = "ORGDATA_1";
+ reg = <0x0c80000 0x0080000>;
+ read-only;
+ };
+
+ partition@d00000 {
+ label = "ubi";
+ reg = <0x0d00000 0x2900000>;
+ };
+
+ partition@3600000 {
+ label = "rootfs_recover";
+ reg = <0x3600000 0x2900000>;
+ read-only;
+ };
+
+ partition@5f00000 {
+ label = "user_property";
+ reg = <0x5f00000 0x1a20000>;
+ read-only;
+ };
+ };
+ };
+};
+
+&wifi0 {
+ status = "okay";
+ qcom,ath10k-calibration-variant = "Buffalo-WTR-M2133HP";
+ ieee80211-freq-limit = <2400000 2483000>;
+};
+
+&wifi1 {
+ status = "okay";
+ qcom,ath10k-calibration-variant = "Buffalo-WTR-M2133HP";
+};
+
+&mdio {
+ status = "okay";
+ pinctrl-0 = <&mdio_pins>;
+ pinctrl-names = "default";
+ reset-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>;
+};
+
+&gmac0 {
+ mtd-mac-address = <&orgdata 0x20>;
+};
+
+&gmac1 {
+ mtd-mac-address = <&orgdata 0x20>;
+};
+
+&usb3_ss_phy {
+ status = "okay";
+};
+
+&usb3_hs_phy {
+ status = "okay";
+};
diff --git a/target/linux/ipq40xx/image/Makefile b/target/linux/ipq40xx/image/Makefile
index 5336649c3d..51e8bcc7e3 100644
--- a/target/linux/ipq40xx/image/Makefile
+++ b/target/linux/ipq40xx/image/Makefile
@@ -245,6 +245,18 @@ define Device/avm_fritzrepeater-3000
endef
TARGET_DEVICES += avm_fritzrepeater-3000
+define Device/buffalo_wtr-m2133hp
+ $(call Device/FitImage)
+ $(call Device/UbiFit)
+ DEVICE_VENDOR := Buffalo
+ DEVICE_MODEL := WTR-M2133HP
+ SOC := qcom-ipq4019
+ DEVICE_PACKAGES := uboot-envtools ath10k-firmware-qca9984-ct ipq-wifi-buffalo_wtr-m2133hp
+ BLOCKSIZE := 128k
+ PAGESIZE := 2048
+endef
+TARGET_DEVICES += buffalo_wtr-m2133hp
+
define Device/cellc_rtl30vw
KERNEL_SUFFIX := -fit-uImage.itb
KERNEL_INITRAMFS = kernel-bin | gzip | fit gzip $$(DTS_DIR)/$$(DEVICE_DTS).dtb
diff --git a/target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch b/target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch
index fb358ed184..924715c9aa 100644
--- a/target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch
+++ b/target/linux/ipq40xx/patches-4.19/901-arm-boot-add-dts-files.patch
@@ -49,6 +49,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
+ qcom-ipq4019-rtl30vw.dtb \
+ qcom-ipq4019-u4019-32m.dtb \
+ qcom-ipq4019-wpj419.dtb \
++ qcom-ipq4019-wtr-m2133hp.dtb \
+ qcom-ipq4028-wpj428.dtb \
+ qcom-ipq4029-ap-303.dtb \
+ qcom-ipq4029-ap-303h.dtb \
diff --git a/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch b/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch
index 2db36aa597..c5b0981f49 100644
--- a/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch
+++ b/target/linux/ipq40xx/patches-5.4/901-arm-boot-add-dts-files.patch
@@ -50,6 +50,7 @@ Signed-off-by: John Crispin <john@phrozen.org>
+ qcom-ipq4019-rtl30vw.dtb \
+ qcom-ipq4019-u4019-32m.dtb \
+ qcom-ipq4019-wpj419.dtb \
++ qcom-ipq4019-wtr-m2133hp.dtb \
+ qcom-ipq4028-wpj428.dtb \
+ qcom-ipq4029-ap-303.dtb \
+ qcom-ipq4029-ap-303h.dtb \