mvebu: add support for WRT32X (venom)
Linksys WRT32X (Venom) is identical in hardware to the WRT3200ACM with a different flash layout and boots zImage rather than uImage. Specification: - Marvell Armada 385 88F6820 (2x 1.8GHz) - 256MB of Flash - 512MB of RAM - 2.4GHz (bgn) and 5GHz (an+ac wave 2) - 4x 1Gbps LAN + 1x 1Gbps WAN - 1x USB 3.0 and 1x USB 2.0/eSATA (combo port) Flash instruction: Apply factory image via web-gui. Signed-off-by: Michael Gray <michael.gray@lantisproject.com>
This commit is contained in:
		
				
					committed by
					
						
						John Crispin
					
				
			
			
				
	
			
			
			
						parent
						
							e1a9485b0e
						
					
				
				
					commit
					bfbdeeb3de
				
			@@ -19,7 +19,8 @@ armada-385-linksys-cobra|\
 | 
			
		||||
armada-385-linksys-shelby)
 | 
			
		||||
	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x40000"
 | 
			
		||||
	;;
 | 
			
		||||
armada-385-linksys-rango)
 | 
			
		||||
armada-385-linksys-rango|\
 | 
			
		||||
armada-385-linksys-venom)
 | 
			
		||||
	ubootenv_add_uci_config "/dev/mtd1" "0x0" "0x20000" "0x20000"
 | 
			
		||||
	;;
 | 
			
		||||
armada-385-turris-omnia)
 | 
			
		||||
 
 | 
			
		||||
@@ -35,6 +35,12 @@ armada-385-linksys-shelby)
 | 
			
		||||
	ucidef_set_led_usbport "usb2" "USB 2" "pca963x:shelby:white:usb3_1" "usb2-port1" "usb3-port1"
 | 
			
		||||
	ucidef_set_led_usbport "usb2_ss" "USB 2 SS" "pca963x:shelby:white:usb3_2" "usb3-port1"
 | 
			
		||||
	;;
 | 
			
		||||
armada-385-linksys-venom)
 | 
			
		||||
	ucidef_set_led_netdev "wan" "WAN" "pca963x:venom:blue:wan" "eth1"
 | 
			
		||||
	ucidef_set_led_usbport "usb1" "USB 1" "pca963x:venom:blue:usb2" "usb1-port1"
 | 
			
		||||
	ucidef_set_led_usbport "usb2" "USB 2" "pca963x:venom:blue:usb3_1" "usb2-port1" "usb3-port1"
 | 
			
		||||
	ucidef_set_led_usbport "usb2_ss" "USB 2 SS" "pca963x:venom:blue:usb3_2" "usb3-port1"
 | 
			
		||||
	;;
 | 
			
		||||
armada-xp-linksys-mamba)
 | 
			
		||||
	ucidef_set_led_netdev "wan" "WAN" "mamba:white:wan" "eth1"
 | 
			
		||||
	ucidef_set_led_usbport "usb1" "USB 1" "mamba:white:usb2" "usb1-port1"
 | 
			
		||||
 
 | 
			
		||||
@@ -18,6 +18,7 @@ armada-385-linksys-caiman|\
 | 
			
		||||
armada-385-linksys-cobra|\
 | 
			
		||||
armada-385-linksys-rango|\
 | 
			
		||||
armada-385-linksys-shelby|\
 | 
			
		||||
armada-385-linksys-venom|\
 | 
			
		||||
