[RFC 2/2] ath79: port HiWiFi HC6361 from ar71xx
Yousong Zhou
yszhou4tech at gmail.com
Fri Apr 8 20:00:05 PDT 2022
The device was added for ar71xx target and dropped during the ath79
transition, mainly because of the ascii mac address stored in bdinfo
partition
Device page, http://wiki.openwrt.org/toh/hiwifi/hc6361
The vendor u-boot image accepts sysupgrade.bin image with specific
requirements, including having squashfs signature "hsqs" at file offset
0x140000. This is not possible now that OpenWrt kernel image is at
least 2MB with the signature at offset 0x240000.
Installation of current build of OpenWrt now requires a bootstrap step
of installing an earlier version first.
- If the vendor u-boot accepts sysupgrade image, hc6361 image of LEDE
release should work
- If the vendor u-boot accepts only verified flashsmt image, install
the one in the above device page. The image is based on Barrier
Breaker
SHA256SUM of the flashsmt image
81b193b95ea5f8e5c30cd62fa9facf275f39233be4fdeed7038f3deed2736156
After the bootstrap step, current build of OpenWrt can be installed
there fine.
Signed-off-by: Yousong Zhou <yszhou4tech at gmail.com>
---
.../linux/ath79/dts/ar9331_hiwifi_hc6361.dts | 156 ++++++++++++++++++
.../generic/base-files/etc/board.d/01_leds | 4 +
target/linux/ath79/image/generic.mk | 12 ++
3 files changed, 172 insertions(+)
create mode 100644 target/linux/ath79/dts/ar9331_hiwifi_hc6361.dts
diff --git a/target/linux/ath79/dts/ar9331_hiwifi_hc6361.dts b/target/linux/ath79/dts/ar9331_hiwifi_hc6361.dts
new file mode 100644
index 0000000000..05d3f6730e
--- /dev/null
+++ b/target/linux/ath79/dts/ar9331_hiwifi_hc6361.dts
@@ -0,0 +1,156 @@
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
+
+#include "ar9331.dtsi"
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+
+/ {
+ model = "HiWiFi HC6361";
+ compatible = "hiwifi,hc6361", "qca,ar9331";
+
+ aliases {
+ serial0 = &uart;
+ led-boot = &led_system;
+ led-failsafe = &led_system;
+ led-running = &led_system;
+ led-upgrade = &led_system;
+ };
+
+ keys {
+ compatible = "gpio-keys";
+
+ reset {
+ label = "reset";
+ linux,code = <KEY_RESTART>;
+ gpios = <&gpio 11 GPIO_ACTIVE_LOW>;
+ debounce-interval = <60>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ led_system: system {
+ label = "blue:system";
+ gpios = <&gpio 1 GPIO_ACTIVE_LOW>;
+ default-state = "on";
+ };
+ wlan {
+ label = "blue:wlan";
+ gpios = <&gpio 0 GPIO_ACTIVE_LOW>;
+ };
+ wan {
+ label = "blue:wan";
+ gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
+ };
+ };
+
+ reg_usb_vbus: regulator {
+ compatible = "regulator-fixed";
+ regulator-name = "usb_vbus";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ enable-active-high;
+ gpio = <&gpio 20 GPIO_ACTIVE_HIGH>;
+ };
+};
+
+&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>;
+
+ uboot: partition at 0 {
+ reg = <0x0 0x10000>;
+ label = "u-boot";
+ read-only;
+ };
+
+ bdinfo: partition at 10000 {
+ reg = <0x10000 0x10000>;
+ label = "bdinfo";
+ read-only;
+ };
+
+ firmware: partition at 20000 {
+ compatible = "denx,uimage";
+ reg = <0x20000 0xfc0000>;
+ label = "firmware";
+ };
+
+ backup: partition at fe0000 {
+ reg = <0xfe0000 0x10000>;
+ label = "backup";
+ read-only;
+ };
+
+ art: partition at ff0000 {
+ reg = <0xff0000 0x10000>;
+ label = "art";
+ read-only;
+ };
+ };
+ };
+};
+
+&gpio {
+ status = "okay";
+};
+
+&uart {
+ status = "okay";
+};
+
+&usb {
+ status = "okay";
+ dr_mode = "host";
+ vbus-supply = <®_usb_vbus>;
+};
+
+&usb_phy {
+ status = "okay";
+};
+
+ð0 {
+ status = "okay";
+
+ nvmem-cells = <&macaddr_bdinfo_18a>;
+ nvmem-cell-names = "mac-address-ascii";
+ mac-address-increment = <1>;
+};
+
+ð1 {
+ status = "okay";
+
+ nvmem-cells = <&macaddr_bdinfo_18a>;
+ nvmem-cell-names = "mac-address-ascii";
+};
+
+&wmac {
+ status = "okay";
+ mtd-cal-data = <&art 0x1000>;
+
+ nvmem-cells = <&macaddr_bdinfo_18a>;
+ nvmem-cell-names = "mac-address-ascii";
+ mac-address-increment = <2>;
+};
+
+&bdinfo {
+ compatible = "nvmem-cells";
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ macaddr_bdinfo_18a: macaddr at 18a {
+ reg = <0x18a 0x11>;
+ };
+};
diff --git a/target/linux/ath79/generic/base-files/etc/board.d/01_leds b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
index 2ce489b0d1..ec5160f455 100644
--- a/target/linux/ath79/generic/base-files/etc/board.d/01_leds
+++ b/target/linux/ath79/generic/base-files/etc/board.d/01_leds
@@ -246,6 +246,10 @@ glinet,gl-x750)
hak5,lan-turtle)
ucidef_set_led_netdev "wan" "WAN" "orange:system" "eth1"
;;
+hiwifi,hc6361)
+ ucidef_set_led_netdev "wan" "WAN" "blue:wan" "eth1"
+ ucidef_set_led_wlan "wlan" "WLAN" "blue:wlan" "phy0tpt"
+ ;;
joyit,jt-or750i)
ucidef_set_led_default "ath10k" "ath10k-disable" "ath10k-phy0" "0"
;;
diff --git a/target/linux/ath79/image/generic.mk b/target/linux/ath79/image/generic.mk
index 769c0ee1da..8a34a3b344 100644
--- a/target/linux/ath79/image/generic.mk
+++ b/target/linux/ath79/image/generic.mk
@@ -1387,6 +1387,18 @@ define Device/hak5_wifi-pineapple-nano
endef
TARGET_DEVICES += hak5_wifi-pineapple-nano
+define Device/hiwifi_hc6361
+ SOC := ar9331
+ DEVICE_VENDOR := HiWiFi
+ DEVICE_MODEL := HC6361
+ DEVICE_PACKAGES := kmod-usb-core kmod-usb2 kmod-usb-chipidea2 kmod-usb-storage \
+ kmod-fs-ext4 kmod-nls-iso8859-1 e2fsprogs
+ BOARDNAME := HiWiFi-HC6361
+ KERNEL := kernel-bin | append-dtb | lzma | uImage lzma | pad-to $$(BLOCKSIZE)
+ IMAGE_SIZE := 16128k
+endef
+TARGET_DEVICES += hiwifi_hc6361
+
define Device/iodata_etg3-r
SOC := ar9342
DEVICE_VENDOR := I-O DATA
More information about the openwrt-devel
mailing list