The sender domain has a DMARC Reject/Quarantine policy which disallows
sending mailing list messages using the original "From" header.

To mitigate this problem, the original message has been wrapped
automatically by the mailing list software.
--- Begin Message ---
Signed-off-by: Sebastian Careba <nitrosh...@yahoo.com>
---
 target/linux/mvebu/Makefile                   |   8 +-
 target/linux/mvebu/config-5.10                | 436 ++++++++++
 .../patches-5.10/002-add_powertables.patch    | 770 ++++++++++++++++++
 .../004-add_sata_disk_activity_trigger.patch  |  39 +
 ...5-linksys_hardcode_nand_ecc_settings.patch |  17 +
 ...Mangle-bootloader-s-kernel-arguments.patch | 189 +++++
 ...sallow-XDP-program-on-hardware-buffe.patch |  53 ++
 .../030-linkstation-poweroff.patch            |  20 +
 .../patches-5.10/100-find_active_root.patch   |  60 ++
 .../patches-5.10/102-revert_i2c_delay.patch   |  15 +
 .../205-armada-385-rd-mtd-partitions.patch    |  19 +
 .../206-ARM-mvebu-385-ap-Add-partitions.patch |  35 +
 ...-armada-xp-linksys-mamba-broken-idle.patch |  10 +
 .../231-armada-xp-linksys-mamba-wan.patch     |  11 +
 .../patches-5.10/240-linksys-status-led.patch |  50 ++
 .../241-linksys-use-eth0-as-cpu-port.patch    |  25 +
 .../250-adjust-compatible-for-linksys.patch   |  68 ++
 .../300-mvneta-tx-queue-workaround.patch      |  26 +
 ...dicate-failure-to-enter-deeper-sleep.patch |  40 +
 ...-pci-mvebu-time-out-reset-on-link-up.patch |  60 ++
 ...5-PCI-aardvark-Improve-link-training.patch | 135 +++
 ...06-PCI-aardvark-Issue-PERST-via-GPIO.patch |  57 ++
 .../407-PCI-aardvark-Add-PHY-support.patch    | 116 +++
 ...-t-touch-PCIe-registers-if-no-card-c.patch |  50 ++
 ...-initialization-with-old-Marvell-s-A.patch |  44 +
 ...da388-clearfog-emmc-on-clearfog-base.patch |  87 ++
 ...ts-marvell-armada37xx-Add-eth0-alias.patch |  20 +
 ...witch-PHY-operation-mode-to-2500base.patch |  20 +
 .../560-helios4-dts-status-led-alias.patch    |  28 +
 ...-mvebu-armada-38x-enable-libata-leds.patch |  10 +
 .../999-resize mamba kernel.patch             |  50 ++
 31 files changed, 2565 insertions(+), 3 deletions(-)
 create mode 100644 target/linux/mvebu/config-5.10
 create mode 100644 target/linux/mvebu/patches-5.10/002-add_powertables.patch
 create mode 100644 
target/linux/mvebu/patches-5.10/004-add_sata_disk_activity_trigger.patch
 create mode 100644 
target/linux/mvebu/patches-5.10/005-linksys_hardcode_nand_ecc_settings.patch
 create mode 100644 
target/linux/mvebu/patches-5.10/006-mvebu-Mangle-bootloader-s-kernel-arguments.patch
 create mode 100644 
target/linux/mvebu/patches-5.10/022-mvneta-driver-disallow-XDP-program-on-hardware-buffe.patch
 create mode 100644 
target/linux/mvebu/patches-5.10/030-linkstation-poweroff.patch
 create mode 100644 target/linux/mvebu/patches-5.10/100-find_active_root.patch
 create mode 100644 target/linux/mvebu/patches-5.10/102-revert_i2c_delay.patch
 create mode 100644 
target/linux/mvebu/patches-5.10/205-armada-385-rd-mtd-partitions.patch
 create mode 100644 
target/linux/mvebu/patches-5.10/206-ARM-mvebu-385-ap-Add-partitions.patch
 create mode 100644 
target/linux/mvebu/patches-5.10/230-armada-xp-linksys-mamba-broken-idle.patch
 create mode 100644 
target/linux/mvebu/patches-5.10/231-armada-xp-linksys-mamba-wan.patch
 create mode 100644 target/linux/mvebu/patches-5.10/240-linksys-status-led.patch
 create mode 100644 
target/linux/mvebu/patches-5.10/241-linksys-use-eth0-as-cpu-port.patch
 create mode 100644 
target/linux/mvebu/patches-5.10/250-adjust-compatible-for-linksys.patch
 create mode 100644 
target/linux/mvebu/patches-5.10/300-mvneta-tx-queue-workaround.patch
 create mode 100644 
target/linux/mvebu/patches-5.10/400-cpuidle-mvebu-indicate-failure-to-enter-deeper-sleep.patch
 create mode 100644 
target/linux/mvebu/patches-5.10/401-pci-mvebu-time-out-reset-on-link-up.patch
 create mode 100644 
target/linux/mvebu/patches-5.10/405-PCI-aardvark-Improve-link-training.patch
 create mode 100644 
target/linux/mvebu/patches-5.10/406-PCI-aardvark-Issue-PERST-via-GPIO.patch
 create mode 100644 
target/linux/mvebu/patches-5.10/407-PCI-aardvark-Add-PHY-support.patch
 create mode 100644 
target/linux/mvebu/patches-5.10/408-PCI-aardvark-Don-t-touch-PCIe-registers-if-no-card-c.patch
 create mode 100644 
target/linux/mvebu/patches-5.10/410-PCI-aardvark-Fix-initialization-with-old-Marvell-s-A.patch
 create mode 100644 
target/linux/mvebu/patches-5.10/412-ARM-dts-armada388-clearfog-emmc-on-clearfog-base.patch
 create mode 100644 
target/linux/mvebu/patches-5.10/520-arm64-dts-marvell-armada37xx-Add-eth0-alias.patch
 create mode 100644 
target/linux/mvebu/patches-5.10/550-arm64-dts-uDPU-switch-PHY-operation-mode-to-2500base.patch
 create mode 100644 
target/linux/mvebu/patches-5.10/560-helios4-dts-status-led-alias.patch
 create mode 100644 
target/linux/mvebu/patches-5.10/561-mvebu-armada-38x-enable-libata-leds.patch
 create mode 100644 target/linux/mvebu/patches-5.10/999-resize mamba 
kernel.patch

diff --git a/target/linux/mvebu/Makefile b/target/linux/mvebu/Makefile
index 1e67bcfacb..e574715648 100644
--- a/target/linux/mvebu/Makefile
+++ b/target/linux/mvebu/Makefile
@@ -1,7 +1,9 @@
-# SPDX-License-Identifier: GPL-2.0-only
 #
 # Copyright (C) 2012-2015 OpenWrt.org
-
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
 include $(TOPDIR)/rules.mk
 
 BOARD:=mvebu
@@ -9,7 +11,7 @@ BOARDNAME:=Marvell EBU Armada
 FEATURES:=fpu usb pci pcie gpio nand squashfs ramdisk boot-part rootfs-part
 SUBTARGETS:=cortexa9 cortexa53 cortexa72
 
-KERNEL_PATCHVER:=5.4
+KERNEL_PATCHVER:=5.10
 KERNEL_TESTING_PATCHVER:=5.4
 
 include $(INCLUDE_DIR)/target.mk
