coreboot-kgpe-d16/payloads/libpayload/include
Patrick Rudolph bc744f5893 drivers/smmstore: Implement SMMSTORE version 2
SMMSTORE version 2 is a complete redesign of the current driver. It is
not backwards-compatible with version 1, and only one version can be
used at a time.

Key features:
* Uses a fixed communication buffer instead of writing to arbitrary
  memory addresses provided by untrusted ring0 code.
* Gives the caller full control over the used data format.
* Splits the store into smaller chunks to allow fault tolerant updates.
* Doesn't provide feedback about the actual read/written bytes, just
  returns error or success in registers.
* Returns an error if the requested operation would overflow the
  communication buffer.

Separate the SMMSTORE into 64 KiB blocks that can individually be
read/written/erased. To be used by payloads that implement a
FaultTolerant Variable store like TianoCore.

The implementation has been tested against EDK2 master.

An example EDK2 implementation can be found here:
eb1127744a

Change-Id: I25e49d184135710f3e6dd1ad3bed95de950fe057
Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Signed-off-by: Christian Walter <christian.walter@9elements.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/40520
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Michał Żygowski <michal.zygowski@3mdeb.com>
Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
2020-10-22 12:29:47 +00:00
..
arm/arch treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
arm64/arch treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
arpa treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
pci libpayload/storage/ahci: Use pacc pointer to read device class 2020-10-20 20:35:47 +00:00
storage libpayload/storage/ahci: Use pci_dev struct in ahci_initialize() 2020-10-20 20:39:30 +00:00
sys treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
udc treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
usb libpayload: drivers/usb: add a USB pre-poll hook 2020-06-06 01:49:52 +00:00
x86/arch libpayload/x86: Add some more CPUID helpers 2020-10-16 22:07:27 +00:00
archive.h treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
assert.h treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
cbfs.h treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
cbfs_core.h treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
cbfs_ram.h treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
cbgfx.h libpayload: cbgfx: Support buffered I/O 2020-08-28 21:40:58 +00:00
compiler.h libpayload: Replace include/compiler.h with commonlib/bsd's version 2020-07-28 16:16:21 +00:00
coreboot_tables.h drivers/smmstore: Implement SMMSTORE version 2 2020-10-22 12:29:47 +00:00
ctype.h payloads: Drop unneeded empty lines 2020-09-21 16:20:57 +00:00
die.h treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
endian.h treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
errno.h treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
exception.h treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
fmap_serialized.h fmap: Add FMAP_AREA_PRESERVE 2019-03-04 13:25:01 +00:00
fpmath.h libpayload: Add simple 32.32 fixed-point math API 2020-07-09 00:32:11 +00:00
gdb.h libpayload: gdb: Factor out gdb_handle_reentrant_exception() from arm32 2018-10-12 20:17:40 +00:00
getopt.h
inttypes.h
ipchksum.h treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
kconfig.h Add new CONFIG(XXX) macro to replace IS_ENABLED(CONFIG_XXX) 2019-03-07 17:06:28 +00:00
keycodes.h
libpayload.h lib and libpayload: Add popcnt functions 2020-10-15 19:01:51 +00:00
limits.h treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
lz4.h
lzma.h treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
malloc.h
multiboot_tables.h treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
panel.h
pci.h treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
queue.h payloads: Drop unneeded empty lines 2020-09-21 16:20:57 +00:00
stdarg.h treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
stddef.h libpayload/libc/time: Add an arch_ndelay() 2018-09-12 14:15:18 +00:00
stdint.h libpayload: Fix definitions of minimum integer values 2020-05-18 07:34:55 +00:00
stdio.h treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
stdlib.h treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
string.h payloads: Drop unneeded empty lines 2020-09-21 16:20:57 +00:00
strings.h treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
sysinfo.h libpayload/arch/x86: Introduce pacc pointer in sysinfo_t struct 2020-10-20 20:35:24 +00:00
term.h
time.h treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
unistd.h treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
video_console.h treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00