[RFC PATCH 1/5] ath79: put some 8/32MB devices to tiny subtarget

Sven Roederer devel-sven at geroedel.de
Sat Dec 5 20:06:35 EST 2020


Even the 8MB flash/ 32MB RAM devices provide enough space to install a full OpenWrt
and LuCI they often fail to run as stable as 64MB RAM devices. For this reason make
such boards also available in the ath79-tiny target.
Affected boards include (for now):
* Ubiquiti Nanostation M (XM)
* TPLink WR1043v1; WR842v1/v2; WR710

Signed-off-by: Sven Roederer <devel-sven at geroedel.de>
---
 target/linux/ath79/image/Makefile             |   1 +
 target/linux/ath79/image/common-tp-link.mk    |   2 +
 target/linux/ath79/image/tiny-tp-link.mk      |  66 +++++++++
 target/linux/ath79/image/tiny-ubnt.mk         | 132 ++++++++++++++++++
 .../ath79/tiny/base-files/etc/board.d/01_leds |   7 +
 .../tiny/base-files/etc/board.d/02_network    |  11 +-
 .../base-files/etc/board.d/03_gpio_switches   |  20 +++
 .../etc/hotplug.d/firmware/10-ath9k-eeprom    |   7 +-
 target/linux/ath79/tiny/target.mk             |   4 +-
 9 files changed, 246 insertions(+), 4 deletions(-)
 create mode 100644 target/linux/ath79/image/tiny-ubnt.mk
 create mode 100755 target/linux/ath79/tiny/base-files/etc/board.d/03_gpio_switches

diff --git a/target/linux/ath79/image/Makefile b/target/linux/ath79/image/Makefile
index 9bec159cf0..565ab14520 100644
--- a/target/linux/ath79/image/Makefile
+++ b/target/linux/ath79/image/Makefile
@@ -81,6 +81,7 @@ endif
 ifeq ($(SUBTARGET),tiny)
 include tiny-netgear.mk
 include tiny-tp-link.mk
+include tiny-ubnt.mk
 endif
 
 $(eval $(call BuildImage))
diff --git a/target/linux/ath79/image/common-tp-link.mk b/target/linux/ath79/image/common-tp-link.mk
index 0b7b0e1935..07dd622f30 100644
--- a/target/linux/ath79/image/common-tp-link.mk
+++ b/target/linux/ath79/image/common-tp-link.mk
@@ -40,6 +40,7 @@ define Device/tplink-4m
   $(Device/tplink-nolzma)
   TPLINK_FLASHLAYOUT := 4M
   IMAGE_SIZE := 3904k
+  FEATURES := small_flash
   DEFAULT := n
 endef
 
@@ -47,6 +48,7 @@ define Device/tplink-4mlzma
   $(Device/tplink-v1)
   TPLINK_FLASHLAYOUT := 4Mlzma
   IMAGE_SIZE := 3904k
+  FEATURES := small_flash
   DEFAULT := n
 endef
 
diff --git a/target/linux/ath79/image/tiny-tp-link.mk b/target/linux/ath79/image/tiny-tp-link.mk
index c918c6baa6..d5b36de577 100644
--- a/target/linux/ath79/image/tiny-tp-link.mk
+++ b/target/linux/ath79/image/tiny-tp-link.mk
@@ -223,6 +223,17 @@ define Device/tplink_tl-wa901nd-v5
 endef
 TARGET_DEVICES += tplink_tl-wa901nd-v5
 
+define Device/tplink_tl-wr1043nd-v1
+  $(Device/tplink-8m)
+  SOC := ar9132
+  DEVICE_MODEL := TL-WR1043N/ND
+  DEVICE_VARIANT := v1
+  DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
+  TPLINK_HWID := 0x10430001
+  SUPPORTED_DEVICES += tl-wr1043nd
+endef
+TARGET_DEVICES += tplink_tl-wr1043nd-v1
+
 define Device/tplink_tl-wr703n
   $(Device/tplink-4mlzma)
   SOC := ar9331
@@ -243,6 +254,29 @@ define Device/tplink_tl-wr740n-v1
 endef
 TARGET_DEVICES += tplink_tl-wr740n-v1
 
+define Device/tplink_tl-wr710n-v1
+  $(Device/tplink-8mlzma)
+  SOC := ar9331
+  DEVICE_MODEL := TL-WR710N
+  DEVICE_VARIANT := v1
+  DEVICE_PACKAGES := kmod-usb-chipidea2 kmod-usb-ledtrig-usbport
+  TPLINK_HWID := 0x07100001
+  SUPPORTED_DEVICES += tl-wr710n
+endef
+TARGET_DEVICES += tplink_tl-wr710n-v1
+
+define Device/tplink_tl-wr710n-v2.1
+  $(Device/tplink-8mlzma)
+  SOC := ar9331
+  DEVICE_MODEL := TL-WR710N
+  DEVICE_VARIANT := v2.1
+  DEVICE_PACKAGES := kmod-usb-chipidea2 kmod-usb-ledtrig-usbport
+  TPLINK_HWID := 0x07100002
+  TPLINK_HWREV := 0x2
+  SUPPORTED_DEVICES += tl-wr710n
+endef
+TARGET_DEVICES += tplink_tl-wr710n-v2.1
+
 define Device/tplink_tl-wr740n-v3
   $(Device/tplink-4m)
   SOC := ar7240
