coreboot/src/include
Julius Werner d142ccdcd9 arm: libpayload: Add cache coherent DMA memory definition and management
This patch adds a mechanism to set aside a region of cache-coherent
(i.e. usually uncached) virtual memory, which can be used to communicate
with DMA devices without automatic cache snooping (common on ARM)
without the need of explicit flush/invalidation instructions in the
driver code.

This works by setting aside said region in the (board-specific) page
table setup, as exemplary done in this patch for the Snow, Pit and Kirby
boards. It uses a new mechanism for adding board-specific Coreboot table
entries to describe this region in an entry with the LB_DMA tag.

Libpayload's memory allocator is enhanced to be able to operate on
distinct types/regions of memory. It provides dma_malloc() and
dma_memalign() functions for use in drivers, which by default just
operate on the same heap as their traditional counterparts. However, if
the Coreboot table parsing code finds a CB_DMA section, further requests
through the dma_xxx() functions will return memory from the region
described therein instead.

BUG=chrome-os-partner:21969
TEST=Manual

Change-Id: Ia9c249249e936bbc3eb76e7b4822af2230ffb186
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/167155
2013-08-29 22:48:49 +00:00
..
boot arm: libpayload: Add cache coherent DMA memory definition and management 2013-08-29 22:48:49 +00:00
console Add a specific post code for S3 resume failures 2013-08-09 11:18:59 -07:00
cpu lynxpoint: Route all USB ports to XHCI in finalize step 2013-07-31 13:15:55 -07:00
device i2c: Change the type of the data parameter to uint8_t. 2013-07-03 18:23:06 -07:00
pc80 Log device path into CMOS during probe stages 2013-06-10 18:08:24 -07:00
smp
assert.h
bootstate.h Rename hardwaremain() to main() 2013-05-10 11:55:20 -07:00
cbfs.h BACKPORT: boot state: rebalance payload load vs actual boot 2013-05-01 14:30:44 -07:00
cbfs_core.h
cbmem.h BACKPORT: x86: add cache-as-ram migration option 2013-05-16 15:06:24 -07:00
delay.h Drop prototype guarding for romcc 2013-05-10 11:55:20 -07:00
edid.h Added structure members x_mm and y_mm to edid decoding. 2013-07-23 19:02:23 -07:00
ehci.h Drop prototype guarding for romcc 2013-05-10 11:55:20 -07:00
elog.h Extend CMOS POST code logging to store extra data 2013-06-10 18:08:23 -07:00
endian.h
fallback.h
inttypes.h
ip_checksum.h Drop prototype guarding for romcc 2013-05-10 11:55:20 -07:00
kconfig.h
lib.h Add simple hexdump function 2013-07-30 15:25:06 -07:00
memrange.h
reset.h Drop prototype guarding for romcc 2013-05-10 11:55:20 -07:00
rmodule.h
romstage_handoff.h
sdram_mode.h
smbios.h smbios: Add generic type41 write function 2013-05-24 14:02:57 -07:00
spd.h
spd_ddr2.h
spi-generic.h
spi_flash.h
stddef.h Make ssize_t an actual ssize_t 2013-05-03 14:09:32 -07:00
stdlib.h exynos5420: Fix mmc clock source. 2013-08-22 16:03:17 -07:00
string.h
swab.h
thread.h Possible thread stack implementation. 2013-08-23 10:38:10 -07:00
timer.h timer: Add functions to initialize absolute timer structures. 2013-08-09 11:18:51 -07:00
timestamp.h Timestamp implementation for ARMv7 2013-08-02 12:16:42 -07:00
trace.h
types.h
uart.h Drop prototype guarding for romcc 2013-05-10 11:55:20 -07:00
uart8250.h Drop prototype guarding for romcc 2013-05-10 11:55:20 -07:00
usb_ch9.h
usbdebug.h Drop prototype guarding for romcc 2013-05-10 11:55:20 -07:00
vbe.h
version.h
watchdog.h