ath79: move small-flash Engenius boards to tiny
authorMichael Pratt <mcpratt@pm.me>
Fri, 1 Jan 2021 21:48:52 +0000 (16:48 -0500)
committerAdrian Schmutzler <freifunk@adrianschmutzler.de>
Thu, 7 Jan 2021 18:51:50 +0000 (19:51 +0100)
This moves some of the Engenius boards from generic to tiny:

 - EAP350 v1
 - ECB350 v1
 - ENH202 v1

For these, factory.bin builds are already failing on master
branch because of the unique situation for these boards:

 - 8 MB flash
 - an extra "failsafe" image for recovery
 - TFTP does not work (barely possible with 600 MTU)
 - bootloader loads image from a longer flash offset
 - 1 eraseblock each needed for OKLI kernel loader and fake rootfs
 - using mtd-concat to make use of remaining space...

The manual alternative would be removing the failsafe partition.
However this comes with the risk of extremely difficult recovery
if a flash ever fails because TFTP on the bootloader is bugged.
Signed-off-by: Michael Pratt <mcpratt@pm.me>
[improve commit message]
Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
target/linux/ath79/generic/base-files/etc/board.d/01_leds
target/linux/ath79/generic/base-files/etc/board.d/02_network
target/linux/ath79/generic/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom
target/linux/ath79/image/common-engenius.mk [new file with mode: 0644]
target/linux/ath79/image/generic.mk
target/linux/ath79/image/tiny.mk
target/linux/ath79/tiny/base-files/etc/board.d/01_leds
target/linux/ath79/tiny/base-files/etc/board.d/02_network
target/linux/ath79/tiny/base-files/etc/hotplug.d/firmware/10-ath9k-eeprom

index b961e7d3e8c1ff6b6fa17dacf06c68b9c834f2ef..079c8d4e4715910e8d56dc947fc83e2ab7157278 100755 (executable)
@@ -182,14 +182,6 @@ dlink,dap-1365-a1)
 dlink,dir-859-a1)
        ucidef_set_led_switch "internet" "WAN" "green:internet" "switch0" "0x20"
        ;;
-engenius,enh202-v1)
-       ucidef_set_led_switch "lan" "LAN" "amber:lan" "switch0" "0x10"
-       ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth0"
-       ucidef_set_rssimon "wlan0" "200000" "1"
-       ucidef_set_led_rssi "rssilow" "RSSILOW" "red:rssilow" "wlan0" "1"  "100"
-       ucidef_set_led_rssi "rssimedium" "RSSIMEDIUM" "amber:rssimedium" "wlan0" "33" "100"
-       ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "green:rssihigh" "wlan0" "67" "100"
-       ;;
 engenius,ens202ext-v1|\
 engenius,enstationac-v1)
        ucidef_set_rssimon "wlan0" "200000" "1"
index c79286d45d62bcd7324ce1c9d531d612fba308af..c08f374d3af6085e4376810cb272f60aaca94448 100755 (executable)
@@ -33,11 +33,9 @@ ath79_setup_interfaces()
        dlink,dap-3320-a1|\
        dlink,dir-505|\
        engenius,eap300-v2|\
-       engenius,eap350-v1|\
        engenius,eap600|\
        engenius,ecb1200|\
        engenius,ecb1750|\
-       engenius,ecb350-v1|\
        engenius,ecb600|\
        enterasys,ws-ap3705i|\
        glinet,gl-ar300m-lite|\
@@ -227,11 +225,6 @@ ath79_setup_interfaces()
                ucidef_add_switch "switch0" \
                        "0@eth0" "1:wan" "2:lan:3" "3:lan:2"
                ;;
-       engenius,enh202-v1)
-               ucidef_set_interface_wan "eth0"
-               ucidef_add_switch "switch0" \
-                       "0@eth1" "4:lan:1"
-               ;;
        engenius,ens202ext-v1)
                ucidef_set_interface_wan "eth1"
                ucidef_add_switch "switch0" \