@@ -327,6 +361,16 @@ define Device/tplink_tl-wr802n-v2
 endef
 TARGET_DEVICES += tplink_tl-wr802n-v2
 
+define Device/tplink_tl-wr810n-v2
+  $(Device/tplink-8mlzma)
+  SOC := qca9533
+  DEVICE_MODEL := TL-WR810N
+  DEVICE_VARIANT := v2
+  TPLINK_HWID := 0x8100002
+  SUPPORTED_DEVICES += tl-wr810n-v2
+endef
+TARGET_DEVICES += tplink_tl-wr810n-v2
+
 define Device/tplink_tl-wr841-v5
   $(Device/tplink-4m)
   SOC := ar7240
@@ -403,6 +447,28 @@ define Device/tplink_tl-wr841-v12
 endef
 TARGET_DEVICES += tplink_tl-wr841-v12
 
+define Device/tplink_tl-wr842n-v1
+  $(Device/tplink-8m)
+  SOC := ar7241
+  DEVICE_MODEL := TL-WR842N/ND
+  DEVICE_VARIANT := v1
+  DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
+  TPLINK_HWID := 0x8420001
+  SUPPORTED_DEVICES += tl-mr3420
+endef
+TARGET_DEVICES += tplink_tl-wr842n-v1
+
+define Device/tplink_tl-wr842n-v2
+  $(Device/tplink-8mlzma)
+  SOC := ar9341
+  DEVICE_MODEL := TL-WR842N/ND
+  DEVICE_VARIANT := v2
+  DEVICE_PACKAGES := kmod-usb2 kmod-usb-ledtrig-usbport
+  TPLINK_HWID := 0x8420002
+  SUPPORTED_DEVICES += tl-wr842n-v2
+endef
+TARGET_DEVICES += tplink_tl-wr842n-v2
+
 define Device/tplink_tl-wr940n-v3
   $(Device/tplink-4mlzma)
   SOC := tp9343
