ddr3: Plumber DIMM type to parsed structure.

Useful for distinguishing registered modules.

Change-Id: Ibf4a0f2cde6d50a1c5c1da0f50e3022a2bc7ccd7
Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com>
Reviewed-on: http://review.coreboot.org/7686
Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
Tested-by: build bot (Jenkins)
diff --git a/src/device/dram/ddr3.c b/src/device/dram/ddr3.c
index 00f2ba9..86abea8 100644
--- a/src/device/dram/ddr3.c
+++ b/src/device/dram/ddr3.c
@@ -126,6 +126,7 @@
 		return SPD_STATUS_INVALID;
 	}
 	dimm->dram_type = SPD_MEMORY_TYPE_SDRAM_DDR3;
+	dimm->dimm_type = spd[3] & 0xf;
 
 	crc = spd_ddr3_calc_crc(spd, sizeof(*spd));
 	/* Compare with the CRC in the SPD */
diff --git a/src/include/device/dram/ddr3.h b/src/include/device/dram/ddr3.h
index ef0d0ec..10924a2 100644
--- a/src/include/device/dram/ddr3.h
+++ b/src/include/device/dram/ddr3.h
@@ -135,6 +135,7 @@
  */
 typedef struct dimm_attr_st {
 	enum spd_memory_type dram_type;
+	enum spd_dimm_type dimm_type;
 	u16 cas_supported;
 	/* Flags extracted from SPD */
 	dimm_flags_t flags;