armada-xp-linksys-mamba)
 | 
			
		||||
	ucidef_set_interfaces_lan_wan "eth0.1" "eth1.2"
 | 
			
		||||
	ucidef_add_switch "switch0" \
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +19,9 @@ get_status_led() {
 | 
			
		||||
	armada-385-linksys-shelby)
 | 
			
		||||
		status_led="shelby:white:power"
 | 
			
		||||
		;;
 | 
			
		||||
	armada-385-linksys-venom)
 | 
			
		||||
		status_led="venom:blue:power"
 | 
			
		||||
		;;
 | 
			
		||||
	armada-xp-linksys-mamba)
 | 
			
		||||
		status_led="mamba:white:power"
 | 
			
		||||
		;;
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ boot() {
 | 
			
		||||
. /lib/functions.sh
 | 
			
		||||
 | 
			
		||||
case $(board_name) in
 | 
			
		||||
	armada-385-linksys-caiman|armada-385-linksys-cobra|armada-385-linksys-rango|armada-385-linksys-shelby|armada-xp-linksys-mamba)
 | 
			
		||||
	armada-385-linksys-caiman|armada-385-linksys-cobra|armada-385-linksys-rango|armada-385-linksys-shelby|armada-385-linksys-venom|armada-xp-linksys-mamba)
 | 
			
		||||
		# make sure auto_recovery in uboot is always on
 | 
			
		||||
		AUTO_RECOVERY_ENA="`fw_printenv -n auto_recovery`"
 | 
			
		||||
		if [ "$AUTO_RECOVERY_ENA" != "yes" ] ; then
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@
 | 
			
		||||
board=$(board_name)
 | 
			
		||||
 | 
			
		||||
case "$board" in
 | 
			
		||||
armada-385-linksys-caiman|armada-385-linksys-cobra|armada-385-linksys-shelby|armada-xp-linksys-mamba)
 | 
			
		||||
armada-385-linksys-caiman|armada-385-linksys-cobra|armada-385-linksys-shelby|armada-385-linksys-venom|armada-xp-linksys-mamba)
 | 
			
		||||
	SKU=$(strings /dev/mtd3|sed -ne 's/^cert_region=//p')
 | 
			
		||||
	WIFIMAC2G=$(macaddr_add $(cat /sys/class/net/eth0/address) +1)
 | 
			
		||||
	WIFIMAC5G=$(macaddr_add $WIFIMAC2G +1)
 | 
			
		||||
 
 | 
			
		||||
@@ -53,6 +53,9 @@ mvebu_board_detect() {
 | 
			
		||||
	*"Linksys WRT3200ACM")
 | 
			
		||||
		name="armada-385-linksys-rango"
 | 
			
		||||
		;;
 | 
			
		||||
	*"Linksys WRT32X")
 | 
			
		||||
		name="armada-385-linksys-venom"
 | 
			
		||||
		;;
 | 
			
		||||
	*"Marvell Armada 385 Access Point Development Board")
 | 
			
		||||
		name="armada-385-db-ap"
 | 
			
		||||
		;;
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@ preinit_set_mac_address() {
 | 
			
		||||
		ip link set dev eth0 address $mac 2>/dev/null
 | 
			
		||||
		ip link set dev eth1 address $mac 2>/dev/null
 | 
			
		||||
		;;
 | 
			
		||||
	armada-385-linksys-caiman|armada-385-linksys-cobra|armada-385-linksys-rango|armada-385-linksys-shelby)
 | 
			
		||||
	armada-385-linksys-caiman|armada-385-linksys-cobra|armada-385-linksys-rango|armada-385-linksys-shelby|armada-385-linksys-venom)
 | 
			
		||||
		# rename interfaces back to the way they were with 4.4
 | 
			
		||||
		case "$(readlink /sys/class/net/eth0)" in
 | 
			
		||||
			*f1070000*)
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@ preinit_mount_syscfg() {
 | 
			
		||||
	. /lib/functions.sh
 | 
			
		||||
 | 
			
		||||
	case $(board_name) in
 | 
			
		||||
	armada-385-linksys-caiman|armada-385-linksys-cobra|armada-385-linksys-rango|armada-385-linksys-shelby|armada-xp-linksys-mamba)
 | 
			
		||||
	armada-385-linksys-caiman|armada-385-linksys-cobra|armada-385-linksys-rango|armada-385-linksys-shelby|armada-385-linksys-venom|armada-xp-linksys-mamba)
 | 
			
		||||
		needs_recovery=0
 | 
			
		||||
		syscfg_part=$(grep syscfg /proc/mtd |cut -c4)
 | 
			
		||||
		ubiattach -m $syscfg_part || needs_recovery=1
 | 
			
		||||
 
 | 
			
		||||
