From bd15d6eb890d6b7c5f07b3f0c736c5235b748333 Mon Sep 17 00:00:00 2001 From: Jean Delvare Date: Sun, 14 Apr 2013 17:26:41 +0000 Subject: [PATCH] DDR3: Print timings at standard speeds. This makes it easier to figure out which memory modules will work well together. git-svn-id: http://lm-sensors.org/svn/i2c-tools/trunk@6136 7894878c-1315-0410-8ee3-d5d059ff63e0 --- CHANGES | 2 +- eeprom/decode-dimms | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index 4017d20..55f12fc 100644 --- a/CHANGES +++ b/CHANGES @@ -15,7 +15,7 @@ SVN HEAD Print DDR and DDR2 core timings for all supported CAS values Print DDR2 equivalent speed of tCK max Don't print undefined DDR2 SDRAM timings - Print SDR, DDR and DDR2 core timings for all standard speeds + Print SDR, DDR, DDR2, DDR3 core timings for all standard speeds Update manufacturer IDs Make DDR3 manufacturer count parity error non-fatal Strip former manufacturer name in side-by-side output mode diff --git a/eeprom/decode-dimms b/eeprom/decode-dimms index b7924a0..6fb4a1c 100755 --- a/eeprom/decode-dimms +++ b/eeprom/decode-dimms @@ -1433,6 +1433,25 @@ sub decode_ddr3_sdram($) } printl("Supported CAS Latencies (tCL)", cas_latencies(keys %cas)); +# standard DDR3 speeds + prints("Timings at Standard Speeds"); + foreach my $ctime_at_speed (7.5/8, 7.5/7, 1.25, 1.5, 1.875, 2.5) { + my $best_cas = 0; + + # Find min CAS latency at this speed + for ($ii = 14; $ii >= 0; $ii--) { + next unless ($cas_sup & (1 << $ii)); + if (ceil($taa / $ctime_at_speed) <= $ii + 4) { + $best_cas = $ii + 4; + } + } + + printl_cond($best_cas && $ctime_at_speed >= $ctime, + "tCL-tRCD-tRP-tRAS" . as_ddr(3, $ctime_at_speed), + ddr_core_timings($best_cas, $ctime_at_speed, + $trcd, $trp, $tras)); + } + # more timing information prints("Timing Parameters");