summaryrefslogtreecommitdiff
path: root/src/soc/intel/common
diff options
context:
space:
mode:
authorEric Lai <eric_lai@quanta.corp-partner.google.com>2023-06-13 10:21:58 +0800
committerFelix Held <felix-coreboot@felixheld.de>2023-06-15 15:08:12 +0000
commitb15946d72cbf98157ecf5062f5d610f821c0284e (patch)
tree016d0409d4584979802442fc5c24e897377975fc /src/soc/intel/common
parent0acb78b21ff532ebc77b641cb80e5572fc84e0fe (diff)
soc/intel: Add max memory speed into dimm info
Add MaximumMemoryClockSpeed if FSP have it, otherwise pass 0. TEST=check dmidecode dump the max speed. Handle 0x000C, DMI type 17, 40 bytes Memory Device Array Handle: 0x000A Error Information Handle: Not Provided Total Width: 64 bits Data Width: 64 bits Size: 16 GB Form Factor: SODIMM Set: None Locator: Channel-0-DIMM-0 Bank Locator: BANK 0 Type: DDR5 Type Detail: Unknown Synchronous Speed: 5600 MT/s Manufacturer: Micron Serial Number: 3f064d84 Asset Tag: Channel-0-DIMM-0-AssetTag Part Number: MTC8C1084S1SC56BG1 Rank: 1 Configured Memory Speed: 5200 MT/s Minimum Voltage: 1.1 V Maximum Voltage: 1.1 V Configured Voltage: 1.1 V Signed-off-by: Eric Lai <eric_lai@quanta.corp-partner.google.com> Change-Id: I854474bce8d6ed02f47f6dce8585b3ddfae73f80 Reviewed-on: https://review.coreboot.org/c/coreboot/+/75810 Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com> Reviewed-by: Subrata Banik <subratabanik@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Diffstat (limited to 'src/soc/intel/common')
-rw-r--r--src/soc/intel/common/smbios.c6
-rw-r--r--src/soc/intel/common/smbios.h3
2 files changed, 7 insertions, 2 deletions
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_ */