@@ -55,7 +55,7 @@ platform_do_upgrade_linksys() {
 | 
			
		||||
 | 
			
		||||
		nand_upgrade_tar "$1"
 | 
			
		||||
	}
 | 
			
		||||
	[ "$magic_long" = "27051956" ] && {
 | 
			
		||||
	[ "$magic_long" = "27051956" -o "$magic_long" = "0000a0e1" ] && {
 | 
			
		||||
		# check firmwares' rootfs types
 | 
			
		||||
		local target_mtd=$(find_mtd_part $part_label)
 | 
			
		||||
		local oldroot="$(linksys_get_root_magic $target_mtd)"
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,7 @@ platform_check_image() {
 | 
			
		||||
 | 
			
		||||
platform_do_upgrade() {
 | 
			
		||||
	case "$(board_name)" in
 | 
			
		||||
	armada-385-linksys-caiman|armada-385-linksys-cobra|armada-385-linksys-rango|armada-385-linksys-shelby|armada-xp-linksys-mamba)
 | 
			
		||||
	armada-385-linksys-caiman|armada-385-linksys-cobra|armada-385-linksys-rango|armada-385-linksys-shelby|armada-385-linksys-venom|armada-xp-linksys-mamba)
 | 
			
		||||
		platform_do_upgrade_linksys "$ARGV"
 | 
			
		||||
		;;
 | 
			
		||||
	armada-385-turris-omnia|armada-388-clearfog-base|armada-388-clearfog-pro|globalscale,espressobin|marvell,armada8040-mcbin)
 | 
			
		||||
@@ -26,7 +26,7 @@ platform_do_upgrade() {
 | 
			
		||||
}
 | 
			
		||||
platform_copy_config() {
 | 
			
		||||
	case "$(board_name)" in
 | 
			
		||||
	armada-385-linksys-caiman|armada-385-linksys-cobra|armada-385-linksys-rango|armada-385-linksys-shelby|armada-xp-linksys-mamba)
 | 
			
		||||
	armada-385-linksys-caiman|armada-385-linksys-cobra|armada-385-linksys-rango|armada-385-linksys-shelby|armada-385-linksys-venom|armada-xp-linksys-mamba)
 | 
			
		||||
		platform_copy_config_linksys
 | 
			
		||||
		;;
 | 
			
		||||
	armada-385-turris-omnia|armada-388-clearfog-base|armada-388-clearfog-pro|globalscale,espressobin|marvell,armada8040-mcbin)
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,201 @@
 | 
			
		||||
