mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-08 14:54:23 +08:00
3c51b9c7f1
Some Host Controller hardware blocks, like the OHCI, EHCI and SDIO controllers, have hardware blocks that are not capable of doing 64 bit DMA. These host controllers fail on boards with >3GB of memory because the memory above 3GB is located physically >= 0x100000000 and can only be accessed using 64 DMA. The way Linux is currently configured for BRCMSTB systems, the memory given to drivers for DMA through functions like dma_alloc_coherent() comes from CMA memory and CMA memory is taken from the top of physical memory. When these drivers get a DMA buffer with an address >=0x100000000, they end up dropping the upper 32 bit of the address causing the hardware to DMA to incorrect memory, typically BMEM (custom memory carveout). This issue was discovered on a BCM97449SSV_DDR4 system with 4GB or memory. The fix is to enable CONFIG_ZONE_DMA. On ARM systems this makes sure that all DMA memory is located within the first 32 bits of address space. Signed-off-by: Al Cooper <alcooperx@gmail.com> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
213 lines
5.8 KiB
Plaintext
213 lines
5.8 KiB
Plaintext
menuconfig ARCH_BCM
|
|
bool "Broadcom SoC Support"
|
|
depends on ARCH_MULTI_V6_V7
|
|
help
|
|
This enables support for Broadcom ARM based SoC chips
|
|
|
|
if ARCH_BCM
|
|
|
|
comment "IPROC architected SoCs"
|
|
|
|
config ARCH_BCM_IPROC
|
|
bool
|
|
select ARM_GIC
|
|
select CACHE_L2X0
|
|
select HAVE_ARM_SCU if SMP
|
|
select HAVE_ARM_TWD if SMP
|
|
select ARM_GLOBAL_TIMER
|
|
select CLKSRC_MMIO
|
|
select GPIOLIB
|
|
select ARM_AMBA
|
|
select PINCTRL
|
|
help
|
|
This enables support for systems based on Broadcom IPROC architected SoCs.
|
|
The IPROC complex contains one or more ARM CPUs along with common
|
|
core periperals. Application specific SoCs are created by adding a
|
|
uArchitecture containing peripherals outside of the IPROC complex.
|
|
Currently supported SoCs are Cygnus.
|
|
|
|
config ARCH_BCM_CYGNUS
|
|
bool "Broadcom Cygnus Support"
|
|
depends on ARCH_MULTI_V7
|
|
select ARCH_BCM_IPROC
|
|
help
|
|
Enable support for the Cygnus family,
|
|
which includes the following variants:
|
|
BCM11300, BCM11320, BCM11350, BCM11360,
|
|
BCM58300, BCM58302, BCM58303, BCM58305.
|
|
|
|
config ARCH_BCM_NSP
|
|
bool "Broadcom Northstar Plus SoC Support"
|
|
depends on ARCH_MULTI_V7
|
|
select ARCH_BCM_IPROC
|
|
select ARM_ERRATA_754322
|
|
select ARM_ERRATA_775420
|
|
select ARM_ERRATA_764369 if SMP
|
|
select HAVE_SMP
|
|
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 ARM CPUs,
|
|
integrating several peripheral interfaces including multiple Gigabit
|
|
Ethernet PHYs, DDR3 memory, PCIE Gen-2, USB 2.0 and USB 3.0, serial and
|
|
NAND flash, SATA and several other IO controllers.
|
|
|
|
config ARCH_BCM_5301X
|
|
bool "Broadcom BCM470X / BCM5301X ARM SoC"
|
|
depends on ARCH_MULTI_V7
|
|
select ARCH_BCM_IPROC
|
|
select ARM_ERRATA_754322
|
|
select ARM_ERRATA_775420
|
|
select ARM_ERRATA_764369 if SMP
|
|
select HAVE_SMP
|
|
|
|
help
|
|
Support for Broadcom BCM470X and BCM5301X SoCs with ARM CPU cores.
|
|
|
|
This is a network SoC line mostly used in home routers and
|
|
wifi access points, it's internal name is Northstar.
|
|
This inclused 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 BCM47XX and BCM53XX based
|
|
network SoC using a MIPS CPU, they are supported by arch/mips/bcm47xx
|
|
|
|
comment "KONA architected SoCs"
|
|
|
|
config ARCH_BCM_MOBILE
|
|
bool
|
|
select GPIOLIB
|
|
select ARM_ERRATA_754322
|
|
select ARM_ERRATA_775420
|
|
select ARM_GIC
|
|
select GPIO_BCM_KONA
|
|
select TICK_ONESHOT
|
|
select HAVE_ARM_ARCH_TIMER
|
|
select PINCTRL
|
|
select ARCH_BCM_MOBILE_SMP if SMP
|
|
select BCM_KONA_TIMER
|
|
help
|
|
This enables support for systems based on Broadcom mobile SoCs.
|
|
|
|
config ARCH_BCM_281XX
|
|
bool "Broadcom BCM281XX SoC family"
|
|
depends on ARCH_MULTI_V7
|
|
select ARCH_BCM_MOBILE
|
|
select HAVE_SMP
|
|
help
|
|
Enable support for the BCM281XX family, which includes
|
|
BCM11130, BCM11140, BCM11351, BCM28145 and BCM28155
|
|
variants.
|
|
|
|
config ARCH_BCM_21664
|
|
bool "Broadcom BCM21664 SoC family"
|
|
depends on ARCH_MULTI_V7
|
|
select ARCH_BCM_MOBILE
|
|
select HAVE_SMP
|
|
help
|
|
Enable support for the BCM21664 family, which includes
|
|
BCM21663 and BCM21664 variants.
|
|
|
|
config ARCH_BCM_23550
|
|
bool "Broadcom BCM23550 SoC"
|
|
depends on ARCH_MULTI_V7
|
|
select ARCH_BCM_MOBILE
|
|
select HAVE_SMP
|
|
help
|
|
Enable support for the BCM23550.
|
|
|
|
config ARCH_BCM_MOBILE_L2_CACHE
|
|
bool "Broadcom mobile SoC level 2 cache support"
|
|
depends on ARCH_BCM_281XX || ARCH_BCM_21664
|
|
default y
|
|
select CACHE_L2X0
|
|
select ARCH_BCM_MOBILE_SMC
|
|
|
|
config ARCH_BCM_MOBILE_SMC
|
|
bool
|
|
depends on ARCH_BCM_MOBILE
|
|
|
|
config ARCH_BCM_MOBILE_SMP
|
|
bool
|
|
depends on ARCH_BCM_MOBILE
|
|
select HAVE_ARM_SCU
|
|
select ARM_ERRATA_764369
|
|
help
|
|
SMP support for the BCM281XX, BCM21664 and BCM23550 SoC families.
|
|
Provided as an option so SMP support for SoCs of this type
|
|
can be disabled for an SMP-enabled kernel.
|
|
|
|
comment "Other Architectures"
|
|
|
|
config ARCH_BCM2835
|
|
bool "Broadcom BCM2835 family"
|
|
depends on ARCH_MULTI_V6 || ARCH_MULTI_V7
|
|
select GPIOLIB
|
|
select ARM_AMBA
|
|
select ARM_ERRATA_411920 if ARCH_MULTI_V6
|
|
select ARM_TIMER_SP804
|
|
select HAVE_ARM_ARCH_TIMER if ARCH_MULTI_V7
|
|
select CLKSRC_OF
|
|
select BCM2835_TIMER
|
|
select PINCTRL
|
|
select PINCTRL_BCM2835
|
|
help
|
|
This enables support for the Broadcom BCM2835 and BCM2836 SoCs.
|
|
This SoC is used in the Raspberry Pi and Roku 2 devices.
|
|
|
|
config ARCH_BCM_53573
|
|
bool "Broadcom BCM53573 SoC series support"
|
|
depends on ARCH_MULTI_V7
|
|
select ARCH_BCM_IPROC
|
|
select HAVE_ARM_ARCH_TIMER
|
|
help
|
|
BCM53573 series is set of SoCs using 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 ARCH_BCM_63XX
|
|
bool "Broadcom BCM63xx DSL SoC"
|
|
depends on ARCH_MULTI_V7
|
|
depends on MMU
|
|
select ARM_ERRATA_754322
|
|
select ARM_ERRATA_764369 if SMP
|
|
select ARM_GIC
|
|
select ARM_GLOBAL_TIMER
|
|
select CACHE_L2X0
|
|
select HAVE_ARM_ARCH_TIMER
|
|
select HAVE_ARM_TWD if SMP
|
|
select HAVE_ARM_SCU if SMP
|
|
select HAVE_SMP
|
|
help
|
|
This enables support for systems based on Broadcom DSL SoCs.
|
|
It currently supports the 'BCM63XX' ARM-based family, which includes
|
|
the BCM63138 variant.
|
|
|
|
config ARCH_BRCMSTB
|
|
bool "Broadcom BCM7XXX based boards"
|
|
depends on ARCH_MULTI_V7
|
|
select ARM_GIC
|
|
select ARM_ERRATA_798181 if SMP
|
|
select HAVE_ARM_ARCH_TIMER
|
|
select BRCMSTB_L2_IRQ
|
|
select BCM7120_L2_IRQ
|
|
select ARCH_DMA_ADDR_T_64BIT if ARM_LPAE
|
|
select ZONE_DMA if ARM_LPAE
|
|
select SOC_BRCMSTB
|
|
select SOC_BUS
|
|
help
|
|
Say Y if you intend to run the kernel on a Broadcom ARM-based STB
|
|
chipset.
|
|
|
|
This enables support for Broadcom ARM-based set-top box chipsets,
|
|
including the 7445 family of chips.
|
|
|
|
endif
|