Commit Graph
2212 Commits
Author SHA1 Message Date
Stefan Kalscheuer 2d56282605 uboot-mvebu: update to version 2026.10
Update package to the latest stable version.
All patches automatically refreshed.

Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/24533
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-10-13 01:20:44 +02:00
Stefan Kalscheuer 831fe3a6e5 uboot-mvebu: fix outdated config symbols for RB5009UG
Updated CONFIG_ENV_RELOC_GD_ENV_ADDR in RB5009UG patch which was renamed
back in 2025.10.

Fixes: 8c952afd91 ("uboot-mvebu: update to version 2025.10")

Signed-off-by: Stefan Kalscheuer <stefan@stklcode.de>
Link: https://github.com/openwrt/openwrt/pull/24533
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-10-13 01:20:44 +02:00
Ryan Leung 66ee7b6950 uboot-rockchip: update to v2026.10
Drop upstreamed patch.

Signed-off-by: Ryan Leung <untilscour@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/25653
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-10-12 14:28:49 +02:00
Shiji Yang ac46a4eafd uboot-tools: update to version 2026.10
Update to the latest release. Adjust the `PKG_BUILD_DIR` directory
pattern to align with upstream changes. Remove unused variable
`PKG_SOURCE_SUBDIR`. Out-of-sync server URLs have also been removed[1].

Manually rebased patch:
- 014-tools-fit_check_sign-no-decompress.patch[2]

[1] https://lore.kernel.org/u-boot/20261010142922.GI769217@bill-the-cat/
[2] https://git.u-boot-project.org/u-boot/u-boot/-/commit/79b6ee1a4b3ce9ca2db0429fc2e8dfb4110cd7e8

Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/25784
Signed-off-by: Nick Hainke <vincent@systemli.org>
2026-10-11 09:41:31 +02:00
Fil Dunsky d66966e480 uboot-mediatek: wl-wnt100x3: reduce ram speed to 1866 MT/s
The vendor BL2 of the Wavlink WL-WNT100X3 initializes DDR3 at
1866 MT/s:

  NOTICE:  BL2: v2.7(release):292bca1-dirty
  NOTICE:  DDR3 1866MHZ
  NOTICE:  EMI: Using DDR3 settings

while the plain spim-nand-ddr3 BL2 used by the ubootmod variant runs
DDR3 at the default 2133 MT/s, which is above what the vendor
qualified on this board.

Switch the ubootmod BL2 to the existing DDR3 1866 MT/s build, in line
with the vendor firmware.

Tested on WL-WNT100X3: BL2 reports the ddr3-1866 build, the memory
test passes, U-Boot and OpenWrt boot from UBI.

Fixes: d2fabb974c ("mediatek: add support for Wavlink WL-WNT100X3 ubootmod")
Signed-off-by: Fil Dunsky <filipp.dunsky@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/25763
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-10-11 09:06:01 +02:00
Paul Spooren 936617ab59 tfa-layerscape: pad the byte swapped PBL with zeros
The firmware images of Layerscape boards booting from QSPI, e.g. the
LS1046A-FRWY, differ between builds in 4 bytes at the end of the PBL:

  -00009e80: 019f 1e98 0000 0000 0000 0000 0000 0000
  +00009e80: e10f e4a8 0000 0000 0000 0000 0000 0000

byte_swap pads the PBL to a multiple of 8 bytes from a 4 byte variable,
so fwrite() reads up to 4 bytes of the stack past it, and an aligned
PBL always gets 8 bytes appended, 4 of them random.

Add a patch that pads with an 8 byte buffer of zeros. The output keeps
its length and layout: for an aligned input only the 4 former random
bytes become zeros, an unaligned input gives the same output as before.

Link: https://github.com/openwrt/openwrt/pull/25720
Signed-off-by: Paul Spooren <mail@aparcar.org>
2026-10-10 13:04:55 +02:00
Ryan Leung 79bc56cb74 u-boot: add project's new download source
Das U-Boot project is transitioning their infrastructure [1],[2] and now publishes releases on their
GitLab [3]. Add it as the first download source and keep the existing sources which are currently
still available for historical releases.

Also update the U-Boot project web page [1] for the package URL and bump PKG_RELEASE for uboot-tools

[1]: https://lore.kernel.org/u-boot/20260511174116.GJ1858239@bill-the-cat/
[2]: https://lore.kernel.org/u-boot/20260727224922.GB1188@bill-the-cat/
[3]: https://git.u-boot-project.org/u-boot/u-boot/-/releases/

Signed-off-by: Ryan Leung <untilscour@protonmail.com>
Link: https://github.com/openwrt/openwrt/pull/25343
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-10-07 14:29:03 +02:00
Daniel Golle 6b84ce8a51 mediatek: filogic: add Adtran SDG-9000
The Adtran SDG-9000 is a 10G PoE router in a white steel case with
optional 19" rackmount brackets.

Specifications:
 * MediaTek MT7988A (4x Cortex-A73)
 * 32 GB eMMC
 * 4 GiB DDR4 RAM
 * 1x 10000M/5000M/2500M/1000M/100M combo WAN: RJ45 (Marvell
   CUX3410 PHY) or SFP+ cage, selected at boot
 * 1x 10000M/5000M/2500M/1000M/100M LAN port (Marvell CUX3410 PHY)
 * 8x 2500M/1000M/100M/10M LAN ports with PoE+ (MaxLinear MxL86282
   switch with built-in PHYs), 200 W total PoE budget, two Skyworks
   Si3474 PSE controllers
 * 1x 1000M/100M/10M management port (MT7988 built-in PHY)
 * 240x240 TFT touchscreen (ST7789 SPI LCD with CST816S touch)
 * 1 button (Reset)
 * uC-controlled RGB LED via I2C
 * RGBW LED for each PoE LAN port, 2x LED for the management port,
   3x LED for each 10G port, 2x LED for the SFP+ cage
 * 2x PWM fan (mainboard, power supply)
 * USB 3.0 type A port
 * USB-C console port, 115200 baud, Holtek HT42B534 USB-UART bridge
 * 100-240V AC 50-60Hz power input, IEC 60320 C14 inlet

