ath79: add support for Bluesocket BSAP1880 board
authorDaniel Gimpelevich <daniel@gimpelevich.san-francisco.ca.us>
Sat, 1 Sep 2018 02:28:35 +0000 (19:28 -0700)
committerPetr Štetiar <ynezz@true.cz>
Wed, 17 Jul 2019 20:59:29 +0000 (22:59 +0200)
This board was used in dual-band 802.11n enterprise access points, models
BSAP-1800v2 and BSAP-1840, introduced in 2010 by Bluesocket, which was
acquired by Adtran in 2011, who has now EOL'ed them. They differed only in
that the BSAP-1840's antennae were detachable, while the BSAP-1800v2's were
inside the case. They have an external RJ-45 console port, which works with
standard Cisco 72-3383-01 console cables.

Specification:
- System-On-Chip: AR7161
- CPU/Speed: 600 MHz
- Flash-Chip: Macronix MX25L12845E
- Flash size: 16 MiB
- RAM: 64 MiB
- Wireless No1: Lite-On WN2601A card: AR9160/AR9103 2.4GHz 802.11bgn
- Wireless No2: Lite-On WN2502A card: AR9160/AR9106 5GHz 802.11an
- PHY: Vitesse VSC8601, Rev. B

Installation:
1. Connect to the serial console using a terminal that supports YMODEM at
   115200 bps, 8 data bits, no parity, 1 stop bit
2. Interrupt the bootloader using its password, which is: r00t
3. Issue the "fis init" command, confirming if prompted
4. Look at the length of the openwrt-ath79-generic-*-squashfs-kernel.bin
   file, and substitute it below, instead of where I have "LeNgTh"
5. Issue the following command, and upload this file using YMODEM protocol
   load -r -v -b 0x80060000 -m ymodem
6. Issue the following commands, substituting as mentioned above:
   fis create -b 0x80060000 -l LeNgTh vmlinux_2
   load -r -v -b 0x80100000 -m ymodem
7. Using YMODEM, upload openwrt-ath79-generic-*-squashfs-rootfs.bin
8. Issue the "fis free" command, and for the first range in its response,
   use a hexadecimal calculator to subtract the start from the end in order
   to substitute it below, with the leading "0x" to specify it in
   hexadecimal, instead of where I have "LeNgTh"
9. Issue the following commands, substituting as mentioned above:
   fis create -b 0x80100000 -l LeNgTh -e 0 -r 0 rootfs
   reset
10.Wait for the status LED to go solid green

Tested-by: Brian Gonyer <bgonyer@gmail.com>
Signed-off-by: Daniel Gimpelevich <daniel@gimpelevich.san-francisco.ca.us>
[fixed obsolete $ARGV in platform_do_upgrade]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
target/linux/ath79/base-files/etc/board.d/02_network
target/linux/ath79/base-files/etc/board.d/03_gpio_switches
target/linux/ath79/base-files/etc/hotplug.d/ieee80211/10_fix_wifi_mac
target/linux/ath79/base-files/lib/upgrade/platform.sh
target/linux/ath79/dts/ar7161_adtran_bsap1800-v2.dts [new file with mode: 0644]
target/linux/ath79/dts/ar7161_adtran_bsap1840.dts [new file with mode: 0644]
target/linux/ath79/dts/ar7161_adtran_bsap1880.dtsi [new file with mode: 0644]
target/linux/ath79/image/generic.mk

index f7cac3e30077cbd6a94e43640063b3707db1336e..56650c3f6be40a98b5b66b89a9709f4fe6487488 100755 (executable)
@@ -9,6 +9,8 @@ ath79_setup_interfaces()
        local board="$1"
 
        case "$board" in
+       adtran,bsap1800-v2|\
+       adtran,bsap1840|\
        aruba,ap-105|\
        avm,fritz300e|\
        devolo,dvl1200i|\
@@ -269,6 +271,11 @@ ath79_setup_macs()
        local board="$1"
 
        case "$board" in
