This patch implements Memory Margin Analysis feature in coreboot.
Few things to note (1) the feature is enabled by setting CONFIG_MMA=y in the config file (2) coreboot reads mma_test_metadata.bin from cbfs during romstage and gets the name of MMA test name and test config name. Then coreboot finds these files in CBFS. If found, coreboot passes location and size of these files to FSP via UPD params. Sets MrcFastBoot to 0 so that MRC happens and then MMA test would be executed during memory init. (3) FSP passes MMA results data in HOB and coreboot saves it in cbmem (4) when system boots to OS after test is executed cbmem tool is used to grab the MMA results data.
BRANCH=none BUG=chrome-os-partner:43731 TEST=Build and Boot kunimitsu (FAB3) and executed MMA tests Not tested on Glados
CQ-DEPEND=CL:299476,CL:299475,CL:299474,CL:299473,CL:299509,CL:299508,CL:299507,CL:*230478,CL:*230479
Change-Id: I0b4524abcf57db4d2440a06a79b5a0f4b60fa0ea
b90b94d intel: Add MMA feature in coreboot
src/commonlib/include/commonlib/cbfs_serialized.h | 2 +
src/commonlib/include/commonlib/cbmem_id.h | 2 +
src/drivers/intel/fsp1_1/raminit.c | 5 +
src/soc/intel/common/Kconfig | 11 +
src/soc/intel/common/Makefile.inc | 45 ++++
src/soc/intel/common/mma.c | 244 +++++++++++++++++++++
src/soc/intel/common/mma.h | 27 +++
7 files changed, 336 insertions(+)
Upstream: review.coreboot.org