soc/intel/elkhartlake: Expose In-Band ECC config to mainboard

Elkhart Lake provides a feature called "In-Band ECC" which uses a piece
of system DRAM to store the ECC information in. There are a few
parameters in FSP-M to set this feature up as needed.

This patch adds code to expose these parameters to the devicetree so
that they can be configured on mainboard level as needed.

Change-Id: I7a4953d7b35277de01daff04211450e3d1bd8103
Signed-off-by: Werner Zeh <werner.zeh@siemens.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/55668
Reviewed-by: Lean Sheng Tan <lean.sheng.tan@intel.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Werner Zeh
2021-06-16 12:30:36 +02:00
committed by Patrick Georgi
parent 6a103907f1
commit bab5d5008b
2 changed files with 36 additions and 0 deletions

View File

@@ -24,6 +24,24 @@
#define MAX_HD_AUDIO_SNDW_LINKS 4
#define MAX_HD_AUDIO_SSP_LINKS 6
/* Define config parameters for In-Band ECC (IBECC). */
#define MAX_IBECC_REGIONS 8
enum ibecc_mode {
IBECC_PER_REGION,
IBECC_NONE,
IBECC_ALL
};
struct ehl_ibecc_config {
bool enable;
bool parity_en;
enum ibecc_mode mode;
bool region_enable[MAX_IBECC_REGIONS];
uint16_t region_base[MAX_IBECC_REGIONS];
uint16_t region_mask[MAX_IBECC_REGIONS];
};
struct soc_intel_elkhartlake_config {
/* Common struct containing soc config data required by common code */
@@ -68,6 +86,9 @@ struct soc_intel_elkhartlake_config {
/* Memory Thermal Throttling: Enable - Default (0) / Disable (1) */
bool MemoryThermalThrottlingDisable;
/* In-Band ECC (IBECC) configuration */
struct ehl_ibecc_config ibecc;
/* FuSa (Functional Safety): Disable - Default (0) / Enable (1) */
bool FuSaEnable;