aboutsummaryrefslogtreecommitdiff
path: root/package/boot/uboot-envtools
Commit message (Collapse)AuthorAge
* uboot-tools: migrate uboot-envtools to uboot-toolsScott Mercer2025-03-22
| | | | | | | Generalize and merge uboot-envtools package into uboot-tools package. Remove existing uboot-envtools package. Signed-off-by: Scott Mercer <TheRootEd24@gmail.com>
* ath79: support ZTE MF286CLech Perczak2025-03-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ZTE MF286 is an indoor LTE category 12 CPE router with simultaneous dual-band 802.11ac plus 802.11n Wi-Fi radios and quad-port gigabit Ethernet switch, FXS and external USB 2.0 port. Software-wise it's compatible with previous MF286A, save for different 5GHz Wi-Fi board definition file, requiring a separate image. Hardware highlights: - CPU: QCA9563 SoC at 775MHz, - RAM: 128MB DDR2, - NOR Flash: MX25L1606E 2MB SPI Flash, for U-boot only, - NAND Flash: W25N01GV 128MB SPI NAND-Flash, for all other data, - Wi-Fi 5GHz: QCA9886 2x2 MIMO 802.11ac Wave2 radio, - WI-Fi 2.4GHz: QCA9563 3x3 MIMO 802.11n radio, - Switch: QCA8337v2 4-port gigabit Ethernet, with single SGMII CPU port, - WWAN: MDM9250-based category 12 internal LTE modem in extended mini-PCIE form factor, with 5 internal antennas and 2 external antenna connections, single mini-SIM slot. - FXS: one external ATA port (handled entirely by modem part) with two physical connections in parallel, - USB: Single external USB 2.0 port, - Switches: power switch, WPS, Wi-Fi and reset buttons, - LEDs: Wi-Fi, Test (internal). Rest of LEDs (Phone, WWAN, Battery, Signal state) handled entirely by modem. 4 link status LEDs handled by the switch on the backside. - Label MAC device: eth0 Internal modem of MF286C is supported via uqmi. Console connection: connector X2 is the console port, with the following pinout, starting from pin 1, which is the topmost pin when the board is upright: - VCC (3.3V). Do not use unless you need to source power for the converer from it. - TX - RX - GND Default port configuration in U-boot as well as in stock firmware is 115200-8-N-1. Installation: Due to different flash layout from stock firmware, sysupgrade from within stock firmware is impossible, despite it's based on QSDK which itself is based on OpenWrt. STEP 0: Stock firmware update: As installing OpenWrt cuts you off from official firmware updates for the modem part, it is recommended to update the stock firmware to latest ath79: support ZTE MF286C STEP 1: Booting initramfs image: Method 1: using serial console (RECOMMENDED): - Have TFTP server running, exposing the OpenWrt initramfs image, and set your computer's IP address as 192.168.0.22. This is the default expected by U-boot. You may wish to change that, and alter later commands accordingly. - Connect the serial console if you haven't done so already, - Interrupt boot sequence by pressing any key in U-boot when prompted - Use the following commands to boot OpenWrt initramfs through TFTP: setenv serverip 192.168.0.22 setenv ipaddr 192.168.0.1 tftpboot 0x81000000 openwrt-ath79-nand-zte_mf286c-initramfs-kernel.bin bootm 0x81000000 (Replace server IP and router IP as needed). There is no emergency TFTP boot sequence triggered by buttons, contrary to MF283+. - When OpenWrt initramfs finishes booting, proceed to actual installation. STEP 2: Backing up original software: As the stock firmware may be customized by the carrier and is not officially available in the Internet, IT IS IMPERATIVE to back up the stock firmware, if you ever plan to returning to stock firmware. It is highly recommended to perform backup using both methods, to avoid hassle of reassembling firmware images in future, if a restore is needed. Method 1: after booting OpenWrt initramfs image via TFTP: - Connect your USB-UART adapter - Dump stock firmware located on stock kernel and ubi partitions: ssh root@192.168.1.1: cat /dev/mtd9 > mtd3_ubiconcat0.bin ssh root@192.168.1.1: cat /dev/mtd4 > mtd4_kernel.bin ssh root@192.168.1.1: cat /dev/mtd9 > mtd5_ubiconcat1.bin And keep them in a safe place, should a restore be needed in future. Method 2: using stock firmware: - Connect an external USB drive formatted with FAT or ext4 to the USB port. - The drive will be auto-mounted to /var/usb_disk - Check the flash layout of the device: cat /proc/mtd It should show the following: mtd0: 000a0000 00010000 "u-boot" mtd1: 00020000 00010000 "u-boot-env" mtd2: 00140000 00010000 "reserved1" mtd3: 000a0000 00020000 "fota-flag" mtd4: 00080000 00020000 "art" mtd5: 00080000 00020000 "mac" mtd6: 000c0000 00020000 "reserved2" mtd7: 00400000 00020000 "cfg-param" mtd8: 00400000 00020000 "log" mtd9: 000a0000 00020000 "oops" mtd10: 00500000 00020000 "reserved3" mtd11: 00800000 00020000 "web" mtd12: 00300000 00020000 "kernel" mtd13: 01a00000 00020000 "rootfs" mtd14: 01900000 00020000 "data" mtd15: 03200000 00020000 "fota" mtd16: 01d00000 00020000 "firmware" Differences might indicate that this is NOT a MF286C device but one of other variants. - Copy over all MTD partitions, for example by executing the following: for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15; do cat /dev/mtd$i > \ /var/usb_disk/mtd$i; done "Firmware" partition can be skipped, it is a concatenation of "kernel" and "rootfs". - If the count of MTD partitions is different, this might indicate that this is not a MF286C device, but one of its other variants. - (optionally) rename the files according to MTD partition names from /proc/mtd - Unmount the filesystem: umount /var/usb_disk; sync and then remove the drive. - Store the files in safe place if you ever plan to return to stock firmware. This is especially important, because stock firmware for this device is not available officially, and is usually customized by the mobile providers. STEP 3: Actual installation: - Set your computer IP to 192.168.1.22/24 - scp the sysupgrade image to the device: scp -O openwrt-ath79-nand-zte_mf286a-squashfs-sysupgrade.bin \ root@192.168.1.1:/tmp/ - ssh into the device and execute sysupgrade: sysupgrade -n /tmp/openwrt-ath79-nand-zte_mf286a-squashfs-sysupgrade.bin - Wait for router to reboot to full OpenWrt. STEP 4: WAN connection establishment Since the router is equipped with LTE modem as its main WAN interface, it might be useful to connect to the Internet right away after installation. To do so, please put the following entries in /etc/config/network, replacing the specific configuration entries with one needed for your ISP: config interface 'wan' option proto 'qmi' option device '/dev/cdc-wdm0' option auth '<auth>' # As required, usually 'none' option pincode '<pin>' # If required by SIM option apn '<apn>' # As required by ISP option pdptype '<pdp>' # Typically 'ipv4', or 'ipv4v6' or 'ipv6' For example, the following works for most polish ISPs config interface 'wan' option proto 'qmi' option device '/dev/cdc-wdm0' option auth 'none' option apn 'internet' option pdptype 'ipv4' The required minimum is: config interface 'wan' option proto 'qmi' option device '/dev/cdc-wdm0' In this case, the modem will use last configured APN from stock firmware - this should work out of the box, unless your SIM requires PIN which can't be switched off. If you have build with LuCI, installing luci-proto-qmi helps with this task. Restoring the stock firmware: - Boot to initramfs as in step 3: - Completely detach ubi0 partition using ubidetach /dev/ubi0_0 - Copy over the stock kernel image using scp to /tmp - Erase kernel and restore stock kernel: (scp mtd4_kernel.bin root@192.168.1.1:/tmp/) mtd write kernel /tmp/mtd4_kernel.bin rm /tmp/mtd4_kernel.bin - Copy over the stock partition backups one-by-one using scp to /tmp, and restore them individually. Otherwise you might run out of space in tmpfs: (scp -O mtd3_ubiconcat0.bin root@192.168.1.1:/tmp/) mtd write ubiconcat0 /tmp/mtd3_ubiconcat0.bin rm /tmp/mtd3_ubiconcat0.bin (scp -O mtd5_ubiconcat1.bin root@192.168.1.1:/tmp/) mtd write ubiconcat1 /tmp/mtd5_ubiconcat1.bin rm /tmp/mtd5_ubiconcat1.bin - If the write was correct, force a device reboot with reboot -f Quirks and known issues - It was observed, that CH340-based USB-UART converters output garbage during U-boot phase of system boot. At least CP2102 is known to work properly. - Kernel partition size is increased to 4MB compared to stock 3MB, to accomodate future kernel updates - at this moment OpenWrt 5.10 kernel image is at 2.5MB which is dangerously close to the limit. This has no effect on booting the system - but keep that in mind when reassembling an image to restore stock firmware. - uqmi seems to be unable to change APN manually, so please use the one you used before in stock firmware first. If you need to change it, please use protocok '3g' to establish connection once, or use the following command to change APN (and optionally IP type) manually: echo -ne 'AT+CGDCONT=1,"IP","<apn>' > /dev/ttyUSB0 - The only usable LED as a "system LED" is the blue debug LED hidden inside the case. All other LEDs are controlled by modem, on which the router part has some influence only on Wi-Fi LED. - GPIO5 used for modem reset is a suicide switch, causing a hardware reset of whole board, not only the modem. It is attached to gpio-restart driver, to restart the modem on reboot as well, to ensure QMI connectivity after reboot, which tends to fail otherwise. - Modem, as in MF283+, exposes root shell over ADB - while not needed for OpenWrt operation at all - have fun lurking around. The same modem module is used as in older MF286. Signed-off-by: Lech Perczak <lech.perczak@gmail.com> Link: https://github.com/openwrt/openwrt/pull/17620 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* ramips: add support for Zyxel LTE7490-M904Eric Schäfer2025-03-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Zyxel LTE7490-M904 is an 802.3at PoE powered LTE outdoor (IP68) CPE with integrated directional antennas. Specifications: - SoC: MediaTek MT7621AT - RAM: 256 MB - Flash: 128 MB MB NAND (MX30LF1G18AC) - WiFi: MediaTek MT7603E 802.11b/g/n - Switch: 1 LAN port (1 Gbps) - LTE/3G/2G: Quectel EG18-EA LTE-A Cat. 18 connected by USB3 to SoC - SIM: 1 micro-SIM slots under transparent cover - Buttons: Reset, WLAN under same cover - LEDs: Multicolour green/red/amber under same cover (visible) - Power: 802.3at PoE via LAN port The device is built as an outdoor ethernet to LTE bridge or router. The wifi interface is intended for installation and/or temporary management purposes only. UART Serial: 57600N1, located on populated 5 pin header J5: [o] GND [ ] key - no pin [o] RX [o] TX [o] 3.3V Vcc Remove the SIM/button/LED cover and 12 screws holding the back plate and antenna cover together. Be careful with the cables. Installation from OEM web GUI: - Log in as "admin" on OEM web GUI - Upload OpenWrt initramfs-recovery.bin image on the Maintenance -> Firmware page - Wait for OpenWrt to boot and ssh to root@192.168.1.1 - Sysupgrade to the OpenWrt sysupgrade image and reboot For more details about flashing see: 2449a63208 (ramips: mt7621: Add support for ZyXEL NR7101, 2021-04-19) Main porting work done by Ernesto Castellotti <ernesto@castellotti.net>: bf1c12f68b (ramips: add support for ZyXEL LTE7490-M904, 2023-12-20) Signed-off-by: Eric Schäfer <eric@es86.de> Link: https://github.com/openwrt/openwrt/pull/17485 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* ramips: Add support for Genexis / Inteno Pulse EX400Andreas Gnau2025-03-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for Genexis Pulse EX400 / Inteno Pulse EX400. A branded variant for the Finnish ISP DNA has already been added in fea2264d9fdd (ramips: mt7621: Add DNA Valokuitu Plus EX400, 2023-07-31). This commit adds support for the generic variants with Inteno and Genexis branding. Inteno changed its name to Genexis and both brandings exist. In terms of electronics, there is no difference between the DNA-branded version and other brandings. LED markings on the case are different, though. While the DNA-version has a "software-update" LED, the other versions have a WPS LED. To reduce user confusion, create a separate image. Add the different device-tree with the different LED and rename things to work the same way for both variants. Specifications: - Device: Genexis Pulse EX400 / Inteno Pulse EX400 - SoC: MT7621A - Flash: 256 MB NAND - RAM: 256 MB - Ethernet: Built-in, 2 x 1 GbE - Wifi: MT7603 2.4 GHz 2x2 MIMO, MT7615 5 GHz 4x4 MU-MIMO - USB: 1x 2.0 - LEDs (GPIO): green/red status, green WPS - LEDs (SX9512, unsupported): Broadband, Wi-Fi 2.4G, Wi-Fi 5G - Buttons (GPIO): Reset - Buttons (SX9512, unsupported): Wi-Fi 2.4G, Wi-Fi 5G, WPS MAC addresses: - LAN: U-Boot 'ethaddr' (label) - WAN: label + 1 - 2.4 GHz: label + 6 - 5 GHz: label + 7 Serial: There is a black block connector next to the red ethernet connector. It is accessible also through holes in the casing. Pinout (TTL 3.3V) +---+---+ |Tx |Rx | +---+---+ |Vcc|Gnd| +---+---+ Firmware: The vendor firmware is a fork of OpenWrt (Reboot) with a kernel version 4.4.93. The flash is arranged as below and there is a dual boot mechanism alternating between rootfs_0 and rootfs_1. +-------+------+------+-----------+-----------+ | | env1 | env2 | rootfs_0 | rootfs_1 | | +------+------+-----------+-----------+ | | UBI volumes | +-------+-------------------------------------+ |U-Boot | UBI | +-------+-------------------------------------+ |mtd0 | mtd1 | +-------+-------------------------------------+ | NAND | +---------------------------------------------+ In OpenWrt rootfs_0 will be used as a boot partition that will contain the kernel and the dtb. The squashfs rootfs and overlay are standard OpenWrt behaviour. +-------+------+------+-----------+--------+------------+ | | env1 | env2 | rootfs_0 | rootfs | rootfs_data| | +------+------+-----------+--------+------------+ | | UBI volumes | +-------+-----------------------------------------------+ |U-Boot | UBI | +-------+-----------------------------------------------+ |mtd0 | mtd1 | +-------+-----------------------------------------------+ | NAND | +-------------------------------------------------------+ U-boot: With proper serial access, booting can be halted to U-boot by pressing any key. TFTP and flash writes are available, but only the first one has been tested. NOTE: Recovery mode can be accessed by holding down the reset button while powering on the device. The led 'Update' will show a solid green light once ready. A web server will be running at 192.168.1.1:80 and it will allow flashing a firmware package. You can cycle between rootfs_0 and rootfs_1 by pressing the reset button once. Root password: With the vendor web UI create a backup of your settings and download the archive to your computer. Within the archive in the file /etc/shadow replace the password hash for root with that of a password you know. Restore the configuration with the vendor web UI and you will have changed the root password. SSH access: You might need to enable the SSH service for LAN interface as by default it's enabled for WAN only. Installing OpenWrt: With the vendor web UI, or from the U-Boot recovery UI, install the OpenWrt factory image. Alternatively, ssh to the device and use sysupgrade -n from cli. Finalize by installing the OpenWrt sysupgrade image to get a fully functioning system. Reverting to the vendor firmware: Boot with OpenWrt initramfs image - Remove volumes rootfs_0, rootfs and rootfs_data and create vendor volumes. ubirmvol /dev/ubi0 -n 2 ubirmvol /dev/ubi0 -n 3 ubirmvol /dev/ubi0 -n 4 ubimkvol /dev/ubi0 -N rootfs_0 -S 990 ubimkvol /dev/ubi0 -N rootfs_1 -S 990 Power off and enter to the U-boot recovery to install the vendor firmware. Signed-off-by: Andreas Gnau <andreas.gnau@iopsys.eu> Link: https://github.com/openwrt/openwrt/pull/17551 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* ramips: add support for Hongdian H8922 v30Coia Prant2025-03-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is an industrial 4G router equipped with OpenWrt 14.07 OEM customized version WARNING: The original firmware device tree is common to multiple boards, and the device tree name is H9350. This submitted device tree is a modified version, which deletes the non-this-device parts and adds GPIO watchdog. Specification: - SoC: MediaTek MT7620A - Flash: 16 MB - RAM: 128 MB - Power: DC 5V-36V 1.5A - Ethernet: 1x WAN, 4x LAN (10/100 Mbps) - Wireless radio: 802.11n 2.4g-only - LED: System/Power (RUN): GPIO/26 active-low Ethernet: 1x WAN, 4x LAN Modem 1: GPIO/66 active-low RF 1 (Modem 1 Signal): GPIO/67 active-low Modem 2: GPIO 71 active-low RF 2 (Modem 2 Signal): GPIO/24 active-low WLAN: GPIO/72 active-low WPS: GPIO/12 active-low - Button: WPS / RESET: GPIO/34 active-low - UART: 1x UART on PCB - 115200 8N1 - GPIO Watchdog: GPIO/62 mode=toggle timeout=1s - PCIe: 2x miniPCIe for modem - SIM Slots: 2x SIM Slots Issue: - No factory partition, eeprom is located at /lib/firmware/mt7620a.eeprom Flash instruction: Using UART: 1. Configure PC with a static IP address and setup an TFTP server. 2. Put rootfs into the tftp directory. 3. Connect the UART line as described on the PCB. 4. Power up the device and press Ctrl+C to break auto boot. 5. Use `system 6` command and follow the instruction to set device and tftp server IP address and input the rootfs file name. U-boot will then load the rootfs and write it into the flash. 6. Use `system 1` command and follow the instruction to set device and tftp server IP address and input the firmware file name. U-boot will then load the firmware once. 7. Login to LuCI and use LuCI upgrade firmware. Original Firmware Dump / More details: https://blog.gov.cooking/archives/research-hongdian-h8922-and-flash.html Signed-off-by: Coia Prant <coiaprant@gmail.com> Tested-by: Coia Prant <coiaprant@gmail.com> Link: https://github.com/openwrt/openwrt/pull/17472 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* mediatek: add support for CMCC A10Tianling Shen2025-03-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This board is also as known as SuperElectron ZN-M5 and ZN-M8. However, for ZN-M5 and ZN-M8, there's another version uses ZX279128 as CPU chip, which is unsupported. You can check it in "高级设置" > "系统日志" > "内核日志" page from webUI. Hardware specification: SoC: MediaTek MT7981B 2x A53 Flash: 128 MB SPI-NAND RAM: 256MB Ethernet: 4x 10/100/1000 Mbps Switch: MediaTek MT7531AE WiFi: MediaTek MT7976C Button: Reset, WPS Power: DC 12V 1A Stock layout flash instructions: Login into webUI and upload sysupgrade firmware in "系统管理" > "升级固件" page. Remember to unselect "保留配置" ("Keep configurations") first before doing that. OpenWrt U-Boot layout flash instructions: 1. Flash stock layout firmware first. 2. Connect to the device via SSH, and backup everything, especially 'Factory' partition. 3. Unlock MTD partitions: apk update && apk add kmod-mtd-rw insmod mtd-rw i_want_a_brick=1 4. Write new BL2 and FIP: mtd write openwrt-mediatek-filogic-cmcc_a10-ubootmod-preloader.bin BL2 mtd write openwrt-mediatek-filogic-cmcc_a10-ubootmod-bl31-uboot.fip FIP 5. Set static IP on your PC: IP 192.168.1.254/24, GW 192.168.1.1 6. Serve OpenWrt initramfs image using TFTP server. 7. Cut off the power and re-engage, wait for TFTP recovery to complete. 8. After OpenWrt has booted, perform sysupgrade. Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org> Link: https://github.com/openwrt/openwrt/pull/18121 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* qualcommax: ipq50xx: Add support for Linksys MR5500George Moussalem2025-03-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for Linksys MR5500 (Hydra 6 Pro). Speficiations: * SoC: Qualcomm IPQ5018 (64-bit dual-core ARM Cortex-A53 @ 1.0Ghz) * Memory: Kingston D2516ECMDXGJD (512 MiB) * Serial Port: 3v3 TTL 115200n8 * Wi-Fi: IPQ5018 (2x2 2.4 Ghz 802.11b/g/n/ax) QCN9024 (4x4:4 5 Ghz 802.11an/ac/ax) * Ethernet: IPQ5018 integrated virtual switch connected to an external QCA8337 switch (4 Ports 10/100/1000 GBASE-T) * Flash: Gigadevice GD5F2GQ5REYIH (256 MiB) * LEDs: 1x multi-color PWM LED 1x blue led for USB (GPIO 19 Active High) * Buttons: 1x WPS (GPIO 27 Active Low) 1x Reset (GPIO 28 Acive Low) 5x ethernet port LEDs (amber for activity & green for link up) * Peripherals: 1x USB2 (powered by GPIO 17 Active Low) support for USB3 will be added in a separate PR * FCC ID: 2AYRA-03734 Flash instructions: 1. On OEM firmware, login to the device (typically at http://192.168.1.1) and click 'CA' in the bottom right corner -> Connectivity -> Manual Upgrade. Alternatively, browse to http://<router IP>/fwupdate.html. Upgrade firmware using openwrt-qualcommax-ipq50xx-linksys_mr5500-squashfs-factory.bin image. Optionally install on second partition, after first boot check actual partition: fw_printenv -n boot_part and install firmware on second partition using command in case of 2: mtd -r -e kernel -n write openwrt-qualcommax-ipq50xx-linksys_mr5500-squashfs-factory.bin kernel and in case of 1: mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq50xx-linksys_mr5500-squashfs-factory.bin alt_kernel 2. Installation using serial connection from OEM firmware (default login: root, password: admin): fw_printenv -n boot_part In case of 2: flash_erase /dev/mtd12 0 0 nandwrite -p /dev/mtd12 openwrt-qualcommax-ipq50xx-linksys_mr5500-squashfs-factory.bin or in case of 1: flash_erase /dev/mtd14 0 0 nandwrite -p /dev/mtd14 openwrt-qualcommax-ipq50xx-linksys_mr5500-squashfs-factory.bin After first boot install firmware on second partition: mtd -r -e kernel -n write openwrt-qualcommax-ipq50xx-linksys_mr5500-squashfs-factory.bin kernel or: mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq50xx-linksys_mr5500-squashfs-factory.bin alt_kernel 3. Back to the OEM firmware. Download firmware from OEM website: MR5500: https://support.linksys.com/kb/article/207-en/ From serial or SSH: fw_printenv boot_part in case of 1: mtd -r -e alt_kernel -n write FW_MR5500_1.1.2.209598_prod.img alt_kernel else in case of 2: mtd -r -e kernel -n write FW_MR5500_1.1.2.209598_prod.img kernel 4. Boot from USB This allows you loading an OpenWrt image into RAM and is meant for recovery scenarios only. Enable loading image from USB in u-boot. From serial or SSH: fw_setenv bootusb 'usb start && usbboot &loadaddr && bootm $loadaddr' fw_setenv bootcmd 'run bootusb; if test $auto_recovery = no; then bootipq; elif test $boot_part = 1; then run bootpart1; else run bootpart2; fi' Copy OpenWrt initramfs image to USB: dd bs=1M if=openwrt-qualcommax-ipq50xx-linksys_mr5500-initramfs-uImage.itb of=/dev/sda Signed-off-by: George Moussalem <george.moussalem@outlook.com> Link: https://github.com/openwrt/openwrt/pull/17958 Signed-off-by: Robert Marko <robimarko@gmail.com>
* qualcommax: ipq50xx: add support for Linksys SPNMX56George Moussalem2025-02-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The SPNMX56 is an ISP-branded and distributed device similar to the MX5500 with the same Wifi chips (IPQ5018 for 2.4G and QCN9074 for 5G) but has an additional QCA8081 PHY providing a 2.5gbps ethernet WAN port. Speficiations: * SoC: Qualcomm IPQ5018 (64-bit dual-core ARM Cortex-A53 @ 1.0Ghz) * Memory: Winbond W634GU6NB-11 (512 MiB DDR3-933) * Serial Port: 3v3 TTL 115200n8 * Wi-Fi: IPQ5018 (2x2 2.4 Ghz 802.11b/g/n/ax) QCN9024 (4x4:4 5 Ghz 802.11an/ac/ax) * Ethernet: IPQ5018 integrated virtual switch connected to an external QCA8337 switch (3 Ports 10/100/1000 GBASE-T) and a QCA8081 phy (up to 2.5 Gbps) * Flash: Gigadevice GD5F2GM7RExxG (256 MiB) * LEDs: 1x multi-color PWM LED * Buttons: 1x WPS (GPIO 27 Active Low) 1x Reset (GPIO 28 Acive Low) Flash instructions: 1. On OEM firmware, login to the device (typically at http://192.168.1.1) and click 'CA' in the bottom right corner -> Connectivity -> Manual Upgrade. Alternatively, browse to http://<router IP>/fwupdate.html Upload openwrt-qualcommax-ipq50xx-linksys_spnmx56-squashfs-factory.bin Optionally flash 2nd partition, after first boot check actual partition: fw_printenv -n boot_part and install firmware on second partition using command in case of 2: mtd -r -e kernel -n write openwrt-qualcommax-ipq50xx-linksys_spnmx56-squashfs-factory.bin kernel and in case of 1: mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq50xx-linksys_spnmx56-squashfs-factory.bin alt_kernel 2. Installation using serial connection from OEM firmware hit Enter once booted and enter credentials (login: root, password: admin) fw_printenv -n boot_part In case of 2: flash_erase /dev/mtd12 0 0 nandwrite -p /dev/mtd12 openwrt-qualcommax-ipq50xx-linksys_spnmx56-squashfs-factory.bin or in case of 1: flash_erase /dev/mtd14 0 0 nandwrite -p /dev/mtd14 openwrt-qualcommax-ipq50xx-linksys_spnmx56-squashfs-factory.bin After first boot install firmware on second partition: mtd -r -e kernel -n write openwrt-qualcommax-ipq50xx-linksys_spnmx56-squashfs-factory.bin kernel or: mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq50xx-linksys_spnmx56-squashfs-factory.bin alt_kernel 3. Back to the OEM firmware. Download firmware from OEM website: Firmware for this device cannot be searched for on the Linksys website. Instead, we'd have to use serial to intercept the URL of the firmware while it's trying to update. Firmware is ISP specific: Toob (UK): http://download.linksys.com/updates/20241125t080737/FW_MX56TB_1.0.1.216218_prod.img The intention is to collect URLs for different ISPs on a wiki page. From serial or SSH: fw_printenv boot_part in case of 1: mtd -r -e alt_kernel -n write FW_MX56TB_1.0.1.216218_prod.img alt_kernel else in case of 2: mtd -r -e kernel -n write FW_MX56TB_1.0.1.216218_prod.img kernel Signed-off-by: George Moussalem <george.moussalem@outlook.com> Link: https://github.com/openwrt/openwrt/pull/17968 Signed-off-by: Robert Marko <robimarko@gmail.com>
* qualcommax: add support for Aliyun AP8220Chukun Pan2025-02-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Aliyun AP8220 is an AP manufactured by Edgecore. (Very similar to Edgecore EAP102) Hardware specifications: SoC: Qualcomm IPQ8071A RAM: 1GB of DDR4 600MHz Flash1: MX25U3235F 4MB Flash2: MX30UF1G18AC 128MB Ethernet: 2x 2.5G RJ45 port USB: 2x USB-A 2.0 port WiFi1: QCN5024 2.4GHz WiFi2: QCN5054 5GHz Power: DC 12V / PoE Flash instructions: 1. Connect the router via serial port 2. Keep pressing @ until uboot is interrupted 3. Download the initramfs image, rename it to initramfs.bin, host it with tftp server 4. Run these commands: tftpboot initramfs.bin bootm 5. After openwrt boots up, use scp or luci to upload sysupgrade.bin to upgrade. Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn> Link: https://github.com/openwrt/openwrt/pull/17970 Signed-off-by: Robert Marko <robimarko@gmail.com>
* uboot-envtools: add support for ZyXEL GS-1900-24EPKlaas Demter2025-02-12
| | | | | | | | | | | | | | | | | | | | It seems the that this was forgotten during initial adding of the device in 0688cf5aebe1dc9a2e7f3820861783c2a7a75d44 Thanks to https://forum.openwrt.org/t/zyxel-gs1900-10hp-revision-b1-support-openwrt-firmware/131841/32 for putting me on the right track for this problem Error that is being fixed - running fw_printenv results in: "Warning: Bad CRC, using default environment" and not showing boardmodel Workaround, manually changing /etc/fw_env.config to "/dev/mtd1 0x0 0x400 0x10000" Signed-off-by: Klaas Demter <psychic-stool-cozy@duck.com> Link: https://github.com/openwrt/openwrt/pull/17920 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* uboot-envtools: ipq60xx: code simplificationRobert Marko2025-02-09
| | | | | | | | Do the same code simplification as was done for ipq807x to avoid code duplication. Link: https://github.com/openwrt/openwrt/pull/17907 Signed-off-by: Robert Marko <robimarko@gmail.com>
* qualcommax: ipq50xx: add support for Linksys MX2000 and MX5500George Moussalem2025-02-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add support for Linksys MX2000 (Atlas 6) and MX5500 (Atlas 6 Pro). These devices are completely identical except for the secondary wifi chip used for 5Ghz: QCN6102 is used on MX2000 while QCN9024 is used on MX5500 Speficiations: * SoC: Qualcomm IPQ5018 (64-bit dual-core ARM Cortex-A53 @ 1.0Ghz) * Memory: Winbond W634GU6NB-11 (512 MiB DDR3-933) * Serial Port: 3v3 TTL 115200n8 * Wi-Fi: IPQ5018 (2x2 2.4 Ghz 802.11b/g/n/ax) * Wi-Fi: MX2000: QCN6102 (2x2:2 5 Ghz 802.11an/ac/ax) MX5500: QCN9024 (4x4:4 5 Ghz 802.11an/ac/ax) * Ethernet: IPQ5018 integrated virtual switch connected to an external QCA8337 switch (4 Ports 10/100/1000 GBASE-T) * Flash: Macronix MX35UF2GE4AD (256 MiB) * LEDs: 1x multi-color PWM LED * Buttons: 1x WPS (GPIO 27 Active Low) 1x Reset (GPIO 28 Acive Low) Flash instructions (in case of MX2000, else replace with MX5500 images): 1. On OEM firmware, login to the device (typically at http://192.168.1.1) and click 'CA' in the bottom right corner -> Connectivity -> Manual Upgrade. Alternatively, browse to http://<router IP>/fwupdate.html. Upgrade firmware using openwrt-qualcommax-ipq50xx-linksys_mx2000-squashfs-factory.bin image. Optionally install on second partition, after first boot check actual partition: fw_printenv -n boot_part and install firmware on second partition using command in case of 2: mtd -r -e kernel -n write openwrt-qualcommax-ipq50xx-linksys_mx2000-squashfs-factory.bin kernel and in case of 1: mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq50xx-linksys_mx2000-squashfs-factory.bin alt_kernel 2. Installation using serial connection from OEM firmware (default login: root, password: admin): fw_printenv -n boot_part In case of 2: flash_erase /dev/mtd12 0 0 nandwrite -p /dev/mtd12 openwrt-qualcommax-ipq50xx-linksys_mx2000-squashfs-factory.bin or in case of 1: flash_erase /dev/mtd14 0 0 nandwrite -p /dev/mtd14 openwrt-qualcommax-ipq50xx-linksys_mx2000-squashfs-factory.bin After first boot install firmware on second partition: mtd -r -e kernel -n write openwrt-qualcommax-ipq50xx-linksys_mx2000-squashfs-factory.bin kernel or: mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq50xx-linksys_mx2000-squashfs-factory.bin alt_kernel 3. Back to the OEM firmware. Download firmware from OEM website: MX2000: https://support.linksys.com/kb/article/585-en/ MX5500: https://support.linksys.com/kb/article/587-en/ From serial or SSH: fw_printenv boot_part in case of 1: mtd -r -e alt_kernel -n write FW_MX2000_1.1.7.210469_prod.img alt_kernel else in case of 2: mtd -r -e kernel -n write FW_MX2000_1.1.7.210469_prod.img kernel Signed-off-by: George Moussalem <george.moussalem@outlook.com> Link: https://github.com/openwrt/openwrt/pull/17182 Signed-off-by: Robert Marko <robimarko@gmail.com>
* ipq60xx: fix uboot-envtools file syntax error in uci-defaultsIvan Deng2025-01-28
| | | | | | | | The syntax error prevented the correct creation of all ipq60xx U-Boot environment files: /etc/config/ubootenv and /etc/fw_env.config Signed-off-by: Ivan Deng <hongba@rocketmail.com> Link: https://github.com/openwrt/openwrt/pull/17755 Signed-off-by: Robert Marko <robimarko@gmail.com>
* uboot-envtools: ipq807x: remove number of blocks and code simplificationPaweł Owoc2025-01-15
| | | | | | | | Envtools can automatically detect the number of blocks. Signed-off-by: Paweł Owoc <frut3k7@gmail.com> Link: https://github.com/openwrt/openwrt/pull/17463 Signed-off-by: Robert Marko <robimarko@gmail.com>
* qualcommax: ipq807x: add support for Linksys HomeWRKPaweł Owoc2025-01-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hardware specification: ======== SoC: Qualcomm IPQ8174 Flash: 1GB (Micron MT29F8G08ABBCAH4 or AMD/Spansion S34MS08G2) RAM: 2GB (2x Kingston B5116ECMDXGJD or ESMT M15T2G16128A DDR3L) Ethernet: 4x 10/100/1000Mbps (Qualcomm QCA8075) WiFi1: 5GHz ax 2x2 (Qualcomm QCN5054 + Skyworks SKY85755-11) - channels 36-64 (low band) WiFi2: 2.4GHz ax 2x2 (Qualcomm QCN5024 + Skyworks SKY85340-11) WiFi3: 5GHz ax 4x4 (Qualcomm QCN5054 + Skyworks SKY85755-11) - channels 100-177 (high band) LED: 1x RGB status (NXP PCA9633) USB: 1x USB 3.0 Button: WPS, Reset Flash instructions: ======== 1. Installation from initramfs image using USB drive: Put the initramfs image on the USB drive: - dd bs=1M if=openwrt-qualcommax-ipq807x-linksys_homewrk-initramfs-uImage.itb of=/dev/sdX Connect serial console (JST PH 6-pin connector): - 1 - GND, 2 - TX, 4 - RX (115200, 8N1, 3.3V) Stop u-boot and run: - usb start && usbboot 44000000 0 && bootm 44000000 Write firmware to the flash from initramfs: - sysupgrade -n openwrt-qualcommax-ipq807x-linksys_homewrk-squashfs-sysupgrade.bin or - ubiformat /dev/mtd22 -y -f openwrt-qualcommax-ipq807x-linksys_homewrk-squashfs-factory.ubi 2. USB recovery: Put the initramfs image on the USB: - dd bs=1M if=openwrt-qualcommax-ipq807x-linksys_homewrk-initramfs-uImage.itb of=/dev/sdX Set u-boot env: - fw_setenv bootusb 'usb start && usbboot 44000000 0 && bootm 44000000' - fw_setenv bootcmd 'run bootusb; bootipq' Signed-off-by: Paweł Owoc <frut3k7@gmail.com> Link: https://github.com/openwrt/openwrt/pull/17463 Signed-off-by: Robert Marko <robimarko@gmail.com>
* uboot-envtools: update to v2025.01Shiji Yang2025-01-12
| | | | | | | | | Update to latest version. There are no patches that need to be refreshed. Signed-off-by: Shiji Yang <yangshiji66@qq.com> Link: https://github.com/openwrt/openwrt/pull/17538 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* qualcommax: ipq60xx: add TP-Link EAP610-Outdoor supportAlexandru Gagniuc2025-01-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TP-Link EAP610-Outdoor is a 802.11ax AP claiming AX1800 support. It is wall or pole mountable, and rated for outdoor use. It can only be powered via PoE. Specifications: --------------- * CPU: Qualcomm IPQ6018 Quad core Cortex-A53 * RAM: 512 MB * Storage: ESMT PSR1GA30DT 128MB NAND * Ethernet: * Gigabit RJ45 port with PoE input * WLAN: * 2.4GHz/5GHz * LEDs: * Multi-color System LED (Green/Amber) * Buttons: * 1x Reset * UART: 4-pin unpopulated header * 1.8 V level, Pinout 1 - TX, 2 - RX, 3 - GND, 4 - 1.8V Installation: ============= Web UI method ------------- Set up the device using the vendor's web UI. After that go to Management->SSH and enable the "SSH Login" checkbox. Select "Save". The connect to the machine via SSH: ssh -o hostkeyalgorithms=ssh-rsa <ip_of_device> Disable signature verification: cliclientd stopcs Rename the "-web-ui-factory" image to something less than 63 characters, maintaining the ".bin" suffix. * Go to System -> Firmware Update. * Under "New Firmware File", click "Browse" and select the image * Select "Update" and confirm by clicking "OK". If the update fails, the web UI should show an error message. Otherwise, the device should reboot into OpenWRT. TFTP method ----------- To flash via tftp, first place the initramfs image on the TFTP server. setenv serverip <ip of tftp server> setenv ipaddr <ip in same subnet as tftp server> tftpboot tplink_eap610-outdoor-initramfs-uImage.itb bootm This should boot OpenWRT. Once booted, flash the sysupgrade.bin image using either luci or the commandline. The tplink2022 image format ============================ The vendor images of this device are packaged in a format that does not match any previous tplink formats. In order for flashing to work from the vendor's web UI, firmware updates need to be packaged in this format. The `tplink-mkimage-2022.py` is provided for this purpose. This script can also analyze vendor images, and extract the required "support" string. This string is checked by the vendor firmware, and images with a missing or incorrect string are rejected. Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com> Link: https://github.com/openwrt/openwrt/pull/14922 Signed-off-by: Robert Marko <robimarko@gmail.com>
* uboot-envtools: ipq60xx: remove number of blocksRobert Marko2025-01-06
| | | | | | | | It is not required to specify the number of blocks as envtools are able to autodetect it. Link: https://github.com/openwrt/openwrt/pull/17504 Signed-off-by: Robert Marko <robimarko@gmail.com>
* qualcommax: ipq807x: add support for Linksys MX4300 (LN1301)Paweł Owoc2024-12-31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Hardware specification: ======== SoC: Qualcomm IPQ8174 Flash: 1GB (Micron MT29F8G08ABBCAH4 or AMD/Spansion S34MS08G2) RAM: 2GB (2x Kingston B5116ECMDXGJD or ESMT M15T2G16128A DDR3L) Ethernet: 4x 10/100/1000Mbps (Qualcomm QCA8075) WiFi1: 5GHz ax 2x2 (Qualcomm QCN5054 + Skyworks SKY85755-11) - channels 36-64 (low band) WiFi2: 2.4GHz ax 2x2 (Qualcomm QCN5024 + Skyworks SKY85340-11) WiFi3: 5GHz ax 4x4 (Qualcomm QCN5054 + Skyworks SKY85755-11) - channels 100-177 (high band) LED: 1x RGB status (NXP PCA9633) USB: 1x USB 3.0 Button: WPS, Reset Flash instructions: ======== 1. Manually upgrade firmware using openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin image. More details can be found here: https://support.linksys.com/kb/article/6564-en/ After first boot check actual partition: - fw_printenv -n boot_part and install firmware on second partition using command in case of 2: - mtd -r -e kernel -n write openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin kernel and in case of 1: - mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin alt_kernel 2. Installation using serial connection from OEM firmware (default login: root, password: admin): - fw_printenv -n boot_part In case of 2: - flash_erase /dev/mtd21 0 0 - nandwrite -p /dev/mtd21 openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin or in case of 1: - flash_erase /dev/mtd23 0 0 - nandwrite -p /dev/mtd23 openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin After first boot install firmware on second partition: - mtd -r -e kernel -n write openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin kernel or: - mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin alt_kernel 3. Installation from initramfs image using USB drive: Put the initramfs image on the USB drive: - dd bs=1M if=openwrt-qualcommax-ipq807x-linksys_mx4300-initramfs-uImage.itb of=/dev/sdX Stop u-boot and run: - usb start && usbboot $loadaddr 0 && bootm $loadaddr Write firmware to the flash from initramfs: - mtd -e kernel -n write openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin kernel and: - mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq807x-linksys_mx4300-squashfs-factory.bin alt_kernel 4. Back to the OEM firmware: - mtd -e kernel -n write FW_MX4300_1.0.4.215382_prod.img kernel and: - mtd -r -e alt_kernel -n write FW_MX4300_1.0.4.215382_prod.img alt_kernel 5. USB recovery: Put the initramfs image on the USB: - dd bs=1M if=openwrt-qualcommax-ipq807x-linksys_mx4300-initramfs-uImage.itb of=/dev/sdX Set u-boot env: - fw_setenv bootusb 'usb start && usbboot $loadaddr 0 && bootm $loadaddr' - fw_setenv bootcmd 'run bootusb; if test $auto_recovery = no; then bootipq; elif test $boot_part = 1; then run bootpart1; else run bootpart2; fi' Co-authored-by: Qiyuan Zhang <zhang.github@outlook.com> Signed-off-by: Paweł Owoc <frut3k7@gmail.com> Link: https://github.com/openwrt/openwrt/pull/16070 Signed-off-by: Robert Marko <robimarko@gmail.com>
* mediatek: filogic: Add support for D-Link AQUILA PRO AI M60Roland Reinl2024-12-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Specification: - MT7986 CPU using 2.4GHz and 5GHz WiFi (both AX) - MT7531 switch - 512MB RAM - 128MB NAND flash (MX35LF1GE4AB-Z4I) with two UBI partitions with identical size - 1 multi color LED (red, green, blue, white) connected via GCA230718 (Same as D-Link M30 A1) - 3 buttons (WPS, reset, LED on/off) - 1x 2.5 Gbit WAN port with Maxlinear GPY211C - 4x 1 Gbit LAN ports Disassembly: - There are five screws at the bottom: 2 under the rubber feet, 3 under the label. - After removing the screws, the white plastic part can be shifted out of the blue part. - Be careful because the antennas are mounted on the side and the top of the white part. Serial Interface - The serial interface can be connected to the 4 pin holes next to/under the antenna cables. - Note that there is another set of 4 pin holes on the side of the board, it's not used. - Pins (from front to rear): - 3.3V (do not connect) - TX - RX - GND - Settings: 115200, 8N1 MAC addresses: - MAC address is stored in partition "Odm" at offset 0x81 (for example XX:XX:XX:XX:XX:52) - MAC address on the device label is ODM + 1 (for example XX:XX:XX:XX:XX:53) - WAN MAC is the one from the ODM partition (for example XX:XX:XX:XX:XX:52) - LAN MAC is the one from the ODM partition + 1 (for example XX:XX:XX:XX:XX:53) - WLAN MAC (2.4 GHz) is the one from the ODM partition + 2 (for example (XX:XX:XX:XX:XX:54) - WLAN MAC (5 GHz) is the one from the ODM partition + 5 (for example (XX:XX:XX:XX:XX:57) Flashing via OEM web interface: - Currently not supported because image crypto is not known Flashing via recovery web interface: - This is only working if the first partition is active because recovery images are always flashed to the active partition and OpenWrt can only be executed from the first partition - Use a Chromium based browser, otherwise firmware upgrade might not work - Recovery web interface is accessible via 192.168.200.1 after keeping the reset button pressed during start of the device until the LED blinks red - Upload the recovery image, this will take some time. LED will continue flashing red during the update process - The after flashing, the recovery web interface redirects to http://192.168.0.1. This can be ignored. OpenWrt is accessible via 192.168.1.1 after flashing - If the first partition isn't the active partition, OpenWrt will hang during the boot process. In this case: - Download the recovery image from https://github.com/RolandoMagico/openwrt/releases/tag/M60-Recovery-UBI-Switch (UBI switch image) - Enable recovery web interface again and load the UBI switch image. This image works on the second partition of the M60 - OpenWrt should boot now as expected. After booting, flash the normal OpenWrt sysupgrade image (for example in the OpenWrt web interface) - Flashing a sysupgrade image from the UBI switch image will make the first partition the active partition and from now on, default OpenWrt images can be used Flashing via Initramfs: - Before switching to OpenWrt, ensure that both partitions contain OEM firmware. - This can be achieved by re-flashing the same OEM firmware version again via the OEM web interface. - Flashing via OEM web interface will automatically flash the currently not active partition. - Open router, connect serial interface - Start a TFTP server at 192.168.200.2 and provide the initramfs image there - When starting the router, select "7. Load Image" in U-Boot - Settings for load address, load method can be kept as they are - Specify host and router IP address if you use different ones than the default (Router 192.168.200.1, TFTP server 192.168.200.2) - Enter the file name of the initramfs image - Confirm "Run loaded data now?" question after loading the image with "Y" - OpenWrt initramfs will start now - Before flashing OpenWrt, create a backup of the "ubi" partition. It is required when reverting back to OEM - Flash sysupgrade image to flash, during flashing the U-Boot variable sw_tryactive will be set to 0 - During next boot, U-Boot tries to boot from the ubi partition. If it fails, it will switch to the ubi1 partition Reverting back to OEM: - Boot the initramfs image as described in "Flashing via Initramfs" above - Copy the backed up ubi partition to /tmp (e.g. by using SCP) - Write the backup to the UBI partition: mtd write /tmp/OpenWrt.mtd4.ubi.bin /dev/mtd4 - Reboot the device, OEM firmware will start now Signed-off-by: Roland Reinl <reinlroland+github@gmail.com> Link: https://github.com/openwrt/openwrt/pull/17296 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* ath79: port buffalo WZR-450HP2 from ar71xxEdward Chow2024-12-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Referencing commit a1837135e04b Hardware -------- SoC: Qualcomm Atheros QCA9558 RAM: 128M DDR2 (Nanya NT5TU64M16HG-AC) FLASH: 128M SPI-NAND (Spansion S34ML01G100TFI00) WLAN: QCA9558 3T3R 802.11 bgn ETH: Qualcomm Atheros QCA8337 UART: 115200 8n1 BUTTON: Reset - WPS - "Router" switch LED: 2x system-LED, 2x wlan-LED, 1x internet-LED, 2x routing-LED LEDs besides the ethernet ports are controlled by the ethernet switch MAC Address: use address(sample 1) source label cc:e1:d5:xx:xx:ed art@macaddr_wan lan cc:e1:d5:xx:xx:ec art@macaddr_lan wan cc:e1:d5:xx:xx:ed $label WiFi4_2G cc:e1:d5:xx:xx:ec art@cal_ath9k Installation from Serial Console ------------ 1. Connect to the serial console. Power up the device and interrupt autoboot when prompted 2. Connect a TFTP server reachable at 192.168.11.10/24 to the ethernet port. Serve the OpenWrt initramfs image as "openwrt.bin" 3. Boot the initramfs image using U-Boot ath> tftpboot 0x84000000 openwrt.bin ath> bootm 0x84000000 4. Copy the OpenWrt sysupgrade image to the device using scp and install it like a normal upgrade (with no need to keeping config since no config from "previous OpenWRT installation" could be kept at all) # sysupgrade -n /path/to/openwrt/sysupgrade.bin Installation from Web Interface ------------ To flash just do a firmware upgrade from the stock firmware (Buffalo branded dd-wrt) with squashfs-factory.bin Signed-off-by: Edward Chow <equu@openmail.cc> Link: https://github.com/openwrt/openwrt/pull/17227 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* mediatek: filogic: add support for Tenbay WR3000KJianyu Zhuang2024-12-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tenbay WR3000K is an 802.11ax (Wi-Fi 6) router, based on MediaTek MT7981B. - SoC: MetiaTek MT7981B - RAM: Hynex H5TQ2G863GFR 512MiB - Flash: Winbond W25N01GVZEIG 128MiB - Wi-Fi: MediaTek MT7976C (2.4GHz/5GHz, 802.11ax, 2x2 MIMO, AX3000) - MediaTek MT7915E: 2.4GHz and 5GHz - Ethernet: 1x 10/100/1000 Mbps WAN + 3x 10/100/1000 Mbps LAN - Switch: MediaTek MT7531AE - UART: J4 (115200 baud) - LEDs: Power - Buttons: Reset, WPS - PWR: 12V/1A DC, 5.5×2.1 connector | Vendor | OpenWrt Interface | Address | Notes | |---------|-------------------|---------------|------------------------------------------------| | WAN | wan | Label MAC | Stored MAC in factory + offset 4, label MAC is Stored MAC - 2 | | LAN | br-lan | Label MAC+1 | | | 2.4GHz | phy0-ap0 | Label MAC + 2 | | | 5GHz | phy1-ap0 | Label MAC + 3 | | - 0x000000000000-0x000000100000 : "BL2" - 0x000000100000-0x000000180000 : "u-boot-env" - 0x000000180000-0x000000380000 : "Factory" - 0x000000380000-0x000000580000 : "FIP" - 0x000000580000-0x000003580000 : "ubi" - 0x000003580000-0x000006580000 : "ubi1" - 0x000006580000-0x0000065a0000 : "Product" - 0x0000065a0000-0x000007580000 : "Custom" - The original partition-Ubi partition-Ubi1 is an AB dual system, and Openwrt only uses Ubi. So flash requires modifying the uboot variable `boot_from=ubi` to ensure that it only starts from Ubi. - The Product and Custom partitions are original and only exist to align with the original layout; they are not used by OpenWrt. - id: 0, kernel - id: 1, rootfs - id: 2, rootfs_data - **USB-to-TTL Serial Adapter** (e.g., CH340 or CP2102). - **Dupont Wires** (male-to-male, 3 wires). - **PC/Laptop** with a serial communication tool. - Screwdriver (to open the router case). 1. **OpenWrt Firmware**: - Download the appropriate `wr3000k-<build_time>-mediatek-filogic-tenbay_wr3000k-squashfs-sysupgrade.bin` firmware file for your router from the [OpenWrt website](https://openwrt.org/). 2. **Serial Communication Tool**: - Windows: PuTTY, Tera Term. - Linux/Mac: Minicom, screen. 3. (Optional) **TFTP Server**: - Install a TFTP server like Tftpd64 or tftp-hpa. --- 1. Open the router casing and locate the **TX, RX, and GND** pins. 2. Connect the router pins to the USB-to-TTL adapter as follows: - **TX (router)** → **RX (adapter)** - **RX (router)** → **TX (adapter)** - **GND (router)** → **GND (adapter)** 3. Do **not** connect the VCC pin to avoid damage. - **Baud rate**: 115200 - **Data bits**: 8 - **Stop bits**: 1 - **Parity**: None - **Flow control**: None --- 1. Power on the router and observe the serial terminal output. 2. When prompted (e.g., `Hit any key to stop autoboot: 3`), press the '/' key quickly to interrupt the boot process. 3. You will see the U-Boot Boot Menu: ```plaintext *** U-Boot Boot Menu *** 1. Factory mode 2. Startup system (Default) 3. Upgrade firmware 4. Upgrade ATF BL2 5. Upgrade ATF FIP 6. Upgrade single image 7. Load image 0. U-Boot console Press UP/DOWN to move, ENTER to select, ESC/CTRL+C to quit ``` 4. Select Option 0 by typing 0 and pressing Enter. 5. Input into ```plaintext MT7981> setenv boot_from ubi MT7981> saveenv Saving Environment to MTD... Erasing on MTD device 'nmbm0'... OK Writing to MTD device 'nmbm0'... OK OK MT7981> printenv baudrate=115200 boot_from=ubi ... ``` the above indicates system will start from *ubi*. and then type ```plaintext MT7981> reset ``` will boot from *ubi* 1. Power on the router and observe the serial terminal output. 2. When prompted (e.g., `Hit any key to stop autoboot: 3`), press the '/' key quickly to interrupt the boot process. 3. You will see the U-Boot Boot Menu: ```plaintext *** U-Boot Boot Menu *** 1. Factory mode 2. Startup system (Default) 3. Upgrade firmware 4. Upgrade ATF BL2 5. Upgrade ATF FIP 6. Upgrade single image 7. Load image 0. U-Boot console Press UP/DOWN to move, ENTER to select, ESC/CTRL+C to quit ``` 4. Choose Option 3: Upgrade Firmware Enter Upgrade Mode Select Option 3 by typing 3 and pressing Enter. Upgrade Methods You will be prompted to choose between: ```plaintext *** Upgrading Firmware *** Run image after upgrading? (Y/n): y Available load methods: 0 - TFTP client (Default) 1 - Xmodem 2 - Ymodem 3 - Kermit 4 - S-Record 5 - RAM Select (enter for default): 0 Input U-Boot's IP address: 192.168.1.1 Input TFTP server's IP address: 192.168.1.10 Input IP netmask: 255.255.255.0 Input file name: wr3000k-<build_time>-mediatek-filogic-tenbay_wr3000k-squashfs-sysupgrade.bin ``` Type Enter to proceed. The router will erase the old firmware and write the new one. Signed-off-by: Jianyu Zhuang <xzjianyu@gmail.com> Link: https://github.com/openwrt/openwrt/pull/17172 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* ipq807x: add support for TP-Link EAP620 HD v1Shymon Samsel2024-12-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Specifications: * SoC: Qualcomm IPQ8072A (64-bit Quad-core Arm Cortex-A53 @ 1.4 GHz) * Memory: 2x ESMT M15T4G16256A-DEBG2G (1 GiB DDR3-1866 13-13-13) * Serial Port: 3v3 TTL 115200n8 * Wi-Fi: QCA5054 (4x4 5 GHz 802.11ax) * Wi-Fi: QCN5024 (2x2 2.4 GHz 802.11b/g/n/ax) * Ethernet: AR8031 (10/100/1000BASE-T) * Flash: Winbond W29N01HZSINF (128 MiB) * LEDs: 1x Blue Status (GPIO 42 Active High) * Buttons: 1x Reset (GPIO 50 Active Low) Installation Instructions (Serial+TFTP): 1. Solder 4 pin header to JP1 and bridge pads of R58 and R62. 2. Connect 3V3 TTL port to TX, RX, and GND, which are positions 1, 2, and 3 respectively. Be sure to crossover TX and RX. 3. Copy RAM firmware openwrt-qualcommax-ipq807x-tplink_eap620hd-v1-initramfs-uImage.itb to a TFTP server's root that is in the same subnet as your AP. 4. Power up the AP hold Ctrl+B in the serial console (115200n8) until autoboot is halted. 5. Run the following commands in the U-boot prompt: # setenv serverip <TFTP server addr> # setenv ipaddr <addr of AP> # tftpboot 0x44000000 openwrt-qualcommax-ipq807x-tplink_eap620hd-v1-initramfs-uImage.itb # bootm You may need to type Ctrl+C and Enter before running these commands to clear invisible characters from the buffer. 6. Run the following command in a terminal to copy the sysupgrade image to be installed (check IP address): $ scp -O openwrt-qualcommax-ipq807x-tplink_eap620hd-v1-squashfs-sysupgrade.bin root@192.168.1.1:/tmp/ 7. Activate the OpenWrt serial console and run the following commands: # cd /tmp # sysupgrade -n openwrt-qualcommax-ipq807x-tplink_eap620hd-v1-squashfs-sysupgrade.bin 8. The AP will reboot and OpenWrt will be successfully installed. Known Issues: * 5GHz radio instability (upstream current ath11k build bug maybe?) Device support directly followed from EAP660HDv1 support Links: #15832 Signed-off-by: Shymon Samsel <ssamsel@umass.edu> Link: https://github.com/openwrt/openwrt/pull/17254 Signed-off-by: Robert Marko <robimarko@gmail.com>
* ramips: add support for ASUS 4G-AX56Chuncheng Chen2024-12-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Specifications: - Device: ASUS 4g-AX56 - SoC: MT7621AT - Flash: 128MB - RAM: 512MB - Switch: 1 WAN, 4 LAN (10/100/1000 Mbps) - WiFi: MT7905 2x2 2.4G + MT7975 2x2 5G - LTE : Fibocom FG621-EA - LEDs: 1x POWER (white, configurable) 1x 2.4G (white, not configurable) 1x 5G (white, not configurable) 1x WAN (white, not configurable) 1x 3G/4G (white, not configurable) 3x signal (white, not configurable) Flash by U-Boot TFTP method: - Configure your PC with IP 192.168.0.2 - Set up TFTP server and put the factory.bin image on your PC - Connect serial port(rate:115200) and turn on AP, then interrupt "U-Boot Boot Menu" by hitting any key Select "2. Upgrade firmware" Press enter when show "Run firmware after upgrading? (Y/n):" Select 0 for TFTP method Input U-Boot's IP address: 192.168.0.1 Input TFTP server's IP address: 192.168.0.2 Input IP netmask: 255.255.255.0 Input file name: openwrt-ramips-mt7621-asus_4g-ax56-squashfs-factory.bin - Restart AP aftre see the log "Firmware upgrade completed!" Notice: - LTE module is disable after flash openwrt image so you must active LTE by following two AT command echo -e "AT+GTAUTOCONNECT=1\r\n" > /dev/ttyUSB0 echo -e "AT+GTRNDIS=1,1\r\n" > /dev/ttyUSB0 - After finish AT command once, you don't need to input command later even if reboot/restore default Signed-off-by: Chuncheng Chen <ccchen1984@gmail.com> Link: https://github.com/openwrt/openwrt/pull/16752 Signed-off-by: John Crispin <john@phrozen.org>
* mediatek: filogic: add support for NRadio C8-668GLYaoguang Bai2024-12-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | NRadio C8-668GL is a Wi-Fi 6 5G cellular router based on MediaTek MT7981B SoC. - **SoC**: MediaTek MT7981B (2x Cortex-A53, 1.3GHz) - **RAM**: Nanya NT5AD512M16C4-JR 1GB DDR4 - **Flash**: ESMT FC51L08SFY3A 8GB eMMC - **Ethernet**: - 1x 2.5GbE (via GMAC0 and GPY211 PHY, shared with MT7531AE) - 3x 10/100/1000 Mbps (via MT7531AE, connected to GMAC0) - 5G Modem: GMAC1 (via GPY211 PHY - RTL8125BG - RM520N-GL) - **Wi-Fi**: MediaTek MT7976CN (2.4GHz/5GHz, 802.11ax, 2x2 MIMO, AX3000) - **Buttons**: Reset, WPS - **LEDs**: Power, 5G, 4G, WiFi - **SIM Slot**: 1x Nano SIM - **5G Modem**: Quectel RM520N-GL (Snapdragon™ X62) - **Power**: 12V/2A DC, 5.5×2.1 connector The MAC addresses are derived from the `fac_mac` field in the `bdinfo` partition, formatted as `fac_mac = HWMAC`. The allocation is as follows: | Vendor | OpenWrt Interface | Address | Notes | |---------|-------------------|---------------|------------------------------------------------| | LAN | br-lan | Label MAC | Default | | WAN | lan4 | Label MAC+1 | Only when lan4 is switched to WAN | | 2.4GHz | phy0-ap0 | Label MAC | | | 5GHz | phy1-ap0 | Label MAC | (Local Admin bit set) | | Modem | eth1 | Label MAC+2 | | 1. Log in to the router via `http://192.168.66.1`/. 2. Upgrade the official firmware to dual-system mode. 3. Select **Burn second system** and upload the `sysupgrade.bin` image. - Download the image from the OpenWrt build system or build it yourself using the OpenWrt buildroot. 4. Wait for 30 seconds and click **Switch system**. 5. The device will reboot and switch to OpenWrt. Set the U-Boot environment variable `boot_system=0` and reboot: ```bash fw_setenv boot_system 0 ``` Power off the router, hold the **WPS button**, and power it back on. 1. Rename the stock firmware file to **`recovery.bin`**. 2. Set your PC's Ethernet IP to **192.168.1.88** and connect it to the lan1 port on the router. 3. Run a TFTP server and place the `recovery.bin` file in its root directory. 4. Power off the router, press and hold the **Reset button**, and power it back on. 5. Release the Reset button when the TFTP server shows activity. 6. Wait for the router to flash the firmware and reboot automatically. - By default, `lan4` is part of `br-lan` and uses the label MAC address. - To query the RM520N-GL module, use the following command: ```bash cat /dev/ttyUSB2 & printf 'ATI\r\n' > /dev/ttyUSB2 ``` Signed-off-by: Yaoguang Bai <0xdeadc0de@badguys.club> Link: https://github.com/openwrt/openwrt/pull/17093 Signed-off-by: John Crispin <john@phrozen.org>
* qualcommax: ipq60xx: add Linksys MR7350 supportVladyslav Andreichykov2024-12-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Linksys MR7350 is a 802.11ax Dual-band router/AP. Specifications: * CPU: Qualcomm IPQ6000 Quad core Cortex-A53(A73) 1.5GHz * RAM: 512MB of DDR3 * Storage: 256Mb NAND * Ethernet: 5x1G RJ45 ports (QCA8075) * WLAN: * 2.4GHz: Qualcomm QCN5022 2x2 802.11b/g/n/ax 574 Mbps PHY rate * 5GHz: Qualcomm QCN5052 2x2@80MHz or 802.11a/b/g/n/ac/ax 1201 Mbps PHY rate * LED-s: * RGB system led * USB blue led * Buttons: 1x Soft reset 1x WPS * Power: 12V DC Jack Installation instructions: Open Linksys Web UI - http://192.168.1.1/ca or http://10.65.1.1/ca depending on your setup. Login with your admin password. The default password can be found on a sticker under the device. To enter into the support mode, click on the “CA” link and the bottom of the page. Open the “Connectivity” menu and upload the squash-factory image with the “Choose file” button. Click start. Ignore all the prompts and warnings by click “yes” in all the popups. The Wifi radios are turned off by default. To configure the router, you will need to connect your computer to the LAN port of the device. Then you would need to write openwrt to the other partition for it to work - First Check booted partition: fw_printenv -n boot_part - Change the partition: fw_setenv boot_part 1 or fw_setenv boot_part 2 depending on the current partition - Then install Openwrt to the other partition if booted in slot 1: mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq60xx-linksys_mr7350-squashfs-factory.bin alt_kernel - If in slot 2: mtd -r -e kernel -n write openwrt-qualcommax-ipq60xx-linksys_mr7350-squashfs-factory.bin kernel Co-Authored-by: Chukun Pan <amadeus@jmu.edu.cn> Co-Authored-by: Robert Marko <robimarko@gmail.com> Signed-off-by: Vladyslav Andreichykov <vladdrako007@gmail.com> Link: https://github.com/openwrt/openwrt/pull/14807 Signed-off-by: Robert Marko <robimarko@gmail.com>
* mediatek: MERCUSYS MR90X v1: add OpenWrt U-Boot (UBI) layoutMikhail Zhilkin2024-11-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds OpenWrt U-Boot (UBI) layout support for MERCUSYS MR90X v1. Stock U-Boot UBI size: 50 MiB OpenWrt U-boot UBI size: 126 MiB Install ------- 1. Perform steps 1-14 of the OpenWrt installation guide (use OpenWrt initramfs-recovery.itb instead of initramfs-kernel.bin at the step 10, 12 and 14). Link: https://openwrt.org/toh/mercusys/mr90x_v1#installation 2. Make backups: ``` cat /dev/mtd0 > /tmp/boot.bin cat /dev/mtd5 > /tmp/tp_data.bin ``` Copy /tp_data dir content, /tmp/boot.bin and /tmp/tp_data.bin and to your PC using scp. You can also backup the remaining partititons. Copy backups to a safe place, they are required for the next steps and stock firmware recovery. 3. Reboot to OpenWrt initramfs: ``` reboot ``` 4. Copy OpenWrt ubi-bl31-uboot.fip, ubi-preloader.bin, ubi-squashfs-sysupgrade.itb and MT7986_EEPROM.bin, default-mac (from /tp_data backup) to the /tmp folder of the router using scp. 5. Prepare UBI: ``` ubidetach -p /dev/mtd3; ubiformat /dev/mtd3 -y; ubiattach -p /dev/mtd3 ubimkvol /dev/ubi0 -N fip -t static -s 1MiB ubiupdatevol /dev/ubi0_0 /tmp/ubi-bl31-uboot.fip ubimkvol /dev/ubi0 -N ubootenv -s 0x1f000 ubimkvol /dev/ubi0 -N ubootenv2 -s 0x1f000 ``` 6. Install kmod-mtd-rw and unlock partitions: ``` opkg update && opkg install kmod-mtd-rw insmod mtd-rw i_want_a_brick=1 mtd unlock boot mtd unlock bl2 mtd unlock factory ``` 7. Prepare "factory" partition: ``` dd if=/dev/zero bs=$((0x8000)) count=1 | tr '\000' '\377' > /tmp/factory.bin dd if=/tmp/MT7986_EEPROM.bin of=/tmp/factory.bin conv=notrunc dd if=/tmp/default-mac >> /tmp/factory.bin ``` 8. Write "factory" partition: ``` mtd erase factory mtd write /tmp/factory.bin factory ``` 9. Write preloader partition: ``` mtd erase bl2 mtd write /tmp/ubi-preloader.bin bl2 ``` 10. Write OpenWrt sysupgrade image: ``` sysupgrade -n /tmp/ubi-squashfs-sysupgrade.itb ``` Recovery -------- 1. Place OpenWrt initramfs-recovery.itb image (with original name) on the tftp server (IP: 192.168.1.254). 2. Press "reset" button and power on the router. After ~10 sec release the button. 3. Use OpenWrt initramfs system for recovery. BL2 and FIP recovery -------------------- Use mtk_uartboot and UART connetion if BL2 or FIP in UBI is destroyed: Link: https://github.com/981213/mtk_uartboot Link: https://openwrt.org/toh/mercusys/mr90x_v1#serial Return to stock: ---------------- 1. Copy "boot" partition backup (boot.bin) to the /tmp dir of the router using scp. 2. Install kmod-mtd-rw: ``` opkg update && opkg install kmod-mtd-rw ``` 3. Restore stock U-Boot: ``` insmod mtd-rw i_want_a_brick=1 mtd unlock boot mtd erase boot mtd write /tmp/boot.bin boot ``` 4. Erase UBI and reboot: ``` mtd erase ubi reboot ``` 5. Open U-Boot web recovery, upload stock firmware image and start upgrade. Link: http://192.168.1.1 6. Complete steps 1-9 of the OpenWrt installation guide to get root rights. Link: https://openwrt.org/toh/mercusys/mr90x_v1#installation 7. Upload "tp_data" partition backup (tp_data.bin) to the /tmp folder of the router using scp. 8. Restore stock calibrations: ``` mtd write /tmp/tp_data.bin tp_data reboot ``` 9. Perform "factory restore" via stock firmware web interface. Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com> Link: https://github.com/openwrt/openwrt/pull/16744 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* mediatek: Routerich AX3000: add OpenWrt U-Boot layoutMikhail Zhilkin2024-11-24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds OpenWrt U-Boot layout support for Routerich AX3000. The aims: 1. Get open-source U-Boot; 2. Get maximum available free space in OpenWrt. Install ------- 1. Copy OpenWrt ubootmod-bl31-uboot.fip, ubootmod-preloader.bin, to the /tmp folder of the router using scp. 2. Make mtd partitions backups: http://192.168.1.1/cgi-bin/luci/admin/system/flash -> Save mtdblock contents 3. Install kmod-mtd-rw: ``` opkg update && opkg install kmod-mtd-rw ``` 4. Write FIP and preloader: ``` insmod mtd-rw i_want_a_brick=1 mtd unlock BL2 mtd erase BL2 mtd write /tmp/ubootmod-preloader.bin BL2 mtd unlock FIP mtd erase FIP mtd write /tmp/ubootmod-bl31-uboot.fip FIP ``` 5. Copy OpenWrt ubootmod-initramfs-recovery.itb to the tftp server root with IP 192.168.1.254. 6. Reboot router: ``` reboot ``` U-Boot will automatically download from the tftp server and boot OpenWrt initramfs system. 7. Copy OpenWrt ubootmod-squashfs-sysupgrade.itb to the /tmp dir of the router using scp. 8. Run sysupgrade: ``` sysupgrade -n /tmp/squashfs-sysupgrade.itb ``` Recovery -------- 1. Place OpenWrt initramfs-recovery.itb image (with original name) on the tftp server (IP: 192.168.1.254). 2. Press "reset" button and power on the router. After ~10 sec release the button. 3. Use OpenWrt initramfs system for recovery. BL2 and FIP recovery -------------------- Use mtk_uartboot and UART connection if BL2 or FIP in UBI is destroyed: Link: https://github.com/981213/mtk_uartboot Return to stock: ---------------- 1. Copy partition backups (BL2.bin and FIP.bin) to the /tmp dir of the router using scp. 2. Install kmod-mtd-rw: ``` opkg update && opkg install kmod-mtd-rw ``` 3. Restore stock U-Boot and reboot: ``` insmod mtd-rw i_want_a_brick=1 mtd unlock BL2 mtd erase BL2 mtd write /tmp/BL2.bin BL2 mtd unlock FIP mtd erase FIP mtd write /tmp/FIP.bin FIP reboot ``` 4. Open U-Boot web recovery, upload stock firmware image and start upgrade. Link: http://192.168.1.1 Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com> Link: https://github.com/openwrt/openwrt/pull/16791 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* mediatek: add support for Acer Predator W6d and Acer Vero W6mGeorge Oldfort2024-11-23
| | | | | | | | | | | | | | | | | | | | | This commit adds support for two variants of the already supported router Acer Predator Connect W6: The Acer Predator Connect W6d (W6 without 6 GHz wifi) and the Acer Connect Vero W6m (W6 without 2.5G eth1 port, usb3 port, and the 6 on-board gpio RGB LEDs, and with a KTD2026 RGB LED controller instead of the KTD2061 LED controller of the W6/W6d). The device tree for the W6m refers to the KTD202x driver suggested in PR #16860. Patching target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh removes the code repetition in (old) lines 121 to 124 on the occasion. This is the last of four commits into which the original commit was split to make reviews easier and more targeted. Signed-off-by: George Oldfort <openwrt@10099.de> Link: https://github.com/openwrt/openwrt/pull/16861 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* mediatek: make use of Acer Predator Connect W6's u-boot environmentGeorge Oldfort2024-11-23
| | | | | | | | | | | | | | | | | | | In order to prepare OpenWrt support for other Acer W6 devices and to adapt the procedure to read and set mac addresses which other devices of the same target are using (instead of needing an additional script and creating an additional structure in the file system), this commit - reads device mac addresses from u-boot environment - avoids the detour via the file system to set the mac addresses - drops redundant file /lib/preinit/05_extract_factory_data.sh The idea and the implementation were thankfully taken from PR #16410. This is the second of four commits into which the original commit was split to make reviews easier and more targeted. Signed-off-by: George Oldfort <openwrt@10099.de> Link: https://github.com/openwrt/openwrt/pull/16861 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* uboot-envtools: add support for GatoNetworks GDSPEnrico Mioso2024-11-14
| | | | | | This configuration should work with both stock and OpenWrt-based U-Boot. Signed-off-by: Enrico Mioso <mrkiko.rs@gmail.com>
* ath79: Add support for Sophos AP15CDavid Lutz2024-11-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The Sophos AP15C uses the same hardware as the AP15, but has a reset button. Based on: commit 6f1efb289837 ("ath79: add support for Sophos AP100/AP55 family") author Andrew Powers-Holmes <andrew@omnom.net> Fri, 3 Sep 2021 15:53:57 +0200 (23:53 +1000) committer Hauke Mehrtens <hauke@hauke-m.de> Sat, 16 Apr 2022 16:59:29 +0200 (16:59 +0200) Unique to AP15C: - Reset button - External RJ45 serial console port Flashing instructions: This firmware can be flashed either via a compatible Sophos SG or XG firewall appliance, which does not require disassembling the device, or via the U-Boot console available on the internal UART header. To flash via XG appliance: - Register on Sophos' website for a no-cost Home Use XG firewall license - Download and install the XG software on a compatible PC or virtual machine, complete initial appliance setup, and enable SSH console access - Connect the target AP device to the XG appliance's LAN interface - Approve the AP from the XG Web UI and wait until it shows as Active (this can take 3-5 minutes) - Connect to the XG appliance over SSH and access the Advanced Console (Menu option 5, then menu option 3) - Run `sudo awetool` and select the menu option to connect to an AP via SSH. When prompted to enable SSH on the target AP, select Yes. - Wait 2-3 minutes, then select the AP from the awetool menu again. This will connect you to a root shell on the target AP. - Copy the firmware to /tmp/openwrt.bin on the target AP via SCP/TFTP/etc - Run `mtd -r write /tmp/openwrt.bin astaro_image` - When complete, the access point will reboot to OpenWRT. To flash via U-Boot serial console: - Configure a TFTP server on your PC, and set IP address 192.168.99.8 with netmask 255.255.255.0 - Copy the firmware .bin to the TFTP server and rename to 'uImage_AP15C' - Open the target AP's enclosure and locate the 4-pin 3.3V UART header [4] - Connect the AP ethernet to your PC's ethernet port - Connect a terminal to the UART at 115200 8/N/1 as usual - Power on the AP and press a key to cancel autoboot when prompted - Run the following commands at the U-Boot console: - `tftpboot` - `cp.b $fileaddr 0x9f070000 $filesize` - `boot` - The access point will boot to OpenWRT. Signed-off-by: David Lutz <kpanic@hirnduenger.de>
* uboot-envtools: ath79: add support for ALFA Network WiFi CampPro Nano DuoPiotr Dymacz2024-10-22
| | | | Signed-off-by: Piotr Dymacz <pepe2k@gmail.com>
* uboot-envtools: add a board.d script to load defaults from the environmentJohn Crispin2024-10-02
| | | | | | | This allows loading default wifi credentials, passwords and ssh keys on firstboot. Signed-off-by: John Crispin <john@phrozen.org>
* uboot-envtools: add fw_loadenv toolJohn Crispin2024-10-02
| | | | | | | This tool will load the uboot environment to /var/run/uboot-env/. This allows more efficient use when accessing multiple variables. Signed-off-by: John Crispin <john@phrozen.org>
* uboot-mediatek: support GL.iNet GL-X3000 and GL-XE3000Chris Webb2024-09-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add u-boot support based on the kernel dts introduced in d1016446 and the GL-MT6000 u-boot support in fe10f974. The pcie-mediatek-gen3 kernel driver doesn't like hotplug, so to work in PCIe mode, the 5G modem on this device needs to be switched on by u-boot before starting the kernel. Include an init_modem step in the boot_system action to set the relevant gpios. (The factory bootloader does the same, using Mediatek SDK-specific gpio_power_clr and gpio_pull_up.) Ideally the modem would be started using gpio-hog in the device tree, but this will need to wait until mediatek gpio-hog support is fixed upstream: https://lore.kernel.org/u-boot/6ef2583e85eea60560d7776377d662779e7c44e5.1722419839.git.chris@arachsys.com/ The bootloader can be replaced using the built-in web interface of the factory bootloader. Hold the reset button for five seconds while powering on the device and it will boot into a recovery http server. http://192.168.1.1/uboot.html and http://192.168.1.1/bl2.html can then be used to upload openwrt-mediatek-filogic-glinet_gl-x3000-bl31-uboot.fip and openwrt-mediatek-filogic-glinet_gl-x3000-preloader.bin respectively. Alternatively, from a root shell on the running system, unlock the boot partition with echo 0 >/sys/block/mmcblk0boot0/force_ro then write openwrt-mediatek-filogic-glinet_gl-x3000-bl31-uboot.fip to /dev/mmcblk0p4 and openwrt-mediatek-filogic-glinet_gl-x3000-preloader.bin to /dev/mmcblk0boot0. Signed-off-by: Chris Webb <chris@arachsys.com> Link: https://github.com/openwrt/openwrt/pull/15645 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* mediatek: add Adtran SmartRG SDG-8733ADaniel Golle2024-09-20
| | | | | | | | | | | | | | | | | | | Specification is similar to other devices of the MT Stuart series: * Mediatek MT7988D (3x Cortex-A73, up to 1.8 GHz clock speed) * 8 GiB eMMC * 2 GiB DDR4 RAM * 2500M/1000M/100M LAN port * 10000M/5000M/2500M/1000M/100M/10M WAN port * MT7992 Tri-band (2.4G, 5G, 6G) 2T2R+3T3R+3T3R 802.11be Wi-Fi * Renesas DA14531MOD Bluetooth * 2 buttons (Reset, Mesh/WPS) * uC-controlled RGB LED via I2C * 2x LED for the 2.5G port, 3x LED for the 10G port * 3.3V-level 115200 baud UART console via 4-pin Dupont connector exposed at the bottom of the device * USB-C PD power input Signed-off-by: Daniel Golle <daniel@makrotopia.org>
* ramips: add support for netis N6Mikhail Zhilkin2024-09-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds support for netis N6 WiFi 6 router. Specification ------------- - SoC : MediaTek MT7621AT, MIPS, 880 MHz - RAM : 256 MiB - Flash : NAND 128 MiB (ESMT PSU1GA30DT) - WLAN : MT7905DAN + MT7975DN - 2.4 GHz : b/g/n/ax, 574 Mbps, MIMO 2x2 - 5 GHz : a/n/ac/ax, 1201 Mbps, MIMO 2x2 - Ethernet : 10/100/1000 Mbps x5 (1x WAN, 4x LAN) - USB : 1x 3.0 - UART : 3.3V, 115200n8 - Buttons : 1x Reset 1x WPS - LEDs : 1x Power (green) 1x System (green) 1x WAN (green) 1x WiFi 2.4 GHz (green), controlled by phy 1x WiFi 5 GHz (green), controlled by phy 1x WPS (green) 1x USB (green) 5x ethernet leds (green), controlled by switch - Power : 12 VDC, 1.5 A Installation ------------ 1. Update the router using stock firmware web interface and OpenWrt factory.bin image. Recovery and return to stock ---------------------------- 1. Assign your PC a static IP 192.168.1.2 and connect to the router using the ethernet cable; 2. Power off the router; 3. Press Reset button, power on the router and wait until ethernet led start blinking; 4. Release the button; 5. Open http://192.168.1.1/ (N6 System Recovery Mode) in your browser; 6. Upload OpenWrt factory.bin (or stock firmware *.bin) image and proceed with upgrade. MAC addresses ------------- +---------+-------------------+ | | MAC example | +---------+-------------------+ | LAN | dc:xx:xx:49:xx:04 | | WAN | dc:xx:xx:49:xx:05 | | WLAN 2g | dc:xx:xx:19:xx:06 | | WLAN 5g | dc:xx:xx:79:xx:06 | +---------+-------------------+ The WLAN MAC prototype was found in 'Factory', 0x4 The LAN MAC was found in 'Factory', 0x7ef20 The WAN MAC was found in 'Factory', 0x7ef26 Known issue ----------- 2.4 GHz WLAN doesn't start with mt76 driver. Probable reason: Original Netis N6 EEPROM contains wrong MT_EE_WIFI_CONF value (0xd2). Other routers with the same WLAN hardware (e.g., Routerich AX1800) have MT_EE_WIFI_CONF = 0x92. Workaround (already included in this commit): Extract EEPROM to a file at the first time boot and change MT_EE_WIFI_CONF (offset 0x190) value from 0xd2 to 0x92. See /etc/hotplug.d/firmware/11-mt76-caldata for details. Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com> Link: https://github.com/openwrt/openwrt/pull/16322 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* ramips: mt7621: Add DNA Valokuitu Plus EX400Mauri Sandberg2024-09-16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Specifications: - Device: DNA Valokuitu Plus EX400 - SoC: MT7621A - Flash: 256MB NAND - RAM: 256MB - Ethernet: Built-in, 2 x 1GbE - Wifi: MT7603 2.4 GHz, MT7615 5 GHz (4x internal antennas) - USB: 1x 3.0 - LED: 1x green/red, 1x green - Buttons: Reset MAC addresses: - LAN: u-boot 'ethaddr' (label) - WAN: label + 1 - 2.4 GHz: label + 6 - 5 GHz: label + 7 Serial: There is a black block connector next to the red ethernet connector. It is accessible also through holes in the casing. Pinout (TTL 3.3V) +---+---+ |Tx |Rx | +---+---+ |Vcc|Gnd| +---+---+ Firmware: The vendor firmware is a fork of OpenWrt (Reboot) with a kernel version 4.4.93. The flash is arranged as below and there is a dual boot mechanism alternating between rootfs_0 and rootfs_1. +-------+------+------+-----------+-----------+ | | env1 | env2 | rootfs_0 | rootfs_1 | | +------+------+-----------+-----------+ | | UBI volumes | +-------+-------------------------------------+ |U-Boot | UBI | +-------+-------------------------------------+ |mtd0 | mtd1 | +-------+-------------------------------------+ | NAND | +---------------------------------------------+ In OpenWrt rootfs_0 will be used as a boot partition that will contain the kernel and the dtb. The squashfs rootfs and overlay are standard OpenWrt behaviour. +-------+------+------+-----------+--------+------------+ | | env1 | env2 | rootfs_0 | rootfs | rootfs_data| | +------+------+-----------+--------+------------+ | | UBI volumes | +-------+-----------------------------------------------+ |U-Boot | UBI | +-------+-----------------------------------------------+ |mtd0 | mtd1 | +-------+-----------------------------------------------+ | NAND | +-------------------------------------------------------+ U-boot: With proper serial access booting can be halted to U-boot by pressing any key. TFTP and flash writes are available, but only the first one has been tested. NOTE: Recovery mode can be accessed by holding down the reset button while powering on the device. The led 'Update' will show a solid green light once ready. A web server will be running at 192.168.1.1:80 and it will allow flashing a firmware package. You can cycle between rootfs_0 and rootfs_1 by pressing the reset button once. Root password: With the vendor web UI create a backup of your settings and download the archive to your computer. Within the archive in the file /etc/shadow replace the password hash for root with that of a password you know. Restore the configuration with the vendor web UI and you will have changed the root password. SSH access: You might need to enable the SSH service for LAN interface as by default it's enabled for WAN only. Installing OpenWrt: With the vendor web UI install the OpenWrt factory image. Alternatively, ssh to the device and use sysupgrade -n from cli. Finalize by installing the OpenWrt sysupgrade image to get a fully functioning system. Reverting to the vendor firmware: Boot with OpenWrt initramfs image - Remove volumes rootfs_0, rootfs and rootfs_data and create vendor volumes. ubirmvol /dev/ubi0 -n 2 ubirmvol /dev/ubi0 -n 3 ubirmvol /dev/ubi0 -n 4 ubimkvol /dev/ubi0 -N rootfs_0 -S 990 ubimkvol /dev/ubi0 -N rootfs_1 -S 990 Power off and enter to the U-boot recovery to install the vendor firmware. Known issues: - MACs for wifi are stored in currently unknown place but it seems to persist over power-off. They might be stored on the chip. Signed-off-by: Mauri Sandberg <maukka@ext.kapsi.fi> [rmilecki: try NVMEM for MACs] Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
* uboot-envtools: add support for OpenWrt OneJohn Crispin2024-09-10
| | | | Signed-off-by: John Crispin <john@phrozen.org>
* ipq807x: add support for TP-Link EAP660 HD v1George Witt2024-09-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Specifications: * SoC: Qualcomm IPQ8072A (64-bit Quad-core Arm Cortex-A53 @ 2200MHz) * Memory: 2x ESMT M15T4G16256A-DEBG2G (1 GiB DDR3-1866 13-13-13) * Serial Port: 3v3 TTL 115200n8 * Wi-Fi: QCN5054 (4x4 5 GHz 802.11ax) * Wi-Fi: QCN5024 (4x4 2.4 GHz 802.11b/g/n/ax) * Ethernet: QCA8081 (10/100/1000/2.5GBASE-T) * Flash: Winbond W29N01HZSINF (128 MiB) * LEDs: 1x Blue Status (GPIO 42 Active High) * Buttons: 1x Reset (GPIO 50 Active Low) Installation Instructions (Serial+TFTP): 1. Solder 4 pin header to JP1 and bridge pads of R58 and R62. 2. Connect 3V3 TTL port to TX, RX, and GND, which are positions 1, 2, and 3 respectively. Be sure to crossover TX and RX. 3. Copy RAM firmware image openwrt-qualcommax-ipq807x-tplink_eap660hd-v1-initramfs-uImage.itb to TFTP server root, available at 192.168.10.1. 4. Connect PoE ethernet cable to the RJ45 port and hold Ctrl+B in the serial console (115200 baud) until autoboot is halted. 5. Run the following commands in the U-boot prompt: # tftpboot 0x44000000 openwrt-qualcommax-ipq807x-tplink_eap660hd-v1-initramfs-uImage.itb # bootm You may need to type Ctrl+C and Enter before running these commands to clear invisible characters from the buffer. 6. Run the following command in a terminal to copy the sysupgrade image to be installed (check IP address): $ scp openwrt-qualcommax-ipq807x-tplink_eap660hd-v1-squashfs-sysupgrade.bin root@192.168.1.1:/tmp/ 7. Activate the OpenWrt serial console and run the following commands: # cd /tmp # sysupgrade -n openwrt-qualcommax-ipq807x-tplink_eap660hd-v1-squashfs-sysupgrade.bin 8. The AP will reboot and OpenWrt will be successfully installed. Signed-off-by: George Witt <george.witt@nltsproject.org> Link: https://github.com/openwrt/openwrt/pull/15832 Signed-off-by: Robert Marko <robimarko@gmail.com>
* uboot-envtools: add u-boot system env config for Xiaomi Redmi AX6SIvan Pavlov2024-09-06
| | | | | | | | Adds u-boot config for access to system env variables on this board Signed-off-by: Ivan Pavlov <AuthorReflex@gmail.com> Link: https://github.com/openwrt/openwrt/pull/16312 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* uboot-envtools: ath79: add Belkin F9K1115v2/F9J1108v2 u-boot env supportPaweł Owoc2024-08-30
| | | | | | | | Add support for Belkin F9K1115v2/F9J1108v2 u-boot env Signed-off-by: Paweł Owoc <frut3k7@gmail.com> Link: https://github.com/openwrt/openwrt/pull/16033 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* mediatek: Add support for Linksys EA7500 v3Roland Reinl2024-08-15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Specification: - MT7629 CPU - MT7531 switch - MT7761N and MT7762N wifi - 256 MB RAM - 128 MB NAND flash with dual-boot partitions - 2 buttons: WPS and reset - 1 WAN port (1G) - 4 LAN ports (1G) - 1 USB port Limitations (same as other MT7629/MT7761N/MT7762N devices): - Wifi is not working - Second core is not working (kernel error message "CPU1: failed to come online") Disassembly: - There are two screws under the front rubber feet and two under the label on the bottom (in the corners towards the back, you should be able to feel them). Serial Interface: - UART pin header is already soldered on the board. Pinning from front to back: 1 - VCC 2 - TX 3 - RX 4 - n/a 5 - GND GPIO: - 1 white LED, connected to GPIO 52 - 1 reset button, connected to GPIO 60 - 1 WPS button, connected to GPIO 58 MAC Adresses: - The MAC address printed on the device label is used for LAN and WAN - The MAC address is stored in the devinfo partition in ASCII format (hw_mac_addr=aa:bb:cc:dd:ee) - 2.4 GHz wifi uses MAC of the device label + 1 - 5 GHz wifi uses MAC of the device label + 2 Flashing: - OpenWrt is only runnig in the first partition of dual boot - To ensure to be able to go back to the factory image, flash the last OEM firmware via OEM web interface. This will ensure that the OEM firmware is present on both partitions - Because of dual boot partitions, flashing via OEM interface is not supported - Start a TFTP server and provide the initramfs image. Default settings: - Router IP: 192.168.1.1 - TFTP server IP: 192.168.1.100 - TFTP file name: 7531.bin - Open the device, connect UART and select " 1. System Load Linux to SDRAM via TFTP." during startup - Adapt the settings to your environment, if required - After initramfs is booted, flash the sysupgrade image Return to OEM firmware: - Run the following commands in OpenWrt to switch to the second partition fw_setenv boot_part 2 fw_setenv bootimage 2 - Reboot the device. OEM firmware will start up again Signed-off-by: Roland Reinl <reinlroland+github@gmail.com> Link: https://github.com/openwrt/openwrt/pull/16067 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* uboot-envtools: Add support for Orange Pi R1 Plus & LTSVyacheslav Ivanov2024-08-12
| | | | | | | | | Add support this boards to envtools config This commit integrates the latest changes from new U-Boot, which includes important updates to the DTSI files for the Orange Pi R1 Plus and Orange Pi R1 Plus LTS boards. Signed-off-by: Vyacheslav Ivanov <islavaivanov76@gmail.com> Link: https://github.com/openwrt/openwrt/pull/16090 Signed-off-by: Robert Marko <robimarko@gmail.com>
* uboot-envtools: add env settings for ubnt,unifi-6-lr-v3Joel Low2024-08-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using the same configuration as my earlier Unifi 6-LRv2s: ```bash $ cat /etc/fw_env.config /dev/mtd3 0x0 0x1000 0x1000 1 $ fw_printenv arch=arm baudrate=115200 board=mt7622_evb board_name=mt7622_evb bootcmd=bootubnt bootdelay=3 bootfile=uImage cpu=armv7 device_model=U6-LR ethact=mtk_eth ethaddr=<redacted> ipaddr=<redacted> is_ble_stp=true is_default=true loadaddr=0x5007FF28 macaddr=<redacted> serverip=<redacted> soc=mt7622 stderr=serial stdin=serial stdout=serial vendor=mediatek ``` Signed-off-by: Joel Low <joel@joelsplace.sg> Link: https://github.com/openwrt/openwrt/pull/16127 Signed-off-by: Robert Marko <robimarko@gmail.com>
* qualcommax: ipq60xx: add support for Cambium Networks XE3-4Kristian Skramstad2024-08-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cambium Networks XE3-4 is a tri-radio Wi-Fi 6/6E 4×4/2×2 AP. Hardware: Model: Cambium Networks XE3-4 CPU: IPQ6010/AP-CP01-C3, SoC Version: 1.0 @ 800 MHz Memory: 1 GiB Flash: 512 MiB Macronix MX30UF2G18AC + W25Q128FW Ethernet: 1x 1 GbE (QCA8072) 1x 2.5 GbE (QCA8081) Buttons: 1x Reset Serial: TX, RX, GND Baudrate: 115200 Radios: Qualcomm Atheros IPQ6018 802.11ax - 2x2 - 2GHz Qualcomm Atheros IPQ6018 802.11ax - 2x2 - 5GHz Qualcomm Atheros QCN9074 802.11ax - 4x4 - 5GHz or 6GHz BLE 4.1 Power: 32.0W 802.3bt5 PoE++ 25.5W 802.3at with USB, BT disabled Size: 215mm x 215mm Ports: 1x USB 2.0 Antenna: 6 GHz: 6.29 dBi, Omni 30 dBm 5 GHz: 6.12 dBi, Omni 31 dBm 2.4 GHz: 4.85 dBi, Omni 29 dBm LEDs: Multi-color status LEDs Mounting: Wall, ceiling or T-bar Installation: Serial connection 1. Open the AP to get access to the board. Connect RX, TX and GND. 2. Power on the AP, and short the CS pin of the SPI flash with one of the APs GND pins. 3. Transfer the initramfs image with TFTP (Default server IP is 192.168.0.120) # tftpboot factory.ubi 4. Flash the rootfs partition # flash rootfs 5. Reboot the AP # reset Signed-off-by: Kristian Skramstad <kristian+github@83.no> Link: https://github.com/openwrt/openwrt/pull/15633 Signed-off-by: Robert Marko <robimarko@gmail.com>
* uboot-mediatek: add TP-LINK TL-XTR8488 supportChukun Pan2024-07-25
| | | | | | | | | Same as TP-Link TL-XDR608x, this router comes with locked vendor loader. Add U-Boot build for replacement loader for this device. Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn> Link: https://github.com/openwrt/openwrt/pull/15930 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* ramips: add support for Netgear WAX214v2Borys Zhukov2024-07-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Netgear WAX214v2 is an 802.11ax (Wi-Fi 6) wireless access point. Specifications: * SoC: MediaTek MT7621AT * RAM: 512 MiB * Flash: NAND 128 MiB (ESMT PSU1GA30DT) * Wi-Fi: 2.4/5 GHz 4T4R (MediaTek MT7915E) * Ethernet: 1x 10/100/1000 Mbps LAN * Switch: MediaTek MT7530 (SoC built-in) * LEDs/Keys * Power (green, blue, amber) * LAN (green, amber) * WLAN 2.4GHz (green, blue) * WLAN 5GHz (green, blue) * Reset button * USB: None * UART: Marked J1 on board, 115200 8N1 * Power * 12 VDC, 1.5 A * IEEE 802.3at (PoE+) Load addresses (same as Netgear WAX202): * stock * 0x80010000: FIT image * 0x81001000: kernel image -> entry * OpenWrt * 0x80010000: FIT image * 0x82000000: uncompressed kernel+relocate image * 0x80001000: relocated kernel image -> entry MAC addresses as verified by OEM firmware: vendor OpenWrt address eth0 lan label ra0 phy0 label + 2 rax0 phy1 label + 3 Installation: * Flash the factory image by TFTP to the bootloader. NMRP can be used to TFTP without opening the case. Revert to stock firmware: * Flash the stock firmware to the bootloader using TFTP/NMRP. References to WAX214v2 GPL source: https://www.downloads.netgear.com/files/GPL/WAX214v2-V1.0.1.5-gpl-src.tar.gz * openwrt/target/linux/ramips/dts/mt7621-ax-nand-wax214v2.dts DTS file for this device. Signed-off-by: Borys Zhukov <borys@zhukov.org> Link: https://github.com/openwrt/openwrt/pull/14401 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
* ath79: add support for Huawei AP6010DNMarco von Rosenberg2024-07-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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> Link: https://github.com/openwrt/openwrt/pull/15941 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>