diff --git a/target/linux/ath79/image/tiny-ubnt.mk b/target/linux/ath79/image/tiny-ubnt.mk
new file mode 100644
index 0000000000..a8c5a2cf68
--- /dev/null
+++ b/target/linux/ath79/image/tiny-ubnt.mk
@@ -0,0 +1,132 @@
+DEVICE_VARS += UBNT_BOARD UBNT_CHIP UBNT_TYPE UBNT_VERSION UBNT_REVISION
+
+# On M (XW) devices the U-Boot as of version 1.1.4-s1039 doesn't like
+# VERSION_DIST being on the place of major(?) version number, so we need to
+# use some number.
+UBNT_REVISION := $(VERSION_DIST)-$(REVISION)
+
+# mkubntimage is using the kernel image direct
+# routerboard creates partitions out of the ubnt header
+define Build/mkubntimage
+	-$(STAGING_DIR_HOST)/bin/mkfwimage -B $(UBNT_BOARD) \
+		-v $(UBNT_TYPE).$(UBNT_CHIP).v6.0.0-$(VERSION_DIST)-$(REVISION) \
+		-k $(IMAGE_KERNEL) -r $@ -o $@
+endef
+
+# all UBNT XM/WA devices expect the kernel image to have 1024k while flash, when
+# booting the image, the size doesn't matter.
+define Build/mkubntimage-split
+	-[ -f $@ ] && ( \
+	dd if=$@ of=$@.old1 bs=1024k count=1; \
+	dd if=$@ of=$@.old2 bs=1024k skip=1; \
+	$(STAGING_DIR_HOST)/bin/mkfwimage -B $(UBNT_BOARD) \
+		-v $(UBNT_TYPE).$(UBNT_CHIP).v$(UBNT_VERSION)-$(UBNT_REVISION) \
+		-k $@.old1 -r $@.old2 -o $@; \
+	rm $@.old1 $@.old2 )
+endef
+
+# UBNT_BOARD e.g. one of (XS2, XS5, RS, XM)
+# UBNT_TYPE e.g. one of (BZ, XM, XW)
+# UBNT_CHIP e.g. one of (ar7240, ar933x, ar934x)
+# UBNT_VERSION e.g. one of (6.0.0, 8.5.3)
+define Device/ubnt
+  DEVICE_VENDOR := Ubiquiti
+  DEVICE_PACKAGES := kmod-usb2
+  IMAGES += factory.bin
+  IMAGE/factory.bin := append-kernel | pad-to $$$$(BLOCKSIZE) | \
+	append-rootfs | pad-rootfs | check-size | mkubntimage-split
+endef
+
+define Device/ubnt-xm
+  $(Device/ubnt)
+  DEVICE_VARIANT := XM
+  DEVICE_PACKAGES += kmod-usb-ohci
+  IMAGE_SIZE := 7448k
+  UBNT_BOARD := XM
+  UBNT_CHIP := ar7240
+  UBNT_TYPE := XM
+  UBNT_VERSION := 6.0.0
+  KERNEL := kernel-bin | append-dtb | relocate-kernel | lzma | uImage lzma
+endef
+
+define Device/ubnt_airrouter
+  $(Device/ubnt-xm)
+  SOC := ar7241
+  DEVICE_MODEL := AirRouter
+  SUPPORTED_DEVICES += airrouter
+endef
+TARGET_DEVICES += ubnt_airrouter
+
+define Device/ubnt_bullet-m-ar7240
+  $(Device/ubnt-xm)
+  SOC := ar7240
+  DEVICE_MODEL := Bullet M
+  DEVICE_VARIANT := XM (AR7240)
+  DEVICE_PACKAGES += rssileds
+  SUPPORTED_DEVICES += bullet-m
+endef
+TARGET_DEVICES += ubnt_bullet-m-ar7240
+
+define Device/ubnt_bullet-m-ar7241
+  $(Device/ubnt-xm)
+  SOC := ar7241
+  DEVICE_MODEL := Bullet M
+  DEVICE_VARIANT := XM (AR7241)
+  DEVICE_PACKAGES += rssileds
+  SUPPORTED_DEVICES += bullet-m ubnt,bullet-m
+endef
+TARGET_DEVICES += ubnt_bullet-m-ar7241
+
+define Device/ubnt_nanobridge-m
+  $(Device/ubnt-xm)
+  SOC := ar7241
+  DEVICE_MODEL := NanoBridge M
+  DEVICE_PACKAGES += rssileds
+  SUPPORTED_DEVICES += bullet-m
+endef
+TARGET_DEVICES += ubnt_nanobridge-m
+
+define Device/ubnt_nanostation-loco-m
+  $(Device/ubnt-xm)
+  SOC := ar7241
+  DEVICE_MODEL := Nanostation Loco M
+  DEVICE_PACKAGES += rssileds
+  SUPPORTED_DEVICES += bullet-m
+endef
+TARGET_DEVICES += ubnt_nanostation-loco-m
+
+define Device/ubnt_nanostation-m
+  $(Device/ubnt-xm)
+  SOC := ar7241
+  DEVICE_MODEL := Nanostation M
+  DEVICE_PACKAGES += rssileds
+  SUPPORTED_DEVICES += nanostation-m
+endef
+TARGET_DEVICES += ubnt_nanostation-m
+
+define Device/ubnt_picostation-m
+  $(Device/ubnt-xm)
+  SOC := ar7241
+  DEVICE_MODEL := Picostation M
+  DEVICE_PACKAGES += rssileds
+  SUPPORTED_DEVICES += bullet-m
+endef
+TARGET_DEVICES += ubnt_picostation-m
+
+define Device/ubnt_powerbridge-m
+  $(Device/ubnt-xm)
+  SOC := ar7241
+  DEVICE_MODEL := PowerBridge M
+  DEVICE_PACKAGES += rssileds
+  SUPPORTED_DEVICES += bullet-m
+endef
+TARGET_DEVICES += ubnt_powerbridge-m
+
+define Device/ubnt_rocket-m
+  $(Device/ubnt-xm)
+  SOC := ar7241
+  DEVICE_MODEL := Rocket M
+  DEVICE_PACKAGES += rssileds
+  SUPPORTED_DEVICES += rocket-m
+endef
+TARGET_DEVICES += ubnt_rocket-m
diff --git a/target/linux/ath79/tiny/base-files/etc/board.d/01_leds b/target/linux/ath79/tiny/base-files/etc/board.d/01_leds
index 26926b6f64..95aeeba7c9 100755
--- a/target/linux/ath79/tiny/base-files/etc/board.d/01_leds
+++ b/target/linux/ath79/tiny/base-files/etc/board.d/01_leds
@@ -86,6 +86,13 @@ tplink,tl-wa850re-v2)
 	ucidef_set_led_rssi "rssimediumhigh" "RSSIMEDIUMHIGH" "blue:signal4" "wlan0" "60" "100"
 	ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "blue:signal5" "wlan0" "80" "100"
 	;;
