Skip to content

Commit

Permalink
qualcommax: add support for Aliyun AP8220
Browse files Browse the repository at this point in the history
Aliyun AP8220 is an AP manufactured by Edgecore.
(Very similar to Edgecore EAP102)

Hardware specifications:
  SoC: Qualcomm IPQ8071A
  RAM: 1GB of DDR4 600MHz
  Flash1: MX25U3235F 4MB
  Flash2: MX30UF1G18AC 128MB
  Ethernet: 2x 2.5G RJ45 port
  USB: 2x USB-A 2.0 port
  WiFi1: QCN5024 2.4GHz
  WiFi2: QCN5054 5GHz
  Power: DC 12V / PoE

Flash instructions:
  1. Connect the router via serial port
  2. Keep pressing @ until uboot is interrupted
  3. Download the initramfs image, rename it to
     initramfs.bin, host it with tftp server
  4. Run these commands:
     tftpboot initramfs.bin
     bootm
  5. After openwrt boots up, use scp or luci
     to upload sysupgrade.bin to upgrade.

Signed-off-by: Chukun Pan <[email protected]>
Link: openwrt/openwrt#17970
Signed-off-by: Robert Marko <[email protected]>
  • Loading branch information
aiamadeus authored and robimarko committed Feb 17, 2025
1 parent b6fa124 commit 51d485e
Show file tree
Hide file tree
Showing 7 changed files with 385 additions and 10 deletions.
11 changes: 6 additions & 5 deletions package/boot/uboot-envtools/files/qualcommax_ipq807x
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,12 @@ ubootenv_add_mmc() {
}

case "$board" in
aliyun,ap8220|\
compex,wpq873|\
edgecore,eap102|\
zyxel,nbg7815)
ubootenv_add_mtd "0:appsblenv" "0x0" "0x10000" "0x10000"
;;
dynalink,dl-wrx36|\
netgear,rax120v2|\
netgear,sxr80|\
Expand All @@ -37,11 +43,6 @@ tplink,eap620hd-v1|\
tplink,eap660hd-v1)
ubootenv_add_mtd "0:appsblenv" "0x0" "0x40000" "0x20000"
;;
compex,wpq873|\
edgecore,eap102|\
zyxel,nbg7815)
ubootenv_add_mtd "0:appsblenv" "0x0" "0x10000" "0x10000"
;;
edimax,cax1800)
ubootenv_add_mtd "0:appsblenv" "0x0" "0x10000" "0x20000"
;;
Expand Down
2 changes: 2 additions & 0 deletions package/firmware/ipq-wifi/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ endef

ALLWIFIBOARDS:= \
8devices_mango \
aliyun_ap8220 \
arcadyan_aw1000 \
asus_rt-ax89x \
buffalo_wxr-5950ax12 \
Expand Down Expand Up @@ -166,6 +167,7 @@ endef
# board-<devicename>.<qca4019|qca9888|qca9889|qca9984|qca99x0|ipq8074>

$(eval $(call generate-ipq-wifi-package,8devices_mango,8devices Mango))
$(eval $(call generate-ipq-wifi-package,aliyun_ap8220,Aliyun AP8220))
$(eval $(call generate-ipq-wifi-package,arcadyan_aw1000,Arcadyan AW1000))
$(eval $(call generate-ipq-wifi-package,asus_rt-ax89x,Asus RT-AX89X))
$(eval $(call generate-ipq-wifi-package,buffalo_wxr-5950ax12,Buffalo WXR-5950AX12))
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,337 @@
// SPDX-License-Identifier: GPL-2.0-or-later OR MIT

/dts-v1/;

#include "ipq8074.dtsi"
#include "ipq8074-ac-cpu.dtsi"
#include "ipq8074-ess.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>

/ {
model = "Aliyun AP8220";
compatible = "aliyun,ap8220", "qcom,ipq8074";

aliases {
serial0 = &blsp1_uart5;
led-boot = &led_power;
led-failsafe = &led_power;
led-running = &led_power;
led-upgrade = &led_power;
};

chosen {
stdout-path = "serial0:115200n8";
bootargs-append = " root=/dev/ubiblock0_1";
};

keys {
compatible = "gpio-keys";
pinctrl-0 = <&button_pins>;
pinctrl-names = "default";

reset {
label = "reset";
linux,code = <KEY_RESTART>;
gpios = <&tlmm 66 GPIO_ACTIVE_LOW>;
};
};

leds {
compatible = "gpio-leds";

led_power: power {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_POWER;
gpios = <&tlmm 46 GPIO_ACTIVE_HIGH>;
};

wlan2g {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_WLAN_2GHZ;
gpios = <&tlmm 47 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "phy1radio";
};

wlan5g {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_WLAN_5GHZ;
gpios = <&tlmm 48 GPIO_ACTIVE_HIGH>;
linux,default-trigger = "phy0radio";
};

bluetooth {
color = <LED_COLOR_ID_GREEN>;
function = LED_FUNCTION_BLUETOOTH;
gpios = <&tlmm 50 GPIO_ACTIVE_HIGH>;
};
};

gpio-export {
compatible = "gpio-export";

ble-power {
gpio-export,name = "ble_power";
gpio-export,output = <1>;
gpios = <&tlmm 54 GPIO_ACTIVE_HIGH>;
};
};
};

