openwrt/target/linux/qualcommax/image/ipq807x.mk

285 lines
7.7 KiB
Makefile
Raw Normal View History

define Device/FitImage
KERNEL_SUFFIX := -uImage.itb
KERNEL = kernel-bin | libdeflate-gzip | fit gzip $$(KDIR)/image-$$(DEVICE_DTS).dtb
KERNEL_NAME := Image
endef
define Device/FitImageLzma
KERNEL_SUFFIX := -uImage.itb
KERNEL = kernel-bin | lzma | fit lzma $$(KDIR)/image-$$(DEVICE_DTS).dtb
KERNEL_NAME := Image
endef
define Device/EmmcImage
IMAGES += factory.bin sysupgrade.bin
IMAGE/factory.bin := append-rootfs | pad-rootfs | pad-to 64k
IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-to 64k | sysupgrade-tar rootfs=$$$$@ | append-metadata
endef
define Device/UbiFit
KERNEL_IN_UBI := 1
IMAGES := factory.ubi sysupgrade.bin
IMAGE/factory.ubi := append-ubi
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
endef
ipq807x: add Xiaomi AX3600 Xiaomi AX3600 is a budget 802.11ax dual-band router/AP. Specifications: * CPU: Qualcomm IPQ8071A Quad core Cortex-A53 1.4GHz * RAM: 512MB of DDR3 * Storage: 256MB of parallel NAND * Ethernet: 4x1G RJ45 ports (QCA8075) with 1x status LED per port * WLAN: * PCI based Qualcomm QCA9889 1x1 802.11ac Wawe 2 for IoT * 2.4GHz: Qualcomm QCN5024 2x2 802.11b/g/n/ax 574 Mbps PHY rate * 5GHz: Qualcomm QCN5054 4x4@80MHz or 2x2@160MHz 802.11a/b/g/n/ac/ax 2402 PHY rate * LED-s: * System (Blue and Yellow) * IoT (Blue) * Network (Blue and Yellow) * Buttons: 1x Soft reset * Power: 12V DC Jack Installation instructions: Obtaining SSH access is mandatory https://openwrt.org/inbox/toh/xiaomi/xiaomi_ax3600#obtain_ssh_access Installation is done by the ubiformat method, through SSH: 1. Open an SSH shell to the router 2. Copy the file openwrt-ipq807x-generic-xiaomi_ax3600-initramfs-factory.ubi to the /tmp directory 3. Check which rootfs partition is your router booted in (0 = rootfs | 1 = rootfs_1): nvram get flag_boot_rootfs 4. Find the rootfs and rootfs_1 mtd indexes respectively: cat /proc/mtd Please confirm if mtd12 and mtd13 are the correct indexes from above! 5. Use the command ubiformat to flash the opposite mtd with UBI image: If nvram get flag_boot_rootfs returned 0: ubiformat /dev/mtd13 -y -f /tmp/openwrt-ipq807x-generic-xiaomi_ax3600-initramfs-factory.ubi -s 2048 -O 2048 && nvram set flag_boot_rootfs=1 && nvram set flag_last_success=1 && nvram commit otherwise: ubiformat /dev/mtd12 -y -f /tmp/openwrt-ipq807x-generic-xiaomi_ax3600-initramfs-factory.ubi -s 2048 -O 2048 && nvram set flag_boot_rootfs=0 && nvram set flag_last_success=0 && nvram commit 6. Reboot the device by: reboot Previous commands flashed an ubinized OpenWrt initramfs that will serve as the intermediate step since OpenWrt uses unified rootfs in order to fully utilize NAND and provide enough space for packages. Continue in order to pernamently flash OpenWrt: 7. SSH into OpenWrt from one of the LAN ports 8. Copy the file openwrt-ipq807x-generic-xiaomi_ax3600-squashfs-sysupgrade.bin to the /tmp directory 9. Sysupgrade the device: sysupgrade -n /tmp/openwrt-ipq807x-generic-xiaomi_ax3600-squashfs-sysupgrade.bin Device will reboot with OpenWrt, and then sysupgrade can be used to upgrade the device when desired. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> Signed-off-by: Robert Marko <robimarko@gmail.com>
2021-05-19 19:04:43 +00:00
qualcommax: ipq807x: add support for Netgear WAX630 ``` Specifications: * CPU: Qualcomm IPQ8074A, SoC Version: 2.0, Quad core 1651 MHz * RAM: 1 GiB of DDR3 466 MHz * Flash: NAND 512 MiB (Winbond W29N04GZ) * 6 RGB LEDs: Power, LAN1, LAN2, 2.4GHz, 5GHz H and 5GHz L * UART: One 4-pin populated header next to the heatsink and a chip. GND RXD TXD, beginning from the external antennas. 115200n8. Lan: * One 100/1000/2.5GBASE-T Gigabit Ethernet 802.3bt/at * One 100/1000 Gigabit Ethernet Wlan: * 4x4 in 2.4GHz : 802.11b/g/n/ax * 4x4 in 5.0GHz L: 802.11a/n/ac/ax * 4x4 in 5.0GHz H: 802.11a/n/ac/ax * OFDM and OFDMA * Bidir and MU-MIMO * Internal antenna 2.86/4.41/4.98 dBi (2.4GHz/5GHz L/5GHz H) Power: * 802.3bt/at 30.1W * DC 12V/3.5A Mounting: Wall and ceiling ``` ``` 1. Download the OpenWrt initramfs image. Copy the image to a TFTP server 2. Connect to the console on the AP, and connect the LAN port to your LAN 3. Stop auto boot to get to U-boot shell, interrupt the autoboot process by pressing '0' when prompted 4. Set active_fw in env 4. Set active_fw in env # setenv active_fw 1 5. Transfer the initramfs image with TFTP # setenv serverip 192.168.1.10 (IP of TFTP server host) # setenv ipaddr 192.168.1.1 (IP used by the router for getting the image, must be in the same subnet as the TFTP host) # tftpboot openwrt-qualcommax-ipq807x-netgear_wax630-initramfs-uImage.itb 6. Reboot and load the image # bootm 7. SCP factory image to the AP # scp openwrt-qualcommax-ipq807x-netgear_wax630-squashfs-factory.ubi root@192.168.1.1:/tmp/ 8. Connect to device using SSH (use the LAN port) 9. Flash squashfs-factory.ubi from within the initramfs instance of OpenWRT Before you flash, please check your mtd partitions where mtdX is the right mtd rootfs partition. # cat /proc/mtd (To check MTD partitions) # ubiformat /dev/mtd18 -y -f /tmp/openwrt-qualcommax-ipq807x-netgear_wax630-squashfs-factory.ubi 10. Set active_fw to 0 # /usr/sbin/fw_setenv active_fw 0 11. Reboot the AP and your done # reboot ``` Reviewed-by: Robert Marko <robimarko@gmail.com> Signed-off-by: Kristian Skramstad <kristian+github@83.no>
2023-10-01 14:28:24 +00:00
define Build/wax6xx-netgear-tar
mkdir $@.tmp
mv $@ $@.tmp/nand-ipq807x-apps.img
md5sum $@.tmp/nand-ipq807x-apps.img | cut -c 1-32 > $@.tmp/nand-ipq807x-apps.md5sum
echo $(DEVICE_MODEL) > $@.tmp/metadata.txt
echo $(DEVICE_MODEL)"_V9.9.9.9" > $@.tmp/version
tar -C $@.tmp/ -cf $@ .
rm -rf $@.tmp
endef
define Device/arcadyan_aw1000
$(call Device/FitImage)
$(call Device/UbiFit)
DEVICE_VENDOR := Arcadyan
DEVICE_MODEL := AW1000
BLOCKSIZE := 256k
PAGESIZE := 4096
DEVICE_DTS_CONFIG := config@hk09
SOC := ipq8072
DEVICE_PACKAGES := ipq-wifi-arcadyan_aw1000 kmod-spi-gpio \
kmod-gpio-nxp-74hc164 kmod-usb-serial-option uqmi
endef
TARGET_DEVICES += arcadyan_aw1000
ipq807x: add support for Buffalo WXR-5950AX12 Buffalo WXR-5950AX12 is a 2.4/5 GHz band 11ax (Wi-Fi 6) router, based on IPQ8074A. Specification: - SoC : Qualcomm IPQ8074A - RAM : DDR3 1024 MiB (2x Nanya NT5CC256M16ER-EK) - Flash : RAW NAND 256 MiB (Winbond W29N02GZBIBA) - WLAN : 2.4/5 GHz (IPQ8074A) - Ethernet : 5 ports - WAN : 100/1000/2500/10000 Mbps x1 (AQR113C) - LAN : 100/1000/2500/10000 Mbps x1 (AQR113C), 10/100/1000 Mbps x3 (QCA8075) - LED/Keys : 8x/5x - UART : pin header on PCB (J7) - assignment: 3.3V, GND, TX, RX from disc marking - settings : 115200n8 - Power : 12 VDC, 4 A Flash instruction using initramfs image: 1. Prepare TFTP server with IP address 192.168.11.10 2. Rename OpenWrt initramfs image to "WXR-5950AX12-initramfs.uImage and place it to TFTP directory 3. Hold AOSS (WPS) button and power on WXR-5950AX12 4. WXR-5950AX12 downloads initramfs image from TFTP server and boots with it automatically 5. Upload sysupgrade image to WXR-5950AX12 and perform sysupgrade 6. Wait ~120 seconds to complete flashing Partition layout: 0x000000000000-0x000000100000 : "0:sbl1" 0x000000100000-0x000000200000 : "0:mibib" 0x000000200000-0x000000280000 : "0:bootconfig" 0x000000280000-0x000000300000 : "0:bootconfig1" 0x000000300000-0x000000600000 : "0:qsee" 0x000000600000-0x000000900000 : "0:qsee_1" 0x000000900000-0x000000980000 : "0:devcfg" 0x000000980000-0x000000a00000 : "0:devcfg_1" 0x000000a00000-0x000000a80000 : "0:apdp" 0x000000a80000-0x000000b00000 : "0:apdp_1" 0x000000b00000-0x000000b80000 : "0:rpm" 0x000000b80000-0x000000c00000 : "0:rpm_1" 0x000000c00000-0x000000c80000 : "0:cdt" 0x000000c80000-0x000000d00000 : "0:cdt_1" 0x000000d00000-0x000000d80000 : "0:appsblenv" 0x000000d80000-0x000000e80000 : "0:appsbl" 0x000000e80000-0x000000f80000 : "0:appsbl_1" 0x000000f80000-0x000001000000 : "0:art" 0x000001000000-0x000001080000 : "0:art_1" 0x000001080000-0x000001100000 : "0:orgdata" 0x000001100000-0x000001180000 : "0:orgdata_1" 0x000001180000-0x000005180000 : "rootfs" 0x000005180000-0x000009180000 : "rootfs_recover" 0x000009180000-0x000010000000 : "user_property" Notes: - WXR-5950AX12 has 2x OS images on NAND flash. The 1st image is for normal operation and the 2nd one is for recoverying or firmware upgrading on stock. - Stock U-Boot checks MD5 hashes in "fw_hash" volume in each "root*" partition when booting. This is just a comparation of hash strings. Behaviors: - both "fw_hash" volumes exist, hashes are rootfs == rootfs_recover ---> boot from rootfs - both "fw_hash" volumes exist, hashes are rootfs != rootfs_recover ---> boot from rootfs_recover Note: this behavior is used for firmware upgrading on stock - "fw_hash" volume in rootfs is missing ---> boot from rootfs_recover - "fw_hash" volume in rootfs_recover is missing ---> boot from rootfs - "fw_hash" volumes in both root* partition are missing ---> boot from rootfs_recover Reverting to stock firmware: 1. Decrypt official image by buffalo-enc and remove header example of decryption: $ buffalo-enc -i wxr_5950ax12_jp_305 -o wxr_5950ax12_jp_305.dec \ -d -k olaffuB -O 0xc8 example of removing header (v3.05): - before $ hexdump -n 64 -v -C wxr_5950ax12_jp_305.dec 00000000 57 58 52 2d 35 39 35 30 41 58 31 32 5f 33 2e 30 |WXR-5950AX12_3.0| 00000010 35 5f 31 2e 30 31 5f 4a 50 5f 6a 70 5f 71 63 61 |5_1.01_JP_jp_qca| 00000020 0a 66 69 6c 65 6c 65 6e 3d 34 35 33 35 30 39 31 |.filelen=4535091| 00000030 32 0a 55 42 49 23 01 00 00 00 00 00 00 00 00 00 |2.UBI#..........| 00000040 - after $ hexdump -n 64 -v -C wxr_5950ax12_jp_305.ubi 00000000 55 42 49 23 01 00 00 00 00 00 00 00 00 00 00 00 |UBI#............| 00000010 00 00 08 00 00 00 10 00 78 cf c4 91 00 00 00 00 |........x.......| 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000030 00 00 00 00 00 00 00 00 00 00 00 00 3d 2a 64 fd |............=*d.| 00000040 2. Boot WXR-5950AX12 with OpenWrt initramfs image 3. Upload modified stock image to WXR-5950AX12 4. Find partitions "rootfs" and "rootfs_recover" example: root@OpenWrt:/# cat /proc/mtd dev: size erasesize name ... mtd22: 04000000 00020000 "rootfs" mtd23: 04000000 00020000 "rootfs_recover" ... in this case, "rootfs" is mtd22 and "rootfs_recover" is mtd23 5. Format "rootfs"/"rootfs_recover" partition with the uploaded image example: ubiformat /dev/mtd22 -f /tmp/wxr_5950ax12_jp_305.ubi ubiformat /dev/mtd23 -f /tmp/wxr_5950ax12_jp_305.ubi 6. Remove "rootfs"/"rootfs_data" volume from user_property partition example: . /lib/upgrade/nand.sh UBI=$(nand_attach_ubi user_property) ubirmvol /dev/$UBI -N rootfs ubirmvol /dev/$UBI -N rootfs_data 7. Reboot MAC addresses: LAN : 50:C4:DD:xx:xx:28 (0:APPSBLENV, ethaddr (text)) WAN : 50:C4:DD:xx:xx:28 (0:APPSBLENV, ethaddr (text)) 2.4 GHz: 50:C4:DD:xx:xx:30 (0:APPSBLENV, wlan0addr (text)) 5 GHz : 50:C4:DD:xx:xx:38 (0:APPSBLENV, wlan1addr (text)) Reviewed-by: Robert Marko <robimarko@gmail.com> Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2023-01-23 04:01:13 +00:00
define Device/buffalo_wxr-5950ax12
$(call Device/FitImage)
DEVICE_VENDOR := Buffalo
DEVICE_MODEL := WXR-5950AX12
BLOCKSIZE := 128k
PAGESIZE := 2048
DEVICE_DTS_CONFIG := config@hk01
SOC := ipq8074
IMAGES := sysupgrade.bin
IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata
ipq807x: add support for Buffalo WXR-5950AX12 Buffalo WXR-5950AX12 is a 2.4/5 GHz band 11ax (Wi-Fi 6) router, based on IPQ8074A. Specification: - SoC : Qualcomm IPQ8074A - RAM : DDR3 1024 MiB (2x Nanya NT5CC256M16ER-EK) - Flash : RAW NAND 256 MiB (Winbond W29N02GZBIBA) - WLAN : 2.4/5 GHz (IPQ8074A) - Ethernet : 5 ports - WAN : 100/1000/2500/10000 Mbps x1 (AQR113C) - LAN : 100/1000/2500/10000 Mbps x1 (AQR113C), 10/100/1000 Mbps x3 (QCA8075) - LED/Keys : 8x/5x - UART : pin header on PCB (J7) - assignment: 3.3V, GND, TX, RX from disc marking - settings : 115200n8 - Power : 12 VDC, 4 A Flash instruction using initramfs image: 1. Prepare TFTP server with IP address 192.168.11.10 2. Rename OpenWrt initramfs image to "WXR-5950AX12-initramfs.uImage and place it to TFTP directory 3. Hold AOSS (WPS) button and power on WXR-5950AX12 4. WXR-5950AX12 downloads initramfs image from TFTP server and boots with it automatically 5. Upload sysupgrade image to WXR-5950AX12 and perform sysupgrade 6. Wait ~120 seconds to complete flashing Partition layout: 0x000000000000-0x000000100000 : "0:sbl1" 0x000000100000-0x000000200000 : "0:mibib" 0x000000200000-0x000000280000 : "0:bootconfig" 0x000000280000-0x000000300000 : "0:bootconfig1" 0x000000300000-0x000000600000 : "0:qsee" 0x000000600000-0x000000900000 : "0:qsee_1" 0x000000900000-0x000000980000 : "0:devcfg" 0x000000980000-0x000000a00000 : "0:devcfg_1" 0x000000a00000-0x000000a80000 : "0:apdp" 0x000000a80000-0x000000b00000 : "0:apdp_1" 0x000000b00000-0x000000b80000 : "0:rpm" 0x000000b80000-0x000000c00000 : "0:rpm_1" 0x000000c00000-0x000000c80000 : "0:cdt" 0x000000c80000-0x000000d00000 : "0:cdt_1" 0x000000d00000-0x000000d80000 : "0:appsblenv" 0x000000d80000-0x000000e80000 : "0:appsbl" 0x000000e80000-0x000000f80000 : "0:appsbl_1" 0x000000f80000-0x000001000000 : "0:art" 0x000001000000-0x000001080000 : "0:art_1" 0x000001080000-0x000001100000 : "0:orgdata" 0x000001100000-0x000001180000 : "0:orgdata_1" 0x000001180000-0x000005180000 : "rootfs" 0x000005180000-0x000009180000 : "rootfs_recover" 0x000009180000-0x000010000000 : "user_property" Notes: - WXR-5950AX12 has 2x OS images on NAND flash. The 1st image is for normal operation and the 2nd one is for recoverying or firmware upgrading on stock. - Stock U-Boot checks MD5 hashes in "fw_hash" volume in each "root*" partition when booting. This is just a comparation of hash strings. Behaviors: - both "fw_hash" volumes exist, hashes are rootfs == rootfs_recover ---> boot from rootfs - both "fw_hash" volumes exist, hashes are rootfs != rootfs_recover ---> boot from rootfs_recover Note: this behavior is used for firmware upgrading on stock - "fw_hash" volume in rootfs is missing ---> boot from rootfs_recover - "fw_hash" volume in rootfs_recover is missing ---> boot from rootfs - "fw_hash" volumes in both root* partition are missing ---> boot from rootfs_recover Reverting to stock firmware: 1. Decrypt official image by buffalo-enc and remove header example of decryption: $ buffalo-enc -i wxr_5950ax12_jp_305 -o wxr_5950ax12_jp_305.dec \ -d -k olaffuB -O 0xc8 example of removing header (v3.05): - before $ hexdump -n 64 -v -C wxr_5950ax12_jp_305.dec 00000000 57 58 52 2d 35 39 35 30 41 58 31 32 5f 33 2e 30 |WXR-5950AX12_3.0| 00000010 35 5f 31 2e 30 31 5f 4a 50 5f 6a 70 5f 71 63 61 |5_1.01_JP_jp_qca| 00000020 0a 66 69 6c 65 6c 65 6e 3d 34 35 33 35 30 39 31 |.filelen=4535091| 00000030 32 0a 55 42 49 23 01 00 00 00 00 00 00 00 00 00 |2.UBI#..........| 00000040 - after $ hexdump -n 64 -v -C wxr_5950ax12_jp_305.ubi 00000000 55 42 49 23 01 00 00 00 00 00 00 00 00 00 00 00 |UBI#............| 00000010 00 00 08 00 00 00 10 00 78 cf c4 91 00 00 00 00 |........x.......| 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000030 00 00 00 00 00 00 00 00 00 00 00 00 3d 2a 64 fd |............=*d.| 00000040 2. Boot WXR-5950AX12 with OpenWrt initramfs image 3. Upload modified stock image to WXR-5950AX12 4. Find partitions "rootfs" and "rootfs_recover" example: root@OpenWrt:/# cat /proc/mtd dev: size erasesize name ... mtd22: 04000000 00020000 "rootfs" mtd23: 04000000 00020000 "rootfs_recover" ... in this case, "rootfs" is mtd22 and "rootfs_recover" is mtd23 5. Format "rootfs"/"rootfs_recover" partition with the uploaded image example: ubiformat /dev/mtd22 -f /tmp/wxr_5950ax12_jp_305.ubi ubiformat /dev/mtd23 -f /tmp/wxr_5950ax12_jp_305.ubi 6. Remove "rootfs"/"rootfs_data" volume from user_property partition example: . /lib/upgrade/nand.sh UBI=$(nand_attach_ubi user_property) ubirmvol /dev/$UBI -N rootfs ubirmvol /dev/$UBI -N rootfs_data 7. Reboot MAC addresses: LAN : 50:C4:DD:xx:xx:28 (0:APPSBLENV, ethaddr (text)) WAN : 50:C4:DD:xx:xx:28 (0:APPSBLENV, ethaddr (text)) 2.4 GHz: 50:C4:DD:xx:xx:30 (0:APPSBLENV, wlan0addr (text)) 5 GHz : 50:C4:DD:xx:xx:38 (0:APPSBLENV, wlan1addr (text)) Reviewed-by: Robert Marko <robimarko@gmail.com> Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
2023-01-23 04:01:13 +00:00
DEVICE_PACKAGES := ipq-wifi-buffalo_wxr-5950ax12
endef
TARGET_DEVICES += buffalo_wxr-5950ax12
define Device/compex_wpq873
$(call Device/FitImage)
$(call Device/UbiFit)
DEVICE_VENDOR := Compex
DEVICE_MODEL := WPQ873
BLOCKSIZE := 128k
PAGESIZE := 2048
DEVICE_DTS_CONFIG := config@hk09.wpq873
SOC := ipq8072
DEVICE_PACKAGES := ipq-wifi-compex_wpq873
IMAGE/factory.ubi := append-ubi | qsdk-ipq-factory-nand
endef
TARGET_DEVICES += compex_wpq873
ipq807x: add Dynalink DL-WRX36 Dynalink DL-WRX36 is a AX WIFI router with 4 1G and 1 2.5G ports. Specifications: • CPU: Qualcomm IPQ8072A Quad core Cortex-A53 2.2GHz • RAM: 1024MB of DDR3 • Storage: 256MB Nand • Ethernet: 4x 1G RJ45 ports (QCA8075) + 1 2.5G Port (QCA8081) • WLAN: 2.4GHz: Qualcomm QCN5024 2x2 802.11b/g/n/ax 1174 Mbps PHY rate 5GHz: Qualcomm QCN5054 4x4 802.11a/b/g/n/ac/ax 2402 PHY rate • 1x USB 3.0 • 1 gpio-controlled dual color led (blue/red) • Buttons: 1x soft reset / 1x WPS • Power: 12V DC jack A poulated serial header is onboard (J1004) the connector size is a 4-pin 2.0 mm JST PH. RX/TX is working, u-boot bootwait is active, secure boot is enabled. Notes: - Serial is completely deactivated in the stock firmware image. - This commit adds only single partition support, that means sysupgrade is upgrading the current rootfs partition. - Installation can be done by serial connection or SSH access on OEM firmware Installation Instructions: Most part of the installation is performed from an initramfs image running OpenWrt, and there are two options to boot it. Boot initramfs option 1: Using serial connection (3.3V) 1. Stop auto boot to get to U-boot shell 2. Transfer initramfs image to device (openwrt-ipq807x-generic-dynalink_dl-wrx36-initramfs-uImage.itb) Tested using TFTP and a FAT-formatted USB flash drive. 3. Boot the initramfs image # bootm Boot initramfs option 2: From SSH access on OEM firmware 1. Copy the initramfs image to a FAT-formatted flash drive (tested on single-partition drive) and connect it to device USB port. 2. Change boot command so it loads the initramfs image on next boot Fallback to OEM firmware is provided. # fw_setenv bootcmd 'usb start && fatload usb 0:1 0x44000000 openwrt-ipq807x-generic-dynalink_dl-wrx36-initramfs-uImage.itb && bootm 0x44000000; bootipq' 3. Reboot the device to boot the initramfs # reboot Install OpenWrt from initramfs image: 1. Use SCP (or other way) to transfer OpenWrt factory image 2. Connect to device using SSH (on a LAN port) 3. Check MTD partition table. rootfs and rootfs_1 should be mtd18 and mtd20 depending on current OEM slot. # cat /proc/mtd 4. Do a ubiformat to both rootfs partitions: # ubiformat /dev/mtd18 -y -f /path_to/factory_image # ubiformat /dev/mtd20 -y -f /path_to/factory_image 5. Set U-boot env variable: mtdids # fw_setenv mtdids 'nand0=nand0' 6. Get offset of mtd18 to determine current OEM slot - If current OEM slot is 1, offset is 16777216 (0x1000000) - If current OEM slot is 2, offset is 127926272 (0x7a00000) # cat /sys/class/mtd/mtd18/offset 7. Set U-boot env variable: mtdparts If current OEM slot is 1, run: # fw_setenv mtdparts 'mtdparts=nand0:0x6100000@0x1000000(fs),0x6100000@0x7a00000(fs_1)' If current OEM slot is 2, run: # fw_setenv mtdparts 'mtdparts=nand0:0x6100000@0x7a00000(fs),0x6100000@0x1000000(fs_1)' 8. Set U-boot env variable: bootcmd # fw_setenv bootcmd 'setenv bootargs console=ttyMSM0,115200n8 ubi.mtd=rootfs rootfstype=squashfs rootwait; ubi part fs; ubi read 0x44000000 kernel; bootm 0x44000000#config@rt5010w-d350-rev0' 9. Reboot the device # reboot Note: this PR adds only single partition support, that means sysupgrade is upgrading the current rootfs partition Signed-off-by: Dirk Buchwalder <buchwalder@posteo.de>
2022-08-05 09:38:37 +00:00
define Device/dynalink_dl-wrx36
$(call Device/FitImage)
$(call Device/UbiFit)
DEVICE_VENDOR := Dynalink
DEVICE_MODEL := DL-WRX36
BLOCKSIZE := 128k
PAGESIZE := 2048
DEVICE_DTS_CONFIG := config@rt5010w-d350-rev0
SOC := ipq8072
DEVICE_PACKAGES := ipq-wifi-dynalink_dl-wrx36
endef
TARGET_DEVICES += dynalink_dl-wrx36
define Device/edgecore_eap102
$(call Device/FitImage)
$(call Device/UbiFit)
DEVICE_VENDOR := Edgecore
DEVICE_MODEL := EAP102
BLOCKSIZE := 128k
PAGESIZE := 2048
DEVICE_DTS_CONFIG := config@ac02
SOC := ipq8071
DEVICE_PACKAGES := ipq-wifi-edgecore_eap102
IMAGE/factory.ubi := append-ubi | qsdk-ipq-factory-nand
endef
TARGET_DEVICES += edgecore_eap102
ipq807x: add Edimax CAX1800 Edimax CAX1800 is a 802.11 ax dual-band AP with PoE. AP can be ceiling or wall mount. Specifications: • CPU: Qualcomm IPQ8070A Quad core Cortex-A53 1.4GHz • RAM: 512MB of DDR3 • Storage: 128MB NAND (contains rootfs) / 8MB NOR (contains art and uboot-env) • Ethernet: 1x 1G RJ45 port (QCA8072) PoE • WLAN: 2.4GHz: Qualcomm QCN5024 2x2 802.11b/g/n/ax 574 Mbps PHY rate 5GHz: Qualcomm QCN5054 2x2 802.11a/b/g/n/ac/ax 1201 PHY rate • LEDs: 3 x GPIO-controlled System-LEDs (form one virtual RGB System-LED) black_small_square Buttons: 1x soft reset black_small_square Power: 12V DC jack or PoE (802.3af ) An unpopulated serial header is onboard. RX/TX is working, bootwait is active, secure boot is not enabled. SSH can be activated in the stock firmware, but it drops only to a limited shell . Installation Instructions: black_small_square obtain serial access black_small_square stop auto boot black_small_square tftpboot the initramfs image (serverip is set to 192.168.99.8 in uboot) black_small_square bootm black_small_square copy openwrt-ipq807x-generic-edimax_cax1800-squashfs-nand-factory.ubi to the device black_small_square write the image to the NAND: black_small_square cat /proc/mtd and look for rootfs partition (should be mtd0) black_small_square ubiformat /dev/mtd0 -f -y openwrt-ipq807x-generic-edimax_cax1800-squashfs- nand-factory.ubi black_small_square reboot Note: Device is not using dual partitioning (NAND contains other partitions with different manufacture data etc.) Draytek VigorAP 960C and Lancom LW-600 both look similar, but I haven't checked them. Signed-off-by: Dirk Buchwalder <buchwalder@posteo.de>
2022-01-01 22:17:51 +00:00
define Device/edimax_cax1800
$(call Device/FitImage)
$(call Device/UbiFit)
DEVICE_VENDOR := Edimax
DEVICE_MODEL := CAX1800
BLOCKSIZE := 128k
PAGESIZE := 2048
DEVICE_DTS_CONFIG := config@ac03
SOC := ipq8070
DEVICE_PACKAGES := ipq-wifi-edimax_cax1800
endef
TARGET_DEVICES += edimax_cax1800
ipq807x: add support for Netgear RAX120v2 Netgear Nighthawk RAX120v2 AX WIFI router with 5 1G and 1 5G ports. The majority of the code is based on @jewwest's PR #11830. Specifications: * CPU: Qualcomm IPQ8074 Quad core Cortex-A53 2.2GHz * RAM: 1024MB of DDR3 (Nanya NT5CC256M16EP-EK × 2) * Flash: SPI-NAND 512 MiB (Winbond W29N04GZBIBA) * Ethernet: 4x 10/100/1000 Mbps LAN, 1x 10/100/1000 Mbps WAN (Qualcomm QCA8075), 1x 10/100/1000/2500/5000 Mbps LAN/WAN (Aquantia AQR111B0 PHY) * Wi-Fi: * 2.4 GHz: Qualcomm QCN5024 4x4 * 2x 5 GHz: Qualcomm QCN5054 4x4 * USB: 2x USB 3.0 * LEDs: Power, 2.4GHz & 5GHz Radio, WPS, WAN, USB1 & USB2, 5G LAN * Keys: LEDs On/Off, Power, Reset, RFKILL, WPS * UART: Marked J9003 VCC TX RX GND, beginning from "1". 3.3v, 115200n8 * Power: 19 VDC, 3.1 A Installation: * Flashing OpenWrt is done in two steps: a) Flash *-squashfs-web-ui-factory.img from stock UI (thanks to @wangyu-). This writes an initramfs based OpenWrt image onto the RAX120v2 b) From OpenWrt flash the *-squashfs-sysupgrade.bin using LuCI or the commandline * U-Boot allows booting an initramfs image via TFTP: - Set ip of your PC to 192.168.1.100 - At the serial console interrupt boot at "Hit any key to stop autoboot:" - In u-boot run `tftpsrv` - On your PC send the OpenWrt initramfs image: tftp 192.168.1.1 -m binary -c put openwrt-ipq807x-generic-netgear_rax120v2-initramfs-uImage.itb Make 5G Aquantia phy work: For the 5G port labeled 'lan5' to work a firmware is needed. This can be loaded in u-boot by writing the firmware to the correct mtd partition. The firmware file found in the Netgear stock firmware under /lib/firmware/ named 'AQR-G3_v4.3.C-AQR_DNI_DR-EQ35AX8-R-prov1_ID23888_VER1311.cld' is needed and has to be converted to a MBN file. The `mkheader.py` script used here can be found in the Netgear V1.2.8.40 GPL source, under 'git_home/u-boot.git/tools/mkheader.py' Convert the CLD file to MBN using: $ python2 mkheader.py 0x44000000 0x13 <*.cld file> aqr_4.3.C.mbn This MBN file can then be flashed to the MTD partition to be used by u-boot. The necessary files can also be found in https://github.com/boretom/openwrt-fork/tree/rax120v2/aquantia-firmware * Write MBN file to MTD partition to be loaded automatically by u-boot: U-boot automatically tries to load the firmware from nand at address 0x7e00000 which corresponds to `/dev/mtd25` in OpenWrt. - find ETHPHYFW partition while running OpenWrt (expected: /dev/mtd25) $ fgrep -i 'ethphyfw' /proc/mtd mtd25: 00080000 00020000 "ethphyfw - copy mbn file to /tmp/ folder of the router $ scp aqr-v4.3.C.mbn 192.168.1.1:/tmp/ - write mbn file to ethphyfw partition $ mtd write /tmp/aqr_v4.3.C.mbn /dev/mtd25 Revert to stock firmware: * Flash the stock firmware to the bootloader using TFTP/NMRP. References to RAX120v2 GPL source: https://www.downloads.netgear.com/files/GPL/RAX120-V1.2.8.40_gpl_src.zip Reviewed-by: Robert Marko <robimarko@gmail.com> Signed-off-by: Thomas Kupper <thomas.kupper@gmail.com>
2023-05-05 15:04:33 +00:00
define Device/netgear_rax120v2
$(call Device/FitImage)
$(call Device/UbiFit)
DEVICE_VENDOR := Netgear
DEVICE_MODEL := RAX120v2
BLOCKSIZE := 128k
PAGESIZE := 2048
DEVICE_DTS_CONFIG := config@hk01
SOC := ipq8074
KERNEL_SIZE := 29696k
NETGEAR_BOARD_ID := RAX120
NETGEAR_HW_ID := 29765589+0+512+1024+4x4+8x8
DEVICE_PACKAGES := ipq-wifi-netgear_rax120v2 kmod-spi-gpio \
kmod-spi-bitbang kmod-gpio-nxp-74hc164 kmod-hwmon-g761
IMAGES = web-ui-factory.img sysupgrade.bin
IMAGE/web-ui-factory.img := append-image initramfs-uImage.itb | \
pad-offset $$$$(BLOCKSIZE) 64 | append-uImage-fakehdr filesystem | \
netgear-dni
IMAGE/sysupgrade.bin := append-kernel | pad-offset $$$$(BLOCKSIZE) 64 | \
append-uImage-fakehdr filesystem | sysupgrade-tar kernel=$$$$@ | \
append-metadata
endef
TARGET_DEVICES += netgear_rax120v2
define Device/netgear_wax218
ipq807x: add support for Netgear WAX620 ``` Specifications: * CPU: Qualcomm IPQ8072A, SoC Version: 2.0, Quad core Cortex-A53 1.6896 GHz * RAM: 1 GiB of DDR4 600 MHz * Flash: NAND 2x256 MiB (Macronix MX30UF2G18AC) * 4 RGB LEDs: Power, LAN, 2.4GHz and 5GHz * UART: Two 4-pin unpopulated headers under the LEDs. Use the header closest to LED 4 and 5. They are marked with a white stroke. TX RX GND, beginning from "4". 115200n8. Lan: * One 100/1000/2.5GBASE-T Gigabit Ethernet (QCA8081) Wlan: * 4x4 in 2.4GHz: 802.11b/g/n/ax * 4x4 in 5.0GHz: 802.11a/n/ac/ax * OFDM and OFDMA * Bidir and MU-MIMO * Internal antenna 3.1/4.3 dBi (2.4GHz/5GHz) Power: * PoE+ 802.3at/af 25.5W * DC 12V 2.5A ``` ``` Note: The OpenWrt image is setup with DHCP and not a static IP. 1. Download the OpenWrt initramfs image. Copy the image to a TFTP server 2. Connect to console on the AP, and connect the LAN port to your LAN 3. Stop auto boot to get to U-boot shell, interrupt the autoboot process by pressing '0' when prompted 4. Set active_fw in env # setenv active_fw 1 5. Transfer the initramfs image with TFTP # setenv serverip 192.168.1.10 (IP of TFTP server host) # setenv ipaddr 192.168.1.1 (IP used by the router for getting the image, must be in the same subnet as the TFTP host) # tftpboot openwrt-qualcommax-ipq807x-netgear_wax620-initramfs-uImage.itb 6. Reboot and load the image # bootm 7. SCP factory image to the AP # scp openwrt-qualcommax-ipq807x-netgear_wax620-squashfs-factory.ubi root@192.168.1.1:/tmp/ 8. Connect to device using SSH (use the LAN port) 9. Flash squashfs-factory.ubi from within the initramfs instance of OpenWRT Before you flash, please check your mtd partitions where mtdX is the right mtd rootfs partition. # cat /proc/mtd (To check MTD partitions) # ubiformat /dev/mtd19 -y -f /tmp/openwrt-qualcommax-ipq807x-netgear_wax620-squashfs-factory.ubi 10. Set active_fw to 0 # /usr/sbin/fw_setenv active_fw 0 11. Reboot the AP and your done # reboot ``` Signed-off-by: Kristian Skramstad <kristian+github@83.no>
2023-08-21 15:45:36 +00:00
$(call Device/FitImage)
$(call Device/UbiFit)
DEVICE_VENDOR := Netgear
DEVICE_MODEL := WAX218
ipq807x: add support for Netgear WAX620 ``` Specifications: * CPU: Qualcomm IPQ8072A, SoC Version: 2.0, Quad core Cortex-A53 1.6896 GHz * RAM: 1 GiB of DDR4 600 MHz * Flash: NAND 2x256 MiB (Macronix MX30UF2G18AC) * 4 RGB LEDs: Power, LAN, 2.4GHz and 5GHz * UART: Two 4-pin unpopulated headers under the LEDs. Use the header closest to LED 4 and 5. They are marked with a white stroke. TX RX GND, beginning from "4". 115200n8. Lan: * One 100/1000/2.5GBASE-T Gigabit Ethernet (QCA8081) Wlan: * 4x4 in 2.4GHz: 802.11b/g/n/ax * 4x4 in 5.0GHz: 802.11a/n/ac/ax * OFDM and OFDMA * Bidir and MU-MIMO * Internal antenna 3.1/4.3 dBi (2.4GHz/5GHz) Power: * PoE+ 802.3at/af 25.5W * DC 12V 2.5A ``` ``` Note: The OpenWrt image is setup with DHCP and not a static IP. 1. Download the OpenWrt initramfs image. Copy the image to a TFTP server 2. Connect to console on the AP, and connect the LAN port to your LAN 3. Stop auto boot to get to U-boot shell, interrupt the autoboot process by pressing '0' when prompted 4. Set active_fw in env # setenv active_fw 1 5. Transfer the initramfs image with TFTP # setenv serverip 192.168.1.10 (IP of TFTP server host) # setenv ipaddr 192.168.1.1 (IP used by the router for getting the image, must be in the same subnet as the TFTP host) # tftpboot openwrt-qualcommax-ipq807x-netgear_wax620-initramfs-uImage.itb 6. Reboot and load the image # bootm 7. SCP factory image to the AP # scp openwrt-qualcommax-ipq807x-netgear_wax620-squashfs-factory.ubi root@192.168.1.1:/tmp/ 8. Connect to device using SSH (use the LAN port) 9. Flash squashfs-factory.ubi from within the initramfs instance of OpenWRT Before you flash, please check your mtd partitions where mtdX is the right mtd rootfs partition. # cat /proc/mtd (To check MTD partitions) # ubiformat /dev/mtd19 -y -f /tmp/openwrt-qualcommax-ipq807x-netgear_wax620-squashfs-factory.ubi 10. Set active_fw to 0 # /usr/sbin/fw_setenv active_fw 0 11. Reboot the AP and your done # reboot ``` Signed-off-by: Kristian Skramstad <kristian+github@83.no>
2023-08-21 15:45:36 +00:00
DEVICE_DTS_CONFIG := config@hk07
BLOCKSIZE := 128k
PAGESIZE := 2048
SOC := ipq8072
ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
ARTIFACTS := web-ui-factory.fit
ARTIFACT/web-ui-factory.fit := append-image initramfs-uImage.itb | \
ubinize-kernel | qsdk-ipq-factory-nand
endif
DEVICE_PACKAGES := kmod-spi-gpio kmod-spi-bitbang kmod-gpio-nxp-74hc164 \
ipq-wifi-netgear_wax218
ipq807x: add support for Netgear WAX620 ``` Specifications: * CPU: Qualcomm IPQ8072A, SoC Version: 2.0, Quad core Cortex-A53 1.6896 GHz * RAM: 1 GiB of DDR4 600 MHz * Flash: NAND 2x256 MiB (Macronix MX30UF2G18AC) * 4 RGB LEDs: Power, LAN, 2.4GHz and 5GHz * UART: Two 4-pin unpopulated headers under the LEDs. Use the header closest to LED 4 and 5. They are marked with a white stroke. TX RX GND, beginning from "4". 115200n8. Lan: * One 100/1000/2.5GBASE-T Gigabit Ethernet (QCA8081) Wlan: * 4x4 in 2.4GHz: 802.11b/g/n/ax * 4x4 in 5.0GHz: 802.11a/n/ac/ax * OFDM and OFDMA * Bidir and MU-MIMO * Internal antenna 3.1/4.3 dBi (2.4GHz/5GHz) Power: * PoE+ 802.3at/af 25.5W * DC 12V 2.5A ``` ``` Note: The OpenWrt image is setup with DHCP and not a static IP. 1. Download the OpenWrt initramfs image. Copy the image to a TFTP server 2. Connect to console on the AP, and connect the LAN port to your LAN 3. Stop auto boot to get to U-boot shell, interrupt the autoboot process by pressing '0' when prompted 4. Set active_fw in env # setenv active_fw 1 5. Transfer the initramfs image with TFTP # setenv serverip 192.168.1.10 (IP of TFTP server host) # setenv ipaddr 192.168.1.1 (IP used by the router for getting the image, must be in the same subnet as the TFTP host) # tftpboot openwrt-qualcommax-ipq807x-netgear_wax620-initramfs-uImage.itb 6. Reboot and load the image # bootm 7. SCP factory image to the AP # scp openwrt-qualcommax-ipq807x-netgear_wax620-squashfs-factory.ubi root@192.168.1.1:/tmp/ 8. Connect to device using SSH (use the LAN port) 9. Flash squashfs-factory.ubi from within the initramfs instance of OpenWRT Before you flash, please check your mtd partitions where mtdX is the right mtd rootfs partition. # cat /proc/mtd (To check MTD partitions) # ubiformat /dev/mtd19 -y -f /tmp/openwrt-qualcommax-ipq807x-netgear_wax620-squashfs-factory.ubi 10. Set active_fw to 0 # /usr/sbin/fw_setenv active_fw 0 11. Reboot the AP and your done # reboot ``` Signed-off-by: Kristian Skramstad <kristian+github@83.no>
2023-08-21 15:45:36 +00:00
endef
TARGET_DEVICES += netgear_wax218
ipq807x: add support for Netgear WAX620 ``` Specifications: * CPU: Qualcomm IPQ8072A, SoC Version: 2.0, Quad core Cortex-A53 1.6896 GHz * RAM: 1 GiB of DDR4 600 MHz * Flash: NAND 2x256 MiB (Macronix MX30UF2G18AC) * 4 RGB LEDs: Power, LAN, 2.4GHz and 5GHz * UART: Two 4-pin unpopulated headers under the LEDs. Use the header closest to LED 4 and 5. They are marked with a white stroke. TX RX GND, beginning from "4". 115200n8. Lan: * One 100/1000/2.5GBASE-T Gigabit Ethernet (QCA8081) Wlan: * 4x4 in 2.4GHz: 802.11b/g/n/ax * 4x4 in 5.0GHz: 802.11a/n/ac/ax * OFDM and OFDMA * Bidir and MU-MIMO * Internal antenna 3.1/4.3 dBi (2.4GHz/5GHz) Power: * PoE+ 802.3at/af 25.5W * DC 12V 2.5A ``` ``` Note: The OpenWrt image is setup with DHCP and not a static IP. 1. Download the OpenWrt initramfs image. Copy the image to a TFTP server 2. Connect to console on the AP, and connect the LAN port to your LAN 3. Stop auto boot to get to U-boot shell, interrupt the autoboot process by pressing '0' when prompted 4. Set active_fw in env # setenv active_fw 1 5. Transfer the initramfs image with TFTP # setenv serverip 192.168.1.10 (IP of TFTP server host) # setenv ipaddr 192.168.1.1 (IP used by the router for getting the image, must be in the same subnet as the TFTP host) # tftpboot openwrt-qualcommax-ipq807x-netgear_wax620-initramfs-uImage.itb 6. Reboot and load the image # bootm 7. SCP factory image to the AP # scp openwrt-qualcommax-ipq807x-netgear_wax620-squashfs-factory.ubi root@192.168.1.1:/tmp/ 8. Connect to device using SSH (use the LAN port) 9. Flash squashfs-factory.ubi from within the initramfs instance of OpenWRT Before you flash, please check your mtd partitions where mtdX is the right mtd rootfs partition. # cat /proc/mtd (To check MTD partitions) # ubiformat /dev/mtd19 -y -f /tmp/openwrt-qualcommax-ipq807x-netgear_wax620-squashfs-factory.ubi 10. Set active_fw to 0 # /usr/sbin/fw_setenv active_fw 0 11. Reboot the AP and your done # reboot ``` Signed-off-by: Kristian Skramstad <kristian+github@83.no>
2023-08-21 15:45:36 +00:00
define Device/netgear_wax620
ipq807x: add support for Netgear WAX218 Netgear WAX218 is a 802.11ax AP claiming AX3600 support. It is wall or ceiling mountable. It can be powered via PoE, or a 12 V adapter. The board has footprints for 2.54mm UART headers. They're difficult to solder because the GND is connected to a large copper plane. Only try soldering if you are very skilled. Otherwise, use pogo pins. Specifications: --------------- * CPU: Qualcomm IPQ8072A Quad core Cortex-A53 2.2GHz * RAM: 366 MB of RAM available to OS, not sure of total amount * Storage: Macronix MX30UF2G18AC 256MB NAND * Ethernet: * 2.5G RJ45 port (QCA8081) with PoE input * WLAN: * 2.4GHz/5GHz with 8 antennas * LEDs: * Power (Amber) * LAN (Blue) * 2G WLAN (Blue) * 5G WLAN (Blue) * Buttons: * 1x Factory reset * Power: 12V DC Jack * UART: Two 4-pin unpopulated headers near the LEDs * "J2 UART" is the CPU UART, 3.3 V level Installation: ============= Web UI method ------------- Flashing OpenWRT using the vendor's Web UI is problematic on this device. The u-boot mechanism for communicating the active rootfs is antiquated and unreliable. Instead of setting the kernel commandline, it relies on patching the DTS partitions of the nand node. The way partitions are patched is incompatible with newer kernels. Newer kernels use the SMEM partition table, which puts "rootfs" on mtd12. The vendor's Web UI will flash to either mtd12 or mtd14. One reliable way to boot from mtd14 and avoid boot loops is to use an initramfs image. 1. In the factory web UI, navigate to System Manager -> Firmware. 2. In the "Local Firmware Upgrade" section, click Browse 3. Navigate and select the 'web-ui-factory.fit' image 4. Click "Upload" 5. On the following page, click on "Proceed" The flash proceeds at this point and the system will reboot automatically to OpenWRT. 6. Flash the 'nand-sysupgrade.bin' using Luci or the commandline SSH method ---------- Enable SSH using the CLI or Web UI. The root account is locked out to ssh, and the admin account defaults to Netgear's CLI application. So we need to get creative: First, make sure the device boots from the second firmware partition: ssh -okexalgorithms=diffie-hellman-group14-sha1 admin@<ipaddr> \ /usr/sbin/fw_setenv active_fw 1 Then reboot the device, and run the update: scp -O -o kexalgorithms=diffie-hellman-group14-sha1 \ -o hostkeyalgorithms=ssh-rsa \ netgear_wax218-squashfs-nand-factory.ubi \ admin@<ipaddr>:/tmp/openwrt.ubi ssh -okexalgorithms=diffie-hellman-group14-sha1 admin@<ipaddr> \ /usr/sbin/ubiformat /dev/mtd12 -f /tmp/openwrt.ubi ssh -okexalgorithms=diffie-hellman-group14-sha1 admin@<ipaddr> \ /usr/sbin/fw_setenv active_fw 0 Now reboot the device, and it should boot into a ready-to-use OpenWRT. Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com> Reviewed-by: Robert Marko <robimarko@gmail.com> Tested-by: Francisco G Luna <frangonlun@gmail.com>
2022-06-02 16:35:26 +00:00
$(call Device/FitImage)
$(call Device/UbiFit)
DEVICE_VENDOR := Netgear
DEVICE_MODEL := WAX620
ipq807x: add support for Netgear WAX218 Netgear WAX218 is a 802.11ax AP claiming AX3600 support. It is wall or ceiling mountable. It can be powered via PoE, or a 12 V adapter. The board has footprints for 2.54mm UART headers. They're difficult to solder because the GND is connected to a large copper plane. Only try soldering if you are very skilled. Otherwise, use pogo pins. Specifications: --------------- * CPU: Qualcomm IPQ8072A Quad core Cortex-A53 2.2GHz * RAM: 366 MB of RAM available to OS, not sure of total amount * Storage: Macronix MX30UF2G18AC 256MB NAND * Ethernet: * 2.5G RJ45 port (QCA8081) with PoE input * WLAN: * 2.4GHz/5GHz with 8 antennas * LEDs: * Power (Amber) * LAN (Blue) * 2G WLAN (Blue) * 5G WLAN (Blue) * Buttons: * 1x Factory reset * Power: 12V DC Jack * UART: Two 4-pin unpopulated headers near the LEDs * "J2 UART" is the CPU UART, 3.3 V level Installation: ============= Web UI method ------------- Flashing OpenWRT using the vendor's Web UI is problematic on this device. The u-boot mechanism for communicating the active rootfs is antiquated and unreliable. Instead of setting the kernel commandline, it relies on patching the DTS partitions of the nand node. The way partitions are patched is incompatible with newer kernels. Newer kernels use the SMEM partition table, which puts "rootfs" on mtd12. The vendor's Web UI will flash to either mtd12 or mtd14. One reliable way to boot from mtd14 and avoid boot loops is to use an initramfs image. 1. In the factory web UI, navigate to System Manager -> Firmware. 2. In the "Local Firmware Upgrade" section, click Browse 3. Navigate and select the 'web-ui-factory.fit' image 4. Click "Upload" 5. On the following page, click on "Proceed" The flash proceeds at this point and the system will reboot automatically to OpenWRT. 6. Flash the 'nand-sysupgrade.bin' using Luci or the commandline SSH method ---------- Enable SSH using the CLI or Web UI. The root account is locked out to ssh, and the admin account defaults to Netgear's CLI application. So we need to get creative: First, make sure the device boots from the second firmware partition: ssh -okexalgorithms=diffie-hellman-group14-sha1 admin@<ipaddr> \ /usr/sbin/fw_setenv active_fw 1 Then reboot the device, and run the update: scp -O -o kexalgorithms=diffie-hellman-group14-sha1 \ -o hostkeyalgorithms=ssh-rsa \ netgear_wax218-squashfs-nand-factory.ubi \ admin@<ipaddr>:/tmp/openwrt.ubi ssh -okexalgorithms=diffie-hellman-group14-sha1 admin@<ipaddr> \ /usr/sbin/ubiformat /dev/mtd12 -f /tmp/openwrt.ubi ssh -okexalgorithms=diffie-hellman-group14-sha1 admin@<ipaddr> \ /usr/sbin/fw_setenv active_fw 0 Now reboot the device, and it should boot into a ready-to-use OpenWRT. Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com> Reviewed-by: Robert Marko <robimarko@gmail.com> Tested-by: Francisco G Luna <frangonlun@gmail.com>
2022-06-02 16:35:26 +00:00
DEVICE_DTS_CONFIG := config@hk07
BLOCKSIZE := 128k
PAGESIZE := 2048
SOC := ipq8072
DEVICE_PACKAGES += kmod-spi-gpio kmod-gpio-nxp-74hc164 \
ipq-wifi-netgear_wax620
ipq807x: add support for Netgear WAX218 Netgear WAX218 is a 802.11ax AP claiming AX3600 support. It is wall or ceiling mountable. It can be powered via PoE, or a 12 V adapter. The board has footprints for 2.54mm UART headers. They're difficult to solder because the GND is connected to a large copper plane. Only try soldering if you are very skilled. Otherwise, use pogo pins. Specifications: --------------- * CPU: Qualcomm IPQ8072A Quad core Cortex-A53 2.2GHz * RAM: 366 MB of RAM available to OS, not sure of total amount * Storage: Macronix MX30UF2G18AC 256MB NAND * Ethernet: * 2.5G RJ45 port (QCA8081) with PoE input * WLAN: * 2.4GHz/5GHz with 8 antennas * LEDs: * Power (Amber) * LAN (Blue) * 2G WLAN (Blue) * 5G WLAN (Blue) * Buttons: * 1x Factory reset * Power: 12V DC Jack * UART: Two 4-pin unpopulated headers near the LEDs * "J2 UART" is the CPU UART, 3.3 V level Installation: ============= Web UI method ------------- Flashing OpenWRT using the vendor's Web UI is problematic on this device. The u-boot mechanism for communicating the active rootfs is antiquated and unreliable. Instead of setting the kernel commandline, it relies on patching the DTS partitions of the nand node. The way partitions are patched is incompatible with newer kernels. Newer kernels use the SMEM partition table, which puts "rootfs" on mtd12. The vendor's Web UI will flash to either mtd12 or mtd14. One reliable way to boot from mtd14 and avoid boot loops is to use an initramfs image. 1. In the factory web UI, navigate to System Manager -> Firmware. 2. In the "Local Firmware Upgrade" section, click Browse 3. Navigate and select the 'web-ui-factory.fit' image 4. Click "Upload" 5. On the following page, click on "Proceed" The flash proceeds at this point and the system will reboot automatically to OpenWRT. 6. Flash the 'nand-sysupgrade.bin' using Luci or the commandline SSH method ---------- Enable SSH using the CLI or Web UI. The root account is locked out to ssh, and the admin account defaults to Netgear's CLI application. So we need to get creative: First, make sure the device boots from the second firmware partition: ssh -okexalgorithms=diffie-hellman-group14-sha1 admin@<ipaddr> \ /usr/sbin/fw_setenv active_fw 1 Then reboot the device, and run the update: scp -O -o kexalgorithms=diffie-hellman-group14-sha1 \ -o hostkeyalgorithms=ssh-rsa \ netgear_wax218-squashfs-nand-factory.ubi \ admin@<ipaddr>:/tmp/openwrt.ubi ssh -okexalgorithms=diffie-hellman-group14-sha1 admin@<ipaddr> \ /usr/sbin/ubiformat /dev/mtd12 -f /tmp/openwrt.ubi ssh -okexalgorithms=diffie-hellman-group14-sha1 admin@<ipaddr> \ /usr/sbin/fw_setenv active_fw 0 Now reboot the device, and it should boot into a ready-to-use OpenWRT. Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com> Reviewed-by: Robert Marko <robimarko@gmail.com> Tested-by: Francisco G Luna <frangonlun@gmail.com>
2022-06-02 16:35:26 +00:00
endef
TARGET_DEVICES += netgear_wax620
ipq807x: add support for Netgear WAX218 Netgear WAX218 is a 802.11ax AP claiming AX3600 support. It is wall or ceiling mountable. It can be powered via PoE, or a 12 V adapter. The board has footprints for 2.54mm UART headers. They're difficult to solder because the GND is connected to a large copper plane. Only try soldering if you are very skilled. Otherwise, use pogo pins. Specifications: --------------- * CPU: Qualcomm IPQ8072A Quad core Cortex-A53 2.2GHz * RAM: 366 MB of RAM available to OS, not sure of total amount * Storage: Macronix MX30UF2G18AC 256MB NAND * Ethernet: * 2.5G RJ45 port (QCA8081) with PoE input * WLAN: * 2.4GHz/5GHz with 8 antennas * LEDs: * Power (Amber) * LAN (Blue) * 2G WLAN (Blue) * 5G WLAN (Blue) * Buttons: * 1x Factory reset * Power: 12V DC Jack * UART: Two 4-pin unpopulated headers near the LEDs * "J2 UART" is the CPU UART, 3.3 V level Installation: ============= Web UI method ------------- Flashing OpenWRT using the vendor's Web UI is problematic on this device. The u-boot mechanism for communicating the active rootfs is antiquated and unreliable. Instead of setting the kernel commandline, it relies on patching the DTS partitions of the nand node. The way partitions are patched is incompatible with newer kernels. Newer kernels use the SMEM partition table, which puts "rootfs" on mtd12. The vendor's Web UI will flash to either mtd12 or mtd14. One reliable way to boot from mtd14 and avoid boot loops is to use an initramfs image. 1. In the factory web UI, navigate to System Manager -> Firmware. 2. In the "Local Firmware Upgrade" section, click Browse 3. Navigate and select the 'web-ui-factory.fit' image 4. Click "Upload" 5. On the following page, click on "Proceed" The flash proceeds at this point and the system will reboot automatically to OpenWRT. 6. Flash the 'nand-sysupgrade.bin' using Luci or the commandline SSH method ---------- Enable SSH using the CLI or Web UI. The root account is locked out to ssh, and the admin account defaults to Netgear's CLI application. So we need to get creative: First, make sure the device boots from the second firmware partition: ssh -okexalgorithms=diffie-hellman-group14-sha1 admin@<ipaddr> \ /usr/sbin/fw_setenv active_fw 1 Then reboot the device, and run the update: scp -O -o kexalgorithms=diffie-hellman-group14-sha1 \ -o hostkeyalgorithms=ssh-rsa \ netgear_wax218-squashfs-nand-factory.ubi \ admin@<ipaddr>:/tmp/openwrt.ubi ssh -okexalgorithms=diffie-hellman-group14-sha1 admin@<ipaddr> \ /usr/sbin/ubiformat /dev/mtd12 -f /tmp/openwrt.ubi ssh -okexalgorithms=diffie-hellman-group14-sha1 admin@<ipaddr> \ /usr/sbin/fw_setenv active_fw 0 Now reboot the device, and it should boot into a ready-to-use OpenWRT. Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com> Reviewed-by: Robert Marko <robimarko@gmail.com> Tested-by: Francisco G Luna <frangonlun@gmail.com>
2022-06-02 16:35:26 +00:00
qualcommax: ipq807x: add support for Netgear WAX630 ``` Specifications: * CPU: Qualcomm IPQ8074A, SoC Version: 2.0, Quad core 1651 MHz * RAM: 1 GiB of DDR3 466 MHz * Flash: NAND 512 MiB (Winbond W29N04GZ) * 6 RGB LEDs: Power, LAN1, LAN2, 2.4GHz, 5GHz H and 5GHz L * UART: One 4-pin populated header next to the heatsink and a chip. GND RXD TXD, beginning from the external antennas. 115200n8. Lan: * One 100/1000/2.5GBASE-T Gigabit Ethernet 802.3bt/at * One 100/1000 Gigabit Ethernet Wlan: * 4x4 in 2.4GHz : 802.11b/g/n/ax * 4x4 in 5.0GHz L: 802.11a/n/ac/ax * 4x4 in 5.0GHz H: 802.11a/n/ac/ax * OFDM and OFDMA * Bidir and MU-MIMO * Internal antenna 2.86/4.41/4.98 dBi (2.4GHz/5GHz L/5GHz H) Power: * 802.3bt/at 30.1W * DC 12V/3.5A Mounting: Wall and ceiling ``` ``` 1. Download the OpenWrt initramfs image. Copy the image to a TFTP server 2. Connect to the console on the AP, and connect the LAN port to your LAN 3. Stop auto boot to get to U-boot shell, interrupt the autoboot process by pressing '0' when prompted 4. Set active_fw in env 4. Set active_fw in env # setenv active_fw 1 5. Transfer the initramfs image with TFTP # setenv serverip 192.168.1.10 (IP of TFTP server host) # setenv ipaddr 192.168.1.1 (IP used by the router for getting the image, must be in the same subnet as the TFTP host) # tftpboot openwrt-qualcommax-ipq807x-netgear_wax630-initramfs-uImage.itb 6. Reboot and load the image # bootm 7. SCP factory image to the AP # scp openwrt-qualcommax-ipq807x-netgear_wax630-squashfs-factory.ubi root@192.168.1.1:/tmp/ 8. Connect to device using SSH (use the LAN port) 9. Flash squashfs-factory.ubi from within the initramfs instance of OpenWRT Before you flash, please check your mtd partitions where mtdX is the right mtd rootfs partition. # cat /proc/mtd (To check MTD partitions) # ubiformat /dev/mtd18 -y -f /tmp/openwrt-qualcommax-ipq807x-netgear_wax630-squashfs-factory.ubi 10. Set active_fw to 0 # /usr/sbin/fw_setenv active_fw 0 11. Reboot the AP and your done # reboot ``` Reviewed-by: Robert Marko <robimarko@gmail.com> Signed-off-by: Kristian Skramstad <kristian+github@83.no>
2023-10-01 14:28:24 +00:00
define Device/netgear_wax630
$(call Device/FitImage)
$(call Device/UbiFit)
DEVICE_VENDOR := Netgear
DEVICE_MODEL := WAX630
DEVICE_DTS_CONFIG := config@hk01
BLOCKSIZE := 128k
PAGESIZE := 2048
SOC := ipq8074
IMAGES := ui-factory.tar factory.ubi sysupgrade.bin
IMAGE/ui-factory.tar := append-ubi | wax6xx-netgear-tar
DEVICE_PACKAGES += kmod-spi-gpio ipq-wifi-netgear_wax630
endef
TARGET_DEVICES += netgear_wax630
define Device/prpl_haze
$(call Device/FitImage)
$(call Device/EmmcImage)
DEVICE_VENDOR := prpl Foundation
DEVICE_MODEL := Haze
DEVICE_DTS_CONFIG := config@hk09
SOC := ipq8072
DEVICE_PACKAGES += ath11k-firmware-qcn9074 ipq-wifi-prpl_haze kmod-ath11k-pci \
mkf2fs f2fsck kmod-fs-f2fs
endef
TARGET_DEVICES += prpl_haze
ipq807x: add QNAP 301w QNAP 301w is a AX WIFI router with 4 1G and 2 10G ports. Specifications: • CPU: Qualcomm IPQ8072A Quad core Cortex-A53 2.2GHz • RAM: 1024MB of DDR3 • Storage: 4GB eMMC (contains kernel and rootfs) / 8MB NOR (contains art and u-boot-env) • Ethernet: 4x 1G RJ45 ports + 2 10G ports (Aquantia AQR113C) • WLAN: 2.4GHz: Qualcomm QCN5024 4x4 (40 MHz) 802.11b/g/n/ax 1174 Mbps PHY rate 5GHz: Qualcomm QCN5054 4x4 (80 MHz) or 2x2 (160 MHz) 802.11a/b/g/n/ac/ax 2402 PHY rate • LEDs: 7 x GPIO-controlled dual color LEDs + 2 GPIO-controlled single color LEDs • Buttons: 1x soft reset / 1x WPS • Power: 12V DC jack A poulated serial header is onboard. RX/TX is working, bootwait is active, secure boot is not enabled. SSH can be activated in the stock firmware, hold WPS button til the second beep (yes the router has a buzzer) SSH is available on port 22200, login with user admin and password "mac address of the router". Installation Instructions: • obtain serial access (https://openwrt.org/inbox/toh/qnap/301w#serial) • stop auto boot • setenv serverip 192.168.10.1 • setenv ipaddr 192.168.10.10 • tftpboot the initramfs image (openwrt-ipq807x-generic-qnap_301w-initramfs-fit-uImage.itb) • bootm • make sure that current_entry is set to "0": "fw_printenv -n current_entry" should be print "0". If not, do "fw_setenv current_entry 0" • copy openwrt-ipq807x-generic-qnap_301w-squashfs-sysupgrade.bin to the device to /tmp folder • sysupgrade -n /tmp/openwrt-ipq807x-generic-qnap_301w-squashfs-sysupgrade.bin this flashes openwrt to the first kernel and rootfs partition (mmcblk0p1 / mmcblk0p4) • reboot Note: this leaves the second kernel / rootfs parition untouched. So if you want to go back to stock, stop u-boot autoboot, "setenv current_entry 1" , "saveenv", "bootipq". Stock firmware should start from the second partition. Then do a firmwareupgrade in the stock gui, that should overwrite the openwrt in the first partitions Make 10G Aquantia phy's work: The aquantia phy's need a firmware to work. This can either be loaded in linux with a userspace tool or in u-boot. I was not successfull to load the firmware in linux (aq-fw-download) but luckily there is aq_load_fw available in u-boot. But first the right firmware needs to write to the 0:ETHPHYFW mtd partition (it is empty on my device) Grab the ethphy firmware image from: https://github.com/kirdesde/nbg7815_gpl/blob/master/target/linux/ipq/ipq807x_64/prebuilt_images/AQR_ethphyfw.mbn and scp that to openwrt. Check the 0:ETHPHYFW partition number: cat /proc/mtd|grep "0:ETHPHYFW", should be mtd10. Backup the 0:ETHPHYFW partition: dd if=/dev/mtd10 of=/tmp/ethphyfw.backup, scp ethphyfw.backup to a save place. Write the new firmware image to the 0:ETHPHYFW partition: "mtd erase /dev/mtd10", "mtd -n write AQR_ethphyfw.mbn /dev/mtd10". Reboot to u-boot. Check if aq_load_fw is working: "aq_load_fw 0", that checks the firmware and if successfull, loads iram and dram to one of the aquantia phy's. If that worked, add the aq_load_fw to the bootcmd: setenv bootcmd "aq_load_fw 0 && aq_load_fw 8 && bootipq" "saveenv" "reset" Board reboots and the firmware load to both phy's should start and then openwrt boots. Check if the 10G ports work. Note: lan port labeled "10G-2" is configured as WAN port as per default. All other port are in the br-lan. This can be changed in the network config. Signed-off-by: Dirk Buchwalder <buchwalder@posteo.de>
2022-01-01 22:20:19 +00:00
define Device/qnap_301w
$(call Device/FitImage)
$(call Device/EmmcImage)
ipq807x: add QNAP 301w QNAP 301w is a AX WIFI router with 4 1G and 2 10G ports. Specifications: • CPU: Qualcomm IPQ8072A Quad core Cortex-A53 2.2GHz • RAM: 1024MB of DDR3 • Storage: 4GB eMMC (contains kernel and rootfs) / 8MB NOR (contains art and u-boot-env) • Ethernet: 4x 1G RJ45 ports + 2 10G ports (Aquantia AQR113C) • WLAN: 2.4GHz: Qualcomm QCN5024 4x4 (40 MHz) 802.11b/g/n/ax 1174 Mbps PHY rate 5GHz: Qualcomm QCN5054 4x4 (80 MHz) or 2x2 (160 MHz) 802.11a/b/g/n/ac/ax 2402 PHY rate • LEDs: 7 x GPIO-controlled dual color LEDs + 2 GPIO-controlled single color LEDs • Buttons: 1x soft reset / 1x WPS • Power: 12V DC jack A poulated serial header is onboard. RX/TX is working, bootwait is active, secure boot is not enabled. SSH can be activated in the stock firmware, hold WPS button til the second beep (yes the router has a buzzer) SSH is available on port 22200, login with user admin and password "mac address of the router". Installation Instructions: • obtain serial access (https://openwrt.org/inbox/toh/qnap/301w#serial) • stop auto boot • setenv serverip 192.168.10.1 • setenv ipaddr 192.168.10.10 • tftpboot the initramfs image (openwrt-ipq807x-generic-qnap_301w-initramfs-fit-uImage.itb) • bootm • make sure that current_entry is set to "0": "fw_printenv -n current_entry" should be print "0". If not, do "fw_setenv current_entry 0" • copy openwrt-ipq807x-generic-qnap_301w-squashfs-sysupgrade.bin to the device to /tmp folder • sysupgrade -n /tmp/openwrt-ipq807x-generic-qnap_301w-squashfs-sysupgrade.bin this flashes openwrt to the first kernel and rootfs partition (mmcblk0p1 / mmcblk0p4) • reboot Note: this leaves the second kernel / rootfs parition untouched. So if you want to go back to stock, stop u-boot autoboot, "setenv current_entry 1" , "saveenv", "bootipq". Stock firmware should start from the second partition. Then do a firmwareupgrade in the stock gui, that should overwrite the openwrt in the first partitions Make 10G Aquantia phy's work: The aquantia phy's need a firmware to work. This can either be loaded in linux with a userspace tool or in u-boot. I was not successfull to load the firmware in linux (aq-fw-download) but luckily there is aq_load_fw available in u-boot. But first the right firmware needs to write to the 0:ETHPHYFW mtd partition (it is empty on my device) Grab the ethphy firmware image from: https://github.com/kirdesde/nbg7815_gpl/blob/master/target/linux/ipq/ipq807x_64/prebuilt_images/AQR_ethphyfw.mbn and scp that to openwrt. Check the 0:ETHPHYFW partition number: cat /proc/mtd|grep "0:ETHPHYFW", should be mtd10. Backup the 0:ETHPHYFW partition: dd if=/dev/mtd10 of=/tmp/ethphyfw.backup, scp ethphyfw.backup to a save place. Write the new firmware image to the 0:ETHPHYFW partition: "mtd erase /dev/mtd10", "mtd -n write AQR_ethphyfw.mbn /dev/mtd10". Reboot to u-boot. Check if aq_load_fw is working: "aq_load_fw 0", that checks the firmware and if successfull, loads iram and dram to one of the aquantia phy's. If that worked, add the aq_load_fw to the bootcmd: setenv bootcmd "aq_load_fw 0 && aq_load_fw 8 && bootipq" "saveenv" "reset" Board reboots and the firmware load to both phy's should start and then openwrt boots. Check if the 10G ports work. Note: lan port labeled "10G-2" is configured as WAN port as per default. All other port are in the br-lan. This can be changed in the network config. Signed-off-by: Dirk Buchwalder <buchwalder@posteo.de>
2022-01-01 22:20:19 +00:00
DEVICE_VENDOR := QNAP
DEVICE_MODEL := 301w
DEVICE_DTS_CONFIG := config@hk01
KERNEL_SIZE := 16384k
SOC := ipq8072
DEVICE_PACKAGES += ipq-wifi-qnap_301w
ipq807x: add QNAP 301w QNAP 301w is a AX WIFI router with 4 1G and 2 10G ports. Specifications: • CPU: Qualcomm IPQ8072A Quad core Cortex-A53 2.2GHz • RAM: 1024MB of DDR3 • Storage: 4GB eMMC (contains kernel and rootfs) / 8MB NOR (contains art and u-boot-env) • Ethernet: 4x 1G RJ45 ports + 2 10G ports (Aquantia AQR113C) • WLAN: 2.4GHz: Qualcomm QCN5024 4x4 (40 MHz) 802.11b/g/n/ax 1174 Mbps PHY rate 5GHz: Qualcomm QCN5054 4x4 (80 MHz) or 2x2 (160 MHz) 802.11a/b/g/n/ac/ax 2402 PHY rate • LEDs: 7 x GPIO-controlled dual color LEDs + 2 GPIO-controlled single color LEDs • Buttons: 1x soft reset / 1x WPS • Power: 12V DC jack A poulated serial header is onboard. RX/TX is working, bootwait is active, secure boot is not enabled. SSH can be activated in the stock firmware, hold WPS button til the second beep (yes the router has a buzzer) SSH is available on port 22200, login with user admin and password "mac address of the router". Installation Instructions: • obtain serial access (https://openwrt.org/inbox/toh/qnap/301w#serial) • stop auto boot • setenv serverip 192.168.10.1 • setenv ipaddr 192.168.10.10 • tftpboot the initramfs image (openwrt-ipq807x-generic-qnap_301w-initramfs-fit-uImage.itb) • bootm • make sure that current_entry is set to "0": "fw_printenv -n current_entry" should be print "0". If not, do "fw_setenv current_entry 0" • copy openwrt-ipq807x-generic-qnap_301w-squashfs-sysupgrade.bin to the device to /tmp folder • sysupgrade -n /tmp/openwrt-ipq807x-generic-qnap_301w-squashfs-sysupgrade.bin this flashes openwrt to the first kernel and rootfs partition (mmcblk0p1 / mmcblk0p4) • reboot Note: this leaves the second kernel / rootfs parition untouched. So if you want to go back to stock, stop u-boot autoboot, "setenv current_entry 1" , "saveenv", "bootipq". Stock firmware should start from the second partition. Then do a firmwareupgrade in the stock gui, that should overwrite the openwrt in the first partitions Make 10G Aquantia phy's work: The aquantia phy's need a firmware to work. This can either be loaded in linux with a userspace tool or in u-boot. I was not successfull to load the firmware in linux (aq-fw-download) but luckily there is aq_load_fw available in u-boot. But first the right firmware needs to write to the 0:ETHPHYFW mtd partition (it is empty on my device) Grab the ethphy firmware image from: https://github.com/kirdesde/nbg7815_gpl/blob/master/target/linux/ipq/ipq807x_64/prebuilt_images/AQR_ethphyfw.mbn and scp that to openwrt. Check the 0:ETHPHYFW partition number: cat /proc/mtd|grep "0:ETHPHYFW", should be mtd10. Backup the 0:ETHPHYFW partition: dd if=/dev/mtd10 of=/tmp/ethphyfw.backup, scp ethphyfw.backup to a save place. Write the new firmware image to the 0:ETHPHYFW partition: "mtd erase /dev/mtd10", "mtd -n write AQR_ethphyfw.mbn /dev/mtd10". Reboot to u-boot. Check if aq_load_fw is working: "aq_load_fw 0", that checks the firmware and if successfull, loads iram and dram to one of the aquantia phy's. If that worked, add the aq_load_fw to the bootcmd: setenv bootcmd "aq_load_fw 0 && aq_load_fw 8 && bootipq" "saveenv" "reset" Board reboots and the firmware load to both phy's should start and then openwrt boots. Check if the 10G ports work. Note: lan port labeled "10G-2" is configured as WAN port as per default. All other port are in the br-lan. This can be changed in the network config. Signed-off-by: Dirk Buchwalder <buchwalder@posteo.de>
2022-01-01 22:20:19 +00:00
endef
TARGET_DEVICES += qnap_301w
ipq807x: add Redmi AX6 Redmi AX6 is a budget 802.11ax dual-band router/AP Specifications: * CPU: Qualcomm IPQ8071A Quad core Cortex-A53 1.4GHz * RAM: 512MB of DDR3 * Storage: 128MB NAND * Ethernet: 4x1G RJ45 ports (QCA8075) * WLAN: * 2.4GHz: Qualcomm QCN5024 2x2 802.11b/g/n/ax 574 Mbps PHY rate * 5GHz: Qualcomm QCN5054 4x4@80MHz or 2x2@160MHz 802.11a/b/g/n/ac/ax 2402 PHY rate * LEDs: * System (Blue/Yellow) * Network (Blue/Yellow) *Buttons: 1x soft reset *Power: 12V DC jack Installation instructions: Obtaining SSH access is mandatory https://openwrt.org/inbox/toh/xiaomi/xiaomi_redmi_ax6_ax3000#ssh_access Installation is done by the ubiformat method, through SSH: 1. Open an SSH shell to the router 2. Copy the file openwrt-ipq807x-generic-redmi_ax6-initramfs-factory.ubi to the /tmp directory 3. Check which rootfs partition is your router booted in (0 = rootfs | 1 = rootfs_1): nvram get flag_boot_rootfs 4. Find the rootfs and rootfs_1 mtd indexes respectively: cat /proc/mtd Please confirm if mtd12 and mtd13 are the correct indexes from above! 5. Use the command ubiformat to flash the opposite mtd with UBI image: If nvram get flag_boot_rootfs returned 0: ubiformat /dev/mtd13 -y -f /tmp/openwrt-ipq807x-generic-redmi_ax6-initramfs-factory.ubi && nvram set flag_boot_rootfs=1 && nvram set flag_last_success=1 && nvram commit otherwise: ubiformat /dev/mtd12 -y -f /tmp/openwrt-ipq807x-generic-redmi_ax6-initramfs-factory.ubi && nvram set flag_boot_rootfs=0 && nvram set flag_last_success=0 && nvram commit 6. Reboot the device by: reboot Previous commands flashed an ubinized OpenWrt initramfs that will serve as the intermediate step since OpenWrt uses unified rootfs in order to fully utilize NAND and provide enough space for packages. Continue in order to pernamently flash OpenWrt: 7. SSH into OpenWrt from one of the LAN ports 8. Copy the file openwrt-ipq807x-generic-redmi_ax6-squashfs-sysupgrade.bin to the /tmp directory 9. Sysupgrade the device: sysupgrade -n /tmp/openwrt-ipq807x-generic-redmi_ax6-squashfs-sysupgrade.bin Device will reboot with OpenWrt, and then sysupgrade can be used to upgrade the device when desired. Signed-off-by: Zhijun You <hujy652@gmail.com>
2022-01-01 22:12:51 +00:00
define Device/redmi_ax6
$(call Device/xiaomi_ax3600)
DEVICE_VENDOR := Redmi
DEVICE_MODEL := AX6
DEVICE_PACKAGES := ipq-wifi-redmi_ax6
endef
TARGET_DEVICES += redmi_ax6
ipq807x: add Xiaomi AX3600 Xiaomi AX3600 is a budget 802.11ax dual-band router/AP. Specifications: * CPU: Qualcomm IPQ8071A Quad core Cortex-A53 1.4GHz * RAM: 512MB of DDR3 * Storage: 256MB of parallel NAND * Ethernet: 4x1G RJ45 ports (QCA8075) with 1x status LED per port * WLAN: * PCI based Qualcomm QCA9889 1x1 802.11ac Wawe 2 for IoT * 2.4GHz: Qualcomm QCN5024 2x2 802.11b/g/n/ax 574 Mbps PHY rate * 5GHz: Qualcomm QCN5054 4x4@80MHz or 2x2@160MHz 802.11a/b/g/n/ac/ax 2402 PHY rate * LED-s: * System (Blue and Yellow) * IoT (Blue) * Network (Blue and Yellow) * Buttons: 1x Soft reset * Power: 12V DC Jack Installation instructions: Obtaining SSH access is mandatory https://openwrt.org/inbox/toh/xiaomi/xiaomi_ax3600#obtain_ssh_access Installation is done by the ubiformat method, through SSH: 1. Open an SSH shell to the router 2. Copy the file openwrt-ipq807x-generic-xiaomi_ax3600-initramfs-factory.ubi to the /tmp directory 3. Check which rootfs partition is your router booted in (0 = rootfs | 1 = rootfs_1): nvram get flag_boot_rootfs 4. Find the rootfs and rootfs_1 mtd indexes respectively: cat /proc/mtd Please confirm if mtd12 and mtd13 are the correct indexes from above! 5. Use the command ubiformat to flash the opposite mtd with UBI image: If nvram get flag_boot_rootfs returned 0: ubiformat /dev/mtd13 -y -f /tmp/openwrt-ipq807x-generic-xiaomi_ax3600-initramfs-factory.ubi -s 2048 -O 2048 && nvram set flag_boot_rootfs=1 && nvram set flag_last_success=1 && nvram commit otherwise: ubiformat /dev/mtd12 -y -f /tmp/openwrt-ipq807x-generic-xiaomi_ax3600-initramfs-factory.ubi -s 2048 -O 2048 && nvram set flag_boot_rootfs=0 && nvram set flag_last_success=0 && nvram commit 6. Reboot the device by: reboot Previous commands flashed an ubinized OpenWrt initramfs that will serve as the intermediate step since OpenWrt uses unified rootfs in order to fully utilize NAND and provide enough space for packages. Continue in order to pernamently flash OpenWrt: 7. SSH into OpenWrt from one of the LAN ports 8. Copy the file openwrt-ipq807x-generic-xiaomi_ax3600-squashfs-sysupgrade.bin to the /tmp directory 9. Sysupgrade the device: sysupgrade -n /tmp/openwrt-ipq807x-generic-xiaomi_ax3600-squashfs-sysupgrade.bin Device will reboot with OpenWrt, and then sysupgrade can be used to upgrade the device when desired. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com> Signed-off-by: Robert Marko <robimarko@gmail.com>
2021-05-19 19:04:43 +00:00
define Device/xiaomi_ax3600
$(call Device/FitImage)
$(call Device/UbiFit)
DEVICE_VENDOR := Xiaomi
DEVICE_MODEL := AX3600
BLOCKSIZE := 128k
PAGESIZE := 2048
DEVICE_DTS_CONFIG := config@ac04
SOC := ipq8071
KERNEL_SIZE := 36608k
DEVICE_PACKAGES := ipq-wifi-xiaomi_ax3600 kmod-ath10k-ct-smallbuffers ath10k-firmware-qca9887-ct
ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
ARTIFACTS := initramfs-factory.ubi
ARTIFACT/initramfs-factory.ubi := append-image-stage initramfs-uImage.itb | ubinize-kernel
endif
endef
TARGET_DEVICES += xiaomi_ax3600
ipq807x: Add Xiaomi AX9000 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 Installation is done by the ubiformat method, through SSH: 1. Open an SSH shell to the router 2. Copy the file openwrt-ipq807x-generic-xiaomi_ax9000-initramfs-factory.ubi to the /tmp directory 3. Check which rootfs partition is your router booted in (0 = rootfs | 1 = rootfs_1): nvram get flag_boot_rootfs 4. Find the rootfs and rootfs_1 mtd indexes respectively: cat /proc/mtd Please confirm if mtd21 and mtd22 are the correct indexes from above! 5. Use the command ubiformat to flash the opposite mtd with UBI image: If nvram get flag_boot_rootfs returned 0: ubiformat /dev/mtd22 -y -f /tmp/openwrt-ipq807x-generic-xiaomi_ax9000-initramfs-factory.ubi && nvram set flag_boot_rootfs=1 && nvram set flag_last_success=1 && nvram commit otherwise: ubiformat /dev/mtd21 -y -f /tmp/openwrt-ipq807x-generic-xiaomi_ax9000-initramfs-factory.ubi && nvram set flag_boot_rootfs=0 && nvram set flag_last_success=0 && nvram commit 6. Reboot the device by: reboot Previous commands flashed an ubinized OpenWrt initramfs that will serve as the intermediate step since OpenWrt uses unified rootfs in order to fully utilize NAND and provide enough space for packages. Continue in order to pernamently flash OpenWrt: 7. SSH into OpenWrt from one of the LAN ports 8. Copy the file openwrt-ipq807x-generic-xiaomi_ax9000-squashfs-sysupgrade.bin to the /tmp directory 9. Sysupgrade the device: sysupgrade -n /tmp/openwrt-ipq807x-generic-xiaomi_ax9000-squashfs-sysupgrade.bin Device will reboot with OpenWrt, and then sysupgrade can be used to upgrade the device when desired. Signed-off-by: Robert Marko <robimarko@gmail.com>
2022-01-10 23:50:37 +00:00
define Device/xiaomi_ax9000
$(call Device/FitImage)
$(call Device/UbiFit)
DEVICE_VENDOR := Xiaomi
DEVICE_MODEL := AX9000
BLOCKSIZE := 128k
PAGESIZE := 2048
DEVICE_DTS_CONFIG := config@hk14
SOC := ipq8072
KERNEL_SIZE := 57344k
DEVICE_PACKAGES := ipq-wifi-xiaomi_ax9000 kmod-ath11k-pci ath11k-firmware-qcn9074 \
kmod-ath10k-ct ath10k-firmware-qca9887-ct
ifneq ($(CONFIG_TARGET_ROOTFS_INITRAMFS),)
ARTIFACTS := initramfs-factory.ubi
ARTIFACT/initramfs-factory.ubi := append-image-stage initramfs-uImage.itb | ubinize-kernel
endif
endef
TARGET_DEVICES += xiaomi_ax9000
ipq807x: Add ZyXEL NBG7815 ZyXEL NBG7815 is a premium 802.11ax "tri"-band router/AP. Specifications: * CPU: Qualcomm IPQ8072A Quad core Cortex-A53 2.2GHz * RAM: 1 GB 2x Nanya NT5CC256M16ER-EK * Storage: * 8MB serial flash Winbond W25Q64DW * 4GB eMMC flash Kingston EMMC04G-M627 * Ethernet: * 4x1G RJ45 ports (QCA8074A) with 1x status LED per port * 1x2.5G RJ45 port (QCA8081) with 1x status LED * 1x10G RJ45 port (AQR113C) with 1x status LED * Switch: Qualcomm Atheros QCA8075 * WLAN: * 2.4GHz: Qualcomm QCN5024 4x4@40MHz 802.11b/g/n/ax 1147 Mbps PHY rate * 2x 5GHz: Qualcomm QCN5054 4x4 802.11a/b/g/n/ac/ax 2402 PHY rate * Bluetooth CSR8811 using HSUART, currently unsupported * USB: 1x USB3.0 Type-A port * LED-s currently not supported: * White * Dark Blu * Amber * Purple * Purple and dark blue * Red * Buttons: * 1x Soft reset * Power: 12V DC Jack Installation instructions: * Disconnect WAN * Reset device to factory defaults by pushing reset button 15 sec, LEDs should lit orange color. * After 5-10 minutes, when the LEDs turn constant dark blue, put your LAN cable and connect at address 192.168.123.1 by telnet on port 23 * Login with NBG7815 login: root password: nbg7815@2019 * cd /tmp/ApplicationData * wget -O openwrt-ipq807x-generic-zyxel_nbg7815-squashfs-sysupgrade.bin http://... * wget https://github.com/itorK/nbg7815_tools/blob/main/flash_to_openwrt.sh * run flash_to_openwrt.sh If you can't use wget, you can transfer the files via nc. See https://openwrt.org/inbox/toh/zyxel/nbg7815_armor_g5 for installation details. Bluetooth usage: * you need at least package bluez-utils, recommended bluez-daemon * run following commands to enable and start hciattach /dev/ttyMSM1 bcsp hciconfig hci0 up Many thanks to itorK for his work on this device: https://github.com/itorK/openwrt/tree/nbg7815 Reviewed-by: Robert Marko <robimarko@gmail.com> Signed-off-by: André Valentin <avalentin@marcant.net>
2023-01-03 18:23:41 +00:00
ipq807x: add support for Yuncore AX880 SPECIFICATION: - Chipset: IPQ8072A +QCN5054+QCN5024+QCA8081*2 - Flash NOR-8MB AND NAND-128MB - RAM 1Gb DDR - IEEE 802.11: 802.11ax/ac/b/g/n - 4*4 2.4G Wi-Fi standard 802.11b/g/n/ax - 4*4 5.8G Wi-Fi Standard 802.11 a/n/ac/ax - 2x 1 Gbps Ethernet (QCA8081) with 802.3at PoE input support - 1x Reset - 1x Bluetooth(optional) - 1x DC Port 12V 3A - 4x Antenna IPEX Connector, 3dBi omni antennas - Data Rate: 3657Mbps ( 2.4G: 1182Mbps (11ax 4x4); 5.8G: 2475Mbps (11ax 4x4)) - RF Power: 2.4g ≤ 20dBm; 5.8g ≤ 19dBm - LED light: Sys; 5.8G wifi; 2.4G wifi; WAN; LAN - Max Power Consumption: ≤ 22W - Size: 198mm * 198mm * 41.02mm BACKUP YOUR STOCK FIRMWARE: ``` export device=ax880 mkdir -p /tmp/fw_dump_$device cd /tmp/fw_dump_$device dmesg > dmesg_$device.log dtc -I fs /sys/firmware/devicetree/base > $device.dts cat /proc/device-tree/model > model cat /proc/mtd > proc_mtd while read p; do mtd_dev=$(echo $p | cut -d: -f1) echo $mtd_dev dd if=/dev/$mtd_dev of=$mtd_dev done < proc_mtd md5sum * > md5sum.log tar -cvzf ../$device.tar.gz . export sum=$(md5sum /tmp/$device.tar.gz | cut -d' ' -f1) mv ../$device.tar.gz /tmp/${device}_${sum}.tar.gz echo fw backup saved to: /tmp/${device}_${sum}.tar.gz ``` Upload your backup via tftp to the safe place. INSTALLATION: 1. stock firmware web ui Rename factory.bin fw image file to factory.ubin. Flash this image like ordinary stock fw upgrade. 2. stock firmware telnet method Enter telnet cli (login: root, password: 476t*_f0%g09y) and upload factory.bin fw image and rename it to factory.ubin `cd /tmp && wget <your_web_server_ip>/factory.ubin` `sysupgrade factory.ubin 3. initramfs method Put openwrt-ipq807x-generic-yuncore_ax880-initramfs-uImage.itb to your TFTP server and rename it to ax880.initram Enable serial console and enter to the u-boot cli. Exec these commands: `tftpboot <your_tftp_server_ip>:ax880.initram` `dhcp` When downloading is finished: `bootm` After booting the device, you need to upload to the device factory.ubi fw image. ``` cd /tmp && wget <your_web_server_ip>/factory.ubi` export rootfs=$(cat /proc/mtd | grep rootfs | cut -d: -f1) export rootfs_1=$(cat /proc/mtd | grep rootfs_1 | cut -d: -f1) ubiformat /dev/${rootfs} -y -f factory.ubi ubiformat /dev/${rootfs_1} -y -f factory.ubi reboot ``` 4. u-boot factory.ubi image method Put openwrt-ipq807x-generic-yuncore_ax880-squashfs-factory.ubi to your TFTP server and rename it to ax880.ubi Enter u-boot cli and exec these commands: `tftpboot <your_tftp_server_ip>:ax880.ubi` `dhcp` After downloading is finished: `flash rootfs` `flash rootfs_1` `reset` 5. u-boot factory.bin method Put openwrt-ipq807x-generic-yuncore_ax880-squashfs-factory.bin to your TFTP server and rename it to ax880.bin Enter u-boot cli and exec these commands: `tftpboot <your_tftp_server_ip>:ax880.bin` `dhcp` After downloading is finished: `imgaddr=$fileaddr && nand device 0` Erase rootfs memory: `nand erase 0x00000000 0x03400000` Write rootfs: `nand write $fileaddr 0x00000000 $filesize` Erase rootfs_1 memory: `nand erase 0x3c00000 0x3400000` Write rootfs_1 `nand write $fileaddr 0x3c00000 $filesize` `reset` STOCK FIRMWARE RECOVERY: Boot initramfs image. Upload your rootfs mtd partition to the device using scp or download it from the device using wget. Enter device ssh cli and exec: ``` cd /tmp && wget <your_web_server_ip>/mtd21` export rootfs=$(cat /proc/mtd | grep rootfs | cut -d: -f1) export rootfs_1=$(cat /proc/mtd | grep rootfs_1 | cut -d: -f1) ubiformat /dev/${rootfs} -y -f /tmp/mtd21 ubiformat /dev/${rootfs_1} -y -f /tmp/mtd21 reboot ``` Signed-off-by: Isaev Ruslan <legale.legale@gmail.com> Reviewed-by: Robert Marko <robimarko@gmail.com>
2023-11-02 03:08:53 +00:00
define Device/yuncore_ax880
$(call Device/FitImage)
$(call Device/UbiFit)
DEVICE_VENDOR := Yuncore
DEVICE_MODEL := AX880
BLOCKSIZE := 128k
PAGESIZE := 2048
DEVICE_DTS_CONFIG := config@hk09
SOC := ipq8072
DEVICE_PACKAGES := ipq-wifi-yuncore_ax880
IMAGES += factory.bin
IMAGE/factory.bin := append-ubi | qsdk-ipq-factory-nand
endef
TARGET_DEVICES += yuncore_ax880
define Device/zyxel_nbg7815
$(call Device/FitImage)
$(call Device/EmmcImage)
DEVICE_VENDOR := ZYXEL
DEVICE_MODEL := NBG7815
DEVICE_DTS_CONFIG := config@nbg7815
SOC := ipq8074
DEVICE_PACKAGES += ipq-wifi-zyxel_nbg7815 kmod-ath11k-pci \
kmod-bluetooth kmod-hwmon-tmp103
endef
TARGET_DEVICES += zyxel_nbg7815