From 34c875cf8bda8b34274880afba0c91089f1ca489 Mon Sep 17 00:00:00 2001 From: INAGAKI Hiroshi Date: Wed, 8 Mar 2023 21:54:14 +0900 Subject: [PATCH] mvebu: add support for Fortinet FortiWiFi 51E Fortinet FortiWiFi 51E (FWF-51E) is a UTM with 1x WLAN and 1x SSD, based on Armada 385 (88F6820). Specification: - SoC : Marvell Armada 385 88F6820 - RAM : DDR3 2 GiB (4x Micron MT41K512M8DA-107, "D9SGQ") - Flash : SPI-NOR 128 MiB (Macronix MX66L1G45GMI-10G) - SSD : mSATA SSD 32 GB (A-DATA XM21E (AXM21ES3-32GM-B)) - mode : SATA III 6Gbps - power : 3.3 VDC, 3.1 W (Max.) - Ethernet : 7x 10/100/1000 Mbps - LAN 1-5 : Marvell 88E6176 - WAN 1, 2 : Marvell 88E1512 (2x) - WLAN : Fortinet EMP7618-FT (Atheros AR9382 (2T2R)) - interface : MiniPCIe - LEDs/Keys : 18x/1x - UART : "CONSOLE" port (RJ-45, RS-232C level) - port : ttyS0 - settings : 9600bps 8n1 - assignment : 1:NC , 2:NC , 3:TXD, 4:GND, 5:GND, 6:RXD, 7:NC , 8:NC - note : compatible with Cisco console cable - HW Monitoring: nuvoTon NCT7802Y - Power : 12 VDC, 2 A - plug : Molex 5557-02R Flash instruction using initramfs image: 1. Power on FWF-51E and interrupt to show bootmenu 2. Call "[I]: System information." -> "[S]: Set serial port baudrate." and set baudrate to 9600 bps 3. Call "[R]: Review TFTP parameters.", check TFTP parameters and connect computer to "Image download port" in the parameters 4. Prepare TFTP server with the parameters obtained above 5. Rename OpenWrt initramfs image to "image.out" and put to TFTP directory 6. Call "[T]: Initiate TFTP firmware transfer." to download initramfs image from TFTP server 7. Type "R" key when the following message is showed, to boot initramfs image without flashing to spi-nor flash "Save as Default firmware/Backup firmware/Run image without saving:[D/B/R]?" 8. On initramfs image, backup mtd if needed minimum: - "firmware-info" - "kernel" - "rootfs" 9. On initramfs image, upload sysupgrade image to the device and perform sysupgrade 10. Wait ~200 seconds to complete flashing and rebooting. If the device is booted with stock firmware, login to bootmenu and call "[B]: Boot with backup firmware and set as default." to set the first OS image as default and boot it. Notes: - Both colors of Bi-color LEDs on the front panel cannot be turned on at the same time. - "PWR" and "Logo" LEDs are connected to power source directly. - The following partitions are added for OpenWrt. These partitions are contained in "uboot" partition (0x0-0x1fffff) on stock firmware. - "firmware-info" - "dtb" - "u-boot-env" - "board-info" Image header for bootmenu tftp: 0x0 - 0xf : ? 0x10 - 0x2f : Image Name 0x30 - 0x17f: ? 0x180 - 0x183: Kernel Offset* 0x184 - 0x187: Kernel Length* 0x188 - 0x18b: RootFS Offset (ext2)* 0x18c - 0x18f: RootFS Length (ext2)* 0x190 - 0x193: DTB Offset 0x194 - 0x197: DTB Length 0x198 - 0x19b: Data Offset (jffs2) 0x19c - 0x19f: Data Length (jffs2) 0x1a0 - 0x1ff: ? *: required for initramfs image MAC addresses: (eth0): 90:6C:AC:xx:xx:98 (board-info (OpenWrt), 0xd880 (hex)) WAN 1 : 90:6C:AC:xx:xx:99 WAN 2 : 90:6C:AC:xx:xx:9A LAN 1 : 90:6C:AC:xx:xx:9B LAN 2 : 90:6C:AC:xx:xx:9C LAN 3 : 90:6C:AC:xx:xx:9D LAN 4 : 90:6C:AC:xx:xx:9E LAN 5 : 90:6C:AC:xx:xx:9F WLAN : 88:DC:96:xx:xx:xx (MiniPCIe Card) Signed-off-by: INAGAKI Hiroshi Tested-by: Raylynn Knight --- .../base-files/etc/board.d/02_network | 3 ++- .../base-files/lib/upgrade/platform.sh | 3 ++- .../marvell/armada-385-fortinet-fwf-51e.dts | 20 +++++++++++++++++++ target/linux/mvebu/image/cortexa9.mk | 10 ++++++++++ 4 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 target/linux/mvebu/files-6.6/arch/arm/boot/dts/marvell/armada-385-fortinet-fwf-51e.dts diff --git a/target/linux/mvebu/cortexa9/base-files/etc/board.d/02_network b/target/linux/mvebu/cortexa9/base-files/etc/board.d/02_network index 890c149d30..680af1ce67 100644 --- a/target/linux/mvebu/cortexa9/base-files/etc/board.d/02_network +++ b/target/linux/mvebu/cortexa9/base-files/etc/board.d/02_network @@ -31,7 +31,8 @@ mvebu_setup_interfaces() fortinet,fg-50e|\ fortinet,fg-51e|\ fortinet,fg-52e|\ - fortinet,fwf-50e-2r) + fortinet,fwf-50e-2r|\ + fortinet,fwf-51e) ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4 lan5" "eth1 eth2" ;; iij,sa-w2) diff --git a/target/linux/mvebu/cortexa9/base-files/lib/upgrade/platform.sh b/target/linux/mvebu/cortexa9/base-files/lib/upgrade/platform.sh index 639f08cef6..a15823d8c6 100755 --- a/target/linux/mvebu/cortexa9/base-files/lib/upgrade/platform.sh +++ b/target/linux/mvebu/cortexa9/base-files/lib/upgrade/platform.sh @@ -56,7 +56,8 @@ platform_do_upgrade() { fortinet,fg-50e|\ fortinet,fg-51e|\ fortinet,fg-52e|\ - fortinet,fwf-50e-2r) + fortinet,fwf-50e-2r|\ + fortinet,fwf-51e) fortinet_do_upgrade "$1" ;; iij,sa-w2) diff --git a/target/linux/mvebu/files-6.6/arch/arm/boot/dts/marvell/armada-385-fortinet-fwf-51e.dts b/target/linux/mvebu/files-6.6/arch/arm/boot/dts/marvell/armada-385-fortinet-fwf-51e.dts new file mode 100644 index 0000000000..d9ebd9f815 --- /dev/null +++ b/target/linux/mvebu/files-6.6/arch/arm/boot/dts/marvell/armada-385-fortinet-fwf-51e.dts @@ -0,0 +1,20 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "armada-385-fortinet-fg-5xe.dtsi" + +/ { + model = "Fortinet FortiWiFi 51E"; + compatible = "fortinet,fwf-51e", "marvell,armada385", "marvell,armada380"; +}; + +&ahci0 { + status = "okay"; +}; + +&pciec { + status = "okay"; +}; + +&pcie2 { + status = "okay"; +}; diff --git a/target/linux/mvebu/image/cortexa9.mk b/target/linux/mvebu/image/cortexa9.mk index 5cefdb846a..b3b8960a32 100644 --- a/target/linux/mvebu/image/cortexa9.mk +++ b/target/linux/mvebu/image/cortexa9.mk @@ -171,6 +171,16 @@ define Device/fortinet_fwf-50e-2r endef TARGET_DEVICES += fortinet_fwf-50e-2r +define Device/fortinet_fwf-51e + $(Device/fortinet) + DEVICE_MODEL := FortiWiFi 51E + DEVICE_DTS := armada-385-fortinet-fwf-51e + KERNEL_INITRAMFS := kernel-bin | append-dtb | fortigate-header | \ + gzip-filename FWF51E + DEVICE_PACKAGES += kmod-ath9k wpad-basic-mbedtls +endef +TARGET_DEVICES += fortinet_fwf-51e + define Device/globalscale_mirabox $(Device/NAND-512K) DEVICE_VENDOR := Globalscale -- 2.30.2