amd/mct/ddr3: Avoid using uninitialized register address in ECC setup

Logic inside mct_EnableDimmEccEn_D uses an unintialized variable as
a register address under certain conditions.  Refactor mct_EnableDimmEccEn_D
to use the explicit address of the register in all cases.

Found-by: Coverity Scan #1347337
Change-Id: I6bc50d0524ea255aa97c7071ec4813f6a3e9c2b8
Signed-off-by: Timothy Pearson <tpearson@raptorengineering.com>
Reviewed-on: https://review.coreboot.org/18079
Tested-by: build bot (Jenkins)
Tested-by: Raptor Engineering Automated Test Stand <noreply@raptorengineeringinc.com>
Reviewed-by: Nico Huber <nico.h@gmx.de>
This commit is contained in:
Timothy Pearson 2017-01-09 17:54:35 -06:00 committed by Martin Roth
parent 7d48410631
commit 590a3e1f6c
1 changed files with 4 additions and 7 deletions

View File

@ -2242,23 +2242,20 @@ void mct_EnableDimmEccEn_D(struct MCTStatStruc *pMCTstat,
struct DCTStatStruc *pDCTstat, u8 _DisableDramECC) struct DCTStatStruc *pDCTstat, u8 _DisableDramECC)
{ {
u32 val; u32 val;
u32 reg;
u32 dev; u32 dev;
/* Enable ECC correction if it was previously disabled */ /* Enable ECC correction if it was previously disabled */
dev = pDCTstat->dev_dct; dev = pDCTstat->dev_dct;
if ((_DisableDramECC & 0x01) == 0x01) { if ((_DisableDramECC & 0x01) == 0x01) {
reg = 0x90; val = Get_NB32_DCT(dev, 0, 0x90);
val = Get_NB32_DCT(dev, 0, reg);
val |= (1<<DimmEcEn); val |= (1<<DimmEcEn);
Set_NB32_DCT(dev, 0, reg, val); Set_NB32_DCT(dev, 0, 0x90, val);
} }
if ((_DisableDramECC & 0x02) == 0x02) { if ((_DisableDramECC & 0x02) == 0x02) {
val = Get_NB32_DCT(dev, 1, reg); val = Get_NB32_DCT(dev, 1, 0x90);
val |= (1<<DimmEcEn); val |= (1<<DimmEcEn);
Set_NB32_DCT(dev, 1, reg, val); Set_NB32_DCT(dev, 1, 0x90, val);
} }
} }