The DRAM_USE_COMB option is only valid for the MT7988. There
is no DRAM type selection for the MT7987, so remove it.
Fixes: de8fc8b ("arm-trusted-firmware-mediatek: add builds for MT7987")
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/21000
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit bb2d9c1a65)
Add the DDR4_4BG_MODE option, which supports 4GB DDR4 RAM
for the MT7987 and 8GB DDR4 RAM for the MT7988. If this mode
is not enabled, bl2 can only recognize half the size of RAM.
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/21000
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit f037a2e8bb)
This commit adds support for the Watchguard Firebox models
T10-W, T15 and T15-W.
CPU: Freescale P1010
RAM: 512MB (T10) / 1024MB (T15)
Flash: 1MB SPI-NOR, 512MB NAND (T10) / 1024MB NAND (T15)
WiFi: 802.11abgn 2T2R AR9582 based Mini-PCIe card (-W models only)
Ethernet: 3x GBE (via AR8033 PHY)
LEDs: 7x hard-wired (6x LAN, 1x Power)
4x GPIO single-colored (Attn/Status/Mode/Failover)
1x GPIO dual-colored (2.4/5G WiFi, -W models only)
Serial: RJ45, Cisco pinout, 115200/8N1
Other: Battery backed RTC
Atmel TPM 1.2 chip (unsupported)
Based on 35f6d79, which introduced Watchguard Firebox T10 support.
The T10 and T15 are identical hardware, with the exception of the T15
having twice the flash and RAM size.
The T10-W and T15-W models have their Mini-PCIe slot populated with an ath9
(AR9582) based WiFi card. The slot is either unpopulated or empty for
non-WiFi models. All required drivers are present by default on the mpc85xx
target, so T10/T10-W resp. T15/T15-W can use the same OpenWrt image.
This commit also introduces the zImage loader from 7d768a9 to boot the
kernel. This is required, since the U-Boot version used in these devices
appears to have a hard limit of 16MB for the kernel size it can handle. The
current kernel size is around 17MB, though, due to kernel page alignment
required for memory protection.
Installation (replaces previous instructions for T10):
1. If the U-Boot password is known, proceed with step 2.
If the U-Boot password is unknown, dump the NOR flash using a SPI
programmer and patch the unknown password to a known one. You can use
blocktrron's Python script:
https://github.com/blocktrron/t10-uboot-patcher/
This script will patch the password to '1234' (without quotes).
Alternatively, you can search for the hashed password in the NOR dump
yourself and overwrite it with a known one. The SHA1 hash is:
E597301A1D89FF3F6D318DBF4DBA0A5ABC5ECBEA
Write the patched NOR dump back to the device.
2. Connect the device via serial cable, power it on and interrupt
the boot process by pressing Ctrl+C. Enter the U-Boot password to access
the CLI.
3. (Optional) Populate the uboot-env partition by entering:
saveenv
This will allow you to use uboot-envtools from within OpenWrt later,
e.g. to increase the loadable kernel size.
The default loadable kernel size is 5MB, the compressed kernel size at
the time of this commit is 3.1MB.
4. Serve the initramfs OpenWrt image from a TFTP server at 10.0.1.13/24,
connected to eth0 (WAN) of the device. File name must be 'uImage'. Boot
with:
tftpboot; bootm;
Make sure to use the correct image for your device (T10 resp. T15)!
5. After booting, connect to OpenWrt on eth1 (LAN) via SSH. Verify
that the UBI partiton is mtd7, format it and install the sysupgrade
image.
$ cat /proc/mtd
$ ubiformat /dev/mtd7 -y
$ sysupgrade -n <path to sysupgrade.bin>
6. The device should now boot OpenWrt from NAND flash. Enjoy.
Back to stock:
Use the vendor recovery procedure.
Stock recovery might also be necessary in case you have accidentally used
the fw_setenv command from within OpenWrt without using saveenv in U-Boot
first.
In order to use the vendor firmware recovery procedure, the NAND partitions
mtd3 to mtd6 must remain intact. Make sure not to overwrite them, or keep
dumps of them for later recovery.
Signed-off-by: Shine <4c.fce2@proton.me>
Link: https://github.com/openwrt/openwrt/pull/16776
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
(cherry picked from commit be7aa5bda4)
Correct the order of the arguments.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21109
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Hardware specification:
SoC: MediaTek MT7981B
Flash: ESMT F50L1G41LB 128MB
RAM: ESMT M15T2G16128A DDR3 256MB
Ethernet: 3x 1G
Button: Reset, WPS
MAC addresses
LAN: Label MAC (stored in Factory partition offset 0x1fef20)
WAN: LAN + 1
WiFi: LAN
Official LED layout, from left to right:
[power] [internet] [wps] [wifi] [lan3/2/1] [wan]
Redefinition for OpenWrt:
[power]: used for led-boot, led-failsafe, and led-running
[internet]: used for WAN RX/TX indication
[wps]: used for led-upgrade
[wifi] and [lan3/2/1]: unchanged
[wan]: used for WAN link indication
Installing OpenWrt:
- Setup a tftp server on your PC. Copy
xxx-preloader.bin, xxx-bl31-uboot.fip and
xxx-initramfs.itb to tftp root directory.
- Connect to the router via ssh or telnet,
username: useradmin, password is the web
login password of the router.
- Backup all critical flash partitions with
the following commands where x.x.x.x is
the IP of your PC.
IP=x.x.x.x
cd /dev
for d in /sys/class/mtd/mtd?; do
if [ "$(cat $d/name)" = "BL2" ]; then
tftp -l $(basename $d) -r bl2.img -p $IP
elif [ "$(cat $d/name)" = "FIP" ]; then
tftp -l $(basename $d) -r fip.bin -p $IP
elif [ "$(cat $d/name)" = "Factory" ]; then
tftp -l $(basename $d) -r factory.bin -p $IP
fi
done
for d in /sys/devices/virtual/ubi/ubi0/ubi0_*; do
[ "$(cat $d/name)" != "customer" ] && continue
tftp -l $(basename $d) -r customer -p $IP
break
done
- Flash with the following commands:
cd /tmp
tftp -r xxx-preloader.bin -g x.x.x.x
tftp -r xxx-bl31-uboot.fip -g x.x.x.x
mtd write xxx-preloader.bin spi0.0
mtd write xxx-bl31-uboot.fip FIP
mtd erase ubi
- Set a static ip(192.168.1.254) for your PC.
And then reboot the router. It will run
initramfs image automatically.
- After openwrt boots up, perform sysupgrade
via web UI.
Reverting to the vendor firmware:
- Setup a tftp server on your PC with ip
address 192.168.1.254. And make sure
bl2.img, fip.bin, factory.bin and customer
are located in tftp root directory.
- Power off the router.
- Press and hold WPS key, then power on
the router.
- Release WPS key, when internet/wifi/wps
leds are blinking.
- Wait until internet/wifi/wps leds light
up, power off the router.
- Press and hold reset key, power up the
router, release reset key 15s later.
- Connect to http://192.168.1.1, now you
can upload vendor .bin firmware.
Uboot netconsole:
Uboot netconsole can be enabled by WPS
or reset key.
- Setup a linux PC with ip 192.168.1.254.
Open a new terminal and execute
'stty -isig -echo cbreak; nc -lup 6666'
- Press and hold WPS(or reset) key, then
power on the router.
- Release key once internet/wifi/wps leds
are all on.
NOTE: don't hold the key more than 5s
after internet/wifi/wps leds on, or it
will try to revert to vendor firmware.
- 5s later, uboot bootmenu will show on
the terminal.
Signed-off-by: Zhiwei Cao <bfdeh@126.com>
Link: https://github.com/openwrt/openwrt/pull/18631
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Reorder device names alphabetically and group together the same configs.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21052
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This function is defined but unused. There is no reason to keep it.
Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
Link: https://github.com/openwrt/openwrt/pull/21052
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Microchip EV23X71A is a LAN9696 based EVB.
Specifications:
* CPU: Microchip LAN9696 switch SoC
* DRAM: 1GB DDR4
* Storage:
* 2MB QSPI NOR
* 4GB eMMC
* Networking:
* 24 x 10/100/1000 RJ45 via LAN8814 Quad PHY-s over QSGMII
* 4 x 100/1000/2500/5000/10000 SFP+ ports
* 1 x 10/100/1000 management RJ45 via LAN8840 PHY over RGMII (U-Boot too)
* USB: 1 x USB2.0 Type-A
* Management via USB-C (MCP2200):
* UART @ 115200 baud
* GPIO-s for bootstrap, reset and clock selection
* DIP switch for boostrap configuration
* LED-s:
* 2 per networking port (Green and Yellow)
* Green status LED
* Yellow reset LED
* Hard reset button
* Power:
* 12V DC barrel jack
* 48/56V DC screw terminal
* Selectable via toggle switch
* PTP support:
* Sync-E DPLL ZL30732B to generate the board required clocks
* Two SMAs for PTP and two for Station clock inputs and outputs
* Two ITU-T G.8275-compliant RS-422 interfaces for PTP applications
* External PoE:
* Option for PoE add-on, like EV14Y36A (IEEE 802.3af/at/bt Type 4
standard com-pliant)
* Option for external CPU control via SPI and PCIe
Installation instructions:
1. Connect to UART via the USB-C port
2. Connect the management port
3. Boot and interrupt U-Boot
4. TFTP the OpenWrt initramfs image and boot it
5. SCP the OpenWrt eMMC GPT image to a running OpenWrt initramfs to /tmp
openwrt-microchipsw-lan969x-microchip_ev23x71a-squashfs-emmc-gpt.img.gz
And decompress it via:
gzip -d /tmp/openwrt-microchipsw-lan969x-microchip_ev23x71a-squashfs-emmc-gpt.img.gz
6. Wipe eMMC with:
dd if=/dev/zero of=/dev/mmcblk0 bs=1M
7. Flash OpenWrt eMMC image with:
dd if=/tmp/openwrt-microchipsw-lan969x-microchip_ev23x71a-squashfs-emmc-gpt.img
of=/dev/mmcblk0
After a restart OpenWrt will boot, and then regular sysupgrade can be used
for upgrades.
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
The Zyxel NWA210AX is a wall- and ceiling-mountable access point (AP).
Hardware specifications:
- SoC: Qualcomm IPQ8071A
- RAM: 1 GB (Samsung K4A8G165WC-BCTD)
- Flash: 8 MB (Winbond W25Q64DW), 256 MB (Winbond W29N02GZ)
- Ethernet: 1x 2.5 Gbps RJ45 port (QCA8081), 1x 1 Gbps RJ45 port (AR8033)
- WiFi: 2.4 GHz 802.11ax/b/g/n (QCN5024), 5 GHz 802.11 ac/ax/n (QCN5054)
- Power: DC 12V/PoE 802.3at
- Button: Reset
- LEDs: Multicolour red/green/blue/white via LP5562
Installation/flashing instructions:
1. In OEM web interface navigate to gear icon → System → SSH and enable SSH.
2. Log in via SSH (username/password are the same as for the web interface).
3. Run "debug dual-image show".
4. Verify that output is "Current Image num: 1".
5. If this is not the case (i.e. if the output is "Current Image num: 0"):
a. Either flash a fresh version of factory firmware, or
b. run "debug dual-image set boot-image image1" and then run "reboot".
6. Log in via SSH again and verify that output is "Current Image num: 1".
7. Rename "openwrt-qualcommax-ipq807x-zyxel_nwa210ax-squashfs-factory.bin" to
"openwrt.bin" to avoid upload errors in the OEM web interface.
8. Reopen OEM web interface, navigate to wrench icon → File Manager →
Firmware Package and upload the bin file. Once the upgrade process is
finished and OpenWrt has booted, the LED will light up green.
Switching between OpenWrt and OEM firmware:
- OpenWrt → Zyxel via ssh command "zyxel-bootconfig-ipq807x set image1".
- Zyxel → OpenWrt via ssh command "debug dual-image set boot-image image0".
This commit is based on the work of Pascal Beleiu <pascal@beleiu.de>:
93ca21f3 (qualcommax: ipq807x: add support for Zyxel NWA210AX, 2025-03-17)
Signed-off-by: Eric Schäfer <eric@es86.de>
Link: https://github.com/openwrt/openwrt/pull/19828
Signed-off-by: Robert Marko <robimarko@gmail.com>
Adds support for Turris MOX, a modular router extendable by board modules (MOX B-G).
You can explore the idea behind the modules at: https://mox-configurator.turris.cz/
More information about Turris MOX can be found here: https://docs.turris.cz/hw/mox/intro/
Also works with Turris Shield (Turris MOX A and C with a simplified OS UI).
Specifications:
-----------------------
MOX A
- SoC: Marvell Armada 3720
- RAM: 512/1024 MB, DDR3
- Memory:
- 8 MB SPI NOR Flash for U-Boot and rescue system
- SD card slot
- 1x RJ-45, 1Gbps
- 1x USB 3.0
- 1x activity LED
- 1x reset button
- SDIO header
- misc pin header (UART, GPIO, JTAG, ...)
MOX B, G
- 1x mPCIe slot
- 1x SIM slot
MOX C
- 4x RJ-45, 1Gbps
MOX D
- SFP, 2.5Gbps
MOX E
- 8x RJ-45, 1Gbps
MOX F
- 4x USB 3.0
Module support:
-----------------------
Additional packages are needed for some modules.
MOX A (core)
- works as is
MOX B, G (mPCIe, mPCIe passthrough)
- works as is
MOX C, E (4x, 8x RJ-45)
- kmod-dsa
- kmod-dsa-mv88e6xxx
MOX D (SFP)
- kmod-sfp
- kmod-phy-marvell-10g
MOX F (4x USB 3.0)
- works as is
Wi-Fi 5, 3x3 card (WLE900VX)
- kmod-ath10k
- ath10k-board-qca988x
- ath10k-firmware-qca988x
Wi-Fi 6, DBDC, 2x2 card (MT7915DAN)
- kmod-mt7915e
- kmod-mt7915-firmware
Interface naming:
-----------------------
- MOX A's RJ-45 is assigned to `eth0`.
- MOX C, E (4x, 8x RJ-45) are assigned to `lan<number>@eth1`
- If MOX D (SFP) is connected directly to MOX A, the resulting interface
is `eth1`. If it's connected through MOX E (8x RJ-45), the resulting
interface is `sfp@eth1`.
Quirks:
-----------------------
- MOX is sensitive to the order of connected modules. Verify that the
confguration is valid at: https://mox-configurator.turris.cz/
- `CONFIG_MOXTET` and `CONFIG_GPIO_MOXTET` need to be enabled in kernel
config. Moxtet is a bus protocol needed to discover and configure MOX
modules. It must be compiled into the kernel for the modules to work.
Though it's very small so it won't bloat up the kernel image.
Flashing instructions:
-----------------------
1. Download `openwrt-*-ext4-sdcard.img.gz` and `gunzip` it.
2. Insert an SD card and flash the image to it using dd:
dd if=openwrt-*-ext4-sdcard.img.gz of=/dev/mmcblk0 bs=4096 conv=fsync
3. Plug the SD card into MOX.
Troubleshooting:
-----------------------
- https://docs.turris.cz/hw/serial/#turris-mox
- https://docs.turris.cz/hw/mox/rescue-modes/
Signed-off-by: Tomáš Macholda <tomas.macholda@nic.cz>
Link: https://github.com/openwrt/openwrt/pull/20356
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Add ar9344_nec_aterm_fe profile for NEC Aterm WF1200HP and WF1200HP2
based on Atheros AR9344, but using internal FE switch instead of
external GbE switch.
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20611
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Add support for esmt F50L1G41LC flash chip. It is used in some recent
Cudy devices.
Link: https://github.com/openwrt/openwrt/pull/20962
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Since version 4.8.0, OPTEE handles correctly RTC clock configuration for
STM32MP15 based boards. So the patch can be dropped.
Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/20953
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Bump uboot-stm32 to upstream release 2025.10 and remove upstreamed patch.
Signed-off-by: Thomas Richard <thomas.richard@bootlin.com>
Link: https://github.com/openwrt/openwrt/pull/20953
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
The D-Link DNS-325 A1 is NAS with 2x HDD (3.5 inch) bays, 1x 10/100/1000Base-T port and 1x USB 2.0 port
Device specification:
SoC: Marvell 88F6281-A1 1.2 GHz
RAM: 256 MB (2xSEC K4T1G084QF-HCF7:128Mx8 @400 CL6)
Flash: 128 MB (SAMSUNG 946 K9F1G08U0B PCB0)
SATA: 2x internal SATA II drives
Ethernet: 1x Gigabit (Marvell 88E1116R-NNC1)
LED: 7x (white: Power, white/red: Right SATA Activity, USB Activity, Left SATA Activity)
Key: 3x (Power, Reset, USB Copy/Unmount)
Serial: 5 pin header (RXD,GAP,3.3V,GND,TXD), (115200,8,N,1), 3.3V TTL
USB ports: 1x USB 2.0
Flash instruction:
NOTE: this process uses a serial connection. It will upgrade the bootloader and reset the bootloader environment variables
USB flash stick setup
Format to FAT32 without mbr
Copy these files to USB flash stick: dlink_dns-325-a1-initramfs-uImage dlink_dns-325-a1-squashfs-factory.bin dlink_dns-325-a1-squashfs-sysupgrade.bin u-boot.kwb (from u-boot-dns325 directory)
NAS setup
Connect LAN cable between router and NAS device
Connetc USB flash stick to NAS device
Connect serial to NAS device
Boot from new u-boot and install it
$ kwboot -p -b u-boot.kwb -B115200 -t /dev/ttyUSB0
Power on NAS
After download copleted and booted NAS device with new u-boot stop in bootloader by pressing any key
=> usb start
=> fatload usb 0 0x1000000 /u-boot.kwb
=> nand erase.part u-boot
=> nand write 0x1000000 u-boot ${filesize}
=> reset
Update MAC address in u-boot env
Stop in bootloader by pressing any key
Get your MAC address from label on chassis
=> setenv ethaddr XX:XX:XX:XX:XX:XX
=> saveenv
Install OpenWrt by flashing factory image from u-boot
=> usb start
=> fatload usb 0 0x1000000 /dlink_dns-325-a1-squashfs-factory.bin
=> nand erase.part ubi
=> nand write 0x1000000 ubi ${filesize}
=> reset
Based-on: #9296
Signed-off-by: Konstantin Meshkov <skyline@mail.ru>
[ refresh uboot patches ]
Link: https://github.com/openwrt/openwrt/pull/17924
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
This board is also as known as LC-HX3001
Hardware specification:
SoC: MediaTek MT7981B 2x A53
Flash: Foresee F35SQA001G 128 MB SPI-NAND
RAM: 256MB DDR3
Ethernet: 4x 10/100/1000 Mbps
Switch: MediaTek MT7531AE
WiFi: MediaTek MT7976C
Button: Reset, Mesh
Power: DC 12V 1A
Gain SSH access:
Method 1:
1. Connect UART Adapter to the router
2. UART pins are enabled, set the root password with passwd command
start the dropbear instance on port 22
Method 2:
1. Login into web interface, and restore the router with SSH enabled configuration.
2. After reboot Default Web interface password will be 12345678
SSH password is empty
Flash instructions:
1. Connect to HX21, backup everything, especially 'Factory' part.
3. Write new FIP:
mtd write openwrt-mediatek-filogic-hx_21-bl31-uboot.fip FIP
4. Set static IP on your PC:
IP 192.168.1.254/24, GW 192.168.1.1
5. Serve OpenWrt initramfs image using TFTP server.
6. Wait for TFTP recovery to complete.
7. After OpenWrt has booted, perform sysupgrade.
8. To write new BL2
Install mtd-rw
opkg update && opkg install kmod-mtd-rw
insmod mtd-rw i_want_a_brick=1
mtd write openwrt-mediatek-filogic-imou_hx21-preloader.bin bl2
Signed-off-by: Jahidul Islam <hello@jahid.io>
Link: https://github.com/openwrt/openwrt/pull/20753
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
The generic-rk3568 does not reset the gmac phy, causing the kernel to
fail to initialize gmac during cold boot with the error message
"mdio_bus stmmac-1: MDIO device at address 1 is missing."
Adding a dedicated uboot for EasePi R1 to resolve this issue.
The EasePi R1's DTS hasn't been merged into the Linux release yet,
so it cannot be submitted to the upstream u-boot.
Fixes: ef093299db ("uboot-rockchip: add support for LinkEase EasePi R1")
Signed-off-by: Liangbin Lian <jjm2473@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20772
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Add support for the Radxa ROCK 2A/2F board.
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/20375
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Added USB boot support and eMMC r/w fixes for RK3528.
Refreshed upstreamed patches while at it.
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/20375
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Currently there's no usable mainline (open source) TF-A implementation
for rk3528 SoCs, so pack the prebuilt firmware from the vendor.
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/20375
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This pull request is based on
- the discussions in https://forum.openwrt.org/t/adding-openwrt-support-for-linksys-mr6350
- https://github.com/openwrt/openwrt/pull/11405 which added support for similar devices.
Device Specs:
- IPQ4019
- Quad Core CPU
- 256 MB RAM
- 256 MB FLASH
- 4 LAN ports, 1 WAN port
- 2.4GHz (802.11n) and 5GHz (802.11c) wifi
- 3 LEDs (Red, blue, green) which are routed to one indicator at the top of the case
- 2 buttons (Reset, WPS)
Disassembling the device:
- There are 4 screws at the bottom of the device which must be removed
- Two are under the fron rubber feets
- Two are under the labels in the back (corner next to the rear rubber feets)
Serial interface:
- The serial interface is already populated on the device with a 6-pin header
- Pin 1 is next to the heatsink
- Pinout: 1: 3.3V, 2: TX, 3: RX, 4: unknown, 5: GND, 6: GND
- Settings: 115200, 8N1
Migrating to OpenWrt requires multiple steps:
- Load and boot the initramfs image
- Adapt U-Boot settings to support bigger kernels
- Flash the sysupgrade image
Load and boot initramfs:
- Connect serial interface
- Set up a TFTP server on IP 192.168.1.254
- Copy openwrt-ipq40xx-generic-linksys_mr6350-initramfs-zImage.itb to TFTP server
- Rename file to C0A80101.img
- Boot up the device and stop in U-Boot
- Run the following U-Boot commands after a link has been established:
tftp
bootm
- Initramfs image is started now.
Adapt U-Boot settings to support bigger kernels:
- Run "fw_printenv" in the initramfs image after booting
- There should be an entry kernsize=300000 which indicates the maximum size for the kernel is 3MB
- Execute "fw_setenv kernsize 500000" to increase the max kernel size to 5MB
- Check that the change are applied with "fw_printenv"
Flash the sysupgrade image:
- Default sysupgrade routine either with a initramfs image containing LuCI or via command line.
Revert back to OEM firmware:
- Only tested with FW_MR6350_1.1.3.210129_prod.img
- Flash the OEM firmware via sysupgrade
- Forced update is required
Signed-off-by: Roland Reinl <reinlroland+github@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/17977
Signed-off-by: Robert Marko <robimarko@gmail.com>
This device has only half the flash and ram of the RBR20. It also has
two lan ports instead of wan and lan.
Hardware
--------
SOC: Qualcomm IPQ4019
FLASH: 128MB (Winbond W29N01HVSINF)
RAM: 256MB (Winbond W632GU6MB-12)
WIFI: Qualcomm IPQ4019
Qualcomm Atheros QCA9886
ETH: 2x LAN
LED: 5 (4 RGB at top, 1 RG at back)
BTN: WPS, Reset
UART: 115200 8N1 (dotted Pin = VCC) VCC-TX-RX-GND
MAC addresses
-------------
LAN Label MAC (stored in boarddata1 offset 0x0)
2.4G LAN
5GLow LAN + 3 (stored in boarddata1 offset 0xc)
5GUpper LAN + 2 (stored in boarddata1 offset 0x12)
Installation
------------
Either use the vendor ui upgrade method or nmrpflash to install the
factory image.
Signed-off-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20560
Signed-off-by: Robert Marko <robimarko@gmail.com>
This device shares a lot of similarities with the LBR20 - the RBR20 just
misses the LTE modem and its formfactor is alot smaller. Other than that
the LED configuration matches other RBR devices but the RBR20 has less
LEDs than its larger counterparts.
Hardware
--------
SOC: Qualcomm IPQ4019
FLASH: 256MB (Winbond W29N02GVSIAF)
RAM: 512MB (Nanya NT5CC256M16EP-EK)
WIFI: Qualcomm IPQ4019
Qualcomm Atheros QCA9886
ETH: 1x WAN, 1x LAN
LED: 5 (4 RGB at top, 1 RG at back)
BTN: WPS, Reset
UART: 115200 8N1 (dotted Pin = VCC) VCC-TX-RX-GND
MAC addresses
-------------
LAN Label MAC (stored in boarddata1 offset 0x0)
WAN LAN + 1 (stored in boarddata1 offset 0x6)
2.4G LAN
5GLow LAN + 3 (stored in boarddata1 offset 0xc)
5GUpper LAN + 2 (stored in boarddata1 offset 0x12)
Installation
------------
Either use the vendor ui upgrade method or nmrpflash to install the
factory image.
Signed-off-by: Christoph Krapp <achterin@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20560
Signed-off-by: Robert Marko <robimarko@gmail.com>
CMCC PZ-L8 is a 2.4/5 GHz band 11ax (Wi-Fi 6) router, based on IPQ5000.
Specifications:
- SoC : Qualcomm IPQ5000
- RAM : Integrated 256MiB DDR3L
- Flash : 128 MiB SPI-NAND (ESMT F50D1G41LB)
- WLAN : 2.4/5 GHz 2T2R
- 2.4 GHz : Qualcomm IPQ5000 (SoC)
- 5 GHz : Qualcomm Atheros QCN6102
- Ethernet : 4x 10/100/1000 Mbps
- switch : Qualcomm Atheros QCA8337
- LEDs/Keys (GPIO) : 2x LEDs, 2x Keys
- UART : Through-hole on PCB, 4pins in the middle of the black aluminum heat sink
- assignment : 3.3V, GND,TX, RX (from left to right)
- settings : 115200n8
- Power : 12 VDC, 1 A
Flashing Instructions:
1. SSH Method
(1) Enable SSH on the stock firmware
a. Version 501.8 and 501.9:
Log in to http://192.168.10.1 with the password on the sticker
Append "/admin/system/admin" to the URL and press Enter
Delete "Dropbear instance", click "Add instance", then "Save and Apply"
Reboot the router
b. Version 501.11 and 501.12:
While the router is running the stock firmware, press and hold the reset button for 20-30 seconds
Open http://192.168.10.1:56781 and login with username "root" and the password on the sticker
Run "vi /etc/config/dropbear" and delete the line "option enable '0'"
Reboot the router
(2) Upload the factory.ubi file to router's /tmp directory (using scp or wget)
and execute the following commands in the router's shell
export rootfs=$(cat /proc/mtd | grep rootfs | grep -v _ | cut -d: -f1)
ubidetach -f -p /dev/${rootfs}
ubiformat /dev/${rootfs} -y -f /tmp/factory.ubi
2. U-Boot Method using UBI Image
Place the factory.ubi file on your TFTP server, enter U-Boot CLI and exec these commands
tftpboot <your_tftp_server_ip>:factory.ubi
flash rootfs
reset
3. U-Boot Method using initramfs Image
(1) Place the openwrt-*-initramfs-fit-uImage.itb file on your TFTP server
and rename it to initramfs.bin
(2) Enable serial console, enter to U-Boot CLI and exec these commands
tftpboot <your_tftp_server_ip>:initramfs.bin
bootm
(3) Once boot completed, upload the sysupgrade.bin file to router's /tmp directory
(using scp or wget) and execute the following command in openwrt shell
sysupgrade -n /tmp/sysupgrade.bin
Switching to the Stock Firmware:
Please follow the commit 3b7d72bc2e
Partition Layout (Stock Firmware):
0x000000000000-0x000000080000 : "0:SBL1"
0x000000080000-0x000000100000 : "0:MIBIB"
0x000000100000-0x000000140000 : "0:BOOTCONFIG"
0x000000140000-0x000000180000 : "0:BOOTCONFIG1"
0x000000180000-0x000000280000 : "0:QSEE"
0x000000280000-0x000000380000 : "0:QSEE_1"
0x000000380000-0x0000003c0000 : "0:DEVCFG"
0x0000003c0000-0x000000400000 : "0:DEVCFG_1"
0x000000400000-0x000000440000 : "0:CDT"
0x000000440000-0x000000480000 : "0:CDT_1"
0x000000480000-0x000000500000 : "0:APPSBLENV"
0x000000500000-0x000000640000 : "0:APPSBL"
0x000000640000-0x000000780000 : "0:APPSBL_1"
0x000000780000-0x000000880000 : "0:ART"
0x000000880000-0x000000900000 : "0:TRAINING"
0x000000900000-0x000004300000 : "rootfs"
0x000004300000-0x000007d00000 : "rootfs_1"
Notes:
This device is almost the same as ELECOM WRC-X3000GS2, including partition layout and the dual-boot feature.
Known Issues:
- All Wi-Fi related peripherals are disabled in device tree, since 256 MiB RAM is too few for ath11k.
- This device has another version with nand flash FM25SL01, which is not supported at the moment.
https://github.com/immortalwrt/immortalwrt/blob/master/target/linux/mediatek/patches-6.12/342-mtd-spinand-Support-fmsh.patch
MAC Addresses:
Interface MAC Address Location (binary)
LAN A4:39:B6:xx:xx:9D (0:ART, 0x00-0x05)
WAN A4:39:B6:xx:xx:9E (0:ART, 0x06-0x0B)
2.4 GHz A4:39:B6:xx:xx:9F (0:ART, 0x0C-0x11)
5 GHz A4:39:B6:xx:xx:A0 (0:ART, 0x12-0x17)
Signed-off-by: Chang Liu <jssqliuchang@gmail.com>
Swig 4.3.0 has changed SWIG_Python_AppendOutput, which now requires an
additional parameter `is_void`. SWIG_AppendOutput remains unchanged.
This was fixed upstream in u-boot/u-boot@a63456b
```
scripts/dtc/pylibfdt/libfdt_wrap.c: In function ‘_wrap_fdt_next_node’:
scripts/dtc/pylibfdt/libfdt_wrap.c:5581:17: error: too few arguments to function ‘SWIG_Python_AppendOutput’
5581 | resultobj = SWIG_Python_AppendOutput(resultobj, val);
| ^~~~~~~~~~~~~~~~~~~~~~~~
```
This is the same fix as applied in 363e07d.
Fixes: #20619
Link: #20620
Signed-off-by: Trix Taiclet <trix@c3l.lu>
Link: https://github.com/openwrt/openwrt/pull/20620
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit adds support for TP-LINK BE450.
Device specification
--------------------
SoC Type: MediaTek MT7988D, Cortex-A73, 64-bit
RAM: 512MB
Flash: SPI NAND GigaDevice (128 MiB)
Ethernet: MediaTek MT7531AE (3 Ports) + 2.5GbE (internal MT7988 phy) + 10GbE (RTL8261N)
WLAN: MT7992
WLAN 2g: MediaTek MT7975N, b/g/n/ax/be, MIMO 4x4
WLAN 5g: MediaTek MT7979N, a/n/ac/ax/be, MIMO 4x4
LEDs: 8 LEDs, 1 status blue, 2x WIFI blue, 2x Internet
blue/orange, 1 LAN blue, 1 usb blue, 1 wps blue, gpio-controlled
Button: 2 (Reset, WPS)
USB port: Yes
Power: 12 VDC, 2 A
Connector: Barrel
Bootloader: Main U-Boot - U-Boot 2023.10-rc4. Additionally, ubi0
partition contain "seconduboot" (also U-Boot 2023.10-rc4)
Serial console (UART), unpopulated, located near the power connector
---------------------
heatsink
| |
| |
| | +----+-----+------+-------+ +-----------------+
| | | TX | RX | GND | +3.3V | | power connector |
+---+ +----+-----+------+-------+ +-----------------+
|
Don't connect ----+
Disassemble: rm the 2 screws at the bottom and the one at the backside.
un-clip the case starting at the edge above the LEDs.
Installation (UART)
-------------------
1. Place OpenWrt initramfs image on tftp server with IP 192.168.1.2
2. Attach UART, switch on the router and interrupt the boot process by
pressing 'Ctrl-C'
3. Load and run OpenWrt initramfs image:
tftpboot 0x50000000 openwrt-mediatek-filogic-tplink_be450-initramfs-kernel.bin && bootm 0x50000000
4. Run 'sysupgrade -n' with the sysupgrade OpenWrt image
Note: the 10GbE (RTL8261N) is only working if reverting this Realtek target specific commit:
b77fa45d12
The second ubi partition (ubi1) is empty and there is no known
dual-partition mechanism, neither in u-boot nor in the stock firmware.
NMBM is not used.
Not Working: WED, if activated, MT7992 isn't recognized any more.
Signed-off-by: Dirk Buchwalder <buchwalder@posteo.de>
Link: https://github.com/openwrt/openwrt/pull/20398
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
The BPi-R4 Lite uses the same defaults like all other BananaPi boards
to store the bootloader environment on the boot media.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
The BPi R4 Lite can boot from microSD, SPI-NAND, SPI-NOR and eMMC.
Build menu-driven U-Boot for each storage option.
Provide options for installation from microSD to SPI-NAND and SPI-NOR,
and from SPI-NAND to eMMC (similar to BPi-R3).
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Build the (upstream) configuration for the MT7987 reference board, and
enable support for DT-overlay application which will be necessary to
use the image for the MT7987 RFB generated in OpenWrt.
Adapt our downstream patches (generic reset button, rootdisk selection)
for MT7987 to prepare for real-world boards.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Build TF-A for the MediaTek MT7987 SoC family.
Add necessary downstream patches in preparation for the BananaPi R4 Lite,
which connects both flash chips to SPI2 and got broken MMC bus.
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Commits d205878ede and 46cf10771a relabeled the supported Zyxel devices
from v1/v2 to A1/B1, but board setup files were overlooked.
Fixes: d205878ede ("rtl838x: rename GS1900 series v1/v2 to A1/B1")
Fixes: 46cf10771a ("rtl839x: rename GS1900 series v1/v2 to A1/B1")
Signed-off-by: Stijn Segers <foss@volatilesystems.org>
Link: https://github.com/openwrt/openwrt/pull/20590
Signed-off-by: Robert Marko <robimarko@gmail.com>
AUTORELEASE has been deprecated from a long time. Drop it and hardcode
the release following the current one present in the downloads
repository.
Link: https://github.com/openwrt/openwrt/pull/20586
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
AUTORELEASE has been deprecated from a long time. Drop it and hardcode
the release following the current one present in the downloads
repository.
Link: https://github.com/openwrt/openwrt/pull/20586
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
Fixes the following error by backporting upstream update:
```
scripts/dtc/pylibfdt/libfdt_wrap.c: In function ‘_wrap_fdt_next_node’:
scripts/dtc/pylibfdt/libfdt_wrap.c:5581:17: error: too few arguments to function ‘SWIG_Python_AppendOutput’
5581 | resultobj = SWIG_Python_AppendOutput(resultobj, val);
| ^~~~~~~~~~~~~~~~~~~~~~~~
```
This is the same fix as applied in 4e68103c4e ("uboot-rockchip: fix build with swig 4.3.0")
Link: https://github.com/openwrt/openwrt/pull/20538
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This board is also as known as E-Life ETR631-T/ETR635-U.
Hardware specification:
SoC: MediaTek MT7981B 2x A53
Flash: 128 MB SPI-NAND
RAM: 256MB DDR3
Ethernet: 4x 10/100/1000 Mbps
Switch: MediaTek MT7531AE
WiFi: MediaTek MT7976C
Button: Reset, Mesh
Power: DC 12V 1A
Gain telnet access:
1. Login into web interface, and download the configuration.
2. Uncompress the configuration:
* Enter fakeroot if you are not login as root.
tar -zxf <filename>.tar.gz
3. Edit 'etc/passwd', remove root password: 'root::1:0:99999:7:::'.
4. Edit 'etc/rc.local', insert telnetd command before 'exit 0':
( sleep 3s; telnetd; ) &
5. Repack the configuration:
tar -zcf backup.tar.gz etc/
6. Upload new configuration via web interface, now you can connect to
KOMI A31 via telnet.
Flash instructions:
1. Connect to KOMI A31, backup everything, especially 'Factory' part.
2. Write new BL2:
mtd write openwrt-mediatek-filogic-konka_komi-a31-preloader.bin BL2
3. Write new FIP:
mtd write openwrt-mediatek-filogic-konka_komi-a31-bl31-uboot.fip FIP
4. Set static IP on your PC:
IP 192.168.1.254/24, GW 192.168.1.1
5. Serve OpenWrt initramfs image using TFTP server.
6. Cut off the power and re-engage, wait for TFTP recovery to complete.
7. After OpenWrt has booted, perform sysupgrade.
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/20357
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Remove earlyprintk from bootargs for arm64 boards.
This option is only valid for arm:
```
Unknown kernel command line parameters "earlyprintk",
will be passed to user space.
```
Signed-off-by: Chukun Pan <amadeus@jmu.edu.cn>
Link: https://github.com/openwrt/openwrt/pull/20140
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Update the version of uboot-ath79 package to U-Boot v2025.10 release.
Tested on:
- NEC Aterm WG600HP (AR9344)
- NEC Aterm WG1400HP (QCA9558)
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/20358
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This was removed by mistake.
Fixes: 292cca0e5c ("uboot-rockchip: Update to 2025.10")
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
Link: https://github.com/openwrt/openwrt/pull/20376
Signed-off-by: Nick Hainke <vincent@systemli.org>