coreboot/src/lib
Aaron Durbin 2e9e50142f BACKPORT: 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.

BUG=chrome-os-partner:19342
BRANCH=none
TEST=Built and booted. Noted that CAR values are not read incorrectly.

Change-Id: Ie0104a6e24cc6430a575ee3691671900c36db0d9
Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://gerrit.chromium.org/gerrit/51386
Reviewed-by: Stefan Reinauer <reinauer@google.com>
2013-05-16 15:06:24 -07:00
..
cbfs.c cbfs: fix relocation ramstage compiler errors 2013-03-23 19:34:15 +01:00
cbfs_core.c BACKPORT: cbfs_core.c: make cfbs searches even less verbose 2013-05-08 11:41:56 -07:00
cbmem.c BACKPORT: x86: add cache-as-ram migration option 2013-05-16 15:06:24 -07:00
cbmem_console.c Add infrastructure for global data in the CAR phase of boot 2012-03-29 23:19:13 +02:00
cbmem_info.c BACKPORT: x86: add cache-as-ram migration option 2013-05-16 15:06:24 -07:00
clog2.c printk_foo -> printk(BIOS_FOO, ...) 2010-03-22 11:42:32 +00:00
compute_ip_checksum.c Since some people disapprove of white space cleanups mixed in regular commits 2010-04-27 06:56:47 +00:00
coreboot_table.c call fill_lb_framebuffer() earlier 2013-05-02 22:18:20 -07:00
debug.c Myles suspected this hangs certain machines, so back it out. 2010-04-15 12:43:07 +00:00
delay.c - Major cleanup of the bootpath 2003-07-19 04:28:22 +00:00
dynamic_cbmem.c BACKPORT: x86: add cache-as-ram migration option 2013-05-16 15:06:24 -07:00
edid.c Provide support for setting up the framebuffer from EDID 2013-04-24 18:33:20 -07:00
fallback_boot.c Make set_boot_successful depend on PC80_SYSTEM 2012-11-30 21:33:35 +01:00
gcc.c Unify assembler function handling 2012-12-06 23:13:17 +01:00
gcov-glue.c BACKPORT: coverage: use boot state callbacks 2013-05-01 14:30:01 -07:00
gcov-io.c Implement GCC code coverage analysis 2013-01-12 19:09:55 +01:00
gcov-io.h Implement GCC code coverage analysis 2013-01-12 19:09:55 +01:00
gcov-iov.h Implement GCC code coverage analysis 2013-01-12 19:09:55 +01:00
generic_dump_spd.c Since some people disapprove of white space cleanups mixed in regular commits 2010-04-27 06:56:47 +00:00
generic_sdram.c Remove duplicate line from pci_ids.h. 2010-10-07 23:02:06 +00:00
hardwaremain.c BACKPORT: coreboot: add thread cooperative multitasking 2013-05-15 11:19:49 -07:00
jpeg.c Since some people disapprove of white space cleanups mixed in regular commits 2010-04-27 06:56:47 +00:00
jpeg.h Random cosmetic fixes (trivial). 2010-02-22 16:41:49 +00:00
libgcov.c Update gcov patch in documentation 2013-01-19 01:00:50 +01:00
lzma.c lib: Prevent unaligned memory access and fix endianess in LZMA decode library. 2013-02-01 06:15:49 +01:00
lzmadecode.c Since some people disapprove of white space cleanups mixed in regular commits 2010-04-27 06:56:47 +00:00
lzmadecode.h Since some people disapprove of white space cleanups mixed in regular commits 2010-04-27 06:56:47 +00:00
Makefile.inc BACKPORT: coreboot: add thread cooperative multitasking 2013-05-15 11:19:49 -07:00
malloc.c SMM: Add support for malloc in SMM if using TSEG 2012-07-24 23:44:19 +02:00
memchr.c Add an implementation for the memchr library function 2012-03-09 20:00:53 +01:00
memcmp.c - Initial checkin of the freebios2 tree 2003-04-22 19:02:15 +00:00
memcpy.c fix compiler warnings (trivial) 2009-01-20 21:40:16 +00:00
memmove.c tidy 2004-03-13 03:40:29 +00:00
memrange.c memrange: add 2 new range_entry routines 2013-03-29 20:11:28 +01:00
memset.c fix compiler warnings (trivial) 2009-01-20 21:40:16 +00:00
ne2k.c x86: Unify arch/io.h and arch/romcc_io.h 2013-03-22 00:00:09 +01:00
nrv2b.c Since some people disapprove of white space cleanups mixed in regular commits 2010-04-27 06:56:47 +00:00
ns8390.h Add support for the console over Ethernet (through PCI NE2000). 2010-07-16 20:02:09 +00:00
ramtest.c Replace ramtest pattern to assist in DIMM configuration 2012-03-25 20:17:51 +02:00
rmodule.c coreboot: dynamic cbmem requirement 2013-03-22 00:13:42 +01:00
rmodule.ld BACKPORT: boot state: schedule static callbacks 2013-05-01 14:30:00 -07:00
selfboot.c BACKPORT: boot state: rebalance payload load vs actual boot 2013-05-01 14:30:44 -07:00
stack.c fix an error message in checkstack() 2013-02-12 05:05:39 +01:00
thread.c BACKPORT: coreboot: add thread cooperative multitasking 2013-05-15 11:19:49 -07:00
timer_queue.c BACKPORT: coreboot: add timer queue implementation 2013-05-01 14:30:57 -07:00
timestamp.c Rename hardwaremain() to main() 2013-05-10 11:55:20 -07:00
trace.c GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00
uart8250.c Remove whitespace. 2012-02-17 19:04:31 +01:00
uart8250mem.c Fix read_option invocation in uart8250mem.c 2013-04-08 21:36:01 +02:00
usbdebug.c USBDEBUG: retry harder for slow devices 2012-07-30 20:54:24 +02:00
version.c This patch fixes build.h dependencies in coreboot again. 2010-03-29 13:04:13 +00:00
xmodem.c GPLv2 notice: Unify all files to just use one space in »MA 02110-1301« 2013-03-01 10:16:08 +01:00