Skip to content

Commit

Permalink
ipq807x: Add Xiaomi AX9000
Browse files Browse the repository at this point in the history
Xiaomi AX9000 is a premium 802.11ax "tri"-band router/AP.
Specifications:
* CPU: Qualcomm IPQ8072A Quad core Cortex-A53 2.2GHz
* RAM: 1024MB of DDR3
* Storage: 256MB of parallel NAND
* Ethernet:
	* 4x1G RJ45 ports (QCA8075) with 1x status LED per port
	* 1x2.5G RJ45 port (QCA8081) with 1x status LED
* WLAN:
	* PCI based Qualcomm QCA9889 1x1 802.11ac Wawe 2 for IoT
	* 2.4GHz: Qualcomm QCN5024 4x4@40MHz 802.11b/g/n/ax 1147 Mbps PHY rate
	* 5.8GHz: Qualcomm QCN5054 4x4@80MHz or 2x2@160MHz 802.11a/b/g/n/ac/ax 2402Mbps PHY rate
	* 5GHz: PCI based Qualcomm QCN9024 4x4@160MHz 802.11a/b/g/n/ac/ax 4804Mbps PHY rate
* USB: 1x USB3.0 Type-A port
* LED-s:
	* System (Blue and Yellow)
	* Network (Blue and Yellow)
	* RGB light bar on top in X shape
* Buttons:
	* 1x Power switch
	* 1x Soft reset
	* 1x Mesh button
* Power: 12V DC Jack

Installation instructions:

Obtaining SSH access is mandatory
https://openwrt.org/inbox/toh/xiaomi/ax9000#obtain_ssh_access

For first installation, using ubiformat is mandatory:
* Copy openwrt-ipq807x-generic-xiaomi_ax9000-squashfs-nand-factory.ubi to /tmp
* cat /proc/mtd and find the rootfs and rootfs_1 mtd index
* Use ubiformat to flash the UBI image:
ubiformat /dev/mtd21 -y -f /tmp/openwrt-ipq807x-generic-xiaomi_ax9000-squashfs-nand-factory.ubi
ubiformat /dev/mtd22 -y	-f /tmp/openwrt-ipq807x-generic-xiaomi_ax9000-squashfs-nand-factory.ubi

Please confirm that mtd21 and mtd22 are the correct indexes.

* reboot

After that regular sysupgrade can be used.

Signed-off-by: Robert Marko <robimarko@gmail.com>
  • Loading branch information
robimarko committed May 19, 2022
1 parent 5263432 commit a188ac8
Show file tree
Hide file tree
Showing 12 changed files with 867 additions and 9 deletions.
3 changes: 2 additions & 1 deletion package/boot/uboot-envtools/files/ipq807x
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ board=$(board_name)
case "$board" in
edimax,cax1800|\
redmi,ax6|\
xiaomi,ax3600)
xiaomi,ax3600|\
xiaomi,ax9000)
idx="$(find_mtd_index 0:appsblenv)"
[ -n "$idx" ] && \
ubootenv_add_uci_config "/dev/mtd$idx" "0x0" "0x10000" "0x20000"
Expand Down
8 changes: 6 additions & 2 deletions package/firmware/ipq-wifi/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,8 @@ ALLWIFIBOARDS:= \
qxwlan_e2600ac-c2 \
teltonika_rutx \
redmi_ax6 \
xiaomi_ax3600
xiaomi_ax3600 \
xiaomi_ax9000

ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD))

Expand Down Expand Up @@ -72,8 +73,10 @@ define ipq-wifi-install-one
$(call ipq-wifi-install-one-to,$(1),$(2),QCA9887/hw1.0),\
$(if $(filter $(suffix $(1)),.IPQ8074 .ipq8074),\
$(call ipq-wifi-install-ath11-one-to,$(1),$(2),IPQ8074/hw2.0),\
$(if $(filter $(suffix $(1)),.QCN9074 .qcn9074),\
$(call ipq-wifi-install-ath11-one-to,$(1),$(2),QCN9074/hw1.0),\
$(error Unrecognized board-file suffix '$(suffix $(1))' for '$(1)')\
)))))
))))))

endef
# Blank line required at end of above define due to foreach context
Expand Down Expand Up @@ -124,5 +127,6 @@ $(eval $(call generate-ipq-wifi-package,qxwlan_e2600ac-c2,Qxwlan E2600AC C2))
$(eval $(call generate-ipq-wifi-package,teltonika_rutx,Teltonika RUTX))
$(eval $(call generate-ipq-wifi-package,redmi_ax6,Redmi AX6))
$(eval $(call generate-ipq-wifi-package,xiaomi_ax3600,Xiaomi AX3600))
$(eval $(call generate-ipq-wifi-package,xiaomi_ax9000,Xiaomi AX9000))

$(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE))))
Binary file not shown.
Binary file not shown.
Binary file not shown.
3 changes: 3 additions & 0 deletions target/linux/ipq807x/base-files/etc/board.d/02_network
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@ ipq807x_setup_interfaces()
xiaomi,ax3600)
ucidef_set_interfaces_lan_wan "eth1 eth2 eth3" "eth0"
;;
xiaomi,ax9000)
ucidef_set_interfaces_lan_wan "eth0 eth1 eth2 eth3" "eth4"
;;
*)
echo "Unsupported hardware. Network interfaces not initialized"
;;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,19 @@ case "$FIRMWARE" in
edimax,cax1800|\
qnap,301w|\
redmi,ax6|\
xiaomi,ax3600)
xiaomi,ax3600|\
xiaomi,ax9000)
caldata_extract "0:art" 0x1000 0x20000
;;
esac
;;
"ath11k/QCN9074/hw1.0/cal-pci-0000:01:00.0.bin")
case "$board" in
xiaomi,ax9000)
caldata_extract "0:art" 0x26800 0x20000
;;
esac
;;
*)
exit 1
;;
Expand Down
3 changes: 2 additions & 1 deletion target/linux/ipq807x/base-files/etc/init.d/bootcount
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ START=99
boot() {
case $(board_name) in
redmi,ax6|\
xiaomi,ax3600)
xiaomi,ax3600|\
xiaomi,ax9000)
# OTA handling should not be used. Reset it just in case.
fw_setenv flag_ota_reboot 0
# Not strictly needed but useful to handle partition crash condition
Expand Down
3 changes: 2 additions & 1 deletion target/linux/ipq807x/base-files/lib/upgrade/platform.sh
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ platform_do_upgrade() {
mmc_do_upgrade "$1"
;;
redmi,ax6|\
xiaomi,ax3600)
xiaomi,ax3600|\
xiaomi,ax9000)
part_num="$(fw_printenv -n flag_boot_rootfs)"
if [ "$part_num" -eq "0" ]; then
CI_UBIPART="rootfs_1"
Expand Down

0 comments on commit a188ac8

Please sign in to comment.