coreboot-kgpe-d16/payloads/libpayload/arch/armv7
Julius Werner b8fad3d029 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 and Pit
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.

Change-Id: Ia9c249249e936bbc3eb76e7b4822af2230ffb186
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/167155
(cherry picked from commit d142ccdcd902a9d6ab4d495fbe6cbe85c61a5f01)
Signed-off-by: Isaac Christensen <isaac.christensen@se-eng.com>
Reviewed-on: http://review.coreboot.org/6622
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
2014-08-13 00:04:14 +02:00
..
Config.in libpayload: Make the region to scan for the cb tables configurable. 2013-12-03 02:35:44 +01:00
Makefile.inc libpayload: Change CONFIG_* to CONFIG_LP_* in the kconfig. 2014-08-05 18:44:08 +02:00
assembler.h
cache.c armv7: add wrapper for DCCSW (data cache clean by set/way) 2014-08-01 19:32:20 +02:00
coreboot.c arm: libpayload: Add cache coherent DMA memory definition and management 2014-08-13 00:04:14 +02:00
dummy_media.c libpayload: provide missing cbfs symbol 2014-07-31 18:32:37 +02:00
exception.c armv7: Support stack dump after exceptions 2014-08-10 22:18:50 +02:00
exception_asm.S armv7: Support stack dump after exceptions 2014-08-10 22:18:50 +02:00
head.S
libpayload.ldscript
main.c libpayload: Change CONFIG_* to CONFIG_LP_* in the kconfig. 2014-08-05 18:44:08 +02:00
memcpy.S ARM: Tell the linker memset and memcpy are functions. 2013-07-10 21:49:45 +02:00
memset.S ARM: Tell the linker memset and memcpy are functions. 2013-07-10 21:49:45 +02:00
sysinfo.c
timer.c libpayload: Generalize and redistribute timekeeping code 2013-03-14 04:53:33 +01:00
util.S
virtual.c