# Adding support for TP-Link BE450(U-boot layout)

**URL:** <https://forum.openwrt.org/t/adding-support-for-tp-link-be450-u-boot-layout/249906>\
**Category:** For Developers\
**Created:** [May 8, 2026, 7:00pm UTC](https://forum.openwrt.org/t/adding-support-for-tp-link-be450-u-boot-layout/249906 "2026-05-08T19:00:37Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Emre\_Y](https://forum.openwrt.org/letter_avatar/emre_y/32/5_5575768a8748004e209b776fc1b2916d.png) [@Emre\_Y](https://forum.openwrt.org/u/Emre_Y)\
**Post date:** [May 8, 2026, 7:00pm UTC](https://forum.openwrt.org/t/adding-support-for-tp-link-be450-u-boot-layout/249906/1 "2026-05-08T19:00:38Z")

</div>

Working as of now since 3 months or so. On at least 3 BE450 devices.

> <https://github.com/openwrt/openwrt/pull/23211>
>
> tplink\_be450: add support
> 
> Hardware:
> SoC: MediaTek MT7988DV (Filogic 880…)
> Wi-Fi: MediaTek MT7992AV (BE7200)
> Flash: NAND (UBI layout)
> RAM: 512MB DDR4
> 
> Serial console (115200 8N1):
> 
> heatsink
> | |
> | |
> | | +----+-----+------+-------+ +-----------------+
> | | | TX | RX | GND | +3.3V | | power connector |
> +---+ +----+-----+------+-------+ +-----------------+
> |
> Don't connect ----+
> 
> Installation requires TFTP and a serial connection. Back up the
> following files before proceeding — they contain MAC address and
> calibration data that cannot be recovered otherwise:
> 
> /dev/mtd0 -\> boot.bin
> /dev/mtd5 -\> tp\_data.bin
> /tp\_data/MT7992\_EEPROM.bin
> /tp\_data/default-mac
> 
> If permission errors occur on /tp\_data files:
> 
> chmod 666 /tp\_data/MT7992\_EEPROM.bin
> chmod 666 /tp\_data/default-mac
> 
> Installation:
> 
> 1. Interrupt U-Boot with Ctrl+C (or press T) and load initramfs:
> 
> tftpboot openwrt-mediatek-filogic-tplink\_be450-ubi-initramfs-recovery.itb
> bootm
> 
> 2. Back up mtd partitions and tp\_data folder via scp to your PC.
> 
> 3. Reboot and interrupt U-Boot again. Verify wireless is visible in
> the initramfs interface before continuing.
> 
> 4. Transfer required files to the router:
> 
> scp -O MT7992\_EEPROM.bin default-mac \\
> openwrt-...-bl31-uboot.fip \\
> openwrt-...-preloader.bin \\
> openwrt-...-squashfs-sysupgrade.itb \\
> root@192.168.1.1:/tmp
> 
> 5. Build factory.bin from EEPROM and MAC data:
> 
> dd if=/dev/zero bs=$((0x100000)) count=1 | tr '\\000' '\\377' \> /tmp/factory.bin
> dd if=MT7992\_EEPROM.bin of=factory.bin bs=1 count=$((0x1e00)) conv=notrunc
> dd if=default-mac of=/tmp/factory.bin bs=1 seek=4 conv=notrunc
> 
> 6. Set up UBI volumes:
> 
> ubidetach -p /dev/mtd3
> ubiformat /dev/mtd3 -y
> ubiattach -p /dev/mtd3
> ubimkvol /dev/ubi0 -N fip -t static -s 2MiB
> ubiupdatevol /dev/ubi0\_0 /tmp/openwrt-mediatek-filogic-tplink\_be450-ubi-bl31-uboot.fip
> ubimkvol /dev/ubi0 -N ubootenv -s 0x1f000
> ubimkvol /dev/ubi0 -N ubootenv2 -s 0x1f000
> 
> 7. Write bl2, factory and perform sysupgrade:
> 
> insmod mtd-rw i\_want\_a\_brick=1
> mtd unlock boot
> mtd unlock bl2
> mtd unlock factory
> mtd erase factory
> mtd write /tmp/factory.bin factory
> mtd erase bl2
> mtd write /tmp/openwrt-mediatek-filogic-tplink\_be450-ubi-preloader.bin bl2
> sysupgrade -n /tmp/openwrt-mediatek-filogic-tplink\_be450-ubi-squashfs-sysupgrade.itb

---

<div class="post-metadata">

**Author:** ![noob](https://forum.openwrt.org/letter_avatar/noob/32/5_5575768a8748004e209b776fc1b2916d.png) [@noob](https://forum.openwrt.org/u/noob)\
**Post date:** [May 9, 2026, 7:22pm UTC](https://forum.openwrt.org/t/adding-support-for-tp-link-be450-u-boot-layout/249906/2 "2026-05-09T19:22:05Z")

</div>

My router is already flashed with OpenWrt can I redo your manipulation via UART to increase the storage space and the UBI version? Thank you

I has heard 10 gb work can you confirm ? In version 25.12.3 or not

---

<div class="post-metadata">

**Author:** ![frollic](https://forum.openwrt.org/user_avatar/forum.openwrt.org/frollic/32/30113_2.png) [@frollic](https://forum.openwrt.org/u/frollic)\
**Post date:** [May 9, 2026, 7:29pm UTC](https://forum.openwrt.org/t/adding-support-for-tp-link-be450-u-boot-layout/249906/3 "2026-05-09T19:29:04Z")

</div>

> [@noob](#):
>
> can I redo your manipulation via UART

Did you read the install instruction in the PR ?

---

<div class="post-metadata">

**Author:** ![Emre\_Y](https://forum.openwrt.org/letter_avatar/emre_y/32/5_5575768a8748004e209b776fc1b2916d.png) [@Emre\_Y](https://forum.openwrt.org/u/Emre_Y)\
**Post date:** [May 9, 2026, 9:13pm UTC](https://forum.openwrt.org/t/adding-support-for-tp-link-be450-u-boot-layout/249906/4 "2026-05-09T21:13:49Z")

</div>

Btw, what happens when you flash initramfs.itb image in an OpenWrt stock firmware not U-boot layout? Will it just boot initramfs.itb? Or not do anything?

---

<div class="post-metadata">

**Author:** ![Emre\_Y](https://forum.openwrt.org/letter_avatar/emre_y/32/5_5575768a8748004e209b776fc1b2916d.png) [@Emre\_Y](https://forum.openwrt.org/u/Emre_Y)\
**Post date:** [May 10, 2026, 9:12pm UTC](https://forum.openwrt.org/t/adding-support-for-tp-link-be450-u-boot-layout/249906/5 "2026-05-10T21:12:56Z")

</div>

Dude btw, do I have to add restore to stock thing? I don't even know if that's even possible, never tried.

I've tried some, but it seems rather difficult. I will pass on this, someone else should do that.

---

<div class="post-metadata">

**Author:** ![Emre\_Y](https://forum.openwrt.org/letter_avatar/emre_y/32/5_5575768a8748004e209b776fc1b2916d.png) [@Emre\_Y](https://forum.openwrt.org/u/Emre_Y)\
**Post date:** [May 11, 2026, 7:22pm UTC](https://forum.openwrt.org/t/adding-support-for-tp-link-be450-u-boot-layout/249906/6 "2026-05-11T19:22:12Z")

</div>

Ok revert to stock is also possible. This is a method I completely thought about and it worked. Didn't know if it was gonna work.  
TP-Link BE450 return to stock firmware:

Now you need a special stock OpenWrt initramfs-kernel.bin file with kmod-mtd-rw compiled onto it. Here is one I compiled, drive link here:([https://drive.google.com/file/d/1eS\_rcjmPdCEhToFRZwiwW0PvJhyS-a8p/view?usp=sharing](https://drive.google.com/file/d/1eS_rcjmPdCEhToFRZwiwW0PvJhyS-a8p/view?usp=sharing))  
So, just flash that initramfs-kernel.bin file, from the flash firmware button. You will then boot into that initramfs image.  
Then scp the required tp\_data.bin and boot.bin file to the router:

```plaintext

scp -O tp_data.bin boot.bin root@192.168.1.1:/tmp

insmod mtd-rw i_want_a_brick=1
mtd unlock boot
mtd erase boot
mtd write /tmp/boot.bin boot
mtd erase ubi0
mtd erase ubi1
mtd erase userconfig
mtd erase tp_data
mtd write /tmp/tp_data.bin tp_data

md5sum /tmp/tp_data.bin
md5sum /dev/mtd5

```

If both md5sum is equal, then you can just reboot. This step is very important without tp\_data.bin written right, you won't have ethernet.  
So, now you will be greeted with U-boot web recovery at 192.168.1.1, no static IP setting is needed for that.  
Just download TP-Link Archer BE450 stock firmware from the TP-Link Website and flash it. After it finishes, it will then ask you to reboot. Do that and you're back at stock firmware.

---

<div class="post-metadata">

**Author:** ![Drop](https://forum.openwrt.org/user_avatar/forum.openwrt.org/drop/32/103700_2.png) [@Drop](https://forum.openwrt.org/u/Drop)\
**Post date:** [May 14, 2026, 12:47am UTC](https://forum.openwrt.org/t/adding-support-for-tp-link-be450-u-boot-layout/249906/7 "2026-05-14T00:47:53Z")

</div>

> [@Emre\_Y](#):
>
> drive link here:(to be put here)

hi, link dead ?

---

<div class="post-metadata">

**Author:** ![Emre\_Y](https://forum.openwrt.org/letter_avatar/emre_y/32/5_5575768a8748004e209b776fc1b2916d.png) [@Emre\_Y](https://forum.openwrt.org/u/Emre_Y)\
**Post date:** [May 14, 2026, 5:04am UTC](https://forum.openwrt.org/t/adding-support-for-tp-link-be450-u-boot-layout/249906/8 "2026-05-14T05:04:21Z")

</div>

> **[openwrt-mediatek-filogic-tplink\_be450-initramfs-kernel.bin](https://drive.google.com/file/d/1eS_rcjmPdCEhToFRZwiwW0PvJhyS-a8p/view?usp=sharing)**
>
> Google Drive file.