@@ -530,19 +523,6 @@ ath79_setup_macs()
                lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
                label_mac=$lan_mac
                ;;
-       engenius,enh202-v1|\
-       ubnt,airrouter|\
-       ubnt,bullet-m-ar7240|\
-       ubnt,bullet-m-ar7241|\
-       ubnt,nanobridge-m|\
-       ubnt,nanostation-loco-m|\
-       ubnt,nanostation-m|\
-       ubnt,picostation-m|\
-       ubnt,powerbridge-m|\
-       ubnt,rocket-m|\
-       ubnt,unifi)
-               label_mac=$(cat /sys/class/ieee80211/phy0/macaddress)
-               ;;
        engenius,epg5000)
                lan_mac=$(mtd_get_mac_ascii u-boot-env ethaddr)
                wan_mac=$(mtd_get_mac_ascii u-boot-env wanaddr)
@@ -623,6 +603,18 @@ ath79_setup_macs()
                wan_mac=$(mtd_get_mac_text mac 0x18)
                label_mac=$wan_mac
                ;;
+       ubnt,airrouter|\
+       ubnt,bullet-m-ar7240|\
+       ubnt,bullet-m-ar7241|\
+       ubnt,nanobridge-m|\
+       ubnt,nanostation-loco-m|\
+       ubnt,nanostation-m|\
+       ubnt,picostation-m|\
+       ubnt,powerbridge-m|\
+       ubnt,rocket-m|\
+       ubnt,unifi)
+               label_mac=$(cat /sys/class/ieee80211/phy0/macaddress)
+               ;;
        ubnt,litebeam-ac-gen2|\
        ubnt,nanobeam-ac-gen2|\
        ubnt,powerbeam-5ac-500|\
index 28ac38e1d49242bb858d44657091ac7e01d4d87c..95ad2a57ef5dccb6e36099bf51f96c16a379219f 100644 (file)
@@ -74,10 +74,7 @@ case "$FIRMWARE" in
        avm,fritz300e)
                caldata_extract_reverse "urloader" 0x1541 0x440
                ;;
-       buffalo,wzr-hp-g302h-a1a0|\
-       engenius,eap350-v1|\
-       engenius,ecb350-v1|\
-       engenius,enh202-v1)
+       buffalo,wzr-hp-g302h-a1a0)
                caldata_extract "art" 0x1000 0xeb8
                ;;
        buffalo,wzr-hp-g450h|\
diff --git a/target/linux/ath79/image/common-engenius.mk b/target/linux/ath79/image/common-engenius.mk
new file mode 100644 (file)
index 0000000..56e8f8c
--- /dev/null
@@ -0,0 +1,33 @@
+DEVICE_VARS += ENGENIUS_IMGNAME
+
+# This needs to make /tmp/_sys/sysupgrade.tgz an empty file prior to
+# sysupgrade, as otherwise it will implant the old configuration from
+# OEM firmware when writing rootfs from factory.bin
+define Build/engenius-tar-gz
+       -[ -f "$@" ] && \
+       mkdir -p $@.tmp && \
+       touch $@.tmp/failsafe.bin && \
+       echo '#!/bin/sh' > $@.tmp/before-upgrade.sh && \
+       echo ': > /tmp/_sys/sysupgrade.tgz' >> $@.tmp/before-upgrade.sh && \
+       $(CP) $(KDIR)/loader-$(DEVICE_NAME).uImage \
+               $@.tmp/openwrt-$(word 1,$(1))-uImage-lzma.bin && \
+       $(CP) $@ $@.tmp/openwrt-$(word 1,$(1))-root.squashfs && \
+       $(TAR) -cp --numeric-owner --owner=0 --group=0 --mode=a-s --sort=name \
+               $(if $(SOURCE_DATE_EPOCH),--mtime="@$(SOURCE_DATE_EPOCH)") \
+               -C $@.tmp . | gzip -9n > $@ && \
+       rm -rf $@.tmp
+endef
+
+define Device/engenius_loader_okli
+  DEVICE_VENDOR := EnGenius
+  KERNEL := kernel-bin | append-dtb | lzma | uImage lzma -M 0x4f4b4c49
+  LOADER_TYPE := bin
+  COMPILE := loader-$(1).bin loader-$(1).uImage
+  COMPILE/loader-$(1).bin := loader-okli-compile
+  COMPILE/loader-$(1).uImage := append-loader-okli $(1) | pad-to 64k | lzma | \
+       uImage lzma
+  IMAGES += factory.bin
+  IMAGE/factory.bin := append-squashfs-fakeroot-be | pad-to $$$$(BLOCKSIZE) | \
+       append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | \
+       check-size | engenius-tar-gz $$$$(ENGENIUS_IMGNAME)
+endef
index 190f477b7ef803d413e618eaf44487571022c619..ccc9ff2ac288e1c8247669a35ebcf8ec0e0db24c 100644 (file)
@@ -1,12 +1,12 @@
 include ./common-buffalo.mk