The WAN port is selected by a GPIO-controlled mux that has no runtime
control, so it is chosen by one of two device tree overlays, wan-phy
and wan-sfp, carried as configurations of the FIT image. The mux is
selected by setting boot_default_config in the U-Boot environment:

 config-1                                       no WAN port
 config-1#mt7988a-smartrg-sdg-9000-wan-phy      RJ45 (CUX3410)
 config-1#mt7988a-smartrg-sdg-9000-wan-sfp      SFP+ cage

MAC addresses (base MFG_MAC from the mfginfo partition; the nvmem
cell index in the DTS is added to the base):

 wan        xx:xx:xx:xx:xx:x0  MFG_MAC
 aux        xx:xx:xx:xx:xx:x0  MFG_MAC
 lan1-lan9  xx:xx:xx:xx:xx:x1  MFG_MAC + 0x1
 br-lan     xx:xx:xx:xx:xx:x1  MFG_MAC + 0x1

The label shows MFG_MAC. aux is the only port present when netifd
starts, as lan1-lan9 appear once the mxl862xx driver has loaded, so
br-lan would take the MAC of aux. board.d sets the MAC of br-lan to
that of lan1-lan9.

Installation:

1. Prepare a TFTP server at 192.168.1.254 and serve the OpenWrt
   initramfs image, renamed to "openwrt.500".
2. Connect to the Management/Auxilary port.
3. Connect to the USB-C console port (USB CDC-ACM, 115200 8n1)
4. Power on the device and type "st" to enter the U-Boot command
   line. The window to do that might be very short, so type it as
   soon as the "U-Boot ..." string appears.
5. Run "setenv boot_mode openwrt; saveenv" to boot from OpenWrt
   partition by default.
6. Run "bootmenu" and select option 6 (TFTP openwrt image and
   boot); "run boot5" is a shortcut for the same. This downloads
   openwrt.500 from the TFTP server and boots it.
7. After OpenWrt finishes booting, download the OpenWrt sysupgrade
   image and write it to eMMC using "sysupgrade".
8. After sysupgrade finishes writing, the device reboots into
   OpenWrt. When the System LED is solid white the device is ready
   for configuration.
9. To use the WAN port, set boot_default_config to one of the values
   above, e.g. from OpenWrt with
   "fw_setenv boot_default_config config-1#mt7988a-smartrg-sdg-9000-wan-sfp".

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-10-07 00:03:51 +01:00
Rustam Adilov 7670f36e38 realtek: add a new device BT-PON BT-G711AX
The BT-PON BT-G711AX is a fiber modem (ONT) based on RTL9607C.

Specifications:

- SoC : Realtek RTL9607C
- RAM : DDR3 256 MiB
- Flash : SPI-NAND 128 MiB (Windbond)
- Ethernet : 4 port GbE Switch
- Fiber : 1x XPON SC/UPC (Semtech GN25L95)
- Phone : 1x RJ11 (Si32192)
- WIFI : RTL8192XBR + RTL8832BR
- LED : 12x (Power, PON, LOS, LAN1-4, TEL, USB, WPS, Wifi 2.4, Wifi 5)
- UART : 4 pin holes on PCB, 115200 8N1
- Button : 3x (WPS, WLAN, Reset)
- USB : 1x USB 2.0
- Power : 12V DC, 1.5A

This device, and many other devices of this platform, use a
dual-image layout inside a single ubi_device partition.

Intructions to boot initramfs can be found in the previous
commit message.

The networking on this device is not supported yet due to lack of DSA
driver support and thus no MAC addresses interfaces to assign in its
device tree file. But the mdio and cpu gmac are supported so the 4
PHYs and 3 GMAC are described along with 4 switch ports in preperation
for upcoming DSA.

Signed-off-by: Rustam Adilov <adilov@tutamail.com>
Link: https://github.com/openwrt/openwrt/pull/20064
Signed-off-by: John Crispin <john@phrozen.org>
2026-10-06 18:46:40 +02:00
Eduard Hart a20047f6ee qualcommax: add support for TP-Link RE700X
TP-Link RE700X is a dual-band Wi-Fi 6 (AX3000) range extender based on
Qualcomm IPQ5018 (2.4 GHz) with a QCN6122 (5 GHz) companion radio.

Specifications:
- SoC: Qualcomm IPQ5018 (dual-core ARM Cortex-A53)
- RAM: 256 MiB
- Flash: 128 MiB SPI-NAND (ESMT F50D1G41LB)
- Wi-Fi: IPQ5018 2.4 GHz + QCN6122 5 GHz, both 802.11ax
- Ethernet: 1x Gigabit - IPQ5018 MAC1 (DWMAC) via SGMII/uniphy0 to a
  Realtek RTL8211F (MDIO1 addr 6). The SoC internal GE PHY (MAC0/gmac0)
  is not wired to any external port and stays disabled.
- LEDs: 5, Buttons: reset + WPS
- Power: 100-240 V AC, 50/60 Hz, 0.4 A (internal PSU, wall-plug)
- UART: 3.3 V serial console, 115200 8N1; on-board 4-pad header,
  pinout from top: TX, RX, GND, VCC

MAC addresses (factory_data UBI volume, file default-mac, mounted
read-only in preinit like on the EAP650):
- LAN (label MAC): default-mac
- 2.4 GHz: default-mac + 1
- 5 GHz: default-mac + 2

Calibration data is extracted from the 0:art partition (IPQ5018 at
0x1000, QCN6122 at 0x26800).

Installation:
- From OpenWrt (or after a RAM-boot of the initramfs via U-Boot/TFTP):
  sysupgrade.
- From the stock firmware: openwrt-...-squashfs-factory-webflash.bin via
  the TP-Link web UI (System -> Firmware Upgrade).
  scripts/tplink-re700x-factory.py wraps the rootfs UBI into the stock
  "nvrammanager" upload container (the same "tplink2022"/safeloader
  family as scripts/tplink-mkimage-2022.py); the stock flasher writes it
  into the inactive dual-boot slot. This path has not been tested end to
  end (no unit on stock firmware was left), so keep UART at hand for a
  first install.

