coreboot-kgpe-d16/src/include
Julius Werner 01f9aa5e54 Consolidate reset API, add generic reset_prepare mechanism
There are many good reasons why we may want to run some sort of generic
callback before we're executing a reset. Unfortunateley, that is really
hard right now: code that wants to reset simply calls the hard_reset()
function (or one of its ill-differentiated cousins) which is directly
implemented by a myriad of different mainboards, northbridges, SoCs,
etc. More recent x86 SoCs have tried to solve the problem in their own
little corner of soc/intel/common, but it's really something that would
benefit all of coreboot.

This patch expands the concept onto all boards: hard_reset() and friends
get implemented in a generic location where they can run hooks before
calling the platform-specific implementation that is now called
do_hard_reset(). The existing Intel reset_prepare() gets generalized as
soc_reset_prepare() (and other hooks for arch, mainboard, etc. can now
easily be added later if necessary). We will also use this central point
to ensure all platforms flush their cache before reset, which is
generally useful for all cases where we're trying to persist information
in RAM across reboots (like the new persistent CBMEM console does).

Also remove cpu_reset() completely since it's not used anywhere and
doesn't seem very useful compared to the others.

Change-Id: I41b89ce4a923102f0748922496e1dd9bce8a610f
Signed-off-by: Julius Werner <jwerner@chromium.org>
Reviewed-on: https://review.coreboot.org/19789
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
2017-06-13 20:53:09 +02:00
..
boot coreboot_tables: specify clear interface for lb_framebuffer() 2017-05-18 15:42:23 +02:00
console src: change coreboot to lowercase 2017-06-07 12:09:15 +02:00
cpu cpu/x86/mtrr: further expose declarations of functions 2017-06-09 18:28:16 +02:00
device device/pnp: remove struct io_info 2017-06-13 15:21:58 +02:00
pc80 Kconfig: Move and clean up CONFIG_VGA 2017-05-22 12:24:43 +02:00
smp src/include: Add space after comma 2017-03-09 17:19:16 +01:00
superio
sys
tpm_lite cr50: add unmarshaling of vendor commands and process 'enable_update' 2017-03-23 23:49:58 +01:00
adainit.h Add option to use Ada code in ramstage 2016-11-06 17:28:13 +01:00
antirollback.h src/vboot: mark factory_initialze_tpm() as static 2016-11-11 18:53:33 +01:00
assert.h src/include: Move trailing statements to next line 2017-03-09 17:16:35 +01:00
b64_decode.h
base3.h
bcd.h
boardid.h
boot_device.h lib/boot_device: add RW boot device construct 2016-08-19 03:07:05 +02:00
bootblock_common.h src/include: Move storage class to beginning of declaration 2017-03-13 17:19:45 +01:00
bootmem.h lib/bootmem: allow architecture specific bootmem ranges 2016-04-21 20:46:45 +02:00
bootmode.h vboot: Add new function for logging recovery mode switches 2016-11-14 20:13:26 +01:00
bootstate.h src/include: Remove space after function name 2017-03-13 17:19:16 +01:00
cbfs.h src/include: Wrap lines at 80 columns 2017-03-13 17:23:37 +01:00
cbmem.h CBMEM: Clarify CBMEM_TOP_BACKUP function usage 2017-05-27 13:54:47 +02:00
delay.h src/include: Fix unsigned warnings 2017-03-09 17:16:09 +01:00
edid.h lib/edid: Split out fill_lb_framebuffer() 2017-05-30 18:32:44 +02:00
elog.h elog: Add more detailed wake source events for USB2.0/3.0 port wake 2017-06-09 23:57:51 +02:00
endian.h
fallback.h pc80: Move set_boot_successful() 2016-12-13 19:15:22 +01:00
fmap.h lib/fmap: provide RW region device support 2016-08-19 18:17:04 +02:00
gic.h src/include: Capitalize CPU, RAM and ROM 2016-07-31 18:30:16 +02:00
gpio.h lib/gpio: add pullup & pulldown gpio_base2_value() variants 2016-07-07 20:44:36 +02:00
halt.h lib: add poweroff() declaration 2016-07-15 08:35:15 +02:00
imd.h
inttypes.h
ip_checksum.h src/include: Wrap lines at 80 columns 2017-03-13 17:23:37 +01:00
kconfig.h
lib.h lib: remove ulzma() 2016-07-01 23:55:16 +02:00
main_decl.h
memlayout.h vboot: Move remaining features out of vendorcode/google/chromeos 2017-03-28 22:18:13 +02:00
memory_info.h src/include: Include stdint.h since struct dimm_info uses it 2017-03-01 16:57:34 +01:00
memrange.h src: change coreboot to lowercase 2017-06-07 12:09:15 +02:00
nhlt.h src/include: Wrap lines at 80 columns 2017-03-13 17:23:37 +01:00
option.h
program_loading.h ACPI S3: Remove HIGH_MEMORY_SAVE where possible 2016-11-09 20:52:07 +01:00
random.h arch/x86: add functions to generate random numbers 2017-02-20 04:46:10 +01:00
reg_script.h src/include: Remove space after function name 2017-03-13 17:19:16 +01:00
region_file.h lib: add region file support 2016-12-08 16:10:28 +01:00
reset.h Consolidate reset API, add generic reset_prepare mechanism 2017-06-13 20:53:09 +02:00
rmodule.h src/include: Remove space after function name 2017-03-13 17:19:16 +01:00
romstage_handoff.h lib: put romstage_handoff implementation in own compilation unit 2016-12-01 08:16:47 +01:00
rtc.h src/include: Open brace on same line as enum or struct 2017-03-12 15:46:23 +01:00
rules.h Stage rules.h: Add ENV_LIBAGESA 2017-03-07 00:43:20 +01:00
sar.h chromeos: Implement locating and decoding wifi sar data from VPD 2017-01-09 18:16:10 +01:00
sdram_mode.h src/include: Remove spaces before tabs 2017-03-12 15:45:37 +01:00
smbios.h src/include: Wrap lines at 80 columns 2017-03-13 17:23:37 +01:00
spd.h src/include: Wrap lines at 80 columns 2017-03-13 17:23:37 +01:00
spd_bin.h lib/spd_bin: make SMBus SPD addresses an input 2017-05-27 16:57:18 +02:00
spd_ddr2.h src/include: Wrap lines at 80 columns 2017-03-13 17:23:37 +01:00
spi-generic.h drivers/spi/spi_flash: Clean up SPI flash probe 2017-05-19 21:23:11 +02:00
spi_flash.h drivers/spi/spi_flash: Move flash ops to spi_flash_ops structure 2017-05-19 21:23:39 +02:00
stage_cache.h arch/x86: cache postcar in stage cache 2016-12-01 08:17:19 +01:00
stddef.h lib: provide clearer devicetree semantics 2017-04-25 18:14:38 +02:00
stdlib.h src/include: Add space after comma 2017-03-09 17:19:16 +01:00
string.h src/include: Move assignment out of if condition 2017-03-13 17:20:43 +01:00
swab.h src/include: Remove unnecessary typecast 2017-03-13 17:20:15 +01:00
symbols.h src/include: Remove spaces before ( and after ) 2017-03-12 15:45:26 +01:00
thread.h src/include: Move storage class to beginning of declaration 2017-03-13 17:19:45 +01:00
timer.h src/include: Indent code using tabs 2017-03-09 17:18:42 +01:00
timestamp.h src/include: Wrap lines at 80 columns 2017-03-13 17:23:37 +01:00
tpm.h drivers/spi/tpm: Clean up SPI TPM driver 2017-04-13 05:04:13 +02:00
trace.h src/include: Remove spaces before ( and after ) 2017-03-12 15:45:26 +01:00
types.h src: change coreboot to lowercase 2017-06-07 12:09:15 +02:00
vbe.h vbe: remove the necessity for a global vbe_mode_info_valid() 2017-05-18 15:42:39 +02:00
version.h
watchdog.h src/include: Add parenthesis around macros 2017-03-10 22:28:35 +01:00
wrdd.h Remove extra newlines from the end of all coreboot files. 2016-07-31 18:19:33 +02:00