summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTimothy Pearson <tpearson@raptorengineering.com>2017-01-09 14:27:09 -0600
committerTimothy Pearson <tpearson@raptorengineering.com>2017-01-11 00:18:34 +0100
commit6f9468f019239af70c20de9fca411fc76a00db1b (patch)
treed48cb89f217f4480e20f96c17bf51195f3ebdab8 /src
parent8fa624784e3d78e67cf7b4e0e72cb2208c399f0f (diff)
downloadcoreboot-6f9468f019239af70c20de9fca411fc76a00db1b.tar.xz
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. Found-by: Coverity Scan #1347353 Change-Id: Ic3de3074f51d52be112a2d6f2d68e35dc881dd2e Signed-off-by: Timothy Pearson <tpearson@raptorengineering.com> Reviewed-on: https://review.coreboot.org/18073 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth <martinroth@google.com> Tested-by: Raptor Engineering Automated Test Stand <noreply@raptorengineeringinc.com> Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
Diffstat (limited to 'src')
-rw-r--r--src/northbridge/amd/amdmct/mct_ddr3/mct_d.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/northbridge/amd/amdmct/mct_ddr3/mct_d.c b/src/northbridge/amd/amdmct/mct_ddr3/mct_d.c
index 7b9fa6555a..f726345f00 100644
--- a/src/northbridge/amd/amdmct/mct_ddr3/mct_d.c
+++ b/src/northbridge/amd/amdmct/mct_ddr3/mct_d.c
@@ -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;