diff --git a/target/linux/mvebu/config-5.10 b/target/linux/mvebu/config-5.10
new file mode 100644
index 0000000000..ced3b4ff7a
--- /dev/null
+++ b/target/linux/mvebu/config-5.10
@@ -0,0 +1,436 @@
+CONFIG_AHCI_MVEBU=y
+CONFIG_ALIGNMENT_TRAP=y
+CONFIG_ARCH_32BIT_OFF_T=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_KEEP_MEMBLOCK=y
+CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
+# CONFIG_ARCH_MSTARV7 is not set
+CONFIG_ARCH_MULTIPLATFORM=y
+CONFIG_ARCH_MULTI_V6_V7=y
+CONFIG_ARCH_MULTI_V7=y
+CONFIG_ARCH_MVEBU=y
+CONFIG_ARCH_NR_GPIO=0
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y
+CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARM=y
+CONFIG_ARMADA_370_CLK=y
+CONFIG_ARMADA_370_XP_IRQ=y
+CONFIG_ARMADA_370_XP_TIMER=y
+# CONFIG_ARMADA_37XX_WATCHDOG is not set
+CONFIG_ARMADA_38X_CLK=y
+CONFIG_ARMADA_THERMAL=y
+CONFIG_ARMADA_XP_CLK=y
+CONFIG_ARM_APPENDED_DTB=y
+# CONFIG_ARM_ARMADA_37XX_CPUFREQ is not set
+# CONFIG_ARM_ARMADA_8K_CPUFREQ is not set
+CONFIG_ARM_ATAG_DTB_COMPAT=y
+# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER is not set
+CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_MANGLE=y
+CONFIG_ARM_CPU_SUSPEND=y
+CONFIG_ARM_CRYPTO=y
+CONFIG_ARM_ERRATA_720789=y
+CONFIG_ARM_ERRATA_764369=y
+CONFIG_ARM_GIC=y
+CONFIG_ARM_GLOBAL_TIMER=y
+CONFIG_ARM_HAS_SG_CHAIN=y
+CONFIG_ARM_HEAVY_MB=y
+CONFIG_ARM_L1_CACHE_SHIFT=6
+CONFIG_ARM_L1_CACHE_SHIFT_6=y
+CONFIG_ARM_MVEBU_V7_CPUIDLE=y
+CONFIG_ARM_PATCH_IDIV=y
+CONFIG_ARM_PATCH_PHYS_VIRT=y
+CONFIG_ARM_THUMB=y
+CONFIG_ARM_UNWIND=y
+CONFIG_ARM_VIRT_EXT=y
+CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y
+CONFIG_ATA=y
+CONFIG_ATAGS=y
+CONFIG_ATA_LEDS=y
+CONFIG_AUTO_ZRELADDR=y
+CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_SD=y
+CONFIG_BLK_MQ_PCI=y
+CONFIG_BLK_SCSI_REQUEST=y
+CONFIG_BOUNCE=y
+# CONFIG_CACHE_FEROCEON_L2 is not set
+CONFIG_CACHE_L2X0=y
+# CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+# CONFIG_CHARGER_BQ25980 is not set
+CONFIG_CLKDEV_LOOKUP=y
+CONFIG_CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK=y
+CONFIG_CLKSRC_MMIO=y
+CONFIG_CLONE_BACKWARDS=y
+CONFIG_COMMON_CLK=y
+CONFIG_COMPAT_32BIT_TIME=y
+CONFIG_CPUFREQ_DT=y
+CONFIG_CPUFREQ_DT_PLATDEV=y
+CONFIG_CPU_32v6K=y
+CONFIG_CPU_32v7=y
+CONFIG_CPU_ABRT_EV7=y
+CONFIG_CPU_CACHE_V7=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
+CONFIG_CPU_FREQ_GOV_ATTR_SET=y
+CONFIG_CPU_FREQ_GOV_COMMON=y
+# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_HAS_ASID=y
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_PABRT_V7=y
+CONFIG_CPU_PJ4B=y
+CONFIG_CPU_PM=y
+CONFIG_CPU_RMAP=y
+CONFIG_CPU_SPECTRE=y
+CONFIG_CPU_THERMAL=y
+CONFIG_CPU_THUMB_CAPABLE=y
+CONFIG_CPU_TLB_V7=y
+CONFIG_CPU_V7=y
+CONFIG_CRC16=y
+CONFIG_CRYPTO_ACOMP2=y
+CONFIG_CRYPTO_AEAD=y
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_CRC32=y
+CONFIG_CRYPTO_CRC32C=y
+# CONFIG_CRYPTO_CURVE25519_NEON is not set
+CONFIG_CRYPTO_DEFLATE=y
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_HASH_INFO=y
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_LZO=y
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_NULL2=y
+# CONFIG_CRYPTO_POLY1305_ARM is not set
+CONFIG_CRYPTO_RNG2=y
+CONFIG_DCACHE_WORD_ACCESS=y
+CONFIG_DEBUG_ALIGN_RODATA=y
+CONFIG_DEBUG_INFO=y
+CONFIG_DEBUG_LL=y
+CONFIG_DEBUG_LL_INCLUDE="debug/8250.S"
+CONFIG_DEBUG_MVEBU_UART0=y
+# CONFIG_DEBUG_MVEBU_UART0_ALTERNATE is not set
+# CONFIG_DEBUG_MVEBU_UART1_ALTERNATE is not set
+CONFIG_DEBUG_UART_8250=y
+# CONFIG_DEBUG_UART_8250_FLOW_CONTROL is not set
+CONFIG_DEBUG_UART_8250_SHIFT=2
+# CONFIG_DEBUG_UART_8250_WORD is not set
+CONFIG_DEBUG_UART_PHYS=0xd0012000
+CONFIG_DEBUG_UART_VIRT=0xfec12000
+CONFIG_DEBUG_UNCOMPRESS=y
+CONFIG_DEBUG_USER=y
+CONFIG_DMADEVICES=y
+CONFIG_DMA_ENGINE=y
+CONFIG_DMA_ENGINE_RAID=y
+CONFIG_DMA_OF=y
+CONFIG_DMA_OPS=y
+CONFIG_DMA_REMAP=y
+CONFIG_DTC=y
+CONFIG_EARLY_PRINTK=y
+CONFIG_EDAC_ATOMIC_SCRUB=y
+CONFIG_EDAC_SUPPORT=y
+CONFIG_EXT4_FS=y
+CONFIG_EXTCON=y
+CONFIG_F2FS_FS=y
+CONFIG_FIXED_PHY=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_FS_IOMAP=y
+CONFIG_FS_MBCACHE=y
+CONFIG_FW_LOADER_PAGED_BUF=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_GENERIC_ARCH_TOPOLOGY=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_GENERIC_CPU_AUTOPROBE=y
+CONFIG_GENERIC_EARLY_IOREMAP=y
+CONFIG_GENERIC_GETTIMEOFDAY=y
+CONFIG_GENERIC_IDLE_POLL_SETUP=y
+CONFIG_GENERIC_IRQ_CHIP=y
+CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
+CONFIG_GENERIC_IRQ_MIGRATION=y
+CONFIG_GENERIC_IRQ_MULTI_HANDLER=y
+CONFIG_GENERIC_IRQ_SHOW=y
+CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
+CONFIG_GENERIC_MSI_IRQ=y
+CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
+CONFIG_GENERIC_PCI_IOMAP=y
+CONFIG_GENERIC_PHY=y
+CONFIG_GENERIC_SCHED_CLOCK=y
+CONFIG_GENERIC_SMP_IDLE_THREAD=y
+CONFIG_GENERIC_STRNCPY_FROM_USER=y
+CONFIG_GENERIC_STRNLEN_USER=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_GENERIC_VDSO_32=y
+CONFIG_GLOB=y
+CONFIG_GPIOLIB=y
+CONFIG_GPIOLIB_IRQCHIP=y
+CONFIG_GPIO_GENERIC=y
+CONFIG_GPIO_GENERIC_PLATFORM=y
+CONFIG_GPIO_MVEBU=y
+CONFIG_GPIO_PCA953X=y
+CONFIG_GPIO_PCA953X_IRQ=y
+CONFIG_GRO_CELLS=y
+CONFIG_HANDLE_DOMAIN_IRQ=y
+CONFIG_HARDEN_BRANCH_PREDICTOR=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_HAS_DMA=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT_MAP=y
+CONFIG_HAVE_SMP=y
+# CONFIG_HAVE_ARM_ARCH_TIMER is not set
+CONFIG_HIGHMEM=y
+# CONFIG_HIGHPTE is not set
+CONFIG_HOTPLUG_CPU=y
+CONFIG_HWBM=y
+CONFIG_HWMON=y
+CONFIG_HW_RANDOM=y
+# CONFIG_HW_RANDOM_XIPHERA is not set
+CONFIG_HZ=100
+CONFIG_HZ_100=y
+CONFIG_HZ_FIXED=0
+CONFIG_HZ_PERIODIC=y
+CONFIG_I2C=y
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_MV64XXX=y
+# CONFIG_I2C_PXA is not set
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_IRQCHIP=y
+CONFIG_IRQ_DOMAIN=y
+CONFIG_IRQ_DOMAIN_HIERARCHY=y
+CONFIG_IRQ_FORCED_THREADING=y
+CONFIG_IRQ_WORK=y
+# CONFIG_IWMMXT is not set
+CONFIG_JBD2=y
+CONFIG_LEDS_GPIO=y
+# CONFIG_LEDS_LP50XX is not set
+CONFIG_LEDS_PCA963X=y
+CONFIG_LEDS_TLC591XX=y
+CONFIG_LEDS_TRIGGER_DISK=y
+# CONFIG_LEDS_TURRIS_OMNIA is not set
+CONFIG_LIBFDT=y
+CONFIG_LOCK_DEBUGGING_SUPPORT=y
+CONFIG_LOCK_SPIN_ON_OWNER=y
+CONFIG_LZO_COMPRESS=y
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_MACH_ARMADA_370=y
+# CONFIG_MACH_ARMADA_375 is not set
+CONFIG_MACH_ARMADA_38X=y
+# CONFIG_MACH_ARMADA_39X is not set
+CONFIG_MACH_ARMADA_XP=y
+# CONFIG_MACH_DOVE is not set
+CONFIG_MACH_MVEBU_ANY=y
+CONFIG_MACH_MVEBU_V7=y
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_MANGLE_BOOTARGS=y
+CONFIG_MARVELL_PHY=y
+CONFIG_MDIO_BUS=y
+CONFIG_MDIO_DEVICE=y
+CONFIG_MDIO_I2C=y
+CONFIG_MEMFD_CREATE=y
+CONFIG_MEMORY=y
+# CONFIG_MFD_ROHM_BD71828 is not set
+# CONFIG_MFD_SL28CPLD is not set
+CONFIG_MIGHT_HAVE_CACHE_L2X0=y
+CONFIG_MIGRATION=y
+CONFIG_MMC=y
+CONFIG_MMC_BLOCK=y
+CONFIG_MMC_MVSDIO=y
+CONFIG_MMC_SDHCI=y
+# CONFIG_MMC_SDHCI_PCI is not set
+CONFIG_MMC_SDHCI_PLTFM=y
+CONFIG_MMC_SDHCI_PXAV3=y
+# CONFIG_MMC_TIFM_SD is not set
+CONFIG_MODULES_USE_ELF_REL=y
+CONFIG_MTD_CFI_STAA=y
+CONFIG_MTD_NAND_CORE=y
+CONFIG_MTD_NAND_ECC_SW_HAMMING=y
+CONFIG_MTD_NAND_MARVELL=y
+CONFIG_MTD_RAW_NAND=y
+CONFIG_MTD_SPI_NOR=y
+CONFIG_MTD_SPLIT_FIRMWARE=y
+CONFIG_MTD_UBI=y
+CONFIG_MTD_UBI_BEB_LIMIT=20
+CONFIG_MTD_UBI_BLOCK=y
+# CONFIG_MTD_UBI_FASTMAP is not set
+# CONFIG_MTD_UBI_GLUEBI is not set
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_MVEBU_CLK_COMMON=y
+CONFIG_MVEBU_CLK_COREDIV=y
+CONFIG_MVEBU_CLK_CPU=y
+CONFIG_MVEBU_DEVBUS=y
+CONFIG_MVEBU_MBUS=y
+CONFIG_MVMDIO=y
+CONFIG_MVNETA=y
+CONFIG_MVNETA_BM=y
+CONFIG_MVNETA_BM_ENABLE=y
+# CONFIG_MVPP2 is not set
+CONFIG_MV_XOR=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEON=y
+CONFIG_NET_DEVLINK=y
+CONFIG_NET_DSA=y
+CONFIG_NET_DSA_MV88E6XXX=y
+CONFIG_NET_DSA_MV88E6XXX_GLOBAL2=y
+CONFIG_NET_DSA_TAG_DSA=y
+CONFIG_NET_DSA_TAG_EDSA=y
+CONFIG_NET_FLOW_LIMIT=y
+CONFIG_NET_SWITCHDEV=y
+CONFIG_NLS=y
+CONFIG_NOP_USB_XCEIV=y
+CONFIG_NR_CPUS=4
+CONFIG_NVMEM=y
+CONFIG_OF=y
+CONFIG_OF_ADDRESS=y
+CONFIG_OF_EARLY_FLATTREE=y
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_GPIO=y
+CONFIG_OF_IRQ=y
+CONFIG_OF_KOBJ=y
+CONFIG_OF_MDIO=y
+CONFIG_OF_NET=y
+CONFIG_OLD_SIGACTION=y
+CONFIG_OLD_SIGSUSPEND3=y
+CONFIG_OUTER_CACHE=y
+CONFIG_OUTER_CACHE_SYNC=y
+CONFIG_PADATA=y
+CONFIG_PAGE_OFFSET=0xC0000000
+CONFIG_PAGE_POOL=y
+CONFIG_PCI=y
+CONFIG_PCI_BRIDGE_EMUL=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_DOMAINS_GENERIC=y
+CONFIG_PCI_MSI=y
+CONFIG_PCI_MSI_IRQ_DOMAIN=y
+CONFIG_PCI_MVEBU=y
+CONFIG_PERF_USE_VMALLOC=y
+CONFIG_PGTABLE_LEVELS=2
+CONFIG_PHYLIB=y
+CONFIG_PHYLINK=y
+# CONFIG_PHY_MVEBU_A3700_COMPHY is not set
+# CONFIG_PHY_MVEBU_A3700_UTMI is not set
+CONFIG_PHY_MVEBU_A38X_COMPHY=y
+# CONFIG_PHY_MVEBU_CP110_COMPHY is not set
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_ARMADA_370=y
+CONFIG_PINCTRL_ARMADA_38X=y
+CONFIG_PINCTRL_ARMADA_XP=y
+CONFIG_PINCTRL_MVEBU=y
+# CONFIG_PINCTRL_SINGLE is not set
+CONFIG_PJ4B_ERRATA_4742=y
+CONFIG_PL310_ERRATA_753970=y
+CONFIG_PLAT_ORION=y
+CONFIG_PM_OPP=y
+CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=11
+CONFIG_PWM=y
+CONFIG_PWM_SYSFS=y
+CONFIG_RATIONAL=y
+CONFIG_RCU_NEED_SEGCBLIST=y
+CONFIG_RCU_STALL_COMMON=y
+CONFIG_REGMAP=y
+CONFIG_REGMAP_I2C=y
+CONFIG_REGMAP_MMIO=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
+# CONFIG_REGULATOR_RT4801 is not set
+# CONFIG_REGULATOR_RTMV20 is not set
+CONFIG_RFS_ACCEL=y
+CONFIG_RPS=y
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_ARMADA38X=y
+CONFIG_RTC_DRV_MV=y
+# CONFIG_RTC_DRV_RV3032 is not set
+CONFIG_RTC_I2C_AND_SPI=y
+CONFIG_RTC_MC146818_LIB=y
+CONFIG_RWSEM_SPIN_ON_OWNER=y
+CONFIG_SATA_AHCI_PLATFORM=y
+CONFIG_SATA_HOST=y
+CONFIG_SATA_MV=y
+CONFIG_SATA_PMP=y
+CONFIG_SCSI=y
+# CONFIG_SENSORS_DRIVETEMP is not set
+# CONFIG_SENSORS_MR75203 is not set
+CONFIG_SENSORS_PWM_FAN=y
+CONFIG_SENSORS_TMP421=y
+CONFIG_SERIAL_8250_DW=y
+CONFIG_SERIAL_8250_DWLIB=y
+CONFIG_SERIAL_8250_FSL=y
+CONFIG_SERIAL_MCTRL_GPIO=y
+CONFIG_SERIAL_MVEBU_CONSOLE=y
+CONFIG_SERIAL_MVEBU_UART=y
+CONFIG_SFP=y
+CONFIG_SGL_ALLOC=y
+CONFIG_SG_POOL=y
+CONFIG_SMP=y
+CONFIG_SMP_ON_UP=y
+CONFIG_SOC_BUS=y
+CONFIG_SPARSE_IRQ=y
+CONFIG_SPI=y
+# CONFIG_SPI_ARMADA_3700 is not set
+CONFIG_SPI_MASTER=y
+CONFIG_SPI_MEM=y
+CONFIG_SPI_ORION=y
+CONFIG_SRAM=y
+CONFIG_SRAM_EXEC=y
+CONFIG_SRCU=y
+CONFIG_SWPHY=y
+CONFIG_SWP_EMULATE=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_THERMAL=y
+CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y
+CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0
+CONFIG_THERMAL_GOV_STEP_WISE=y
+CONFIG_THERMAL_HWMON=y
+CONFIG_THERMAL_OF=y
+CONFIG_TICK_CPU_ACCOUNTING=y
+CONFIG_TIMER_OF=y
+CONFIG_TIMER_PROBE=y
+CONFIG_TREE_RCU=y
+CONFIG_TREE_SRCU=y
+CONFIG_UBIFS_FS=y
+CONFIG_UBIFS_FS_ADVANCED_COMPR=y
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_ZLIB=y
+# CONFIG_UBIFS_FS_ZSTD is not set
+CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
+CONFIG_UNWINDER_ARM=y
+CONFIG_USB=y
+CONFIG_USB_COMMON=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_HCD_ORION=y
+CONFIG_USB_EHCI_HCD_PLATFORM=y
+CONFIG_USB_LEDS_TRIGGER_USBPORT=y
+CONFIG_USB_PHY=y
+CONFIG_USB_STORAGE=y
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_XHCI_MVEBU=y
+CONFIG_USB_XHCI_PLATFORM=y
+CONFIG_USE_OF=y
+CONFIG_VFP=y
+CONFIG_VFPv3=y
+CONFIG_WATCHDOG_CORE=y
+CONFIG_XPS=y
+CONFIG_XZ_DEC_ARM=y
+CONFIG_XZ_DEC_BCJ=y
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZLIB_DEFLATE=y
+CONFIG_ZLIB_INFLATE=y
diff --git a/target/linux/mvebu/patches-5.10/002-add_powertables.patch 
b/target/linux/mvebu/patches-5.10/002-add_powertables.patch
new file mode 100644
index 0000000000..efbbbc7d78
--- /dev/null
+++ b/target/linux/mvebu/patches-5.10/002-add_powertables.patch
@@ -0,0 +1,770 @@
+--- a/arch/arm/boot/dts/armada-385-linksys.dtsi
++++ b/arch/arm/boot/dts/armada-385-linksys.dtsi
+@@ -212,11 +212,19 @@
+ &pcie1 {
+       /* Marvell 88W8864, 5GHz-only */
+       status = "okay";
++
++      mwlwifi {
++              marvell,2ghz = <0>;
++      };
+ };
+ 
+ &pcie2 {
+       /* Marvell 88W8864, 2GHz-only */
+       status = "okay";
++
++      mwlwifi {
++              marvell,5ghz = <0>;
++      };
+ };
+ 
+ &pinctrl {
+--- a/arch/arm/boot/dts/armada-385-linksys-caiman.dts
++++ b/arch/arm/boot/dts/armada-385-linksys-caiman.dts
+@@ -142,3 +142,205 @@
+               };
+       };
+ };
++
++&pcie1 {
++      mwlwifi {
++              marvell,chainmask = <2 2>;
++              marvell,powertable {
++                      AU =
++                              <36 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <40 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <44 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <48 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <52 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <56 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <60 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <64 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <100 0 0x17 0x17 0x17 0x17 0x17 0x17 0x17 0x15 
0x17 0x17 0x17 0x14 0x17 0x17 0x17 0x14 0 0xf>,
++                              <104 0 0x17 0x17 0x17 0x17 0x17 0x17 0x17 0x15 
0x17 0x17 0x17 0x14 0x17 0x17 0x17 0x14 0 0xf>,
++                              <108 0 0x17 0x17 0x17 0x17 0x17 0x17 0x17 0x15 
0x17 0x17 0x17 0x14 0x17 0x17 0x17 0x14 0 0xf>,
++                              <112 0 0x17 0x17 0x17 0x17 0x17 0x17 0x17 0x15 
0x17 0x17 0x17 0x14 0x17 0x17 0x17 0x14 0 0xf>,
++                              <116 0 0x17 0x17 0x17 0x17 0x17 0x17 0x17 0x15 
0x17 0x17 0x17 0x14 0x17 0x17 0x17 0x14 0 0xf>,
++                              <120 0 0x17 0x17 0x17 0x17 0x17 0x17 0x17 0x15 
0x17 0x17 0x17 0x14 0x17 0x17 0x17 0x14 0 0xf>,
++                              <124 0 0x17 0x17 0x17 0x17 0x17 0x17 0x17 0x15 
0x17 0x17 0x17 0x14 0x17 0x17 0x17 0x14 0 0xf>,
++                              <128 0 0x17 0x17 0x17 0x17 0x17 0x17 0x17 0x15 
0x17 0x17 0x17 0x14 0x17 0x17 0x17 0x14 0 0xf>,
++                              <132 0 0x17 0x17 0x17 0x17 0x17 0x17 0x17 0x15 
0x17 0x17 0x17 0x14 0x17 0x17 0x17 0x14 0 0xf>,
++                              <136 0 0x17 0x17 0x17 0x17 0x17 0x17 0x17 0x15 
0x17 0x17 0x17 0x14 0x17 0x17 0x17 0x14 0 0xf>,
++                              <140 0 0x17 0x17 0x17 0x17 0x17 0x17 0x17 0x15 
0x17 0x17 0x17 0x14 0x17 0x17 0x17 0x14 0 0xf>,
++                              <149 0 0x1a 0x1a 0x18 0x17 0x1a 0x1a 0x17 0x15 
0x1a 0x1a 0x17 0x14 0x1a 0x1a 0x17 0x14 0 0xf>,
++                              <153 0 0x1a 0x1a 0x18 0x17 0x1a 0x1a 0x17 0x15 
0x1a 0x1a 0x17 0x14 0x1a 0x1a 0x17 0x14 0 0xf>,
++                              <157 0 0x1a 0x1a 0x18 0x17 0x1a 0x1a 0x17 0x15 
0x1a 0x1a 0x17 0x14 0x1a 0x1a 0x17 0x14 0 0xf>,
++                              <161 0 0x1a 0x1a 0x18 0x17 0x1a 0x1a 0x17 0x15 
0x1a 0x1a 0x17 0x14 0x1a 0x1a 0x17 0x14 0 0xf>,
++                              <165 0 0x1a 0x1a 0x18 0x17 0x1a 0x1a 0x17 0x15 
0x1a 0x1a 0x17 0x14 0x1a 0x1a 0x17 0x14 0 0xf>;
++                      CA =
++                              <36 0 0xf 0xf 0xf 0xf 0xf 0xf 0xf 0xf 0xf 0xf 
0xf 0xf 0xf 0xf 0xf 0xf 0 0xf>,
++                              <40 0 0xf 0xf 0xf 0xf 0xf 0xf 0xf 0xf 0xf 0xf 
0xf 0xf 0xf 0xf 0xf 0xf 0 0xf>,
++                              <44 0 0xf 0xf 0xf 0xf 0xf 0xf 0xf 0xf 0xf 0xf 
0xf 0xf 0xf 0xf 0xf 0xf 0 0xf>,
++                              <48 0 0xf 0xf 0xf 0xf 0xf 0xf 0xf 0xf 0xf 0xf 
0xf 0xf 0xf 0xf 0xf 0xf 0 0xf>,
++                              <52 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <56 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <60 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <64 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <100 0 0x10 0x10 0x10 0x10 0x11 0x11 0x11 0x11 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <104 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <108 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <112 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <116 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <120 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <124 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <128 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <132 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <136 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <140 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <149 0 0x1a 0x1a 0x18 0x17 0x19 0x19 0x17 0x15 
0x18 0x18 0x17 0x14 0x15 0x15 0x15 0x14 0 0xf>,
++                              <153 0 0x1a 0x1a 0x18 0x17 0x1a 0x1a 0x17 0x15 
0x1a 0x1a 0x17 0x14 0x15 0x15 0x15 0x14 0 0xf>,
++                              <157 0 0x1a 0x1a 0x18 0x17 0x1a 0x1a 0x17 0x15 
0x1a 0x1a 0x17 0x14 0x15 0x15 0x15 0x14 0 0xf>,
++                              <161 0 0x1a 0x1a 0x18 0x17 0x1a 0x1a 0x17 0x15 
0x1a 0x1a 0x17 0x14 0x15 0x15 0x15 0x14 0 0xf>,
++                              <165 0 0x1a 0x1a 0x18 0x17 0x1a 0x1a 0x17 0x15 
0x1a 0x1a 0x17 0x14 0x15 0x15 0x15 0x14 0 0xf>;
++                      CN =
++                              <36 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <40 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <44 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <48 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <52 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <56 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <60 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <64 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <100 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <104 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <108 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <112 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <116 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <120 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <124 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <128 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <132 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <136 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <140 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <149 0 0x15 0x15 0x15 0x15 0x15 0x15 0x15 0x15 
0x14 0x14 0x14 0x14 0x11 0x11 0x11 0x11 0 0xf>,
++                              <153 0 0x1a 0x1a 0x18 0x17 0x1a 0x1a 0x17 0x15 
0x16 0x16 0x16 0x14 0x11 0x11 0x11 0x11 0 0xf>,
++                              <157 0 0x1a 0x1a 0x18 0x17 0x1a 0x1a 0x17 0x15 
0x16 0x16 0x16 0x14 0x11 0x11 0x11 0x11 0 0xf>,
++                              <161 0 0x1a 0x1a 0x18 0x17 0x1a 0x1a 0x17 0x15 
0x16 0x16 0x16 0x14 0x11 0x11 0x11 0x11 0 0xf>,
++                              <165 0 0x15 0x15 0x15 0x15 0x16 0x16 0x16 0x15 
0x16 0x16 0x16 0x14 0x11 0x11 0x11 0x11 0 0xf>;
++                      ETSI =
++                              <36 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <40 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <44 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <48 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <52 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <56 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <60 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <64 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <100 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <104 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <108 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <112 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <116 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <120 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <124 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <128 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <132 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <136 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <140 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>,
++                              <149 0 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x11 0x11 0x11 0x11 0x11 0x11 0 0xf>;
++                      FCC =
++                              <36 0 0x15 0x15 0x15 0x15 0x15 0x15 0x15 0x15 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <40 0 0x19 0x19 0x18 0x17 0x19 0x19 0x17 0x15 
0x17 0x17 0x17 0x14 0x10 0x10 0x10 0x10 0 0xf>,
++                              <44 0 0x19 0x19 0x18 0x17 0x19 0x19 0x17 0x15 
0x17 0x17 0x17 0x14 0x10 0x10 0x10 0x10 0 0xf>,
++                              <48 0 0x1a 0x1a 0x18 0x17 0x1a 0x1a 0x17 0x15 
0x17 0x17 0x17 0x14 0x10 0x10 0x10 0x10 0 0xf>,
++                              <52 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <56 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <60 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <64 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <100 0 0x10 0x10 0x10 0x10 0x11 0x11 0x11 0x11 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <104 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <108 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <112 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <116 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <120 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <124 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <128 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <132 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <136 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <140 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <149 0 0x1a 0x1a 0x18 0x17 0x19 0x19 0x17 0x15 
0x18 0x18 0x17 0x14 0x15 0x15 0x15 0x14 0 0xf>,
++                              <153 0 0x1a 0x1a 0x18 0x17 0x1a 0x1a 0x17 0x15 
0x1a 0x1a 0x17 0x14 0x15 0x15 0x15 0x14 0 0xf>,
++                              <157 0 0x1a 0x1a 0x18 0x17 0x1a 0x1a 0x17 0x15 
0x1a 0x1a 0x17 0x14 0x15 0x15 0x15 0x14 0 0xf>,
++                              <161 0 0x1a 0x1a 0x18 0x17 0x1a 0x1a 0x17 0x15 
0x1a 0x1a 0x17 0x14 0x15 0x15 0x15 0x14 0 0xf>,
++                              <165 0 0x1a 0x1a 0x18 0x17 0x1a 0x1a 0x17 0x15 
0x1a 0x1a 0x17 0x14 0x15 0x15 0x15 0x14 0 0xf>;
++              };
++      };
++};
++
++&pcie2 {
++      mwlwifi {
++              marvell,chainmask = <2 2>;
++              marvell,powertable {
++                      AU =
++                              <1 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <2 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <3 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <4 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <5 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <6 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <7 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <8 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <9 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <10 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <11 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>;
++                      CA =
++                              <1 0 0x19 0x14 0x14 0x14 0x13 0x13 0x13 0x13 
0x10 0x10 0x10 0x10 0x00 0x00 0x00 0x00 0 0xf>,
++                              <2 0 0x1a 0x19 0x18 0x17 0x19 0x19 0x17 0x16 
0x14 0x14 0x14 0x14 0x00 0x00 0x00 0x00 0 0xf>,
++                              <3 0 0x1a 0x19 0x18 0x17 0x19 0x19 0x17 0x16 
0x14 0x14 0x14 0x14 0x00 0x00 0x00 0x00 0 0xf>,
++                              <4 0 0x1a 0x19 0x18 0x17 0x19 0x19 0x17 0x16 
0x14 0x14 0x14 0x14 0x00 0x00 0x00 0x00 0 0xf>,
++                              <5 0 0x1a 0x19 0x18 0x17 0x19 0x19 0x17 0x16 
0x14 0x14 0x14 0x14 0x00 0x00 0x00 0x00 0 0xf>,
++                              <6 0 0x1a 0x19 0x18 0x17 0x19 0x19 0x17 0x16 
0x14 0x14 0x14 0x14 0x00 0x00 0x00 0x00 0 0xf>,
++                              <7 0 0x1a 0x19 0x18 0x17 0x19 0x19 0x17 0x16 
0x14 0x14 0x14 0x14 0x00 0x00 0x00 0x00 0 0xf>,
++                              <8 0 0x1a 0x19 0x18 0x17 0x19 0x19 0x17 0x16 
0x14 0x14 0x14 0x14 0x00 0x00 0x00 0x00 0 0xf>,
++                              <9 0 0x1a 0x19 0x18 0x17 0x19 0x19 0x17 0x16 
0x14 0x14 0x14 0x14 0x00 0x00 0x00 0x00 0 0xf>,
++                              <10 0 0x1a 0x19 0x18 0x17 0x19 0x19 0x17 0x16 
0x14 0x14 0x14 0x14 0x00 0x00 0x00 0x00 0 0xf>,
++                              <11 0 0x19 0x15 0x15 0x15 0x14 0x14 0x14 0x14 
0x13 0x13 0x13 0x13 0x00 0x00 0x00 0x00 0 0xf>;
++                      CN =
++                              <1 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <2 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <3 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <4 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <5 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <6 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <7 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <8 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <9 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <10 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <11 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <12 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <13 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <14 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>;
++                      ETSI =
++                              <1 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <2 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <3 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <4 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <5 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <6 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <7 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <8 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <9 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <10 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <11 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <12 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>,
++                              <13 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 
0xd 0xd 0x0 0x0 0x0 0x0 0 0xf>;
++                      FCC =
++                              <1 0 0x19 0x14 0x14 0x14 0x13 0x13 0x13 0x13 
0x10 0x10 0x10 0x10 0x0 0x0 0x0 0x0 0 0xf>,
++                              <2 0 0x1a 0x19 0x18 0x17 0x19 0x19 0x17 0x16 
0x14 0x14 0x14 0x14 0x0 0x0 0x0 0x0 0 0xf>,
++                              <3 0 0x1a 0x19 0x18 0x17 0x19 0x19 0x17 0x16 
0x14 0x14 0x14 0x14 0x0 0x0 0x0 0x0 0 0xf>,
++                              <4 0 0x1a 0x19 0x18 0x17 0x19 0x19 0x17 0x16 
0x14 0x14 0x14 0x14 0x0 0x0 0x0 0x0 0 0xf>,
++                              <5 0 0x1a 0x19 0x18 0x17 0x19 0x19 0x17 0x16 
0x14 0x14 0x14 0x14 0x0 0x0 0x0 0x0 0 0xf>,
++                              <6 0 0x1a 0x19 0x18 0x17 0x19 0x19 0x17 0x16 
0x14 0x14 0x14 0x14 0x0 0x0 0x0 0x0 0 0xf>,
++                              <7 0 0x1a 0x19 0x18 0x17 0x19 0x19 0x17 0x16 
0x14 0x14 0x14 0x14 0x0 0x0 0x0 0x0 0 0xf>,
++                              <8 0 0x1a 0x19 0x18 0x17 0x19 0x19 0x17 0x16 
0x14 0x14 0x14 0x14 0x0 0x0 0x0 0x0 0 0xf>,
++                              <9 0 0x1a 0x19 0x18 0x17 0x19 0x19 0x17 0x16 
0x14 0x14 0x14 0x14 0x0 0x0 0x0 0x0 0 0xf>,
++                              <10 0 0x1a 0x19 0x18 0x17 0x19 0x19 0x17 0x16 
0x14 0x14 0x14 0x14 0x0 0x0 0x0 0x0 0 0xf>,
++                              <11 0 0x19 0x15 0x15 0x15 0x14 0x14 0x14 0x14 
0x13 0x13 0x13 0x13 0x0 0x0 0x0 0x0 0 0xf>;
++              };
++      };
++};
+--- a/arch/arm/boot/dts/armada-385-linksys-cobra.dts
++++ b/arch/arm/boot/dts/armada-385-linksys-cobra.dts
+@@ -142,3 +142,205 @@
+               };
+       };
+ };
++
++&pcie1 {
++      mwlwifi {
++              marvell,chainmask = <4 4>;
++              marvell,powertable {
++                      AU =
++                              <36 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <40 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <44 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <48 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <52 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <56 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <60 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <64 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <100 0 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                              <104 0 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                              <108 0 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                              <112 0 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                              <116 0 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                              <120 0 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                              <124 0 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                              <128 0 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                              <132 0 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                              <136 0 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                              <140 0 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                              <149 0 0x19 0x19 0x19 0x17 0x19 0x19 0x16 0x15 
0x19 0x19 0x16 0x15 0x19 0x19 0x16 0x15 0 0xf>,
++                              <153 0 0x19 0x19 0x19 0x17 0x19 0x19 0x16 0x15 
0x19 0x19 0x16 0x15 0x19 0x19 0x16 0x15 0 0xf>,
++                              <157 0 0x19 0x19 0x19 0x17 0x19 0x19 0x16 0x15 
0x19 0x19 0x16 0x15 0x19 0x19 0x16 0x15 0 0xf>,
++                              <161 0 0x19 0x19 0x19 0x17 0x19 0x19 0x16 0x15 
0x19 0x19 0x16 0x15 0x19 0x19 0x16 0x15 0 0xf>,
++                              <165 0 0x19 0x19 0x19 0x17 0x19 0x19 0x16 0x15 
0x19 0x19 0x16 0x15 0x19 0x19 0x16 0x15 0 0xf>;
++                      CA =
++                              <36 0 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 
0x9 0x9 0x9 0x9 0x9 0x9 0 0xf>,
++                              <40 0 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 
0x9 0x9 0x9 0x9 0x9 0x9 0 0xf>,
++                              <44 0 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 
0x9 0x9 0x9 0x9 0x9 0x9 0 0xf>,
++                              <48 0 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 
0x9 0x9 0x9 0x9 0x9 0x9 0 0xf>,
++                              <52 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <56 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <60 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <64 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <100 0 0x10 0x10 0x10 0x10 0x11 0x11 0x11 0x11 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <104 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <108 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <112 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <116 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <120 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <124 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <128 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <132 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <136 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <140 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <149 0 0x16 0x16 0x16 0x16 0x16 0x16 0x16 0x16 
0x15 0x15 0x15 0x15 0x15 0x15 0x15 0x15 0 0xf>,
++                              <153 0 0x16 0x16 0x16 0x16 0x15 0x15 0x15 0x15 
0x15 0x15 0x15 0x15 0x15 0x15 0x15 0x15 0 0xf>,
++                              <157 0 0x16 0x16 0x16 0x16 0x15 0x15 0x15 0x15 
0x15 0x15 0x15 0x15 0x15 0x15 0x15 0x15 0 0xf>,
++                              <161 0 0x16 0x16 0x16 0x16 0x15 0x15 0x15 0x15 
0x15 0x15 0x15 0x15 0x15 0x15 0x15 0x15 0 0xf>,
++                              <165 0 0x15 0x15 0x15 0x15 0x15 0x15 0x15 0x15 
0x15 0x15 0x15 0x15 0x15 0x15 0x15 0x15 0 0xf>;
++                      CN =
++                              <36 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <40 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <44 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <48 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <52 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <56 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <60 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <64 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <100 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <104 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <108 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <112 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <116 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <120 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <124 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <128 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <132 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <136 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <140 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <149 0 0x14 0x14 0x14 0x14 0x13 0x13 0x13 0x13 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <153 0 0x16 0x16 0x16 0x16 0x15 0x15 0x15 0x15 
0x14 0x14 0x14 0x14 0x10 0x10 0x10 0x10 0 0xf>,
++                              <157 0 0x16 0x16 0x16 0x16 0x15 0x15 0x15 0x15 
0x14 0x14 0x14 0x14 0x10 0x10 0x10 0x10 0 0xf>,
++                              <161 0 0x16 0x16 0x16 0x16 0x15 0x15 0x15 0x15 
0x14 0x14 0x14 0x14 0x10 0x10 0x10 0x10 0 0xf>,
++                              <165 0 0x13 0x13 0x13 0x13 0x13 0x13 0x13 0x13 
0x14 0x14 0x14 0x14 0x10 0x10 0x10 0x10 0 0xf>;
++                      ETSI =
++                              <36 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <40 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <44 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <48 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <52 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <56 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <60 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <64 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <100 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <104 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <108 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <112 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <116 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <120 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <124 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <128 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <132 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <136 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <140 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <149 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>;
++                      FCC =
++                              <36 0 0x12 0x12 0x12 0x12 0x12 0x12 0x12 0x12 
0x10 0x10 0x10 0x10 0xf 0xf 0xf 0xf 0 0xf>,
++                              <40 0 0x16 0x16 0x16 0x16 0x16 0x16 0x16 0x16 
0x16 0x16 0x16 0x16 0xf 0xf 0xf 0xf 0 0xf>,
++                              <44 0 0x16 0x16 0x16 0x16 0x16 0x16 0x16 0x16 
0x16 0x16 0x16 0x16 0xf 0xf 0xf 0xf 0 0xf>,
++                              <48 0 0x16 0x16 0x16 0x16 0x16 0x16 0x16 0x16 
0x16 0x16 0x16 0x16 0xf 0xf 0xf 0xf 0 0xf>,
++                              <52 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <56 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <60 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <64 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <100 0 0x10 0x10 0x10 0x10 0x11 0x11 0x11 0x11 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <104 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <108 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <112 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <116 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <120 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <124 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <128 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <132 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <136 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <140 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <149 0 0x16 0x16 0x16 0x16 0x16 0x16 0x16 0x16 
0x15 0x15 0x15 0x15 0x15 0x15 0x15 0x15 0 0xf>,
++                              <153 0 0x16 0x16 0x16 0x16 0x15 0x15 0x15 0x15 
0x15 0x15 0x15 0x15 0x15 0x15 0x15 0x15 0 0xf>,
++                              <157 0 0x16 0x16 0x16 0x16 0x15 0x15 0x15 0x15 
0x15 0x15 0x15 0x15 0x15 0x15 0x15 0x15 0 0xf>,
++                              <161 0 0x16 0x16 0x16 0x16 0x15 0x15 0x15 0x15 
0x15 0x15 0x15 0x15 0x15 0x15 0x15 0x15 0 0xf>,
++                              <165 0 0x15 0x15 0x15 0x15 0x15 0x15 0x15 0x15 
0x15 0x15 0x15 0x15 0x15 0x15 0x15 0x15 0 0xf>;
++              };
++      };
++};
++
++&pcie2 {
++      mwlwifi {
++              marvell,chainmask = <4 4>;
++              marvell,powertable {
++                      AU =
++                              <1 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <2 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <3 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <4 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <5 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <6 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <7 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <8 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <9 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <10 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <11 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>;
++                      CA =
++                              <1 0 0x17 0x10 0x10 0x10 0xf 0xf 0xf 0xf 0xe 
0xe 0xe 0xe 0x0 0x0 0x0 0x0 0 0xf>,
++                              <2 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <3 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <4 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <5 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <6 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <7 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <8 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <9 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <10 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <11 0 0x17 0x12 0x12 0x12 0x13 0x13 0x13 0x13 
0xf 0xf 0xf 0xf 0x0 0x0 0x0 0x0 0 0xf>;
++                      CN =
++                              <1 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <2 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <3 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <4 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <5 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <6 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <7 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <8 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <9 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <10 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <11 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <12 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <13 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <14 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>;
++                      ETSI =
++                              <1 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <2 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <3 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <4 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <5 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <6 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <7 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <8 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <9 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <10 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <11 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <12 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <13 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>;
++                      FCC =
++                              <1 0 0x17 0x10 0x10 0x10 0xf 0xf 0xf 0xf 0xe 
0xe 0xe 0xe 0x0 0x0 0x0 0x0 0 0xf>,
++                              <2 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <3 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <4 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <5 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <6 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <7 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <8 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <9 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <10 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <11 0 0x17 0x12 0x12 0x12 0x13 0x13 0x13 0x13 
0xf 0xf 0xf 0xf 0x0 0x0 0x0 0x0 0 0xf>;
++              };
++      };
++};
+--- a/arch/arm/boot/dts/armada-385-linksys-shelby.dts
++++ b/arch/arm/boot/dts/armada-385-linksys-shelby.dts
+@@ -142,3 +142,205 @@
+               };
+       };
+ };
++
++&pcie1 {
++      mwlwifi {
++              marvell,chainmask = <4 4>;
++              marvell,powertable {
++                      AU =
++                              <36 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <40 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <44 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <48 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <52 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <56 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <60 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <64 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <100 0 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                              <104 0 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                              <108 0 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                              <112 0 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                              <116 0 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                              <120 0 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                              <124 0 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                              <128 0 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                              <132 0 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                              <136 0 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                              <140 0 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                              <149 0 0x19 0x19 0x19 0x17 0x19 0x19 0x16 0x15 
0x19 0x19 0x16 0x15 0x19 0x19 0x16 0x15 0 0xf>,
++                              <153 0 0x19 0x19 0x19 0x17 0x19 0x19 0x16 0x15 
0x19 0x19 0x16 0x15 0x19 0x19 0x16 0x15 0 0xf>,
++                              <157 0 0x19 0x19 0x19 0x17 0x19 0x19 0x16 0x15 
0x19 0x19 0x16 0x15 0x19 0x19 0x16 0x15 0 0xf>,
++                              <161 0 0x19 0x19 0x19 0x17 0x19 0x19 0x16 0x15 
0x19 0x19 0x16 0x15 0x19 0x19 0x16 0x15 0 0xf>,
++                              <165 0 0x19 0x19 0x19 0x17 0x19 0x19 0x16 0x15 
0x19 0x19 0x16 0x15 0x19 0x19 0x16 0x15 0 0xf>;
++                      CA =
++                              <36 0 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 
0x9 0x9 0x9 0x9 0x9 0x9 0 0xf>,
++                              <40 0 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 
0x9 0x9 0x9 0x9 0x9 0x9 0 0xf>,
++                              <44 0 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 
0x9 0x9 0x9 0x9 0x9 0x9 0 0xf>,
++                              <48 0 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 
0x9 0x9 0x9 0x9 0x9 0x9 0 0xf>,
++                              <52 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <56 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <60 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <64 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <100 0 0x10 0x10 0x10 0x10 0x11 0x11 0x11 0x11 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <104 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <108 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <112 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <116 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <120 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <124 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <128 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <132 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <136 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <140 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <149 0 0x16 0x16 0x16 0x16 0x16 0x16 0x16 0x16 
0x15 0x15 0x15 0x15 0x15 0x15 0x15 0x15 0 0xf>,
++                              <153 0 0x16 0x16 0x16 0x16 0x15 0x15 0x15 0x15 
0x15 0x15 0x15 0x15 0x15 0x15 0x15 0x15 0 0xf>,
++                              <157 0 0x16 0x16 0x16 0x16 0x15 0x15 0x15 0x15 
0x15 0x15 0x15 0x15 0x15 0x15 0x15 0x15 0 0xf>,
++                              <161 0 0x16 0x16 0x16 0x16 0x15 0x15 0x15 0x15 
0x15 0x15 0x15 0x15 0x15 0x15 0x15 0x15 0 0xf>,
++                              <165 0 0x15 0x15 0x15 0x15 0x15 0x15 0x15 0x15 
0x15 0x15 0x15 0x15 0x15 0x15 0x15 0x15 0 0xf>;
++                      CN =
++                              <36 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <40 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <44 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <48 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <52 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <56 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <60 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <64 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <100 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <104 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <108 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <112 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <116 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <120 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <124 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <128 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <132 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <136 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <140 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <149 0 0x14 0x14 0x14 0x14 0x13 0x13 0x13 0x13 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <153 0 0x16 0x16 0x16 0x16 0x15 0x15 0x15 0x15 
0x14 0x14 0x14 0x14 0x10 0x10 0x10 0x10 0 0xf>,
++                              <157 0 0x16 0x16 0x16 0x16 0x15 0x15 0x15 0x15 
0x14 0x14 0x14 0x14 0x10 0x10 0x10 0x10 0 0xf>,
++                              <161 0 0x16 0x16 0x16 0x16 0x15 0x15 0x15 0x15 
0x14 0x14 0x14 0x14 0x10 0x10 0x10 0x10 0 0xf>,
++                              <165 0 0x13 0x13 0x13 0x13 0x13 0x13 0x13 0x13 
0x14 0x14 0x14 0x14 0x10 0x10 0x10 0x10 0 0xf>;
++                      ETSI =
++                              <36 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <40 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <44 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <48 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <52 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <56 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <60 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <64 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <100 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <104 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <108 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <112 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <116 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <120 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <124 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <128 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <132 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <136 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <140 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>,
++                              <149 0 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xd 0xe 0xe 
0xe 0xe 0xe 0xe 0xe 0xe 0 0xf>;
++                      FCC =
++                              <36 0 0x12 0x12 0x12 0x12 0x12 0x12 0x12 0x12 
0x10 0x10 0x10 0x10 0xf 0xf 0xf 0xf 0 0xf>,
++                              <40 0 0x16 0x16 0x16 0x16 0x16 0x16 0x16 0x16 
0x16 0x16 0x16 0x16 0xf 0xf 0xf 0xf 0 0xf>,
++                              <44 0 0x16 0x16 0x16 0x16 0x16 0x16 0x16 0x16 
0x16 0x16 0x16 0x16 0xf 0xf 0xf 0xf 0 0xf>,
++                              <48 0 0x16 0x16 0x16 0x16 0x16 0x16 0x16 0x16 
0x16 0x16 0x16 0x16 0xf 0xf 0xf 0xf 0 0xf>,
++                              <52 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <56 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <60 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <64 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <100 0 0x10 0x10 0x10 0x10 0x11 0x11 0x11 0x11 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <104 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x12 0x12 0x12 0x12 0x10 0x10 0x10 0x10 0 0xf>,
++                              <108 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <112 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <116 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <120 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <124 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <128 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <132 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <136 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <140 0 0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 
0x11 0x11 0x11 0x11 0x10 0x10 0x10 0x10 0 0xf>,
++                              <149 0 0x16 0x16 0x16 0x16 0x16 0x16 0x16 0x16 
0x15 0x15 0x15 0x15 0x15 0x15 0x15 0x15 0 0xf>,
++                              <153 0 0x16 0x16 0x16 0x16 0x15 0x15 0x15 0x15 
0x15 0x15 0x15 0x15 0x15 0x15 0x15 0x15 0 0xf>,
++                              <157 0 0x16 0x16 0x16 0x16 0x15 0x15 0x15 0x15 
0x15 0x15 0x15 0x15 0x15 0x15 0x15 0x15 0 0xf>,
++                              <161 0 0x16 0x16 0x16 0x16 0x15 0x15 0x15 0x15 
0x15 0x15 0x15 0x15 0x15 0x15 0x15 0x15 0 0xf>,
++                              <165 0 0x15 0x15 0x15 0x15 0x15 0x15 0x15 0x15 
0x15 0x15 0x15 0x15 0x15 0x15 0x15 0x15 0 0xf>;
++              };
++      };
++};
++
++&pcie2 {
++      mwlwifi {
++              marvell,chainmask = <4 4>;
++              marvell,powertable {
++                      AU =
++                              <1 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <2 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <3 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <4 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <5 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <6 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <7 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <8 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <9 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <10 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <11 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>;
++                      CA =
++                              <1 0 0x17 0x10 0x10 0x10 0xf 0xf 0xf 0xf 0xe 
0xe 0xe 0xe 0x0 0x0 0x0 0x0 0 0xf>,
++                              <2 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <3 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <4 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <5 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <6 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <7 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <8 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <9 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <10 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <11 0 0x17 0x12 0x12 0x12 0x13 0x13 0x13 0x13 
0xf 0xf 0xf 0xf 0x0 0x0 0x0 0x0 0 0xf>;
++                      CN =
++                              <1 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <2 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <3 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <4 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <5 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <6 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <7 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <8 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <9 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <10 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <11 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <12 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <13 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <14 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>;
++                      ETSI =
++                              <1 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <2 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <3 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <4 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <5 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <6 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <7 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <8 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <9 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <10 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <11 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <12 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>,
++                              <13 0 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 0xa 
0xa 0xa 0x0 0x0 0x0 0x0 0 0xf>;
++                      FCC =
++                              <1 0 0x17 0x10 0x10 0x10 0xf 0xf 0xf 0xf 0xe 
0xe 0xe 0xe 0x0 0x0 0x0 0x0 0 0xf>,
++                              <2 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <3 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <4 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <5 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <6 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <7 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <8 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <9 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <10 0 0x18 0x16 0x16 0x16 0x16 0x16 0x16 0x14 
0x11 0x11 0x11 0x11 0x0 0x0 0x0 0x0 0 0xf>,
++                              <11 0 0x17 0x12 0x12 0x12 0x13 0x13 0x13 0x13 
0xf 0xf 0xf 0xf 0x0 0x0 0x0 0x0 0 0xf>;
++              };
++      };
++};
+--- a/arch/arm/boot/dts/armada-385-linksys-rango.dts
++++ b/arch/arm/boot/dts/armada-385-linksys-rango.dts
+@@ -157,6 +157,18 @@
+       };
+ };
+ 
++&pcie1 {
++      mwlwifi {
++              marvell,chainmask = <4 4>;
++      };
++};
++
++&pcie2 {
++      mwlwifi {
++              marvell,chainmask = <4 4>;
++      };
++};
++
+ &sdhci {
+       pinctrl-names = "default";
+       pinctrl-0 = <&sdhci_pins>;
+--- a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
++++ b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
+@@ -225,12 +225,100 @@
+       pcie@2,0 {
+               /* Port 0, Lane 1 */
+               status = "okay";
++
++              mwlwifi {
++                      marvell,5ghz = <0>;
++                      marvell,chainmask = <4 4>;
++                      marvell,powertable {
++                              FCC =
++                                      <1 0 0x17 0x11 0x11 0x11 0x10 0x10 0x10 
0x10 0xf 0xf 0xf 0xf 0x0 0x0 0x0 0x0 0 0xf>,
++                                      <2 0 0x17 0x16 0x16 0x16 0x16 0x16 0x16 
0x14 0x10 0x10 0x10 0x10 0x0 0x0 0x0 0x0 0 0xf>,
++                                      <3 0 0x17 0x16 0x16 0x16 0x16 0x16 0x16 
0x14 0x10 0x10 0x10 0x10 0x0 0x0 0x0 0x0 0 0xf>,
++                                      <4 0 0x17 0x16 0x16 0x16 0x16 0x16 0x16 
0x14 0x10 0x10 0x10 0x10 0x0 0x0 0x0 0x0 0 0xf>,
++                                      <5 0 0x17 0x16 0x16 0x16 0x16 0x16 0x16 
0x14 0x10 0x10 0x10 0x10 0x0 0x0 0x0 0x0 0 0xf>,
++                                      <6 0 0x17 0x16 0x16 0x16 0x16 0x16 0x16 
0x14 0x10 0x10 0x10 0x10 0x0 0x0 0x0 0x0 0 0xf>,
++                                      <7 0 0x17 0x16 0x16 0x16 0x16 0x16 0x16 
0x14 0x10 0x10 0x10 0x10 0x0 0x0 0x0 0x0 0 0xf>,
++                                      <8 0 0x17 0x16 0x16 0x16 0x16 0x16 0x16 
0x14 0x10 0x10 0x10 0x10 0x0 0x0 0x0 0x0 0 0xf>,
++                                      <9 0 0x17 0x16 0x16 0x16 0x16 0x16 0x16 
0x14 0x10 0x10 0x10 0x10 0x0 0x0 0x0 0x0 0 0xf>,
++                                      <10 0 0x17 0x16 0x16 0x16 0x16 0x16 
0x16 0x14 0x10 0x10 0x10 0x10 0x0 0x0 0x0 0x0 0 0xf>,
++                                      <11 0 0x17 0x11 0x11 0x11 0x11 0x11 
0x11 0x11 0x10 0x10 0x10 0x10 0x0 0x0 0x0 0x0 0 0xf>;
++
++                              ETSI =
++                                      <1 0 0xb 0xb 0xb 0xb 0xb 0xb 0xb 0xb 
0xb 0xb 0xb 0xb 0x0 0x0 0x0 0x0 0 0xf>,
++                                      <2 0 0xb 0xb 0xb 0xb 0xb 0xb 0xb 0xb 
0xb 0xb 0xb 0xb 0x0 0x0 0x0 0x0 0 0xf>,
++                                      <3 0 0xb 0xb 0xb 0xb 0xb 0xb 0xb 0xb 
0xb 0xb 0xb 0xb 0x0 0x0 0x0 0x0 0 0xf>,
++                                      <4 0 0xb 0xb 0xb 0xb 0xb 0xb 0xb 0xb 
0xb 0xb 0xb 0xb 0x0 0x0 0x0 0x0 0 0xf>,
++                                      <5 0 0xb 0xb 0xb 0xb 0xb 0xb 0xb 0xb 
0xb 0xb 0xb 0xb 0x0 0x0 0x0 0x0 0 0xf>,
++                                      <6 0 0xb 0xb 0xb 0xb 0xb 0xb 0xb 0xb 
0xb 0xb 0xb 0xb 0x0 0x0 0x0 0x0 0 0xf>,
++                                      <7 0 0xb 0xb 0xb 0xb 0xb 0xb 0xb 0xb 
0xb 0xb 0xb 0xb 0x0 0x0 0x0 0x0 0 0xf>,
++                                      <8 0 0xb 0xb 0xb 0xb 0xb 0xb 0xb 0xb 
0xb 0xb 0xb 0xb 0x0 0x0 0x0 0x0 0 0xf>,
++                                      <9 0 0xb 0xb 0xb 0xb 0xb 0xb 0xb 0xb 
0xb 0xb 0xb 0xb 0x0 0x0 0x0 0x0 0 0xf>,
++                                      <10 0 0xb 0xb 0xb 0xb 0xb 0xb 0xb 0xb 
0xb 0xb 0xb 0xb 0x0 0x0 0x0 0x0 0 0xf>,
++                                      <11 0 0xb 0xb 0xb 0xb 0xb 0xb 0xb 0xb 
0xb 0xb 0xb 0xb 0x0 0x0 0x0 0x0 0 0xf>,
++                                      <12 0 0xb 0xb 0xb 0xb 0xb 0xb 0xb 0xb 
0xb 0xb 0xb 0xb 0x0 0x0 0x0 0x0 0 0xf>,
++                                      <13 0 0xb 0xb 0xb 0xb 0xb 0xb 0xb 0xb 
0xb 0xb 0xb 0xb 0x0 0x0 0x0 0x0 0 0xf>;
++                      };
++              };
+       };
+ 
+       /* Second mini-PCIe port */
+       pcie@3,0 {
+               /* Port 0, Lane 3 */
+               status = "okay";
++
++              mwlwifi {
++                      marvell,2ghz = <0>;
++                      marvell,chainmask = <4 4>;
++                      marvell,powertable {
++                              FCC =
++                                      <36 0 0x8 0x8 0x8 0x8 0x8 0x8 0x8 0x8 
0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0 0xf>,
++                                      <40 0 0x8 0x8 0x8 0x8 0x9 0x9 0x9 0x9 
0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0 0xf>,
++                                      <44 0 0x8 0x8 0x8 0x8 0x9 0x9 0x9 0x9 
0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0 0xf>,
++                                      <48 0 0x8 0x8 0x8 0x8 0x9 0x9 0x9 0x9 
0x9 0x9 0x9 0x9 0x9 0x9 0x9 0x9 0 0xf>,
++                                      <52 0 0xf 0xf 0xf 0xf 0xf 0xf 0xf 0xf 
0x12 0x12 0x12 0x12 0x12 0x12 0x12 0x12 0 0xf>,
++                                      <56 0 0xf 0xf 0xf 0xf 0xf 0xf 0xf 0xf 
0x12 0x12 0x12 0x12 0x12 0x12 0x12 0x12 0 0xf>,
++                                      <60 0 0xf 0xf 0xf 0xf 0xf 0xf 0xf 0xf 
0x12 0x12 0x12 0x12 0x12 0x12 0x12 0x12 0 0xf>,
++                                      <64 0 0xf 0xf 0xf 0xf 0xf 0xf 0xf 0xf 
0x12 0x12 0x12 0x12 0x12 0x12 0x12 0x12 0 0xf>,
++                                      <100 0 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                                      <104 0 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                                      <108 0 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                                      <112 0 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                                      <116 0 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                                      <120 0 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                                      <124 0 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                                      <128 0 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                                      <132 0 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                                      <136 0 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                                      <140 0 0x14 0x14 0x14 0x14 0x14 0x14 
0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0x14 0 0xf>,
++                                      <149 0 0x16 0x16 0x16 0x16 0x14 0x14 
0x14 0x14 0x15 0x15 0x15 0x15 0x14 0x14 0x14 0x14 0 0xf>,
++                                      <153 0 0x15 0x15 0x15 0x15 0x15 0x15 
0x15 0x15 0x15 0x15 0x15 0x15 0x14 0x14 0x14 0x14 0 0xf>,
++                                      <157 0 0x15 0x15 0x15 0x15 0x15 0x15 
0x15 0x15 0x15 0x15 0x15 0x15 0x14 0x14 0x14 0x14 0 0xf>,
++                                      <161 0 0x15 0x15 0x15 0x15 0x15 0x15 
0x15 0x15 0x15 0x15 0x15 0x15 0x14 0x14 0x14 0x14 0 0xf>,
++                                      <165 0 0x16 0x16 0x16 0x16 0x16 0x16 
0x16 0x16 0x15 0x15 0x15 0x15 0x14 0x14 0x14 0x14 0 0xf>;
++
++                              ETSI =
++                                      <36 0 0xc 0xc 0xc 0xc 0xc 0xc 0xc 0xc 
0xd 0xd 0xd 0xd 0xc 0xc 0xc 0xc 0 0xf>,
++                                      <40 0 0xc 0xc 0xc 0xc 0xc 0xc 0xc 0xc 
0xd 0xd 0xd 0xd 0xc 0xc 0xc 0xc 0 0xf>,
++                                      <44 0 0xc 0xc 0xc 0xc 0xc 0xc 0xc 0xc 
0xd 0xd 0xd 0xd 0xc 0xc 0xc 0xc 0 0xf>,
++                                      <48 0 0xc 0xc 0xc 0xc 0xc 0xc 0xc 0xc 
0xd 0xd 0xd 0xd 0xc 0xc 0xc 0xc 0 0xf>,
++                                      <52 0 0xc 0xc 0xc 0xc 0xc 0xc 0xc 0xc 
0xd 0xd 0xd 0xd 0xc 0xc 0xc 0xc 0 0xf>,
++                                      <56 0 0xc 0xc 0xc 0xc 0xc 0xc 0xc 0xc 
0xd 0xd 0xd 0xd 0xc 0xc 0xc 0xc 0 0xf>,
++                                      <60 0 0xc 0xc 0xc 0xc 0xc 0xc 0xc 0xc 
0xd 0xd 0xd 0xd 0xc 0xc 0xc 0xc 0 0xf>,
++                                      <64 0 0xc 0xc 0xc 0xc 0xc 0xc 0xc 0xc 
0xd 0xd 0xd 0xd 0xc 0xc 0xc 0xc 0 0xf>,
++                                      <100 0 0xc 0xc 0xc 0xc 0xc 0xc 0xc 0xc 
0xd 0xd 0xd 0xd 0xc 0xc 0xc 0xc 0 0xf>,
++                                      <104 0 0xc 0xc 0xc 0xc 0xc 0xc 0xc 0xc 
0xd 0xd 0xd 0xd 0xc 0xc 0xc 0xc 0 0xf>,
++                                      <108 0 0xc 0xc 0xc 0xc 0xc 0xc 0xc 0xc 
0xd 0xd 0xd 0xd 0xc 0xc 0xc 0xc 0 0xf>,
++                                      <112 0 0xc 0xc 0xc 0xc 0xc 0xc 0xc 0xc 
0xd 0xd 0xd 0xd 0xc 0xc 0xc 0xc 0 0xf>,
++                                      <116 0 0xc 0xc 0xc 0xc 0xc 0xc 0xc 0xc 
0xd 0xd 0xd 0xd 0xc 0xc 0xc 0xc 0 0xf>,
++                                      <120 0 0xc 0xc 0xc 0xc 0xc 0xc 0xc 0xc 
0xd 0xd 0xd 0xd 0xc 0xc 0xc 0xc 0 0xf>,
++                                      <124 0 0xc 0xc 0xc 0xc 0xc 0xc 0xc 0xc 
0xd 0xd 0xd 0xd 0xc 0xc 0xc 0xc 0 0xf>,
++                                      <128 0 0xc 0xc 0xc 0xc 0xc 0xc 0xc 0xc 
0xd 0xd 0xd 0xd 0xc 0xc 0xc 0xc 0 0xf>,
++                                      <132 0 0xc 0xc 0xc 0xc 0xc 0xc 0xc 0xc 
0xd 0xd 0xd 0xd 0xc 0xc 0xc 0xc 0 0xf>,
++                                      <136 0 0xc 0xc 0xc 0xc 0xc 0xc 0xc 0xc 
0xd 0xd 0xd 0xd 0xc 0xc 0xc 0xc 0 0xf>,
++                                      <140 0 0xc 0xc 0xc 0xc 0xc 0xc 0xc 0xc 
0xd 0xd 0xd 0xd 0xc 0xc 0xc 0xc 0 0xf>,
++                                      <149 0 0xc 0xc 0xc 0xc 0xc 0xc 0xc 0xc 
0xd 0xd 0xd 0xd 0xc 0xc 0xc 0xc 0 0xf>;
++                      };
++              };
+       };
+ };
+ 
diff --git 
a/target/linux/mvebu/patches-5.10/004-add_sata_disk_activity_trigger.patch 
b/target/linux/mvebu/patches-5.10/004-add_sata_disk_activity_trigger.patch
new file mode 100644
index 0000000000..2cb8f25490
--- /dev/null
+++ b/target/linux/mvebu/patches-5.10/004-add_sata_disk_activity_trigger.patch
@@ -0,0 +1,39 @@
+From 172230195068703b78ad5733a09492f5d6814c09 Mon Sep 17 00:00:00 2001
+From: Ansuel Smith <ansuels...@gmail.com>
+Date: Tue, 28 Feb 2017 14:15:50 +0100
+Subject: [PATCH] ARM: dts: armada: Add default trigger for sata led
+
+In others board we have the sata led set to function
+with the sata led trigger by default.
+This patch makes the same for these board that have sata
+led but get disabled by not associating it to any trigger.
+
+Signed-off-by: Ansuel Smith <ansuels...@gmail.com>
+Acked-by: Jason Cooper <ja...@lakedaemon.net>
+Signed-off-by: Gregory CLEMENT <gregory.clem...@free-electrons.com>
+---
+ arch/arm/boot/dts/armada-385-linksys-caiman.dts | 1 +
+ arch/arm/boot/dts/armada-385-linksys-cobra.dts  | 1 +
+ arch/arm/boot/dts/armada-xp-linksys-mamba.dts   | 1 +
+ 3 files changed, 3 insertions(+)
+
+--- a/arch/arm/boot/dts/armada-385-linksys-caiman.dts
++++ b/arch/arm/boot/dts/armada-385-linksys-caiman.dts
+@@ -68,6 +68,7 @@
+ 
+       sata {
+               label = "caiman:white:sata";
++              linux,default-trigger = "disk-activity";
+       };
+ };
+ 
+--- a/arch/arm/boot/dts/armada-385-linksys-cobra.dts
++++ b/arch/arm/boot/dts/armada-385-linksys-cobra.dts
+@@ -68,6 +68,7 @@
+ 
+       sata {
+               label = "cobra:white:sata";
++              linux,default-trigger = "disk-activity";
+       };
+ };
+ 
diff --git 
a/target/linux/mvebu/patches-5.10/005-linksys_hardcode_nand_ecc_settings.patch 
b/target/linux/mvebu/patches-5.10/005-linksys_hardcode_nand_ecc_settings.patch
new file mode 100644
index 0000000000..89a5e19803
--- /dev/null
+++ 
b/target/linux/mvebu/patches-5.10/005-linksys_hardcode_nand_ecc_settings.patch
@@ -0,0 +1,17 @@
+Newer Linksys boards might come with a Winbond W29N02GV which can be
+configured in different ways. Make sure we configure it the same way
+as the older chips so everything keeps working.
+
+Signed-off-by: Imre Kaloz <ka...@openwrt.org>
+
+--- a/arch/arm/boot/dts/armada-385-linksys.dtsi
++++ b/arch/arm/boot/dts/armada-385-linksys.dtsi
+@@ -148,6 +148,8 @@
+               reg = <0>;
+               label = "pxa3xx_nand-0";
+               nand-rb = <0>;
++              nand-ecc-strength = <4>;
++              nand-ecc-step-size = <512>;
+               marvell,nand-keep-config;
+               nand-on-flash-bbt;
+       };
diff --git 
a/target/linux/mvebu/patches-5.10/006-mvebu-Mangle-bootloader-s-kernel-arguments.patch
 