+       adtran,bsap1800-v2|\
+       adtran,bsap1840)
+               fconfig -s -w -d $(find_mtd_part "RedBoot config") -n boot_cntb -x 0
+               lan_mac=$(mtd_get_mac_binary "Board data" 2)
+               ;;
        avm,fritz300e)
                lan_mac=$(fritz_tffs -n maca -i $(find_mtd_part "tffs (1)"))
                ;;
index 7f40285daf7c94f763b53222794b50adbf19c10f..f588b29956e821e85f08e6160315e47a8f472ff3 100755 (executable)
@@ -10,6 +10,21 @@ board_config_update
 board=$(board_name)
 
 case "$board" in
+adtran,bsap1800-v2|\
+adtran,bsap1840)
+       ucidef_add_gpio_switch "wifi1_ext_a" "5GHz External Antenna A" "489" "1"
+       ucidef_add_gpio_switch "wifi1_int_a" "5GHz Internal Antenna A" "493"
+       ucidef_add_gpio_switch "wifi1_ext_b" "5GHz External Antenna B" "494" "1"
+       ucidef_add_gpio_switch "wifi1_int_b" "5GHz Internal Antenna B" "495"
+       ucidef_add_gpio_switch "wifi1_ext_c" "5GHz External Antenna C" "496" "1"
+       ucidef_add_gpio_switch "wifi1_int_c" "5GHz Internal Antenna C" "497"
+       ucidef_add_gpio_switch "wifi0_ext_a" "2.4GHz External Antenna A" "505" "1"
+       ucidef_add_gpio_switch "wifi0_int_a" "2.4GHz Internal Antenna A" "506"
+       ucidef_add_gpio_switch "wifi0_ext_b" "2.4GHz External Antenna B" "507" "1"
+       ucidef_add_gpio_switch "wifi0_int_b" "2.4GHz Internal Antenna B" "508"
+       ucidef_add_gpio_switch "wifi0_ext_c" "2.4GHz External Antenna C" "509" "1"
+       ucidef_add_gpio_switch "wifi0_int_c" "2.4GHz Internal Antenna C" "510"
+       ;;
 comfast,cf-e5)
        ucidef_add_gpio_switch "lte_power" "LTE Power" "14" "1"
        ucidef_add_gpio_switch "lte_wakeup" "LTE Wakeup" "11" "1"
index bdb8b71ff72a60b013f0235a30068750c3f73640..bf3e14aa9c7da8de9e2741d6eaca1e69e3be846f 100644 (file)
@@ -13,6 +13,10 @@ PHYNBR=${DEVPATH##*/phy}
 board=$(board_name)
 
 case "$board" in
+       adtran,bsap1800-v2|\
+       adtran,bsap1840)
+               macaddr_add "$(mtd_get_mac_binary 'Board data' 2)" $(($PHYNBR * 8 + 1)) > /sys${DEVPATH}/macaddress
+               ;;
        iodata,wn-ag300dgr)
                # There is no eeprom data for 5 GHz wlan in "art" partition
                # which would allow to patch the macaddress
index 8c5a8e52fe28a2758010acc31727add542f2762d..3aff5dee14f1d083b5e0848cbf6eb0692177e581 100644 (file)
@@ -40,6 +40,10 @@ platform_do_upgrade() {
        local board=$(board_name)
 
        case "$board" in
+       adtran,bsap1800-v2|\
+       adtran,bsap1840)
+               redboot_fis_do_upgrade "$1" vmlinux_2
+               ;;
        jjplus,ja76pf2)
                redboot_fis_do_upgrade "$1" linux
                ;;
