aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ipq40xx/base-files
diff options
context:
space:
mode:
authorRobert Marko <robimarko@gmail.com>2021-10-09 20:13:25 +0200
committerHauke Mehrtens <hauke@hauke-m.de>2021-11-28 17:19:52 +0100
commit3ad229db0b0ed8538eadcdc2a1c3faf964f239be (patch)
treec21ed618c52063673af09c8ba7a18bef57de68d2 /target/linux/ipq40xx/base-files
parentf2c4064ecb76bca69d4ce3fbc52209992f2334dc (diff)
downloadupstream-3ad229db0b0ed8538eadcdc2a1c3faf964f239be.tar.gz
upstream-3ad229db0b0ed8538eadcdc2a1c3faf964f239be.tar.bz2
upstream-3ad229db0b0ed8538eadcdc2a1c3faf964f239be.zip
ipq40xx: add support for MikroTik hAP ac3
This adds support for the MikroTik RouterBOARD RBD53iG-5HacD2HnD (hAP ac³), a indoor dual band, dual-radio 802.11ac wireless AP with external omnidirectional antennae, USB port, five 10/100/1000 Mbps Ethernet ports and PoE passthrough. See https://mikrotik.com/product/hap_ac3 for more info. Specifications: - SoC: Qualcomm Atheros IPQ4019 - RAM: 256 MB - Storage: 16 MB NOR + 128 MB NAND - Wireless: · Built-in IPQ4019 (SoC) 802.11b/g/n 2x2:2, 3 dBi antennae · Built-in IPQ4019 (SoC) 802.11a/n/ac 2x2:2, 5.5 dBi antennae - Ethernet: Built-in IPQ4019 (SoC, QCA8075) , 5x 1000/100/10 port, passive PoE in, PoE passtrough on port 5 - 1x USB Type A port Installation: 1. Boot the initramfs image via TFTP 2. Run "cat /proc/mtd" and look for "ubi" partition mtd device number, ex. "mtd1" 3. Use ubiformat to remove MikroTik specific UBI volumes * Detach the UBI partition by running: "ubidetach -d 0" * Format the partition by running: "ubiformat /dev/mtdN -y" Replace mtdN with the correct mtd index from step 2. 3. Flash the sysupgrade image using "sysupgrade -n" Signed-off-by: Robert Marko <robimarko@gmail.com> Tested-by: Mark Birss <markbirss@gmail.com> Tested-by: Michael Büchler <michael.buechler@posteo.net> Tested-by: Alex Tomkins <tomkins@darkzone.net>
Diffstat (limited to 'target/linux/ipq40xx/base-files')
-rw-r--r--target/linux/ipq40xx/base-files/etc/board.d/01_leds8
-rw-r--r--target/linux/ipq40xx/base-files/etc/board.d/02_network4
-rw-r--r--target/linux/ipq40xx/base-files/etc/board.d/03_gpio_switches3
-rw-r--r--target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata6
-rw-r--r--target/linux/ipq40xx/base-files/lib/upgrade/platform.sh21
5 files changed, 39 insertions, 3 deletions
diff --git a/target/linux/ipq40xx/base-files/etc/board.d/01_leds b/target/linux/ipq40xx/base-files/etc/board.d/01_leds
index b2545f41e1..8942ad2000 100644
--- a/target/linux/ipq40xx/base-files/etc/board.d/01_leds
+++ b/target/linux/ipq40xx/base-files/etc/board.d/01_leds
@@ -45,6 +45,14 @@ engenius,ens620ext)
ucidef_set_led_netdev "lan1" "LAN1" "green:lan1" "eth0"
ucidef_set_led_netdev "lan2" "LAN2" "green:lan2" "eth1"
;;
+mikrotik,hap-ac3)
+ ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth1"
+ ucidef_set_led_switch "lan1" "LAN1" "green:lan1" "switch0" "0x10"
+ ucidef_set_led_switch "lan2" "LAN2" "green:lan2" "switch0" "0x08"
+ ucidef_set_led_switch "lan3" "LAN3" "green:lan3" "switch0" "0x04"
+ ucidef_set_led_switch "lan4" "LAN4" "green:lan4" "switch0" "0x02"
+ ucidef_set_led_gpio "poe" "POE" "red:poe" "452" "0"
+ ;;
mikrotik,sxtsq-5-ac)
ucidef_set_rssimon "wlan0" "200000" "1"
ucidef_set_led_rssi "rssilow" "rssilow" "green:rssilow" "wlan0" "1" "100"
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 5d123109a2..7ccdf97a60 100644
--- a/target/linux/ipq40xx/base-files/etc/board.d/02_network
+++ b/target/linux/ipq40xx/base-files/etc/board.d/02_network
@@ -50,6 +50,7 @@ ipq40xx_setup_interfaces()
;;
asus,rt-ac58u|\
mikrotik,hap-ac2|\
+ mikrotik,hap-ac3|\
p2w,r619ac-64m|\
p2w,r619ac-128m|\
zyxel,nbg6617)
@@ -182,7 +183,8 @@ ipq40xx_setup_macs()
wan_mac=$(mtd_get_mac_ascii devinfo hw_mac_addr)
lan_mac=$(macaddr_add "$wan_mac" 1)
;;
- mikrotik,hap-ac2)
+ mikrotik,hap-ac2|\
+ mikrotik,hap-ac3)
wan_mac=$(cat /sys/firmware/mikrotik/hard_config/mac_base)
lan_mac=$(macaddr_add $wan_mac 1)
label_mac="$wan_mac"
diff --git a/target/linux/ipq40xx/base-files/etc/board.d/03_gpio_switches b/target/linux/ipq40xx/base-files/etc/board.d/03_gpio_switches
index 9029eb3a82..4036e5356f 100644
--- a/target/linux/ipq40xx/base-files/etc/board.d/03_gpio_switches
+++ b/target/linux/ipq40xx/base-files/etc/board.d/03_gpio_switches
@@ -18,6 +18,9 @@ cilab,meshpoint-one)
compex,wpj428)
ucidef_add_gpio_switch "sim_card_select" "SIM card select" "3" "0"
;;
+mikrotik,hap-ac3)
+ ucidef_add_gpio_switch "poe_passtrough" "PoE Passthrough" "452" "0"
+ ;;
esac
board_config_flush
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 f90c558015..1e1b445924 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
@@ -149,7 +149,8 @@ case "$FIRMWARE" in
caldata_valid "202f" || caldata_extract "ART" 0x1000 0x2f20
ath10k_patch_mac $(macaddr_add $(get_mac_binary "/sys/bus/i2c/devices/0-0050/eeprom" 0x66) 2)
;;
- mikrotik,hap-ac2)
+ mikrotik,hap-ac2 |\
+ mikrotik,hap-ac3)
wlan_data="/sys/firmware/mikrotik/hard_config/wlan_data"
( [ -f "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data" 0x0 0x2f20 ) || \
( [ -d "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data/data_0" 0x0 0x2f20 )
@@ -266,7 +267,8 @@ case "$FIRMWARE" in
caldata_valid "202f" || caldata_extract "ART" 0x5000 0x2f20
ath10k_patch_mac $(macaddr_add $(get_mac_binary "/sys/bus/i2c/devices/0-0050/eeprom" 0x66) 3)
;;
- mikrotik,hap-ac2|\
+ mikrotik,hap-ac2 |\
+ mikrotik,hap-ac3 |\
mikrotik,sxtsq-5-ac)
wlan_data="/sys/firmware/mikrotik/hard_config/wlan_data"
( [ -f "$wlan_data" ] && caldata_sysfsload_from_file "$wlan_data" 0x8000 0x2f20 ) || \
diff --git a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh
index 605b1e7881..02833ebc3d 100644
--- a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh
@@ -55,6 +55,24 @@ zyxel_do_upgrade() {
fi
}
+platform_do_upgrade_mikrotik_nand() {
+ local fw_mtd=$(find_mtd_part kernel)
+ fw_mtd="${fw_mtd/block/}"
+ [ -n "$fw_mtd" ] || return
+
+ local board_dir=$(tar tf "$1" | grep -m 1 '^sysupgrade-.*/$')
+ board_dir=${board_dir%/}
+ [ -n "$board_dir" ] || return
+
+ local kernel_len=$(tar xf "$1" ${board_dir}/kernel -O | wc -c)
+ [ -n "$kernel_len" ] || return
+
+ tar xf "$1" ${board_dir}/kernel -O | ubiformat "$fw_mtd" -y -S $kernel_len -f -
+
+ CI_KERNPART="none"
+ nand_do_upgrade "$1"
+}
+
platform_do_upgrade() {
case "$(board_name)" in
8dev,jalapeno |\
@@ -119,6 +137,9 @@ platform_do_upgrade() {
[ "$(rootfs_type)" = "tmpfs" ] && mtd erase firmware
default_do_upgrade "$1"
;;
+ mikrotik,hap-ac3)
+ platform_do_upgrade_mikrotik_nand "$1"
+ ;;
netgear,rbr50 |\
netgear,rbs50 |\
netgear,srr60 |\