From c568c6dc09f0a847097fb9697369114a251f096d Mon Sep 17 00:00:00 2001 From: Piotr Dymacz Date: Tue, 29 Jan 2019 18:12:51 +0100 Subject: ipq40xx: add support for ALFA Network AP120C-AC ALFA Network AP120C-AC is a dual-band ceiling AP, based on Qualcomm IPQ4018 + QCA8075 platform. Specification: - Qualcomm IPQ4018 (717 MHz) - 256 MB of RAM (DDR3) - 16 MB (SPI NOR) + 128 MB (SPI NAND) of flash - 2x Gbps Ethernet, with 802.3af PoE support in one port - 2T2R 2.4/5 GHz (IPQ4018), with ext. FEMs (QFE1952, QFE1922) - 3x U.FL connectors - 1x 1.8 dBi (Bluetooth) and 2x 3/5 dBi dual-band (Wi-Fi) antennas - Atmel/Microchip AT97SC3205T TPM module (I2C bus) - TI CC2540 Bluetooth LE module (USB 2.0 bus) - 4x LED (all driven by GPIO) - 1x button (reset) - 1x USB 2.0 (optional, not installed in indoor version) - DC jack for main power input (12 V) - UART header available on PCB (2.0 mm pitch) Flash instruction: 1. This board uses dual-image feature (128 MB NAND is divided into two 64 MB partitions: 'rootfs1' and 'rootfs2'). 2. Before update, make sure your device is running firmware no older than v1.1 (previous versions have incompatible U-Boot). 3. Use 'factory' image in vendor GUI or for sysupgrade tool, without preserving settings. Signed-off-by: Piotr Dymacz --- target/linux/ipq40xx/base-files/etc/board.d/01_leds | 3 +++ target/linux/ipq40xx/base-files/etc/board.d/02_network | 3 ++- .../base-files/etc/hotplug.d/firmware/11-ath10k-caldata | 2 ++ target/linux/ipq40xx/base-files/etc/init.d/bootcount | 14 ++++++++++++++ target/linux/ipq40xx/base-files/lib/upgrade/platform.sh | 13 ++++++++++++- 5 files changed, 33 insertions(+), 2 deletions(-) create mode 100755 target/linux/ipq40xx/base-files/etc/init.d/bootcount (limited to 'target/linux/ipq40xx/base-files') 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 9105bf2452..2fca1cbc9f 100755 --- a/target/linux/ipq40xx/base-files/etc/board.d/01_leds +++ b/target/linux/ipq40xx/base-files/etc/board.d/01_leds @@ -11,6 +11,9 @@ board=$(board_name) boardname="${board##*,}" case "$board" in +alfa-network,ap120c-ac) + ucidef_set_led_netdev "wan" "WAN" "${boardname}:amber:wan" "eth1" + ;; asus,rt-ac58u) ucidef_set_led_wlan "wlan2g" "WLAN2G" "${boardname}:blue:wlan2G" "phy0tpt" ucidef_set_led_wlan "wlan5g" "WLAN5G" "${boardname}:blue:wlan5G" "phy1tpt" 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 43be592071..b28f5ef12c 100755 --- a/target/linux/ipq40xx/base-files/etc/board.d/02_network +++ b/target/linux/ipq40xx/base-files/etc/board.d/02_network @@ -12,7 +12,8 @@ ipq40xx_setup_interfaces() local board="$1" case "$board" in - 8dev,jalapeno) + 8dev,jalapeno|\ + alfa-network,ap120c-ac) ucidef_set_interfaces_lan_wan "eth0" "eth1" ;; asus,map-ac2200|\ 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 21d9063fd4..718224f1e0 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 @@ -119,6 +119,7 @@ case "$FIRMWARE" in "ath10k/pre-cal-ahb-a000000.wifi.bin") case "$board" in 8dev,jalapeno |\ + alfa-network,ap120c-ac |\ glinet,gl-b1300 |\ linksys,ea6350v3 |\ qcom,ap-dk01.1-c1) @@ -160,6 +161,7 @@ case "$FIRMWARE" in "ath10k/pre-cal-ahb-a800000.wifi.bin") case "$board" in 8dev,jalapeno |\ + alfa-network,ap120c-ac |\ glinet,gl-b1300 |\ linksys,ea6350v3 |\ qcom,ap-dk01.1-c1) diff --git a/target/linux/ipq40xx/base-files/etc/init.d/bootcount b/target/linux/ipq40xx/base-files/etc/init.d/bootcount new file mode 100755 index 0000000000..604f88c396 --- /dev/null +++ b/target/linux/ipq40xx/base-files/etc/init.d/bootcount @@ -0,0 +1,14 @@ +#!/bin/sh /etc/rc.common + +START=99 + +start() { + . /lib/functions.sh + + case $(board_name) in + alfa-network,ap120c-ac) + [ -n "$(fw_printenv bootcount changed 2>/dev/null)" ] &&\ + echo -e "bootcount\nchanged\n" | /usr/sbin/fw_setenv -s - + ;; + esac +} diff --git a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh index f6bc173a76..b92a2bfe9f 100644 --- a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh @@ -46,7 +46,8 @@ zyxel_do_upgrade() { platform_do_upgrade() { case "$(board_name)" in - 8dev,jalapeno) + 8dev,jalapeno |\ + alfa-network,ap120c-ac) nand_do_upgrade "$ARGV" ;; asus,map-ac2200) @@ -81,6 +82,16 @@ platform_do_upgrade() { platform_nand_pre_upgrade() { case "$(board_name)" in + alfa-network,ap120c-ac) + part="$(awk -F 'ubi.mtd=' '{printf $2}' /proc/cmdline | sed -e 's/ .*$//')" + if [ "$part" = "rootfs1" ]; then + fw_setenv active 2 || exit 1 + CI_UBIPART="rootfs2" + else + fw_setenv active 1 || exit 1 + CI_UBIPART="rootfs1" + fi + ;; asus,rt-ac58u) CI_UBIPART="UBI_DEV" CI_KERNPART="linux" -- cgit v1.2.3