diff --git a/target/linux/ath79/dts/ar7161_adtran_bsap1800-v2.dts b/target/linux/ath79/dts/ar7161_adtran_bsap1800-v2.dts
new file mode 100644 (file)
index 0000000..1745ac7
--- /dev/null
@@ -0,0 +1,9 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "ar7161_adtran_bsap1880.dtsi"
+
+/ {
+       model = "Adtran/Bluesocket BSAP-1800 v2";
+       compatible = "adtran,bsap1800-v2", "qca,ar7161";
+};
diff --git a/target/linux/ath79/dts/ar7161_adtran_bsap1840.dts b/target/linux/ath79/dts/ar7161_adtran_bsap1840.dts
new file mode 100644 (file)
index 0000000..38b87a1
--- /dev/null
@@ -0,0 +1,9 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include "ar7161_adtran_bsap1880.dtsi"
+
+/ {
+       model = "Adtran/Bluesocket BSAP-1840";
+       compatible = "adtran,bsap1840", "qca,ar7161";
+};
diff --git a/target/linux/ath79/dts/ar7161_adtran_bsap1880.dtsi b/target/linux/ath79/dts/ar7161_adtran_bsap1880.dtsi
new file mode 100644 (file)
index 0000000..ba9b588
--- /dev/null
@@ -0,0 +1,99 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+#include "ar7100.dtsi"
+
+/ {
+       chosen {
+               bootargs = "console=ttyS0,115200n8";
+       };
+
+       aliases {
+               led-boot = &led_green_status;
+               led-failsafe = &led_yellow_status;
+               led-running = &led_green_status;
+               led-upgrade = &led_yellow_status;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               wlan5g {
+                       label = "bluesocket:green:wifi5g";
+                       gpios = <&gpio 8 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "phy1tpt";
+               };
+
+               wlan2g {
+                       label = "bluesocket:green:wifi2g";
+                       gpios = <&gpio 7 GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "phy0tpt";
+               };
+
+               led_green_status: green_status {
+                       label = "bluesocket:green:status";
+                       gpios = <&gpio 5 GPIO_ACTIVE_LOW>;
+               };
+
+               led_yellow_status: yellow_status {
+                       label = "bluesocket:yellow:status";
+                       gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       keys {
+               compatible = "gpio-keys";
+
+               reset {
+                       label = "reset";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&gpio 6 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <60>;
+               };
+       };
+};
+
+&mdio0 {
+       status = "okay";
+
+       phy-mask = <0x1>;
+
+       phy0: ethernet-phy@0 {
+               reg = <0>;
+       };
+};
+
+&eth0 {
+       status = "okay";
+
+       phy-mode = "rgmii-id";
+       phy-handle = <&phy0>;
+};
+
+&pcie0 {
+       status = "okay";
+};
+
+&spi {
+       status = "okay";
+       num-cs = <1>;
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <25000000>;
+
+               partitions {
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       compatible = "ecoscentric,redboot-fis-partitions";
+               };
+       };
+};
+
+&uart {
+       status = "okay";
+};
index 4662383541e328747bb240b3480934119c589689..3c679fb480fe4930996b7b8acde2ec0cca57ac30 100644 (file)
@@ -85,6 +85,32 @@ define Device/8dev_carambola2
 endef
 TARGET_DEVICES += 8dev_carambola2
 
+define Device/adtran_bsap1880
+  ATH_SOC := ar7161
+  DEVICE_VENDOR := Adtran/Bluesocket
+  DEVICE_PACKAGES += -swconfig -uboot-envtools fconfig
+  KERNEL := kernel-bin | append-dtb | lzma
+  KERNEL_INITRAMFS := kernel-bin | append-dtb
+  IMAGE_SIZE := 11200k
+  IMAGES += kernel.bin rootfs.bin
+  IMAGE/kernel.bin := append-kernel | pad-to $$$$(BLOCKSIZE)
+  IMAGE/rootfs.bin := append-rootfs | pad-rootfs
+  IMAGE/sysupgrade.bin := append-rootfs | pad-rootfs | combined-image | append-metadata | check-size $$$$(IMAGE_SIZE)
+endef
+
+define Device/adtran_bsap1800-v2
+  $(Device/adtran_bsap1880)
+  DEVICE_MODEL := BSAP-1800
+  DEVICE_VARIANT := v2
+endef
+TARGET_DEVICES += adtran_bsap1800-v2
+
+define Device/adtran_bsap1840
+  $(Device/adtran_bsap1880)
+  DEVICE_MODEL := BSAP-1840
+endef
+TARGET_DEVICES += adtran_bsap1840
+
 define Device/aruba_ap-105
   ATH_SOC := ar7161
   DEVICE_VENDOR := Aruba