summaryrefslogtreecommitdiff
path: root/src/northbridge/amd/amdfam10
diff options
context:
space:
mode:
authorTimothy Pearson <tpearson@raptorengineeringinc.com>2015-09-07 03:39:15 -0500
committerMartin Roth <martinroth@google.com>2015-12-01 16:32:25 +0100
commit93107bebf6bc4b550bd3a98e466dfe18389659b6 (patch)
tree043c04ca6d4a71738864b4b7d6e38e140cba1f56 /src/northbridge/amd/amdfam10
parentf1436e58d292bcfd389ac786e83bb93ea6e0a086 (diff)
downloadcoreboot-93107bebf6bc4b550bd3a98e466dfe18389659b6.tar.xz
nb/amd/amdfam10: Fix incorrect channel buffer count configuration
The secondary bus number set code incorrectly overwrote the link buffer settings in F0x[F4,D4,B4,94]. Constrain the secondary bus number set to the appropriate bits of the registers. Change-Id: If70825449f298aa66f7f8b76dbd7367455a6deb1 Signed-off-by: Timothy Pearson <tpearson@raptorengineeringinc.com> Reviewed-on: https://review.coreboot.org/12068 Tested-by: build bot (Jenkins) Reviewed-by: Martin Roth <martinroth@google.com>
Diffstat (limited to 'src/northbridge/amd/amdfam10')
-rw-r--r--src/northbridge/amd/amdfam10/northbridge.c13
1 files changed, 5 insertions, 8 deletions
diff --git a/src/northbridge/amd/amdfam10/northbridge.c b/src/northbridge/amd/amdfam10/northbridge.c
index 85cee138ef..c8bf8fab52 100644
--- a/src/northbridge/amd/amdfam10/northbridge.c
+++ b/src/northbridge/amd/amdfam10/northbridge.c
@@ -184,17 +184,14 @@ static void ht_route_link(struct bus *link, scan_state mode)
* not correctly configured
*/
busses = pci_read_config32(link->dev, link->cap + 0x14);
- busses &= 0xff000000;
+ busses &= ~(0xff << 8);
busses |= parent->secondary & 0xff;
- if (mode == HT_ROUTE_CLOSE) {
- busses |= 0xfeff << 8;
- } else if (mode == HT_ROUTE_SCAN) {
+ if (mode == HT_ROUTE_CLOSE)
+ busses |= 0xff << 8;
+ else if (mode == HT_ROUTE_SCAN)
busses |= ((u32) link->secondary & 0xff) << 8;
- busses |= 0xfc << 16;
- } else if (mode == HT_ROUTE_FINAL) {
+ else if (mode == HT_ROUTE_FINAL)
busses |= ((u32) link->secondary & 0xff) << 8;
- busses |= ((u32) link->subordinate & 0xff) << 16;
- }
pci_write_config32(link->dev, link->cap + 0x14, busses);
if (mode == HT_ROUTE_FINAL) {