&tlmm {
mdio_pins: mdio-pins {
mdc {
pins = "gpio68";
function = "mdc";
drive-strength = <8>;
bias-pull-up;
};

mdio {
pins = "gpio69";
function = "mdio";
drive-strength = <8>;
bias-pull-up;
};
};

button_pins: button-pins {
mux {
pins = "gpio66";
function = "gpio";
drive-strength = <8>;
bias-pull-up;
};
};
};

&blsp1_spi1 {
status = "okay";

flash@0 {
compatible = "jedec,spi-nor";
#address-cells = <1>;
#size-cells = <1>;
reg = <0>;
spi-max-frequency = <50000000>;

partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;

partition@0 {
label = "0:sbl1";
reg = <0x0 0x50000>;
read-only;
};

partition@50000 {
label = "0:mibib";
reg = <0x50000 0x10000>;
read-only;
};

partition@60000 {
label = "0:qsee";
reg = <0x60000 0x180000>;
read-only;
};

partition@1e0000 {
label = "0:devcfg";
reg = <0x1e0000 0x10000>;
read-only;
};

partition@1f0000 {
label = "0:apdp";
reg = <0x1f0000 0x10000>;
read-only;
};

partition@200000 {
label = "0:rpm";
reg = <0x200000 0x40000>;
read-only;
};

partition@240000 {
label = "0:cdt";
reg = <0x240000 0x10000>;
read-only;
};

partition@250000 {
label = "0:appsblenv";
reg = <0x250000 0x10000>;
};

partition@260000 {
label = "0:appsbl";
reg = <0x260000 0xa0000>;
read-only;
};

partition@300000 {
label = "0:art";
reg = <0x300000 0x40000>;
read-only;
};

partition@340000 {
label = "0:ethphyfw";
reg = <0x340000 0x80000>;
read-only;
};

partition@3c0000 {
label = "product_info";
reg = <0x3c0000 0x10000>;
read-only;
};

partition@3d0000 {
label = "mtdoops";
reg = <0x3d0000 0x20000>;
};

partition@3f0000 {
label = "priv_data1";
reg = <0x3f0000 0x10000>;
read-only;
};
};
};
};

&blsp1_uart5 {
status = "okay";
};

&cryptobam {
status = "okay";
};

&crypto {
status = "okay";
};

&prng {
status = "okay";
};

&qpic_bam {
status = "okay";
};

&qusb_phy_0 {
status = "okay";
};

&ssphy_0 {
status = "okay";
};

&usb_0 {
status = "okay";
};

&qpic_nand {
status = "okay";

nand@0 {
reg = <0>;
nand-ecc-strength = <4>;
nand-ecc-step-size = <512>;
nand-bus-width = <8>;

partitions {
compatible = "fixed-partitions";
#address-cells = <1>;
#size-cells = <1>;

partition@0 {
label = "rootfs1";
reg = <0x0000000 0x3000000>;
};

partition@3000000 {
label = "rootfs2";
reg = <0x3000000 0x3000000>;
};

partition@6000000 {
label = "usrdata";
reg = <0x6000000 0x2000000>;
};
};
};
};

&mdio {
status = "okay";

pinctrl-0 = <&mdio_pins>;
pinctrl-names = "default";

qca8081_24: ethernet-phy@24 {
compatible = "ethernet-phy-id004d.d101";
reg = <24>;
reset-deassert-us = <10000>;
reset-gpios = <&tlmm 33 GPIO_ACTIVE_LOW>;
};

qca8081_28: ethernet-phy@28 {
compatible = "ethernet-phy-id004d.d101";
reg = <28>;
reset-deassert-us = <10000>;
reset-gpios = <&tlmm 44 GPIO_ACTIVE_LOW>;
};
};

&switch {
status = "okay";

switch_lan_bmp = <ESS_PORT5>;
switch_wan_bmp = <ESS_PORT6>;
switch_mac_mode1 = <MAC_MODE_SGMII_PLUS>;
switch_mac_mode2 = <MAC_MODE_SGMII_PLUS>;

qcom,port_phyinfo {
port@5 {
port_id = <5>;
phy_address = <24>;
port_mac_sel = "QGMAC_PORT";
};
port@6 {
port_id = <6>;
phy_address = <28>;
port_mac_sel = "QGMAC_PORT";
};
};
};

&edma {
status = "okay";
};

&dp5 {
status = "okay";
phy-mode = "sgmii";
phy-handle = <&qca8081_24>;
label = "wan";
};

&dp6 {
status = "okay";
phy-handle = <&qca8081_28>;
label = "lan";
};

&wifi {
status = "okay";

qcom,ath11k-calibration-variant = "Aliyun-AP8220";
};
13 changes: 13 additions & 0 deletions target/linux/qualcommax/image/ipq807x.mk
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,19 @@ define Build/wax6xx-netgear-tar
rm -rf $@.tmp
endef

define Device/aliyun_ap8220
$(call Device/FitImage)
$(call Device/UbiFit)
DEVICE_VENDOR := Aliyun
DEVICE_MODEL := AP8220
BLOCKSIZE := 128k
PAGESIZE := 2048
DEVICE_DTS_CONFIG := config@ac02
SOC := ipq8071
DEVICE_PACKAGES := ipq-wifi-aliyun_ap8220
endef
TARGET_DEVICES += aliyun_ap8220

define Device/arcadyan_aw1000
$(call Device/FitImage)
$(call Device/UbiFit)
Expand Down
Loading

0 comments on commit 51d485e

Please sign in to comment.