Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

# SPDX-License-Identifier: GPL-2.0
menuconfig CONFIG_ARCH_BCM
	bool "Broadcom SoC Support"
	depends on CONFIG_ARCH_MULTI_V6_V7
	help
	  This enables support for Broadcom CONFIG_ARM based SoC chips

if CONFIG_ARCH_BCM

comment "IPROC architected SoCs"

config CONFIG_ARCH_BCM_IPROC
	bool
	select CONFIG_ARM_GIC
	select CONFIG_CACHE_L2X0
	select CONFIG_HAVE_ARM_SCU if CONFIG_SMP
	select CONFIG_HAVE_ARM_TWD if CONFIG_SMP
	select CONFIG_ARM_GLOBAL_TIMER
	select CONFIG_CLKSRC_MMIO
	select CONFIG_GPIOLIB
	select CONFIG_ARM_AMBA
	select CONFIG_PINCTRL
	select CONFIG_PCI_DOMAINS_GENERIC if CONFIG_PCI
	help
	  This enables support for systems based on Broadcom IPROC architected SoCs.
	  The IPROC complex contains one or more CONFIG_ARM CPUs along with common
	  core peripherals. Application specific SoCs are created by adding a
	  uArchitecture containing peripherals outside of the IPROC complex.
	  Currently supported SoCs are Cygnus.

config CONFIG_ARCH_BCM_CYGNUS
	bool "Broadcom Cygnus Support"
	depends on CONFIG_ARCH_MULTI_V7
	select CONFIG_ARCH_BCM_IPROC
	help
	  Enable support for the Cygnus family,
	  which includes the following variants:
	  BCM11300, BCM11320, BCM11350, BCM11360,
	  BCM58300, BCM58302, BCM58303, BCM58305.

config CONFIG_ARCH_BCM_HR2
	bool "Broadcom Hurricane 2 SoC support"
	depends on CONFIG_ARCH_MULTI_V7
	select CONFIG_ARCH_BCM_IPROC
	help
	  Enable support for the Hurricane 2 family,
	  which includes the following variants:
	  BCM53342, BCM53343, BCM53344, BCM53346.

config CONFIG_ARCH_BCM_NSP
	bool "Broadcom Northstar Plus SoC Support"
	depends on CONFIG_ARCH_MULTI_V7
	select CONFIG_ARCH_BCM_IPROC
	select CONFIG_ARM_ERRATA_754322
	select CONFIG_ARM_ERRATA_775420
	select CONFIG_ARM_ERRATA_764369 if CONFIG_SMP
	select CONFIG_HAVE_SMP
	select CONFIG_THERMAL
	select CONFIG_THERMAL_OF
	help
	  Support for Broadcom Northstar Plus SoC.
	  Broadcom Northstar Plus family of SoCs are used for switching control
	  and management applications as well as residential router/gateway
	  applications. The SoC features dual core Cortex A9 CONFIG_ARM CPUs,
	  integrating several peripheral interfaces including multiple Gigabit
	  Ethernet PHYs, DDR3 memory, PCIE Gen-2, CONFIG_USB 2.0 and CONFIG_USB 3.0, serial and
	  NAND flash, SATA and several other IO controllers.

config CONFIG_ARCH_BCM_5301X
	bool "Broadcom BCM470X / BCM5301X ARM SoC"
	depends on CONFIG_ARCH_MULTI_V7
	select CONFIG_ARCH_BCM_IPROC
	select CONFIG_ARM_ERRATA_754322
	select CONFIG_ARM_ERRATA_775420
	select CONFIG_ARM_ERRATA_764369 if CONFIG_SMP
	select CONFIG_HAVE_SMP

	help
	  Support for Broadcom BCM470X and BCM5301X SoCs with CONFIG_ARM CPU cores.

	  This is a network SoC line mostly used in home routers and
	  wifi access points, its internal name is Northstar.
	  This includes the following SoC: BCM53010, BCM53011, BCM53012,
	  BCM53014, BCM53015, BCM53016, BCM53017, BCM53018, BCM4707,
	  BCM4708 and BCM4709.

	  Do not confuse this with the BCM4760 which is a totally
	  different SoC or with the older CONFIG_BCM47XX and BCM53XX based
	  network SoC using a CONFIG_MIPS CPU, they are supported by arch/mips/bcm47xx

comment "KONA architected SoCs"

config CONFIG_ARCH_BCM_MOBILE
	bool
	select CONFIG_GPIOLIB
	select CONFIG_ARM_ERRATA_754322
	select CONFIG_ARM_ERRATA_775420
	select CONFIG_ARM_GIC
	select CONFIG_GPIO_BCM_KONA
	select CONFIG_TICK_ONESHOT
	select CONFIG_HAVE_ARM_ARCH_TIMER
	select CONFIG_PINCTRL
	select CONFIG_ARCH_BCM_MOBILE_SMP if CONFIG_SMP
	select CONFIG_BCM_KONA_TIMER
	help
	  This enables support for systems based on Broadcom mobile SoCs.

config CONFIG_ARCH_BCM_281XX
	bool "Broadcom BCM281XX SoC family"
	depends on CONFIG_ARCH_MULTI_V7
	select CONFIG_ARCH_BCM_MOBILE
	select CONFIG_HAVE_SMP
	help
	  Enable support for the BCM281XX family, which includes
	  BCM11130, BCM11140, BCM11351, BCM28145 and BCM28155
	  variants.

