ath79: add support for Aerohive HiveAP 121
authorDavid Bauer <mail@david-bauer.net>
Sun, 27 Oct 2019 14:49:18 +0000 (15:49 +0100)
committerDavid Bauer <mail@david-bauer.net>
Sun, 27 Oct 2019 17:03:56 +0000 (18:03 +0100)
This commit adds support for the Aerohive HiveAP-121. It was previously
already supported in the ar71xx subtarget.

The following is copied from the commit which added ar71xx support:

Specification:
- SoC: Atheros AR9344-BC2A at 560MHz
- WiFi 1: 2.4GHz Atheros AR9340? - SoC
- WiFi 2: 5.0GHz Atheros AR9382-AL1A
- Memory: 128MB from 2x Nanya NT5TU32M16DG-AC
- SPI: 1MB Macronix MX25L8006E
- NAND: 128MB Hynix H27U1G8F2BTR-BC
- Ethernet: Atheros AR8035-A
- USB: 1x 2.0
- TPM: Atmel SC3204

Flashing:
1. Hook into UART (9600 baud) and enter U-Boot. You may need to enter
a password of administrator or AhNf?d@ta06 if prompted.
2. Once in U-Boot, download and flash LEDE factory image over tftp:

dhcp;
setenv serverip tftp-server-ip;
tftpboot 0x81000000 lede-ar71xx-nand-hiveap-121-squashfs-factory.bin;
nand erase 0x800000 0x800000;
nand write 0x81000000 0x800000 0x800000;
reset;

Signed-off-by: David Bauer <mail@david-bauer.net>
target/linux/ath79/dts/ar9344_aerohive_hiveap-121.dts [new file with mode: 0644]
target/linux/ath79/image/nand.mk
target/linux/ath79/nand/base-files/etc/board.d/02_network
target/linux/ath79/nand/base-files/lib/upgrade/platform.sh
target/linux/ath79/nand/config-default

