UPSTREAM: amd/mct/ddr3: Rework memory speed to clock value conversion logic

The existing DRAM clock speed to configuration value logic contained
an error resulting in a theoretical out of bounds read.  While this
would not be hit on real hardware, it was prudent to clean up the
logic to avoid the associated Coverity warning.

BUG=none
BRANCH=none
TEST=none

Change-Id: I57792539445f2026f5c88445ebce1e0ae026c60a
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 6f9468f019
Original-Found-by: Coverity Scan #1347353
Original-Change-Id: Ic3de3074f51d52be112a2d6f2d68e35dc881dd2e
Original-Signed-off-by: Timothy Pearson <tpearson@raptorengineering.com>
Original-Reviewed-on: https://review.coreboot.org/18073
Original-Tested-by: build bot (Jenkins)
Original-Reviewed-by: Martin Roth <martinroth@google.com>
Original-Tested-by: Raptor Engineering Automated Test Stand <noreply@raptorengineeringinc.com>
Original-Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Reviewed-on: https://chromium-review.googlesource.com/428245
Commit-Ready: Aaron Durbin <adurbin@chromium.org>
This commit is contained in:
Timothy Pearson 2017-01-09 14:27:09 -06:00 committed by chrome-bot
parent d806451951
commit 51a260028a

View file

@ -256,11 +256,11 @@ static uint16_t fam15h_mhz_to_memclk_config(uint16_t freq)
/* Compute the index value for the given frequency */
for (iter = 0; iter <= 0x16; iter++) {
if (fam15h_freq_tab[iter] == freq)
if (fam15h_freq_tab[iter] == freq) {
freq = iter;
break;
}
}
if (fam15h_freq_tab[iter] == freq)
freq = iter;
if (freq == 0)
freq = 0x4;
@ -274,11 +274,11 @@ static uint16_t fam10h_mhz_to_memclk_config(uint16_t freq)
/* Compute the index value for the given frequency */
for (iter = 0; iter <= 0x6; iter++) {
if (fam10h_freq_tab[iter] == freq)
if (fam10h_freq_tab[iter] == freq) {
freq = iter;
break;
}
}
if (fam10h_freq_tab[iter] == freq)
freq = iter;
if (freq == 0)
freq = 0x3;