The stock U-Boot passes a slot-correct ubi.mtd= (rootfs / rootfs_1 per the
dual-boot index) but with an unmountable root=mtd:ubi_rootfs. The DTS /chosen
inherits ubi.mtd= and appends root=/dev/ubiblock0_1, so OpenWrt boots from
whichever slot the flasher wrote. Like on the EAP650, sysupgrade installs
into the inactive slot and then points tp_boot_idx at it, keeping the
running slot as a fallback; the U-Boot environment is on 0:appsblenv.

The QCN6122/IPQ5018 board-2.bin (BDF) data is supplied via
ipq-wifi-tplink_re700x (openwrt/firmware_qca-wireless).

Wi-Fi is disabled in the DTS for now: with the default ath11k DP ring
sizes both radios exhaust the 256 MiB of RAM. It will be enabled in a
follow-up together with the ath11k patch that selects smaller rings on
low-memory boards, once that has been accepted upstream.

Signed-off-by: Eduard Hart <eduard.hart@etik.com>
Link: https://github.com/openwrt/openwrt/pull/23982
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-10-03 20:17:43 +02:00
Robert Marko dfb281ad5e apboot-aruba-ipq806x: make timestamps reproducible
APBoot embeds the current time in both its version banner and generated
U-Boot timestamp header. This makes the AP-32x bootloader artifact
differ between otherwise identical builds.

Use SOURCE_DATE_EPOCH for these timestamps when it is set, while
retaining the wall-clock fallback for other builds.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-10-03 12:15:18 +02:00
Robert Marko a613eedde0 uboot-fritz4040: make build timestamp reproducible
The FRITZ!Box 4040 U-Boot build embeds the current date and time.
This changes the U-Boot payload and causes the EVA factory image to
differ between otherwise identical builds.

Use SOURCE_DATE_EPOCH to generate the timestamp when it is set, while
retaining the current-time fallback for non-reproducible builds.

Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-10-02 14:12:05 +02:00
Johan Alvarado 938f67a519 qualcommax: add support for Mercusys MR80X v2
Hardware:
  SoC:    Qualcomm IPQ5018 (2x Cortex-A53)
  RAM:    256 MiB DDR3
  Flash:  128 MiB SPI-NAND (ESMT)
  Switch: Realtek RTL8367S, 4x GbE (3x LAN + 1x WAN), SGMII CPU port
  WiFi:   IPQ5018 2.4 GHz, QCN6122 5 GHz, both 802.11ax
  LEDs:   system (green/amber), WAN, LAN1-3
  Button: reset
  UART:   115200 8N1, 3.3V, on-board header

Wi-Fi is left disabled: 256 MiB is too few for ath11k, same as on the
ELECOM WRC-X3000GS2.

Notes:
- The label reads "Ver 2.20", but the vendor firmware only ever calls the
  board V2: the GPL tree is GPL_MR80Xv2, PRODUCT_NAME is MR80Xv2, the
  running system reports "MR80X V2" and the fwup support list carries
  product_ver 2.0.0. The trailing digits are a production sub-revision,
  so the port is named v2.
- MAC1 runs sgmii through the UNIPHY PCS to RTL8367S port 6. The link is
  wired for HSGMII and 2500base-x does come up, but only when gmac1 and
  the CPU port carry the same phy-mode: the UNIPHY PCS belongs to the
  conduit (pcs-handle = <&uniphy0> in ipq5018-ess.dtsi), so setting the
  CPU port alone leaves the switch running HSGMII into a SerDes still
  clocked for SGMII.
  With both ends at 2500base-x the trunk still dies on some boots: over
  12 reboots, 2 came up with the CPU port passing no traffic at all -
  eth0 transmitting while s00_p06_ifInOctets stayed at 0, no FCS errors,
  the link reporting 2.5 Gbps. That matches the bring-up ordering race
  described in openwrt/openwrt#25153, where the switch end of the trunk
  is configured before the IPQ5018 UNIPHY resets and recalibrates its
  PLL. sgmii has not reproduced it, so the port ships at sgmii until
  that fix lands.
- MAC addresses come from default-mac in the vendor tp_data UBI volume,
  6 raw bytes at offset 0, mounted read-only during preinit:
    label   default-mac
    LAN     default-mac
    WAN     default-mac + 1
    2.4 GHz default-mac - 1
    5 GHz   default-mac - 2
- Sysupgrade A/B ping-pongs rootfs/rootfs_1 via tp_boot_idx, switched
  only after the new slot is fully written. primaryboot stays 0, the
  stock loader and the button recovery rely on it.
- factory.bin is wrapped in the Mercusys fwup container the stock web UI
  accepts (scripts/mercusys-fwup.py). The generic tplink-image-2022
  container is rejected: the loader picks its verification algorithm from
  the fw-type string, which that container does not write.
- The board needs the backported spi-qpic-snand ECC context fix,
  otherwise about half of the boots end in "Waiting for root device
  /dev/ubiblock0_1".

Installation:
  In the stock web UI go to Advanced -> System -> Firmware Update ->
  Local Update, browse for
  openwrt-qualcommax-ipq50xx-mercusys_mr80x-v2-squashfs-factory.bin
  and press UPDATE.

  Tested on stock firmware MR80X(EU)_V2.20_1.1.7 Build 20250415
  (Multi-language).

  The U-Boot web recovery does not accept this image: it verifies an
  RSA1024 signature and has no keyless path. Use the stock web UI.

Signed-off-by: Johan Alvarado <contact@c127.dev>
Link: https://github.com/openwrt/openwrt/pull/24919
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-10-02 11:09:30 +02:00
Christian Marangi 14ce351772 arm-trusted-firmware-airoha: update to Git HEAD (2026-08-20)
b0911074d3cf plat: update closed-source object for AN7581 and AN7583
705478c3d84f plat: add DRAM calibration closed-source object for EN7523

Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2026-09-30 09:46:28 +02:00
Frank WunderlichandWilfried Teiken 7a29a6bf6b mediatek: add support for BananaPi BPi-R4 Pro 4E
The BPi-R4 Pro 4E is a Wi-Fi 7 router board based on the MT7988A SoC.

