<feed xmlns='http://www.w3.org/2005/Atom'>
<title>staging/nbd/package/boot, branch master</title>
<subtitle>Felix Fietkaus staging tree</subtitle>
<id>https://git.openwrt.org/openwrt/staging/nbd/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/openwrt/staging/nbd/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/nbd/'/>
<updated>2026-08-20T21:49:57Z</updated>
<entry>
<title>mediatek: add OpenWrt UBI layout for MERCUSYS MR85X</title>
<updated>2026-08-20T21:49:57Z</updated>
<author>
<name>Mikhail Zhilkin</name>
</author>
<published>2026-07-26T13:42:24Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/nbd/commit/?id=c9bdc4e98042a413ac8321a3c7e5ccec87e49775'/>
<id>urn:sha1:c9bdc4e98042a413ac8321a3c7e5ccec87e49775</id>
<content type='text'>
This commit adds OpenWrt U-Boot (UBI) layout support for MERCUSYS MR85X.

Stock bootloader UBI size: 50 MiB
OpenWrt U-Boot UBI size:  127 MiB

Other changes
-------------
- Watchdog is enabled for the both layouts
- Button labels renamed according to the kernel documentation

Preparation
-----------
OpenWrt for stock U-Boot should be installed first. Before formatting or
rewriting any partition structures, you must copy EEPROM data and unique
MAC address. Navigate to the /tmp/tp_data directory on the router. Locate
and copy these files to your PC:
- default-mac (contains your device's unique MAC address mapping)
- MT7981_EEPROM.bin (contains factory wireless calibration data)

Installation
------------
1. Initialize the Hardware Environment
Power off the router. Run the mtk_uartboot utility on your computer. Power
on the router. Wait for the utility to push the initial payload, boot the
device temporarily and format the UBI partition structure.

2. Access the U-Boot Promp
Run mtk_uartboot on your computer a second time. When the utility menu
appears on your terminal screen, choose Exit. This will drop you safely
into the interactive U-Boot command line interface prompt (MT7981&gt;).

3. Flash the BL2 (preloader)
You must write the second-stage bootloader (BL2) directly to the MTD
partition. Prepare the router to receive the BL2 image over serial Ymodem
protocol:
   MT7981&gt; loady
In your terminal application, select File -&gt; Transfer -&gt; Ymodem -&gt; Send
and select the path to:
openwrt-mediatek-filogic-mercusys_mr85x-ubi-preloader.bin
Erase the existing BL2 partition:
   MT7981&gt; mtd erase bl2
Commit the new BL2 binary from RAM to the flash memory:
   MT7981&gt; mtd write bl2 $loadaddr 0x0 ${filesize}

4. Provision the FIP Partition (BL31 &amp; U-Boot)
Ready the router to receive the FIP package:
   MT7981&gt; loady
In your terminal application, send the following file via Ymodem:
openwrt-mediatek-filogic-mercusys_mr85x-ubi-bl31-uboot.fip
Clear the legacy tracking data and configure the UBI block allocation:
   MT7981&gt; ubi write $loadaddr fip ${filesize}

5. Boot into OpenWrt Recovery
With the core partition structures and boot code firmly written, you can
now push and execute the temporary OpenWrt recovery environment to finish
the installation. Prepare for the final serial download:
   MT7981&gt; loady
Send the following recovery image file via Ymodem:
openwrt-mediatek-filogic-mercusys_mr85x-ubi-initramfs-recovery.itb
Boot the OpenWrt kernel image directly out of the memory cache:
   MT7981&gt; bootm

6. Flash OpenWrt permanently
Once the router finishes booting the initramfs image, navigate to
192.168.1.1 in your web browser to access the OpenWrt LuCI recovery
interface. From there, permanently flash the production sysupgrade image.

7. Recovery factory data
Once the router finishes booting into OpenWrt, you must rebuild and flash
the factory volume payload. This process combines your unique wireless
calibration data and MAC address back into a single compliant block.
Use SCP or an SFTP client (like WinSCP) to copy your two backup files from
your PC into the router's /tmp directory:
- default-mac
- MT7981_EEPROM.bin
Connect to the router via SSH and run the following commands:
   dd if=/dev/zero bs=$((0x8000)) count=1 | tr '\000' '\377' &gt; /tmp/factory.bin
   dd if=/tmp/MT7981_EEPROM.bin of=/tmp/factory.bin conv=notrunc
   dd if=/tmp/default-mac &gt;&gt; /tmp/factory.bin
Query the system to confirm the exact logical UBI character device target
for the factory volume:
ubinfo /dev/ubi0 -N factory | grep "Volume ID" | awk '{print $3}'
Commit the newly created factory.bin file directly into the designated
factory UBI block (replace _1 below if your volume ID query returned a
different number):
   ubiupdatevol /dev/ubi0_1 /tmp/factory.bin
Reboot your router to apply the changes.

Recovery
--------
The same as installation.

UART
----
Connection parameters: 115200, 8N1, 3.3V
UART pins are silkscreened on the PCB.

MAC addresses
-------------
+---------+-------------------+-----------+
|         | MAC               | Algorithm |
+---------+-------------------+-----------+
| label   | 08:xx:xx:xx:xx:f5 | label     |
| LAN     | 08:xx:xx:xx:xx:f5 | label     |
| WAN     | 08:xx:xx:xx:xx:f6 | label+1   |
| WLAN 2g | 08:xx:xx:xx:xx:f5 | label     |
| WLAN 5g | 08:xx:xx:xx:xx:f4 | label-1   |
+---------+-------------------+-----------+
label MAC address was found in UBI partition "tp_data", file
"default-mac" (raw binary MAC). Proof:
   hexdump -C default-mac
   00000000  08 xx xx xx xx f5   |....Y.|
   00000006
OEM wireless eeprom is also there (file
"MT7981_EEPROM.bin").

Link: https://github.com/981213/mtk_uartboot
Signed-off-by: Mikhail Zhilkin &lt;csharper2005@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/24435
Signed-off-by: Jonas Jelonek &lt;jelonek.jonas@gmail.com&gt;
</content>
</entry>
<entry>
<title>uboot-mediatek: add support for MERCUSYS MR85X</title>
<updated>2026-08-20T21:49:56Z</updated>
<author>
<name>Mikhail Zhilkin</name>
</author>
<published>2026-07-26T13:41:38Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/nbd/commit/?id=4d442a7d46c902d26c8f27866fb9622f482714b4'/>
<id>urn:sha1:4d442a7d46c902d26c8f27866fb9622f482714b4</id>
<content type='text'>
Introduce initial board support for the Mercusys MR85X, an AX3000
wireless router powered by the MediaTek MT7981 (Filogic 820) SoC.

Networking Configuration Note
-----------------------------
Ethernet functionality is currently disabled in this stage of U-Boot
due to the specific board configuration:
1. The Realtek RTL8367S switch does not have an available U-Boot driver
2. The Airoha EN8811 PHY is physically routed to GMAC1 rather than the
standard GMAC0 pipeline. This requires further adjustment to bind and
trace MDIO/PHY operations over GMAC1.

ToDo
----
I have successfully integrated the Realtek switch driver (taken from
D-Link DIR-X3260 GPL sources.
Link:  https://github.com/hsj79/dir-x3260-gplcode/

Everything is working perfectly and users can operate the device without
any issues. TFTP flashing (FIP, preloader, recovery images) works
flawlessly across both cold and warm boot cycles with stable speeds
around 6.5 MiB/s.

Why it's not ready for upstream OpenWrt yet:
- Patch Size: The included Realtek SDK files are massive (approximately
3 MB), which is way too large for a standard OpenWrt package patch
- Code Optimization: The implementation is currently a functional
workaround and requires significant refactoring, cleanup and optimization
to match official OpenWrt submission standards

Patches and ready-to-use binaries
Link: https://github.com/csharper2005/uboot-mediatek-rtl8367s/

Signed-off-by: Mikhail Zhilkin &lt;csharper2005@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/24435
Signed-off-by: Jonas Jelonek &lt;jelonek.jonas@gmail.com&gt;
</content>
</entry>
<entry>
<title>uboot-airoha: fix Nokia XG-040G-MD pin control configuration</title>
<updated>2026-08-15T14:23:30Z</updated>
<author>
<name>Mikhail Zhilkin</name>
</author>
<published>2026-08-15T10:44:58Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/nbd/commit/?id=fb4c485122985919b974d31f220b94f9609e7e5c'/>
<id>urn:sha1:fb4c485122985919b974d31f220b94f9609e7e5c</id>
<content type='text'>
Change CONFIG_PINCONF to CONFIG_PINCTRL_AIROHA_AN7581 in the patch.
This enables proper pin control and fixes the reset button in U-Boot
for TFTP recovery.

Fixes: 0277c8601ee4 ("uboot-airoha: add Nokia XG-040G-MD support")
Tested-by: Vitaliy Sochnev &lt;sochnev.v.74@gmail.com&gt;
Signed-off-by: Mikhail Zhilkin &lt;csharper2005@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/24741
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</content>
</entry>
<entry>
<title>qualcommax: ipq60xx: add support for tp-link eap620hd-v2</title>
<updated>2026-08-15T09:14:55Z</updated>
<author>
<name>Ryan S</name>
</author>
<published>2026-01-09T20:56:53Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/nbd/commit/?id=2b4579c1acffab52c4d88be1674595a21bb9fbb2'/>
<id>urn:sha1:2b4579c1acffab52c4d88be1674595a21bb9fbb2</id>
<content type='text'>
TP-Link EAP620HD V2 is a 802.11ax AP claiming AX1800 support.
Specifications:
CPU: Qualcomm IPQ6018 Quad core Cortex-A53
RAM: 1 GB
Storage: ESMT PSR1GA30DT 128MB NAND
Ethernet:
Gigabit RJ45 port with PoE input
WLAN:
2.4GHz/5GHz
LEDs:
Single-color LED (Blue)
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-&gt;SSH and enable the "SSH Login" checkbox. Select "Save".
The connect to the machine via SSH:

ssh -o hostkeyalgorithms=ssh-rsa &lt;ip_of_device&gt;
Disable signature verification:

cliclientd stopcs
Rename the "-web-ui-factory" image to something less than 63
characters, maintaining the ".bin" suffix.

Go to System -&gt; 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 &lt;ip of tftp server&gt;
setenv ipaddr &lt;ip in same subnet as tftp server&gt;
tftpboot tplink_eap620-hd-v2-initramfs-uImage.itb
bootm
This should boot OpenWRT. Once booted, flash the sysupgrade.bin image
using either luci or the commandline.

Big thanks to @mrnuke for the groundwork and support.

Signed-off-by: Ryan S &lt;rspierz@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/18227
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</content>
</entry>
<entry>
<title>ipq40xx: add support for Ubiquiti UniFi Travel Router</title>
<updated>2026-08-15T09:11:07Z</updated>
<author>
<name>Matt Eaton</name>
</author>
<published>2026-04-05T00:03:47Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/nbd/commit/?id=775836863cc233dd55ed67eaca904b80805ad944'/>
<id>urn:sha1:775836863cc233dd55ed67eaca904b80805ad944</id>
<content type='text'>
Support for Ubiquiti UniFi Travel Router

SoC: IPQ4018
DRAM: 256 MB
NAND: Macronix MX35LFxGE4AB 128 MiB
NOR: MX25L3205D 4 MiB
ETH: 2x 10/100/1000 Ethernet (QCA8075 switch chip)
WIFI: 2x IPQ4018 (2.4GHz 802.11n + 5GHz 802.11ac)
BT: Internal USB Bluetooth adapter (Cambridge Silicon Radio, 0a12:0001)
LCD: ST7789V (135x240), GPIO backlight
ACC: ST LIS2DW12 accelerometer (I2C)
BTN: Reset
UART: through-hole pads on PCB / 3.3V / G, TX, RX, V / 115200n8
USB: 1x USB-C (power), 1x USB-C (host)
PWR: 5 VDC, 2 A (USB-C)

MAC address layout (mac-base at EEPROM offset 0x0):
  +0: xx:xx:xx:xx:xx:xx  Ethernet WAN
  +1: xx:xx:xx:xx:xx:xx  Ethernet LAN
  +2: xx:xx:xx:xx:xx:xx  2.4 GHz Wi-Fi
  +3: xx:xx:xx:xx:xx:xx  5 GHz Wi-Fi

The UTR has two slots: kernel0 and kernel1. The built-in TFTP recovery always writes to kernel0, so
we want to write to kernel1 to preserve that recovery mechanism.

From factory firmware:

1.  SSH into your UTR.
2.  Check if /proc/cmdline contains ubntbootid=1, then you are on the kernel1 slot: Upgrade/change
to a different version of the UTR firmware, this will switch you back to kernel0 slot. Alternatively
use the TFTP recovery procedure. Reboot and start over at Step 1.
3.  Copy the firmware.ubi to the UTR (scp -O) into /tmp/factory.ubi.
4.  Change the boot slot to kernel1.

printf '\xff\xff\xff\xff\x2b\xe8\x4d\xa3' &gt; /tmp/bs.bin
mtd -e bs write /tmp/bs.bin bs
rm -f /tmp/bs.bin

5.  Set up uboot config to remove signature checks on kernel1 slot. You need to keep the signature
checks to run the stock unifi firmware which we are leaving in kernel0.

BOOTCMD_REAL="sf probe; sf read 0x80000000 0x2f0000 0x800; \
mw.b 0x80010000 0xff 0x1; if cmp.b 0x80000000 0x80010000 0x1; \
then echo \"Slot 1 / kernel1\"; run bootopenwrt; \
else echo \"Slot 0 / kernel0\"; bootubnt; fi"

fw_setenv -s - &lt;&lt;-EOF
	bootopenwrt fdt addr \${fdtcontroladdr}; fdt rm /signature; bootubnt
	bootcmd_real $BOOTCMD_REAL
EOF

6.  Flash the firmware.

MTD="$(grep -w '"kernel1"' /proc/mtd | cut -d: -f1)"
ubidetach -p /dev/$MTD 2&gt;/dev/null || true
ubiformat /dev/$MTD -y -f /tmp/factory.ubi

7.  Reboot

reboot

----
To restore the vendor image, switch back to slot 0 and restore signed booting to both slots:

printf '\x00\x00\x00\x00\x2b\xe8\x4d\xa3' &gt; /tmp/bs.bin
mtd -e bs write /tmp/bs.bin bs
rm -f /tmp/bs.bin
fw_setenv bootcmd_real 'bootubnt'
reboot

Then erase slot 1 so it can be used for vendor upgrades:
MTD="$(grep -w '"kernel1"' /proc/mtd | cut -d: -f1)"
ubidetach -p /dev/$MTD 2&gt;/dev/null || true
ubiformat /dev/$MTD

Signed-off-by: Matt Eaton &lt;git@divinehawk.com&gt;
Link: https://github.com/openwrt/openwrt/pull/22740
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</content>
</entry>
<entry>
<title>airoha: add support for Nokia XG-040G-MF (UBI)</title>
<updated>2026-08-15T08:52:45Z</updated>
<author>
<name>Mikhail Zhilkin</name>
</author>
<published>2026-08-09T10:28:53Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/nbd/commit/?id=cbe75a7bb17aa8a73bcf231fb3158b790ee32577'/>
<id>urn:sha1:cbe75a7bb17aa8a73bcf231fb3158b790ee32577</id>
<content type='text'>
This commit adds support for OpenWrt U-Boot variant of Nokia XG-040G-MF
XG-PON ONU.

Notes
-----
1. A simple installation without serial console is also possible using a
   fork of @dangowrt's UBI Installer
Link: https://github.com/dangowrt/owrt-ubi-installer

Installation / recovery
-----------------------
1.  Make sure that you have 'bosa' and 'ri' partitions mtd backups before
    you start
2.  Place OpenWrt images on the tftp server (IP: 192.168.1.254):
    openwrt-airoha-an7583-nokia_xg-040g-mf-ubi-bl31-uboot.fip
    openwrt-airoha-an7583-nokia_xg-040g-mf-ubi-initramfs-recovery.itb
    openwrt-airoha-an7583-nokia_xg-040g-mf-ubi-preloader.bin
3.  Attach serial console and start terminal with XMODEM support:
    picocom -b 115200 --send-cmd "sx -vvX" /dev/ttyUSB0
4.  Push reset button and power on the router
5.  Press 'x', then 'Ctrl + A' and 'Ctrl + S'
6.  Paste full path to the bl2 image:
    'openwrt-airoha-an7583-nokia_xg-040g-mf-ubi-preloader.bin'
7.  Wait until the file is downloaded and the following prompt appears:
    Press x to load BL31 + U-Boot FIP
8.  Press 'x', then 'Ctrl + A' and 'Ctrl + S'
9.  Paste full path to the fip image:
    'openwrt-airoha-an7583-nokia_xg-040g-mf-ubi-bl31-uboot.fip'
10. Wait until the file is downloaded, u-boot will prepare ubi partition
    automatically
11. Wait for U-Boot menu
12. Run 'Load BL31+U-Boot FIP via TFTP then write to NAND'
13. Run 'Load BL2 preloader via TFTP then write to NAND'
14. Run 'Boot system via TFTP'
15. Once in OpenWrt perform standard sysupgrade
16. Once in OpenWrt upload 'bosa' and 'ri' partitions mtd backups to the
    /tmp dir using scp protocol
17. Check ID of the UBI volumes:
    ubinfo -d 0 -N bosa | grep "Volume ID"
    ubinfo -d 0 -N ri | grep "Volume ID"
18. Write backups according to the volume ID:
    ubiupdatevol /dev/ubi0_2 /tmp/bosa.bin
    ubiupdatevol /dev/ubi0_3 /tmp/ri.bin
19. Reboot:
    reboot

UART
----
A view from the back side of the PCB:
   ------------------------
   |       GND RX TX
   |        X  X  X
Connection parameters:
115200, 8N1, 3.3V

Signed-off-by: Mikhail Zhilkin &lt;csharper2005@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/24654
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</content>
</entry>
<entry>
<title>uboot-airoha: add support for Nokia XG-040G-MF</title>
<updated>2026-08-15T08:52:45Z</updated>
<author>
<name>Mikhail Zhilkin</name>
</author>
<published>2026-08-09T10:30:01Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/nbd/commit/?id=c5aa00bc5f9ddfddb482d5f9b4f74a2ac766cdf9'/>
<id>urn:sha1:c5aa00bc5f9ddfddb482d5f9b4f74a2ac766cdf9</id>
<content type='text'>
Add support for Nokia XG-040G-MF.

Signed-off-by: Mikhail Zhilkin &lt;csharper2005@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/24654
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</content>
</entry>
<entry>
<title>arm-trusted-firmware-airoha: add Nokia XG-040G-MF</title>
<updated>2026-08-15T08:52:45Z</updated>
<author>
<name>Mikhail Zhilkin</name>
</author>
<published>2026-08-09T10:29:33Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/nbd/commit/?id=772c96589be72cf69724a3a6625022000a23e0c9'/>
<id>urn:sha1:772c96589be72cf69724a3a6625022000a23e0c9</id>
<content type='text'>
Include the 'nokia_xg-040g-mf-ubi' device in both the BL2 and BL31 build
targets for the AN7583 SoC, enabling TF-A build support for this hardware.

Signed-off-by: Mikhail Zhilkin &lt;csharper2005@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/24654
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</content>
</entry>
<entry>
<title>arm-trusted-firmware-airoha: update to Git HEAD (2026-08-14)</title>
<updated>2026-08-15T08:52:45Z</updated>
<author>
<name>Mikhail Zhilkin</name>
</author>
<published>2026-08-14T15:49:13Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/nbd/commit/?id=a62b5f1faf19d24e32d3b169810dc0c27a09acff'/>
<id>urn:sha1:a62b5f1faf19d24e32d3b169810dc0c27a09acff</id>
<content type='text'>
823d6509db33 plat: flash: add spi-nand W25N01KV support
94892b9e42eb plat: flash: add Gigadevice GD5F2GM7UEYIG SPI NAND

Signed-off-by: Mikhail Zhilkin &lt;csharper2005@gmail.com&gt;
Link: https://github.com/openwrt/openwrt/pull/24654
Signed-off-by: Robert Marko &lt;robimarko@gmail.com&gt;
</content>
</entry>
<entry>
<title>uboot-zynq: bump to 2026.04</title>
<updated>2026-08-13T21:11:24Z</updated>
<author>
<name>Zoltan HERPAI</name>
</author>
<published>2026-08-07T07:59:30Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/openwrt/staging/nbd/commit/?id=d51c611e71074f68ea5581ca15aadaad514622c2'/>
<id>urn:sha1:d51c611e71074f68ea5581ca15aadaad514622c2</id>
<content type='text'>
While at it, replace the SPI MAC address read patch with a rebased
series from the Digilent u-boot repository. It should be noted that
this feature is still not upstreamed. Refresh patches as required.

As most of the zynq boards are merged into xilinx_zynq_virt, add
UBOOT_CONFIG to the respective boards in the Makefile.

Compile-tested: all Zynq boards
Runtime-tested: Antminer S9

Signed-off-by: Zoltan HERPAI &lt;wigyori@uid0.hu&gt;
</content>
</entry>
</feed>
