diff --git a/scripts/dump-target-info.pl b/scripts/dump-target-info.pl new file mode 100755 index 0000000000..aa97f8d603 --- /dev/null +++ b/scripts/dump-target-info.pl @@ -0,0 +1,91 @@ +#!/usr/bin/env perl + +use strict; +use warnings; +use Cwd; + +my (%targets, %architectures); + +$ENV{'TOPDIR'} = Cwd::getcwd(); + + +sub parse_targetinfo { + my ($target_dir, $subtarget) = @_; + + if (open M, "make -C '$target_dir' --no-print-directory DUMP=1 TARGET_BUILD=1 SUBTARGET='$subtarget' |") { + my ($target_name, $target_arch, @target_features); + while (defined(my $line = readline M)) { + chomp $line; + + if ($line =~ /^Target: (.+)$/) { + $target_name = $1; + } + elsif ($line =~ /^Target-Arch-Packages: (.+)$/) { + $target_arch = $1; + } + elsif ($line =~ /^Target-Features: (.+)$/) { + @target_features = split /\s+/, $1; + } + elsif ($line =~ /^@\@$/) { + if ($target_name && $target_arch && + !grep { $_ eq 'broken' or $_ eq 'source-only' } @target_features) { + $targets{$target_name} = $target_arch; + $architectures{$target_arch} ||= []; + push @{$architectures{$target_arch}}, $target_name; + } + + undef $target_name; + undef $target_arch; + @target_features = (); + } + } + close M; + } +} + +sub get_targetinfo { + foreach my $target_makefile (glob "target/linux/*/Makefile") { + my ($target_dir) = $target_makefile =~ m!^(.+)/Makefile$!; + my @subtargets; + + if (open M, "make -C '$target_dir' --no-print-directory DUMP=1 TARGET_BUILD=1 val.FEATURES V=s 2>/dev/null |") { + if (defined(my $line = readline M)) { + chomp $line; + if (grep { $_ eq 'broken' or $_ eq 'source-only' } split /\s+/, $line) { + next; + } + } + } + + if (open M, "make -C '$target_dir' --no-print-directory DUMP=1 TARGET_BUILD=1 val.SUBTARGETS V=s 2>/dev/null |") { + if (defined(my $line = readline M)) { + chomp $line; + @subtargets = split /\s+/, $line; + } + close M; + } + + push @subtargets, 'generic' if @subtargets == 0; + + foreach my $subtarget (@subtargets) { + parse_targetinfo($target_dir, $subtarget); + } + } +} + +if (@ARGV == 1 && $ARGV[0] eq 'targets') { + get_targetinfo(); + foreach my $target_name (sort keys %targets) { + printf "%s %s\n", $target_name, $targets{$target_name}; + } +} +elsif (@ARGV == 1 && $ARGV[0] eq 'architectures') { + get_targetinfo(); + foreach my $target_arch (sort keys %architectures) { + printf "%s %s\n", $target_arch, join ' ', @{$architectures{$target_arch}}; + } +} +else { + print "Usage: $0 targets\n"; + print "Usage: $0 architectures\n"; +} diff --git a/target/linux/bcm47xx/Makefile b/target/linux/bcm47xx/Makefile index c5b5e69eda..bd0032a0e3 100644 --- a/target/linux/bcm47xx/Makefile +++ b/target/linux/bcm47xx/Makefile @@ -12,7 +12,7 @@ BOARDNAME:=Broadcom BCM47xx/53xx (MIPS) FEATURES:=squashfs usb SUBTARGETS:=generic mips74k legacy -KERNEL_PATCHVER:=4.19 +KERNEL_PATCHVER:=5.4 KERNEL_TESTING_PATCHVER:=5.4 define Target/Description diff --git a/target/linux/bcm53xx/Makefile b/target/linux/bcm53xx/Makefile index 628d422b53..35f8513801 100644 --- a/target/linux/bcm53xx/Makefile +++ b/target/linux/bcm53xx/Makefile @@ -13,7 +13,7 @@ FEATURES:=squashfs nand usb pci pcie gpio CPU_TYPE:=cortex-a9 SUBTARGETS:=generic -KERNEL_PATCHVER:=4.19 +KERNEL_PATCHVER:=5.4 KERNEL_TESTING_PATCHVER:=5.4 define Target/Description diff --git a/target/linux/bcm53xx/config-5.4 b/target/linux/bcm53xx/config-5.4 index ae9c727818..ff2e7e886a 100644 --- a/target/linux/bcm53xx/config-5.4 +++ b/target/linux/bcm53xx/config-5.4 @@ -1,6 +1,4 @@ -# CONFIG_ADIN_PHY is not set CONFIG_ALIGNMENT_TRAP=y -# CONFIG_AL_FIC is not set CONFIG_ARCH_32BIT_OFF_T=y CONFIG_ARCH_BCM=y CONFIG_ARCH_BCM_5301X=y @@ -27,14 +25,12 @@ CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_KEEP_MEMBLOCK=y CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y -# CONFIG_ARCH_MILBEAUT is not set CONFIG_ARCH_MULTIPLATFORM=y CONFIG_ARCH_MULTI_V6_V7=y CONFIG_ARCH_MULTI_V7=y CONFIG_ARCH_NR_GPIO=0 CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y -# CONFIG_ARCH_RDA is not set CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y CONFIG_ARCH_SUPPORTS_UPROBES=y CONFIG_ARCH_SUSPEND_POSSIBLE=y @@ -52,26 +48,19 @@ CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y CONFIG_ARM_ERRATA_754322=y CONFIG_ARM_ERRATA_764369=y CONFIG_ARM_ERRATA_775420=y -# CONFIG_ARM_ERRATA_814220 is not set -# CONFIG_ARM_ERRATA_857271 is not set -# CONFIG_ARM_ERRATA_857272 is not set 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_LPAE is not set CONFIG_ARM_PATCH_IDIV=y CONFIG_ARM_PATCH_PHYS_VIRT=y -# CONFIG_ARM_SP805_WATCHDOG is not set CONFIG_ARM_THUMB=y -# CONFIG_ARM_THUMBEE is not set CONFIG_ARM_UNWIND=y CONFIG_ARM_VIRT_EXT=y CONFIG_ATAGS=y CONFIG_AUTO_ZRELADDR=y -# CONFIG_BACKLIGHT_CLASS_DEVICE is not set CONFIG_BCM47XX_NVRAM=y CONFIG_BCM47XX_SPROM=y CONFIG_BCM47XX_WDT=y @@ -97,10 +86,8 @@ CONFIG_BLK_MQ_PCI=y CONFIG_BOUNCE=y CONFIG_BROADCOM_PHY=y CONFIG_CACHE_L2X0=y -CONFIG_CC_CAN_LINK=y -CONFIG_CC_HAS_ASM_INLINE=y CONFIG_CC_HAS_KASAN_GENERIC=y -CONFIG_CC_HAS_WARN_MAYBE_UNINITIALIZED=y +# CONFIG_CGROUPS is not set CONFIG_CLKDEV_LOOKUP=y CONFIG_CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK=y CONFIG_CLKSRC_MMIO=y @@ -109,22 +96,17 @@ CONFIG_CLK_BCM_NSP=y # CONFIG_CLK_BCM_SR is not set CONFIG_CLONE_BACKWARDS=y CONFIG_COMMON_CLK=y -# CONFIG_COMMON_CLK_FIXED_MMIO is not set CONFIG_COMMON_CLK_IPROC=y CONFIG_COMPAT_32BIT_TIME=y -# CONFIG_COUNTER is not set CONFIG_CPU_32v6K=y CONFIG_CPU_32v7=y CONFIG_CPU_ABRT_EV7=y -# CONFIG_CPU_BPREDICT_DISABLE is not set 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_HAS_ASID=y -# CONFIG_CPU_ICACHE_DISABLE is not set -# CONFIG_CPU_ICACHE_MISMATCH_WORKAROUND is not set CONFIG_CPU_PABRT_V7=y CONFIG_CPU_RMAP=y CONFIG_CPU_SPECTRE=y @@ -133,25 +115,16 @@ CONFIG_CPU_TLB_V7=y CONFIG_CPU_V7=y CONFIG_CRC16=y CONFIG_CRYPTO_ACOMP2=y -# CONFIG_CRYPTO_ADIANTUM is not set CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y -CONFIG_CRYPTO_AKCIPHER2=y CONFIG_CRYPTO_DEFLATE=y -# CONFIG_CRYPTO_ECRDSA is not set -# CONFIG_CRYPTO_ESSIV is not set CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_HASH_INFO=y -CONFIG_CRYPTO_KPP2=y -CONFIG_CRYPTO_LIB_AES=y CONFIG_CRYPTO_LZO=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y CONFIG_CRYPTO_NULL2=y -# CONFIG_CRYPTO_OFB is not set CONFIG_CRYPTO_RNG2=y -# CONFIG_CRYPTO_STREEBOG is not set -# CONFIG_CRYPTO_XXHASH is not set CONFIG_CRYPTO_ZSTD=y CONFIG_DCACHE_WORD_ACCESS=y CONFIG_DEBUG_BCM_5301X=y @@ -159,7 +132,6 @@ CONFIG_DEBUG_INFO=y CONFIG_DEBUG_LL=y CONFIG_DEBUG_LL_INCLUDE="debug/8250.S" CONFIG_DEBUG_MISC=y -# CONFIG_DEBUG_PLIST is not set CONFIG_DEBUG_UART_8250=y # CONFIG_DEBUG_UART_8250_FLOW_CONTROL is not set CONFIG_DEBUG_UART_8250_SHIFT=0 @@ -172,13 +144,9 @@ CONFIG_DTC=y CONFIG_EARLY_PRINTK=y CONFIG_EDAC_ATOMIC_SCRUB=y CONFIG_EDAC_SUPPORT=y -# CONFIG_EXFAT_FS is not set CONFIG_EXTCON=y -# CONFIG_FIELDBUS_DEV is not set CONFIG_FIXED_PHY=y CONFIG_FIX_EARLYCON_MEM=y -# CONFIG_FS_VERITY is not set -# CONFIG_FW_LOADER_COMPRESS is not set CONFIG_FW_LOADER_PAGED_BUF=y # CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set CONFIG_GENERIC_ALLOCATOR=y @@ -205,11 +173,7 @@ CONFIG_GENERIC_STRNLEN_USER=y CONFIG_GPIOLIB=y CONFIG_GPIOLIB_IRQCHIP=y CONFIG_GPIO_74X164=y -# CONFIG_GPIO_AMD_FCH is not set -# CONFIG_GPIO_CADENCE is not set -# CONFIG_GPIO_SAMA5D2_PIOBU is not set CONFIG_GPIO_SYSFS=y -# CONFIG_HABANA_AI is not set CONFIG_HANDLE_DOMAIN_IRQ=y CONFIG_HARDEN_BRANCH_PREDICTOR=y CONFIG_HARDIRQS_SW_RESEND=y @@ -231,6 +195,7 @@ CONFIG_HAVE_ARM_TWD=y CONFIG_HAVE_CLK=y CONFIG_HAVE_CLK_PREPARE=y CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_COPY_THREAD_TLS=y CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_HAVE_DEBUG_KMEMLEAK=y CONFIG_HAVE_DMA_CONTIGUOUS=y @@ -259,34 +224,24 @@ CONFIG_HAVE_SMP=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_UID16=y CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y -# CONFIG_HEADERS_INSTALL is not set -# CONFIG_HEADER_TEST is not set CONFIG_HIGHMEM=y # CONFIG_HIGHPTE is not set +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_BCM2835=y +CONFIG_HZ=100 +CONFIG_HZ_100=y CONFIG_HZ_FIXED=0 CONFIG_HZ_PERIODIC=y -# CONFIG_I3C is not set -# CONFIG_IGC is not set -# CONFIG_IKHEADERS is not set CONFIG_INITRAMFS_SOURCE="" -# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set -# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set -CONFIG_INIT_STACK_NONE=y -# CONFIG_INTERCONNECT is not set CONFIG_IO_URING=y CONFIG_IRQCHIP=y CONFIG_IRQ_DOMAIN=y CONFIG_IRQ_DOMAIN_HIERARCHY=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_IRQ_WORK=y -# CONFIG_LCD_CLASS_DEVICE is not set -# CONFIG_LEDS_TRIGGER_AUDIO is not set -# CONFIG_LEDS_TRIGGER_PATTERN is not set CONFIG_LIBFDT=y CONFIG_LOCK_DEBUGGING_SUPPORT=y -# CONFIG_LOCK_EVENT_COUNTS is not set CONFIG_LOCK_SPIN_ON_OWNER=y -CONFIG_LSM="lockdown,yama,loadpin,safesetid,integrity" CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y CONFIG_MDIO_BCM_IPROC=y @@ -294,19 +249,14 @@ CONFIG_MDIO_BUS=y CONFIG_MDIO_BUS_MUX=y # CONFIG_MDIO_BUS_MUX_BCM_IPROC is not set CONFIG_MDIO_BUS_MUX_MMIOREG=y -# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set CONFIG_MDIO_DEVICE=y CONFIG_MEMFD_CREATE=y CONFIG_MFD_SYSCON=y -# CONFIG_MFD_TQMX86 is not set CONFIG_MIGHT_HAVE_CACHE_L2X0=y CONFIG_MIGRATION=y -# CONFIG_MISC_ALCOR_PCI is not set CONFIG_MODULES_USE_ELF_REL=y -# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set CONFIG_MTD_BCM47XXSFLASH=y CONFIG_MTD_BCM47XX_PARTS=y -# CONFIG_MTD_HYPERBUS is not set CONFIG_MTD_NAND_BRCMNAND=y CONFIG_MTD_NAND_CORE=y CONFIG_MTD_NAND_ECC_SW_HAMMING=y @@ -323,12 +273,7 @@ CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NET_FLOW_LIMIT=y -# CONFIG_NET_SCH_TAPRIO is not set -CONFIG_NET_VENDOR_GOOGLE=y -CONFIG_NET_VENDOR_PENSANDO=y -# CONFIG_NI_XGE_MANAGEMENT_ENET is not set CONFIG_NR_CPUS=2 -# CONFIG_NULL_TTY is not set CONFIG_NVMEM=y CONFIG_NVMEM_SYSFS=y CONFIG_OF=y @@ -344,7 +289,6 @@ CONFIG_OLD_SIGACTION=y CONFIG_OLD_SIGSUSPEND3=y CONFIG_OUTER_CACHE=y CONFIG_OUTER_CACHE_SYNC=y -# CONFIG_PACKING is not set CONFIG_PADATA=y CONFIG_PAGE_OFFSET=0xC0000000 CONFIG_PCI=y @@ -353,7 +297,6 @@ CONFIG_PCIE_IPROC_BCMA=y # CONFIG_PCIE_IPROC_PLATFORM is not set CONFIG_PCI_DOMAINS=y CONFIG_PCI_DOMAINS_GENERIC=y -# CONFIG_PCI_V3_SEMI is not set CONFIG_PERF_USE_VMALLOC=y CONFIG_PGTABLE_LEVELS=2 CONFIG_PHYLIB=y @@ -362,29 +305,14 @@ CONFIG_PHYLIB=y # CONFIG_PHY_BCM_SR_PCIE is not set CONFIG_PHY_BCM_SR_USB=y # CONFIG_PHY_BRCM_SATA is not set -# CONFIG_PHY_CADENCE_DP is not set -# CONFIG_PHY_CADENCE_DPHY is not set -# CONFIG_PHY_FSL_IMX8MQ_USB is not set -# CONFIG_PHY_MIXEL_MIPI_DPHY is not set # CONFIG_PHY_NS2_USB_DRD is not set -# CONFIG_PHY_OCELOT_SERDES is not set CONFIG_PINCTRL=y # CONFIG_PINCTRL_IPROC_GPIO is not set CONFIG_PINCTRL_NS=y # CONFIG_PINCTRL_NS2_MUX is not set -# CONFIG_PINCTRL_OCELOT is not set -# CONFIG_PL310_ERRATA_588369 is not set -# CONFIG_PL310_ERRATA_727915 is not set -# CONFIG_PL310_ERRATA_753970 is not set -# CONFIG_PL310_ERRATA_769419 is not set -# CONFIG_PRINTK_CALLER is not set -# CONFIG_PSI is not set -# CONFIG_PVPANIC is not set -# CONFIG_RANDOM_TRUST_BOOTLOADER is not set CONFIG_RATIONAL=y CONFIG_RCU_NEED_SEGCBLIST=y CONFIG_RCU_STALL_COMMON=y -# CONFIG_REED_SOLOMON_TEST is not set CONFIG_REFCOUNT_FULL=y CONFIG_REGMAP=y CONFIG_REGMAP_MMIO=y @@ -392,13 +320,9 @@ CONFIG_RFS_ACCEL=y CONFIG_RPS=y CONFIG_RWSEM_SPIN_ON_OWNER=y CONFIG_SERIAL_8250_FSL=y -# CONFIG_SERIAL_AMBA_PL011 is not set -# CONFIG_SERIAL_FSL_LINFLEXUART is not set CONFIG_SERIAL_MCTRL_GPIO=y CONFIG_SERIAL_OF_PLATFORM=y -# CONFIG_SERIAL_SIFIVE is not set CONFIG_SGL_ALLOC=y -# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set CONFIG_SMP=y CONFIG_SMP_ON_UP=y CONFIG_SPARSE_IRQ=y @@ -408,54 +332,36 @@ CONFIG_SPI_BITBANG=y CONFIG_SPI_GPIO=y CONFIG_SPI_MASTER=y CONFIG_SPI_MEM=y -# CONFIG_SPI_MTK_QUADSPI is not set CONFIG_SRCU=y CONFIG_SWCONFIG=y CONFIG_SWCONFIG_B53=y -# CONFIG_SWCONFIG_B53_MMAP_DRIVER is not set CONFIG_SWCONFIG_B53_PHY_DRIVER=y CONFIG_SWCONFIG_B53_PHY_FIXUP=y CONFIG_SWCONFIG_B53_SRAB_DRIVER=y CONFIG_SWPHY=y CONFIG_SWP_EMULATE=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y -# CONFIG_TEST_BLACKHOLE_DEV is not set -# CONFIG_TEST_MEMCAT_P is not set -# CONFIG_TEST_MEMINIT is not set -# CONFIG_TEST_STACKINIT is not set -# CONFIG_TEST_STRSCPY is not set -# CONFIG_TEST_VMALLOC is not set -# CONFIG_TEST_XARRAY is not set 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_OF=y -# CONFIG_THUMB2_KERNEL is not set CONFIG_TICK_CPU_ACCOUNTING=y CONFIG_TIMER_OF=y CONFIG_TIMER_PROBE=y -# CONFIG_TI_CPSW_PHY_SEL is not set CONFIG_TREE_RCU=y CONFIG_TREE_SRCU=y -# CONFIG_TRUSTED_FOUNDATIONS is not set CONFIG_UBIFS_FS=y # CONFIG_UBIFS_FS_ADVANCED_COMPR is not set CONFIG_UBIFS_FS_LZO=y CONFIG_UBIFS_FS_ZLIB=y CONFIG_UBIFS_FS_ZSTD=y CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" -# CONFIG_UNICODE is not set CONFIG_UNWINDER_ARM=y -# CONFIG_UNWINDER_FRAME_POINTER is not set -# CONFIG_USB_CONN_GPIO is not set CONFIG_USB_SUPPORT=y CONFIG_USE_OF=y -# CONFIG_VALIDATE_FS_PARSER is not set # CONFIG_VFP is not set CONFIG_WATCHDOG_CORE=y -CONFIG_WATCHDOG_OPEN_TIMEOUT=0 -# CONFIG_XILINX_SDFEC is not set CONFIG_XPS=y CONFIG_XXHASH=y CONFIG_XZ_DEC_ARM=y diff --git a/target/linux/bcm53xx/patches-5.4/130-ARM-dts-BCM5301X-Add-DT-for-Luxul-XWC-2000.patch b/target/linux/bcm53xx/patches-5.4/030-v5.5-ARM-dts-BCM5301X-Add-DT-for-Luxul-XWC-2000.patch similarity index 93% rename from target/linux/bcm53xx/patches-5.4/130-ARM-dts-BCM5301X-Add-DT-for-Luxul-XWC-2000.patch rename to target/linux/bcm53xx/patches-5.4/030-v5.5-ARM-dts-BCM5301X-Add-DT-for-Luxul-XWC-2000.patch index 639bbb8e49..67e85da61f 100644 --- a/target/linux/bcm53xx/patches-5.4/130-ARM-dts-BCM5301X-Add-DT-for-Luxul-XWC-2000.patch +++ b/target/linux/bcm53xx/patches-5.4/030-v5.5-ARM-dts-BCM5301X-Add-DT-for-Luxul-XWC-2000.patch @@ -1,3 +1,4 @@ +From 984829e2d39b5ba9f817198d701c85511ef40528 Mon Sep 17 00:00:00 2001 From: Dan Haab Date: Wed, 2 Oct 2019 09:57:26 -0600 Subject: [PATCH] ARM: dts: BCM5301X: Add DT for Luxul XWC-2000 @@ -6,6 +7,7 @@ It's a simple network device based on BCM47094 with just a single Ethernet port. Signed-off-by: Dan Haab +Signed-off-by: Florian Fainelli --- arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts | 53 +++++++++++++++++++ diff --git a/target/linux/bcm53xx/patches-5.4/031-v5.8-ARM-dts-BCM5301X-Add-missing-memory-device_type-for-.patch b/target/linux/bcm53xx/patches-5.4/031-v5.8-ARM-dts-BCM5301X-Add-missing-memory-device_type-for-.patch new file mode 100644 index 0000000000..43a719a7a8 --- /dev/null +++ b/target/linux/bcm53xx/patches-5.4/031-v5.8-ARM-dts-BCM5301X-Add-missing-memory-device_type-for-.patch @@ -0,0 +1,30 @@ +From de1f6d9304c38e414552c3565d36286609ced0c1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Mon, 8 Jun 2020 18:33:41 +0200 +Subject: [PATCH] ARM: dts: BCM5301X: Add missing memory "device_type" for + Luxul XWC-2000 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This property is needed since commit abe60a3a7afb ("ARM: dts: Kill off +skeleton{64}.dtsi"). Without it booting silently hangs at: +[ 0.000000] Memory policy: Data cache writealloc + +Fixes: 984829e2d39b ("ARM: dts: BCM5301X: Add DT for Luxul XWC-2000") +Signed-off-by: Rafał Miłecki +Signed-off-by: Florian Fainelli +--- + arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts | 1 + + 1 file changed, 1 insertion(+) + +--- a/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts ++++ b/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts +@@ -17,6 +17,7 @@ + }; + + memory { ++ device_type = "memory"; + reg = <0x00000000 0x08000000 + 0x88000000 0x18000000>; + }; diff --git a/target/linux/bcm53xx/patches-5.4/032-v5.9-ARM-dts-BCM5301X-Specify-switch-ports-for-Luxul-devi.patch b/target/linux/bcm53xx/patches-5.4/032-v5.9-ARM-dts-BCM5301X-Specify-switch-ports-for-Luxul-devi.patch new file mode 100644 index 0000000000..a2f05d3d9f --- /dev/null +++ b/target/linux/bcm53xx/patches-5.4/032-v5.9-ARM-dts-BCM5301X-Specify-switch-ports-for-Luxul-devi.patch @@ -0,0 +1,301 @@ +From 99e5a32902d9e144568add5dd8791aa66a69f0bf Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= +Date: Mon, 8 Jun 2020 11:37:33 +0200 +Subject: [PATCH] ARM: dts: BCM5301X: Specify switch ports for Luxul devices +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +All those devices use standard BCM53011 (rev 5) or BCM53012 (rev 0). + +Signed-off-by: Rafał Miłecki +Signed-off-by: Florian Fainelli +--- + arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts | 25 ++++++++++++ + arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts | 20 ++++++++++ + arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts | 20 ++++++++++ + arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts | 40 +++++++++++++++++++ + arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts | 25 ++++++++++++ + arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts | 20 ++++++++++ + arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts | 40 +++++++++++++++++++ + .../boot/dts/bcm47094-luxul-xwr-3150-v1.dts | 40 +++++++++++++++++++ + 8 files changed, 230 insertions(+) + +--- a/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts ++++ b/arch/arm/boot/dts/bcm4708-luxul-xap-1510.dts +@@ -60,3 +60,28 @@ + &usb3_phy { + status = "okay"; + }; ++ ++&srab { ++ status = "okay"; ++ ++ ports { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ port@0 { ++ reg = <0>; ++ label = "poe"; ++ }; ++ ++ port@4 { ++ reg = <4>; ++ label = "lan"; ++ }; ++ ++ port@5 { ++ reg = <5>; ++ label = "cpu"; ++ ethernet = <&gmac0>; ++ }; ++ }; ++}; +--- a/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts ++++ b/arch/arm/boot/dts/bcm4708-luxul-xwc-1000.dts +@@ -67,3 +67,23 @@ + &usb3_phy { + status = "okay"; + }; ++ ++&srab { ++ status = "okay"; ++ ++ ports { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ port@4 { ++ reg = <4>; ++ label = "lan"; ++ }; ++ ++ port@5 { ++ reg = <5>; ++ label = "cpu"; ++ ethernet = <&gmac0>; ++ }; ++ }; ++}; +--- a/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts ++++ b/arch/arm/boot/dts/bcm47081-luxul-xap-1410.dts +@@ -60,3 +60,23 @@ + &usb3_phy { + status = "okay"; + }; ++ ++&srab { ++ status = "okay"; ++ ++ ports { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ port@4 { ++ reg = <4>; ++ label = "poe"; ++ }; ++ ++ port@5 { ++ reg = <5>; ++ label = "cpu"; ++ ethernet = <&gmac0>; ++ }; ++ }; ++}; +--- a/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts ++++ b/arch/arm/boot/dts/bcm47081-luxul-xwr-1200.dts +@@ -108,3 +108,43 @@ + &usb3_phy { + status = "okay"; + }; ++ ++&srab { ++ status = "okay"; ++ ++ ports { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ port@0 { ++ reg = <0>; ++ label = "lan4"; ++ }; ++ ++ port@1 { ++ reg = <1>; ++ label = "lan3"; ++ }; ++ ++ port@2 { ++ reg = <2>; ++ label = "lan2"; ++ }; ++ ++ port@3 { ++ reg = <3>; ++ label = "lan1"; ++ }; ++ ++ port@4 { ++ reg = <4>; ++ label = "wan"; ++ }; ++ ++ port@5 { ++ reg = <5>; ++ label = "cpu"; ++ ethernet = <&gmac0>; ++ }; ++ }; ++}; +--- a/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts ++++ b/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts +@@ -54,3 +54,28 @@ + &spi_nor { + status = "okay"; + }; ++ ++&srab { ++ status = "okay"; ++ ++ ports { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ port@0 { ++ reg = <0>; ++ label = "poe"; ++ }; ++ ++ port@1 { ++ reg = <1>; ++ label = "lan"; ++ }; ++ ++ port@5 { ++ reg = <5>; ++ label = "cpu"; ++ ethernet = <&gmac0>; ++ }; ++ }; ++}; +--- a/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts ++++ b/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts +@@ -52,3 +52,23 @@ + &spi_nor { + status = "okay"; + }; ++ ++&srab { ++ status = "okay"; ++ ++ ports { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ port@0 { ++ reg = <0>; ++ label = "lan"; ++ }; ++ ++ port@5 { ++ reg = <5>; ++ label = "cpu"; ++ ethernet = <&gmac0>; ++ }; ++ }; ++}; +--- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts ++++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3100.dts +@@ -103,3 +103,43 @@ + &usb3_phy { + status = "okay"; + }; ++ ++&srab { ++ status = "okay"; ++ ++ ports { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ port@0 { ++ reg = <0>; ++ label = "lan4"; ++ }; ++ ++ port@1 { ++ reg = <1>; ++ label = "lan3"; ++ }; ++ ++ port@2 { ++ reg = <2>; ++ label = "lan2"; ++ }; ++ ++ port@3 { ++ reg = <3>; ++ label = "lan1"; ++ }; ++ ++ port@4 { ++ reg = <4>; ++ label = "wan"; ++ }; ++ ++ port@5 { ++ reg = <5>; ++ label = "cpu"; ++ ethernet = <&gmac0>; ++ }; ++ }; ++}; +--- a/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts ++++ b/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts +@@ -74,3 +74,43 @@ + &spi_nor { + status = "okay"; + }; ++ ++&srab { ++ status = "okay"; ++ ++ ports { ++ #address-cells = <1>; ++ #size-cells = <0>; ++ ++ port@0 { ++ reg = <0>; ++ label = "lan4"; ++ }; ++ ++ port@1 { ++ reg = <1>; ++ label = "lan3"; ++ }; ++ ++ port@2 { ++ reg = <2>; ++ label = "lan2"; ++ }; ++ ++ port@3 { ++ reg = <3>; ++ label = "lan1"; ++ }; ++ ++ port@4 { ++ reg = <4>; ++ label = "wan"; ++ }; ++ ++ port@5 { ++ reg = <5>; ++ label = "cpu"; ++ ethernet = <&gmac0>; ++ }; ++ }; ++}; diff --git a/target/linux/ramips/dts/mt7628an_tplink_re200-v3.dts b/target/linux/ramips/dts/mt7628an_tplink_re200-v3.dts new file mode 100644 index 0000000000..21d256498e --- /dev/null +++ b/target/linux/ramips/dts/mt7628an_tplink_re200-v3.dts @@ -0,0 +1,70 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/dts-v1/; + +#include "mt7628an_tplink_re200.dtsi" + +/ { + compatible = "tplink,re200-v3", "mediatek,mt7628an-soc"; + model = "TP-Link RE200 v3"; + + aliases { + led-boot = &led_power; + led-failsafe = &led_power; + led-running = &led_power; + led-upgrade = &led_power; + }; + + leds { + compatible = "gpio-leds"; + + wps { + label = "re200-v3:green:wps"; + gpios = <&gpio 5 GPIO_ACTIVE_LOW>; + }; + + wifi { + label = "re200-v3:green:wifi"; + gpios = <&gpio 4 GPIO_ACTIVE_LOW>; + }; + + lan { + label = "re200-v3:green:lan"; + gpios = <&gpio 39 GPIO_ACTIVE_LOW>; + }; + + led_power: power { + label = "re200-v3:green:power"; + gpios = <&gpio 44 GPIO_ACTIVE_LOW>; + }; + + wifi2g_green { + label = "re200-v3:green:wifi2g"; + gpios = <&gpio 41 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy0tpt"; + }; + + wifi5g_green { + label = "re200-v3:green:wifi5g"; + gpios = <&gpio 42 GPIO_ACTIVE_LOW>; + linux,default-trigger = "phy1tpt"; + }; + + wifi2g_red { + label = "re200-v3:red:wifi2g"; + gpios = <&gpio 43 GPIO_ACTIVE_LOW>; + }; + + wifi5g_red { + label = "re200-v3:red:wifi5g"; + gpios = <&gpio 40 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&state_default { + gpio { + groups = "p4led_an", "p3led_an", "p2led_an", "p1led_an", + "p0led_an", "wled_an", "i2c", "wdt", "refclk"; + function = "gpio"; + }; +}; diff --git a/target/linux/ramips/image/mt76x8.mk b/target/linux/ramips/image/mt76x8.mk index 9ec469d32d..d170eaa065 100644 --- a/target/linux/ramips/image/mt76x8.mk +++ b/target/linux/ramips/image/mt76x8.mk @@ -404,6 +404,16 @@ define Device/tplink_re200-v2 endef TARGET_DEVICES += tplink_re200-v2 +define Device/tplink_re200-v3 + $(Device/tplink-safeloader) + IMAGE_SIZE := 7808k + DEVICE_MODEL := RE200 + DEVICE_VARIANT := v3 + DEVICE_PACKAGES := kmod-mt76x0e + TPLINK_BOARD_ID := RE200-V3 +endef +TARGET_DEVICES += tplink_re200-v3 + define Device/tplink_re220-v2 $(Device/tplink-safeloader) IMAGE_SIZE := 7808k diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds index 1e478df4ef..94c5cb5d49 100755 --- a/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds +++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/01_leds @@ -69,6 +69,7 @@ tplink,archer-c50-v4) ucidef_set_led_wlan "wlan5g" "wlan5g" "$boardname:green:wlan5g" "phy1tpt" ;; tplink,re200-v2|\ +tplink,re200-v3|\ tplink,re220-v2|\ tplink,tl-mr3020-v3|\ tplink,tl-wa801nd-v5) diff --git a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network index cf7e88ebf1..83437ea364 100755 --- a/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network +++ b/target/linux/ramips/mt76x8/base-files/etc/board.d/02_network @@ -19,6 +19,7 @@ ramips_setup_interfaces() ravpower,rp-wd009|\ tama,w06|\ tplink,re200-v2|\ + tplink,re200-v3|\ tplink,re220-v2|\ tplink,re305-v1|\ tplink,tl-mr3020-v3|\ diff --git a/tools/firmware-utils/src/tplink-safeloader.c b/tools/firmware-utils/src/tplink-safeloader.c index 3f83f19d2d..a5f3ced16d 100644 --- a/tools/firmware-utils/src/tplink-safeloader.c +++ b/tools/firmware-utils/src/tplink-safeloader.c @@ -1562,6 +1562,50 @@ static struct device_info boards[] = { .last_sysupgrade_partition = "file-system" }, + /** Firmware layout for the RE200 v3 */ + { + .id = "RE200-V3", + .vendor = "", + .support_list = + "SupportList:\n" + "{product_name:RE200,product_ver:3.0.0,special_id:00000000}\n" + "{product_name:RE200,product_ver:3.0.0,special_id:41520000}\n" + "{product_name:RE200,product_ver:3.0.0,special_id:41550000}\n" + "{product_name:RE200,product_ver:3.0.0,special_id:42520000}\n" + "{product_name:RE200,product_ver:3.0.0,special_id:43410000}\n" + "{product_name:RE200,product_ver:3.0.0,special_id:45470000}\n" + "{product_name:RE200,product_ver:3.0.0,special_id:45530000}\n" + "{product_name:RE200,product_ver:3.0.0,special_id:45550000}\n" + "{product_name:RE200,product_ver:3.0.0,special_id:49440000}\n" + "{product_name:RE200,product_ver:3.0.0,special_id:4A500000}\n" + "{product_name:RE200,product_ver:3.0.0,special_id:4B520000}\n" + "{product_name:RE200,product_ver:3.0.0,special_id:52550000}\n" + "{product_name:RE200,product_ver:3.0.0,special_id:54570000}\n" + "{product_name:RE200,product_ver:3.0.0,special_id:55530000}\n", + .support_trail = '\x00', + .soft_ver = NULL, + + .partitions = { + {"fs-uboot", 0x00000, 0x20000}, + {"firmware", 0x20000, 0x7a0000}, + {"partition-table", 0x7c0000, 0x02000}, + {"default-mac", 0x7c2000, 0x00020}, + {"pin", 0x7c2100, 0x00020}, + {"product-info", 0x7c3100, 0x01000}, + {"soft-version", 0x7c4200, 0x01000}, + {"support-list", 0x7c5200, 0x01000}, + {"profile", 0x7c6200, 0x08000}, + {"config-info", 0x7ce200, 0x00400}, + {"user-config", 0x7d0000, 0x10000}, + {"default-config", 0x7e0000, 0x10000}, + {"radio", 0x7f0000, 0x10000}, + {NULL, 0, 0} + }, + + .first_sysupgrade_partition = "os-image", + .last_sysupgrade_partition = "file-system" + }, + /** Firmware layout for the RE220 v2 */ { .id = "RE220-V2",