bcm53xx: add v5.4 support
Signed-off-by: John Crispin <john@phrozen.org>
This commit is contained in:
		 John Crispin
					John Crispin
				
			
				
					committed by
					
						 Koen Vandeputte
						Koen Vandeputte
					
				
			
			
				
	
			
			
			 Koen Vandeputte
						Koen Vandeputte
					
				
			
						parent
						
							6d5291ff72
						
					
				
				
					commit
					50c6938b95
				
			| @@ -14,8 +14,8 @@ MAINTAINER:=Hauke Mehrtens <hauke@hauke-m.de> | |||||||
| CPU_TYPE:=cortex-a9 | CPU_TYPE:=cortex-a9 | ||||||
| SUBTARGETS:=generic | SUBTARGETS:=generic | ||||||
|  |  | ||||||
| KERNEL_PATCHVER:=4.14 | KERNEL_PATCHVER:=4.19 | ||||||
| KERNEL_TESTING_PATCHVER := 4.19 | KERNEL_TESTING_PATCHVER:=5.4 | ||||||
|  |  | ||||||
| define Target/Description | define Target/Description | ||||||
| 	Build firmware images for Broadcom based BCM47xx/53xx routers with ARM CPU, *not* MIPS. | 	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 |   IMAGE/bin := append-rootfs | bcm53xx-tplink-safeloader | ||||||
|   TPLINK_BOARD := ARCHER-C5-V2 |   TPLINK_BOARD := ARCHER-C5-V2 | ||||||
| endef | endef | ||||||
| TARGET_DEVICES += tplink-archer-c5-v2 | #TARGET_DEVICES += tplink-archer-c5-v2 | ||||||
|  |  | ||||||
| define Device/tplink-archer-c9-v1 | define Device/tplink-archer-c9-v1 | ||||||
|   DEVICE_VENDOR := TP-LINK |   DEVICE_VENDOR := TP-LINK | ||||||
| @@ -396,6 +396,6 @@ define Device/tplink-archer-c9-v1 | |||||||
|   IMAGE/bin := append-rootfs | bcm53xx-tplink-safeloader |   IMAGE/bin := append-rootfs | bcm53xx-tplink-safeloader | ||||||
|   TPLINK_BOARD := ARCHERC9 |   TPLINK_BOARD := ARCHERC9 | ||||||
| endef | endef | ||||||
| TARGET_DEVICES += tplink-archer-c9-v1 | #TARGET_DEVICES += tplink-archer-c9-v1 | ||||||
|  |  | ||||||
| $(eval $(call BuildImage)) | $(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"); | ||||||
		Reference in New Issue
	
	Block a user