+tplink,tl-wr842n-v2)
+	ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth1"
+	ucidef_set_led_switch "lan1" "LAN1" "green:lan1" "switch0" "0x04"
+	ucidef_set_led_switch "lan2" "LAN2" "green:lan2" "switch0" "0x08"
+	ucidef_set_led_switch "lan3" "LAN3" "green:lan3" "switch0" "0x10"
+	ucidef_set_led_switch "lan4" "LAN4" "green:lan4" "switch0" "0x02"
+	;;
 tplink,tl-wr940n-v3|\
 tplink,tl-wr940n-v4|\
 tplink,tl-wr941nd-v6)
diff --git a/target/linux/ath79/tiny/base-files/etc/board.d/02_network b/target/linux/ath79/tiny/base-files/etc/board.d/02_network
index cbcdbe9a89..45a4a7b589 100755
--- a/target/linux/ath79/tiny/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/tiny/base-files/etc/board.d/02_network
@@ -59,6 +59,7 @@ ath79_setup_interfaces()
 	tplink,tl-wr841-v10|\
 	tplink,tl-wr841-v11|\
 	tplink,tl-wr841-v12|\
+	tplink,tl-wr842n-v1|\
 	tplink,tl-wr940n-v3|\
 	tplink,tl-wr940n-v4|\
 	tplink,tl-wr940n-v6|\
@@ -71,11 +72,16 @@ ath79_setup_interfaces()
 	tplink,tl-wr740n-v4|\
 	tplink,tl-wr740n-v5|\
 	tplink,tl-wr741nd-v4|\
-	tplink,tl-wr841-v8)
+	tplink,tl-wr841-v8|\
+	tplink,tl-wr842n-v2)
 		ucidef_set_interface_wan "eth1"
 		ucidef_add_switch "switch0" \
 			"0 at eth0" "1:lan:4" "2:lan:1" "3:lan:2" "4:lan:3"
 		;;
+	tplink,tl-wr1043nd-v1)
+		ucidef_add_switch "switch0" \
+			"1:lan" "2:lan" "3:lan" "4:lan" "0:wan" "5 at eth0"
+		;;
 	tplink,tl-wr941-v2)
 		ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan"
 		;;
@@ -83,6 +89,9 @@ ath79_setup_interfaces()
 		ucidef_add_switch "switch0" \
 			"0 at eth0" "2:lan:1" "3:lan:2" "4:lan:3" "5:lan:4" "1:wan"
 		;;
+	ubnt,nanostation-m)
+		ucidef_set_interfaces_lan_wan "eth1" "eth0"
+		;;
 	*)
 		ucidef_set_interfaces_lan_wan "eth0" "eth1"
 		;;
diff --git a/target/linux/ath79/tiny/base-files/etc/board.d/03_gpio_switches b/target/linux/ath79/tiny/base-files/etc/board.d/03_gpio_switches
new file mode 100755
index 0000000000..91eeee7937
--- /dev/null
+++ b/target/linux/ath79/tiny/base-files/etc/board.d/03_gpio_switches
@@ -0,0 +1,20 @@
+#!/bin/sh
+#
+# Copyright (C) 2018 OpenWrt.org
+#
+
+. /lib/functions/uci-defaults.sh
+
+board_config_update
+
+board=$(board_name)
+
+case "$board" in
+ubnt,nanostation-m)
+	ucidef_add_gpio_switch "poe_passthrough" "PoE Passthrough" "8"
+	;;
+esac
+
+board_config_flush
+
+exit 0
diff --git a/target/linux/ath79/tiny/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom b/target/linux/ath79/tiny/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
index 6ae2dc5f94..8ebff61332 100644
--- a/target/linux/ath79/tiny/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
+++ b/target/linux/ath79/tiny/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
@@ -33,7 +33,12 @@ case "$FIRMWARE" in
 	tplink,tl-wr740n-v3|\
 	tplink,tl-wr741-v1|\
 	tplink,tl-wr743nd-v1|\
-	tplink,tl-wr841-v7)
+	tplink,tl-wr841-v7|\
+	tplink,tl-wr842n-v1|\
+	ubnt,nanostation-m|\
+	ubnt,picostation-m|\
+	ubnt,powerbridge-m|\
+	ubnt,rocket-m)
 		caldata_extract "art" 0x1000 0x1000
 		;;
 	pqi,air-pen)
diff --git a/target/linux/ath79/tiny/target.mk b/target/linux/ath79/tiny/target.mk
index 91f135b56e..79623bd889 100644
--- a/target/linux/ath79/tiny/target.mk
+++ b/target/linux/ath79/tiny/target.mk
@@ -1,5 +1,5 @@
-BOARDNAME:=Devices with small flash
-FEATURES += small_flash
+BOARDNAME:=Devices with small flash / low ram
+FEATURES += 
 
 DEFAULT_PACKAGES += wpad-basic-wolfssl
 
-- 
2.20.1




More information about the openwrt-devel mailing list