- Set all of the fields in config_busses before we use it not afterwards.

git-svn-id: svn://svn.coreboot.org/coreboot/trunk@1311 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Eric Biederman 2003-12-08 21:48:01 +00:00
parent 0cb44b5cdf
commit 17729a2ebd
1 changed files with 9 additions and 10 deletions

View File

@ -5,6 +5,7 @@
#include <part/sizeram.h> #include <part/sizeram.h>
#include <device/device.h> #include <device/device.h>
#include <device/pci.h> #include <device/pci.h>
#include <device/pci_ids.h>
#include <device/hypertransport.h> #include <device/hypertransport.h>
#include <device/chip.h> #include <device/chip.h>
#include <stdlib.h> #include <stdlib.h>
@ -233,8 +234,12 @@ static unsigned int amdk8_scan_chains(device_t dev, unsigned int max)
((unsigned int)(dev->link[link].subordinate) << 16)); ((unsigned int)(dev->link[link].subordinate) << 16));
pci_write_config32(dev, dev->link[link].cap + 0x14, busses); pci_write_config32(dev, dev->link[link].cap + 0x14, busses);
config_busses &= 0x0000ffff; config_busses &= 0x000fc88;
config_busses |= ((dev->link[link].secondary) << 16) | config_busses |=
(3 << 0) | /* rw enable, no device compare */
(( nodeid & 7) << 4) |
(( link & 3 ) << 8) |
((dev->link[link].secondary) << 16) |
((dev->link[link].subordinate) << 24); ((dev->link[link].subordinate) << 24);
f1_write_config32(config_reg, config_busses); f1_write_config32(config_reg, config_busses);
@ -256,13 +261,7 @@ static unsigned int amdk8_scan_chains(device_t dev, unsigned int max)
((unsigned int) (dev->link[link].subordinate) << 16); ((unsigned int) (dev->link[link].subordinate) << 16);
pci_write_config32(dev, dev->link[link].cap + 0x14, busses); pci_write_config32(dev, dev->link[link].cap + 0x14, busses);
config_busses &= 0x000fc88; config_busses = (config_busses & 0x00ffffff) | (dev->link[link].subordinate << 24);
config_busses |=
(3 << 0) | /* rw enable, no device compare */
(( nodeid & 7) << 4) |
(( link & 3 ) << 8) |
((dev->link[link].secondary) << 16) |
((dev->link[link].subordinate) << 24);
f1_write_config32(config_reg, config_busses); f1_write_config32(config_reg, config_busses);
#if 1 #if 1
printk_debug("Hypertransport scan link done\n"); printk_debug("Hypertransport scan link done\n");
@ -469,7 +468,7 @@ static void amdk8_set_resources(device_t dev)
unsigned int amdk8_scan_root_bus(device_t root, unsigned int max) unsigned int amdk8_scan_root_bus(device_t root, unsigned int max)
{ {
unsigned reg; unsigned reg;
/* Unmap all of HT chains */ /* Unmap all of the HT chains */
for(reg = 0xe0; reg <= 0xec; reg += 4) { for(reg = 0xe0; reg <= 0xec; reg += 4) {
f1_write_config32(reg, 0); f1_write_config32(reg, 0);
} }