/*
 | 
			
		||||
 * Device Tree file for the Linksys WRT32X (Venom)
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (C) 2017 Imre Kaloz <kaloz@openwrt.org>
 | 
			
		||||
 *
 | 
			
		||||
 *
 | 
			
		||||
 * This file is dual-licensed: you can use it either under the terms
 | 
			
		||||
 * of the GPL or the X11 license, at your option. Note that this dual
 | 
			
		||||
 * licensing only applies to this file, and not this project as a
 | 
			
		||||
 * whole.
 | 
			
		||||
 *
 | 
			
		||||
 *  a) This file is licensed under the terms of the GNU General Public
 | 
			
		||||
 *     License version 2.  This program is licensed "as is" without
 | 
			
		||||
 *     any warranty of any kind, whether express or implied.
 | 
			
		||||
 *
 | 
			
		||||
 * Or, alternatively,
 | 
			
		||||
 *
 | 
			
		||||
 *  b) Permission is hereby granted, free of charge, to any person
 | 
			
		||||
 *     obtaining a copy of this software and associated documentation
 | 
			
		||||
 *     files (the "Software"), to deal in the Software without
 | 
			
		||||
 *     restriction, including without limitation the rights to use,
 | 
			
		||||
 *     copy, modify, merge, publish, distribute, sublicense, and/or
 | 
			
		||||
 *     sell copies of the Software, and to permit persons to whom the
 | 
			
		||||
 *     Software is furnished to do so, subject to the following
 | 
			
		||||
 *     conditions:
 | 
			
		||||
 *
 | 
			
		||||
 *     The above copyright notice and this permission notice shall be
 | 
			
		||||
 *     included in all copies or substantial portions of the Software.
 | 
			
		||||
 *
 | 
			
		||||
 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 | 
			
		||||
 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 | 
			
		||||
 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 | 
			
		||||
 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 | 
			
		||||
 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 | 
			
		||||
 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 | 
			
		||||
 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 | 
			
		||||
 *     OTHER DEALINGS IN THE SOFTWARE.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/dts-v1/;
 | 
			
		||||
#include <dt-bindings/gpio/gpio.h>
 | 
			
		||||
#include <dt-bindings/input/input.h>
 | 
			
		||||
#include "armada-385-linksys.dtsi"
 | 
			
		||||
 | 
			
		||||
/ {
 | 
			
		||||
	model = "Linksys WRT32X";
 | 
			
		||||
	compatible = "linksys,venom", "linksys,armada385", "marvell,armada385",
 | 
			
		||||
		     "marvell,armada380";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	&expander0 {
 | 
			
		||||
			wan_amber@0 {
 | 
			
		||||
				label = "venom:amber:wan";
 | 
			
		||||
				reg = <0x0>;
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			wan_blue@1 {
 | 
			
		||||
				label = "venom:blue:wan";
 | 
			
		||||
				reg = <0x1>;
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			usb2@5 {
 | 
			
		||||
				label = "venom:blue:usb2";
 | 
			
		||||
				reg = <0x5>;
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			usb3_1@6 {
 | 
			
		||||
				label = "venom:blue:usb3_1";
 | 
			
		||||
				reg = <0x6>;
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			usb3_2@7 {
 | 
			
		||||
				label = "venom:blue:usb3_2";
 | 
			
		||||
				reg = <0x7>;
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			wps_blue@8 {
 | 
			
		||||
				label = "venom:blue:wps";
 | 
			
		||||
				reg = <0x8>;
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			wps_amber@9 {
 | 
			
		||||
				label = "venom:amber:wps";
 | 
			
		||||
				reg = <0x9>;
 | 
			
		||||
			};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	&gpio_leds {
 | 
			
		||||
			power {
 | 
			
		||||
				gpios = <&gpio1 24 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
				label = "venom:blue:power";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			sata {
 | 
			
		||||
				gpios = <&gpio1 21 GPIO_ACTIVE_LOW>;
 | 
			
		||||
				label = "venom:blue:sata";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			wlan_2g {
 | 
			
		||||
				gpios = <&gpio1 13 GPIO_ACTIVE_LOW>;
 | 
			
		||||
				label = "venom:blue:wlan_2g";
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			wlan_5g {
 | 
			
		||||
				gpios = <&gpio1 14 GPIO_ACTIVE_LOW>;
 | 
			
		||||
				label = "venom:blue:wlan_5g";
 | 
			
		||||
			};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	&gpio_leds_pins {
 | 
			
		||||
			marvell,pins = "mpp21", "mpp45", "mpp46", "mpp56";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	&nand {
 | 
			
		||||
			/* Spansion S34ML02G2 256MiB, OEM Layout */
 | 
			
		||||
			partition@0 {
 | 
			
		||||
				label = "u-boot";
 | 
			
		||||
				reg = <0x0000000 0x200000>;  /* 2MB */
 | 
			
		||||
				read-only;
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			partition@200000 {
 | 
			
		||||
				label = "u_env";
 | 
			
		||||
				reg = <0x200000 0x20000>;    /* 128KB */
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			partition@220000 {
 | 
			
		||||
				label = "s_env";
 | 
			
		||||
				reg = <0x220000 0x40000>;    /* 256KB */
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			partition@180000 {
 | 
			
		||||
				label = "unused_area";
 | 
			
		||||
				reg = <0x260000 0x5c0000>;   /* 5.75MB */
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			partition@7e0000 {
 | 
			
		||||
				label = "devinfo";
 | 
			
		||||
				reg = <0x7e0000 0x40000>;   /* 256KB */
 | 
			
		||||
				read-only;
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			/* kernel1 overlaps with rootfs1 by design */
 | 
			
		||||
			partition@900000 {
 | 
			
		||||
				label = "kernel1";
 | 
			
		||||
				reg = <0x900000 0x7b00000>;  /* 123MB */
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			partition@c00000 {
 | 
			
		||||
				label = "rootfs1";
 | 
			
		||||
				reg = <0xc00000 0x7800000>;  /* 120MB */
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			/* kernel2 overlaps with rootfs2 by design */
 | 
			
		||||
			partition@8400000 {
 | 
			
		||||
				label = "kernel2";
 | 
			
		||||
				reg = <0x8400000 0x7b00000>; /* 123MB */
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			partition@8700000 {
 | 
			
		||||
				label = "rootfs2";
 | 
			
		||||
				reg = <0x8700000 0x7800000>;  /* 120MB */
 | 
			
		||||
			};
 | 
			
		||||
 | 
			
		||||
			/* last MB is for the BBT, not writable */
 | 
			
		||||
			partition@ff00000 {
 | 
			
		||||
				label = "BBT";
 | 
			
		||||
				reg = <0xff00000 0x100000>;
 | 
			
		||||
			};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	&pcie1 {
 | 
			
		||||
			mwlwifi {
 | 
			
		||||
				marvell,chainmask = <4 4>;
 | 
			
		||||
			};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	&pcie2 {
 | 
			
		||||
			mwlwifi {
 | 
			
		||||
				marvell,chainmask = <4 4>;
 | 
			
		||||
			};
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	&sdhci {
 | 
			
		||||
		pinctrl-names = "default";
 | 
			
		||||
		pinctrl-0 = <&sdhci_pins>;
 | 
			
		||||
		no-1-8-v;
 | 
			
		||||
		non-removable;
 | 
			
		||||
		wp-inverted;
 | 
			
		||||
		bus-width = <8>;
 | 
			
		||||
		status = "okay";
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	&usb3_1_vbus {
 | 
			
		||||
		gpio = <&gpio1 12 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
	};
 | 
			
		||||
 | 
			
		||||
	&usb3_1_vbus_pins {
 | 
			
		||||
		marvell,pins = "mpp44";
 | 
			
		||||
	};
 | 
			
		||||
@@ -51,6 +51,16 @@ define Device/linksys-wrt1900acs
 | 
			
		||||
endef
 | 
			
		||||
TARGET_DEVICES += linksys-wrt1900acs
 | 
			
		||||
 | 
			
		||||
define Device/linksys-wrt32x
 | 
			
		||||
$(call Device/linksys,WRT32X (Venom))
 | 
			
		||||
  DEVICE_DTS := armada-385-linksys-venom
 | 
			
		||||
  DEVICE_PACKAGES += kmod-btmrvl kmod-mwifiex-sdio mwlwifi-firmware-88w8964
 | 
			
		||||
  $(Device/armada-385-linksys)
 | 
			
		||||
  KERNEL_SIZE := 3072k
 | 
			
		||||
  KERNEL := kernel-bin | append-dtb
 | 
			
		||||
endef
 | 
			
		||||
TARGET_DEVICES += linksys-wrt32x
 | 
			
		||||
 | 
			
		||||
define Device/linksys-wrt1900ac
 | 
			
		||||
  $(call Device/linksys,WRT1900AC (Mamba))
 | 
			
		||||
  DEVICE_DTS := armada-xp-linksys-mamba
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								target/linux/mvebu/patches-4.14/105-build_new_dtbs.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								target/linux/mvebu/patches-4.14/105-build_new_dtbs.patch
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
			
		||||
--- a/arch/arm/boot/dts/Makefile
 | 
			
		||||
+++ b/arch/arm/boot/dts/Makefile
 | 
			
		||||
@@ -1027,6 +1027,7 @@ dtb-$(CONFIG_MACH_ARMADA_38X) += \
 | 
			
		||||
 	armada-385-linksys-cobra.dtb \
 | 
			
		||||
 	armada-385-linksys-rango.dtb \
 | 
			
		||||
 	armada-385-linksys-shelby.dtb \
 | 
			
		||||
+	armada-385-linksys-venom.dtb \
 | 
			
		||||
 	armada-385-synology-ds116.dtb \
 | 
			
		||||
 	armada-385-turris-omnia.dtb \
 | 
			
		||||
 	armada-388-clearfog.dtb \
 | 
			
		||||
		Reference in New Issue
	
	Block a user