openwrt/target/linux
Shine 4e5e8b95a6
mpc85xx: add support for Watchguard Firebox T10-W, T15(-W)
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)
2025-12-11 00:57:55 +01:00
..
airoha generic: move reserved_mem backports patch to generic 2025-12-08 00:37:05 +01:00
apm821xx kernel: disable non layout u-boot,env 2025-11-28 01:20:33 +01:00
armsr kernel: drop CONFIG_ARM64_CONTPTE from target configs 2025-11-26 21:08:34 +02:00
at91 treewide: fix coccinelle checks 2025-12-02 23:32:42 +01:00
ath79 ath79: meraki_mr1[26]: userspace cal to nvmem 2025-12-09 01:21:03 +01:00
bcm27xx kernel: bump 6.12 to 6.12.59 2025-11-25 00:01:11 +01:00
bcm47xx bcm47xx: Fix lzma-loader compilation 2025-12-04 21:41:40 +01:00
bcm53xx bcm53xx: image: sync targets names with DT compatible 2025-12-06 18:55:49 +01:00
bcm4908 kernel: disable non layout u-boot,env 2025-11-28 01:20:33 +01:00
bmips bmips: b53: enable bcm63268 internal PHYs 2025-12-09 15:12:43 +01:00
d1 kernel: remove duplicate PREEMPT settings 2025-06-08 15:59:55 +02:00
econet econet: fix wrong board name for Zyxel PMG5617GA 2025-12-08 17:30:27 +01:00
gemini gemini: Add module for VSC73xx switches 2025-09-15 23:12:56 +02:00
generic Revert "generic: add pending patch fixing resource_size()" 2025-12-08 21:43:36 +01:00
imx imx: drop support for kernel 6.6 2025-11-22 10:11:52 +01:00
ipq40xx ipq40xx: dts: remove useless ethernet0 alias for WIA3300-20 2025-12-01 00:46:33 +01:00
ipq806x Revert "treewide: fixup ath10k nodes" 2025-11-29 17:56:11 +01:00
ixp4xx ixp4xx: Add back Actiontec MI424WR A/C/D 2025-09-26 23:40:40 +02:00
kirkwood kirkwood: add aliases and new partition for support D-Link DNS-325 A1 2025-11-25 15:41:38 +01:00
lantiq lantiq: tplink_tdw89x0: use led-sources for wifi LED 2025-12-06 19:30:22 +01:00
layerscape kernel: drop CONFIG_ARM64_CONTPTE from target configs 2025-11-26 21:08:34 +02:00
loongarch64 loongarch64: Disable strict alignment to fix BPF program failures 2025-12-10 19:10:30 +01:00
malta malta: drop 6.6 support 2025-07-20 23:37:37 +02:00
mediatek mediatek: filogic: add support Netcore NX30V2/N30PRO/POWER30AX/W7/GW3001 2025-12-09 01:29:39 +01:00
microchipsw microchipsw: lan969x: add Microchip EV23X71A 2025-12-03 12:13:17 +01:00
mpc85xx mpc85xx: add support for Watchguard Firebox T10-W, T15(-W) 2025-12-11 00:57:55 +01:00
mvebu treewide: Fix const compile errors 2025-12-03 23:28:43 +01:00
mxs mxs: drop 6.6 support 2025-05-24 16:15:53 +02:00
octeon treewide: replace numbers with GPIO_ACTIVE 2025-10-08 14:26:24 +02:00
omap omap: drop support for kernel 6.6 2025-11-22 10:16:35 +01:00
pistachio kernel: remove uboot,env hack 2025-11-30 20:18:08 +01:00
qoriq qoriq: drop support for kernel 6.6 2025-11-26 17:21:14 +02:00
qualcommax qualcommax: ipq50xx: fix qca8337 dtc warnings 2025-12-07 11:25:40 +01:00
qualcommbe qualcommbe: update ipq9574 PCS driver 2025-11-30 16:51:12 +01:00
ramips ramips: mt7621.mk: fix alphabetical ordering some Cudy devices 2025-12-09 00:31:07 +01:00
realtek realtek: dsa,phy: rtl838x: remove 'SerDes as PHY' leftovers 2025-12-09 00:28:44 +01:00
rockchip rockchip: drop sdmmc speed limitation for RK3576/RK3588 2025-12-06 00:56:32 +01:00
sifiveu kernel: remove duplicate PREEMPT settings 2025-06-08 15:59:55 +02:00
siflower siflower: sf21 device tree fix 2025-11-28 09:47:39 +01:00
starfive kernel: bump 6.12 to 6.12.58 2025-11-20 21:30:26 +01:00
stm32 stm32: drop kernel 6.6 support 2025-10-22 14:56:15 +02:00
sunxi sunxi: cortexa53: refresh kernel config 2025-10-20 00:48:11 +02:00
tegra tegra: promote kernel 6.12 as default 2025-11-11 21:23:14 +01:00
uml kernel: bump 6.12 to 6.12.33 2025-06-12 12:42:15 +02:00
x86 kernel: bump 6.12 to 6.12.60 2025-12-02 22:51:19 +01:00
zynq zynq: drop support for kernel 6.6 2025-11-25 17:27:24 +01:00
Makefile linux: fix missing default packages in profiles.json 2024-11-17 19:29:06 +01:00