[OpenWrt-Devel] [PATCH 2/2] ath79: add support for Aerohive HiveAP 121

David Bauer mail at david-bauer.net
Wed Oct 23 06:15:19 EDT 2019


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 at 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 at david-bauer.net>
---
 .../ath79/base-files/etc/board.d/02_network   |   1 +
 .../ath79/base-files/lib/upgrade/platform.sh  |   3 +
 .../ath79/dts/ar9344_aerohive_hiveap-121.dts  | 237 ++++++++++++++++++
 target/linux/ath79/image/nand.mk              |  17 ++
 target/linux/ath79/nand/config-default        |   8 +-
 5 files changed, 264 insertions(+), 2 deletions(-)
 create mode 100644 target/linux/ath79/dts/ar9344_aerohive_hiveap-121.dts

diff --git a/target/linux/ath79/base-files/etc/board.d/02_network b/target/linux/ath79/base-files/etc/board.d/02_network
index c40c07a906..13070a287b 100755
--- a/target/linux/ath79/base-files/etc/board.d/02_network
+++ b/target/linux/ath79/base-files/etc/board.d/02_network
@@ -11,6 +11,7 @@ ath79_setup_interfaces()
 	case "$board" in
 	adtran,bsap1800-v2|\
 	adtran,bsap1840|\
+	aerohive,hiveap-121|\
 	alfa-network,ap121f|\
 	aruba,ap-105|\
 	avm,fritz300e|\
diff --git a/target/linux/ath79/base-files/lib/upgrade/platform.sh b/target/linux/ath79/base-files/lib/upgrade/platform.sh
index 10756abbaf..e66395f0bc 100644
--- a/target/linux/ath79/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ath79/base-files/lib/upgrade/platform.sh
@@ -44,6 +44,9 @@ platform_do_upgrade() {
 	adtran,bsap1840)
 		redboot_fis_do_upgrade "$1" vmlinux_2
 		;;
+	aerohive,hiveap-121)
+		nand_do_upgrade "$1"
+		;;
 	jjplus,ja76pf2)
 		echo "Sysupgrade disabled due bug FS#2428"
 		;;
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
index 0000000000..d757b21e8b
--- /dev/null
+++ b/target/linux/ath79/dts/ar9344_aerohive_hiveap-121.dts
@@ -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 at 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 at 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 at 0 {
+		compatible = "jedec,spi-nor";
+		reg = <0>;
+		spi-max-frequency = <25000000>;
+
+		partitions {
+			compatible = "fixed-partitions";
+			#address-cells = <1>;
+			#size-cells = <1>;
+
+			partition at 0 {
+				label = "u-boot";
+				reg = <0x000000 0x80000>;
+				read-only;
+			};
+
+			partition at 80000 {
+				label = "u-boot-env";
+				reg = <0x80000 0x10000>;
+				read-only;
+			};
+
+			hw_info: partition at 90000 {
+				label = "hw-info";
+				reg = <0x90000 0x10000>;
+				read-only;
+			};
+
+			partition at a0000 {
+				label = "boot-info";
+				reg = <0xa0000 0x10000>;
+				read-only;
+			};
+
+			partition at 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 at 0 {
+			label = "u-boot1";
+			reg = <0x0 0x400000>;
+			read-only;
+		};
+
+		partition at 400000 {
+			label = "u-boot-env1";
+			reg = <0x400000 0x400000>;
+			read-only;
+		};
+
+		partition at 800000 {
+			label = "kernel";
+			reg = <0x800000 0x500000>;
+		};
+
+		partition at d00000 {
+			label = "ubi";
+			reg = <0xd00000 0x6f00000>;
+		};
+
+		partition at 2e00000 {
+			label = "wifi-info";
+			reg = <0x7c00000 0x400000>;
+			read-only;
+		};
+	};
+};
+
+&mdio0 {
+	status = "okay";
+
+	phy0: ethernet-phy at 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>;
+	};
+};
diff --git a/target/linux/ath79/image/nand.mk b/target/linux/ath79/image/nand.mk
index db4ff9c6f0..7faa659d46 100644
--- a/target/linux/ath79/image/nand.mk
+++ b/target/linux/ath79/image/nand.mk
@@ -1,3 +1,20 @@
+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 := 115m
+  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
diff --git a/target/linux/ath79/nand/config-default b/target/linux/ath79/nand/config-default
index c8114a4985..84e6748a20 100644
--- a/target/linux/ath79/nand/config-default
+++ b/target/linux/ath79/nand/config-default
@@ -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
-- 
2.23.0


_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel



More information about the openwrt-devel mailing list