mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-04 06:54:27 -05:00 
			
		
		
		
	bcm53xx: add v5.4 support
Signed-off-by: John Crispin <john@phrozen.org>
This commit is contained in:
		
							parent
							
								
									6d5291ff72
								
							
						
					
					
						commit
						50c6938b95
					
				@ -14,8 +14,8 @@ MAINTAINER:=Hauke Mehrtens <hauke@hauke-m.de>
 | 
			
		||||
CPU_TYPE:=cortex-a9
 | 
			
		||||
SUBTARGETS:=generic
 | 
			
		||||
 | 
			
		||||
KERNEL_PATCHVER:=4.14
 | 
			
		||||
KERNEL_TESTING_PATCHVER := 4.19
 | 
			
		||||
KERNEL_PATCHVER:=4.19
 | 
			
		||||
KERNEL_TESTING_PATCHVER:=5.4
 | 
			
		||||
 | 
			
		||||
define Target/Description
 | 
			
		||||
	Build firmware images for Broadcom based BCM47xx/53xx routers with ARM CPU, *not* MIPS.
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										471
									
								
								target/linux/bcm53xx/config-5.4
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										471
									
								
								target/linux/bcm53xx/config-5.4
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,471 @@
 | 
			
		||||
CONFIG_64BIT_TIME=y
 | 
			
		||||
# 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
 | 
			
		||||
CONFIG_ARCH_BCM_53573=y
 | 
			
		||||
# CONFIG_ARCH_BCM_HR2 is not set
 | 
			
		||||
CONFIG_ARCH_BCM_IPROC=y
 | 
			
		||||
CONFIG_ARCH_CLOCKSOURCE_DATA=y
 | 
			
		||||
CONFIG_ARCH_HAS_BINFMT_FLAT=y
 | 
			
		||||
CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y
 | 
			
		||||
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
 | 
			
		||||
CONFIG_ARCH_HAS_FORTIFY_SOURCE=y
 | 
			
		||||
CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y
 | 
			
		||||
CONFIG_ARCH_HAS_KCOV=y
 | 
			
		||||
CONFIG_ARCH_HAS_KEEPINITRD=y
 | 
			
		||||
CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y
 | 
			
		||||
CONFIG_ARCH_HAS_PHYS_TO_DMA=y
 | 
			
		||||
CONFIG_ARCH_HAS_SETUP_DMA_OPS=y
 | 
			
		||||
CONFIG_ARCH_HAS_SET_MEMORY=y
 | 
			
		||||
CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y
 | 
			
		||||
CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y
 | 
			
		||||
CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS=y
 | 
			
		||||
CONFIG_ARCH_HAS_TICK_BROADCAST=y
 | 
			
		||||
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
 | 
			
		||||
CONFIG_ARCH_USE_BUILTIN_BSWAP=y
 | 
			
		||||
CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
 | 
			
		||||
CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y
 | 
			
		||||
CONFIG_ARCH_WANT_GENERAL_HUGETLB=y
 | 
			
		||||
CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
 | 
			
		||||
CONFIG_ARM=y
 | 
			
		||||
CONFIG_ARM_AMBA=y
 | 
			
		||||
CONFIG_ARM_APPENDED_DTB=y
 | 
			
		||||
CONFIG_ARM_ARCH_TIMER=y
 | 
			
		||||
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y
 | 
			
		||||
# CONFIG_ARM_ATAG_DTB_COMPAT is not set
 | 
			
		||||
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
 | 
			
		||||
CONFIG_BCMA=y
 | 
			
		||||
CONFIG_BCMA_BLOCKIO=y
 | 
			
		||||
CONFIG_BCMA_DEBUG=y
 | 
			
		||||
CONFIG_BCMA_DRIVER_GMAC_CMN=y
 | 
			
		||||
CONFIG_BCMA_DRIVER_GPIO=y
 | 
			
		||||
CONFIG_BCMA_DRIVER_PCI=y
 | 
			
		||||
CONFIG_BCMA_HOST_PCI=y
 | 
			
		||||
CONFIG_BCMA_HOST_PCI_POSSIBLE=y
 | 
			
		||||
CONFIG_BCMA_HOST_SOC=y
 | 
			
		||||
CONFIG_BCMA_SFLASH=y
 | 
			
		||||
# CONFIG_BCM_CYGNUS_PHY is not set
 | 
			
		||||
CONFIG_BCM_NET_PHYLIB=y
 | 
			
		||||
CONFIG_BCM_NS_THERMAL=y
 | 
			
		||||
CONFIG_BCM_SR_THERMAL=y
 | 
			
		||||
CONFIG_BGMAC=y
 | 
			
		||||
CONFIG_BGMAC_BCMA=y
 | 
			
		||||
# CONFIG_BGMAC_PLATFORM is not set
 | 
			
		||||
CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y
 | 
			
		||||
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_CLKDEV_LOOKUP=y
 | 
			
		||||
CONFIG_CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK=y
 | 
			
		||||
CONFIG_CLKSRC_MMIO=y
 | 
			
		||||
# CONFIG_CLK_BCM_NS2 is not set
 | 
			
		||||
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
 | 
			
		||||
CONFIG_CPU_THUMB_CAPABLE=y
 | 
			
		||||
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
 | 
			
		||||
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
 | 
			
		||||
CONFIG_DEBUG_UART_PHYS=0x18000300
 | 
			
		||||
CONFIG_DEBUG_UART_VIRT=0xf1000300
 | 
			
		||||
CONFIG_DEBUG_UNCOMPRESS=y
 | 
			
		||||
CONFIG_DEBUG_USER=y
 | 
			
		||||
CONFIG_DMA_DECLARE_COHERENT=y
 | 
			
		||||
CONFIG_DMA_REMAP=y
 | 
			
		||||
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
 | 
			
		||||
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_IDLE_POLL_SETUP=y
 | 
			
		||||
CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y
 | 
			
		||||
CONFIG_GENERIC_IRQ_MULTI_HANDLER=y
 | 
			
		||||
CONFIG_GENERIC_IRQ_SHOW=y
 | 
			
		||||
CONFIG_GENERIC_IRQ_SHOW_LEVEL=y
 | 
			
		||||
CONFIG_GENERIC_PCI_IOMAP=y
 | 
			
		||||
CONFIG_GENERIC_PHY=y
 | 
			
		||||
CONFIG_GENERIC_PINCONF=y
 | 
			
		||||
CONFIG_GENERIC_PINCTRL_GROUPS=y
 | 
			
		||||
CONFIG_GENERIC_PINMUX_FUNCTIONS=y
 | 
			
		||||
CONFIG_GENERIC_SCHED_CLOCK=y
 | 
			
		||||
CONFIG_GENERIC_SMP_IDLE_THREAD=y
 | 
			
		||||
CONFIG_GENERIC_STRNCPY_FROM_USER=y
 | 
			
		||||
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
 | 
			
		||||
CONFIG_HAS_DMA=y
 | 
			
		||||
CONFIG_HAS_IOMEM=y
 | 
			
		||||
CONFIG_HAS_IOPORT_MAP=y
 | 
			
		||||
CONFIG_HAVE_ARCH_AUDITSYSCALL=y
 | 
			
		||||
CONFIG_HAVE_ARCH_BITREVERSE=y
 | 
			
		||||
CONFIG_HAVE_ARCH_JUMP_LABEL=y
 | 
			
		||||
CONFIG_HAVE_ARCH_KGDB=y
 | 
			
		||||
CONFIG_HAVE_ARCH_PFN_VALID=y
 | 
			
		||||
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
 | 
			
		||||
CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y
 | 
			
		||||
CONFIG_HAVE_ARCH_TRACEHOOK=y
 | 
			
		||||
CONFIG_HAVE_ARM_ARCH_TIMER=y
 | 
			
		||||
CONFIG_HAVE_ARM_SCU=y
 | 
			
		||||
CONFIG_HAVE_ARM_SMCCC=y
 | 
			
		||||
CONFIG_HAVE_ARM_TWD=y
 | 
			
		||||
CONFIG_HAVE_CLK=y
 | 
			
		||||
CONFIG_HAVE_CLK_PREPARE=y
 | 
			
		||||
CONFIG_HAVE_CONTEXT_TRACKING=y
 | 
			
		||||
CONFIG_HAVE_C_RECORDMCOUNT=y
 | 
			
		||||
CONFIG_HAVE_DEBUG_KMEMLEAK=y
 | 
			
		||||
CONFIG_HAVE_DMA_CONTIGUOUS=y
 | 
			
		||||
CONFIG_HAVE_DYNAMIC_FTRACE=y
 | 
			
		||||
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y
 | 
			
		||||
CONFIG_HAVE_EBPF_JIT=y
 | 
			
		||||
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
 | 
			
		||||
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
 | 
			
		||||
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
 | 
			
		||||
CONFIG_HAVE_FUNCTION_TRACER=y
 | 
			
		||||
CONFIG_HAVE_IDE=y
 | 
			
		||||
CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
 | 
			
		||||
CONFIG_HAVE_LD_DEAD_CODE_DATA_ELIMINATION=y
 | 
			
		||||
CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
 | 
			
		||||
CONFIG_HAVE_NET_DSA=y
 | 
			
		||||
CONFIG_HAVE_OPROFILE=y
 | 
			
		||||
CONFIG_HAVE_OPTPROBES=y
 | 
			
		||||
CONFIG_HAVE_PCI=y
 | 
			
		||||
CONFIG_HAVE_PERF_EVENTS=y
 | 
			
		||||
CONFIG_HAVE_PERF_REGS=y
 | 
			
		||||
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
 | 
			
		||||
CONFIG_HAVE_PROC_CPU=y
 | 
			
		||||
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
 | 
			
		||||
CONFIG_HAVE_RSEQ=y
 | 
			
		||||
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_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_KASAN_STACK=1
 | 
			
		||||
# 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
 | 
			
		||||
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_PARSER_TRX=y
 | 
			
		||||
# CONFIG_MTD_RAW_NAND is not set
 | 
			
		||||
CONFIG_MTD_SPI_NOR=y
 | 
			
		||||
CONFIG_MTD_SPLIT_SEAMA_FW=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_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
 | 
			
		||||
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_OF_RESERVED_MEM=y
 | 
			
		||||
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
 | 
			
		||||
CONFIG_PCIE_IPROC=y
 | 
			
		||||
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
 | 
			
		||||
# CONFIG_PHY_BCM_NS_USB2 is not set
 | 
			
		||||
# CONFIG_PHY_BCM_NS_USB3 is not set
 | 
			
		||||
# 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
 | 
			
		||||
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
 | 
			
		||||
CONFIG_SPI=y
 | 
			
		||||
CONFIG_SPI_BCM_QSPI=y
 | 
			
		||||
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_UBSAN_ALIGNMENT=y
 | 
			
		||||
CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h"
 | 
			
		||||
# CONFIG_UNICODE is not set
 | 
			
		||||
CONFIG_UNIX_SCM=y
 | 
			
		||||
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
 | 
			
		||||
CONFIG_XZ_DEC_BCJ=y
 | 
			
		||||
CONFIG_ZBOOT_ROM_BSS=0x0
 | 
			
		||||
CONFIG_ZBOOT_ROM_TEXT=0x0
 | 
			
		||||
CONFIG_ZLIB_DEFLATE=y
 | 
			
		||||
CONFIG_ZLIB_INFLATE=y
 | 
			
		||||
CONFIG_ZSTD_COMPRESS=y
 | 
			
		||||
CONFIG_ZSTD_DECOMPRESS=y
 | 
			
		||||
@ -385,7 +385,7 @@ define Device/tplink-archer-c5-v2
 | 
			
		||||
  IMAGE/bin := append-rootfs | bcm53xx-tplink-safeloader
 | 
			
		||||
  TPLINK_BOARD := ARCHER-C5-V2
 | 
			
		||||
endef
 | 
			
		||||
TARGET_DEVICES += tplink-archer-c5-v2
 | 
			
		||||
#TARGET_DEVICES += tplink-archer-c5-v2
 | 
			
		||||
 | 
			
		||||
define Device/tplink-archer-c9-v1
 | 
			
		||||
  DEVICE_VENDOR := TP-LINK
 | 
			
		||||
@ -396,6 +396,6 @@ define Device/tplink-archer-c9-v1
 | 
			
		||||
  IMAGE/bin := append-rootfs | bcm53xx-tplink-safeloader
 | 
			
		||||
  TPLINK_BOARD := ARCHERC9
 | 
			
		||||
endef
 | 
			
		||||
TARGET_DEVICES += tplink-archer-c9-v1
 | 
			
		||||
#TARGET_DEVICES += tplink-archer-c9-v1
 | 
			
		||||
 | 
			
		||||
$(eval $(call BuildImage))
 | 
			
		||||
 | 
			
		||||
@ -0,0 +1,80 @@
 | 
			
		||||
From: Dan Haab <dan.haab@legrand.com>
 | 
			
		||||
Date: Wed, 2 Oct 2019 09:57:26 -0600
 | 
			
		||||
Subject: [PATCH] ARM: dts: BCM5301X: Add DT for Luxul XWC-2000
 | 
			
		||||
 | 
			
		||||
It's a simple network device based on BCM47094 with just a single
 | 
			
		||||
Ethernet port.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Dan Haab <dan.haab@legrand.com>
 | 
			
		||||
---
 | 
			
		||||
 arch/arm/boot/dts/Makefile                    |  1 +
 | 
			
		||||
 arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts | 53 +++++++++++++++++++
 | 
			
		||||
 2 files changed, 54 insertions(+)
 | 
			
		||||
 create mode 100644 arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts
 | 
			
		||||
 | 
			
		||||
--- a/arch/arm/boot/dts/Makefile
 | 
			
		||||
+++ b/arch/arm/boot/dts/Makefile
 | 
			
		||||
@@ -111,6 +111,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
 | 
			
		||||
 	bcm47094-luxul-abr-4500.dtb \
 | 
			
		||||
 	bcm47094-luxul-xap-1610.dtb \
 | 
			
		||||
 	bcm47094-luxul-xbr-4500.dtb \
 | 
			
		||||
+	bcm47094-luxul-xwc-2000.dtb \
 | 
			
		||||
 	bcm47094-luxul-xwr-3100.dtb \
 | 
			
		||||
 	bcm47094-luxul-xwr-3150-v1.dtb \
 | 
			
		||||
 	bcm47094-netgear-r8500.dtb \
 | 
			
		||||
--- /dev/null
 | 
			
		||||
+++ b/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts
 | 
			
		||||
@@ -0,0 +1,53 @@
 | 
			
		||||
+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
 | 
			
		||||
+/*
 | 
			
		||||
+ * Copyright 2019 Legrand AV Inc.
 | 
			
		||||
+ */
 | 
			
		||||
+
 | 
			
		||||
+/dts-v1/;
 | 
			
		||||
+
 | 
			
		||||
