FCC ID: TVE-121402 Fortinet FAP-221-C is an indoor access point with 1gb ethernet port, dual-band wireless, internal antenna plates, and 802.3at PoE+. Hardware and board design are from Senao. The device appears very similar to the EnGenius EAP1200H, albeit with double the flash and RAM. **Specifications:** - QCA9557 SOC - QCA9882 WLAN PCI card, 5 GHz, 2x2, 26dBm - AR8035-A PHY RGMII GbE with PoE+ IN - 40 MHz clock - 32 MB FLASH FL256SAIFR0 - 2x 128 MB RAM NT5TU64M16HG - UART populated - 4 internal antenna plates - 5 LEDs, 1 button (power, 'warning', eth0, wifi1, wifi2) (reset) Amber LAN LED appears hardwired to ethernet port. Power LED is green only. Other LEDs are amber/green. **MAC addresses:** 1 MAC Address in flash at end of uboot ASCII encoded, no delimiters Labeled as "MAC Address" on case **Serial Access:** Pinout: (arrow) VCC GND RX TX Pins are populated with a header and traces not blocked. Bootloader is set to 9600 baud, 8 data, 1 stop. **Console Access:** Bootloader: Interrupt boot with Ctrl+C Press "k" and enter password "1" OR Hold reset button for 5 sec during power on Interrupt the TFTP transfer with Ctrl+C to print commands available, enter "help" OEM: default username is "admin", password blank telnet is available at default address 192.168.1.2 serial is available with baud 9600 to print commands available, enter "help" or tab-tab (busybox list of commands) **Installation:** Use factory.bin with OEM upgrade procedures OR Use initramfs.bin with uboot TFTP commands. Then perform a sysupgrade with sysupgrade.bin **TFTP Recovery:** Using serial console, load initramfs.bin using TFTP to boot openwrt without touching the flash. **Return to OEM:** The best way to return to OEM firmware is to have a copy of the MTD partitions before flashing Openwrt. Backup copies should be made of partitions "fwconcat0", "loader", and "fwconcat1" which together is the same flash range as OEM's "rootfs" and "uimage" by loading an initramfs.bin and using LuCI to download the mtdblocks. It is also possible to extract from the OEM firmware upgrade image by splitting it up in parts of lengths that correspond to the partitions in openwrt and write them to flash, after gzip decompression. After writing to the firmware partitions, erase the "reserved" partition and reboot. Signed-off-by: Bernardus Jansen <bernardus@bajansen.nl> Link: https://github.com/openwrt/openwrt/pull/18109 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
131 lines
3 KiB
Bash
131 lines
3 KiB
Bash
#
|
|
# Copyright (C) 2011 OpenWrt.org
|
|
#
|
|
|
|
PART_NAME=firmware
|
|
REQUIRE_IMAGE_METADATA=1
|
|
|
|
RAMFS_COPY_BIN='fw_printenv fw_setenv'
|
|
RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock'
|
|
|
|
platform_check_image() {
|
|
local board=$(board_name)
|
|
|
|
case "$board" in
|
|
jjplus,ja76pf2|\
|
|
ubnt,routerstation|\
|
|
ubnt,routerstation-pro)
|
|
platform_check_image_redboot_fis "$1"
|
|
;;
|
|
nec,wg1400hp|\
|
|
nec,wg1800hp|\
|
|
nec,wg1800hp2)
|
|
local uboot_mtd=$(find_mtd_part "bootloader")
|
|
|
|
# check "U-Boot <year>.<month>" string in the "bootloader" partition
|
|
if ! grep -q "U-Boot [0-9]\{4\}\.[0-9]\{2\}" $uboot_mtd; then
|
|
v "The bootloader doesn't seem to be replaced to U-Boot!"
|
|
return 1
|
|
fi
|
|
;;
|
|
*)
|
|
return 0
|
|
;;
|
|
esac
|
|
}
|
|
|
|
platform_do_upgrade() {
|
|
local board=$(board_name)
|
|
|
|
case "$board" in
|
|
adtran,bsap1800-v2|\
|
|
adtran,bsap1840)
|
|
platform_do_upgrade_redboot_fis "$1" vmlinux_2
|
|
;;
|
|
allnet,all-wap02860ac|\
|
|
araknis,an-300-ap-i-n|\
|
|
araknis,an-500-ap-i-ac|\
|
|
araknis,an-700-ap-i-ac|\
|
|
engenius,eap1200h|\
|
|
engenius,eap1750h|\
|
|
engenius,eap300-v2|\
|
|
engenius,eap600|\
|
|
engenius,ecb600|\
|
|
engenius,ens1750|\
|
|
engenius,ens202ext-v1|\
|
|
engenius,enstationac-v1|\
|
|
engenius,ews660ap|\
|
|
watchguard,ap100|\
|
|
watchguard,ap200|\
|
|
watchguard,ap300)
|
|
ENV_SCRIPT="/tmp/fw_env"
|
|
IMAGE_LIST="tar tzf $1"
|
|
IMAGE_CMD="tar xzOf $1"
|
|
KERNEL_PART="loader"
|
|
ROOTFS_PART="fwconcat0"
|
|
KERNEL_FILE="uImage-lzma.bin"
|
|
ROOTFS_FILE="root.squashfs"
|
|
platform_do_upgrade_failsafe_datachk "$1"
|
|
;;
|
|
fortinet,fap-220-b|\
|
|
fortinet,fap-221-b|\
|
|
fortinet,fap-221-c)
|
|
SKIP_HASH="1"
|
|
ENV_SCRIPT="/dev/null"
|
|
IMAGE_LIST="tar tzf $1"
|
|
IMAGE_CMD="tar xzOf $1"
|
|
KERNEL_PART="loader"
|
|
ROOTFS_PART="fwconcat0"
|
|
KERNEL_FILE="uImage-lzma.bin"
|
|
ROOTFS_FILE="root.squashfs"
|
|
platform_do_upgrade_failsafe_datachk "$1"
|
|
;;
|
|
huawei,ap5030dn|\
|
|
huawei,ap6010dn)
|
|
# Store beginning address of the "firmware" partition
|
|
# as KernelA address and KernelB address, each to BootupA & BootupB
|
|
# This is the address from which the bootloader will try to load the kernel.
|
|
echo -n -e "\x9e\x10\x00\x00\x9e\x10\x00\x00" | dd of=$(find_mtd_part BootupA) bs=1 seek=$((0x254)) conv=notrunc
|
|
echo -n -e "\x9e\x10\x00\x00\x9e\x10\x00\x00" | dd of=$(find_mtd_part BootupB) bs=1 seek=$((0x254)) conv=notrunc
|
|
default_do_upgrade "$1"
|
|
;;
|
|
jjplus,ja76pf2)
|
|
platform_do_upgrade_redboot_fis "$1" linux
|
|
;;
|
|
openmesh,a40|\
|
|
openmesh,a60|\
|
|
openmesh,mr600-v1|\
|
|
openmesh,mr600-v2|\
|
|
openmesh,mr900-v1|\
|
|
openmesh,mr900-v2|\
|
|
openmesh,mr1750-v1|\
|
|
openmesh,mr1750-v2|\
|
|
openmesh,om2p-v1|\
|
|
openmesh,om2p-v2|\
|
|
openmesh,om2p-v4|\
|
|
openmesh,om2p-hs-v1|\
|
|
openmesh,om2p-hs-v2|\
|
|
openmesh,om2p-hs-v3|\
|
|
openmesh,om2p-hs-v4|\
|
|
openmesh,om2p-lc|\
|
|
openmesh,om5p|\
|
|
openmesh,om5p-ac-v1|\
|
|
openmesh,om5p-ac-v2|\
|
|
openmesh,om5p-an)
|
|
PART_NAME="inactive"
|
|
platform_do_upgrade_openmesh "$1"
|
|
;;
|
|
plasmacloud,pa300|\
|
|
plasmacloud,pa300e)
|
|
PART_NAME="inactive"
|
|
platform_do_upgrade_dualboot_datachk "$1"
|
|
;;
|
|
ubnt,routerstation|\
|
|
ubnt,routerstation-pro)
|
|
platform_do_upgrade_redboot_fis "$1" kernel
|
|
;;
|
|
*)
|
|
default_do_upgrade "$1"
|
|
;;
|
|
esac
|
|
}
|