linux/arch/arm/mach-bcm
Al Cooper 3c51b9c7f1 ARM: brcmstb: Enable ZONE_DMA for non 64-bit capable peripherals
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>
2017-03-15 14:57:25 -07:00
..
bcm63xx_pmb.c ARM: BCM63xx: Remove unused pmb_dn variable 2016-02-02 10:47:08 -08:00
bcm63xx_smp.c ARM: 8641/1: treewide: Replace uses of virt_to_phys with __pa_symbol 2017-02-28 11:06:10 +00:00
bcm63xx_smp.h ARM: BCM63xx: Remove custom secondary_startup function 2015-07-11 18:33:51 -07:00
bcm63xx.c ARM: BCM63XX: add basic support for the Broadcom BCM63138 DSL SoC 2014-09-17 10:56:06 -07:00
bcm_5301x.c ARM: BCM5301X: Add back handler ignoring external imprecise aborts 2016-11-16 12:39:05 -08:00
bcm_cygnus.c ARM: cygnus: fix const declaration bcm_cygnus_dt_compat 2015-03-24 15:13:23 -07:00
bcm_kona_smc.c ARM: appropriate __init annotation for const data 2015-07-28 13:55:27 +02:00
bcm_kona_smc.h ARM: bcm: use inline assembly for "smc" request 2014-04-25 08:51:36 -04:00
bcm_nsp.c ARM: NSP: Add basic support for Broadcom Northstar Plus SoC 2015-09-14 15:44:18 -07:00
board_bcm281xx.c arm: Remove unnecessary of_platform_populate with default match table 2016-06-23 14:58:37 -05:00
board_bcm2835.c arm: Remove unnecessary of_platform_populate with default match table 2016-06-23 14:58:37 -05:00
board_bcm21664.c ARM: SoC platform updates for v4.8 2016-08-01 18:27:08 -04:00
board_bcm23550.c ARM: Add support for Broadcom BCM23550 SoC 2016-06-06 11:47:28 -07:00
brcmstb.c ARM: brcmstb: Add earlyprintk support using run-time checks 2016-08-08 11:14:09 -07:00
Kconfig ARM: brcmstb: Enable ZONE_DMA for non 64-bit capable peripherals 2017-03-15 14:57:25 -07:00
kona_l2_cache.c ARM: bcm: fix missing include of kona_l2_cache.h 2016-06-08 10:17:15 -07:00
kona_l2_cache.h ARM: bcm: rename "kona.h" and "kona.c" 2014-04-25 08:51:38 -04:00
Makefile ARM: Add support for Broadcom BCM23550 SoC 2016-06-06 11:47:28 -07:00
platsmp-brcmstb.c ARM: 8641/1: treewide: Replace uses of virt_to_phys with __pa_symbol 2017-02-28 11:06:10 +00:00
platsmp.c sched/headers: Prepare for new header dependencies before moving code to <linux/sched/clock.h> 2017-03-02 08:42:27 +01:00