config CONFIG_ARCH_BCM_21664
	bool "Broadcom BCM21664 SoC family"
	depends on CONFIG_ARCH_MULTI_V7
	select CONFIG_ARCH_BCM_MOBILE
	select CONFIG_HAVE_SMP
	help
	  Enable support for the BCM21664 family, which includes
	  BCM21663 and BCM21664 variants.

config CONFIG_ARCH_BCM_23550
	bool "Broadcom BCM23550 SoC"
	depends on CONFIG_ARCH_MULTI_V7
	select CONFIG_ARCH_BCM_MOBILE
	select CONFIG_HAVE_SMP
	help
	  Enable support for the BCM23550.

config CONFIG_ARCH_BCM_MOBILE_L2_CACHE
	bool "Broadcom mobile SoC level 2 cache support"
	depends on CONFIG_ARCH_BCM_281XX || CONFIG_ARCH_BCM_21664
	default y
	select CONFIG_CACHE_L2X0
	select CONFIG_ARCH_BCM_MOBILE_SMC

config CONFIG_ARCH_BCM_MOBILE_SMC
	bool
	depends on CONFIG_ARCH_BCM_MOBILE

config CONFIG_ARCH_BCM_MOBILE_SMP
	bool
	depends on CONFIG_ARCH_BCM_MOBILE
	select CONFIG_HAVE_ARM_SCU
	select CONFIG_ARM_ERRATA_764369
	help
	  CONFIG_SMP support for the BCM281XX, BCM21664 and BCM23550 SoC families.
	  Provided as an option so CONFIG_SMP support for SoCs of this type
	  can be disabled for an CONFIG_SMP-enabled kernel.

comment "Other Architectures"

config CONFIG_ARCH_BCM2835
	bool "Broadcom BCM2835 family"
	depends on CONFIG_ARCH_MULTI_V6 || CONFIG_ARCH_MULTI_V7
	select CONFIG_GPIOLIB
	select CONFIG_ARM_AMBA
	select CONFIG_ARM_ERRATA_411920 if CONFIG_ARCH_MULTI_V6
	select CONFIG_ARM_TIMER_SP804
	select CONFIG_HAVE_ARM_ARCH_TIMER if CONFIG_ARCH_MULTI_V7
	select CONFIG_TIMER_OF
	select CONFIG_BCM2835_TIMER
	select CONFIG_PINCTRL
	select CONFIG_PINCTRL_BCM2835
	select CONFIG_MFD_CORE
	help
	  This enables support for the Broadcom BCM2835 and BCM2836 SoCs.
	  This SoC is used in the Raspberry Pi and Roku 2 devices.

config CONFIG_ARCH_BCM_53573
	bool "Broadcom BCM53573 SoC series support"
	depends on CONFIG_ARCH_MULTI_V7
	select CONFIG_ARCH_BCM_IPROC
	select CONFIG_HAVE_ARM_ARCH_TIMER
	help
	  BCM53573 series is set of SoCs using CONFIG_ARM Cortex-A7 CPUs with wireless
	  embedded in the chipset.
	  This SoC line is mostly used in home routers and is some cheaper
	  alternative for Northstar family.

	  The base chip is BCM53573 and there are some packaging modifications
	  like BCM47189 and BCM47452.

config CONFIG_ARCH_BCM_63XX
	bool "Broadcom BCM63xx DSL SoC"
	depends on CONFIG_ARCH_MULTI_V7
	depends on CONFIG_MMU
	select CONFIG_ARCH_HAS_RESET_CONTROLLER
	select CONFIG_ARM_ERRATA_754322
	select CONFIG_ARM_ERRATA_764369 if CONFIG_SMP
	select CONFIG_ARM_GIC
	select CONFIG_ARM_GLOBAL_TIMER
	select CONFIG_CACHE_L2X0
	select CONFIG_HAVE_ARM_ARCH_TIMER
	select CONFIG_HAVE_ARM_TWD if CONFIG_SMP
	select CONFIG_HAVE_ARM_SCU if CONFIG_SMP
	select CONFIG_HAVE_SMP
	help
	  This enables support for systems based on Broadcom DSL SoCs.
	  It currently supports the 'CONFIG_BCM63XX' CONFIG_ARM-based family, which includes
	  the BCM63138 variant.

config CONFIG_ARCH_BRCMSTB
	bool "Broadcom BCM7XXX based boards"
	depends on CONFIG_ARCH_MULTI_V7
	select CONFIG_ARCH_HAS_RESET_CONTROLLER
	select CONFIG_ARM_GIC
	select CONFIG_ARM_ERRATA_798181 if CONFIG_SMP
	select CONFIG_HAVE_ARM_ARCH_TIMER
	select CONFIG_BRCMSTB_L2_IRQ
	select CONFIG_BCM7120_L2_IRQ
	select CONFIG_ARCH_HAS_HOLES_MEMORYMODEL
	select CONFIG_ZONE_DMA if CONFIG_ARM_LPAE
	select CONFIG_SOC_BRCMSTB
	select CONFIG_SOC_BUS
	select CONFIG_PINCTRL
	help
	  Say Y if you intend to run the kernel on a Broadcom CONFIG_ARM-based STB
	  chipset.

	  This enables support for Broadcom CONFIG_ARM-based set-top box chipsets,
	  including the 7445 family of chips.

endif