aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRussell Morris <rmorris@rkmorris.us>2019-12-24 18:38:36 -0600
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>2020-09-03 14:15:30 +0200
commit45a81f70568fc8068866f37147e8b55f131f56cc (patch)
treee615e915f032c5d08cf733a1874b27ea462e2756
parentb7013e9c4ad3b6944ac5a028d8ae9350be0859f0 (diff)
downloadupstream-45a81f70568fc8068866f37147e8b55f131f56cc.tar.gz
upstream-45a81f70568fc8068866f37147e8b55f131f56cc.tar.bz2
upstream-45a81f70568fc8068866f37147e8b55f131f56cc.zip
ramips: add support for HooToo HT-TM05
The HooToo HT-TM05 is a battery powered router, with an Ethernet and USB port. Vendor U-Boot limited to 1.5 MB kernel size, so use lzma loader (loader-okli). Specifications: SOC: MediaTek MT7620N BATTERY: 10400mAh WLAN: 802.11bgn LAN: 1x 10/100 Mbps Ethernet USB: 1x USB 2.0 (Type-A) RAM: 64 MB FLASH: GigaDevice GD25Q64, Serial 8 MB Flash, clocked at 50 MHz Flash itself specified to 80 MHz, but speed limited by mt7620 SPI fast-read enabled (m25p) LED: Status LED (blue after boot, green with WiFi traffic 4 leds to indicate power level of the battery (unable to control) INPUT: Power, reset button MAC assignment based on vendor firmware: 2.4 GHz *:b4 (factory 0x04) LAN/label *:b4 (factory 0x28) WAN *:b5 (factory 0x2e) Tested and working: - Ethernet - 2.4 GHz WiFi (Correct MAC-address) - Installation from TFTP (recovery) - OpenWRT sysupgrade (Preserving and non-preserving), through the usual ways: command line and LuCI - LEDs (except as noted above) - Button (reset) - I2C, which is needed for reading battery charge status and level - U-Boot environment / variables (from U-Boot, and OpenWrt) Installation: - Download the needed OpenWrt install files, place them in the root of a clean TFTP server running on your computer. Rename the files as, - ramips-mt7620-hootoo_tm05-squashfs-kernel.bin => kernel - ramips-mt7620-hootoo_tm05-squashfs-rootfs.bin => rootfs - Plug the router into your computer via Ethernet - Set your computer to use 10.10.10.254 as its IP address - With your router shut down, hold down the power button until the first white LED lights up. - Push and hold the reset button and release the power button. Continue holding the reset button for 30 seconds or until it begins searching for files on your TFTP server, whichever comes first. - The router (10.10.10.128) will look for your computer at 10.10.10.254 and install the two files. Once it has finished installation, it will automatically reboot and start up OpenWrt. - Set your computer to use DHCP for its IP address Notes: - U-Boot environment can be modified, u-boot-env is preserved on initial install or sysupgrade - mtd-concat functionality is included, to leave a "hole" for u-boot-env, combining the OEM kernel and rootfs partitions I would like to thank @mpratt14 and @xabolcs for their help getting the lzma loader to work! Signed-off-by: Russell Morris <rmorris@rkmorris.us> [drop changes in image/Makefile, fix indent and PKG_RELEASE in uboot-envtools, fix LOADER_FLASH_OFFS, minor commit message facelift, add COMPILE to Device/Default] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
-rw-r--r--package/boot/uboot-envtools/Makefile2
-rw-r--r--package/boot/uboot-envtools/files/ramips5
-rw-r--r--target/linux/ramips/dts/mt7620n_hootoo_ht-tm05.dts160
-rw-r--r--target/linux/ramips/image/Makefile1
-rw-r--r--target/linux/ramips/image/mt7620.mk19
-rwxr-xr-xtarget/linux/ramips/mt7620/base-files/etc/board.d/02_network1
-rw-r--r--target/linux/ramips/mt7620/config-5.41
7 files changed, 188 insertions, 1 deletions
diff --git a/package/boot/uboot-envtools/Makefile b/package/boot/uboot-envtools/Makefile
index b032e07c37..7a27a29596 100644
--- a/package/boot/uboot-envtools/Makefile
+++ b/package/boot/uboot-envtools/Makefile
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=uboot-envtools
PKG_DISTNAME:=u-boot
PKG_VERSION:=2020.04
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_DISTNAME)-$(PKG_VERSION).tar.bz2
PKG_SOURCE_URL:= \
diff --git a/package/boot/uboot-envtools/files/ramips b/package/boot/uboot-envtools/files/ramips
index 80a91f0f45..6be2f6dcae 100644
--- a/package/boot/uboot-envtools/files/ramips
+++ b/package/boot/uboot-envtools/files/ramips
@@ -33,6 +33,11 @@ xiaomi,miwifi-nano|\
zbtlink,zbt-wg2626)
ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x1000" "0x10000"
;;
+hootoo,ht-tm05)
+ idx="$(find_mtd_index u-boot-env)"
+ [ -n "$idx" ] && \
+ ubootenv_add_uci_config "/dev/mtd$idx" "0x4000" "0x1000" "0x1000"
+ ;;
linksys,ea7300-v1|\
linksys,ea7500-v2|\
xiaomi,mi-router-ac2100|\
diff --git a/target/linux/ramips/dts/mt7620n_hootoo_ht-tm05.dts b/target/linux/ramips/dts/mt7620n_hootoo_ht-tm05.dts
new file mode 100644
index 0000000000..d91986a68f
--- /dev/null
+++ b/target/linux/ramips/dts/mt7620n_hootoo_ht-tm05.dts
@@ -0,0 +1,160 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "mt7620n.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+ compatible = "hootoo,ht-tm05", "ralink,mt7620n-soc";
+ model = "HooToo HT-TM05";
+
+ aliases {
+ led-boot = &led_power;
+ led-failsafe = &led_power;
+ led-running = &led_power;
+ led-upgrade = &led_power;
+ label-mac-device = &ethernet;
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led_power: power {
+ label = "ht-tm05:blue:power";
+ gpios = <&gpio3 0 GPIO_ACTIVE_LOW>;
+ default-state = "on";
+ };
+
+ wifi {
+ label = "ht-tm05:green:wifi";
+ gpios = <&gpio2 0 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "phy0tpt";
+ };
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ reset {
+ label = "reset";
+ gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
+ linux,code = <KEY_RESTART>;
+ };
+ };
+
+ virtual_flash {
+ compatible = "mtd-concat";
+
+ devices = <&firmware1 &firmware2 &firmware3>;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ compatible = "openwrt,okli";
+ label = "firmware";
+ reg = <0x0 0x0>;
+ };
+ };
+ };
+};
+
+&gpio2 {
+ status = "okay";
+};
+
+&gpio3 {
+ status = "okay";
+};
+
+&i2c {
+ status = "okay";
+};
+
+&spi0 {
+ status = "okay";
+
+ flash@0 {
+ compatible = "jedec,spi-nor";
+ reg = <0>;
+ spi-max-frequency = <50000000>;
+ m25p,fast-read;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ partition@0 {
+ label = "u-boot";
+ reg = <0x0 0x30000>;
+ read-only;
+ };
+
+ partition@30000 {
+ label = "config";
+ reg = <0x30000 0x10000>;
+ read-only;
+ };
+
+ factory: partition@40000 {
+ label = "factory";
+ reg = <0x40000 0x10000>;
+ read-only;
+ };
+
+ partition@50000 {
+ label = "loader";
+ reg = <0x50000 0x10000>;
+ read-only;
+ };
+
+ firmware2: partition@60000 {
+ label = "firmware2";
+ reg = <0x60000 0x170000>;
+ };
+
+ partition@1d0000 {
+ label = "u-boot-env";
+ reg = <0x1d0000 0x10000>;
+ };
+
+ firmware3: partition@1e0000 {
+ label = "firmware3";
+ reg = <0x1e0000 0x20000>;
+ };
+
+ firmware1: partition@200000 {
+ label = "firmware1";
+ reg = <0x200000 0x600000>;
+ };
+ };
+ };
+};
+
+&ehci {
+ status = "okay";
+};
+
+&ohci {
+ status = "okay";
+};
+
+&ethernet {
+ mtd-mac-address = <&factory 0x28>;
+};
+
+&wmac {
+ ralink,mtd-eeprom = <&factory 0x0>;
+};
+
+&state_default {
+ gpio {
+ groups = "wled", "ephy";
+ function = "gpio";
+ };
+};
diff --git a/target/linux/ramips/image/Makefile b/target/linux/ramips/image/Makefile
index 10e9edd3bb..bcd46d88a8 100644
--- a/target/linux/ramips/image/Makefile
+++ b/target/linux/ramips/image/Makefile
@@ -187,6 +187,7 @@ define Device/Default
DEVICE_DTS_DIR := ../dts
DEVICE_DTS = $$(SOC)_$(1)
IMAGES := sysupgrade.bin
+ COMPILE :=
SUPPORTED_DEVICES := $(subst _,$(comma),$(1))
sysupgrade_bin := append-kernel | append-rootfs | pad-rootfs
IMAGE/sysupgrade.bin := append-kernel | append-rootfs | pad-rootfs | append-metadata | check-size
diff --git a/target/linux/ramips/image/mt7620.mk b/target/linux/ramips/image/mt7620.mk
index 0cfaa95cf0..149b666aad 100644
--- a/target/linux/ramips/image/mt7620.mk
+++ b/target/linux/ramips/image/mt7620.mk
@@ -488,6 +488,25 @@ define Device/hnet_c108
endef
TARGET_DEVICES += hnet_c108
+define Device/hootoo_ht-tm05
+ SOC := mt7620n
+ IMAGE_SIZE := 6144k
+ DEVICE_VENDOR := HooToo
+ DEVICE_MODEL := HT-TM05
+ DEVICE_PACKAGES := kmod-usb2 kmod-usb-ohci kmod-i2c-ralink
+ LOADER_TYPE := bin
+ LOADER_FLASH_OFFS := 0x200000
+ COMPILE := loader-$(1).bin
+ COMPILE/loader-$(1).bin := loader-okli-compile | pad-to 64k | lzma | \
+ uImage lzma
+ KERNEL := $(KERNEL_DTB) | uImage lzma -M 0x4f4b4c49
+ KERNEL_INITRAMFS := $(KERNEL_DTB) | uImage lzma
+ IMAGES += kernel.bin rootfs.bin
+ IMAGE/kernel.bin := append-loader-okli $(1) | check-size 64k
+ IMAGE/rootfs.bin := $$(sysupgrade_bin) | check-size
+endef
+TARGET_DEVICES += hootoo_ht-tm05
+
define Device/iodata_wn-ac1167gr
SOC := mt7620a
DEVICE_VENDOR := I-O DATA
diff --git a/target/linux/ramips/mt7620/base-files/etc/board.d/02_network b/target/linux/ramips/mt7620/base-files/etc/board.d/02_network
index bcf122c427..3c77e6ad30 100755
--- a/target/linux/ramips/mt7620/base-files/etc/board.d/02_network
+++ b/target/linux/ramips/mt7620/base-files/etc/board.d/02_network
@@ -46,6 +46,7 @@ ramips_setup_interfaces()
edimax,ew-7476rpc|\
edimax,ew-7478ac|\
elecom,wrh-300cr|\
+ hootoo,ht-tm05|\
kimax,u25awf-h1|\
kimax,u35wf|\
kingston,mlw221|\
diff --git a/target/linux/ramips/mt7620/config-5.4 b/target/linux/ramips/mt7620/config-5.4
index d1170ce036..6a4dde7ecf 100644
--- a/target/linux/ramips/mt7620/config-5.4
+++ b/target/linux/ramips/mt7620/config-5.4
@@ -173,6 +173,7 @@ CONFIG_MTD_SPLIT_JIMAGE_FW=y
CONFIG_MTD_SPLIT_SEAMA_FW=y
CONFIG_MTD_SPLIT_TPLINK_FW=y
CONFIG_MTD_SPLIT_UIMAGE_FW=y
+CONFIG_MTD_VIRT_CONCAT=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_PER_CPU_KM=y
CONFIG_NET_RALINK_GSW_MT7620=y