coreboot-kgpe-d16/src/include
Aaron Durbin 716738a6b8 x86: add cache-as-ram migration option
There are some boards that do a significant amount of
work after cache-as-ram is torn down but before ramstage
is loaded. For example, using vboot to verify the ramstage
is one such operation. However, there are pieces of code
that are executed that reference global variables that
are linked in the cache-as-ram region. If those variables
are referenced after cache-as-ram is torn down then the
values observed will most likely be incorrect.

Therefore provide a Kconfig option to select cache-as-ram
migration to memory using cbmem. This option is named
CAR_MIGRATION. When enabled, the address of cache-as-ram
variables may be obtained dynamically. Additionally,
when cache-as-ram migration occurs the cache-as-ram
data region for global variables is copied into cbmem.
There are also automatic callbacks for other modules
to perform their own migration, if necessary.

Change-Id: I2e77219647c2bd2b1aa845b262be3b2543f1fcb7
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: http://review.coreboot.org/3232
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
2013-05-16 01:29:50 +02:00
..
boot Eliminate use of pointers in coreboot table 2013-04-20 05:18:15 +02:00
console Get rid of MAXIMUM_CONSOLE_LOGLEVEL; compile all messages into the coreboot binary 2013-05-10 17:33:49 +02:00
cpu x86: add cache-as-ram migration option 2013-05-16 01:29:50 +02:00
device exynos5: Re-factor I2C code 2013-04-10 00:01:02 +02:00
pc80 Drop prototype guarding for romcc 2013-05-10 00:06:46 +02:00
smp Clean up #ifs 2012-05-08 00:34:34 +02:00
assert.h We call this cache as ram everywhere, so let's call it the same in Kconfig 2010-08-30 17:53:13 +00:00
bootstate.h hardwaremain: drop boot_complete parameter 2013-05-08 18:23:33 +02:00
cbfs.h boot state: rebalance payload load vs actual boot 2013-05-01 07:13:16 +02:00
cbfs_core.h Extend CBFS to support arbitrary ROM source media. 2013-01-30 17:58:32 +01:00
cbmem.h x86: add cache-as-ram migration option 2013-05-16 01:29:50 +02:00
delay.h Drop prototype guarding for romcc 2013-05-10 00:06:46 +02:00
edid.h link/graphics: Add support for EDID 2013-03-20 05:35:50 +01:00
ehci.h Drop prototype guarding for romcc 2013-05-10 00:06:46 +02:00
elog.h lynxpoint: Fix ELOG logging of power management events 2013-03-21 23:12:11 +01:00
endian.h Extend CBFS to support arbitrary ROM source media. 2013-01-30 17:58:32 +01:00
fallback.h Make set_boot_successful depend on PC80_SYSTEM 2012-11-30 21:33:35 +01:00
gpio.h add gpio.h for generic GPIO-related definitions 2013-02-04 05:38:32 +01:00
inttypes.h x86: provide more C standard environment 2013-03-20 04:20:25 +01:00
ip_checksum.h Drop prototype guarding for romcc 2013-05-10 00:06:46 +02:00
kconfig.h Add config_enabled() from Linux 2012-05-08 00:36:09 +02:00
lib.h Drop prototype guarding for romcc 2013-05-10 00:06:46 +02:00
memrange.h memrange: add 2 new range_entry routines 2013-03-29 20:11:28 +01:00
reset.h Drop prototype guarding for romcc 2013-05-10 00:06:46 +02:00
rmodule.h rmodule: add vboot rmodule type 2013-03-22 00:14:50 +01:00
romstage_handoff.h coreboot: dynamic cbmem requirement 2013-03-22 00:13:42 +01:00
sdram_mode.h GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
smbios.h Extend smbios api to allow runtime change of mainboard serial and version 2012-07-25 14:13:04 +02:00
spd.h GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
spd_ddr2.h GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
spi-generic.h spi-generic.h: Adapt include guard 2013-02-11 22:34:17 +01:00
spi_flash.h Whitespace: Replace tab character in license text with two spaces 2013-02-20 23:30:45 +01:00
stddef.h stddef.h: Add standard defines for KiB, MiB, GiB, and TiB 2013-03-16 16:15:01 +01:00
stdlib.h stdlib: add ALIGN_UP and ALIGN_DOWN macros 2013-03-29 19:54:47 +01:00
string.h string: Add STRINGIFY macro 2013-05-01 03:25:04 +02:00
swab.h Add macros for 64bit byte order swapping 2011-10-21 14:13:19 +02:00
thread.h coreboot: add thread cooperative multitasking 2013-05-14 05:18:47 +02:00
timer.h timer.h: add mono_time_diff_microseconds() 2013-05-05 23:57:03 +02:00
timestamp.h timestamp: add vboot check points 2013-03-22 00:14:18 +01:00
trace.h GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
types.h GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
uart.h Drop prototype guarding for romcc 2013-05-10 00:06:46 +02:00
uart8250.h Drop prototype guarding for romcc 2013-05-10 00:06:46 +02:00
usb_ch9.h USB Debug Port related license header fixes (trivial). 2010-09-23 18:16:46 +00:00
usbdebug.h Drop prototype guarding for romcc 2013-05-10 00:06:46 +02:00
version.h
watchdog.h watchdog.h: Fix compile time error on disabling watchdog handling 2013-03-12 12:06:43 +01:00