b/target/linux/mvebu/patches-5.10/006-mvebu-Mangle-bootloader-s-kernel-arguments.patch
new file mode 100644
index 0000000000..7be06318dc
--- /dev/null
+++ 
b/target/linux/mvebu/patches-5.10/006-mvebu-Mangle-bootloader-s-kernel-arguments.patch
@@ -0,0 +1,189 @@
+From 71270226b14733a4b1f2cde58ea9265caa50b38d Mon Sep 17 00:00:00 2001
+From: Adrian Panella <ianch...@outlook.com>
+Date: Thu, 9 Mar 2017 09:37:17 +0100
+Subject: [PATCH 67/69] generic: Mangle bootloader's kernel arguments
+
+The command-line arguments provided by the boot loader will be
+appended to a new device tree property: bootloader-args.
+If there is a property "append-rootblock" in DT under /chosen
+and a root= option in bootloaders command line it will be parsed
+and added to DT bootargs with the form: <append-rootblock>XX.
+Only command line ATAG will be processed, the rest of the ATAGs
+sent by bootloader will be ignored.
+This is usefull in dual boot systems, to get the current root partition
+without afecting the rest of the system.
+
+Signed-off-by: Adrian Panella <ianch...@outlook.com>
+
+This patch has been modified to be mvebu specific. The original patch 
+did not pass the bootloader cmdline on if no append-rootblock stanza 
+was found, resulting in blank cmdline and failure to boot.
+
+Signed-off-by: Michael Gray <michael.g...@lantisproject.com>
+---
+ arch/arm/Kconfig                        | 11 ++++
+ arch/arm/boot/compressed/atags_to_fdt.c | 85 ++++++++++++++++++++++++-
+ init/main.c                             | 16 +++++
+ 3 files changed, 111 insertions(+), 1 deletion(-)
+
+--- a/arch/arm/Kconfig
++++ b/arch/arm/Kconfig
+@@ -1825,6 +1825,17 @@ config ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEN
+         The command-line arguments provided by the boot loader will be
+         appended to the the device tree bootargs property.
+ 
++config ARM_ATAG_DTB_COMPAT_CMDLINE_MANGLE
++      bool "Append rootblock parsing bootloader's kernel arguments"
++      help
++        The command-line arguments provided by the boot loader will be
++        appended to a new device tree property: bootloader-args.
++        If there is a property "append-rootblock" in DT under /chosen 
++        and a root= option in bootloaders command line it will be parsed 
++        and added to DT bootargs with the form: <append-rootblock>XX.
++        Only command line ATAG will be processed, the rest of the ATAGs
++        sent by bootloader will be ignored.
++
+ endchoice
+ 
+ config CMDLINE
+--- a/arch/arm/boot/compressed/atags_to_fdt.c
++++ b/arch/arm/boot/compressed/atags_to_fdt.c
+@@ -4,6 +4,8 @@
+ 
+ #if defined(CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND)
+ #define do_extend_cmdline 1
++#elif defined(CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_MANGLE)
++#define do_extend_cmdline 1
+ #else
+ #define do_extend_cmdline 0
+ #endif
+@@ -67,6 +69,72 @@ static uint32_t get_cell_size(const void
+       return cell_size;
+ }
+ 
++#if defined(CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_MANGLE)
++
++static char *append_rootblock(char *dest, const char *str, int len, void *fdt)
++{
++      char *ptr, *end;
++      char *root="root=";
++      int i, l;
++      const char *rootblock;
++
++      //ARM doesn't have __HAVE_ARCH_STRSTR, so search manually
++      ptr = str - 1;
++
++      do {
++              //first find an 'r' at the begining or after a space
++              do {
++                      ptr++;
++                      ptr = strchr(ptr, 'r');
++                      if (!ptr)
++                              goto no_append;
++
++              } while (ptr != str && *(ptr-1) != ' ');
++
++              //then check for the rest
++              for(i = 1; i <= 4; i++)
++                      if(*(ptr+i) != *(root+i)) break;
++
++      } while (i != 5);
++
++      end = strchr(ptr, ' ');
++      end = end ? (end - 1) : (strchr(ptr, 0) - 1);
++
++      //find partition number (assumes format root=/dev/mtdXX | 
/dev/mtdblockXX | yy:XX )
++      for( i = 0; end >= ptr && *end >= '0' && *end <= '9'; end--, i++);
++      ptr = end + 1;
++
++      /* if append-rootblock property is set use it to append to command line 
*/
++      rootblock = getprop(fdt, "/chosen", "append-rootblock", &l);
++      if (rootblock == NULL)
++              goto no_append;
++
++      if (*dest != ' ') {
++              *dest = ' ';
++              dest++;
++              len++;
++      }
++
++      if (len + l + i <= COMMAND_LINE_SIZE) {
++              memcpy(dest, rootblock, l);
++              dest += l - 1;
++              memcpy(dest, ptr, i);
++              dest += i;
++      }
++
++      return dest;
++
++no_append:
++      len = strlen(str);
++      if (len + 1 < COMMAND_LINE_SIZE) {
++              memcpy(dest, str, len);
++              dest += len;
++      }
++
++      return dest;
++}
++#endif
++
+ static void merge_fdt_bootargs(void *fdt, const char *fdt_cmdline)
+ {
+       char cmdline[COMMAND_LINE_SIZE];
+@@ -86,12 +154,21 @@ static void merge_fdt_bootargs(void *fdt
+ 
+       /* and append the ATAG_CMDLINE */
+       if (fdt_cmdline) {
++
++#if defined(CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_MANGLE)
++              //save original bootloader args
++              //and append ubi.mtd with root partition number to current 
cmdline
++              setprop_string(fdt, "/chosen", "bootloader-args", fdt_cmdline);
++              ptr = append_rootblock(ptr, fdt_cmdline, len, fdt);
++
++#else
+               len = strlen(fdt_cmdline);
+               if (ptr - cmdline + len + 2 < COMMAND_LINE_SIZE) {
+                       *ptr++ = ' ';
+                       memcpy(ptr, fdt_cmdline, len);
+                       ptr += len;
+               }
++#endif
+       }
+       *ptr = '\0';
+ 
+@@ -166,7 +243,9 @@ int atags_to_fdt(void *atag_list, void *
+                       else
+                               setprop_string(fdt, "/chosen", "bootargs",
+                                              atag->u.cmdline.cmdline);
+-              } else if (atag->hdr.tag == ATAG_MEM) {
++              }
++#ifndef CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_MANGLE
++              else if (atag->hdr.tag == ATAG_MEM) {
+                       if (memcount >= sizeof(mem_reg_property)/4)
+                               continue;
+                       if (!atag->u.mem.size)
+@@ -210,6 +289,10 @@ int atags_to_fdt(void *atag_list, void *
+               setprop(fdt, "/memory", "reg", mem_reg_property,
+                       4 * memcount * memsize);
+       }
++#else
++
++      }
++#endif
+ 
+       return fdt_pack(fdt);
+ }
+--- a/init/main.c
++++ b/init/main.c
+@@ -104,6 +104,10 @@
+ #define CREATE_TRACE_POINTS
+ #include <trace/events/initcall.h>
+ 
++#if defined(CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_MANGLE)
++#include <linux/of.h>
++#endif
++
+ static int kernel_init(void *);
+ 
+ extern void init_IRQ(void);
diff --git 
a/target/linux/mvebu/patches-5.10/022-mvneta-driver-disallow-XDP-program-on-hardware-buffe.patch
 
b/target/linux/mvebu/patches-5.10/022-mvneta-driver-disallow-XDP-program-on-hardware-buffe.patch
new file mode 100644
index 0000000000..e8a41d9eb2
--- /dev/null
+++ 
b/target/linux/mvebu/patches-5.10/022-mvneta-driver-disallow-XDP-program-on-hardware-buffe.patch
@@ -0,0 +1,53 @@
+From 79572c98c554dcdb080bca547c871a51716dcdf8 Mon Sep 17 00:00:00 2001
+From: Sven Auhagen <sven.auha...@voleatech.de>
+Date: Sat, 25 Jan 2020 08:07:03 +0000
+Subject: [PATCH] mvneta driver disallow XDP program on hardware buffer
+ management
+
+Recently XDP Support was added to the mvneta driver
+for software buffer management only.
+It is still possible to attach an XDP program if
+hardware buffer management is used.
+It is not doing anything at that point.
+
+The patch disallows attaching XDP programs to mvneta
+if hardware buffer management is used.
+
+I am sorry about that. It is my first submission and I am having
+some troubles with the format of my emails.
+
+v4 -> v5:
+- Remove extra tabs
+
+v3 -> v4:
+- Please ignore v3 I accidentally submitted
+  my other patch with git-send-mail and v4 is correct
+
+v2 -> v3:
+- My mailserver corrupted the patch
+  resubmission with git-send-email
+
+v1 -> v2:
+- Fixing the patches indentation
+
+Signed-off-by: Sven Auhagen <sven.auha...@voleatech.de>
+Signed-off-by: David S. Miller <da...@davemloft.net>
+---
+ drivers/net/ethernet/marvell/mvneta.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+--- a/drivers/net/ethernet/marvell/mvneta.c
++++ b/drivers/net/ethernet/marvell/mvneta.c
+@@ -4263,6 +4263,12 @@ static int mvneta_xdp_setup(struct net_d
+               return -EOPNOTSUPP;
+       }
+ 
++      if (pp->bm_priv) {
++              NL_SET_ERR_MSG_MOD(extack,
++                                 "Hardware Buffer Management not supported on 
XDP");
++              return -EOPNOTSUPP;
++      }
++
+       need_update = !!pp->xdp_prog != !!prog;
+       if (running && need_update)
+               mvneta_stop(dev);
diff --git a/target/linux/mvebu/patches-5.10/030-linkstation-poweroff.patch 
b/target/linux/mvebu/patches-5.10/030-linkstation-poweroff.patch
new file mode 100644
index 0000000000..173527332a
--- /dev/null
+++ b/target/linux/mvebu/patches-5.10/030-linkstation-poweroff.patch
@@ -0,0 +1,20 @@
+--- a/drivers/power/reset/Kconfig
++++ b/drivers/power/reset/Kconfig
+@@ -99,6 +99,17 @@ config POWER_RESET_HISI
+       help
+         Reboot support for Hisilicon boards.
+ 
++config POWER_RESET_LINKSTATION
++      tristate "Buffalo LinkStation power-off driver"
++      depends on ARCH_MVEBU || COMPILE_TEST
++      depends on OF_MDIO && PHYLIB
++      help
++        This driver supports turning off some Buffalo LinkStations by
++        setting an output pin at the ethernet PHY to the correct state.
++        It also makes the device compatible with the WoL function.
++
++        Say Y here if you have a Buffalo LinkStation LS421D/E.
++
+ config POWER_RESET_MSM
+       bool "Qualcomm MSM power-off driver"
+       depends on ARCH_QCOM
diff --git a/target/linux/mvebu/patches-5.10/100-find_active_root.patch 
b/target/linux/mvebu/patches-5.10/100-find_active_root.patch
new file mode 100644
index 0000000000..854031b0d5
--- /dev/null
+++ b/target/linux/mvebu/patches-5.10/100-find_active_root.patch
@@ -0,0 +1,60 @@
+The WRT1900AC among other Linksys routers uses a dual-firmware layout.
+Dynamically rename the active partition to "ubi".
+
+Signed-off-by: Imre Kaloz <ka...@openwrt.org>
+
+--- a/drivers/mtd/parsers/ofpart.c
++++ b/drivers/mtd/parsers/ofpart.c
+@@ -21,6 +21,8 @@ static bool node_has_compatible(struct d
+       return of_get_property(pp, "compatible", NULL);
+ }
+ 
++static int mangled_rootblock;
++
+ static int parse_fixed_partitions(struct mtd_info *master,
+                                 const struct mtd_partition **pparts,
+                                 struct mtd_part_parser_data *data)
+@@ -29,6 +31,7 @@ static int parse_fixed_partitions(struct
+       struct device_node *mtd_node;
+       struct device_node *ofpart_node;
+       const char *partname;
++      const char *owrtpart = "ubi";
+       struct device_node *pp;
+       int nr_parts, i, ret = 0;
+       bool dedicated = true;
+@@ -106,9 +109,13 @@ static int parse_fixed_partitions(struct
+               parts[i].size = of_read_number(reg + a_cells, s_cells);
+               parts[i].of_node = pp;
+ 
+-              partname = of_get_property(pp, "label", &len);
+-              if (!partname)
+-                      partname = of_get_property(pp, "name", &len);
++              if (mangled_rootblock && (i == mangled_rootblock)) {
++                      partname = owrtpart;
++              } else {
++                      partname = of_get_property(pp, "label", &len);
++                      if (!partname)
++                              partname = of_get_property(pp, "name", &len);
++              }
+               parts[i].name = partname;
+ 
+               if (of_get_property(pp, "read-only", &len))
+@@ -215,6 +222,18 @@ static int __init ofpart_parser_init(voi
+       return 0;
+ }
+ 
++static int __init active_root(char *str)
++{
++      get_option(&str, &mangled_rootblock);
++
++      if (!mangled_rootblock)
++              return 1;
++
++      return 1;
++}
++
++__setup("mangled_rootblock=", active_root);
++
+ static void __exit ofpart_parser_exit(void)
+ {
+       deregister_mtd_parser(&ofpart_parser);
diff --git a/target/linux/mvebu/patches-5.10/102-revert_i2c_delay.patch 
b/target/linux/mvebu/patches-5.10/102-revert_i2c_delay.patch
new file mode 100644
index 0000000000..930c0f9494
--- /dev/null
+++ b/target/linux/mvebu/patches-5.10/102-revert_i2c_delay.patch
@@ -0,0 +1,15 @@
+--- a/arch/arm/boot/dts/armada-xp.dtsi
++++ b/arch/arm/boot/dts/armada-xp.dtsi
+@@ -237,12 +237,10 @@
+ };
+ 
+ &i2c0 {
+-      compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
+       reg = <0x11000 0x100>;
+ };
+ 
+ &i2c1 {
+-      compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c";
+       reg = <0x11100 0x100>;
+ };
+ 
diff --git 
a/target/linux/mvebu/patches-5.10/205-armada-385-rd-mtd-partitions.patch 
b/target/linux/mvebu/patches-5.10/205-armada-385-rd-mtd-partitions.patch
new file mode 100644
index 0000000000..31bd53b1f3
--- /dev/null
+++ b/target/linux/mvebu/patches-5.10/205-armada-385-rd-mtd-partitions.patch
@@ -0,0 +1,19 @@
+--- a/arch/arm/boot/dts/armada-388-rd.dts
++++ b/arch/arm/boot/dts/armada-388-rd.dts
+@@ -103,6 +103,16 @@
+               compatible = "st,m25p128", "jedec,spi-nor";
+               reg = <0>; /* Chip select 0 */
+               spi-max-frequency = <108000000>;
++
++              partition@0 {
++                      label = "uboot";
++                      reg = <0 0x400000>;
++              };
++
++              partition@1 {
++                      label = "firmware";
++                      reg = <0x400000 0xc00000>;
++              };
+       };
+ };
+ 
diff --git 
a/target/linux/mvebu/patches-5.10/206-ARM-mvebu-385-ap-Add-partitions.patch 
b/target/linux/mvebu/patches-5.10/206-ARM-mvebu-385-ap-Add-partitions.patch
new file mode 100644
index 0000000000..2057e31c7e
--- /dev/null
+++ b/target/linux/mvebu/patches-5.10/206-ARM-mvebu-385-ap-Add-partitions.patch
@@ -0,0 +1,35 @@
+From 9861f93a59142a3131870df2521eb2deb73026d7 Mon Sep 17 00:00:00 2001
+From: Maxime Ripard <maxime.rip...@free-electrons.com>
+Date: Tue, 13 Jan 2015 11:14:09 +0100
+Subject: [PATCH 2/2] ARM: mvebu: 385-ap: Add partitions
+
+Signed-off-by: Maxime Ripard <maxime.rip...@free-electrons.com>
+---
+ arch/arm/boot/dts/armada-385-db-ap.dts | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+--- a/arch/arm/boot/dts/armada-385-db-ap.dts
++++ b/arch/arm/boot/dts/armada-385-db-ap.dts
+@@ -218,19 +218,19 @@
+                       #size-cells = <1>;
+ 
+                       partition@0 {
+-                              label = "U-Boot";
++                              label = "u-boot";
+                               reg = <0x00000000 0x00800000>;
+                               read-only;
+                       };
+ 
+                       partition@800000 {
+-                              label = "uImage";
++                              label = "kernel";
+                               reg = <0x00800000 0x00400000>;
+                               read-only;
+                       };
+ 
+                       partition@c00000 {
+-                              label = "Root";
++                              label = "ubi";
+                               reg = <0x00c00000 0x3f400000>;
+                       };
+               };
diff --git 
a/target/linux/mvebu/patches-5.10/230-armada-xp-linksys-mamba-broken-idle.patch 
b/target/linux/mvebu/patches-5.10/230-armada-xp-linksys-mamba-broken-idle.patch
new file mode 100644
index 0000000000..16112d53fc
--- /dev/null
+++ 
b/target/linux/mvebu/patches-5.10/230-armada-xp-linksys-mamba-broken-idle.patch
@@ -0,0 +1,10 @@
+--- a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
++++ b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
+@@ -485,3 +485,7 @@
+               };
+       };
+ };
++
++&coherencyfab {
++      broken-idle;
++};
diff --git 
a/target/linux/mvebu/patches-5.10/231-armada-xp-linksys-mamba-wan.patch 
b/target/linux/mvebu/patches-5.10/231-armada-xp-linksys-mamba-wan.patch
new file mode 100644
index 0000000000..4315abc7d2
--- /dev/null
+++ b/target/linux/mvebu/patches-5.10/231-armada-xp-linksys-mamba-wan.patch
@@ -0,0 +1,11 @@
+--- a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
++++ b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
+@@ -387,7 +387,7 @@
+ 
+                       port@4 {
+                               reg = <4>;
+-                              label = "internet";
++                              label = "wan";
+                       };
+ 
+                       port@5 {
diff --git a/target/linux/mvebu/patches-5.10/240-linksys-status-led.patch 
b/target/linux/mvebu/patches-5.10/240-linksys-status-led.patch
new file mode 100644
index 0000000000..e5e83572c9
--- /dev/null
+++ b/target/linux/mvebu/patches-5.10/240-linksys-status-led.patch
@@ -0,0 +1,50 @@
+--- a/arch/arm/boot/dts/armada-385-linksys.dtsi
++++ b/arch/arm/boot/dts/armada-385-linksys.dtsi
+@@ -14,6 +14,13 @@
+       compatible = "linksys,armada385", "marvell,armada385",
+                    "marvell,armada380";
+ 
++      aliases {
++              led-boot = &led_power;
++              led-failsafe = &led_power;
++              led-running = &led_power;
++              led-upgrade = &led_power;
++      };
++
+       chosen {
+               stdout-path = "serial0:115200n8";
+       };
+@@ -71,7 +78,7 @@
+               pinctrl-0 = <&gpio_leds_pins>;
+               pinctrl-names = "default";
+ 
+-              power {
++              led_power: power {
+                       gpios = <&gpio1 23 GPIO_ACTIVE_HIGH>;
+                       default-state = "on";
+               };
+--- a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
++++ b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
+@@ -26,6 +26,13 @@
+       compatible = "linksys,mamba", "marvell,armadaxp-mv78230",
+                    "marvell,armadaxp", "marvell,armada-370-xp";
+ 
++      aliases {
++              led-boot = &led_power;
++              led-failsafe = &led_power;
++              led-running = &led_power;
++              led-upgrade = &led_power;
++      };
++
+       chosen {
+               bootargs = "console=ttyS0,115200";
+               stdout-path = &uart0;
+@@ -197,7 +204,7 @@
+               pinctrl-0 = <&power_led_pin>;
+               pinctrl-names = "default";
+ 
+-              power {
++              led_power: power {
+                       label = "mamba:white:power";
+                       gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
+                       default-state = "on";
diff --git 
a/target/linux/mvebu/patches-5.10/241-linksys-use-eth0-as-cpu-port.patch 
b/target/linux/mvebu/patches-5.10/241-linksys-use-eth0-as-cpu-port.patch
new file mode 100644
index 0000000000..84d49a004b
--- /dev/null
+++ b/target/linux/mvebu/patches-5.10/241-linksys-use-eth0-as-cpu-port.patch
@@ -0,0 +1,25 @@
+--- a/arch/arm/boot/dts/armada-385-linksys.dtsi
++++ b/arch/arm/boot/dts/armada-385-linksys.dtsi
+@@ -116,7 +116,7 @@
+ };
+ 
+ &eth2 {
+-      status = "okay";
++      status = "disabled";
+       phy-mode = "sgmii";
+       buffer-manager = <&bm>;
+       bm,pool-long = <2>;
+@@ -200,10 +200,10 @@
+                               label = "wan";
+                       };
+ 
+-                      port@5 {
+-                              reg = <5>;
++                      port@6 {
++                              reg = <6>;
+                               label = "cpu";
+-                              ethernet = <&eth2>;
++                              ethernet = <&eth0>;
+ 
+                               fixed-link {
+                                       speed = <1000>;
diff --git 
a/target/linux/mvebu/patches-5.10/250-adjust-compatible-for-linksys.patch 
b/target/linux/mvebu/patches-5.10/250-adjust-compatible-for-linksys.patch
new file mode 100644
index 0000000000..a5d3e63810
--- /dev/null
+++ b/target/linux/mvebu/patches-5.10/250-adjust-compatible-for-linksys.patch
@@ -0,0 +1,68 @@
+--- a/arch/arm/boot/dts/armada-385-linksys-rango.dts
++++ b/arch/arm/boot/dts/armada-385-linksys-rango.dts
+@@ -12,8 +12,8 @@
+ 
+ / {
+       model = "Linksys WRT3200ACM";
+-      compatible = "linksys,rango", "linksys,armada385", "marvell,armada385",
+-                   "marvell,armada380";
++      compatible = "linksys,wrt3200acm", "linksys,rango", "linksys,armada385",
++                   "marvell,armada385", "marvell,armada380";
+ };
+ 
+ &expander0 {
+--- a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
++++ b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
+@@ -22,9 +22,10 @@
+ #include "armada-xp-mv78230.dtsi"
+ 
+ / {
+-      model = "Linksys WRT1900AC";
+-      compatible = "linksys,mamba", "marvell,armadaxp-mv78230",
+-                   "marvell,armadaxp", "marvell,armada-370-xp";
++      model = "Linksys WRT1900AC v1";
++      compatible = "linksys,wrt1900ac-v1", "linksys,mamba",
++                   "marvell,armadaxp-mv78230", "marvell,armadaxp",
++                   "marvell,armada-370-xp";
+ 
+       aliases {
+               led-boot = &led_power;
+--- a/arch/arm/boot/dts/armada-385-linksys-cobra.dts
++++ b/arch/arm/boot/dts/armada-385-linksys-cobra.dts
+@@ -9,8 +9,9 @@
+ #include "armada-385-linksys.dtsi"
+ 
+ / {
+-      model = "Linksys WRT1900ACv2";
+-      compatible = "linksys,cobra", "linksys,armada385", "marvell,armada385",
++      model = "Linksys WRT1900AC v2";
++      compatible = "linksys,wrt1900ac-v2", "linksys,cobra",
++                   "linksys,armada385", "marvell,armada385",
+                    "marvell,armada380";
+ };
+ 
+--- a/arch/arm/boot/dts/armada-385-linksys-caiman.dts
++++ b/arch/arm/boot/dts/armada-385-linksys-caiman.dts
+@@ -10,8 +10,8 @@
+ 
+ / {
+       model = "Linksys WRT1200AC";
+-      compatible = "linksys,caiman", "linksys,armada385", "marvell,armada385",
+-                   "marvell,armada380";
++      compatible = "linksys,wrt1200ac", "linksys,caiman", "linksys,armada385",
++                   "marvell,armada385", "marvell,armada380";
+ };
+ 
+ &expander0 {
+--- a/arch/arm/boot/dts/armada-385-linksys-shelby.dts
++++ b/arch/arm/boot/dts/armada-385-linksys-shelby.dts
+@@ -10,7 +10,8 @@
+ 
+ / {
+       model = "Linksys WRT1900ACS";
+-      compatible = "linksys,shelby", "linksys,armada385", "marvell,armada385",
++      compatible = "linksys,wrt1900acs", "linksys,shelby",
++                   "linksys,armada385", "marvell,armada385",
+                    "marvell,armada380";
+ };
+ 
diff --git 
a/target/linux/mvebu/patches-5.10/300-mvneta-tx-queue-workaround.patch 
b/target/linux/mvebu/patches-5.10/300-mvneta-tx-queue-workaround.patch
new file mode 100644
index 0000000000..3c2ea5ecf7
--- /dev/null
+++ b/target/linux/mvebu/patches-5.10/300-mvneta-tx-queue-workaround.patch
@@ -0,0 +1,26 @@
+The hardware queue scheduling is apparently configured with fixed
+priorities, which creates a nasty fairness issue where traffic from one
+CPU can starve traffic from all other CPUs.
+
+Work around this issue by forcing all tx packets to go through one CPU,
+until this issue is fixed properly.
+
+Signed-off-by: Felix Fietkau <n...@nbd.name>
+---
+--- a/drivers/net/ethernet/marvell/mvneta.c
++++ b/drivers/net/ethernet/marvell/mvneta.c
+@@ -4684,6 +4684,14 @@ static int mvneta_ethtool_set_eee(struct
+       return phylink_ethtool_set_eee(pp->phylink, eee);
+ }
+ 
++static u16 mvneta_select_queue(struct net_device *dev, struct sk_buff *skb,
++                             struct net_device *sb_dev)
++{
++      /* XXX: hardware queue scheduling is broken,
++       * use only one queue until it is fixed */
++      return 0;
++}
++
+ static const struct net_device_ops mvneta_netdev_ops = {
+       .ndo_open            = mvneta_open,
+       .ndo_stop            = mvneta_stop,
diff --git 
a/target/linux/mvebu/patches-5.10/400-cpuidle-mvebu-indicate-failure-to-enter-deeper-sleep.patch
 
b/target/linux/mvebu/patches-5.10/400-cpuidle-mvebu-indicate-failure-to-enter-deeper-sleep.patch
new file mode 100644
index 0000000000..29f36be460
--- /dev/null
+++ 
b/target/linux/mvebu/patches-5.10/400-cpuidle-mvebu-indicate-failure-to-enter-deeper-sleep.patch
@@ -0,0 +1,40 @@
+From c28b2d367da8a471482e6a4aa8337ab6369a80c2 Mon Sep 17 00:00:00 2001
+From: Russell King <rmk+ker...@arm.linux.org.uk>
+Date: Sat, 3 Oct 2015 09:13:05 +0100
+Subject: cpuidle: mvebu: indicate failure to enter deeper sleep states
+
+The cpuidle ->enter method expects the return value to be the sleep
+state we entered.  Returning negative numbers or other codes is not
+permissible since coupled CPU idle was merged.
+
+At least some of the mvebu_v7_cpu_suspend() implementations return the
+value from cpu_suspend(), which returns zero if the CPU vectors back
+into the kernel via cpu_resume() (the success case), or the non-zero
+return value of the suspend actor, or one (failure cases).
+
+We do not want to be returning the failure case value back to CPU idle
+as that indicates that we successfully entered one of the deeper idle
+states.  Always return zero instead, indicating that we slept for the
+shortest amount of time.
+
+Signed-off-by: Russell King <rmk+ker...@arm.linux.org.uk>
+---
+ drivers/cpuidle/cpuidle-mvebu-v7.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+--- a/drivers/cpuidle/cpuidle-mvebu-v7.c
++++ b/drivers/cpuidle/cpuidle-mvebu-v7.c
+@@ -39,8 +39,12 @@ static int mvebu_v7_enter_idle(struct cp
+       ret = mvebu_v7_cpu_suspend(deepidle);
+       cpu_pm_exit();
+ 
++      /*
++       * If we failed to enter the desired state, indicate that we
++       * slept lightly.
++       */
+       if (ret)
+-              return ret;
++              return 0;
+ 
+       return index;
+ }
diff --git 
a/target/linux/mvebu/patches-5.10/401-pci-mvebu-time-out-reset-on-link-up.patch 
b/target/linux/mvebu/patches-5.10/401-pci-mvebu-time-out-reset-on-link-up.patch
new file mode 100644
index 0000000000..4058dc8ed5
--- /dev/null
+++ 
b/target/linux/mvebu/patches-5.10/401-pci-mvebu-time-out-reset-on-link-up.patch
@@ -0,0 +1,60 @@
+From 287b9df160b6159f8d385424904f8bac501280c1 Mon Sep 17 00:00:00 2001
+From: Russell King <rmk+ker...@armlinux.org.uk>
+Date: Sat, 9 Jul 2016 10:58:16 +0100
+Subject: pci: mvebu: time out reset on link up
+
+If the port reports that the link is up while we are resetting, there's
+little point in waiting for the full duration.
+
+Signed-off-by: Russell King <rmk+ker...@armlinux.org.uk>
+---
+ drivers/pci/controller/pci-mvebu.c | 20 ++++++++++++++------
+ 1 file changed, 14 insertions(+), 6 deletions(-)
+
+--- a/drivers/pci/controller/pci-mvebu.c
++++ b/drivers/pci/controller/pci-mvebu.c
+@@ -928,6 +928,7 @@ static int mvebu_pcie_powerup(struct mve
+ 
+       if (port->reset_gpio) {
+               u32 reset_udelay = PCI_PM_D3COLD_WAIT * 1000;
++              unsigned int i;
+ 
+               of_property_read_u32(port->dn, "reset-delay-us",
+                                    &reset_udelay);
+@@ -935,7 +936,13 @@ static int mvebu_pcie_powerup(struct mve
+               udelay(100);
+ 
+               gpiod_set_value_cansleep(port->reset_gpio, 0);
+-              msleep(reset_udelay / 1000);
++              for (i = 0; i < reset_udelay; i += 1000) {
++                      if (mvebu_pcie_link_up(port))
++                              break;
++                      msleep(1);
++              }
++
++              printk("%s: reset completed in %dus\n", port->name, i);
+       }
+ 
+       return 0;
+@@ -1099,15 +1106,16 @@ static int mvebu_pcie_probe(struct platf
+               if (!child)
+                       continue;
+ 
+-              ret = mvebu_pcie_powerup(port);
+-              if (ret < 0)
+-                      continue;
+-
+               port->base = mvebu_pcie_map_registers(pdev, child, port);
+               if (IS_ERR(port->base)) {
+                       dev_err(dev, "%s: cannot map registers\n", port->name);
+                       port->base = NULL;
+-                      mvebu_pcie_powerdown(port);
++                      continue;
++              }
++
++              ret = mvebu_pcie_powerup(port);
++              if (ret < 0) {
++                      port->base = NULL;
+                       continue;
+               }
+ 
diff --git 
a/target/linux/mvebu/patches-5.10/405-PCI-aardvark-Improve-link-training.patch 
b/target/linux/mvebu/patches-5.10/405-PCI-aardvark-Improve-link-training.patch
new file mode 100644
index 0000000000..64d6e0323b
--- /dev/null
+++ 
b/target/linux/mvebu/patches-5.10/405-PCI-aardvark-Improve-link-training.patch
@@ -0,0 +1,135 @@
+From 43fc679ced18006b12d918d7a8a4af392b7fbfe7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Marek=20Beh=C3=BAn?= <marek.be...@nic.cz>
+Date: Thu, 30 Apr 2020 10:06:17 +0200
+Subject: [PATCH] PCI: aardvark: Improve link training
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Currently the aardvark driver trains link in PCIe gen2 mode. This may
+cause some buggy gen1 cards (such as Compex WLE900VX) to be unstable or
+even not detected. Moreover when ASPM code tries to retrain link second
+time, these cards may stop responding and link goes down. If gen1 is
+used this does not happen.
+
+Unconditionally forcing gen1 is not a good solution since it may have
+performance impact on gen2 cards.
+
+To overcome this, read 'max-link-speed' property (as defined in PCI
+device tree bindings) and use this as max gen mode. Then iteratively try
+link training at this mode or lower until successful. After successful
+link training choose final controller gen based on Negotiated Link Speed
+from Link Status register, which should match card speed.
+
+Link: https://lore.kernel.org/r/20200430080625.26070-5-p...@kernel.org
+Tested-by: Tomasz Maciej Nowak <tmn...@gmail.com>
+Signed-off-by: Pali Rohár <p...@kernel.org>
+Signed-off-by: Marek Behún <marek.be...@nic.cz>
+Signed-off-by: Lorenzo Pieralisi <lorenzo.pieral...@arm.com>
+Reviewed-by: Rob Herring <r...@kernel.org>
+Acked-by: Thomas Petazzoni <thomas.petazz...@bootlin.com>
+---
+ drivers/pci/controller/pci-aardvark.c | 114 ++++++++++++++++++++------
+ 1 file changed, 89 insertions(+), 25 deletions(-)
+
+--- a/drivers/pci/controller/pci-aardvark.c
++++ b/drivers/pci/controller/pci-aardvark.c
+@@ -253,6 +251,85 @@ static void advk_pcie_wait_for_retrain(s
+       }
+ }
+ 
++static int advk_pcie_train_at_gen(struct advk_pcie *pcie, int gen)
++{
++      int ret, neg_gen;
++      u32 reg;
++
++      /* Setup link speed */
++      reg = advk_readl(pcie, PCIE_CORE_CTRL0_REG);
++      reg &= ~PCIE_GEN_SEL_MSK;
++      if (gen == 3)
++              reg |= SPEED_GEN_3;
++      else if (gen == 2)
++              reg |= SPEED_GEN_2;
++      else
++              reg |= SPEED_GEN_1;
++      advk_writel(pcie, reg, PCIE_CORE_CTRL0_REG);
++
++      /*
++       * Enable link training. This is not needed in every call to this
++       * function, just once suffices, but it does not break anything either.
++       */
++      reg = advk_readl(pcie, PCIE_CORE_CTRL0_REG);
++      reg |= LINK_TRAINING_EN;
++      advk_writel(pcie, reg, PCIE_CORE_CTRL0_REG);
++
++      /*
++       * Start link training immediately after enabling it.
++       * This solves problems for some buggy cards.
++       */
++      reg = advk_readl(pcie, PCIE_CORE_LINK_CTRL_STAT_REG);
++      reg |= PCIE_CORE_LINK_TRAINING;
++      advk_writel(pcie, reg, PCIE_CORE_LINK_CTRL_STAT_REG);
++
++      ret = advk_pcie_wait_for_link(pcie);
++      if (ret)
++              return ret;
++
++      reg = advk_readl(pcie, PCIE_CORE_LINK_CTRL_STAT_REG);
++      neg_gen = (reg >> PCIE_CORE_LINK_SPEED_SHIFT) & 0xf;
++
++      return neg_gen;
++}
++
++static void advk_pcie_train_link(struct advk_pcie *pcie)
++{
++      struct device *dev = &pcie->pdev->dev;
++      int neg_gen = -1, gen;
++
++      /*
++       * Try link training at link gen specified by device tree property
++       * 'max-link-speed'. If this fails, iteratively train at lower gen.
++       */
++      for (gen = pcie->link_gen; gen > 0; --gen) {
++              neg_gen = advk_pcie_train_at_gen(pcie, gen);
++              if (neg_gen > 0)
++                      break;
++      }
++
++      if (neg_gen < 0)
++              goto err;
++
++      /*
++       * After successful training if negotiated gen is lower than requested,
++       * train again on negotiated gen. This solves some stability issues for
++       * some buggy gen1 cards.
++       */
++      if (neg_gen < gen) {
++              gen = neg_gen;
++              neg_gen = advk_pcie_train_at_gen(pcie, gen);
++      }
++
++      if (neg_gen == gen) {
++              dev_info(dev, "link up at gen %i\n", gen);
++              return;
++      }
++
++err:
++      dev_err(dev, "link never came up\n");
++}
++
+ static void advk_pcie_setup_hw(struct advk_pcie *pcie)
+ {
+       u32 reg;
+@@ -1036,6 +1094,12 @@ static int advk_pcie_probe(struct platfo
+               return ret;
+       }
+ 
++      ret = of_pci_get_max_link_speed(dev->of_node);
++      if (ret <= 0 || ret > 3)
++              pcie->link_gen = 3;
++      else
++              pcie->link_gen = ret;
++
+       advk_pcie_setup_hw(pcie);
+ 
+       advk_sw_pci_bridge_init(pcie);
diff --git 
a/target/linux/mvebu/patches-5.10/406-PCI-aardvark-Issue-PERST-via-GPIO.patch 
b/target/linux/mvebu/patches-5.10/406-PCI-aardvark-Issue-PERST-via-GPIO.patch
new file mode 100644
index 0000000000..0e92c21b93
--- /dev/null
+++ 
b/target/linux/mvebu/patches-5.10/406-PCI-aardvark-Issue-PERST-via-GPIO.patch
@@ -0,0 +1,57 @@
+From 5169a9851daaa2782a7bd2bb83d5b1bd224b2879 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <p...@kernel.org>
+Date: Thu, 30 Apr 2020 10:06:18 +0200
+Subject: [PATCH] PCI: aardvark: Issue PERST via GPIO
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Add support for issuing PERST via GPIO specified in 'reset-gpios'
+property (as described in PCI device tree bindings).
+
+Some buggy cards (e.g. Compex WLE900VX or WLE1216) are not detected
+after reboot when PERST is not issued during driver initialization.
+
+If bootloader already enabled link training then issuing PERST has no
+effect for some buggy cards (e.g. Compex WLE900VX) and these cards are
+not detected. We therefore clear the LINK_TRAINING_EN register before.
+
+It was observed that Compex WLE900VX card needs to be in PERST reset
+for at least 10ms if bootloader enabled link training.
+
+Tested on Turris MOX.
+
+Link: https://lore.kernel.org/r/20200430080625.26070-6-p...@kernel.org
+Tested-by: Tomasz Maciej Nowak <tmn...@gmail.com>
+Signed-off-by: Pali Rohár <p...@kernel.org>
+Signed-off-by: Lorenzo Pieralisi <lorenzo.pieral...@arm.com>
+Acked-by: Thomas Petazzoni <thomas.petazz...@bootlin.com>
+---
+ drivers/pci/controller/pci-aardvark.c | 43 ++++++++++++++++++++++++++-
+ 1 file changed, 42 insertions(+), 1 deletion(-)
+
+--- a/drivers/pci/controller/pci-aardvark.c
++++ b/drivers/pci/controller/pci-aardvark.c
+@@ -1094,6 +1119,22 @@ static int advk_pcie_probe(struct platfo
+               return ret;
+       }
+ 
++      pcie->reset_gpio = devm_gpiod_get_from_of_node(dev, dev->of_node,
++                                                     "reset-gpios", 0,
++                                                     GPIOD_OUT_LOW,
++                                                     "pcie1-reset");
++      ret = PTR_ERR_OR_ZERO(pcie->reset_gpio);
++      if (ret) {
++              if (ret == -ENOENT) {
++                      pcie->reset_gpio = NULL;
++              } else {
++                      if (ret != -EPROBE_DEFER)
++                              dev_err(dev, "Failed to get reset-gpio: %i\n",
++                                      ret);
++                      return ret;
++              }
++      }
++
+       ret = of_pci_get_max_link_speed(dev->of_node);
+       if (ret <= 0 || ret > 3)
+               pcie->link_gen = 3;
diff --git 
a/target/linux/mvebu/patches-5.10/407-PCI-aardvark-Add-PHY-support.patch 
b/target/linux/mvebu/patches-5.10/407-PCI-aardvark-Add-PHY-support.patch
new file mode 100644
index 0000000000..a7702b8327
--- /dev/null
+++ b/target/linux/mvebu/patches-5.10/407-PCI-aardvark-Add-PHY-support.patch
@@ -0,0 +1,116 @@
+From 366697018c9a2aa67d457bfdc495115cface6ae8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Marek=20Beh=C3=BAn?= <marek.be...@nic.cz>
+Date: Thu, 30 Apr 2020 10:06:20 +0200
+Subject: [PATCH] PCI: aardvark: Add PHY support
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+With recent proposed changes for U-Boot it is possible that bootloader
+won't initialize the PHY for this controller (currently the PHY is
+initialized regardless whether PCI is used in U-Boot, but with these
+proposed changes the PHY is initialized only on request).
+
+Since the mvebu-a3700-comphy driver by Miquèl Raynal supports enabling
+PCIe PHY, and since Linux' functionality should be independent on what
+bootloader did, add code for enabling generic PHY if found in device OF
+node.
+
+The mvebu-a3700-comphy driver does PHY powering via SMC calls to ARM
+Trusted Firmware. The corresponding code in ARM Trusted Firmware skips
+one register write which U-Boot does not: step 7 ("Enable TX"), see [1].
+Instead ARM Trusted Firmware expects PCIe driver to do this step,
+probably because the register is in PCIe controller address space,
+instead of PHY address space. We therefore add this step into the
+advk_pcie_setup_hw function.
+
+[1] 
https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/tree/drivers/marvell/comphy/phy-comphy-3700.c?h=v2.3-rc2#n836
+
+Link: https://lore.kernel.org/r/20200430080625.26070-8-p...@kernel.org
+Tested-by: Tomasz Maciej Nowak <tmn...@gmail.com>
+Signed-off-by: Marek Behún <marek.be...@nic.cz>
+Signed-off-by: Lorenzo Pieralisi <lorenzo.pieral...@arm.com>
+Reviewed-by: Rob Herring <r...@kernel.org>
+Acked-by: Thomas Petazzoni <thomas.petazz...@bootlin.com>
+Cc: Miquèl Raynal <miquel.ray...@bootlin.com>
+---
+ drivers/pci/controller/pci-aardvark.c | 69 +++++++++++++++++++++++++++
+ 1 file changed, 69 insertions(+)
+
+--- a/drivers/pci/controller/pci-aardvark.c
++++ b/drivers/pci/controller/pci-aardvark.c
+@@ -358,6 +362,11 @@ static void advk_pcie_setup_hw(struct ad
+ 
+       advk_pcie_issue_perst(pcie);
+ 
++      /* Enable TX */
++      reg = advk_readl(pcie, PCIE_CORE_REF_CLK_REG);
++      reg |= PCIE_CORE_REF_CLK_TX_ENABLE;
++      advk_writel(pcie, reg, PCIE_CORE_REF_CLK_REG);
++
+       /* Set to Direct mode */
+       reg = advk_readl(pcie, CTRL_CONFIG_REG);
+       reg &= ~(CTRL_MODE_MASK << CTRL_MODE_SHIFT);
+@@ -1084,6 +1093,62 @@ out_release_res:
+       return err;
+ }
+ 
++static void __maybe_unused advk_pcie_disable_phy(struct advk_pcie *pcie)
++{
++      phy_power_off(pcie->phy);
++      phy_exit(pcie->phy);
++}
++
++static int advk_pcie_enable_phy(struct advk_pcie *pcie)
++{
++      int ret;
++
++      if (!pcie->phy)
++              return 0;
++
++      ret = phy_init(pcie->phy);
++      if (ret)
++              return ret;
++
++      ret = phy_set_mode(pcie->phy, PHY_MODE_PCIE);
++      if (ret) {
++              phy_exit(pcie->phy);
++              return ret;
++      }
++
++      ret = phy_power_on(pcie->phy);
++      if (ret) {
++              phy_exit(pcie->phy);
++              return ret;
++      }
++
++      return 0;
++}
++
++static int advk_pcie_setup_phy(struct advk_pcie *pcie)
++{
++      struct device *dev = &pcie->pdev->dev;
++      struct device_node *node = dev->of_node;
++      int ret = 0;
++
++      pcie->phy = devm_of_phy_get(dev, node, NULL);
++      if (IS_ERR(pcie->phy) && (PTR_ERR(pcie->phy) == -EPROBE_DEFER))
++              return PTR_ERR(pcie->phy);
++
++      /* Old bindings miss the PHY handle */
++      if (IS_ERR(pcie->phy)) {
++              dev_warn(dev, "PHY unavailable (%ld)\n", PTR_ERR(pcie->phy));
++              pcie->phy = NULL;
++              return 0;
++      }
++
++      ret = advk_pcie_enable_phy(pcie);
++      if (ret)
++              dev_err(dev, "Failed to initialize PHY (%d)\n", ret);
++
++      return ret;
++}
++
+ static int advk_pcie_probe(struct platform_device *pdev)
+ {
+       struct device *dev = &pdev->dev;
diff --git 
a/target/linux/mvebu/patches-5.10/408-PCI-aardvark-Don-t-touch-PCIe-registers-if-no-card-c.patch
 
b/target/linux/mvebu/patches-5.10/408-PCI-aardvark-Don-t-touch-PCIe-registers-if-no-card-c.patch
new file mode 100644
index 0000000000..9bff37b27a
--- /dev/null
+++ 
b/target/linux/mvebu/patches-5.10/408-PCI-aardvark-Don-t-touch-PCIe-registers-if-no-card-c.patch
@@ -0,0 +1,50 @@
+From 70e380250c3621c55ff218cbaf2272830d9dbb1d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <p...@kernel.org>
+Date: Thu, 2 Jul 2020 10:30:36 +0200
+Subject: [PATCH] PCI: aardvark: Don't touch PCIe registers if no card
+ connected
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+When there is no PCIe card connected and advk_pcie_rd_conf() or
+advk_pcie_wr_conf() is called for PCI bus which doesn't belong to emulated
+root bridge, the aardvark driver throws the following error message:
+
+  advk-pcie d0070000.pcie: config read/write timed out
+
+Obviously accessing PCIe registers of disconnected card is not possible.
+
+Extend check in advk_pcie_valid_device() function for validating
+availability of PCIe bus. If PCIe link is down, then the device is marked
+as Not Found and the driver does not try to access these registers.
+
+This is just an optimization to prevent accessing PCIe registers when card
+is disconnected. Trying to access PCIe registers of disconnected card does
+not cause any crash, kernel just needs to wait for a timeout. So if card
+disappear immediately after checking for PCIe link (before accessing PCIe
+registers), it does not cause any problems.
+
+Link: https://lore.kernel.org/r/20200702083036.12230-1-p...@kernel.org
+Signed-off-by: Pali Rohár <p...@kernel.org>
+Signed-off-by: Lorenzo Pieralisi <lorenzo.pieral...@arm.com>
+---
+ drivers/pci/controller/pci-aardvark.c | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/drivers/pci/controller/pci-aardvark.c
++++ b/drivers/pci/controller/pci-aardvark.c
+@@ -640,6 +640,13 @@ static bool advk_pcie_valid_device(struc
+       if ((bus->number == pcie->root_bus_nr) && PCI_SLOT(devfn) != 0)
+               return false;
+ 
++      /*
++       * If the link goes down after we check for link-up, nothing bad
++       * happens but the config access times out.
++       */
++      if (bus->number != pcie->root_bus_nr && !advk_pcie_link_up(pcie))
++              return false;
++
+       return true;
+ }
+ 
diff --git 
a/target/linux/mvebu/patches-5.10/410-PCI-aardvark-Fix-initialization-with-old-Marvell-s-A.patch
 
b/target/linux/mvebu/patches-5.10/410-PCI-aardvark-Fix-initialization-with-old-Marvell-s-A.patch
new file mode 100644
index 0000000000..510b7458a5
--- /dev/null
+++ 
b/target/linux/mvebu/patches-5.10/410-PCI-aardvark-Fix-initialization-with-old-Marvell-s-A.patch
@@ -0,0 +1,44 @@
+From b0c6ae0f8948a2be6bf4e8b4bbab9ca1343289b6 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Pali=20Roh=C3=A1r?= <p...@kernel.org>
+Date: Wed, 2 Sep 2020 16:43:44 +0200
+Subject: [PATCH] PCI: aardvark: Fix initialization with old Marvell's Arm
+ Trusted Firmware
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Old ATF automatically power on pcie phy and does not provide SMC call for
+phy power on functionality which leads to aardvark initialization failure:
+
+[    0.330134] mvebu-a3700-comphy d0018300.phy: unsupported SMC call, try 
updating your firmware
+[    0.338846] phy phy-d0018300.phy.1: phy poweron failed --> -95
+[    0.344753] advk-pcie d0070000.pcie: Failed to initialize PHY (-95)
+[    0.351160] advk-pcie: probe of d0070000.pcie failed with error -95
+
+This patch fixes above failure by ignoring 'not supported' error in
+aardvark driver. In this case it is expected that phy is already power on.
+
+Tested-by: Tomasz Maciej Nowak <tmn...@gmail.com>
+Link: https://lore.kernel.org/r/20200902144344.16684-3-p...@kernel.org
+Fixes: 366697018c9a ("PCI: aardvark: Add PHY support")
+Signed-off-by: Pali Rohár <p...@kernel.org>
+Signed-off-by: Lorenzo Pieralisi <lorenzo.pieral...@arm.com>
+Reviewed-by: Rob Herring <r...@kernel.org>
+Cc: <sta...@vger.kernel.org> # 5.8+: ea17a0f153af: phy: marvell: comphy: 
Convert internal SMCC firmware return codes to errno
+---
+ drivers/pci/controller/pci-aardvark.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/drivers/pci/controller/pci-aardvark.c
++++ b/drivers/pci/controller/pci-aardvark.c
+@@ -1124,7 +1124,9 @@ static int advk_pcie_enable_phy(struct a
+       }
+ 
+       ret = phy_power_on(pcie->phy);
+-      if (ret) {
++      if (ret == -EOPNOTSUPP) {
++              dev_warn(&pcie->pdev->dev, "PHY unsupported by firmware\n");
++      } else if (ret) {
+               phy_exit(pcie->phy);
+               return ret;
+       }
diff --git 
a/target/linux/mvebu/patches-5.10/412-ARM-dts-armada388-clearfog-emmc-on-clearfog-base.patch
 
b/target/linux/mvebu/patches-5.10/412-ARM-dts-armada388-clearfog-emmc-on-clearfog-base.patch
new file mode 100644
index 0000000000..dd2bef7f63
--- /dev/null
+++ 
b/target/linux/mvebu/patches-5.10/412-ARM-dts-armada388-clearfog-emmc-on-clearfog-base.patch
@@ -0,0 +1,87 @@
+From 8137da20701c776ad3481115305a5e8e410871ba Mon Sep 17 00:00:00 2001
+From: Russell King <rmk+ker...@armlinux.org.uk>
+Date: Tue, 29 Nov 2016 10:15:45 +0000
+Subject: ARM: dts: armada388-clearfog: emmc on clearfog base
+
+Signed-off-by: Russell King <rmk+ker...@armlinux.org.uk>
+---
+ arch/arm/boot/dts/armada-388-clearfog-base.dts     |  1 +
+ .../dts/armada-38x-solidrun-microsom-emmc.dtsi     | 62 ++++++++++++++++++++++
+ 2 files changed, 63 insertions(+)
+ create mode 100644 arch/arm/boot/dts/armada-38x-solidrun-microsom-emmc.dtsi
+
+--- a/arch/arm/boot/dts/armada-388-clearfog-base.dts
++++ b/arch/arm/boot/dts/armada-388-clearfog-base.dts
+@@ -7,6 +7,7 @@
+ 
+ /dts-v1/;
+ #include "armada-388-clearfog.dtsi"
++#include "armada-38x-solidrun-microsom-emmc.dtsi"
+ 
+ / {
+       model = "SolidRun Clearfog Base A1";
+--- /dev/null
++++ b/arch/arm/boot/dts/armada-38x-solidrun-microsom-emmc.dtsi
+@@ -0,0 +1,62 @@
++/*
++ * Device Tree file for SolidRun Armada 38x Microsom add-on for eMMC
++ *
++ *  Copyright (C) 2015 Russell King
++ *
++ * This board is in development; the contents of this file work with
++ * the A1 rev 2.0 of the board, which does not represent final
++ * production board.  Things will change, don't expect this file to
++ * remain compatible info the future.
++ *
++ * 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 free software; you can redistribute it and/or
++ *     modify it under the terms of the GNU General Public License
++ *     version 2 as published by the Free Software Foundation.
++ *
++ *     This file is distributed in the hope that it will be useful
++ *     but WITHOUT ANY WARRANTY; without even the implied warranty of
++ *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ *     GNU General Public License for more details.
++ *
++ * 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 , 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.
++ */
++/ {
++      soc {
++              internal-regs {
++                      sdhci@d8000 {
++                              bus-width = <4>;
++                              no-1-8-v;
++                              non-removable;
++                              pinctrl-0 = <&microsom_sdhci_pins>;
++                              pinctrl-names = "default";
++                              status = "okay";
++                              wp-inverted;
++                      };
++              };
++      };
++};
diff --git 
a/target/linux/mvebu/patches-5.10/520-arm64-dts-marvell-armada37xx-Add-eth0-alias.patch
 
b/target/linux/mvebu/patches-5.10/520-arm64-dts-marvell-armada37xx-Add-eth0-alias.patch
new file mode 100644
index 0000000000..e989f59d5c
--- /dev/null
+++ 
b/target/linux/mvebu/patches-5.10/520-arm64-dts-marvell-armada37xx-Add-eth0-alias.patch
@@ -0,0 +1,20 @@
+From be893f672e340b56ca60f2f6c32fdd713a5852f5 Mon Sep 17 00:00:00 2001
+From: Kevin Mihelich <ke...@archlinuxarm.org>
+Date: Tue, 4 Jul 2017 19:25:28 -0600
+Subject: arm64: dts: marvell: armada37xx: Add eth0 alias
+
+Signed-off-by: Kevin Mihelich <ke...@archlinuxarm.org>
+---
+ arch/arm64/boot/dts/marvell/armada-37xx.dtsi | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
++++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
+@@ -18,6 +18,7 @@
+       #size-cells = <2>;
+ 
+       aliases {
++              ethernet0 = &eth0;
+               serial0 = &uart0;
+               serial1 = &uart1;
+       };
diff --git 
a/target/linux/mvebu/patches-5.10/550-arm64-dts-uDPU-switch-PHY-operation-mode-to-2500base.patch
 
b/target/linux/mvebu/patches-5.10/550-arm64-dts-uDPU-switch-PHY-operation-mode-to-2500base.patch
new file mode 100644
index 0000000000..82715312d8
--- /dev/null
+++ 
b/target/linux/mvebu/patches-5.10/550-arm64-dts-uDPU-switch-PHY-operation-mode-to-2500base.patch
@@ -0,0 +1,20 @@
+--- a/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
++++ b/arch/arm64/boot/dts/marvell/armada-3720-uDPU.dts
+@@ -144,7 +144,7 @@
+ };
+ 
+ &eth0 {
+-      phy-mode = "sgmii";
++      phy-mode = "2500base-x";
+       status = "okay";
+       managed = "in-band-status";
+       phys = <&comphy1 0>;
+@@ -152,7 +152,7 @@
+ };
+ 
+ &eth1 {
+-      phy-mode = "sgmii";
++      phy-mode = "2500base-x";
+       status = "okay";
+       managed = "in-band-status";
+       phys = <&comphy0 1>;
diff --git 
a/target/linux/mvebu/patches-5.10/560-helios4-dts-status-led-alias.patch 
b/target/linux/mvebu/patches-5.10/560-helios4-dts-status-led-alias.patch
new file mode 100644
index 0000000000..4c4fbec764
--- /dev/null
+++ b/target/linux/mvebu/patches-5.10/560-helios4-dts-status-led-alias.patch
@@ -0,0 +1,28 @@
+--- a/arch/arm/boot/dts/armada-388-helios4.dts
++++ b/arch/arm/boot/dts/armada-388-helios4.dts
+@@ -15,6 +15,13 @@
+       model = "Helios4";
+       compatible = "kobol,helios4", "marvell,armada388",
+               "marvell,armada385", "marvell,armada380";
++              
++      aliases {
++              led-boot = &led_status;
++              led-failsafe = &led_status;
++              led-running = &led_status;
++              led-upgrade = &led_status;
++      };
+ 
+       memory {
+               device_type = "memory";
+@@ -70,10 +77,9 @@
+ 
+       system-leds {
+               compatible = "gpio-leds";
+-              status-led {
++              led_status: status-led {
+                       label = "helios4:green:status";
+                       gpios = <&gpio0 24 GPIO_ACTIVE_LOW>;
+-                      linux,default-trigger = "heartbeat";
+                       default-state = "on";
+               };
+ 
diff --git 
a/target/linux/mvebu/patches-5.10/561-mvebu-armada-38x-enable-libata-leds.patch 
b/target/linux/mvebu/patches-5.10/561-mvebu-armada-38x-enable-libata-leds.patch
new file mode 100644
index 0000000000..b8ab700c97
--- /dev/null
+++ 
b/target/linux/mvebu/patches-5.10/561-mvebu-armada-38x-enable-libata-leds.patch
@@ -0,0 +1,10 @@
+--- a/arch/arm/mach-mvebu/Kconfig
++++ b/arch/arm/mach-mvebu/Kconfig
+@@ -69,6 +69,7 @@ config MACH_ARMADA_38X
+       select HAVE_SMP
+       select MACH_MVEBU_V7
+       select PINCTRL_ARMADA_38X
++      select ARCH_WANT_LIBATA_LEDS
+       help
+         Say 'Y' here if you want your kernel to support boards based
+         on the Marvell Armada 380/385 SoC with device tree.
diff --git a/target/linux/mvebu/patches-5.10/999-resize mamba kernel.patch 
b/target/linux/mvebu/patches-5.10/999-resize mamba kernel.patch
new file mode 100644
index 0000000000..a4230a4104
--- /dev/null
+++ b/target/linux/mvebu/patches-5.10/999-resize mamba kernel.patch     
@@ -0,0 +1,50 @@
+diff --git 
a/target/linux/mvebu/patches-5.4/999-DNM-dts-mamba-resize-3MB_to_4MB.patch 
b/target/linux/mvebu/patches-5.4/999-DNM-dts-mamba-resize-3MB_to_4MB.patch
+new file mode 100644
+index 0000000000..2752a92a3f
+--- /dev/null
++++ b/target/linux/mvebu/patches-5.4/999-DNM-dts-mamba-resize-3MB_to_4MB.patch
+@@ -0,0 +1,41 @@
+From 258233f00bcd013050efee00c5d9128ef8cd62dd Mon Sep 17 00:00:00 2001
+From: Tad <t...@spotco.us>
+Date: Fri, 5 Feb 2021 22:32:11 -0500
+Subject: [PATCH] DNM: ARM: dts: armada-xp-linksys-mamba: Increase kernel
+ partition to 4MB
+
+---
+ arch/arm/boot/dts/armada-xp-linksys-mamba.dts | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts 
b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
+index d7bc27ae6..20e859021 100644
+--- a/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
++++ b/arch/arm/boot/dts/armada-xp-linksys-mamba.dts
+@@ -456,9 +456,9 @@
+                               reg = <0xa00000 0x2800000>;  /* 40MB */
+                       };
+ 
+-                      partition@d00000 {
++                      partition@e00000 {
+                               label = "rootfs1";
+-                              reg = <0xd00000 0x2500000>;  /* 37MB */
++                              reg = <0xe00000 0x2400000>;  /* 36MB */
+                       };
+ 
+                       /* kernel2 overlaps with rootfs2 by design */
+@@ -467,9 +467,9 @@
+                               reg = <0x3200000 0x2800000>; /* 40MB */
+                       };
+ 
+-                      partition@3500000 {
++                      partition@3600000 {
+                               label = "rootfs2";
+-                              reg = <0x3500000 0x2500000>; /* 37MB */
++                              reg = <0x3600000 0x2400000>; /* 36MB */
+                       };
+ 
+                       /*
+-- 
+2.29.2
+
+-- 
+2.29.2
+
-- 
2.30.0



--- End Message ---
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to