+#include "bcm47094.dtsi"
 | 
			
		||||
+#include "bcm5301x-nand-cs0-bch8.dtsi"
 | 
			
		||||
+
 | 
			
		||||
+/ {
 | 
			
		||||
+	compatible = "luxul,xwc-2000-v1", "brcm,bcm47094", "brcm,bcm4708";
 | 
			
		||||
+	model = "Luxul XWC-2000 V1";
 | 
			
		||||
+
 | 
			
		||||
+	chosen {
 | 
			
		||||
+		bootargs = "earlycon";
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	memory {
 | 
			
		||||
+		reg = <0x00000000 0x08000000
 | 
			
		||||
+		       0x88000000 0x18000000>;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	leds {
 | 
			
		||||
+		compatible = "gpio-leds";
 | 
			
		||||
+
 | 
			
		||||
+		status	{
 | 
			
		||||
+			label = "bcm53xx:green:status";
 | 
			
		||||
+			gpios = <&chipcommon 18 GPIO_ACTIVE_LOW>;
 | 
			
		||||
+			linux,default-trigger = "timer";
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	gpio-keys {
 | 
			
		||||
+		compatible = "gpio-keys";
 | 
			
		||||
+		#address-cells = <1>;
 | 
			
		||||
+		#size-cells = <0>;
 | 
			
		||||
+
 | 
			
		||||
+		restart {
 | 
			
		||||
+			label = "Reset";
 | 
			
		||||
+			linux,code = <KEY_RESTART>;
 | 
			
		||||
+			gpios = <&chipcommon 19 GPIO_ACTIVE_LOW>;
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&uart1 {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&spi_nor {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+};
 | 
			
		||||
@ -0,0 +1,143 @@
 | 
			
		||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
 | 
			
		||||
Date: Sat, 1 Oct 2016 22:54:48 +0200
 | 
			
		||||
Subject: [PATCH] usb: xhci: add support for performing fake doorbell
 | 
			
		||||
 | 
			
		||||
Broadcom's Northstar XHCI controllers seem to need a special start
 | 
			
		||||
procedure to work correctly. There isn't any official documentation of
 | 
			
		||||
this, the problem is that controller doesn't detect any connected
 | 
			
		||||
devices with default setup. Moreover connecting USB device to controller
 | 
			
		||||
that doesn't run properly can cause SoC's watchdog issues.
 | 
			
		||||
 | 
			
		||||
A workaround that was successfully tested on multiple devices is to
 | 
			
		||||
perform a fake doorbell. This patch adds code for doing this and enables
 | 
			
		||||
it on BCM4708 family.
 | 
			
		||||
---
 | 
			
		||||
 drivers/usb/host/xhci-plat.c |  6 +++++
 | 
			
		||||
 drivers/usb/host/xhci.c      | 63 +++++++++++++++++++++++++++++++++++++++++---
 | 
			
		||||
 drivers/usb/host/xhci.h      |  1 +
 | 
			
		||||
 3 files changed, 67 insertions(+), 3 deletions(-)
 | 
			
		||||
 | 
			
		||||
Index: linux-5.4.11/drivers/usb/host/xhci-plat.c
 | 
			
		||||
===================================================================
 | 
			
		||||
--- linux-5.4.11.orig/drivers/usb/host/xhci-plat.c
 | 
			
		||||
+++ linux-5.4.11/drivers/usb/host/xhci-plat.c
 | 
			
		||||
@@ -67,6 +67,8 @@ static int xhci_priv_resume_quirk(struct
 | 
			
		||||
 static void xhci_plat_quirks(struct device *dev, struct xhci_hcd *xhci)
 | 
			
		||||
 {
 | 
			
		||||
 	struct xhci_plat_priv *priv = xhci_to_priv(xhci);
 | 
			
		||||
+	struct platform_device*pdev = to_platform_device(dev);
 | 
			
		||||
+	struct device_node *node = pdev->dev.of_node;
 | 
			
		||||
 
 | 
			
		||||
 	/*
 | 
			
		||||
 	 * As of now platform drivers don't provide MSI support so we ensure
 | 
			
		||||
@@ -74,6 +76,9 @@ static void xhci_plat_quirks(struct devi
 | 
			
		||||
 	 * dev struct in order to setup MSI
 | 
			
		||||
 	 */
 | 
			
		||||
 	xhci->quirks |= XHCI_PLAT | priv->quirks;
 | 
			
		||||
+
 | 
			
		||||
+	if (node && of_machine_is_compatible("brcm,bcm4708"))
 | 
			
		||||
+		xhci->quirks |= XHCI_FAKE_DOORBELL;
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 /* called during probe() after chip reset completes */
 | 
			
		||||
Index: linux-5.4.11/drivers/usb/host/xhci.c
 | 
			
		||||
===================================================================
 | 
			
		||||
--- linux-5.4.11.orig/drivers/usb/host/xhci.c
 | 
			
		||||
+++ linux-5.4.11/drivers/usb/host/xhci.c
 | 
			
		||||
@@ -156,6 +156,49 @@ int xhci_start(struct xhci_hcd *xhci)
 | 
			
		||||
 	return ret;
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
+/**
 | 
			
		||||
+ * xhci_fake_doorbell - Perform a fake doorbell on a specified slot
 | 
			
		||||
+ *
 | 
			
		||||
+ * Some controllers require a fake doorbell to start correctly. Without that
 | 
			
		||||
+ * they simply don't detect any devices.
 | 
			
		||||
+ */
 | 
			
		||||
+static int xhci_fake_doorbell(struct xhci_hcd *xhci, int slot_id)
 | 
			
		||||
+{
 | 
			
		||||
+	u32 temp;
 | 
			
		||||
+
 | 
			
		||||
+	/* Alloc a virt device for that slot */
 | 
			
		||||
+	if (!xhci_alloc_virt_device(xhci, slot_id, NULL, GFP_NOIO)) {
 | 
			
		||||
+		xhci_warn(xhci, "Could not allocate xHCI USB device data structures\n");
 | 
			
		||||
+		return -ENOMEM;
 | 
			
		||||
+	}
 | 
			
		||||
+
 | 
			
		||||
+	/* Ring fake doorbell for slot_id ep 0 */
 | 
			
		||||
+	xhci_ring_ep_doorbell(xhci, slot_id, 0, 0);
 | 
			
		||||
+	usleep_range(1000, 1500);
 | 
			
		||||
+
 | 
			
		||||
+	/* Read the status to check if HSE is set or not */
 | 
			
		||||
+	temp = readl(&xhci->op_regs->status);
 | 
			
		||||
+
 | 
			
		||||
+	/* Clear HSE if set */
 | 
			
		||||
+	if (temp & STS_FATAL) {
 | 
			
		||||
+		xhci_dbg(xhci, "HSE problem detected, status: 0x%08x\n", temp);
 | 
			
		||||
+		temp &= ~0x1fff;
 | 
			
		||||
+		temp |= STS_FATAL;
 | 
			
		||||
+		writel(temp, &xhci->op_regs->status);
 | 
			
		||||
+		usleep_range(1000, 1500);
 | 
			
		||||
+		readl(&xhci->op_regs->status);
 | 
			
		||||
+	}
 | 
			
		||||
+
 | 
			
		||||
+	/* Free virt device */
 | 
			
		||||
+	xhci_free_virt_device(xhci, slot_id);
 | 
			
		||||
+
 | 
			
		||||
+	/* We're done if controller is already running */
 | 
			
		||||
+	if (readl(&xhci->op_regs->command) & CMD_RUN)
 | 
			
		||||
+		return 0;
 | 
			
		||||
+
 | 
			
		||||
+	return xhci_start(xhci);
 | 
			
		||||
+}
 | 
			
		||||
+
 | 
			
		||||
 /*
 | 
			
		||||
  * Reset a halted HC.
 | 
			
		||||
  *
 | 
			
		||||
@@ -604,10 +647,20 @@ static int xhci_init(struct usb_hcd *hcd
 | 
			
		||||
 
 | 
			
		||||
 static int xhci_run_finished(struct xhci_hcd *xhci)
 | 
			
		||||
 {
 | 
			
		||||
-	if (xhci_start(xhci)) {
 | 
			
		||||
-		xhci_halt(xhci);
 | 
			
		||||
-		return -ENODEV;
 | 
			
		||||
+	int err;
 | 
			
		||||
+
 | 
			
		||||
+	err = xhci_start(xhci);
 | 
			
		||||
+	if (err) {
 | 
			
		||||
+		err = -ENODEV;
 | 
			
		||||
+		goto err_halt;
 | 
			
		||||
 	}
 | 
			
		||||
+
 | 
			
		||||
+	if (xhci->quirks & XHCI_FAKE_DOORBELL) {
 | 
			
		||||
+		err = xhci_fake_doorbell(xhci, 1);
 | 
			
		||||
+		if (err)
 | 
			
		||||
+			goto err_halt;
 | 
			
		||||
+	}
 | 
			
		||||
+
 | 
			
		||||
 	xhci->shared_hcd->state = HC_STATE_RUNNING;
 | 
			
		||||
 	xhci->cmd_ring_state = CMD_RING_STATE_RUNNING;
 | 
			
		||||
 
 | 
			
		||||
@@ -617,6 +670,10 @@ static int xhci_run_finished(struct xhci
 | 
			
		||||
 	xhci_dbg_trace(xhci, trace_xhci_dbg_init,
 | 
			
		||||
 			"Finished xhci_run for USB3 roothub");
 | 
			
		||||
 	return 0;
 | 
			
		||||
+
 | 
			
		||||
+err_halt:
 | 
			
		||||
+	xhci_halt(xhci);
 | 
			
		||||
+	return err;
 | 
			
		||||
 }
 | 
			
		||||
 
 | 
			
		||||
 /*
 | 
			
		||||
Index: linux-5.4.11/drivers/usb/host/xhci.h
 | 
			
		||||
===================================================================
 | 
			
		||||
--- linux-5.4.11.orig/drivers/usb/host/xhci.h
 | 
			
		||||
+++ linux-5.4.11/drivers/usb/host/xhci.h
 | 
			
		||||
@@ -1867,6 +1867,7 @@ struct xhci_hcd {
 | 
			
		||||
 #define XHCI_DEFAULT_PM_RUNTIME_ALLOW	BIT_ULL(33)
 | 
			
		||||
 #define XHCI_RESET_PLL_ON_DISCONNECT	BIT_ULL(34)
 | 
			
		||||
 #define XHCI_SNPS_BROKEN_SUSPEND    BIT_ULL(35)
 | 
			
		||||
+#define XHCI_FAKE_DOORBELL	BIT_ULL(36)
 | 
			
		||||
 
 | 
			
		||||
 	unsigned int		num_active_eps;
 | 
			
		||||
 	unsigned int		limit_active_eps;
 | 
			
		||||
@ -0,0 +1,101 @@
 | 
			
		||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
 | 
			
		||||
Date: Wed, 24 Sep 2014 22:14:07 +0200
 | 
			
		||||
Subject: [PATCH] ARM: BCM5301X: Disable MMU and Dcache during decompression
 | 
			
		||||
MIME-Version: 1.0
 | 
			
		||||
Content-Type: text/plain; charset=UTF-8
 | 
			
		||||
Content-Transfer-Encoding: 8bit
 | 
			
		||||
 | 
			
		||||
Broadcom devices have broken CFE (bootloader) that leaves hardware in an
 | 
			
		||||
invalid state. It causes problems with booting Linux. On Northstar
 | 
			
		||||
devices kernel was randomly hanging in ~25% of tries during early init.
 | 
			
		||||
Hangs used to happen at random places in the start_kernel. On BCM53573
 | 
			
		||||
kernel doesn't even seem to start booting.
 | 
			
		||||
 | 
			
		||||
To workaround this problem we need to do following very early:
 | 
			
		||||
1) Clear 2 following bits in the SCTLR register:
 | 
			
		||||
#define CR_M    (1 << 0)        /* MMU enable */
 | 
			
		||||
#define CR_C    (1 << 2)        /* Dcache enable */
 | 
			
		||||
2) Flush the whole D-cache
 | 
			
		||||
3) Disable L2 cache
 | 
			
		||||
 | 
			
		||||
Unfortunately this patch is not upstreamable as it does above things
 | 
			
		||||
unconditionally. We can't check if we are running on Broadcom platform
 | 
			
		||||
in any safe way and doing such hacks with ARCH_MULTI_V7 is unacceptable
 | 
			
		||||
as it could break other devices support.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
--- a/arch/arm/boot/compressed/Makefile
 | 
			
		||||
+++ b/arch/arm/boot/compressed/Makefile
 | 
			
		||||
@@ -35,6 +35,11 @@ ifeq ($(CONFIG_ARCH_ACORN),y)
 | 
			
		||||
 OBJS		+= ll_char_wr.o font.o
 | 
			
		||||
 endif
 | 
			
		||||
 
 | 
			
		||||
+ifeq ($(CONFIG_ARCH_BCM_5301X),y)
 | 
			
		||||
+OBJS		+= head-bcm_5301x-mpcore.o
 | 
			
		||||
+OBJS		+= cache-v7-min.o
 | 
			
		||||
+endif
 | 
			
		||||
+
 | 
			
		||||
 ifeq ($(CONFIG_ARCH_SA1100),y)
 | 
			
		||||
 OBJS		+= head-sa1100.o
 | 
			
		||||
 endif
 | 
			
		||||
--- /dev/null
 | 
			
		||||
+++ b/arch/arm/boot/compressed/head-bcm_5301x-mpcore.S
 | 
			
		||||
@@ -0,0 +1,37 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ *
 | 
			
		||||
+ * Platform specific tweaks.  This is merged into head.S by the linker.
 | 
			
		||||
+ *
 | 
			
		||||
+ */
 | 
			
		||||
+
 | 
			
		||||
+#include <linux/linkage.h>
 | 
			
		||||
+#include <asm/assembler.h>
 | 
			
		||||
+#include <asm/cp15.h>
 | 
			
		||||
+
 | 
			
		||||
+		.section        ".start", "ax"
 | 
			
		||||
+
 | 
			
		||||
+/*
 | 
			
		||||
+ * This code section is spliced into the head code by the linker
 | 
			
		||||
+ */
 | 
			
		||||
+
 | 
			
		||||
+__plat_uncompress_start:
 | 
			
		||||
+
 | 
			
		||||
+	@ Preserve r8/r7 i.e. kernel entry values
 | 
			
		||||
+	mov	r12, r8
 | 
			
		||||
+
 | 
			
		||||
+	@ Clear MMU enable and Dcache enable bits
 | 
			
		||||
+	mrc	p15, 0, r0, c1, c0, 0		@ Read SCTLR
 | 
			
		||||
+	bic	r0, #CR_C|CR_M
 | 
			
		||||
+	mcr	p15, 0, r0, c1, c0, 0		@ Write SCTLR
 | 
			
		||||
+	nop
 | 
			
		||||
+
 | 
			
		||||
+	@ Call the cache invalidation routine
 | 
			
		||||
+	bl	v7_flush_dcache_all
 | 
			
		||||
+	nop
 | 
			
		||||
+	mov	r0,#0
 | 
			
		||||
+	ldr	r3, =0x19022000			@ L2 cache controller, control reg
 | 
			
		||||
+	str	r0, [r3, #0x100]		@ Disable L2 cache
 | 
			
		||||
+	nop
 | 
			
		||||
+
 | 
			
		||||
+	@ Restore
 | 
			
		||||
+	mov	r8, r12
 | 
			
		||||
--- a/arch/arm/boot/compressed/cache-v7-min.S
 | 
			
		||||
+++ b/arch/arm/boot/compressed/cache-v7-min.S
 | 
			
		||||
@@ -12,6 +12,7 @@
 | 
			
		||||
 
 | 
			
		||||
 #include <linux/linkage.h>
 | 
			
		||||
 #include <linux/init.h>
 | 
			
		||||
+#include <asm/assembler.h>
 | 
			
		||||
 
 | 
			
		||||
 	__INIT
 | 
			
		||||
 
 | 
			
		||||
@@ -63,7 +64,7 @@ loop2:
 | 
			
		||||
  ARM(	orr	r11, r11, r9, lsl r2	)	@ factor index number into r11
 | 
			
		||||
  THUMB(	lsl	r6, r9, r2		)
 | 
			
		||||
  THUMB(	orr	r11, r11, r6		)	@ factor index number into r11
 | 
			
		||||
-	mcr	p15, 0, r11, c7, c14, 2		@ clean & invalidate by set/way
 | 
			
		||||
+	mcr     p15, 0, r11, c7, c6, 2		@ clean & invalidate by set/way
 | 
			
		||||
 	subs	r9, r9, #1			@ decrement the index
 | 
			
		||||
 	bge	loop2
 | 
			
		||||
 	subs	r4, r4, #1			@ decrement the way
 | 
			
		||||
@ -0,0 +1,31 @@
 | 
			
		||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
 | 
			
		||||
Subject: [PATCH] ARM: dts: BCM5301X: Update Northstar pinctrl binding
 | 
			
		||||
MIME-Version: 1.0
 | 
			
		||||
Content-Type: text/plain; charset=UTF-8
 | 
			
		||||
Content-Transfer-Encoding: 8bit
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
--- a/arch/arm/boot/dts/bcm5301x.dtsi
 | 
			
		||||
+++ b/arch/arm/boot/dts/bcm5301x.dtsi
 | 
			
		||||
@@ -400,16 +400,12 @@
 | 
			
		||||
 		#size-cells = <1>;
 | 
			
		||||
 
 | 
			
		||||
 		cru@100 {
 | 
			
		||||
-			compatible = "simple-bus";
 | 
			
		||||
+			compatible = "syscon", "simple-mfd";
 | 
			
		||||
 			reg = <0x100 0x1a4>;
 | 
			
		||||
-			ranges;
 | 
			
		||||
-			#address-cells = <1>;
 | 
			
		||||
-			#size-cells = <1>;
 | 
			
		||||
 
 | 
			
		||||
-			pin-controller@1c0 {
 | 
			
		||||
+			pinctrl {
 | 
			
		||||
 				compatible = "brcm,bcm4708-pinmux";
 | 
			
		||||
-				reg = <0x1c0 0x24>;
 | 
			
		||||
-				reg-names = "cru_gpio_control";
 | 
			
		||||
+				offset = <0xc0>;
 | 
			
		||||
 
 | 
			
		||||
 				spi-pins {
 | 
			
		||||
 					groups = "spi_grp";
 | 
			
		||||
@ -0,0 +1,64 @@
 | 
			
		||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
 | 
			
		||||
Subject: [PATCH] ARM: BCM5301X: Add DT for Netgear R7900
 | 
			
		||||
MIME-Version: 1.0
 | 
			
		||||
Content-Type: text/plain; charset=UTF-8
 | 
			
		||||
Content-Transfer-Encoding: 8bit
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
--- a/arch/arm/boot/dts/Makefile
 | 
			
		||||
+++ b/arch/arm/boot/dts/Makefile
 | 
			
		||||
@@ -104,6 +104,7 @@ dtb-$(CONFIG_ARCH_BCM_5301X) += \
 | 
			
		||||
 	bcm4709-buffalo-wxr-1900dhp.dtb \
 | 
			
		||||
 	bcm4709-linksys-ea9200.dtb \
 | 
			
		||||
 	bcm4709-netgear-r7000.dtb \
 | 
			
		||||
+	bcm4709-netgear-r7900.dtb \
 | 
			
		||||
 	bcm4709-netgear-r8000.dtb \
 | 
			
		||||
 	bcm4709-tplink-archer-c9-v1.dtb \
 | 
			
		||||
 	bcm47094-dlink-dir-885l.dtb \
 | 
			
		||||
--- /dev/null
 | 
			
		||||
+++ b/arch/arm/boot/dts/bcm4709-netgear-r7900.dts
 | 
			
		||||
@@ -0,0 +1,42 @@
 | 
			
		||||
+/*
 | 
			
		||||
+ * Broadcom BCM470X / BCM5301X ARM platform code.
 | 
			
		||||
+ * DTS for Netgear R7900
 | 
			
		||||
+ *
 | 
			
		||||
+ * Copyright (C) 2016 Rafał Miłecki <zajec5@gmail.com>
 | 
			
		||||
+ *
 | 
			
		||||
+ * Licensed under the GNU/GPL. See COPYING for details.
 | 
			
		||||
+ */
 | 
			
		||||
+
 | 
			
		||||
+/dts-v1/;
 | 
			
		||||
+
 | 
			
		||||
+#include "bcm4709.dtsi"
 | 
			
		||||
+#include "bcm5301x-nand-cs0-bch8.dtsi"
 | 
			
		||||
+
 | 
			
		||||
+/ {
 | 
			
		||||
+	compatible = "netgear,r7900", "brcm,bcm4709", "brcm,bcm4708";
 | 
			
		||||
+	model = "Netgear R7900";
 | 
			
		||||
+
 | 
			
		||||
+	chosen {
 | 
			
		||||
+		bootargs = "console=ttyS0,115200";
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	memory {
 | 
			
		||||
+		reg = <0x00000000 0x08000000
 | 
			
		||||
+		       0x88000000 0x08000000>;
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
+	axi@18000000 {
 | 
			
		||||
+		usb3@23000 {
 | 
			
		||||
+			reg = <0x00023000 0x1000>;
 | 
			
		||||
+
 | 
			
		||||
+			#address-cells = <1>;
 | 
			
		||||
+			#size-cells = <1>;
 | 
			
		||||
+
 | 
			
		||||
+			vcc-gpio = <&chipcommon 0 GPIO_ACTIVE_HIGH>;
 | 
			
		||||
+		};
 | 
			
		||||
+	};
 | 
			
		||||
+};
 | 
			
		||||
+
 | 
			
		||||
+&uart0 {
 | 
			
		||||
+	status = "okay";
 | 
			
		||||
+};
 | 
			
		||||
@ -0,0 +1,20 @@
 | 
			
		||||
From: Felix Fietkau <nbd@nbd.name>
 | 
			
		||||
Subject: [PATCH] ARM: BCM5301X: Add power button for Buffalo WZR-1750DHP
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
 | 
			
		||||
---
 | 
			
		||||
--- a/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
 | 
			
		||||
+++ b/arch/arm/boot/dts/bcm4708-buffalo-wzr-1750dhp.dts
 | 
			
		||||
@@ -101,6 +101,12 @@
 | 
			
		||||
 		#address-cells = <1>;
 | 
			
		||||
 		#size-cells = <0>;
 | 
			
		||||
 
 | 
			
		||||
+		power {
 | 
			
		||||
+			label = "Power";
 | 
			
		||||
+			linux,code = <KEY_POWER>;
 | 
			
		||||
+			gpios = <&chipcommon 1 GPIO_ACTIVE_LOW>;
 | 
			
		||||
+		};
 | 
			
		||||
+
 | 
			
		||||
 		restart {
 | 
			
		||||
 			label = "Reset";
 | 
			
		||||
 			linux,code = <KEY_RESTART>;
 | 
			
		||||
@ -0,0 +1,134 @@
 | 
			
		||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
 | 
			
		||||
Subject: [PATCH] ARM: dts: BCM5301X: Add serial= to the bootargs
 | 
			
		||||
MIME-Version: 1.0
 | 
			
		||||
Content-Type: text/plain; charset=UTF-8
 | 
			
		||||
Content-Transfer-Encoding: 8bit
 | 
			
		||||
 | 
			
		||||
It's enough to have proper stdout-path for getting serial working but
 | 
			
		||||
for some reason LEDE doesn't offer "Please press Enter to activate this
 | 
			
		||||
console." unless ttyS0 is specified.
 | 
			
		||||
 | 
			
		||||
This is a workaround to get serial working in LEDE.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
Index: linux-5.4.11/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
 | 
			
		||||
===================================================================
 | 
			
		||||
--- linux-5.4.11.orig/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
 | 
			
		||||
+++ linux-5.4.11/arch/arm/boot/dts/bcm47081-tplink-archer-c5-v2.dts
 | 
			
		||||
@@ -12,7 +12,7 @@
 | 
			
		||||
 	model = "TP-LINK Archer C5 V2";
 | 
			
		||||
 
 | 
			
		||||
 	chosen {
 | 
			
		||||
-		bootargs = "earlycon";
 | 
			
		||||
+		bootargs = "console=ttyS0,115200 earlycon";
 | 
			
		||||
 	};
 | 
			
		||||
 
 | 
			
		||||
 	memory@0 {
 | 
			
		||||
Index: linux-5.4.11/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts
 | 
			
		||||
===================================================================
 | 
			
		||||
--- linux-5.4.11.orig/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts
 | 
			
		||||
+++ linux-5.4.11/arch/arm/boot/dts/bcm47094-luxul-abr-4500.dts
 | 
			
		||||
@@ -13,7 +13,7 @@
 | 
			
		||||
 	model = "Luxul ABR-4500 V1";
 | 
			
		||||
 
 | 
			
		||||
 	chosen {
 | 
			
		||||
-		bootargs = "earlycon";
 | 
			
		||||
+		bootargs = "console=ttyS0,115200 earlycon";
 | 
			
		||||
 	};
 | 
			
		||||
 
 | 
			
		||||
 	memory@0 {
 | 
			
		||||
Index: linux-5.4.11/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts
 | 
			
		||||
===================================================================
 | 
			
		||||
--- linux-5.4.11.orig/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts
 | 
			
		||||
+++ linux-5.4.11/arch/arm/boot/dts/bcm47094-luxul-xbr-4500.dts
 | 
			
		||||
@@ -13,7 +13,7 @@
 | 
			
		||||
 	model = "Luxul XBR-4500 V1";
 | 
			
		||||
 
 | 
			
		||||
 	chosen {
 | 
			
		||||
-		bootargs = "earlycon";
 | 
			
		||||
+		bootargs = "console=ttyS0,115200 earlycon";
 | 
			
		||||
 	};
 | 
			
		||||
 
 | 
			
		||||
 	memory@0 {
 | 
			
		||||
Index: linux-5.4.11/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts
 | 
			
		||||
===================================================================
 | 
			
		||||
--- linux-5.4.11.orig/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts
 | 
			
		||||
+++ linux-5.4.11/arch/arm/boot/dts/bcm47189-luxul-xap-1440.dts
 | 
			
		||||
@@ -12,7 +12,7 @@
 | 
			
		||||
 	model = "Luxul XAP-1440 V1";
 | 
			
		||||
 
 | 
			
		||||
 	chosen {
 | 
			
		||||
-		bootargs = "earlycon";
 | 
			
		||||
+		bootargs = "console=ttyS0,115200 earlycon";
 | 
			
		||||
 	};
 | 
			
		||||
 
 | 
			
		||||
 	memory@0 {
 | 
			
		||||
Index: linux-5.4.11/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts
 | 
			
		||||
===================================================================
 | 
			
		||||
--- linux-5.4.11.orig/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts
 | 
			
		||||
+++ linux-5.4.11/arch/arm/boot/dts/bcm47189-luxul-xap-810.dts
 | 
			
		||||
@@ -12,7 +12,7 @@
 | 
			
		||||
 	model = "Luxul XAP-810 V1";
 | 
			
		||||
 
 | 
			
		||||
 	chosen {
 | 
			
		||||
-		bootargs = "earlycon";
 | 
			
		||||
+		bootargs = "console=ttyS0,115200 earlycon";
 | 
			
		||||
 	};
 | 
			
		||||
 
 | 
			
		||||
 	memory@0 {
 | 
			
		||||
Index: linux-5.4.11/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts
 | 
			
		||||
===================================================================
 | 
			
		||||
--- linux-5.4.11.orig/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts
 | 
			
		||||
+++ linux-5.4.11/arch/arm/boot/dts/bcm47094-luxul-xap-1610.dts
 | 
			
		||||
@@ -12,7 +12,7 @@
 | 
			
		||||
 	model = "Luxul XAP-1610 V1";
 | 
			
		||||
 
 | 
			
		||||
 	chosen {
 | 
			
		||||
-		bootargs = "earlycon";
 | 
			
		||||
+		bootargs = "console=ttyS0,115200 earlycon";
 | 
			
		||||
 	};
 | 
			
		||||
 
 | 
			
		||||
 	memory@0 {
 | 
			
		||||
Index: linux-5.4.11/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts
 | 
			
		||||
===================================================================
 | 
			
		||||
--- linux-5.4.11.orig/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts
 | 
			
		||||
+++ linux-5.4.11/arch/arm/boot/dts/bcm47094-luxul-xwr-3150-v1.dts
 | 
			
		||||
@@ -13,7 +13,7 @@
 | 
			
		||||
 	model = "Luxul XWR-3150 V1";
 | 
			
		||||
 
 | 
			
		||||
 	chosen {
 | 
			
		||||
-		bootargs = "earlycon";
 | 
			
		||||
+		bootargs = "console=ttyS0,115200 earlycon";
 | 
			
		||||
 	};
 | 
			
		||||
 
 | 
			
		||||
 	memory@0 {
 | 
			
		||||
Index: linux-5.4.11/arch/arm/boot/dts/bcm47094-phicomm-k3.dts
 | 
			
		||||
===================================================================
 | 
			
		||||
--- linux-5.4.11.orig/arch/arm/boot/dts/bcm47094-phicomm-k3.dts
 | 
			
		||||
+++ linux-5.4.11/arch/arm/boot/dts/bcm47094-phicomm-k3.dts
 | 
			
		||||
@@ -13,6 +13,10 @@
 | 
			
		||||
 	compatible = "phicomm,k3", "brcm,bcm47094", "brcm,bcm4708";
 | 
			
		||||
 	model = "Phicomm K3";
 | 
			
		||||
 
 | 
			
		||||
+	chosen {
 | 
			
		||||
+		bootargs = "console=ttyS0,115200";
 | 
			
		||||
+	};
 | 
			
		||||
+
 | 
			
		||||
 	memory@0 {
 | 
			
		||||
 		device_type = "memory";
 | 
			
		||||
 		reg = <0x00000000 0x08000000
 | 
			
		||||
Index: linux-5.4.11/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts
 | 
			
		||||
===================================================================
 | 
			
		||||
--- linux-5.4.11.orig/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts
 | 
			
		||||
+++ linux-5.4.11/arch/arm/boot/dts/bcm47094-luxul-xwc-2000.dts
 | 
			
		||||
@@ -13,7 +13,7 @@
 | 
			
		||||
 	model = "Luxul XWC-2000 V1";
 | 
			
		||||
 
 | 
			
		||||
 	chosen {
 | 
			
		||||
-		bootargs = "earlycon";
 | 
			
		||||
+		bootargs = "console=ttyS0,115200 earlycon";
 | 
			
		||||
 	};
 | 
			
		||||
 
 | 
			
		||||
 	memory {
 | 
			
		||||
@ -0,0 +1,25 @@
 | 
			
		||||
From 7166207bd1d8c46d09d640d46afc685df9bb9083 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
 | 
			
		||||
Date: Thu, 22 Nov 2018 09:21:49 +0100
 | 
			
		||||
Subject: [PATCH] ARM: dts: BCM5301X: Describe partition formats
 | 
			
		||||
MIME-Version: 1.0
 | 
			
		||||
Content-Type: text/plain; charset=UTF-8
 | 
			
		||||
Content-Transfer-Encoding: 8bit
 | 
			
		||||
 | 
			
		||||
It's needed by OpenWrt for custom partitioning.
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
 | 
			
		||||
---
 | 
			
		||||
 arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts | 1 +
 | 
			
		||||
 1 file changed, 1 insertion(+)
 | 
			
		||||
 | 
			
		||||
--- a/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
 | 
			
		||||
+++ b/arch/arm/boot/dts/bcm47094-dlink-dir-885l.dts
 | 
			
		||||
@@ -34,6 +34,7 @@
 | 
			
		||||
 				partition@0 {
 | 
			
		||||
 					label = "firmware";
 | 
			
		||||
 					reg = <0x00000000 0x08000000>;
 | 
			
		||||
+					compatible = "seama";
 | 
			
		||||
 				};
 | 
			
		||||
 			};
 | 
			
		||||
 		};
 | 
			
		||||
@ -0,0 +1,59 @@
 | 
			
		||||
From 2a2af518266a29323cf30c3f9ba9ef2ceb1dd84b Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
 | 
			
		||||
Date: Thu, 16 Oct 2014 20:52:16 +0200
 | 
			
		||||
Subject: [PATCH] UBI: Detect EOF mark and erase all remaining blocks
 | 
			
		||||
MIME-Version: 1.0
 | 
			
		||||
Content-Type: text/plain; charset=UTF-8
 | 
			
		||||
Content-Transfer-Encoding: 8bit
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
 | 
			
		||||
---
 | 
			
		||||
 drivers/mtd/ubi/attach.c | 5 +++++
 | 
			
		||||
 drivers/mtd/ubi/io.c     | 4 ++++
 | 
			
		||||
 drivers/mtd/ubi/ubi.h    | 1 +
 | 
			
		||||
 3 files changed, 10 insertions(+)
 | 
			
		||||
 | 
			
		||||
--- a/drivers/mtd/ubi/attach.c
 | 
			
		||||
+++ b/drivers/mtd/ubi/attach.c
 | 
			
		||||
@@ -95,6 +95,9 @@ static int self_check_ai(struct ubi_devi
 | 
			
		||||
 #define AV_ADD		BIT(1)
 | 
			
		||||
 #define AV_FIND_OR_ADD	(AV_FIND | AV_ADD)
 | 
			
		||||
 
 | 
			
		||||
+/* Set on finding block with 0xdeadc0de, indicates erasing all blocks behind */
 | 
			
		||||
+bool erase_all_next;
 | 
			
		||||
+
 | 
			
		||||
 /**
 | 
			
		||||
  * find_or_add_av - internal function to find a volume, add a volume or do
 | 
			
		||||
  *		    both (find and add if missing).
 | 
			
		||||
@@ -1592,6 +1595,8 @@ int ubi_attach(struct ubi_device *ubi, i
 | 
			
		||||
 	if (!ai)
 | 
			
		||||
 		return -ENOMEM;
 | 
			
		||||
 
 | 
			
		||||
+	erase_all_next = false;
 | 
			
		||||
+
 | 
			
		||||
 #ifdef CONFIG_MTD_UBI_FASTMAP
 | 
			
		||||
 	/* On small flash devices we disable fastmap in any case. */
 | 
			
		||||
 	if ((int)mtd_div_by_eb(ubi->mtd->size, ubi->mtd) <= UBI_FM_MAX_START) {
 | 
			
		||||
--- a/drivers/mtd/ubi/io.c
 | 
			
		||||
+++ b/drivers/mtd/ubi/io.c
 | 
			
		||||
@@ -723,6 +723,10 @@ int ubi_io_read_ec_hdr(struct ubi_device
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
 	magic = be32_to_cpu(ec_hdr->magic);
 | 
			
		||||
+	if (magic == 0xdeadc0de)
 | 
			
		||||
+		erase_all_next = true;
 | 
			
		||||
+	if (erase_all_next)
 | 
			
		||||
+		return read_err ? UBI_IO_FF_BITFLIPS : UBI_IO_FF;
 | 
			
		||||
 	if (magic != UBI_EC_HDR_MAGIC) {
 | 
			
		||||
 		if (mtd_is_eccerr(read_err))
 | 
			
		||||
 			return UBI_IO_BAD_HDR_EBADMSG;
 | 
			
		||||
--- a/drivers/mtd/ubi/ubi.h
 | 
			
		||||
+++ b/drivers/mtd/ubi/ubi.h
 | 
			
		||||
@@ -833,6 +833,7 @@ extern struct mutex ubi_devices_mutex;
 | 
			
		||||
 extern struct blocking_notifier_head ubi_notifiers;
 | 
			
		||||
 
 | 
			
		||||
 /* attach.c */
 | 
			
		||||
+extern bool erase_all_next;
 | 
			
		||||
 struct ubi_ainf_peb *ubi_alloc_aeb(struct ubi_attach_info *ai, int pnum,
 | 
			
		||||
 				   int ec);
 | 
			
		||||
 void ubi_free_aeb(struct ubi_attach_info *ai, struct ubi_ainf_peb *aeb);
 | 
			
		||||
@ -0,0 +1,52 @@
 | 
			
		||||
From 4abdde3ad6bc0b3b157c4bf6ec0bf139d11d07e8 Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5@gmail.com>
 | 
			
		||||
Date: Wed, 13 May 2015 14:13:28 +0200
 | 
			
		||||
Subject: [PATCH] b53: add hacky CPU port fixes for devices not using port 5
 | 
			
		||||
MIME-Version: 1.0
 | 
			
		||||
Content-Type: text/plain; charset=UTF-8
 | 
			
		||||
Content-Transfer-Encoding: 8bit
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
 | 
			
		||||
---
 | 
			
		||||
 drivers/net/phy/b53/b53_common.c | 6 ++++++
 | 
			
		||||
 1 file changed, 6 insertions(+)
 | 
			
		||||
 | 
			
		||||
--- a/drivers/net/phy/b53/b53_common.c
 | 
			
		||||
+++ b/drivers/net/phy/b53/b53_common.c
 | 
			
		||||
@@ -28,6 +28,7 @@
 | 
			
		||||
 #include <linux/of.h>
 | 
			
		||||
 #include <linux/of_net.h>
 | 
			
		||||
 #include <linux/platform_data/b53.h>
 | 
			
		||||
+#include <linux/of.h>
 | 
			
		||||
 
 | 
			
		||||
 #include "b53_regs.h"
 | 
			
		||||
 #include "b53_priv.h"
 | 
			
		||||
@@ -1579,6 +1580,28 @@ static int b53_switch_init(struct b53_de
 | 
			
		||||
 			return ret;
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
+	/* Set correct CPU port */
 | 
			
		||||
+	if (of_machine_is_compatible("asus,rt-ac87u"))
 | 
			
		||||
+		sw_dev->cpu_port = 7;
 | 
			
		||||
+	else if (of_machine_is_compatible("netgear,r7900"))
 | 
			
		||||
+		sw_dev->cpu_port = 8;
 | 
			
		||||
+	else if (of_machine_is_compatible("netgear,r8000"))
 | 
			
		||||
+		sw_dev->cpu_port = 8;
 | 
			
		||||
+	else if (of_machine_is_compatible("netgear,r8500"))
 | 
			
		||||
+		sw_dev->cpu_port = 8;
 | 
			
		||||
+
 | 
			
		||||
+	/* Enable extra ports */
 | 
			
		||||
+	if (of_machine_is_compatible("tenda,ac9"))
 | 
			
		||||
+		dev->enabled_ports |= BIT(5);
 | 
			
		||||
+
 | 
			
		||||
+	/*
 | 
			
		||||
+	 * Workaround for devices using port 8 (connected to the 3rd iface).
 | 
			
		||||
+	 * For some reason it doesn't work (no packets on eth2).
 | 
			
		||||
+	 */
 | 
			
		||||
+	if (of_machine_is_compatible("netgear,r7900") ||
 | 
			
		||||
+	    of_machine_is_compatible("netgear,r8000"))
 | 
			
		||||
+		sw_dev->cpu_port = 5;
 | 
			
		||||
+
 | 
			
		||||
 	dev->enabled_ports |= BIT(sw_dev->cpu_port);
 | 
			
		||||
 	sw_dev->ports = fls(dev->enabled_ports);
 | 
			
		||||
 
 | 
			
		||||
@ -0,0 +1,80 @@
 | 
			
		||||
From 6f1c62440eb6846cb8045d7a5480ec7bbe47c96f Mon Sep 17 00:00:00 2001
 | 
			
		||||
From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <rafal@milecki.pl>
 | 
			
		||||
Date: Mon, 15 Aug 2016 10:30:41 +0200
 | 
			
		||||
Subject: [PATCH] BCM53573 minor hacks
 | 
			
		||||
MIME-Version: 1.0
 | 
			
		||||
Content-Type: text/plain; charset=UTF-8
 | 
			
		||||
Content-Transfer-Encoding: 8bit
 | 
			
		||||
 | 
			
		||||
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
--- a/arch/arm/boot/dts/bcm53573.dtsi
 | 
			
		||||
+++ b/arch/arm/boot/dts/bcm53573.dtsi
 | 
			
		||||
@@ -53,6 +53,7 @@
 | 
			
		||||
 			     <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
 | 
			
		||||
 			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
 | 
			
		||||
 			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
 | 
			
		||||
+		clocks = <&ilp>;
 | 
			
		||||
 	};
 | 
			
		||||
 
 | 
			
		||||
 	clocks {
 | 
			
		||||
--- a/drivers/bcma/main.c
 | 
			
		||||
+++ b/drivers/bcma/main.c
 | 
			
		||||
@@ -330,14 +330,6 @@ static int bcma_register_devices(struct
 | 
			
		||||
 	}
 | 
			
		||||
 #endif
 | 
			
		||||
 
 | 
			
		||||
-#ifdef CONFIG_BCMA_SFLASH
 | 
			
		||||
-	if (bus->drv_cc.sflash.present) {
 | 
			
		||||
-		err = platform_device_register(&bcma_sflash_dev);
 | 
			
		||||
-		if (err)
 | 
			
		||||
-			bcma_err(bus, "Error registering serial flash\n");
 | 
			
		||||
-	}
 | 
			
		||||
-#endif
 | 
			
		||||
-
 | 
			
		||||
 #ifdef CONFIG_BCMA_NFLASH
 | 
			
		||||
 	if (bus->drv_cc.nflash.present) {
 | 
			
		||||
 		err = platform_device_register(&bcma_nflash_dev);
 | 
			
		||||
@@ -415,6 +407,14 @@ int bcma_bus_register(struct bcma_bus *b
 | 
			
		||||
 			bcma_register_core(bus, core);
 | 
			
		||||
 	}
 | 
			
		||||
 
 | 
			
		||||
+#ifdef CONFIG_BCMA_SFLASH
 | 
			
		||||
+	if (bus->drv_cc.sflash.present) {
 | 
			
		||||
+		err = platform_device_register(&bcma_sflash_dev);
 | 
			
		||||
+		if (err)
 | 
			
		||||
+			bcma_err(bus, "Error registering serial flash\n");
 | 
			
		||||
+	}
 | 
			
		||||
+#endif
 | 
			
		||||
+
 | 
			
		||||
 	/* Try to get SPROM */
 | 
			
		||||
 	err = bcma_sprom_get(bus);
 | 
			
		||||
 	if (err == -ENOENT) {
 | 
			
		||||
--- a/drivers/clocksource/arm_arch_timer.c
 | 
			
		||||
+++ b/drivers/clocksource/arm_arch_timer.c
 | 
			
		||||
@@ -17,6 +17,7 @@
 | 
			
		||||
 #include <linux/smp.h>
 | 
			
		||||
 #include <linux/cpu.h>
 | 
			
		||||
 #include <linux/cpu_pm.h>
 | 
			
		||||
+#include <linux/clk.h>
 | 
			
		||||
 #include <linux/clockchips.h>
 | 
			
		||||
 #include <linux/clocksource.h>
 | 
			
		||||
 #include <linux/interrupt.h>
 | 
			
		||||
@@ -919,6 +920,16 @@ static void arch_timer_of_configure_rate
 | 
			
		||||
 	if (of_property_read_u32(np, "clock-frequency", &arch_timer_rate))
 | 
			
		||||
 		arch_timer_rate = rate;
 | 
			
		||||
 
 | 
			
		||||
+	/* Get clk rate through clk driver if present */
 | 
			
		||||
+	if (!arch_timer_rate) {
 | 
			
		||||
+		struct clk *clk = of_clk_get(np, 0);
 | 
			
		||||
+
 | 
			
		||||
+		if (!IS_ERR(clk)) {
 | 
			
		||||
+			if (!clk_prepare_enable(clk))
 | 
			
		||||
+				arch_timer_rate = clk_get_rate(clk);
 | 
			
		||||
+		}
 | 
			
		||||
+	}
 | 
			
		||||
+
 | 
			
		||||
 	/* Check the timer frequency. */
 | 
			
		||||
 	if (arch_timer_rate == 0)
 | 
			
		||||
 		pr_warn("frequency not available\n");
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user