aboutsummaryrefslogtreecommitdiff
path: root/src/arch/x86/smbios.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/x86/smbios.c')
-rw-r--r--src/arch/x86/smbios.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/arch/x86/smbios.c b/src/arch/x86/smbios.c
index 3856acf0d2..87714c0abe 100644
--- a/src/arch/x86/smbios.c
+++ b/src/arch/x86/smbios.c
@@ -327,8 +327,22 @@ static int create_smbios_type17_for_dimm(struct dimm_info *dimm,
t->minimum_voltage = dimm->vdd_voltage;
t->maximum_voltage = dimm->vdd_voltage;
+ /* Fill in type detail */
+ switch (dimm->mod_type) {
+ case SPD_RDIMM:
+ case SPD_MINI_RDIMM:
+ t->type_detail = MEMORY_TYPE_DETAIL_REGISTERED;
+ break;
+ case SPD_UDIMM:
+ case SPD_MINI_UDIMM:
+ t->type_detail = MEMORY_TYPE_DETAIL_UNBUFFERED;
+ break;
+ default:
+ t->type_detail = MEMORY_TYPE_DETAIL_UNKNOWN;
+ break;
+ }
/* Synchronous = 1 */
- t->type_detail = MEMORY_TYPE_DETAIL_SYNCHRONOUS;
+ t->type_detail |= MEMORY_TYPE_DETAIL_SYNCHRONOUS;
/* no handle for error information */
t->memory_error_information_handle = 0xFFFE;
t->attributes = dimm->rank_per_dimm;