summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/soc/intel/alderlake/romstage/romstage.c3
-rw-r--r--src/soc/intel/apollolake/meminit_util_apl.c1
-rw-r--r--src/soc/intel/apollolake/meminit_util_glk.c3
-rw-r--r--src/soc/intel/cannonlake/romstage/romstage.c3
-rw-r--r--src/soc/intel/common/smbios.c6
-rw-r--r--src/soc/intel/common/smbios.h3
-rw-r--r--src/soc/intel/elkhartlake/romstage/romstage.c3
-rw-r--r--src/soc/intel/jasperlake/romstage/romstage.c3
-rw-r--r--src/soc/intel/meteorlake/romstage/romstage.c3
-rw-r--r--src/soc/intel/skylake/romstage/romstage.c3
-rw-r--r--src/soc/intel/tigerlake/romstage/romstage.c3
-rw-r--r--src/soc/intel/xeon_sp/cpx/romstage.c6
-rw-r--r--src/soc/intel/xeon_sp/spr/romstage.c7
13 files changed, 29 insertions, 18 deletions
diff --git a/src/soc/intel/alderlake/romstage/romstage.c b/src/soc/intel/alderlake/romstage/romstage.c
index 740a4a2806..dfe3b323aa 100644
--- a/src/soc/intel/alderlake/romstage/romstage.c
+++ b/src/soc/intel/alderlake/romstage/romstage.c
@@ -140,7 +140,8 @@ static void save_dimm_info(void)
meminfo_hob->EccSupport,
src_dimm->MfgId,
src_dimm->SpdModuleType,
- node);
+ node,
+ meminfo_hob->MaximumMemoryClockSpeed);
index++;
}
}
diff --git a/src/soc/intel/apollolake/meminit_util_apl.c b/src/soc/intel/apollolake/meminit_util_apl.c
index 9432011fb6..3bcb7bb7d8 100644
--- a/src/soc/intel/apollolake/meminit_util_apl.c
+++ b/src/soc/intel/apollolake/meminit_util_apl.c
@@ -83,6 +83,7 @@ void save_lpddr4_dimm_info_part_num(const char *dram_part_num)
0,
src_dimm->MfgId,
0,
+ 0,
0);
index++;
}
diff --git a/src/soc/intel/apollolake/meminit_util_glk.c b/src/soc/intel/apollolake/meminit_util_glk.c
index 9922b28a8c..753451a353 100644
--- a/src/soc/intel/apollolake/meminit_util_glk.c
+++ b/src/soc/intel/apollolake/meminit_util_glk.c
@@ -89,7 +89,8 @@ void save_lpddr4_dimm_info_part_num(const char *dram_part_num)
0,
src_dimm->MfgId,
src_dimm->SpdModuleType,
- node);
+ node,
+ memory_info_hob->MaximumMemoryClockSpeed);
index++;
}
}
diff --git a/src/soc/intel/cannonlake/romstage/romstage.c b/src/soc/intel/cannonlake/romstage/romstage.c
index a4173599f7..b3777b686f 100644
--- a/src/soc/intel/cannonlake/romstage/romstage.c
+++ b/src/soc/intel/cannonlake/romstage/romstage.c
@@ -108,7 +108,8 @@ static void save_dimm_info(void)
memory_info_hob->EccSupport,
src_dimm->MfgId,
src_dimm->SpdModuleType,
- 0);
+ 0,
+ memory_info_hob->MaximumMemoryClockSpeed);
index++;
}
}
diff --git a/src/soc/intel/common/smbios.c b/src/soc/intel/common/smbios.c
index 5ab2dbc08a..818a35e6ad 100644
--- a/src/soc/intel/common/smbios.c
+++ b/src/soc/intel/common/smbios.c
@@ -14,13 +14,17 @@ void dimm_info_fill(struct dimm_info *dimm, u32 dimm_capacity, u8 ddr_type,
u32 frequency, u8 rank_per_dimm, u8 channel_id, u8 dimm_id,
const char *module_part_num, size_t module_part_number_size,
const u8 *module_serial_num, u16 data_width, u32 vdd_voltage,
- bool ecc_support, u16 mod_id, u8 mod_type, u8 ctrlr_id)
+ bool ecc_support, u16 mod_id, u8 mod_type, u8 ctrlr_id,
+ u32 max_frequency)
{
dimm->mod_id = mod_id;
dimm->mod_type = mod_type;
dimm->dimm_size = dimm_capacity;
dimm->ddr_type = ddr_type;
+ /* keep ddr_frequency for backward compatible */
dimm->ddr_frequency = frequency;
+ dimm->configured_speed_mts = frequency;
+ dimm->max_speed_mts = max_frequency;
dimm->rank_per_dimm = rank_per_dimm;
dimm->channel_num = channel_id;
dimm->dimm_num = dimm_id;
diff --git a/src/soc/intel/common/smbios.h b/src/soc/intel/common/smbios.h
index 410b2fdf87..9fb42b5d55 100644
--- a/src/soc/intel/common/smbios.h
+++ b/src/soc/intel/common/smbios.h
@@ -14,6 +14,7 @@ void dimm_info_fill(struct dimm_info *dimm, u32 dimm_capacity, u8 ddr_type,
u32 frequency, u8 rank_per_dimm, u8 channel_id, u8 dimm_id,
const char *module_part_num, size_t module_part_number_size,
const u8 *module_serial_num, u16 data_width, u32 vdd_voltage,
- bool ecc_support, u16 mod_id, u8 mod_type, u8 ctrlr_id);
+ bool ecc_support, u16 mod_id, u8 mod_type, u8 ctrlr_id,
+ u32 max_frequency);
#endif /* _COMMON_SMBIOS_H_ */
diff --git a/src/soc/intel/elkhartlake/romstage/romstage.c b/src/soc/intel/elkhartlake/romstage/romstage.c
index 427cee5c77..3dfb7c247d 100644
--- a/src/soc/intel/elkhartlake/romstage/romstage.c
+++ b/src/soc/intel/elkhartlake/romstage/romstage.c
@@ -113,7 +113,8 @@ static void save_dimm_info(void)
meminfo_hob->EccSupport,
src_dimm->MfgId,
src_dimm->SpdModuleType,
- node);
+ node,
+ meminfo_hob->MaximumMemoryClockSpeed);
index++;
}
}
diff --git a/src/soc/intel/jasperlake/romstage/romstage.c b/src/soc/intel/jasperlake/romstage/romstage.c
index 9cec8598ee..3688f9e513 100644
--- a/src/soc/intel/jasperlake/romstage/romstage.c
+++ b/src/soc/intel/jasperlake/romstage/romstage.c
@@ -113,7 +113,8 @@ static void save_dimm_info(void)
meminfo_hob->EccSupport,
src_dimm->MfgId,
src_dimm->SpdModuleType,
- node);
+ node,
+ meminfo_hob->MaximumMemoryClockSpeed);
index++;
}
}
diff --git a/src/soc/intel/meteorlake/romstage/romstage.c b/src/soc/intel/meteorlake/romstage/romstage.c
index b5351de2b7..3df480c3f5 100644
--- a/src/soc/intel/meteorlake/romstage/romstage.c
+++ b/src/soc/intel/meteorlake/romstage/romstage.c
@@ -108,7 +108,8 @@ static void save_dimm_info(void)
meminfo_hob->EccSupport,
src_dimm->MfgId,
src_dimm->SpdModuleType,
- node);
+ node,
+ meminfo_hob->MaximumMemoryClockSpeed);
index++;
}
}
diff --git a/src/soc/intel/skylake/romstage/romstage.c b/src/soc/intel/skylake/romstage/romstage.c
index 02ae19aa33..660440cbdf 100644
--- a/src/soc/intel/skylake/romstage/romstage.c
+++ b/src/soc/intel/skylake/romstage/romstage.c
@@ -112,7 +112,8 @@ static void save_dimm_info(void)
memory_info_hob->EccSupport,
src_dimm->MfgId,
src_dimm->SpdModuleType,
- 0);
+ 0,
+ memory_info_hob->MaximumMemoryClockSpeed);
index++;
}
}
diff --git a/src/soc/intel/tigerlake/romstage/romstage.c b/src/soc/intel/tigerlake/romstage/romstage.c
index c1aca17966..31b19d2265 100644
--- a/src/soc/intel/tigerlake/romstage/romstage.c
+++ b/src/soc/intel/tigerlake/romstage/romstage.c
@@ -113,7 +113,8 @@ static void save_dimm_info(void)
meminfo_hob->EccSupport,
src_dimm->MfgId,
src_dimm->SpdModuleType,
- node);
+ node,
+ meminfo_hob->MaximumMemoryClockSpeed);
index++;
}
}
diff --git a/src/soc/intel/xeon_sp/cpx/romstage.c b/src/soc/intel/xeon_sp/cpx/romstage.c
index 265ab70d6d..fe2ca8654a 100644
--- a/src/soc/intel/xeon_sp/cpx/romstage.c
+++ b/src/soc/intel/xeon_sp/cpx/romstage.c
@@ -81,9 +81,6 @@ void save_dimm_info(void)
return;
}
dest_dimm = &mem_info->dimm[index];
- dest_dimm->max_speed_mts =
- get_max_memory_speed(src_dimm.commonTck);
- dest_dimm->configured_speed_mts = hob->memFreq;
dimm_info_fill(dest_dimm,
src_dimm.DimmSize << 6,
0x1a, /* hard-coded memory device type as DDR4 */
@@ -99,7 +96,8 @@ void save_dimm_info(void)
true, /* hard-coded as ECC supported */
src_dimm.VendorID,
src_dimm.actKeyByte2,
- 0);
+ 0,
+ get_max_memory_speed(src_dimm.commonTck));
index++;
num_dimms++;
} else if (mainboard_dimm_slot_exists(0, ch, dimm)) {
diff --git a/src/soc/intel/xeon_sp/spr/romstage.c b/src/soc/intel/xeon_sp/spr/romstage.c
index fef4d94d0f..8004730c59 100644
--- a/src/soc/intel/xeon_sp/spr/romstage.c
+++ b/src/soc/intel/xeon_sp/spr/romstage.c
@@ -304,9 +304,7 @@ void save_dimm_info(void)
the board. */
continue;
}
- dest_dimm->max_speed_mts =
- get_max_memory_speed(src_dimm.commonTck);
- dest_dimm->configured_speed_mts = hob->memFreq;
+
dest_dimm->soc_num = soc;
if (hob->DramType == SPD_TYPE_DDR5) {
@@ -328,7 +326,8 @@ void save_dimm_info(void)
sizeof(src_dimm.PartNumber),
(const uint8_t *)&src_dimm.serialNumber[0], data_width,
vdd_voltage, true, /* hard-coded as ECC supported */
- src_dimm.VendorID, src_dimm.actKeyByte2, 0);
+ src_dimm.VendorID, src_dimm.actKeyByte2, 0,
+ get_max_memory_speed(src_dimm.commonTck));
dimm_num++;
}
}