diff options
Diffstat (limited to 'src/mainboard/amd/torpedo')
-rw-r--r-- | src/mainboard/amd/torpedo/mptable.c | 46 |
1 files changed, 22 insertions, 24 deletions
diff --git a/src/mainboard/amd/torpedo/mptable.c b/src/mainboard/amd/torpedo/mptable.c index a9236eda7d..477d97adbf 100644 --- a/src/mainboard/amd/torpedo/mptable.c +++ b/src/mainboard/amd/torpedo/mptable.c @@ -30,9 +30,6 @@ #include "SbPlatform.h" #define IO_APIC_ID CONFIG_MAX_CPUS -extern u8 bus_sb900[6]; - - u32 apicid_sb900; u8 picr_data[] = { @@ -189,27 +186,28 @@ static void *smp_write_config_table(void *v) /* on board NIC & Slot PCIE. */ /* PCI slots */ - /* PCI_SLOT 0. */ - PCI_INT(bus_sb900[1], 0x5, 0x0, 0x14); - PCI_INT(bus_sb900[1], 0x5, 0x1, 0x15); - PCI_INT(bus_sb900[1], 0x5, 0x2, 0x16); - PCI_INT(bus_sb900[1], 0x5, 0x3, 0x17); - - /* PCI_SLOT 1. */ - PCI_INT(bus_sb900[1], 0x6, 0x0, 0x15); - PCI_INT(bus_sb900[1], 0x6, 0x1, 0x16); - PCI_INT(bus_sb900[1], 0x6, 0x2, 0x17); - PCI_INT(bus_sb900[1], 0x6, 0x3, 0x14); - - /* PCI_SLOT 2. */ - PCI_INT(bus_sb900[1], 0x7, 0x0, 0x16); - PCI_INT(bus_sb900[1], 0x7, 0x1, 0x17); - PCI_INT(bus_sb900[1], 0x7, 0x2, 0x14); - PCI_INT(bus_sb900[1], 0x7, 0x3, 0x15); - - PCI_INT(bus_sb900[1], 0x0, 0x0, 0x12); - PCI_INT(bus_sb900[1], 0x0, 0x1, 0x13); - PCI_INT(bus_sb900[1], 0x0, 0x2, 0x14); + device_t dev = dev_find_slot(0, PCI_DEVFN(0x14, 4)); + if (dev && dev->enabled) { + u8 bus_pci = dev->link_list->secondary; + + /* PCI_SLOT 0. */ + PCI_INT(bus_pci, 0x5, 0x0, 0x14); + PCI_INT(bus_pci, 0x5, 0x1, 0x15); + PCI_INT(bus_pci, 0x5, 0x2, 0x16); + PCI_INT(bus_pci, 0x5, 0x3, 0x17); + + /* PCI_SLOT 1. */ + PCI_INT(bus_pci, 0x6, 0x0, 0x15); + PCI_INT(bus_pci, 0x6, 0x1, 0x16); + PCI_INT(bus_pci, 0x6, 0x2, 0x17); + PCI_INT(bus_pci, 0x6, 0x3, 0x14); + + /* PCI_SLOT 2. */ + PCI_INT(bus_pci, 0x7, 0x0, 0x16); + PCI_INT(bus_pci, 0x7, 0x1, 0x17); + PCI_INT(bus_pci, 0x7, 0x2, 0x14); + PCI_INT(bus_pci, 0x7, 0x3, 0x15); + } /* PCIe Lan*/ PCI_INT(0x0, 0x06, 0x0, 0x13); |