openwrt/package/boot
Marco von Rosenberg 769253775c ath79: add support for Huawei AP6010DN
Huawei AP6010DN is a dual-band, dual-radio 802.11a/b/g/n 2x2 MIMO
enterprise access point with one Gigabit Ethernet port and PoE
support.

Hardware highlights:
- CPU: AR9344 SoC at 480MHz
- RAM: 128MB DDR2
- Flash: 32MB SPI-NOR
- Wi-Fi 2.4GHz: AR9344-internal radio
- Wi-Fi 5GHz: AR9580 PCIe WLAN SoC
- Ethernet: 10/100/1000 Mbps Ethernet through Atheros AR8035 PHY
- PoE: yes
- Standalone 12V/2A power input
- Serial console externally available through RJ45 port
- External watchdog: CAT706SVI (1.6s timeout)

Serial console:
  9600n8 (9600 baud, no stop bits, no parity, 8 data bits)

MAC addresses:
  Each device has 32 consecutive MAC addresses allocated by
  the vendor, which don't overlap between devices.
  This was confirmed with multiple devices with consecutive
  serial numbers.
  The MAC address range starts with the address on the label.
  To be able to distinguish between the interfaces,
  the following MAC address scheme is used:
    - eth0 = label MAC
    - radio0 (Wi-Fi 2.4GHz) = label MAC + 1
    - radio1 (Wi-Fi 5GHz) = label MAC + 2

Installation:
0. Connect some sort of RJ45-to-USB adapter to "Console" port of the AP

1. Power up the AP

2. At prompt "Press f or F  to stop Auto-Boot in 3 seconds",
   do what they say.
   Log in with default admin password "admin@huawei.com".

3. Boot the OpenWrt initramfs from TFTP using the hidden script "run ramboot".
   Replace IP address as needed:

   > setenv serverip 192.168.1.10
   > setenv ipaddr 192.168.1.1
   > setenv rambootfile openwrt-ath79-generic-huawei_ap6010dn-initramfs-kernel.bin
   > saveenv
   > run ramboot

4. Optional but recommended as the factory firmware cannot be downloaded publicly:
   Back up contents of "firmware" partition using the web interface or ssh:

   $ ssh root@192.168.1.1 cat /dev/mtd11 > huawei_ap6010dn_fw_backup.bin

5. Run sysupgrade using sysupgrade image. OpenWrt
   shall boot from flash afterwards.

Return to factory firmware (using firmware upgrade package downloaded from non-public Huawei website):
1. Start a TFTP server in the directory where
   the firmware upgrade package is located

2. Boot to u-boot as described above

3. Install firmware upgrade package and format the config partitions:

   > update system FatAP6X10XN_SOMEVERSION.bin
   > format_fs

Return to factory firmware (from previously created backup):
1. Copy over the firmware partition backup to /tmp,
   for example using scp

2. Use sysupgrade with force to restore the backup:
   sysupgrade -F huawei_ap6010dn_fw_backup.bin

3. Boot AP to U-Boot as described above

Quirks and known issues:
- The stock firmware has a semi dual boot concept where the primary
kernel uses a squashfs as root partition and the secondary kernel uses
an initramfs. This dual boot concept is circumvented on purpose to gain
more flash space and since the stock firmware's flash layout isn't
compatible with mtdsplit.
- The external watchdog's timeout of 1.6s is very hard to satisfy
during bootup. This is why the GPIO15 pin connected to the watchdog input
is configured directly in the LZMA loader to output the AHB_CLK/2 signal
which keeps the watchdog happy until the wdt-gpio kernel driver takes
over. Because it would also take too long to read the whole kernel image
from flash, the uImage header only includes the loader which then reads
the kernel image from flash after GPIO15 is configured.