Difference to 8X is that board has only 4GB RAM and does not contain
the Aeonsemi 10G phys.
Wan port uses MT7988 internal 2.5GBit/s phy with no ethmux chip between
so it need overlays to switch between this wan-phy and SFP-Slot.

Specification
-------------

- SoC:          Mediatek MT7988A (4x Cortex-A73 @1.8GHz)
- RAM:          4GB DDR4
- Flash:        256MB SPI-NAND, 8GB eMMC, microSD Slot
- Switch:       MT7988A built-in switch, MxL86252C
- Ports:        9 ports, 8 usable simultaneously
        * 2x 1G RJ45 LAN
        * 4x 2.5G RJ45 LAN
        * 1x SFP (LAN)
        * 1x 2.5G RJ45/SFP Combo (WAN)
- Buttons:      Reset, WPS
- LEDs:         Power
- USB:          On-board VIA VL822 USB3.2/USB2.0 hub
        * 1x USB-A 2.0 connector
        * 1x USB-A 3.2 connector
        * 3x NGFF-KEYB
- PCIe:
        * 2x mini-PCIe slots with PCIe 3.0 2-lane interface
        * 2x M.2 M-Key slots with PCIe 3.0 1-lane interface (switchable
          PCIe signal with M.2 B-Key)
- Debug:        USB Type-C console port
- Power:        USB Type-C PD 20V or DC barrel connector

Note: This device comes without a MAC address programmed from the
factory. The randomly generated MAC is stored in the U-Boot env on first
boot and used persistently afterwards.

Installation
------------

Uncompress *sdcard.img.gz and write to microSD card, eg. using 'dd'. Use
bootloader menu on the serial console to install SPI-NAND once installed
to SPI-NAND you can used the bootloader menu to install to eMMC. See
instructions for BananaPi R4 for details.

Description is taken from 8X patch and changed to 4E variant.

R4Pro needed a patch for adding aliases to ensure right probe order so add
this here too.

Co-authored-by: Wilfried Teiken <wteiken@teiken.org>
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
2026-09-28 19:11:17 +01:00
Frank WunderlichandAndrew LaMarche 91f65610c9 uboot-mediatek: add support for BananaPi BPi-R4 Pro 4E
The BPi R4 Pro 4E can boot from microSD, SPI-NAND and eMMC. Add support
for each storage option.

NVME (via pcie3) works in uboot, but bootloader only supports spi and mmc.

Patches are taken from R4Pro 8X and modified for 4E variant.

Co-authored-by: Andrew LaMarche <andrewjlamarche@gmail.com>
Signed-off-by: Frank Wunderlich <frank-w@public-files.de>
2026-09-28 19:11:17 +01:00
Mikhail Zhilkin 756704524f uboot-tools: add ASUS RT-AX59U to mediatek_filogic
This commit adds ASUS RT-AX59U support to mediatek_filogic.

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/25278
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-09-28 14:54:09 +02:00
Mikhail Zhilkin 4c932beea5 uboot-mediatek: add ASUS RT-AX59U (UBI) support
This commit adds OpenWrt U-Boot for ASUS RT-AX59U (UBI layout).

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/25278
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-09-28 14:54:09 +02:00
Mikhail Zhilkin 2acfe884cc arm-trusted-firmware-mediatek: add mt7986 UBI 1MB offset target
Add a new Trusted Firmware-A (TF-A) build profile for the MediaTek
MT7986 SoC named 'mt7986-spim-nand-ubi-1m-ddr4'.

This profile reduces the UBI starting address (UBI_START_ADDR) from
0x200000 (2MB) down to 0x100000 (1MB). This layout adjustment matches
devices like the ASUS RT-AX59U factory partition offsets and frees up
flash space for the main operating system layout.

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/25278
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-09-28 14:54:09 +02:00
Mikhail Zhilkin 446eef3ac2 arm-trusted-firmware-mediatek: refactor UBI start address
Refactor how OVERRIDE_UBI_START_ADDR is passed to the TF-A build system.
Instead of using hardcoded string matches against the $(PLAT) variable
inside global make flags, move the UBI start address directly into
target-specific definition blocks using a new UBI_START_ADDR variable.

This aligns the UBI partition boundary setup with how FIP_OFFSET and
FIP_SIZE are cleanly tracked across different MediaTek SoCs.

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/25278
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-09-28 14:54:09 +02:00
Gilberto Conde 9e15f1f493 qualcommax: ipq50xx: add support for GL.iNet GL-X2000
GL.iNet GL-X2000 (Spitz Plus) is a dual-SIM 4G LTE Wi-Fi 6 router.

Specifications:
  SoC:      Qualcomm IPQ5018, dual-core Cortex-A53 @ 1.0 GHz
  RAM:      512 MiB DDR3
  Flash:    128 MiB SPI NAND (Winbond W25N01GWZEIG)
  WLAN:     IPQ5018 2x2 2.4 GHz, QCN6122 2x2 5 GHz (802.11ax)
  Ethernet: 1x GbE WAN (IPQ5018 internal GE PHY)
            1x GbE LAN (Atheros AR8031, SGMII)
  WWAN:     Quectel EG120K-EA, LTE Cat.12, USB 3.0 SuperSpeed
  USB:      1x USB 2.0 host behind an internal hub
  Buttons:  reset
  LEDs:     power, internet, 2.4G, 5G, 4x signal strength
  Serial:   3v3 TTL, 115200 8N1; 4-pin header labelled GND/RX/TX/3V3 on
            the mainboard, under the Quectel module in the top right
            corner. The case opens after pulling the four rubber feet
  Power:    DC 9-35 V, shipped with a 12 V 2.5 A supply
  Misc:     PWM fan, dual SIM slots (muxed inside the modem)

