AGESA boards: Use devicetree for PCI bus enumeration
Previously MP table contained PCI_INT entries for PCI bus behind bridge 0:14.4 even if said PCI bridge function was disabled. Remove these as invalid, indeterminate bus number could cause conflicts. PCI_INT entries with bus_sb800[2], bus_hudson[2] and bus_yangtze[2] were invalid as there is no PCI bridge hardware on device 0:14.0. Remove these as invalid, indeterminate bus number could cause conflicts. Change-Id: Ie6a3807f64c8651cf9f732612e1aa7f376a3134f Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: http://review.coreboot.org/6358 Tested-by: build bot (Jenkins) Reviewed-by: Edward O'Callaghan <eocallaghan@alterapraxis.com>
This commit is contained in:
parent
e5523b808b
commit
cdfb46240b
|
@ -28,8 +28,6 @@
|
|||
#include <cpu/x86/lapic.h>
|
||||
#include <cpu/amd/amdfam15.h>
|
||||
|
||||
extern u8 bus_sb700[2];
|
||||
|
||||
static void *smp_write_config_table(void *v)
|
||||
{
|
||||
struct mp_config_table *mc;
|
||||
|
@ -126,24 +124,28 @@ static void *smp_write_config_table(void *v)
|
|||
PCI_INT(0x0, 0x11, 0x0, 0x16); //6, INTG
|
||||
|
||||
/* PCI slots */
|
||||
/* PCI_SLOT 0. */
|
||||
PCI_INT(bus_sb700[1], 0x5, 0x0, 0x14);
|
||||
PCI_INT(bus_sb700[1], 0x5, 0x1, 0x15);
|
||||
PCI_INT(bus_sb700[1], 0x5, 0x2, 0x16);
|
||||
PCI_INT(bus_sb700[1], 0x5, 0x3, 0x17);
|
||||
dev = dev_find_slot(0, PCI_DEVFN(0x14, 4));
|
||||
if (dev && dev->enabled) {
|
||||
u8 bus_pci = dev->link_list->secondary;
|
||||
|
||||
/* PCI_SLOT 1. */
|
||||
PCI_INT(bus_sb700[1], 0x6, 0x0, 0x15);
|
||||
PCI_INT(bus_sb700[1], 0x6, 0x1, 0x16);
|
||||
PCI_INT(bus_sb700[1], 0x6, 0x2, 0x17);
|
||||
PCI_INT(bus_sb700[1], 0x6, 0x3, 0x14);
|
||||
/* 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 2. */
|
||||
PCI_INT(bus_sb700[1], 0x7, 0x0, 0x16);
|
||||
PCI_INT(bus_sb700[1], 0x7, 0x1, 0x17);
|
||||
PCI_INT(bus_sb700[1], 0x7, 0x2, 0x14);
|
||||
PCI_INT(bus_sb700[1], 0x7, 0x3, 0x15);
|
||||
/* 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);
|
||||
}
|
||||
|
||||
/*Local Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN# */
|
||||
IO_LOCAL_INT(mp_ExtINT, 0, MP_APIC_ALL, 0x0);
|
||||
|
|
|
@ -27,11 +27,8 @@
|
|||
#include <cpu/amd/amdfam14.h>
|
||||
#include <SBPLATFORM.h>
|
||||
|
||||
extern u8 bus_sb800[6];
|
||||
|
||||
extern u32 apicid_sb800;
|
||||
|
||||
|
||||
u8 intr_data[] = {
|
||||
[0x00] = 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, /* INTA# - INTH# */
|
||||
[0x08] = 0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x1F, /* Misc-nil,0,1,2, INT from Serial irq */
|
||||
|
@ -108,27 +105,27 @@ static void *smp_write_config_table(void *v)
|
|||
/* on board NIC & Slot PCIE. */
|
||||
|
||||
/* PCI slots */
|
||||
/* PCI_SLOT 0. */
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x0, 0x14);
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x1, 0x15);
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x2, 0x16);
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x3, 0x17);
|
||||
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_sb800[1], 0x6, 0x0, 0x15);
|
||||
PCI_INT(bus_sb800[1], 0x6, 0x1, 0x16);
|
||||
PCI_INT(bus_sb800[1], 0x6, 0x2, 0x17);
|
||||
PCI_INT(bus_sb800[1], 0x6, 0x3, 0x14);
|
||||
/* 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_sb800[1], 0x7, 0x0, 0x16);
|
||||
PCI_INT(bus_sb800[1], 0x7, 0x1, 0x17);
|
||||
PCI_INT(bus_sb800[1], 0x7, 0x2, 0x14);
|
||||
PCI_INT(bus_sb800[1], 0x7, 0x3, 0x15);
|
||||
|
||||
PCI_INT(bus_sb800[2], 0x0, 0x0, 0x12);
|
||||
PCI_INT(bus_sb800[2], 0x0, 0x1, 0x13);
|
||||
PCI_INT(bus_sb800[2], 0x0, 0x2, 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 PortA */
|
||||
PCI_INT(0x0, 0x15, 0x0, 0x10);
|
||||
|
|
|
@ -29,8 +29,6 @@
|
|||
#include "southbridge/amd/agesa/hudson/hudson.h" /* pm_ioread() */
|
||||
|
||||
#define IO_APIC_ID CONFIG_MAX_CPUS
|
||||
extern u8 bus_yangtze[6];
|
||||
|
||||
extern u32 apicid_yangtze;
|
||||
|
||||
u8 picr_data[0x54] = {
|
||||
|
@ -189,27 +187,27 @@ static void *smp_write_config_table(void *v)
|
|||
/* on board NIC & Slot PCIE. */
|
||||
|
||||
/* PCI slots */
|
||||
/* PCI_SLOT 0. */
|
||||
PCI_INT(bus_yangtze[1], 0x5, 0x0, 0x14);
|
||||
PCI_INT(bus_yangtze[1], 0x5, 0x1, 0x15);
|
||||
PCI_INT(bus_yangtze[1], 0x5, 0x2, 0x16);
|
||||
PCI_INT(bus_yangtze[1], 0x5, 0x3, 0x17);
|
||||
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_yangtze[1], 0x6, 0x0, 0x15);
|
||||
PCI_INT(bus_yangtze[1], 0x6, 0x1, 0x16);
|
||||
PCI_INT(bus_yangtze[1], 0x6, 0x2, 0x17);
|
||||
PCI_INT(bus_yangtze[1], 0x6, 0x3, 0x14);
|
||||
/* 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_yangtze[1], 0x7, 0x0, 0x16);
|
||||
PCI_INT(bus_yangtze[1], 0x7, 0x1, 0x17);
|
||||
PCI_INT(bus_yangtze[1], 0x7, 0x2, 0x14);
|
||||
PCI_INT(bus_yangtze[1], 0x7, 0x3, 0x15);
|
||||
|
||||
PCI_INT(bus_yangtze[2], 0x0, 0x0, 0x12);
|
||||
PCI_INT(bus_yangtze[2], 0x0, 0x1, 0x13);
|
||||
PCI_INT(bus_yangtze[2], 0x0, 0x2, 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);
|
||||
|
|
|
@ -29,8 +29,6 @@
|
|||
#include "southbridge/amd/agesa/hudson/hudson.h" /* pm_ioread() */
|
||||
|
||||
#define IO_APIC_ID CONFIG_MAX_CPUS
|
||||
extern u8 bus_hudson[6];
|
||||
|
||||
extern u32 apicid_hudson;
|
||||
|
||||
u8 picr_data[0x54] = {
|
||||
|
@ -150,27 +148,27 @@ static void *smp_write_config_table(void *v)
|
|||
/* on board NIC & Slot PCIE. */
|
||||
|
||||
/* PCI slots */
|
||||
/* PCI_SLOT 0. */
|
||||
PCI_INT(bus_hudson[1], 0x5, 0x0, 0x14);
|
||||
PCI_INT(bus_hudson[1], 0x5, 0x1, 0x15);
|
||||
PCI_INT(bus_hudson[1], 0x5, 0x2, 0x16);
|
||||
PCI_INT(bus_hudson[1], 0x5, 0x3, 0x17);
|
||||
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_hudson[1], 0x6, 0x0, 0x15);
|
||||
PCI_INT(bus_hudson[1], 0x6, 0x1, 0x16);
|
||||
PCI_INT(bus_hudson[1], 0x6, 0x2, 0x17);
|
||||
PCI_INT(bus_hudson[1], 0x6, 0x3, 0x14);
|
||||
/* 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_hudson[1], 0x7, 0x0, 0x16);
|
||||
PCI_INT(bus_hudson[1], 0x7, 0x1, 0x17);
|
||||
PCI_INT(bus_hudson[1], 0x7, 0x2, 0x14);
|
||||
PCI_INT(bus_hudson[1], 0x7, 0x3, 0x15);
|
||||
|
||||
PCI_INT(bus_hudson[2], 0x0, 0x0, 0x12);
|
||||
PCI_INT(bus_hudson[2], 0x0, 0x1, 0x13);
|
||||
PCI_INT(bus_hudson[2], 0x0, 0x2, 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);
|
||||
|
|
|
@ -31,11 +31,9 @@
|
|||
#include <drivers/generic/ioapic/chip.h>
|
||||
#include <arch/ioapic.h>
|
||||
|
||||
extern u8 bus_sb800[6];
|
||||
extern u32 apicid_sb800;
|
||||
extern u32 apicver_sb800;
|
||||
|
||||
|
||||
static void *smp_write_config_table(void *v)
|
||||
{
|
||||
struct mp_config_table *mc;
|
||||
|
@ -110,11 +108,15 @@ static void *smp_write_config_table(void *v)
|
|||
PCI_INT(0x2, 0x0, 0x0, intr_data_ptr[PIRQ_E]); /* Use INTE */
|
||||
|
||||
/* PCI slots */
|
||||
/* PCI_SLOT 0 */
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x0, intr_data_ptr[PIRQ_E]); /* INTA -> INTE */
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x1, intr_data_ptr[PIRQ_F]); /* INTB -> INTF */
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x2, intr_data_ptr[PIRQ_G]); /* INTC -> INTG */
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x3, intr_data_ptr[PIRQ_H]); /* INTD -> INTH */
|
||||
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, intr_data_ptr[PIRQ_E]); /* INTA -> INTE */
|
||||
PCI_INT(bus_pci, 0x5, 0x1, intr_data_ptr[PIRQ_F]); /* INTB -> INTF */
|
||||
PCI_INT(bus_pci, 0x5, 0x2, intr_data_ptr[PIRQ_G]); /* INTC -> INTG */
|
||||
PCI_INT(bus_pci, 0x5, 0x3, intr_data_ptr[PIRQ_H]); /* INTD -> INTH */
|
||||
}
|
||||
|
||||
/* PCIe PortA */
|
||||
PCI_INT(0x0, 0x15, 0x0, intr_data_ptr[PIRQ_E]); /* INTA -> INTE */
|
||||
|
|
|
@ -27,11 +27,8 @@
|
|||
#include <cpu/amd/amdfam14.h>
|
||||
#include <SBPLATFORM.h>
|
||||
|
||||
extern u8 bus_sb800[6];
|
||||
|
||||
extern u32 apicid_sb800;
|
||||
|
||||
|
||||
u8 intr_data[] = {
|
||||
[0x00] = 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, /* INTA# - INTH# */
|
||||
[0x08] = 0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x1F, /* Misc-nil,0,1,2, INT from Serial irq */
|
||||
|
@ -104,27 +101,27 @@ static void *smp_write_config_table(void *v)
|
|||
/* on board NIC & Slot PCIE. */
|
||||
|
||||
/* PCI slots */
|
||||
/* PCI_SLOT 0. */
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x0, 0x14);
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x1, 0x15);
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x2, 0x16);
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x3, 0x17);
|
||||
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_sb800[1], 0x6, 0x0, 0x15);
|
||||
PCI_INT(bus_sb800[1], 0x6, 0x1, 0x16);
|
||||
PCI_INT(bus_sb800[1], 0x6, 0x2, 0x17);
|
||||
PCI_INT(bus_sb800[1], 0x6, 0x3, 0x14);
|
||||
/* 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_sb800[1], 0x7, 0x0, 0x16);
|
||||
PCI_INT(bus_sb800[1], 0x7, 0x1, 0x17);
|
||||
PCI_INT(bus_sb800[1], 0x7, 0x2, 0x14);
|
||||
PCI_INT(bus_sb800[1], 0x7, 0x3, 0x15);
|
||||
|
||||
PCI_INT(bus_sb800[2], 0x0, 0x0, 0x12);
|
||||
PCI_INT(bus_sb800[2], 0x0, 0x1, 0x13);
|
||||
PCI_INT(bus_sb800[2], 0x0, 0x2, 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 PortA */
|
||||
PCI_INT(0x0, 0x15, 0x0, 0x10);
|
||||
|
|
|
@ -29,8 +29,6 @@
|
|||
#include "southbridge/amd/agesa/hudson/hudson.h" /* pm_ioread() */
|
||||
|
||||
#define IO_APIC_ID CONFIG_MAX_CPUS
|
||||
extern u8 bus_hudson[6];
|
||||
|
||||
extern u32 apicid_hudson;
|
||||
|
||||
u8 picr_data[] = {
|
||||
|
@ -150,27 +148,27 @@ static void *smp_write_config_table(void *v)
|
|||
/* on board NIC & Slot PCIE. */
|
||||
|
||||
/* PCI slots */
|
||||
/* PCI_SLOT 0. */
|
||||
PCI_INT(bus_hudson[1], 0x5, 0x0, 0x14);
|
||||
PCI_INT(bus_hudson[1], 0x5, 0x1, 0x15);
|
||||
PCI_INT(bus_hudson[1], 0x5, 0x2, 0x16);
|
||||
PCI_INT(bus_hudson[1], 0x5, 0x3, 0x17);
|
||||
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_hudson[1], 0x6, 0x0, 0x15);
|
||||
PCI_INT(bus_hudson[1], 0x6, 0x1, 0x16);
|
||||
PCI_INT(bus_hudson[1], 0x6, 0x2, 0x17);
|
||||
PCI_INT(bus_hudson[1], 0x6, 0x3, 0x14);
|
||||
/* 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_hudson[1], 0x7, 0x0, 0x16);
|
||||
PCI_INT(bus_hudson[1], 0x7, 0x1, 0x17);
|
||||
PCI_INT(bus_hudson[1], 0x7, 0x2, 0x14);
|
||||
PCI_INT(bus_hudson[1], 0x7, 0x3, 0x15);
|
||||
|
||||
PCI_INT(bus_hudson[2], 0x0, 0x0, 0x12);
|
||||
PCI_INT(bus_hudson[2], 0x0, 0x1, 0x13);
|
||||
PCI_INT(bus_hudson[2], 0x0, 0x2, 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);
|
||||
|
|
|
@ -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);
|
||||
device_t dev = dev_find_slot(0, PCI_DEVFN(0x14, 4));
|
||||
if (dev && dev->enabled) {
|
||||
u8 bus_pci = dev->link_list->secondary;
|
||||
|
||||
/* 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 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 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_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_INT(bus_sb900[1], 0x0, 0x0, 0x12);
|
||||
PCI_INT(bus_sb900[1], 0x0, 0x1, 0x13);
|
||||
PCI_INT(bus_sb900[1], 0x0, 0x2, 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);
|
||||
|
|
|
@ -27,11 +27,8 @@
|
|||
#include <cpu/amd/amdfam14.h>
|
||||
#include <SBPLATFORM.h>
|
||||
|
||||
extern u8 bus_sb800[6];
|
||||
|
||||
extern u32 apicid_sb800;
|
||||
|
||||
|
||||
u8 intr_data[] = {
|
||||
[0x00] = 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, /* INTA# - INTH# */
|
||||
[0x08] = 0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x1F, /* Misc-nil,0,1,2, INT from Serial irq */
|
||||
|
@ -104,27 +101,27 @@ static void *smp_write_config_table(void *v)
|
|||
/* on board NIC & Slot PCIE. */
|
||||
|
||||
/* PCI slots */
|
||||
/* PCI_SLOT 0. */
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x0, 0x14);
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x1, 0x15);
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x2, 0x16);
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x3, 0x17);
|
||||
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_sb800[1], 0x6, 0x0, 0x15);
|
||||
PCI_INT(bus_sb800[1], 0x6, 0x1, 0x16);
|
||||
PCI_INT(bus_sb800[1], 0x6, 0x2, 0x17);
|
||||
PCI_INT(bus_sb800[1], 0x6, 0x3, 0x14);
|
||||
/* 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_sb800[1], 0x7, 0x0, 0x16);
|
||||
PCI_INT(bus_sb800[1], 0x7, 0x1, 0x17);
|
||||
PCI_INT(bus_sb800[1], 0x7, 0x2, 0x14);
|
||||
PCI_INT(bus_sb800[1], 0x7, 0x3, 0x15);
|
||||
|
||||
PCI_INT(bus_sb800[2], 0x0, 0x0, 0x12);
|
||||
PCI_INT(bus_sb800[2], 0x0, 0x1, 0x13);
|
||||
PCI_INT(bus_sb800[2], 0x0, 0x2, 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 PortA */
|
||||
PCI_INT(0x0, 0x15, 0x0, 0x10);
|
||||
|
|
|
@ -28,11 +28,8 @@
|
|||
|
||||
#include <southbridge/amd/cimx/sb800/SBPLATFORM.h>
|
||||
|
||||
extern u8 bus_sb800[6];
|
||||
|
||||
extern u32 apicid_sb800;
|
||||
|
||||
|
||||
u8 intr_data[] = {
|
||||
[0x00] = 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, /* INTA# - INTH# */
|
||||
[0x08] = 0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x1F, /* Misc-nil,0,1,2, INT from Serial irq */
|
||||
|
@ -105,27 +102,27 @@ static void *smp_write_config_table(void *v)
|
|||
/* on board NIC & Slot PCIE. */
|
||||
|
||||
/* PCI slots */
|
||||
/* PCI_SLOT 0. */
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x0, 0x14);
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x1, 0x15);
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x2, 0x16);
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x3, 0x17);
|
||||
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_sb800[1], 0x6, 0x0, 0x15);
|
||||
PCI_INT(bus_sb800[1], 0x6, 0x1, 0x16);
|
||||
PCI_INT(bus_sb800[1], 0x6, 0x2, 0x17);
|
||||
PCI_INT(bus_sb800[1], 0x6, 0x3, 0x14);
|
||||
/* 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_sb800[1], 0x7, 0x0, 0x16);
|
||||
PCI_INT(bus_sb800[1], 0x7, 0x1, 0x17);
|
||||
PCI_INT(bus_sb800[1], 0x7, 0x2, 0x14);
|
||||
PCI_INT(bus_sb800[1], 0x7, 0x3, 0x15);
|
||||
|
||||
PCI_INT(bus_sb800[2], 0x0, 0x0, 0x12);
|
||||
PCI_INT(bus_sb800[2], 0x0, 0x1, 0x13);
|
||||
PCI_INT(bus_sb800[2], 0x0, 0x2, 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 PortA */
|
||||
PCI_INT(0x0, 0x15, 0x0, 0x10);
|
||||
|
|
|
@ -29,8 +29,6 @@
|
|||
#include "southbridge/amd/agesa/hudson/hudson.h" /* pm_ioread() */
|
||||
|
||||
#define IO_APIC_ID CONFIG_MAX_CPUS
|
||||
extern u8 bus_yangtze[6];
|
||||
|
||||
extern u32 apicid_yangtze;
|
||||
|
||||
u8 picr_data[0x54] = {
|
||||
|
@ -189,27 +187,27 @@ static void *smp_write_config_table(void *v)
|
|||
/* on board NIC & Slot PCIE. */
|
||||
|
||||
/* PCI slots */
|
||||
/* PCI_SLOT 0. */
|
||||
PCI_INT(bus_yangtze[1], 0x5, 0x0, 0x14);
|
||||
PCI_INT(bus_yangtze[1], 0x5, 0x1, 0x15);
|
||||
PCI_INT(bus_yangtze[1], 0x5, 0x2, 0x16);
|
||||
PCI_INT(bus_yangtze[1], 0x5, 0x3, 0x17);
|
||||
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_yangtze[1], 0x6, 0x0, 0x15);
|
||||
PCI_INT(bus_yangtze[1], 0x6, 0x1, 0x16);
|
||||
PCI_INT(bus_yangtze[1], 0x6, 0x2, 0x17);
|
||||
PCI_INT(bus_yangtze[1], 0x6, 0x3, 0x14);
|
||||
/* 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_yangtze[1], 0x7, 0x0, 0x16);
|
||||
PCI_INT(bus_yangtze[1], 0x7, 0x1, 0x17);
|
||||
PCI_INT(bus_yangtze[1], 0x7, 0x2, 0x14);
|
||||
PCI_INT(bus_yangtze[1], 0x7, 0x3, 0x15);
|
||||
|
||||
PCI_INT(bus_yangtze[2], 0x0, 0x0, 0x12);
|
||||
PCI_INT(bus_yangtze[2], 0x0, 0x1, 0x13);
|
||||
PCI_INT(bus_yangtze[2], 0x0, 0x2, 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);
|
||||
|
|
|
@ -28,8 +28,6 @@
|
|||
#include "southbridge/amd/agesa/hudson/hudson.h" /* pm_ioread() */
|
||||
|
||||
#define IO_APIC_ID CONFIG_MAX_CPUS
|
||||
extern u8 bus_hudson[6];
|
||||
|
||||
extern u32 apicid_hudson;
|
||||
|
||||
u8 picr_data[] = {
|
||||
|
@ -155,15 +153,15 @@ static void *smp_write_config_table(void *v)
|
|||
/* on board NIC & Slot PCIE. */
|
||||
|
||||
/* PCI slots */
|
||||
/* PCI_SLOT 0. */
|
||||
PCI_INT(bus_hudson[1], 0x5, 0x0, 0x14);
|
||||
PCI_INT(bus_hudson[1], 0x5, 0x1, 0x15);
|
||||
PCI_INT(bus_hudson[1], 0x5, 0x2, 0x16);
|
||||
PCI_INT(bus_hudson[1], 0x5, 0x3, 0x17);
|
||||
|
||||
PCI_INT(bus_hudson[2], 0x0, 0x0, 0x12);
|
||||
PCI_INT(bus_hudson[2], 0x0, 0x1, 0x13);
|
||||
PCI_INT(bus_hudson[2], 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);
|
||||
}
|
||||
|
||||
/* PCIe Lan*/
|
||||
PCI_INT(0x0, 0x06, 0x0, 0x13);
|
||||
|
|
|
@ -28,11 +28,8 @@
|
|||
#include <cpu/amd/amdfam14.h>
|
||||
#include <SBPLATFORM.h>
|
||||
|
||||
extern u8 bus_sb800[6];
|
||||
|
||||
extern u32 apicid_sb800;
|
||||
|
||||
|
||||
u8 intr_data[] = {
|
||||
[0x00] = 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, /* INTA# - INTH# */
|
||||
[0x08] = 0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x1F, /* Misc-nil,0,1,2, INT from Serial irq */
|
||||
|
@ -105,27 +102,27 @@ static void *smp_write_config_table(void *v)
|
|||
/* on board NIC & Slot PCIE. */
|
||||
|
||||
/* PCI slots */
|
||||
/* PCI_SLOT 0. */
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x0, 0x14);
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x1, 0x15);
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x2, 0x16);
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x3, 0x17);
|
||||
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_sb800[1], 0x6, 0x0, 0x15);
|
||||
PCI_INT(bus_sb800[1], 0x6, 0x1, 0x16);
|
||||
PCI_INT(bus_sb800[1], 0x6, 0x2, 0x17);
|
||||
PCI_INT(bus_sb800[1], 0x6, 0x3, 0x14);
|
||||
/* 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_sb800[1], 0x7, 0x0, 0x16);
|
||||
PCI_INT(bus_sb800[1], 0x7, 0x1, 0x17);
|
||||
PCI_INT(bus_sb800[1], 0x7, 0x2, 0x14);
|
||||
PCI_INT(bus_sb800[1], 0x7, 0x3, 0x15);
|
||||
|
||||
PCI_INT(bus_sb800[2], 0x0, 0x0, 0x12);
|
||||
PCI_INT(bus_sb800[2], 0x0, 0x1, 0x13);
|
||||
PCI_INT(bus_sb800[2], 0x0, 0x2, 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 PortA */
|
||||
PCI_INT(0x0, 0x15, 0x0, 0x10);
|
||||
|
|
|
@ -29,8 +29,6 @@
|
|||
#include <southbridge/amd/agesa/hudson/hudson.h> /* pm_ioread() */
|
||||
|
||||
#define IO_APIC_ID CONFIG_MAX_CPUS
|
||||
extern u8 bus_hudson[6];
|
||||
|
||||
extern u32 apicid_hudson;
|
||||
|
||||
u8 picr_data[0x54] = {
|
||||
|
@ -150,27 +148,27 @@ static void *smp_write_config_table(void *v)
|
|||
/* on board NIC & Slot PCIE. */
|
||||
|
||||
/* PCI slots */
|
||||
/* PCI_SLOT 0. */
|
||||
PCI_INT(bus_hudson[1], 0x5, 0x0, 0x14);
|
||||
PCI_INT(bus_hudson[1], 0x5, 0x1, 0x15);
|
||||
PCI_INT(bus_hudson[1], 0x5, 0x2, 0x16);
|
||||
PCI_INT(bus_hudson[1], 0x5, 0x3, 0x17);
|
||||
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_hudson[1], 0x6, 0x0, 0x15);
|
||||
PCI_INT(bus_hudson[1], 0x6, 0x1, 0x16);
|
||||
PCI_INT(bus_hudson[1], 0x6, 0x2, 0x17);
|
||||
PCI_INT(bus_hudson[1], 0x6, 0x3, 0x14);
|
||||
/* 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_hudson[1], 0x7, 0x0, 0x16);
|
||||
PCI_INT(bus_hudson[1], 0x7, 0x1, 0x17);
|
||||
PCI_INT(bus_hudson[1], 0x7, 0x2, 0x14);
|
||||
PCI_INT(bus_hudson[1], 0x7, 0x3, 0x15);
|
||||
|
||||
PCI_INT(bus_hudson[2], 0x0, 0x0, 0x12);
|
||||
PCI_INT(bus_hudson[2], 0x0, 0x1, 0x13);
|
||||
PCI_INT(bus_hudson[2], 0x0, 0x2, 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);
|
||||
|
|
|
@ -33,11 +33,9 @@
|
|||
#include <southbridge/amd/amd_pci_util.h>
|
||||
#include <southbridge/amd/cimx/sb800/SBPLATFORM.h>
|
||||
|
||||
extern u8 bus_sb800[6];
|
||||
extern u32 apicid_sb800;
|
||||
extern u32 apicver_sb800;
|
||||
|
||||
|
||||
static void *smp_write_config_table(void *v)
|
||||
{
|
||||
struct mp_config_table *mc;
|
||||
|
@ -112,11 +110,15 @@ static void *smp_write_config_table(void *v)
|
|||
PCI_INT(0x2, 0x0, 0x0, intr_data_ptr[PIRQ_E]); /* Use INTE */
|
||||
|
||||
/* PCI slots */
|
||||
/* PCI_SLOT 0 */
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x0, intr_data_ptr[PIRQ_E]); /* INTA -> INTE */
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x1, intr_data_ptr[PIRQ_F]); /* INTB -> INTF */
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x2, intr_data_ptr[PIRQ_G]); /* INTC -> INTG */
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x3, intr_data_ptr[PIRQ_H]); /* INTD -> INTH */
|
||||
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, intr_data_ptr[PIRQ_E]); /* INTA -> INTE */
|
||||
PCI_INT(bus_pci, 0x5, 0x1, intr_data_ptr[PIRQ_F]); /* INTB -> INTF */
|
||||
PCI_INT(bus_pci, 0x5, 0x2, intr_data_ptr[PIRQ_G]); /* INTC -> INTG */
|
||||
PCI_INT(bus_pci, 0x5, 0x3, intr_data_ptr[PIRQ_H]); /* INTD -> INTH */
|
||||
}
|
||||
|
||||
/* On-board Realtek NIC 2. (PCIe PortA) */
|
||||
PCI_INT(0x0, 0x15, 0x0, intr_data_ptr[PIRQ_E]); /* INTA -> INTE */
|
||||
|
|
|
@ -27,11 +27,8 @@
|
|||
#include <cpu/amd/amdfam14.h>
|
||||
#include <SBPLATFORM.h>
|
||||
|
||||
extern u8 bus_sb800[6];
|
||||
|
||||
extern u32 apicid_sb800;
|
||||
|
||||
|
||||
u8 intr_data[] = {
|
||||
[0x00] = 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, /* INTA# - INTH# */
|
||||
[0x08] = 0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x1F, /* Misc-nil,0,1,2, INT from Serial irq */
|
||||
|
@ -104,27 +101,27 @@ static void *smp_write_config_table(void *v)
|
|||
/* on board NIC & Slot PCIE. */
|
||||
|
||||
/* PCI slots */
|
||||
/* PCI_SLOT 0. */
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x0, 0x14);
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x1, 0x15);
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x2, 0x16);
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x3, 0x17);
|
||||
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_sb800[1], 0x6, 0x0, 0x15);
|
||||
PCI_INT(bus_sb800[1], 0x6, 0x1, 0x16);
|
||||
PCI_INT(bus_sb800[1], 0x6, 0x2, 0x17);
|
||||
PCI_INT(bus_sb800[1], 0x6, 0x3, 0x14);
|
||||
/* 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_sb800[1], 0x7, 0x0, 0x16);
|
||||
PCI_INT(bus_sb800[1], 0x7, 0x1, 0x17);
|
||||
PCI_INT(bus_sb800[1], 0x7, 0x2, 0x14);
|
||||
PCI_INT(bus_sb800[1], 0x7, 0x3, 0x15);
|
||||
|
||||
PCI_INT(bus_sb800[2], 0x0, 0x0, 0x12);
|
||||
PCI_INT(bus_sb800[2], 0x0, 0x1, 0x13);
|
||||
PCI_INT(bus_sb800[2], 0x0, 0x2, 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 PortA */
|
||||
PCI_INT(0x0, 0x15, 0x0, 0x10);
|
||||
|
|
|
@ -27,11 +27,8 @@
|
|||
#include <cpu/amd/amdfam14.h>
|
||||
#include <SBPLATFORM.h>
|
||||
|
||||
extern u8 bus_sb800[6];
|
||||
|
||||
extern u32 apicid_sb800;
|
||||
|
||||
|
||||
u8 intr_data[] = {
|
||||
[0x00] = 0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17, /* INTA# - INTH# */
|
||||
[0x08] = 0x00,0x00,0x00,0x00,0x1F,0x1F,0x1F,0x1F, /* Misc-nil,0,1,2, INT from Serial irq */
|
||||
|
@ -104,27 +101,27 @@ static void *smp_write_config_table(void *v)
|
|||
/* on board NIC & Slot PCIE. */
|
||||
|
||||
/* PCI slots */
|
||||
/* PCI_SLOT 0. */
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x0, 0x14);
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x1, 0x15);
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x2, 0x16);
|
||||
PCI_INT(bus_sb800[1], 0x5, 0x3, 0x17);
|
||||
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_sb800[1], 0x6, 0x0, 0x15);
|
||||
PCI_INT(bus_sb800[1], 0x6, 0x1, 0x16);
|
||||
PCI_INT(bus_sb800[1], 0x6, 0x2, 0x17);
|
||||
PCI_INT(bus_sb800[1], 0x6, 0x3, 0x14);
|
||||
/* 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_sb800[1], 0x7, 0x0, 0x16);
|
||||
PCI_INT(bus_sb800[1], 0x7, 0x1, 0x17);
|
||||
PCI_INT(bus_sb800[1], 0x7, 0x2, 0x14);
|
||||
PCI_INT(bus_sb800[1], 0x7, 0x3, 0x15);
|
||||
|
||||
PCI_INT(bus_sb800[2], 0x0, 0x0, 0x12);
|
||||
PCI_INT(bus_sb800[2], 0x0, 0x1, 0x13);
|
||||
PCI_INT(bus_sb800[2], 0x0, 0x2, 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 PortA */
|
||||
PCI_INT(0x0, 0x15, 0x0, 0x10);
|
||||
|
|
|
@ -28,8 +28,6 @@
|
|||
#include <cpu/x86/lapic.h>
|
||||
#include <cpu/amd/amdfam10_sysconf.h>
|
||||
|
||||
extern u8 bus_sp5100[2];
|
||||
|
||||
static void *smp_write_config_table(void *v)
|
||||
{
|
||||
struct mp_config_table *mc;
|
||||
|
@ -142,24 +140,27 @@ static void *smp_write_config_table(void *v)
|
|||
PCI_INT(0x0, 0x11, 0x0, 0x16); //6, INTG
|
||||
|
||||
/* PCI slots */
|
||||
/* PCI_SLOT 0. */
|
||||
PCI_INT(bus_sp5100[1], 0x5, 0x0, 0x14);
|
||||
PCI_INT(bus_sp5100[1], 0x5, 0x1, 0x15);
|
||||
PCI_INT(bus_sp5100[1], 0x5, 0x2, 0x16);
|
||||
PCI_INT(bus_sp5100[1], 0x5, 0x3, 0x17);
|
||||
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_sp5100[1], 0x6, 0x0, 0x15);
|
||||
PCI_INT(bus_sp5100[1], 0x6, 0x1, 0x16);
|
||||
PCI_INT(bus_sp5100[1], 0x6, 0x2, 0x17);
|
||||
PCI_INT(bus_sp5100[1], 0x6, 0x3, 0x14);
|
||||
|
||||
/* PCI_SLOT 2. */
|
||||
PCI_INT(bus_sp5100[1], 0x7, 0x0, 0x16);
|
||||
PCI_INT(bus_sp5100[1], 0x7, 0x1, 0x17);
|
||||
PCI_INT(bus_sp5100[1], 0x7, 0x2, 0x14);
|
||||
PCI_INT(bus_sp5100[1], 0x7, 0x3, 0x15);
|
||||
/* 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);
|
||||
}
|
||||
|
||||
/*Local Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN# */
|
||||
IO_LOCAL_INT(mp_ExtINT, 0, MP_APIC_ALL, 0x0);
|
||||
|
|
|
@ -28,8 +28,6 @@
|
|||
#include <cpu/x86/lapic.h>
|
||||
#include <cpu/amd/amdfam10_sysconf.h>
|
||||
|
||||
extern u8 bus_sp5100[2];
|
||||
|
||||
static void *smp_write_config_table(void *v)
|
||||
{
|
||||
struct mp_config_table *mc;
|
||||
|
@ -142,24 +140,27 @@ static void *smp_write_config_table(void *v)
|
|||
PCI_INT(0x0, 0x11, 0x0, 0x16); //6, INTG
|
||||
|
||||
/* PCI slots */
|
||||
/* PCI_SLOT 0. */
|
||||
PCI_INT(bus_sp5100[1], 0x5, 0x0, 0x14);
|
||||
PCI_INT(bus_sp5100[1], 0x5, 0x1, 0x15);
|
||||
PCI_INT(bus_sp5100[1], 0x5, 0x2, 0x16);
|
||||
PCI_INT(bus_sp5100[1], 0x5, 0x3, 0x17);
|
||||
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_sp5100[1], 0x6, 0x0, 0x15);
|
||||
PCI_INT(bus_sp5100[1], 0x6, 0x1, 0x16);
|
||||
PCI_INT(bus_sp5100[1], 0x6, 0x2, 0x17);
|
||||
PCI_INT(bus_sp5100[1], 0x6, 0x3, 0x14);
|
||||
|
||||
/* PCI_SLOT 2. */
|
||||
PCI_INT(bus_sp5100[1], 0x7, 0x0, 0x16);
|
||||
PCI_INT(bus_sp5100[1], 0x7, 0x1, 0x17);
|
||||
PCI_INT(bus_sp5100[1], 0x7, 0x2, 0x14);
|
||||
PCI_INT(bus_sp5100[1], 0x7, 0x3, 0x15);
|
||||
/* 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);
|
||||
}
|
||||
|
||||
/*Local Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN# */
|
||||
IO_LOCAL_INT(mp_ExtINT, 0, MP_APIC_ALL, 0x0);
|
||||
|
|
|
@ -28,8 +28,6 @@
|
|||
#include <cpu/x86/lapic.h>
|
||||
#include <cpu/amd/amdfam10_sysconf.h>
|
||||
|
||||
extern u8 bus_sp5100[2];
|
||||
|
||||
static void *smp_write_config_table(void *v)
|
||||
{
|
||||
struct mp_config_table *mc;
|
||||
|
@ -142,24 +140,27 @@ static void *smp_write_config_table(void *v)
|
|||
PCI_INT(0x0, 0x11, 0x0, 0x16); //6, INTG
|
||||
|
||||
/* PCI slots */
|
||||
/* PCI_SLOT 0. */
|
||||
PCI_INT(bus_sp5100[1], 0x5, 0x0, 0x14);
|
||||
PCI_INT(bus_sp5100[1], 0x5, 0x1, 0x15);
|
||||
PCI_INT(bus_sp5100[1], 0x5, 0x2, 0x16);
|
||||
PCI_INT(bus_sp5100[1], 0x5, 0x3, 0x17);
|
||||
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_sp5100[1], 0x6, 0x0, 0x15);
|
||||
PCI_INT(bus_sp5100[1], 0x6, 0x1, 0x16);
|
||||
PCI_INT(bus_sp5100[1], 0x6, 0x2, 0x17);
|
||||
PCI_INT(bus_sp5100[1], 0x6, 0x3, 0x14);
|
||||
|
||||
/* PCI_SLOT 2. */
|
||||
PCI_INT(bus_sp5100[1], 0x7, 0x0, 0x16);
|
||||
PCI_INT(bus_sp5100[1], 0x7, 0x1, 0x17);
|
||||
PCI_INT(bus_sp5100[1], 0x7, 0x2, 0x14);
|
||||
PCI_INT(bus_sp5100[1], 0x7, 0x3, 0x15);
|
||||
/* 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);
|
||||
}
|
||||
|
||||
/*Local Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN# */
|
||||
IO_LOCAL_INT(mp_ExtINT, 0, MP_APIC_ALL, 0x0);
|
||||
|
|
Loading…
Reference in New Issue