2
0
forked from Ivasoft/openwrt

qoriq: add support for WatchGuard Firebox M300

This device is based on NXP's QorIQ T2081QDS board, with a quad-core
dual-threaded 1.5 GHz ppc64 CPU and 4GB ECC RAM. The board has 5
ethernet interfaces, of which 3 are connected to the ethernet ports on
the front panel. The other 2 are internally connected to a Marvell
88E6171 switch; the other 5 ports of this switch are also connected to
the ethernet ports on the front panel.

Installation: write the sdcard image to an SD card. Stock U-Boot will
not boot, wait for it to fail then run these commands:

setenv OpenWrt_fdt image-watchguard-firebox-m300.dtb
setenv OpenWrt_kernel watchguard_firebox-m300-kernel.bin
setenv wgBootSysA 'setenv bootargs root=/dev/mmcblk0p2 rw rootdelay=2 console=$consoledev,$baudrate fsl_dpaa_fman.fsl_fm_max_frm=1530; ext2load mmc 0:1 $fdtaddr $OpenWrt_fdt; ext2load mmc 0:1 $loadaddr $OpenWrt_kernel; bootm $loadaddr - $fdtaddr'
saveenv
reset

The default U-Boot boot entry will now boot OpenWrt from the SD card.

Signed-off-by: Stijn Tintel <stijn@linux-ipv6.be>
Acked-by: Rui Salvaterra <rsalvaterra@gmail.com>
This commit is contained in:
Stijn Tintel
2021-08-07 02:41:11 +03:00
parent 080a769b4d
commit 3fda16078b
6 changed files with 450 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
# SPDX-License-Identifier: GPL-2.0-or-later
. /lib/functions/uci-defaults.sh
. /lib/functions.sh
. /lib/functions/system.sh
board_config_update
board=$(board_name)
wg_set_opt_interface() {
local device="$1"
local offset="$2"
ucidef_set_interface "$device" device "$device" protocol static ipaddr "10.0.${offset}.1" netmask 255.255.255.0
}
case "$board" in
watchguard,firebox-m300)
ucidef_set_interfaces_lan_wan "eth1" "eth0"
wg_set_opt_interface "eth2" "2"
sweth_mac_offset=0x186d
for sweth in /sys/class/net/sweth*; do
device="$(basename "$sweth")"
mac="$(mtd_get_mac_text wg_cfg0 "$sweth_mac_offset")"
switchports="$switchports $device"
ucidef_set_network_device_mac "$device" "$mac"
wg_set_opt_interface "$device" "${device#sweth}"
sweth_mac_offset=$(printf "0x%X\n" $(( $sweth_mac_offset + 0x14)))
done
;;
esac
board_config_flush
exit 0