coreboot/src/drivers
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
..
amd src/drivers: Drop unneeded empty lines 2020-09-21 15:51:52 +00:00
ams treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
analogix/anx7625 src/drivers: Drop unneeded empty lines 2020-09-21 15:51:52 +00:00
asmedia src: Remove leading blank lines from SPDX header 2020-05-18 07:00:27 +00:00
aspeed src/drivers: Drop unneeded empty lines 2020-09-21 15:51:52 +00:00
broadcom src: Remove leading blank lines from SPDX header 2020-05-18 07:00:27 +00:00
camera drivers/camera: Add config CHROMEOS_CAMERA 2020-10-19 06:50:20 +00:00
crb src/drivers: Drop unneeded empty lines 2020-09-21 15:51:52 +00:00
elog src/drivers: Drop unneeded empty lines 2020-09-21 15:51:52 +00:00
emulation/qemu src/drivers: Drop unneeded empty lines 2020-09-21 15:51:52 +00:00
generic src/drivers: Drop unneeded empty lines 2020-09-21 15:51:52 +00:00
genesyslogic drivers/genesyslogic/gl9755: Add driver for Genesys Logic GL9755 2020-09-18 15:49:15 +00:00
gfx/generic src: Remove unused '#include <stdint.h>' 2020-05-13 08:48:17 +00:00
gic treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
i2c drivers/i2c/gpiomux: Add chip driver for multiplexed I2C bus 2020-10-19 06:57:52 +00:00
intel drivers/intel/gma: Increase vbt_data size 2020-10-21 18:36:08 +00:00
ipmi drivers/ipmi/ocp/ipmi_ocp.c: Clean up includes 2020-10-06 17:43:38 +00:00
lenovo src: Remove unused 'include <types.h>' 2020-07-14 16:10:17 +00:00
maxim src: Remove leading blank lines from SPDX header 2020-05-18 07:00:27 +00:00
mrc_cache mrc_cache: Remove unnecessary data checksum calculation 2020-10-20 23:26:15 +00:00
net src/drivers: Drop unneeded empty lines 2020-09-21 15:51:52 +00:00
ocp/dmi drivers/ocp/dmi: Add OCP_DMI driver for populating SMBIOS from IPMI FRU data 2020-07-04 11:31:16 +00:00
parade src: Remove leading blank lines from SPDX header 2020-05-18 07:00:27 +00:00
pc80 drivers/pc80/rtc: Fix linking verstage (and use all target) 2020-09-30 10:14:23 +00:00
ricoh/rce822 treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
secunet/dmi treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
siemens/nc_fpga src: Remove leading blank lines from SPDX header 2020-05-18 07:00:27 +00:00
sil/3114 treewide: Remove "this file is part of" lines 2020-05-11 17:11:40 +00:00
smmstore drivers/smmstore: Implement SMMSTORE version 2 2020-10-22 12:29:47 +00:00
soundwire drivers/soundwire/alc5682: Support Realtek ALC5682 SoundWire device 2020-05-22 01:48:59 +00:00
spi src: Rename EM100Pro-specific SPI console Kconfig option 2020-10-13 08:40:52 +00:00
ti drivers: snsn65dsi86: Fix link rate parsing 2020-10-13 22:41:05 +00:00
tpm src: Remove unused 'include <types.h>' 2020-07-14 16:10:17 +00:00
uart src/drivers: Drop unneeded empty lines 2020-09-21 15:51:52 +00:00
usb src/drivers: Drop unneeded empty lines 2020-09-21 15:51:52 +00:00
vpd drivers/vpd: add VPD region VPD_RW_THEN_RO 2020-06-02 07:18:40 +00:00
wifi/generic drivers/wifi/generic: Do not generate SAR tables for non-Intel WiFi 2020-10-13 18:45:00 +00:00