src/device/dram/ddr3: Parse additional information
Parse manufacturer id and ASCII serial. Required for SMBIOS type 17 field. Change-Id: I710de1a6822e4777c359d0bfecc6113cb2a5ed8e Signed-off-by: Patrick Rudolph <siro@das-labor.org> Reviewed-on: https://review.coreboot.org/13862 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth <martinroth@google.com>
This commit is contained in:
parent
c3a08a9d5e
commit
076915955f
|
@ -23,6 +23,7 @@
|
|||
#include <console/console.h>
|
||||
#include <device/device.h>
|
||||
#include <device/dram/ddr3.h>
|
||||
#include <string.h>
|
||||
|
||||
/*==============================================================================
|
||||
* = DDR3 SPD decoding helpers
|
||||
|
@ -340,6 +341,13 @@ int spd_decode_ddr3(dimm_attr * dimm, spd_raw_data spd)
|
|||
dimm->reference_card = spd[62] & 0x1f;
|
||||
printram(" DIMM Reference card %c\n", 'A' + dimm->reference_card);
|
||||
|
||||
dimm->manufacturer_id = (spd[118] << 8) | spd[117];
|
||||
printram(" DIMM Manufacturer ID %x\n", dimm->manufacturer_id);
|
||||
|
||||
dimm->part_number[16] = 0;
|
||||
memcpy(dimm->part_number, &spd[128], 16);
|
||||
printram(" DIMM Part number %s\n", dimm->part_number);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -167,6 +167,10 @@ typedef struct dimm_attr_st {
|
|||
u16 voltage;
|
||||
/* XMP: max DIMMs per channel supported (1-4) */
|
||||
u8 dimms_per_channel;
|
||||
/* Manufacturer ID */
|
||||
u16 manufacturer_id;
|
||||
/* ASCII part number - NULL terminated */
|
||||
u8 part_number[17];
|
||||
} dimm_attr;
|
||||
|
||||
/** Result of the SPD decoding process */
|
||||
|
|
Loading…
Reference in New Issue