diff --git a/target/linux/ath79/dts/ar9344_aerohive_hiveap-121.dts b/target/linux/ath79/dts/ar9344_aerohive_hiveap-121.dts
new file mode 100644 (file)
index 0000000..f96fe41
--- /dev/null
@@ -0,0 +1,237 @@
+// SPDX-License-Identifier: GPL-2.0
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+#include "ar9344.dtsi"
+
+/ {
+       compatible = "aerohive,hiveap-121", "qca,ar9344";
+       model = "Aerohive HiveAP 121";
+
+       aliases {
+               led-boot = &power_white;
+               led-failsafe = &power_orange;
+               led-running = &power_white;
+               led-upgrade = &power_orange;
+               label-mac-device = &eth0;
+       };
+
+       chosen {
+               bootargs = "console=ttyS0,9600";
+       };
+
+       keys {
+               compatible = "gpio-keys";
+
+               reset {
+                       label = "Reset button";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&gpio 4 GPIO_ACTIVE_LOW>;
+                       debounce-interval = <60>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               power_orange: power_orange {
+                       label = "hiveap-121:orange:power";
+                       gpios = <&gpio 14 GPIO_ACTIVE_LOW>;
+               };
+
+               power_white: power_white {
+                       label = "hiveap-121:white:power";
+                       gpios = <&gpio 21 GPIO_ACTIVE_LOW>;
+               };
+       };
+
+       i2c {
+               compatible = "i2c-gpio";
+               gpios = <&gpio 13 GPIO_ACTIVE_HIGH /* sda */
+                        &gpio 12 GPIO_ACTIVE_HIGH /* scl */
+                       >;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               tpm@29 {
+                       compatible = "atmel,at97sc3204t";
+                       reg = <0x29>;
+               };
+       };
+};
+
+&ref {
+       clock-frequency = <40000000>;
+};
+
+&uart {
+       status = "okay";
+};
+
+&gpio {
+       status = "okay";
+
+       pinctrl-names = "default";
+       pinctrl-0 = <&jtag_disable_pins>;
+
+       gpio_ext_lna0 {
+               gpio-hog;
+               gpios = <20 0>;
+               output-low;
+               line-name = "hiveap-121:ext:lna0";
+       };
+
+       gpio_ext_lna1 {
+               gpio-hog;
+               gpios = <19 0>;
+               output-low;
+               line-name = "hiveap-121:ext:lna1";
+       };
+
+       gpio_usb_power {
+               gpio-hog;
+               gpios = <15 0>;
+               output-high;
+               line-name = "hiveap-121:power:usb";
+       };
+};
+
+&usb {
+       status = "okay";
+};
+
+&usb_phy {
+       status = "okay";
+};
+
+&pcie {
+       status = "okay";
+
+       wifi@0,0 {
+               compatible = "pci168c,0030";
+               reg = <0x0000 0 0 0 0>;
+
+               mtd-mac-address = <&hw_info 0x0>;
+               mtd-mac-address-increment = <2>;
+       };
+};
+
+&spi {
+       status = "okay";
+       num-cs = <1>;
+
+       flash@0 {
+               compatible = "jedec,spi-nor";
+               reg = <0>;
+               spi-max-frequency = <25000000>;
+
+               partitions {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+
+                       partition@0 {
+                               label = "u-boot";
+                               reg = <0x000000 0x80000>;
+                               read-only;
+                       };
+
+                       partition@80000 {
+                               label = "u-boot-env";
+                               reg = <0x80000 0x10000>;
+                               read-only;
+                       };
+
+                       hw_info: partition@90000 {
+                               label = "hw-info";
+                               reg = <0x90000 0x10000>;
+                               read-only;
+                       };
+
+                       partition@a0000 {
+                               label = "boot-info";
+                               reg = <0xa0000 0x10000>;
+                               read-only;
+                       };
+
+                       partition@b0000 {
+                               label = "boot-sinfo";
+                               reg = <0xb0000 0x10000>;
+                               read-only;
+                       };
+               };
+       };
+};
+
+&wmac {
+       status = "okay";
+
+       mtd-mac-address = <&hw_info 0x0>;
+       mtd-mac-address-increment = <1>;
+};
+
+&nand {
+       status = "okay";
+
+       partitions {
+               compatible = "fixed-partitions";
+               #address-cells = <1>;
+               #size-cells = <1>;
+
+               partition@0 {
+                       label = "u-boot1";
+                       reg = <0x0 0x400000>;
+                       read-only;
+               };
+
+               partition@400000 {
+                       label = "u-boot-env1";
+                       reg = <0x400000 0x400000>;
+                       read-only;
+               };
+
+               partition@800000 {
+                       label = "kernel";
+                       reg = <0x800000 0x500000>;
+               };
+
+               partition@d00000 {
+                       label = "ubi";
+                       reg = <0xd00000 0x6f00000>;
+               };
+
+               partition@2e00000 {
+                       label = "wifi-info";
+                       reg = <0x7c00000 0x400000>;
+                       read-only;
+               };
+       };
+};
+
+&mdio0 {
+       status = "okay";
+
+       phy0: ethernet-phy@0 {
+               reg = <0>;
+       };
+};
+
+&eth0 {
+       status = "okay";
+
+       pll-data = <0x06000000 0x00000101 0x00001313>;
+
+       mtd-mac-address = <&hw_info 0x0>;
+
+       phy-mode = "rgmii-id";
+       phy-handle = <&phy0>;
+
+       gmac-config {
+               device = <&gmac>;
+               rgmii-gmac0 = <1>;
+               rxd-delay = <1>;
+               rxdv-delay = <1>;
+       };
+};
index c30fa814c2392066b778d7d0b2949c2f8bcb0823..c11ff6a2574f74e04dd9ce1e5d2155e479e91aad 100644 (file)
@@ -26,6 +26,23 @@ define Build/zyxel-factory
                fi
 endef
 
+define Device/aerohive_hiveap-121
+  ATH_SOC := ar9344
+  DEVICE_VENDOR := Aerohive
+  DEVICE_MODEL := HiveAP 121
+  DEVICE_PACKAGES := kmod-usb2
+  BLOCKSIZE := 128k
+  PAGESIZE := 2048
+  IMAGE_SIZE := 116m
+  KERNEL_SIZE := 5120k
+  UBINIZE_OPTS := -E 5
+  SUPPORTED_DEVICES += hiveap-121
+  IMAGES += factory.bin
+  IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | check-size $$$$(IMAGE_SIZE)
+  IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
+endef
+TARGET_DEVICES += aerohive_hiveap-121
+
 define Device/glinet_gl-ar300m-nand
   ATH_SOC := qca9531
   DEVICE_VENDOR := GL.iNet
index 65ce439545d3ea0edcc77f5b42758e1a3809a94b..87c52a65cba225abb70a0506ea09df52d5e6fd3e 100755 (executable)
@@ -8,6 +8,9 @@ ath79_setup_interfaces()
        local board="$1"
 
        case "$board" in
+       aerohive,hiveap-121)
+               ucidef_set_interface_lan "eth0"
+               ;;
        *)
                ucidef_set_interfaces_lan_wan "eth0" "eth1"
                ;;
index b02ab9a0805cc1ab4157dec1365cbcd8dc7eb258..bc62ede65fdccb10e801ea1c9c4c6af7aecb05e5 100644 (file)
@@ -13,6 +13,9 @@ platform_do_upgrade() {
        local board=$(board_name)
 
        case "$board" in
+       aerohive,hiveap-121)
+               nand_do_upgrade "$1"
+               ;;
        *)
                default_do_upgrade "$1"
                ;;
index c8114a4985e2ade2f7f98791cae6a94f13c760c9..84e6748a20e3e511f04cb6eb65a71cf4dfde0e93 100644 (file)
@@ -1,3 +1,4 @@
+CONFIG_AT803X_PHY=y
 CONFIG_BCH=y
 CONFIG_MTD_NAND=y
 CONFIG_MTD_NAND_AR934X=y
@@ -8,8 +9,11 @@ CONFIG_MTD_SPINAND_MT29F=y
 CONFIG_MTD_SPINAND_ONDIEECC=y
 CONFIG_MTD_UBI=y
 CONFIG_MTD_UBI_BEB_LIMIT=20
-# CONFIG_MTD_UBI_BLOCK is not set
+CONFIG_MTD_UBI_BLOCK=y
 # CONFIG_MTD_UBI_FASTMAP is not set
 # CONFIG_MTD_UBI_GLUEBI is not set
 CONFIG_MTD_UBI_WL_THRESHOLD=4096
-# CONFIG_UBIFS_FS is not set
+CONFIG_UBIFS_FS=y
+CONFIG_UBIFS_FS_ADVANCED_COMPR=y
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_ZLIB=y