mb/ocp/deltalake: Define SMBIOS type 16 error correction type by
RasModesEnabled Use RasModesEnabled from SystemMemoryMapHob to define SMBIOS type 16 error correction type Tested=Execute "dmidecode -t 16" to check if error correction type is correct. Signed-off-by: Tim Chu <Tim.Chu@quantatw.com> Change-Id: I3636fcc4a874261cf484c10e2db15015ac5d7e68 Reviewed-on: https://review.coreboot.org/c/coreboot/+/47509 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Jonathan Zhang <jonzhang@fb.com>
This commit is contained in:
parent
a96eaf8700
commit
9b7dc7645d
|
@ -26,6 +26,31 @@
|
||||||
extern struct fru_info_str fru_strings;
|
extern struct fru_info_str fru_strings;
|
||||||
static char slot_id_str[SLOT_ID_LEN];
|
static char slot_id_str[SLOT_ID_LEN];
|
||||||
|
|
||||||
|
/* Override SMBIOS type 16 error correction type. */
|
||||||
|
unsigned int smbios_memory_error_correction_type(struct memory_info *meminfo)
|
||||||
|
{
|
||||||
|
const struct SystemMemoryMapHob *hob;
|
||||||
|
|
||||||
|
hob = get_system_memory_map();
|
||||||
|
assert(hob != NULL);
|
||||||
|
|
||||||
|
switch (hob->RasModesEnabled) {
|
||||||
|
case CH_INDEPENDENT:
|
||||||
|
return MEMORY_ARRAY_ECC_SINGLE_BIT;
|
||||||
|
case FULL_MIRROR_1LM:
|
||||||
|
case PARTIAL_MIRROR_1LM:
|
||||||
|
case FULL_MIRROR_2LM:
|
||||||
|
case PARTIAL_MIRROR_2LM:
|
||||||
|
return MEMORY_ARRAY_ECC_MULTI_BIT;
|
||||||
|
case RK_SPARE:
|
||||||
|
return MEMORY_ARRAY_ECC_SINGLE_BIT;
|
||||||
|
case CH_LOCKSTEP:
|
||||||
|
return MEMORY_ARRAY_ECC_SINGLE_BIT;
|
||||||
|
default:
|
||||||
|
return MEMORY_ARRAY_ECC_MULTI_BIT;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Update SMBIOS type 0 ec version.
|
* Update SMBIOS type 0 ec version.
|
||||||
* In deltalake, BMC version is used to represent ec version.
|
* In deltalake, BMC version is used to represent ec version.
|
||||||
|
|
Loading…
Reference in New Issue