diff options
author | Borislav Petkov <borislav.petkov@amd.com> | 2009-09-18 06:12:46 -0400 |
---|---|---|
committer | Borislav Petkov <borislav.petkov@amd.com> | 2009-10-07 10:47:51 -0400 |
commit | 916d11b2b52430576fd4e96138c974cd64f9cfd6 (patch) | |
tree | 1d3c402eab1a6e3f1aba811c482d9f113500f013 /drivers/edac/amd64_edac.c | |
parent | 3011b20da9d60b8168ead403e6aa860d0d8d11e4 (diff) |
amd64_edac: fix DRAM base and limit address extraction
K8 DRAM base and limit addresses from F1x40 +8*i and F1x44 + 8*i, where
i in (0..7) are both bits 39-24 and therefore the shifting should be
done by 24 and not by 8.
Signed-off-by: Borislav Petkov <borislav.petkov@amd.com>
Diffstat (limited to 'drivers/edac/amd64_edac.c')
-rw-r--r-- | drivers/edac/amd64_edac.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c index d6186460c846..6e2ccce225db 100644 --- a/drivers/edac/amd64_edac.c +++ b/drivers/edac/amd64_edac.c | |||
@@ -1130,7 +1130,7 @@ static void k8_read_dram_base_limit(struct amd64_pvt *pvt, int dram) | |||
1130 | debugf0("Reading K8_DRAM_BASE_LOW failed\n"); | 1130 | debugf0("Reading K8_DRAM_BASE_LOW failed\n"); |
1131 | 1131 | ||
1132 | /* Extract parts into separate data entries */ | 1132 | /* Extract parts into separate data entries */ |
1133 | pvt->dram_base[dram] = ((u64) low & 0xFFFF0000) << 8; | 1133 | pvt->dram_base[dram] = ((u64) low & 0xFFFF0000) << 24; |
1134 | pvt->dram_IntlvEn[dram] = (low >> 8) & 0x7; | 1134 | pvt->dram_IntlvEn[dram] = (low >> 8) & 0x7; |
1135 | pvt->dram_rw_en[dram] = (low & 0x3); | 1135 | pvt->dram_rw_en[dram] = (low & 0x3); |
1136 | 1136 | ||
@@ -1143,7 +1143,7 @@ static void k8_read_dram_base_limit(struct amd64_pvt *pvt, int dram) | |||
1143 | * Extract parts into separate data entries. Limit is the HIGHEST memory | 1143 | * Extract parts into separate data entries. Limit is the HIGHEST memory |
1144 | * location of the region, so lower 24 bits need to be all ones | 1144 | * location of the region, so lower 24 bits need to be all ones |
1145 | */ | 1145 | */ |
1146 | pvt->dram_limit[dram] = (((u64) low & 0xFFFF0000) << 8) | 0x00FFFFFF; | 1146 | pvt->dram_limit[dram] = (((u64) low & 0xFFFF0000) << 24) | 0x00FFFFFF; |
1147 | pvt->dram_IntlvSel[dram] = (low >> 8) & 0x7; | 1147 | pvt->dram_IntlvSel[dram] = (low >> 8) & 0x7; |
1148 | pvt->dram_DstNode[dram] = (low & 0x7); | 1148 | pvt->dram_DstNode[dram] = (low & 0x7); |
1149 | } | 1149 | } |