The base MAC address is stored at offset 0x6 of the 0:art partition; the
first six bytes are erased, which is why U-Boot reports the ART address as
invalid. WAN uses the base address (this is the one on the label), LAN
base+1, the 2.4 GHz radio base+2 and the 5 GHz radio base+3. The ethernet
addresses come from nvmem cells. The board deliberately has no ethernetN
aliases: GL.iNet's U-Boot uses them to write its own mac-address
properties into both GMAC nodes (a placeholder for WAN, the base address
for LAN), which of_get_mac_address() would prefer over the nvmem cells.

The modem enumerates at SuperSpeed and therefore requires the IPQ5018 USB3
UNIPHY, so both usbphy0 and usbphy1 are enabled. uqmi cannot communicate
with this modem, so modemmanager has to be installed separately to use it.

The QCN6122 is wired to the second radio instance, so wifi@b00b040 with
userpd3 is enabled rather than wifi@b00a040: the stock device tree enables
wifi2@/userpd3 and leaves wifi1@/userpd2 disabled. That instance places
its BDF and M3 dump above the default q6 region, so the reserved region
is grown accordingly.

Board data for the two radios is submitted separately to
firmware_qca-wireless. It is taken from the stock firmware's wifi_fw
partition, which is a squashfs image: bdwlan.b24 for the IPQ5018 2.4 GHz
radio and qcn6122/bdwlan.b60 for the QCN6122 5 GHz radio, matching the
qcom,board_id values of 0x24 and 0x60 that the stock device tree assigns
to the respective radios. The two radios require distinct board data;
sharing a single BDF leaves the front-end misconfigured and the affected
radio unable to transmit or receive at usable power.

The device tree started from the initial port by Hostle, was largely
rewritten by georgem83 and further reworked by Andreas Boeckler, published
in the OpenWrt forum thread linked below. It is carried here with fixes for
the WLAN board data, the QCN6122 radio instance, the U-Boot environment
partition and the fan cooling map.

Link: https://forum.openwrt.org/t/plain-openwrt-on-gl-x2000/231554

Installation:
  Interrupt the bootloader over serial (115200 8N1) by typing "gl", then
  TFTP the initramfs image and boot it:

    tftpboot 0x44000000 openwrt-qualcommax-ipq50xx-glinet_gl-x2000-initramfs-uImage.itb
    bootm 0x44000000

  Then flash the factory image with sysupgrade.

Signed-off-by: Gilberto Conde <gilbertorconde@gmail.com>
2026-09-28 14:21:38 +02:00
Daniel Golle ff0c88e6c5 arm-trusted-firmware-mediatek: update to latest upstream HEAD
Two real commits since the previous pin:

mediatek: mt7622: move PMIC init before PLL/DRAM stage
  Fixes a hang in DRAM calibration on reboot when cpufreq had lowered
  Vcore before the reset, by moving PMIC init earlier so it no longer
  depends on the Vcore level left over from the previous boot.