+include ./common-engenius.mk
 include ./common-netgear.mk
 include ./common-tp-link.mk
 include ./common-yuncore.mk
 
 DEVICE_VARS += ADDPATTERN_ID ADDPATTERN_VERSION
 DEVICE_VARS += SEAMA_SIGNATURE SEAMA_MTDBLOCK
-DEVICE_VARS += KERNEL_INITRAMFS_PREFIX
-DEVICE_VARS += DAP_SIGNATURE ENGENIUS_IMGNAME
+DEVICE_VARS += KERNEL_INITRAMFS_PREFIX DAP_SIGNATURE
 DEVICE_VARS += EDIMAX_HEADER_MAGIC EDIMAX_HEADER_MODEL
 
 define Build/add-elecom-factory-initramfs
@@ -69,24 +69,6 @@ define Build/edimax-headers
        rm -rf $@.uImage $@.rootfs
 endef
 
-# This needs to make /tmp/_sys/sysupgrade.tgz an empty file prior to
-# sysupgrade, as otherwise it will implant the old configuration from
-# OEM firmware when writing rootfs from factory.bin
-define Build/engenius-tar-gz
-       -[ -f "$@" ] && \
-       mkdir -p $@.tmp && \
-       touch $@.tmp/failsafe.bin && \
-       echo '#!/bin/sh' > $@.tmp/before-upgrade.sh && \
-       echo ': > /tmp/_sys/sysupgrade.tgz' >> $@.tmp/before-upgrade.sh && \
-       $(CP) $(KDIR)/loader-$(DEVICE_NAME).uImage \
-               $@.tmp/openwrt-$(word 1,$(1))-uImage-lzma.bin && \
-       $(CP) $@ $@.tmp/openwrt-$(word 1,$(1))-root.squashfs && \
-       $(TAR) -cp --numeric-owner --owner=0 --group=0 --mode=a-s --sort=name \
-               $(if $(SOURCE_DATE_EPOCH),--mtime="@$(SOURCE_DATE_EPOCH)") \
-               -C $@.tmp . | gzip -9n > $@ && \
-       rm -rf $@.tmp
-endef
-
 define Build/mkdapimg2
        $(STAGING_DIR_HOST)/bin/mkdapimg2 \
                -i $@ -o $@.new \
@@ -974,20 +956,6 @@ define Device/embeddedwireless_dorin
 endef
 TARGET_DEVICES += embeddedwireless_dorin
 
-define Device/engenius_loader_okli
-  DEVICE_VENDOR := EnGenius
-  KERNEL := kernel-bin | append-dtb | lzma | uImage lzma -M 0x4f4b4c49
-  LOADER_TYPE := bin
-  COMPILE := loader-$(1).bin loader-$(1).uImage
-  COMPILE/loader-$(1).bin := loader-okli-compile
-  COMPILE/loader-$(1).uImage := append-loader-okli $(1) | pad-to 64k | lzma | \
-       uImage lzma
-  IMAGES += factory.bin
-  IMAGE/factory.bin := append-squashfs-fakeroot-be | pad-to $$$$(BLOCKSIZE) | \
-       append-kernel | pad-to $$$$(BLOCKSIZE) | append-rootfs | pad-rootfs | \
-       check-size | engenius-tar-gz $$$$(ENGENIUS_IMGNAME)
-endef
-
 define Device/engenius_eap300-v2
   $(Device/engenius_loader_okli)
   SOC := ar9341
