This commit adds support for Netgear Orbi Pro SXR80 and SXS80 (collectively known as SXK80) Specifications: --------------- * CPU: Qualcomm IPQ8074A Quad core Cortex-A53 * RAM: 1024MB * Storage: SPI-NAND 512 MiB (Winbond W29N04GZ) * Ethernet: 4x 1G RJ45 ports (QCA8075) 1x 2.5G RJ45 LAN/WAN (QCA8081) * WLAN: - 2.4 GHz: Qualcomm QCN5024 4x4 - 2x 5 GHz: Qualcomm QCN5054 4x4 (second radio high channels only) * LEDs: - Power: (Green and red) - Front: (Blue, green, red and white) * Buttons: - 1x Soft reset - 1x Sync/WPS * Power: 12V DC Jack Installation instructions (Telnet): ----------------------------------- *Note, this guide assumes SXR80, for SXS80 change the firmware file name as appropriate 1. Put firmware file openwrt-qualcommax-ipq807x-netgear_sxr80-initramfs-uImage.itb in root of TFTP server available at 192.168.1.10. 2. Enable telnet by going to http://[ip of device]/debug.htm and clicking on the tickbox 'Enable telnet' 3. Telnet into the device and login using the same username and password as the web interface: 4. Run the following command: `fw_setenv bootcmd 'env default -a; saveenv; reset'` 5. Reboot the router, once the web interface is available again re-enable telnet via http://[ip of device]/debug.htm and telnet into the device. 6. Run the following command: `fw_printenv` It should look similar to the below: ``` baudrate=115200 bootargs=console=ttyMSM0,115200n8 bootcmd=mii write 0x0 0x0 0x800; sleep 1; nmrp; bootdni; boot_DNI_secureboot bootdelay=2 ipaddr=192.168.1.1 netmask=255.255.255.0 serverip=192.168.1.10 soc_version_major=2 soc_version_minor=0 ``` **If you see the message:** `Warning: Bad CRC, using default environment` **DO NOT CONTINUE, YOU WILL BRICK YOUR DEVICE** 7. Run the following command: `fw_setenv originalboot 'mii write 0x0 0x0 0x800; sleep 1; nmrp; bootdni; boot_DNI_secureboot'` (This should match what's in the bootcmd variable displayed in step 6) 8. Run the following commands: ``` fw_setenv wrttftp 'mii write 0x0 0x0 0x800; sleep 1; nmrp; if tftpboot openwrt-qualcommax-ipq807x-netgear_sxr80-initramfs-uImage.itb; then bootm; fi; bootdni; boot_DNI_secureboot' fw_setenv wrtboot 'mii write 0x0 0x0 0x800; sleep 1; nmrp; nand read 0x40000000 0x1980000 0x06d00000; bootm 0x40000000' fw_setenv bootcmd 'run wrttftp' ``` 9. Ensure SXR/S device is attached via ethernet (LAN port) to the same ethernet segment as the TFTP server. 10. Reboot the device, it should reboot into OpenWrt and be available on 192.168.1.1 11. Once OpenWrt has booted, update the bootcmd using the following command: `fw_setenv bootcmd 'run wrtboot'` 12. Flash the sysupgrade image 13. It should boot into OpenWrt References to SXK80 GPL source: https://www.downloads.netgear.com/files/GPL/SXK80-V3.2.0.108_gpl_src.tar.bz2.zip Signed-off-by: Flole Systems <flole@flole.de> Signed-off-by: Andrew Smith <gul.code@outlook.com> Link: https://github.com/openwrt/openwrt/pull/14939 Signed-off-by: Robert Marko <robimarko@gmail.com>
159 lines
3.4 KiB
Bash
159 lines
3.4 KiB
Bash
PART_NAME=firmware
|
|
REQUIRE_IMAGE_METADATA=1
|
|
|
|
RAMFS_COPY_BIN='fw_printenv fw_setenv head'
|
|
RAMFS_COPY_DATA='/etc/fw_env.config /var/lock/fw_printenv.lock'
|
|
|
|
xiaomi_initramfs_prepare() {
|
|
# Wipe UBI if running initramfs
|
|
[ "$(rootfs_type)" = "tmpfs" ] || return 0
|
|
|
|
local rootfs_mtdnum="$( find_mtd_index rootfs )"
|
|
if [ ! "$rootfs_mtdnum" ]; then
|
|
echo "unable to find mtd partition rootfs"
|
|
return 1
|
|
fi
|
|
|
|
local kern_mtdnum="$( find_mtd_index ubi_kernel )"
|
|
if [ ! "$kern_mtdnum" ]; then
|
|
echo "unable to find mtd partition ubi_kernel"
|
|
return 1
|
|
fi
|
|
|
|
ubidetach -m "$rootfs_mtdnum"
|
|
ubiformat /dev/mtd$rootfs_mtdnum -y
|
|
|
|
ubidetach -m "$kern_mtdnum"
|
|
ubiformat /dev/mtd$kern_mtdnum -y
|
|
}
|
|
|
|
platform_check_image() {
|
|
return 0;
|
|
}
|
|
|
|
platform_pre_upgrade() {
|
|
case "$(board_name)" in
|
|
redmi,ax6|\
|
|
xiaomi,ax3600|\
|
|
xiaomi,ax9000)
|
|
xiaomi_initramfs_prepare
|
|
;;
|
|
esac
|
|
}
|
|
|
|
platform_do_upgrade() {
|
|
case "$(board_name)" in
|
|
arcadyan,aw1000|\
|
|
cmcc,rm2-6|\
|
|
compex,wpq873|\
|
|
dynalink,dl-wrx36|\
|
|
edimax,cax1800|\
|
|
netgear,rax120v2|\
|
|
netgear,sxr80|\
|
|
netgear,sxs80|\
|
|
netgear,wax218|\
|
|
netgear,wax620|\
|
|
netgear,wax630|\
|
|
zbtlink,zbt-z800ax)
|
|
nand_do_upgrade "$1"
|
|
;;
|
|
buffalo,wxr-5950ax12)
|
|
CI_KERN_UBIPART="rootfs"
|
|
CI_ROOT_UBIPART="user_property"
|
|
buffalo_upgrade_prepare
|
|
nand_do_flash_file "$1" || nand_do_upgrade_failed
|
|
nand_do_restore_config || nand_do_upgrade_failed
|
|
buffalo_upgrade_optvol
|
|
;;
|
|
edgecore,eap102)
|
|
active="$(fw_printenv -n active)"
|
|
if [ "$active" -eq "1" ]; then
|
|
CI_UBIPART="rootfs2"
|
|
else
|
|
CI_UBIPART="rootfs1"
|
|
fi
|
|
# force altbootcmd which handles partition change in u-boot
|
|
fw_setenv bootcount 3
|
|
fw_setenv upgrade_available 1
|
|
nand_do_upgrade "$1"
|
|
;;
|
|
linksys,mx4200v1|\
|
|
linksys,mx4200v2|\
|
|
linksys,mx5300|\
|
|
linksys,mx8500)
|
|
boot_part="$(fw_printenv -n boot_part)"
|
|
if [ "$boot_part" -eq "1" ]; then
|
|
fw_setenv boot_part 2
|
|
CI_KERNPART="alt_kernel"
|
|
CI_UBIPART="alt_rootfs"
|
|
else
|
|
fw_setenv boot_part 1
|
|
CI_UBIPART="rootfs"
|
|
fi
|
|
fw_setenv boot_part_ready 3
|
|
fw_setenv auto_recovery yes
|
|
nand_do_upgrade "$1"
|
|
;;
|
|
prpl,haze|\
|
|
qnap,301w|\
|
|
spectrum,sax1v1k)
|
|
kernelname="0:HLOS"
|
|
rootfsname="rootfs"
|
|
mmc_do_upgrade "$1"
|
|
;;
|
|
redmi,ax6|\
|
|
xiaomi,ax3600|\
|
|
xiaomi,ax9000)
|
|
# Make sure that UART is enabled
|
|
fw_setenv boot_wait on
|
|
fw_setenv uart_en 1
|
|
|
|
# Enforce single partition.
|
|
fw_setenv flag_boot_rootfs 0
|
|
fw_setenv flag_last_success 0
|
|
fw_setenv flag_boot_success 1
|
|
fw_setenv flag_try_sys1_failed 8
|
|
fw_setenv flag_try_sys2_failed 8
|
|
|
|
# Kernel and rootfs are placed in 2 different UBI
|
|
CI_KERN_UBIPART="ubi_kernel"
|
|
CI_ROOT_UBIPART="rootfs"
|
|
nand_do_upgrade "$1"
|
|
;;
|
|
yuncore,ax880)
|
|
active="$(fw_printenv -n active)"
|
|
if [ "$active" -eq "1" ]; then
|
|
CI_UBIPART="rootfs_1"
|
|
else
|
|
CI_UBIPART="rootfs"
|
|
fi
|
|
# force altbootcmd which handles partition change in u-boot
|
|
fw_setenv bootcount 3
|
|
fw_setenv upgrade_available 1
|
|
nand_do_upgrade "$1"
|
|
;;
|
|
zte,mf269)
|
|
CI_KERN_UBIPART="ubi_kernel"
|
|
CI_ROOT_UBIPART="rootfs"
|
|
nand_do_upgrade "$1"
|
|
;;
|
|
zyxel,nbg7815)
|
|
local config_mtdnum="$(find_mtd_index 0:bootconfig)"
|
|
[ -z "$config_mtdnum" ] && reboot
|
|
part_num="$(hexdump -e '1/1 "%01x|"' -n 1 -s 168 -C /dev/mtd$config_mtdnum | cut -f 1 -d "|" | head -n1)"
|
|
if [ "$part_num" -eq "0" ]; then
|
|
kernelname="0:HLOS"
|
|
rootfsname="rootfs"
|
|
mmc_do_upgrade "$1"
|
|
else
|
|
kernelname="0:HLOS_1"
|
|
rootfsname="rootfs_1"
|
|
mmc_do_upgrade "$1"
|
|
fi
|
|
;;
|
|
*)
|
|
default_do_upgrade "$1"
|
|
;;
|
|
esac
|
|
}
|