mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-26 06:30:39 +00:00
79340db7f1
The BCM283[56] contain both a L1 and L2 cache between the GPU (a/k/a VideoCore CPU?) and DRAM. DMA-capable peripherals can also optionally access DRAM via this same L2 cache (although they always bypass the L1 cache). Peripherals select whether to use or bypass the cache via the top two bits of the bus address. An IOMMU exists between the ARM CPU and the rest of the system. This controls whether the ARM CPU's accesses use or bypass the L1 and/or L2 cache. This IOMMU is configured/controlled exclusively by the VideoCore CPU. In order for DRAM accesses made by the ARM core to be coherent with accesses made by other DMA peripherals, we must program a bus address into those peripherals that causes the peripheral's accesses to use the same set of caches that the ARM core's accesses will use. On the RPi1, the VideoCore firmware sets up the IOMMU to enable use of the L2 cache. This corresponds to addresses based at 0x40000000. On the RPi2, the VideoCore firmware sets up the IOMMU to disable use of the L2 cache. This corresponds to addresses based at 0xc0000000. This patch implements U-Boot's phys_to_bus/bus_to_phys APIs according to those rules. For full details of this setup, please see Dom Cobley's description at: http://lists.denx.de/pipermail/u-boot/2015-March/208201.html http://permalink.gmane.org/gmane.comp.boot-loaders.u-boot/215038 https://www.mail-archive.com/u-boot@lists.denx.de/msg166568.html Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
43 lines
595 B
Text
43 lines
595 B
Text
menu "Broadcom BCM283X family"
|
|
depends on ARCH_BCM283X
|
|
|
|
choice
|
|
prompt "Broadcom BCM283X board select"
|
|
|
|
config TARGET_RPI
|
|
bool "Raspberry Pi"
|
|
select CPU_ARM1176
|
|
|
|
config TARGET_RPI_2
|
|
bool "Raspberry Pi 2"
|
|
select CPU_V7
|
|
|
|
endchoice
|
|
|
|
config DM
|
|
default y
|
|
|
|
config DM_SERIAL
|
|
default y
|
|
|
|
config DM_GPIO
|
|
default y
|
|
|
|
config PHYS_TO_BUS
|
|
default y
|
|
|
|
config SYS_BOARD
|
|
default "rpi" if TARGET_RPI
|
|
default "rpi_2" if TARGET_RPI_2
|
|
|
|
config SYS_VENDOR
|
|
default "raspberrypi"
|
|
|
|
config SYS_SOC
|
|
default "bcm283x"
|
|
|
|
config SYS_CONFIG_NAME
|
|
default "rpi" if TARGET_RPI
|
|
default "rpi_2" if TARGET_RPI_2
|
|
|
|
endmenu
|