@@ -999,17 +967,6 @@ define Device/engenius_eap300-v2
 endef
 TARGET_DEVICES += engenius_eap300-v2
 
-define Device/engenius_eap350-v1
-  $(Device/engenius_loader_okli)
-  SOC := ar7242
-  DEVICE_MODEL := EAP350
-  DEVICE_VARIANT := v1
-  IMAGE_SIZE := 4864k
-  LOADER_FLASH_OFFS := 0x1b0000
-  ENGENIUS_IMGNAME := senao-eap350
-endef
-TARGET_DEVICES += engenius_eap350-v1
-
 define Device/engenius_eap600
   $(Device/engenius_loader_okli)
   SOC := ar9344
@@ -1046,17 +1003,6 @@ define Device/engenius_ecb1750
 endef
 TARGET_DEVICES += engenius_ecb1750
 
-define Device/engenius_ecb350-v1
-  $(Device/engenius_loader_okli)
-  SOC := ar7242
-  DEVICE_MODEL := ECB350
-  DEVICE_VARIANT := v1
-  IMAGE_SIZE := 4864k
-  LOADER_FLASH_OFFS := 0x1b0000
-  ENGENIUS_IMGNAME := senao-ecb350
-endef
-TARGET_DEVICES += engenius_ecb350-v1
-
 define Device/engenius_ecb600
   $(Device/engenius_loader_okli)
   SOC := ar9344
@@ -1067,18 +1013,6 @@ define Device/engenius_ecb600
 endef
 TARGET_DEVICES += engenius_ecb600
 
-define Device/engenius_enh202-v1
-  $(Device/engenius_loader_okli)
-  SOC := ar7240
-  DEVICE_MODEL := ENH202
-  DEVICE_VARIANT := v1
-  DEVICE_PACKAGES := rssileds
-  IMAGE_SIZE := 4864k
-  LOADER_FLASH_OFFS := 0x1b0000
-  ENGENIUS_IMGNAME := senao-enh202
-endef
-TARGET_DEVICES += engenius_enh202-v1
-
 define Device/engenius_ens202ext-v1
   $(Device/engenius_loader_okli)
   SOC := ar9341
index 83c34d718bfd0be744306b961f1c8145faf218ee..36d2818ad5133812e435e7bd3cc9c918833d71f8 100644 (file)
@@ -1,4 +1,5 @@
 include ./common-buffalo.mk
+include ./common-engenius.mk
 
 define Device/buffalo_whr-g301n
   $(Device/buffalo_common)
@@ -30,6 +31,40 @@ define Device/dlink_dir-615-e4
 endef
 TARGET_DEVICES += dlink_dir-615-e4
 
+define Device/engenius_eap350-v1
+  $(Device/engenius_loader_okli)
+  SOC := ar7242
+  DEVICE_MODEL := EAP350
+  DEVICE_VARIANT := v1
+  IMAGE_SIZE := 4864k
+  LOADER_FLASH_OFFS := 0x1b0000
+  ENGENIUS_IMGNAME := senao-eap350
+endef
+TARGET_DEVICES += engenius_eap350-v1
+
+define Device/engenius_ecb350-v1
+  $(Device/engenius_loader_okli)
+  SOC := ar7242
+  DEVICE_MODEL := ECB350
+  DEVICE_VARIANT := v1
+  IMAGE_SIZE := 4864k
+  LOADER_FLASH_OFFS := 0x1b0000
+  ENGENIUS_IMGNAME := senao-ecb350
+endef
+TARGET_DEVICES += engenius_ecb350-v1
+
+define Device/engenius_enh202-v1
+  $(Device/engenius_loader_okli)
+  SOC := ar7240
+  DEVICE_MODEL := ENH202
+  DEVICE_VARIANT := v1
+  DEVICE_PACKAGES := rssileds
+  IMAGE_SIZE := 4864k
+  LOADER_FLASH_OFFS := 0x1b0000
+  ENGENIUS_IMGNAME := senao-enh202
+endef
+TARGET_DEVICES += engenius_enh202-v1
+
 define Device/pqi_air-pen
   SOC := ar9330
   DEVICE_VENDOR := PQI
