coreboot/src/lib
Aaron Durbin 4944047ed1 UPSTREAM: bootstate: add arch specific hook at coreboot exit
The bootstate machine allows one to schedule work at the
boundaries of each state. However, there are no priorities by
design. As such if there are things that need to be performed
that are interdependent between callbacks there's no way to
do that aside from explicitly putting the call in one of the
callbacks.

This situation arises around BS_OS_RESUME, BS_PAYLOAD_LOAD,
and BS_PAYLOAD_BOOT as those are the states where coreboot is
about to exit. As such, provide an architecture specific hook
at these key places so that one is guaranteed any work done
in arch_bootstate_coreboot_exit() is after all callbacks in
the state machine.

BUG=chrome-os-partner:60657
BRANCH=reef
TEST=None

Signed-off-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: https://review.coreboot.org/17767
Tested-by: build bot (Jenkins)
Reviewed-by: Duncan Laurie <dlaurie@chromium.org>
Reviewed-by: Andrey Petrov <andrey.petrov@intel.com>
Reviewed-by: Furquan Shaikh <furquan@google.com>
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>

Change-Id: Icb4afb341ab15af0670501b9d21799e564fb32c6
Reviewed-on: https://chromium-review.googlesource.com/418438
Commit-Ready: Furquan Shaikh <furquan@chromium.org>
Tested-by: Furquan Shaikh <furquan@chromium.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
2016-12-09 03:29:57 -08:00
..
gnat UPSTREAM: Add option to use Ada code in ramstage 2016-11-07 11:02:52 -08:00
b64_decode.c lib: add base64 decoder 2015-04-22 08:50:54 +02:00
boot_device.c UPSTREAM: lib/boot_device: add RW boot device construct 2016-08-19 14:20:23 -07:00
bootblock.c UPSTREAM: lib: Add asmlinkage attribute to bootblock_main_with_timestamp 2016-06-10 00:17:50 -07:00
bootmem.c lib/bootmem: allow architecture specific bootmem ranges 2016-04-21 20:46:45 +02:00
bootmode.c UPSTREAM: bootmode: Get rid of CONFIG_BOOTMODE_STRAPS 2016-07-28 22:56:28 -07:00
cbfs.c UPSTREAM: ACPI S3: Remove HIGH_MEMORY_SAVE where possible 2016-11-10 18:31:17 -08:00
cbmem_common.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
cbmem_console.c UPSTREAM: arch/x86,lib: make cbmem console work in postcar stage 2016-09-21 19:36:55 -07:00
cbmem_stage_cache.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
compute_ip_checksum.c UPSTREAM: lib/compute_ip_checksum: mark data buffer as const 2016-12-08 22:46:57 -08:00
coreboot_table.c UPSTREAM: drivers/spi: ensure SPI flash is boot device for coreboot tables 2016-08-21 12:04:51 -07:00
debug.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
delay.c - Major cleanup of the bootpath 2003-07-19 04:28:22 +00:00
edid.c UPSTREAM: edid: Fix a function signature 2016-09-09 12:33:33 -07:00
ext_stage_cache.c UPSTREAM: soc/intel/apollolake: Implement stage cache to improve resume time 2016-10-11 14:31:54 -07:00
fallback_boot.c drivers/pc80: Rework normal / fallback selector code 2015-11-03 21:55:20 +01:00
fmap.c UPSTREAM: lib/fmap: provide RW region device support 2016-08-22 00:11:45 -07:00
gcc.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
gcov-glue.c lib/gcov-glue.c: Remove trailing number from COVERAGE_MAGIC macro 2016-02-02 01:39:28 +01:00
gcov-io.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
gcov-io.h tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
gcov-iov.h Implement GCC code coverage analysis 2013-01-12 19:09:55 +01:00
generic_dump_spd.c misc: Drop print_ implementation from non-romcc boards 2015-01-09 06:12:22 +01:00
generic_sdram.c misc: Drop print_ implementation from non-romcc boards 2015-01-09 06:12:22 +01:00
gpio.c UPSTREAM: lib/gpio: add pullup & pulldown gpio_base2_value() variants 2016-07-07 19:29:24 -07:00
halt.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
hardwaremain.c UPSTREAM: bootstate: add arch specific hook at coreboot exit 2016-12-09 03:29:57 -08:00
hexdump.c lib/hexdump: Refactor to skip lines with all ones as well 2016-01-22 14:10:28 +01:00
hexstrtobin.c UPSTREAM: hexstrtobin: Add a library function to decode ASCII hex into binary 2016-05-26 03:21:43 -07:00
imd.c Correct some common spelling mistakes 2016-01-07 22:57:02 +01:00
imd_cbmem.c UPSTREAM: arch/x86,lib: make cbmem console work in postcar stage 2016-09-21 19:36:55 -07:00
jpeg.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
jpeg.h tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
libgcc.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
libgcov.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
lzma.c UPSTREAM: lib: remove ulzma() 2016-07-07 01:08:55 -07:00
lzmadecode.c lzma: Port size-checking ulzman() version to coreboot 2016-02-12 22:00:55 +01: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 UPSTREAM: lib: add region file support 2016-12-09 03:29:43 -08:00
malloc.c Remove leftover smi_get_tseg_base 2015-05-29 07:06:37 +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 lib/memrange: avoid shadow object declarations 2016-02-26 02:14:56 +01:00
memset.c fix compiler warnings (trivial) 2009-01-20 21:40:16 +00:00
mocked_tlcl.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
nhlt.c UPSTREAM: lib/nhlt: add support for setting the oem_revision 2016-12-02 14:23:05 -08:00
primitive_memtest.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
prog_loaders.c UPSTREAM: romstage_handoff: add helper to determine resume status 2016-12-02 14:22:57 -08:00
prog_ops.c lib/prog_loading: introduce prog_segment_loaded() 2016-04-02 03:56:37 +02:00
program.ld UPSTREAM: lib/program.ld: add .sdata sections 2016-11-03 14:44:10 -07:00
ramtest.c UPSTREAM: quick_ram_check: Remove reference to RAMBASE 2016-11-08 23:24:09 -08:00
reg_script.c lib/reg_script: Fix braces 2016-05-05 19:41:29 +02:00
region_file.c UPSTREAM: lib: add region file support 2016-12-09 03:29:43 -08:00
rmodule.c lib/prog_loading: introduce prog_segment_loaded() 2016-04-02 03:56:37 +02:00
rmodule.ld rmodule: use program.ld for linking 2015-09-09 19:35:30 +00:00
romstage_handoff.c UPSTREAM: lib: put romstage_handoff implementation in own compilation unit 2016-12-02 14:23:00 -08:00
romstage_stack.c UPSTREAM: intel post-car: Increase stacktop alignment 2016-11-21 11:53:20 -08:00
rtc.c UPSTREAM: lib: Add real-time-clock functions 2016-07-07 01:08:44 -07:00
selfboot.c arm64: Use 'payload' format for ATF instead of 'stage' 2016-09-08 06:15:36 -07:00
spd_bin.c UPSTREAM: lib: Add library to handle SPD data in CBFS or DIMM 2016-12-01 03:34:21 -08:00
stack.c lib/stack: Add stack overrun detection 2015-10-24 05:57:33 +02:00
thread.c UPSTREAM: src/lib: Capitalize ROM, RAM, NVRAM and CPU 2016-08-04 23:38:04 -07:00
timer.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
timer_queue.c tree: drop last paragraph of GPL copyright header 2015-10-31 21:37:39 +01:00
timestamp.c UPSTREAM: memlayout: Ensure TIMESTAMP() region is big enough to avoid BUG() 2016-08-24 17:40:09 -07:00
tlcl.c UPSTREAM: lib/tlcl: Ensure tlcl library is initialized only once 2016-11-14 19:58:54 -08:00
tlcl_internal.h vboot2: read secdata and nvdata 2015-03-23 19:51:47 +01:00
tlcl_structures.h vboot2: copy tlcl from vboot_reference as a preparation for vboot2 integration 2015-01-27 01:43:57 +01:00
tpm2_marshaling.c UPSTREAM: tpm2: Fix tlcl and marshaling code for CAR usage 2016-09-07 21:31:36 -07:00
tpm2_marshaling.h tpm2: avoid comparison between signed and unsigned ints 2016-07-07 19:30:09 -07:00
tpm2_tlcl.c UPSTREAM: vboot: TPM2 - report attempts to re-create NVRAM spaces 2016-11-16 07:08:26 -08:00
tpm2_tlcl_structures.h tpm2: implement and use pcr_extend command 2016-07-07 22:14:28 -07:00
tpm_error_messages.h UPSTREAM: src/lib: Fix checkpatch warnings 2016-09-08 17:57:25 -07:00
trace.c UPSTREAM: src/lib: Fix checkpatch warnings 2016-09-08 17:57:25 -07:00
version.c UPSTREAM: lib/version: Correct whitespace alignment 2016-07-15 08:39:33 -07:00
wrdd.c lib: Implement framework for retrieving WiFi regulatory domain 2016-03-08 18:41:33 +01:00