summaryrefslogtreecommitdiff
path: root/src/soc/intel/xeon_sp
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/xeon_sp
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/xeon_sp')
-rw-r--r--src/soc/intel/xeon_sp/cpx/romstage.c6
-rw-r--r--src/soc/intel/xeon_sp/spr/romstage.c7
2 files changed, 5 insertions, 8 deletions
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++;
}
}