index 26926b6f64b53814c08052fbe952b22479469b09..f0b4acf0662ee0df824ca36f20fcfb889e730fef 100755 (executable)
@@ -21,6 +21,14 @@ tplink,tl-wr941-v4)
        ucidef_set_led_switch "lan3" "LAN3" "green:lan3" "switch0" "0x08"
        ucidef_set_led_switch "lan4" "LAN4" "green:lan4" "switch0" "0x10"
        ;;
+engenius,enh202-v1)
+       ucidef_set_led_switch "lan" "LAN" "amber:lan" "switch0" "0x10"
+       ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth0"
+       ucidef_set_rssimon "wlan0" "200000" "1"
+       ucidef_set_led_rssi "rssilow" "RSSILOW" "red:rssilow" "wlan0" "1"  "100"
+       ucidef_set_led_rssi "rssimedium" "RSSIMEDIUM" "amber:rssimedium" "wlan0" "33" "100"
+       ucidef_set_led_rssi "rssihigh" "RSSIHIGH" "green:rssihigh" "wlan0" "67" "100"
+       ;;
 netgear,wnr1000-v2|\
 netgear,wnr2000-v3)
        ucidef_set_led_netdev "wan-amber" "WAN (amber)" "amber:wan" "eth0"
index cbcdbe9a895c7d8e9f0a9413a936cc4a24099aa9..ce95bf703709ec1410bdc5c63a53906390ef659a 100755 (executable)
@@ -28,6 +28,8 @@ ath79_setup_interfaces()
                ucidef_add_switch "switch0" \
                        "0@eth1" "1:lan" "2:lan" "3:lan" "4:lan"
                ;;
+       engenius,eap350-v1|\
+       engenius,ecb350-v1|\
        pqi,air-pen|\
        tplink,tl-mr10u|\
        tplink,tl-mr3020-v1|\
@@ -51,6 +53,11 @@ ath79_setup_interfaces()
        tplink,tl-wr802n-v2)
                ucidef_set_interface_lan "eth0"
                ;;
+       engenius,enh202-v1)
+               ucidef_set_interface_wan "eth0"
+               ucidef_add_switch "switch0" \
+                       "0@eth1" "4:lan:1"
+               ;;
        tplink,tl-mr3220-v1|\
        tplink,tl-mr3420-v1|\
        tplink,tl-mr3420-v3|\
@@ -99,6 +106,9 @@ ath79_setup_macs()
                wan_mac=$(mtd_get_mac_ascii "nvram" "wan_mac")
                label_mac=$wan_mac
                ;;
+       engenius,enh202-v1)
+               label_mac=$(cat /sys/class/ieee80211/phy0/macaddress)
+               ;;
        tplink,tl-wr941-v2|\
        tplink,tl-wr941n-v7-cn)
                base_mac=$(mtd_get_mac_binary u-boot 0x1fc00)
index 6ae2dc5f94817e83051fb97cede68c00f71f48c5..ffbc46afd0151b652244c5d366ae14b283bc1191 100644 (file)
@@ -10,6 +10,9 @@ case "$FIRMWARE" in
 "ath9k-eeprom-pci-0000:00:00.0.bin")
        case $board in
        buffalo,whr-g301n|\
+       engenius,eap350-v1|\
+       engenius,ecb350-v1|\
+       engenius,enh202-v1|\
        tplink,tl-wa701nd-v1|\
        tplink,tl-wa730re-v1|\
        tplink,tl-wa801nd-v1|\