coreboot/src/mainboard
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 d142ccdcd9)
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
..
a-trend mainboard: Remove #include early_serial.c from w83977tf boards 2014-06-03 09:36:33 +02:00
aaeon superio/smsc/smscsuperio: Make romstage linkable with header 2014-06-03 09:37:57 +02:00
abit mainboard: Remove #include early_serial.c from w83977tf boards 2014-06-03 09:36:33 +02:00
adlink LiPPERT: Add aliases for board_status wiki 2014-05-19 14:57:14 +02:00
advansus src/mainboard: Remove trailing whitespace 2014-07-24 12:43:01 +02:00
advantech Move ARCH_* from board/Kconfig to cpu or soc Kconfig. 2014-05-03 00:25:20 +02:00
amd mainboard/amd: De-ASCIIartify AGESA board headers 2014-08-06 15:36:12 +02:00
aopen mainboard,ASL: Trivial - drop trailing blank lines at EOF 2014-07-17 02:18:23 +02:00
arima src/mainboard: Remove trailing whitespace 2014-07-24 12:43:01 +02:00
artecgroup artecgroup/Kconfig, linutop/Kconfig: Add comment to endif 2014-07-30 02:08:50 +02:00
asi Move ARCH_* from board/Kconfig to cpu or soc Kconfig. 2014-05-03 00:25:20 +02:00
asrock mainboard/amd: De-ASCIIartify AGESA board headers 2014-08-06 15:36:12 +02:00
asus Kconfig: do not set SB_HT_CHAIN_ON_BUS0 twice to the same value 2014-08-12 09:02:45 +02:00
avalue src/mainboard: Remove trailing whitespace 2014-07-24 12:43:01 +02:00
axus Move ARCH_* from board/Kconfig to cpu or soc Kconfig. 2014-05-03 00:25:20 +02:00
azza mainboard: Remove #include early_serial.c from w83977tf boards 2014-06-03 09:36:33 +02:00
bachmann mainboard: Trivial - drop trailing blank lines at EOF 2014-07-18 14:42:47 +02:00
bcom mainboard: Trivial - drop trailing blank lines at EOF 2014-07-18 14:42:47 +02:00
bifferos mainboard: Trivial - drop trailing blank lines at EOF 2014-07-08 13:54:47 +02:00
biostar superio/smsc/smscsuperio: Make romstage linkable with header 2014-06-03 09:37:57 +02:00
broadcom broadcom/blast/devicetree.cb: Remove a trailing whitespace 2014-07-24 12:42:45 +02:00
compaq Move ARCH_* from board/Kconfig to cpu or soc Kconfig. 2014-05-03 00:25:20 +02:00
cubietech Move ARCH_* from board/Kconfig to cpu or soc Kconfig. 2014-05-03 00:25:20 +02:00
digitallogic mainboard: Trivial - drop trailing blank lines at EOF 2014-07-18 14:42:47 +02:00
dmp Move ARCH_* from board/Kconfig to cpu or soc Kconfig. 2014-05-03 00:25:20 +02:00
eaglelion mainboard: Trivial - drop trailing blank lines at EOF 2014-07-18 14:42:47 +02:00
ecs intel: Remove GFXUMA and related global variables 2014-05-19 17:20:13 +02:00
emulation qemu-armv7/media.c: fix coding style 2014-08-08 18:32:28 +02:00
getac mainboard: Trivial - drop trailing blank lines at EOF 2014-07-18 14:42:47 +02:00
gigabyte src/mainboard: Remove trailing whitespace 2014-07-24 12:43:01 +02:00
gizmosphere mainboard/amd: De-ASCIIartify AGESA board headers 2014-08-06 15:36:12 +02:00
google arm: libpayload: Add cache coherent DMA memory definition and management 2014-08-13 00:04:14 +02:00
hp Kconfig: do not set SB_HT_CHAIN_ON_BUS0 twice to the same value 2014-08-12 09:02:45 +02:00
ibase mainboard: Trivial - drop trailing blank lines at EOF 2014-07-18 14:42:47 +02:00
ibm mainboard: Trivial - drop trailing blank lines at EOF 2014-07-18 14:42:47 +02:00
iei Kconfig: Fix comments on endif to match the corresponding if 2014-07-30 02:08:07 +02:00
intel mainboard/intel/minnowmax: clean up includes & whitespace 2014-08-12 03:35:59 +02:00
iwave src/mainboard: Remove trailing whitespace 2014-07-24 12:43:01 +02:00
iwill src/mainboard: Remove trailing whitespace 2014-07-24 12:43:01 +02:00
jetway Kconfig: Fix comments on endif to match the corresponding if 2014-07-30 02:08:07 +02:00
kontron sandy/ivybridge: Make UMA size configurable. 2014-08-03 13:44:40 +02:00
lanner mainboard: Trivial - drop trailing blank lines at EOF 2014-07-18 14:42:47 +02:00
lenovo lenovo/x201: Enable wake on LID and Fn key. 2014-08-09 18:18:41 +02:00
linutop artecgroup/Kconfig, linutop/Kconfig: Add comment to endif 2014-07-30 02:08:50 +02:00
lippert mainboard/amd: De-ASCIIartify AGESA board headers 2014-08-06 15:36:12 +02:00
mitac superio/smsc/smscsuperio: Make romstage linkable with header 2014-06-03 09:37:57 +02:00
msi mainboard/msi/ms7135/devicetree.cb: Remove trailing whitespace 2014-07-24 12:42:59 +02:00
nec superio/smsc/smscsuperio: Make romstage linkable with header 2014-06-03 09:37:57 +02:00
newisys mainboard: Trivial - drop trailing blank lines at EOF 2014-07-18 14:42:47 +02:00
nokia superio/smsc/smscsuperio: Make romstage linkable with header 2014-06-03 09:37:57 +02:00
nvidia mainboard: Trivial - drop trailing blank lines at EOF 2014-07-18 14:42:47 +02:00
packardbell nehalem: Make UMA size configurable in CMOS. 2014-08-03 15:47:00 +02:00
pcengines mainboard: Trivial - drop trailing blank lines at EOF 2014-07-18 14:42:47 +02:00
rca superio/smsc/smscsuperio: Make romstage linkable with header 2014-06-03 09:37:57 +02:00
roda gm45: Allow coexistance with ME firmware. 2014-08-12 22:28:53 +02:00
samsung sandy/ivybridge: Make UMA size configurable. 2014-08-03 13:44:40 +02:00
siemens siemens/sitemp_g1p1: Remove a trailing whitespace 2014-07-24 12:42:48 +02:00
soyo superio/ite/*: Factor out generic romstage component 2014-05-11 17:52:08 +02:00
sunw Kconfig: do not set SB_HT_CHAIN_ON_BUS0 twice to the same value 2014-08-12 09:02:45 +02:00
supermicro Kconfig: do not set SB_HT_CHAIN_ON_BUS0 twice to the same value 2014-08-12 09:02:45 +02:00
technexion mainboard: Trivial - drop trailing blank lines at EOF 2014-07-18 14:42:47 +02:00
technologic mainboard: Trivial - drop trailing blank lines at EOF 2014-07-18 14:42:47 +02:00
televideo Move ARCH_* from board/Kconfig to cpu or soc Kconfig. 2014-05-03 00:25:20 +02:00
thomson thomson/ip1000/devicetree.cb: Remove trailing whitespace 2014-07-24 12:42:54 +02:00
ti Move ARCH_* from board/Kconfig to cpu or soc Kconfig. 2014-05-03 00:25:20 +02:00
traverse mainboard: Trivial - drop trailing blank lines at EOF 2014-07-18 14:42:47 +02:00
tyan Kconfig: do not set SB_HT_CHAIN_ON_BUS0 twice to the same value 2014-08-12 09:02:45 +02:00
via Kconfig: Fix comments on endif to match the corresponding if 2014-07-30 02:08:07 +02:00
winent mainboard: Trivial - drop trailing blank lines at EOF 2014-07-18 14:42:47 +02:00
wyse mainboard: Trivial - drop trailing blank lines at EOF 2014-07-18 14:42:47 +02:00
Kconfig mainboard: New port Packard Bell LM85. 2014-04-20 18:47:19 +02:00