mediatek: mt7981, mt7986, mt7987, mt7988: add SMCCC TRNG support
  Implements the standard SMCCC TRNG interface (upstream U-Boot
  doesn't support the MTK-specific one, our uboot-mediatek does).
  Tested on MT7981 by upstream; not yet verified on the other three
  SoCs by upstream.

Mirror hash verified via an independent fresh clone of the pinned
commit.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-28 13:03:36 +01:00
Tomasz Maciej Nowak 4186150dbb uboot-tegra: bump version to 2026.04
Maintenence bump, no new features.

Signed-off-by: Tomasz Maciej Nowak <tmn505@gmail.com>
Link: https://patchwork.ozlabs.org/project/openwrt/patch/20260507135738.5684-6-tmn505@terefe.re/
Signed-off-by: Jonas Jelonek <jonas@jonasjelonek.de>
2026-09-27 21:51:09 +02:00
Satoshi Ikeuchi 6fb5b53af2 uboot-envtools: add Linksys LN6001 support
Map the existing 256 KiB u_env eMMC partition for the Linksys LN6001.
This lets the device upgrade path read and update the existing boot-slot
environment through fw_printenv and fw_setenv.

Increment the package release for the functional board-map addition.

Signed-off-by: Satoshi Ikeuchi <satosan.ikm@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/24736
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-09-27 11:28:20 +02:00
Aleksei Sviridkin 99e87a7931 uboot-mediatek: add Keenetic KN-1012 chainload build
The stock bootloader stays in place, so U-Boot is packaged as the
payload it accepts as a kernel and chainloaded from it.
It brings up NAND through NMBM, reads the kernel FIT from flash and
applies the device tree overlay matching the media present in the combo
port, so a single image serves both the copper PHY and the SFP cage. The
media is sensed on pio 23, the cage's mod-def0, which a seated module
pulls low. The environment tests it with "if gpio input 23", and that
reads as true for a low pin: gpio input returns the pin level as its
exit status.

The SPI-NAND is driven four-bit. The stock loader, shipped in the vendor
SDK as target/linux/mt7981/KN-1012/boot.bin, embeds an FDT whose
spi_nand@0 reads

	spi-max-frequency = <0x3197500>;
	spi-rx-bus-width = <0x04>;
	spi-tx-bus-width = <0x04>;

on the same spi@1100a000 declaring support_quad, tick_dly = <2> and
sample_sel = <0>; MediaTek's own mt7981-rfb device tree carries the
identical pair at the identical 52 MHz. Without the two properties
spi-uclass defaults the slave to one lane and the SPI-NAND core silently
picks the single-bit read variant. The tx width also selects the
four-lane program op, which this build reaches only when NMBM has to
create its management table; the stock loader programs this part
four-bit already.

The same build serves the Keenetic and the Netcraze variant of the
board. The board support commits add a device profile for each brand,
and the two profiles produce differently named images, so the TFTP
recovery loop asks for each name in turn: the board has no populated
console to correct the name from. A single brand-neutral name was
rejected because it would match no built artifact, which breaks the
default tftpboot for both variants rather than for one. The U-Boot
device tree names the board Keenetic KN-1012 for both: the hardware is
the same and the build does not read the brand from flash.

The Kconfig entries the build relies on come as separate patches, and
both stay local: the NMBM symbols belong to the NMBM code this tree
carries, and a MediaTek bool that selects the kernel image header, with
the generic text offset base redeclared under it so the defconfig can
set it, was declined upstream. U-Boot wants a board there instead, and
this board cannot load its OS from upstream U-Boot without NMBM.

The kernel image header carries a text_offset of 0x80000: the stock
kernel FIT loads at 0x48080000, 0x80000 above the 2 MiB base the loader
works from, and the chainloader mirrors that placement. A zero offset,
which TEXT_BASE alone would give, has not been tried on this loader.

Assisted-by: LLM
Signed-off-by: Aleksei Sviridkin <f@lex.la>
Link: https://github.com/openwrt/openwrt/pull/24820
Signed-off-by: Jonas Jelonek <jonas@jonasjelonek.de>
2026-09-27 11:12:35 +02:00
Aleksei Sviridkin 72f1965140 uboot-mediatek: add FudanMicro FM25G02B SPI-NAND support
The chip ships on Keenetic KN-1012 units and is not in the fmsh table,
so U-Boot finds no flash at all. Add the ID and geometry, along with the
ECC status decode its 3-bit status field needs and a read-cache list
whose quad-I/O read takes a single dummy byte.

The driver change is ported from Linux commits d5a5c9eb2ee9 ("mtd:
spinand: fmsh: add support for FM25G{01,02}B") and 8211f2d74b35 ("mtd:
spinand: fmsh: fix FM25G01B/FM25G02B Quad I/O read dummy cycles").
Only the FM25G02B entry is carried, the part in hand; the identifiers
keep upstream's FM25G01B names so that the file stays textually in step
with Linux.

Assisted-by: LLM
Signed-off-by: Aleksei Sviridkin <f@lex.la>
Link: https://github.com/openwrt/openwrt/pull/24820
Signed-off-by: Jonas Jelonek <jonas@jonasjelonek.de>
2026-09-27 11:12:35 +02:00
Mark Jia d592680cc5 qualcommax: ipq50xx: add support for CMCC RAX3000Q/QY
Add support for the CMCC RAX3000Q/QY platform based on Qualcomm IPQ5000.
Both hardware variants are identical and share the same device tree.

Hardware Specifications:
- SoC: Qualcomm IPQ5000
- RAM: 256 MiB, integrated in SoC
- Flash: GigaDevice GD5F1GQ5REYIG (Dosilicon variant is not supported)
- 2.4 GHz Wi-Fi: SoC integrated, with 2 FEMs
- 5 GHz Wi-Fi: QCN6102, with 2 FEMs
- Switch: QCA8337, 1 WAN + 3 LAN
- LEDs: 3 RGB LEDs
- Keys: reset and mesh pairing
- UART: 3-pin, 115200n8

The vendor flash layout is documented and the ART partition contains
calibration data, which must be preserved carefully.

Due to the limited 256 MiB RAM, ath11k is disabled in the DTS to avoid
OOM issues on this device.

The MAC address location in flash could not be identified reliably.
As a temporary workaround, the MAC addresses (WAN LAN 2.4G 5G WiFi) are derived from the ART
partition start, with vendor/default values being invalid and falling
back to random generation if left unchanged (FF).

Flash Guide
Requirements

- UART access (3-pin, 115200n8)
- Ethernet cable
- TFTP server running on your computer
- OpenWrt `.ubi` firmware image

Step 0: Backup all partitions (strongly recommended)
Step 1: Connect UART and interrupt U-Boot
Step 2: Configure PC network
Step 3: Start TFTP server
Step 4: Load firmware via U-Boot
    tftpboot 192.168.10.19:<your_firmware>.ubi

Step 5: Flash firmware
    flash rootfs

Step 6: Reboot device
    reset

Signed-off-by: Mark Jia <mark304188@hotmail.com>
2026-09-27 10:58:11 +02:00
Samuele Longhi c4543e374d qualcommax: ipq50xx: add support for TP-Link EAP650-Outdoor-v1
TP-Link EAP650-Outdoor is a 802.11ax AP claiming AX3000 support. It is
wall or pole mountable, and rated for outdoor use. It can only be
powered via PoE.

Specifications:
---------------
* CPU: Qualcomm IPQ5018 Dual core Cortex-A53
* RAM: 512 MB
* Storage: 128MB NAND GigaDevice F50D1G41LB-83YIG2M
* Ethernet: 1x Gigabit RJ45 port with PoE input
* 2.4GHz: IPQ5018 802.11b/g/n/ax (2x 4dBi)
* 5GHz: QCN6024 802.11n/ac/ax (2x 5dBi)
* LEDs: 1x Status LED (Green/Yellow)
* Buttons: 1x Reset
* UART: 4-pin unpopulated header
  TX RX GND VCC - JP2 (3.3V, 115200/8)

MAC addresses:

LAN     : B0:19:21:xx:xx:02
2.4GHz  : B0:19:21:xx:xx:02
5GHz    : B0:19:21:xx:xx:03

The procedures to 'backup your stock firmware' and 'stock firmware recovery'
described in the commit "qualcommax: ipq50xx: Add support for Yuncore AX850"
are equivalent for this device.
https://git.openwrt.org/openwrt/openwrt/commit/?id=5d2994a73e20ba840d3096e1ad52add6937fe86d

Installation:
=============

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_eap650-outdoor-v1-initramfs-uImage.itb
    bootm

This should boot OpenWRT. Once booted, flash the sysupgrade.bin image
using either luci or the commandline.

Signed-off-by: Samuele Longhi <agave@dracaena.it>
Link: https://github.com/openwrt/openwrt/pull/23056
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-09-27 10:44:08 +02:00
Chukun Pan dff4a9d049 uboot-mediatek: add TP-Link TL-7DR7230/7250
Add custom U-Boot build for the following device:
- TP-Link TL-7DR7230 v1
- TP-Link TL-7DR7230 v2
- TP-Link TL-7DR7250 v1

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/24200
Signed-off-by: Jonas Jelonek <jonas@jonasjelonek.de>
2026-09-27 10:32:12 +02:00
Chukun Pan 619fc0813d uboot-mediatek: add Dosilicon spi-nand flash
Port the Dosilicon SPI-NAND flash driver from the kernel to U-Boot.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/24200
Signed-off-by: Jonas Jelonek <jonas@jonasjelonek.de>
2026-09-27 10:32:12 +02:00
Chukun Pan 10030f85ff arm-trusted-firmware-mediatek: add DS35Q1GB flash
The DS35Q1GB is similar to the MX35LF1GE4AB, has issues accessing
the parameter page. The DS35Q1GA does not have this issue. So add
SPI-NAND ID for DS35Q1GB as a workaround.

Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/24200
Signed-off-by: Jonas Jelonek <jonas@jonasjelonek.de>
2026-09-27 10:32:12 +02:00
Mikhail Zhilkin 9fba5528d6 uboot-mediatek: increase SPI-NAND frequency for Mercusys MR90X v1
Increase the spi-max-frequency from 20MHz to 52MHz for the SPI-NAND flash
on the Mercusys MR90X v1. The underlying GigaDevice GD5F1GQ5UEYIGY
SPI-NAND flash chip natively supports clock speeds up to 133MHz and the
MediaTek MT7986B SoC handles 52MHz safely.

Signed-off-by: Mikhail Zhilkin <csharper2005@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/25246
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
2026-09-26 22:14:46 +02:00
Paul Spooren e2aa1d7596 apex: take the build date from SOURCE_DATE_EPOCH
The APEX boot loader embeds the time of the build in its version
banner, which makes the Iomega NAS100D factory image differ between
builds:

  -compiled for OpenWrt NAS100D/BE on 2026.Sep.23-04:17:21
  +compiled for OpenWrt NAS100D/BE on 2026.Sep.23-11:06:03

APEX sets BUILDDATE with $(shell date) in its top level Makefile. Pass
BUILDDATE on the command line, formatted from SOURCE_DATE_EPOCH in UTC
and the C locale, which overrides it for all sub-makes.

Link: https://github.com/openwrt/openwrt/pull/25354
Signed-off-by: Paul Spooren <mail@aparcar.org>
2026-09-24 17:23:08 +02:00
Robert Marko 1f89cfd701 boot: uboot-microchipsw: use mainline U-Boot
Use mainline U-Boot with pending patches for LAN969x instead of the
old vendor U-Boot.

Both existing boards are supported.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-09-23 15:09:08 +02:00
Robert Marko b24e433864 boot: arm-trusted-firmware-microchipsw: convert FWU scripts to Python
Currently, we depend on building the host Ruby support just for the two
FWU scripts that are written in Ruby.

Use Codex 5.6 to convert the scripts to Python and drop Ruby dependency.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-09-22 19:37:55 +02:00
Robert Marko d15fd263f7 boot: arm-trusted-firmware-microchipsw: update to v2.8.17-mchp4
Microchip has fixed various issues since the last update, so update TF-A.

Signed-off-by: Robert Marko <robert.marko@sartura.hr>
2026-09-22 19:37:55 +02:00
John Crispin b1aa81b442 uboot-lantiq: use a reproducible build timestamp
u-boot 2013.10 builds timestamp_autogenerated.h with a bare date call, so
U_BOOT_DATE and U_BOOT_TIME hold the wall clock and the banner of every
image changes on each build:

  U-Boot 2013.10-openwrt4 (Sep 21 2026 - 20:47:50) ARV7506PW11

Add a patch that uses SOURCE_DATE_EPOCH when the environment provides it,
which the build already exports, and keeps the wall clock otherwise. Later
u-boot versions do the same in their own timestamp rule, which is why only
this package needs the change.

Found with two lantiq/xway trees whose directory names differ in length.
Three bytes of u-boot.bin differed, all inside the banner. After the
change the three u-boot images of arv7506pw11 are identical in both trees
and the banner follows the source date.

Signed-off-by: John Crispin <john@phrozen.org>
2026-09-22 18:46:30 +02:00
John Crispin 03ffe29cdf uboot-mediatek: use a reproducible build timestamp for MT7621
mtk_image_set_mt7621_header() reads the wall clock and writes it to the
timestamp of the legacy image header, so the MT7621 boot loader image
differs on every build.

Add a patch that uses imagetool_get_source_date(), which the other image
tools already use, and keep the wall clock as the fallback.

Signed-off-by: John Crispin <john@phrozen.org>
2026-09-22 18:46:30 +02:00
John Crispin 3a33c694aa uboot-mxs: use a reproducible build timestamp
mkimage -T mxsimage builds u-boot.sb. sb_get_timestamp() reads the wall
clock and sb_prefill_image_header() writes it to the boot image header.
The header digest covers that field, so the sdcard images of mxs differ on
every build.

Add a patch that uses imagetool_get_source_date(), which the other image
tools already use, and keep the wall clock as the fallback.

Tested with the mxsimage configuration of u-boot. Two images are identical
with the same SOURCE_DATE_EPOCH, differ with different values, and still
differ when the variable is not set.

Signed-off-by: John Crispin <john@phrozen.org>
2026-09-22 18:46:30 +02:00
John Crispin b8d89de6e0 mediatek: build the boot loader variants in parallel
The variants of arm-trusted-firmware-mediatek and uboot-mediatek only
write to their own build directories and to files in the staging and
bin directories that have the variant in their name.

For the OpenWrt One, a clean build of the 9 TF-A variants takes 2 s
instead of 11 s, and of the 2 U-Boot variants 12 s instead of 21 s.
The images do not change.

Signed-off-by: John Crispin <john@phrozen.org>
2026-09-22 18:18:58 +02:00
John Crispin df6a1c978b uboot-mediatek: compress BL31 in the build directory
With FIP_COMPRESS set, the fip step compresses the BL31 image next to
the original in the staging directory. All U-Boot variants for the same
SoC, boot device and DRAM type write the same file.

Write the compressed BL31 to the build directory of the variant instead.
The fip does not change.

Signed-off-by: John Crispin <john@phrozen.org>
2026-09-22 18:18:58 +02:00
John Crispin bda729e82f uboot-envtools: remove stray output from the boot log
/etc/uci-defaults/30_uboot-envtools runs in preinit, before the board
file is generated. Two of its helpers write to the console:

* uci batch prints the name of every anonymous section that "add"
  creates, and nothing redirects stdout.
* grep -q hides a match, but it still reports a file that does not
  exist. /etc/fw_env.config is absent until the first append creates it.

On the first boot after a flash this puts three lines on the console:

    cfg016cb7
    cfg026cb7
    grep: /etc/fw_env.config: No such file or directory

Redirect the batch output and add -s to the grep.

Signed-off-by: John Crispin <john@phrozen.org>
2026-09-22 18:18:58 +02:00
John Crispin 468176411c uboot-mediatek: rebuild the fip if BL31 changed
The fip contains BL31 from trusted-firmware-a, but the U-Boot build does
not depend on it. After a rebuild of trusted-firmware-a, the fip and the
images that contain it keep the old BL31.

Make the build stamp depend on the BL31 image.

Signed-off-by: John Crispin <john@phrozen.org>
2026-09-22 18:18:58 +02:00
Stefan Reisinger d9fcbfc585 uboot-envtools: fix BPI-R2 boot device
Resolve the production partition through fit.sh so the generated
environment configuration uses the actual MMC block device.

Migrate legacy /dev/p1 device fields in place while preserving custom
geometry, additional entries, and unrelated configurations.

Fixes: de2df0f2c5 ("base-files: remove fitblk_get_bootdev() from /lib/upgrade/common.sh")
Signed-off-by: Stefan Reisinger <dev@stefan-reisinger.at>
Link: https://github.com/openwrt/openwrt/pull/25197
Signed-off-by: Robert Marko <robimarko@gmail.com>
2026-09-19 12:02:31 +02:00
Zoltan HERPAI 980becf1da imx: add support for Olimex i.MX8MP-SOM-EVB
This adds support for an i.MX8-based system-on-module + EVB board.

CPU:      NXP i.MX8MP @ 1600MHz (quad-core A53)
Memory:   4Gb
PCI:      1x PCIe M.2 2280 slot
Ethernet: 2x GE with Micrel PHY (no MAC in EEPROM)
USB:      2x 3.0
UART:     separate UARTs for the A53 and the M7 cores
Storage:  microSD slot, eMMC headers
Misc:     2KByte EEPROM (at24), audio via ES8328 (unsupported), 2x CAN, HDMI
Power:    5VDC

 - Patches refreshed as required
 - The cortexa53 subtarget selects Micrel PHY from now on
 - u-boot added for the board

Installation:
  Use the standard installation to an SD-card by writing out the
  squashfs image (openwrt-imx-cortexa53-olimex_imx8mp-som-squashfs-img.gz)
  to it.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2026-09-15 18:32:14 +02:00
Zoltan HERPAI 11c64908c1 uboot-mxs: bump to 2026.04
Compile-tested: all mxs boards
Runtime-tested: Olinuxino Micro, I2SE Duckbill

While at it, rework the Duckbill series to compile on 2026.04.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
2026-09-14 22:11:20 +02:00
Daniel Golle 5ad29919a7 uboot-zynq: disable mkeficapsule host tool
Since the bump to 2026.04, tools/Kconfig defaults TOOLS_MKEFICAPSULE to
y whenever EFI_LOADER is set, which the Zynq configs enable. The host
tool includes <gnutls/gnutls.h>, which the build system does not
provide, so the package fails to compile. Disable the tool, as the
other U-Boot packages carrying an EFI_LOADER config already do.

Fixes: d51c611e71 ("uboot-zynq: bump to 2026.04")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-14 08:55:29 +01:00
Daniel Golle e8d18579c1 uboot-sifiveu: disable mkeficapsule host tool
Since the bump to 2026.04, tools/Kconfig defaults TOOLS_MKEFICAPSULE to
y whenever EFI_LOADER is set, which both SiFive configs enable. The host
tool includes <gnutls/gnutls.h>, which the build system does not provide,
so the package fails to compile. Disable the tool, as the other U-Boot
packages carrying an EFI_LOADER config already do.

Fixes: 5b2c9ce8bf ("uboot-sifiveu: bump to 2026.04")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
2026-09-14 01:00:47 +01:00
Aleksei Sviridkin 74824d68c6 uboot-mediatek: fix SPI bus-width spelling on the Zyxel WX5600-T0
No test on this hardware, but the same community U-Boot source that
confirms the Livinet Li320 wiring carries this board too, with
support_quad set on the controller and the same typo in its own DTS.

Yuzhii0718/bl-mt798x-dhcpd, uboot-mtk-20250711/arch/arm/dts/mediatek/
openwrt/mt7986b-zyxel_wx5600-t0.dts.

Assisted-by: LLM
Signed-off-by: Aleksei Sviridkin <f@lex.la>
Link: https://github.com/openwrt/openwrt/pull/24809
Signed-off-by: Jonas Jelonek <jonas@jonasjelonek.de>
2026-09-11 10:06:17 +02:00
Aleksei Sviridkin beed758233 uboot-mediatek: fix SPI bus-width spelling on the Zyxel EX5601-T0
The node already sets support_quad on the controller; the misspelling
was keeping the bootloader's flash access at 1-bit regardless.

The package had no PKG_RELEASE, so this adds one to rebuild the
bootloader for the boards that carry these patches.

Tested-by: Andrew Sim <andrewsimz@gmail.com>
Assisted-by: LLM
Signed-off-by: Aleksei Sviridkin <f@lex.la>
Link: https://github.com/openwrt/openwrt/pull/24809
Signed-off-by: Jonas Jelonek <jonas@jonasjelonek.de>
2026-09-11 10:06:17 +02:00