aboutsummaryrefslogtreecommitdiff
path: root/src/soc/intel/common
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/intel/common')
-rw-r--r--src/soc/intel/common/smbios.c5
-rw-r--r--src/soc/intel/common/smbios.h5
2 files changed, 8 insertions, 2 deletions
diff --git a/src/soc/intel/common/smbios.c b/src/soc/intel/common/smbios.c
index 0b1be8817e..d89e9d5827 100644
--- a/src/soc/intel/common/smbios.c
+++ b/src/soc/intel/common/smbios.c
@@ -22,7 +22,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,
- u16 data_width)
+ const u8 *module_serial_num, u16 data_width)
{
dimm->dimm_size = dimm_capacity;
dimm->ddr_type = ddr_type;
@@ -34,6 +34,9 @@ void dimm_info_fill(struct dimm_info *dimm, u32 dimm_capacity, u8 ddr_type,
module_part_num,
min(sizeof(dimm->module_part_number),
module_part_number_size));
+ if (module_serial_num)
+ memcpy(dimm->serial, module_serial_num,
+ DIMM_INFO_SERIAL_SIZE);
switch (data_width) {
case 8:
dimm->bus_width = MEMORY_BUS_WIDTH_8;
diff --git a/src/soc/intel/common/smbios.h b/src/soc/intel/common/smbios.h
index 33b5d0df04..5824f5d665 100644
--- a/src/soc/intel/common/smbios.h
+++ b/src/soc/intel/common/smbios.h
@@ -19,10 +19,13 @@
#include <stdint.h>
#include <memory_info.h>
+/* Offset info DIMM_INFO SpdSave for start of serial number */
+#define SPD_SAVE_OFFSET_SERIAL 5
+
/* Fill the SMBIOS memory information from FSP MEM_INFO_DATA_HOB in CBMEM.*/
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,
- u16 data_width);
+ const u8 *module_serial_num, u16 data_width);
#endif /* _COMMON_SMBIOS_H_ */