Signed-off-by: Marco von Rosenberg <marcovr@selfnet.de>
(cherry picked from commit f84a9f7dc0)
Link: https://github.com/openwrt/openwrt/pull/16978
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2024-11-23 23:22:27 +01:00
..
arm-trusted-firmware-bcm63xx treewide: replace AUTORELEASE with real PKG_RELEASE 2023-05-18 11:35:29 +02:00
arm-trusted-firmware-mediatek uboot-mediatek: add initial Zyxel EX5601-T0 support 2024-03-12 22:58:06 +01:00
arm-trusted-firmware-mvebu treewide: replace AUTORELEASE with real PKG_RELEASE 2023-05-18 11:35:29 +02:00
arm-trusted-firmware-rockchip atf-rockchip: update to 2.3 2020-07-28 15:52:44 +02:00
arm-trusted-firmware-sunxi arm-trusted-firmware-sunxi: bump to 2.8 2023-04-01 01:22:19 +03:00
arm-trusted-firmware-tools arm-trusted-firmware-tools: fix build on macOS/Darwin 2023-08-13 16:29:58 +01:00
at91bootstrap treewide: Add extra CPE identifier 2023-09-27 22:37:13 +02:00
fconfig treewide: unify OpenWrt hosted source via @OPENWRT 2021-02-05 12:00:24 -10:00
grub2 grub2: change armvirt reference to armsr 2023-06-13 14:14:31 +02:00
imx-bootlets imx-bootlets: refresh patches 2021-02-24 16:15:02 +01:00
kexec-tools treewide: add support for "gc-sections" in PKG_BUILD_FLAGS 2023-03-21 18:28:22 +01:00
kobs-ng kobs-ng: update dependencies after 'imx6' -> 'imx' rename 2021-11-03 12:45:40 +01:00
mt7623n-preloader mt7623n-preloader: remove mt7622-preloader 2021-02-28 04:12:23 +00:00
opensbi opensbi: add package for RISC-V 2023-06-14 09:22:08 +02:00
tfa-layerscape tfa-layerscape: fix fiptool's build 2023-05-20 23:20:48 +02:00
uboot-armsr uboot-armsr: add support for QEMU armv7/armv8 2023-06-13 14:15:22 +02:00
uboot-at91 treewide: replace AUTORELEASE with real PKG_RELEASE 2023-05-18 11:35:29 +02:00
uboot-bcm4908 treewide: replace AUTORELEASE with real PKG_RELEASE 2023-05-18 11:35:29 +02:00
uboot-envtools ath79: add support for Huawei AP6010DN 2024-11-23 23:22:27 +01:00
uboot-fritz4040 treewide: replace AUTORELEASE with real PKG_RELEASE 2023-05-18 11:35:29 +02:00
uboot-imx treewide: replace AUTORELEASE with real PKG_RELEASE 2023-05-18 11:35:29 +02:00
uboot-kirkwood treewide: replace AUTORELEASE with real PKG_RELEASE 2023-05-18 11:35:29 +02:00
uboot-lantiq treewide: replace AUTORELEASE with real PKG_RELEASE 2023-05-18 11:35:29 +02:00
uboot-layerscape package: layerscape: change loadaddr address 2023-05-29 14:17:52 +02:00
uboot-mediatek mediatek: enable rootwait for cmcc rax3000m emmc version 2024-08-11 19:18:39 +02:00
uboot-mvebu uboot-mvebu: update to version 2023.07.02 2023-07-30 18:06:28 +02:00
uboot-mxs mxs: rework image generation 2023-07-06 17:04:13 +02:00
uboot-omap treewide: replace AUTORELEASE with real PKG_RELEASE 2023-05-18 11:35:29 +02:00
uboot-oxnas treewide: replace AUTORELEASE with real PKG_RELEASE 2023-05-18 11:35:29 +02:00
uboot-rockchip uboot-rockchip: add Orange Pi R1 Plus LTS support 2023-06-09 13:15:19 +02:00
uboot-sifiveu uboot-sifiveu: add bootloader package for SiFive Ux40 boards 2023-06-14 09:22:08 +02:00
uboot-sunxi Revert "uboot-sunxi: add missing type __u64" 2024-04-27 06:53:22 +00:00
uboot-tegra treewide: replace AUTORELEASE with real PKG_RELEASE 2023-05-18 11:35:29 +02:00
uboot-zynq uboot-zynq: build with zynq generic subtarget 2022-12-25 11:55:53 +01:00