aboutsummaryrefslogtreecommitdiff
path: root/modules/devices
diff options
context:
space:
mode:
Diffstat (limited to 'modules/devices')
-rw-r--r--modules/devices/spd-decode.c33
1 files changed, 29 insertions, 4 deletions
diff --git a/modules/devices/spd-decode.c b/modules/devices/spd-decode.c
index 6250be9d..4c34882f 100644
--- a/modules/devices/spd-decode.c
+++ b/modules/devices/spd-decode.c
@@ -569,22 +569,47 @@ static gchar *decode_ddr3_sdram_extra(unsigned char *bytes) {
int ranks = 1 + ((bytes[7] >> 3) & 0x7);
int pins = 4 << (bytes[7] & 0x7);
+ int die_count = (bytes[33] >> 4) & 0x7;
+ int ts = !!(bytes[32] & 0x80);
/* expected to continue an [SPD] section */
return g_strdup_printf("%s=%d\n"
"%s=%d\n"
- "%s=%s %s %s\n"
+ "%s=%d %s\n"
+ "%s=[%02x] %s\n"
+ "%s=%s%s%s\n"
+ "%s="
+ "%s%s%s%s%s%s%s%s"
+ "%s%s%s%s%s%s%s\n"
"[%s]\n"
- "tCL=%.2f\n"
+ "tCL=%.0f\n"
"tRCD=%.3fns\n"
"tRP=%.3fns\n"
"tRAS=%.3fns\n",
_("Ranks"), ranks,
_("IO Pins per Chip"), pins,
+ _("Die count"), die_count, die_count ? "" : _("(Unspecified)"),
+ _("Thermal Sensor"), bytes[32], ts ? _("Present") : _("Not present"),
_("Supported Voltages"),
- (bytes[6] & 4) ? "1.25V" : "",
- (bytes[6] & 2) ? "1.35V" : "",
+ (bytes[6] & 4) ? "1.25V " : "",
+ (bytes[6] & 2) ? "1.35V " : "",
(bytes[6] & 1) ? "" : "1.5V",
+ _("Supported CAS Latencies"),
+ (bytes[15] & 0x40) ? "18 " : "",
+ (bytes[15] & 0x20) ? "17 " : "",
+ (bytes[15] & 0x10) ? "16 " : "",
+ (bytes[15] & 0x08) ? "15 " : "",
+ (bytes[15] & 0x04) ? "14 " : "",
+ (bytes[15] & 0x02) ? "13 " : "",
+ (bytes[15] & 0x01) ? "12 " : "",
+ (bytes[14] & 0x80) ? "11 " : "",
+ (bytes[14] & 0x40) ? "10 " : "",
+ (bytes[14] & 0x20) ? "9 " : "",
+ (bytes[14] & 0x10) ? "8 " : "",
+ (bytes[14] & 0x08) ? "7 " : "",
+ (bytes[14] & 0x04) ? "6 " : "",
+ (bytes[14] & 0x02) ? "5 " : "",
+ (bytes[14] & 0x01) ? "4" : "",
_("Timings"), tcl, trcd, trp, tras
);
}