diff options
author | Patrick Georgi <patrick@georgi-clan.de> | 2010-11-21 14:41:07 +0000 |
---|---|---|
committer | Patrick Georgi <patrick.georgi@coresystems.de> | 2010-11-21 14:41:07 +0000 |
commit | 5244e1ba63e5f3ea12066734bfb0d864a8f1f11d (patch) | |
tree | e389268c9bb473c457df4e7ab1de60922e0c7adf /src/mainboard/tyan | |
parent | 8cda9699d4a2fea8ed2c5e4a7e66e8e1e0f831df (diff) |
Convert more boards to use mptable_write_buses.
Signed-off-by: Patrick Georgi <patrick@georgi-clan.de>
Acked-by: Uwe Hermann <uwe@hermann-uwe.de>
git-svn-id: svn://svn.coreboot.org/coreboot/trunk@6106 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
Diffstat (limited to 'src/mainboard/tyan')
-rw-r--r-- | src/mainboard/tyan/s2881/get_bus_conf.c | 11 | ||||
-rw-r--r-- | src/mainboard/tyan/s2881/mptable.c | 12 | ||||
-rw-r--r-- | src/mainboard/tyan/s2882/mptable.c | 14 | ||||
-rw-r--r-- | src/mainboard/tyan/s2885/get_bus_conf.c | 14 | ||||
-rw-r--r-- | src/mainboard/tyan/s2885/mptable.c | 11 | ||||
-rw-r--r-- | src/mainboard/tyan/s2891/get_bus_conf.c | 6 | ||||
-rw-r--r-- | src/mainboard/tyan/s2891/irq_tables.c | 1 | ||||
-rw-r--r-- | src/mainboard/tyan/s2891/mptable.c | 11 | ||||
-rw-r--r-- | src/mainboard/tyan/s2892/get_bus_conf.c | 6 | ||||
-rw-r--r-- | src/mainboard/tyan/s2892/irq_tables.c | 1 | ||||
-rw-r--r-- | src/mainboard/tyan/s2892/mptable.c | 11 | ||||
-rw-r--r-- | src/mainboard/tyan/s2895/get_bus_conf.c | 6 | ||||
-rw-r--r-- | src/mainboard/tyan/s2895/mptable.c | 11 | ||||
-rw-r--r-- | src/mainboard/tyan/s2912/get_bus_conf.c | 16 | ||||
-rw-r--r-- | src/mainboard/tyan/s2912/mb_sysconf.h | 3 | ||||
-rw-r--r-- | src/mainboard/tyan/s2912/mptable.c | 16 | ||||
-rw-r--r-- | src/mainboard/tyan/s2912_fam10/get_bus_conf.c | 15 | ||||
-rw-r--r-- | src/mainboard/tyan/s2912_fam10/mb_sysconf.h | 3 | ||||
-rw-r--r-- | src/mainboard/tyan/s2912_fam10/mptable.c | 16 |
19 files changed, 24 insertions, 160 deletions
diff --git a/src/mainboard/tyan/s2881/get_bus_conf.c b/src/mainboard/tyan/s2881/get_bus_conf.c index 562ba935d8..e4721ce42e 100644 --- a/src/mainboard/tyan/s2881/get_bus_conf.c +++ b/src/mainboard/tyan/s2881/get_bus_conf.c @@ -13,7 +13,6 @@ // Global variables for MB layouts and these will be shared by irqtable mptable and acpi_tables //busnum is default -unsigned char bus_isa = 5 ; unsigned char bus_8131_0 = 1; unsigned char bus_8131_1 = 2; unsigned char bus_8131_2 = 3; @@ -82,11 +81,6 @@ void get_bus_conf(void) dev = dev_find_slot(bus_8111_0, PCI_DEVFN(sysconf.sbdn,0)); if (dev) { bus_8111_1 = pci_read_config8(dev, PCI_SECONDARY_BUS); -#if CONFIG_HT_CHAIN_END_UNITID_BASE >= CONFIG_HT_CHAIN_UNITID_BASE - bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS); - bus_isa++; -// printk(BIOS_DEBUG, "bus_isa=%d\n",bus_isa); -#endif } else { printk(BIOS_DEBUG, "ERROR - could not find PCI %02x:03.0, using defaults\n", bus_8111_0); @@ -105,11 +99,6 @@ void get_bus_conf(void) dev = dev_find_slot(bus_8131_0, PCI_DEVFN(sbdn3+1,0)); if (dev) { bus_8131_2 = pci_read_config8(dev, PCI_SECONDARY_BUS); -#if CONFIG_HT_CHAIN_END_UNITID_BASE < CONFIG_HT_CHAIN_UNITID_BASE - bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS); - bus_isa++; -// printk(BIOS_DEBUG, "bus_isa=%d\n",bus_isa); -#endif } else { printk(BIOS_DEBUG, "ERROR - could not find PCI %02x:02.0, using defaults\n", bus_8131_0); diff --git a/src/mainboard/tyan/s2881/mptable.c b/src/mainboard/tyan/s2881/mptable.c index 37ca8f20de..2754d870d4 100644 --- a/src/mainboard/tyan/s2881/mptable.c +++ b/src/mainboard/tyan/s2881/mptable.c @@ -6,7 +6,6 @@ #include <stdint.h> #include <cpu/amd/amdk8_sysconf.h> -extern unsigned char bus_isa; extern unsigned char bus_8131_0; extern unsigned char bus_8131_1; extern unsigned char bus_8131_2; @@ -21,8 +20,7 @@ extern unsigned sbdn3; static void *smp_write_config_table(void *v) { struct mp_config_table *mc; - unsigned char bus_num; - int i; + int i, bus_isa; mc = (void *)(((char *)v) + SMP_FLOATING_TABLE_LEN); @@ -32,13 +30,7 @@ static void *smp_write_config_table(void *v) get_bus_conf(); -/*Bus: Bus ID Type*/ - /* define bus and isa numbers */ - for(bus_num = 0; bus_num < bus_isa; bus_num++) { - smp_write_bus(mc, bus_num, "PCI "); - } - smp_write_bus(mc, bus_isa, "ISA "); - + mptable_write_buses(mc, NULL, &bus_isa); /*I/O APICs: APIC ID Version State Address*/ smp_write_ioapic(mc, apicid_8111, 0x11, IO_APIC_ADDR); diff --git a/src/mainboard/tyan/s2882/mptable.c b/src/mainboard/tyan/s2882/mptable.c index 5ee995c2a9..9b040defaf 100644 --- a/src/mainboard/tyan/s2882/mptable.c +++ b/src/mainboard/tyan/s2882/mptable.c @@ -46,8 +46,7 @@ static unsigned node_link_to_bus(unsigned node, unsigned link) static void *smp_write_config_table(void *v) { struct mp_config_table *mc; - unsigned char bus_num; - unsigned char bus_isa; + int bus_isa; unsigned char bus_chain_0; unsigned char bus_8131_1; unsigned char bus_8131_2; @@ -76,14 +75,11 @@ static void *smp_write_config_table(void *v) dev = dev_find_slot(bus_chain_0, PCI_DEVFN(0x03,0)); if (dev) { bus_8111_1 = pci_read_config8(dev, PCI_SECONDARY_BUS); - bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS); - bus_isa++; } else { printk(BIOS_DEBUG, "ERROR - could not find PCI 1:03.0, using defaults\n"); bus_8111_1 = 4; - bus_isa = 5; } /* 8131-1 */ dev = dev_find_slot(bus_chain_0, PCI_DEVFN(0x01,0)); @@ -108,13 +104,7 @@ static void *smp_write_config_table(void *v) bus_8131_2 = 3; } } -/*Bus: Bus ID Type*/ - /* define bus and isa numbers */ - for(bus_num = 0; bus_num < bus_isa; bus_num++) { - smp_write_bus(mc, bus_num, "PCI "); - } - smp_write_bus(mc, bus_isa, "ISA "); - + mptable_write_buses(mc, NULL, &bus_isa); /*I/O APICs: APIC ID Version State Address*/ #if CONFIG_LOGICAL_CPUS==1 diff --git a/src/mainboard/tyan/s2885/get_bus_conf.c b/src/mainboard/tyan/s2885/get_bus_conf.c index a511afa395..5cb760da2f 100644 --- a/src/mainboard/tyan/s2885/get_bus_conf.c +++ b/src/mainboard/tyan/s2885/get_bus_conf.c @@ -12,7 +12,6 @@ // Global variables for MB layouts and these will be shared by irqtable mptable and acpi_tables //busnum is default -unsigned char bus_isa = 7 ; unsigned char bus_8131_0 = 1; unsigned char bus_8131_1 = 2; unsigned char bus_8131_2 = 3; @@ -85,11 +84,6 @@ void get_bus_conf(void) dev = dev_find_slot(bus_8111_0, PCI_DEVFN(sysconf.sbdn,0)); if (dev) { bus_8111_1 = pci_read_config8(dev, PCI_SECONDARY_BUS); -#if CONFIG_HT_CHAIN_END_UNITID_BASE >= CONFIG_HT_CHAIN_UNITID_BASE - bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS); - bus_isa++; -// printk(BIOS_DEBUG, "bus_isa=%d\n",bus_isa); -#endif } else { printk(BIOS_DEBUG, "ERROR - could not find PCI %02x:03.0, using defaults\n", bus_8111_0); @@ -108,12 +102,6 @@ void get_bus_conf(void) dev = dev_find_slot(bus_8131_0, PCI_DEVFN(sbdn3+1,0)); if (dev) { bus_8131_2 = pci_read_config8(dev, PCI_SECONDARY_BUS); -#if CONFIG_HT_CHAIN_END_UNITID_BASE < CONFIG_HT_CHAIN_UNITID_BASE - bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS); - bus_isa++; -// printk(BIOS_DEBUG, "bus_isa=%d\n",bus_isa); -#endif - } else { printk(BIOS_DEBUG, "ERROR - could not find PCI %02x:02.0, using defaults\n", bus_8131_0); @@ -128,8 +116,6 @@ void get_bus_conf(void) if (dev) { bus_8151_1 = pci_read_config8(dev, PCI_SECONDARY_BUS); // printk(BIOS_DEBUG, "bus_8151_1=%d\n",bus_8151_1); - bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS); - bus_isa++; } /*I/O APICs: APIC ID Version State Address*/ diff --git a/src/mainboard/tyan/s2885/mptable.c b/src/mainboard/tyan/s2885/mptable.c index 733e82bef3..d3a26207e2 100644 --- a/src/mainboard/tyan/s2885/mptable.c +++ b/src/mainboard/tyan/s2885/mptable.c @@ -6,7 +6,6 @@ #include <stdint.h> #include <cpu/amd/amdk8_sysconf.h> -extern unsigned char bus_isa; extern unsigned char bus_8131_0; extern unsigned char bus_8131_1; extern unsigned char bus_8131_2; @@ -24,8 +23,7 @@ extern unsigned sbdn5; static void *smp_write_config_table(void *v) { struct mp_config_table *mc; - unsigned char bus_num; - int i; + int i, bus_isa; mc = (void *)(((char *)v) + SMP_FLOATING_TABLE_LEN); @@ -35,12 +33,7 @@ static void *smp_write_config_table(void *v) get_bus_conf(); -/*Bus: Bus ID Type*/ - /* define bus and isa numbers */ - for(bus_num = 0; bus_num < bus_isa; bus_num++) { - smp_write_bus(mc, bus_num, "PCI "); - } - smp_write_bus(mc, bus_isa, "ISA "); + mptable_write_buses(mc, NULL, &bus_isa); /*I/O APICs: APIC ID Version State Address*/ smp_write_ioapic(mc, apicid_8111, 0x11, IO_APIC_ADDR); //8111 diff --git a/src/mainboard/tyan/s2891/get_bus_conf.c b/src/mainboard/tyan/s2891/get_bus_conf.c index 2bd6954389..bbb02e9f98 100644 --- a/src/mainboard/tyan/s2891/get_bus_conf.c +++ b/src/mainboard/tyan/s2891/get_bus_conf.c @@ -12,7 +12,6 @@ // Global variables for MB layouts and these will be shared by irqtable mptable and acpi_tables //busnum is default - unsigned char bus_isa; unsigned char bus_ck804_0; //1 unsigned char bus_ck804_1; //2 unsigned char bus_ck804_2; //3 @@ -117,8 +116,6 @@ void get_bus_conf(void) dev = dev_find_slot(bus_ck804_0, PCI_DEVFN(sbdn+ 0x0e,0)); if (dev) { bus_ck804_5 = pci_read_config8(dev, PCI_SECONDARY_BUS); - bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS); - bus_isa++; } else { printk(BIOS_DEBUG, "ERROR - could not find PCI 1:%02x.0, using defaults\n", sbdn+ 0x0e); @@ -142,14 +139,11 @@ void get_bus_conf(void) dev = dev_find_slot(bus_8131_0, PCI_DEVFN(sbdn3+1,0)); if (dev) { bus_8131_2 = pci_read_config8(dev, PCI_SECONDARY_BUS); - bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS); - bus_isa++; } else { printk(BIOS_DEBUG, "ERROR - could not find PCI %02x:02.0, using defaults\n", bus_8131_0); bus_8131_2 = bus_8131_1+1; - bus_isa = bus_8131_1+2; } if(sysconf.pci1234[2] & 1) { diff --git a/src/mainboard/tyan/s2891/irq_tables.c b/src/mainboard/tyan/s2891/irq_tables.c index cd40c999f7..d584dbb7a7 100644 --- a/src/mainboard/tyan/s2891/irq_tables.c +++ b/src/mainboard/tyan/s2891/irq_tables.c @@ -30,7 +30,6 @@ static void write_pirq_info(struct irq_info *pirq_info, uint8_t bus, uint8_t dev pirq_info->rfu = rfu; } -extern unsigned char bus_isa; extern unsigned char bus_ck804_0; //1 extern unsigned char bus_ck804_1; //2 extern unsigned char bus_ck804_2; //3 diff --git a/src/mainboard/tyan/s2891/mptable.c b/src/mainboard/tyan/s2891/mptable.c index b7dd77ac26..56635e5340 100644 --- a/src/mainboard/tyan/s2891/mptable.c +++ b/src/mainboard/tyan/s2891/mptable.c @@ -5,7 +5,6 @@ #include <stdint.h> #include <cpu/amd/amdk8_sysconf.h> -extern unsigned char bus_isa; extern unsigned char bus_ck804_0; //1 extern unsigned char bus_ck804_1; //2 extern unsigned char bus_ck804_2; //3 @@ -25,8 +24,7 @@ static void *smp_write_config_table(void *v) { struct mp_config_table *mc; unsigned sbdn; - unsigned char bus_num; - int i; + int i, bus_isa; mc = (void *)(((char *)v) + SMP_FLOATING_TABLE_LEN); @@ -37,12 +35,7 @@ static void *smp_write_config_table(void *v) get_bus_conf(); sbdn = sysconf.sbdn; -/*Bus: Bus ID Type*/ - /* define bus and isa numbers */ - for(bus_num = 0; bus_num < bus_isa; bus_num++) { - smp_write_bus(mc, bus_num, "PCI "); - } - smp_write_bus(mc, bus_isa, "ISA "); + mptable_write_buses(mc, NULL, &bus_isa); /*I/O APICs: APIC ID Version State Address*/ { diff --git a/src/mainboard/tyan/s2892/get_bus_conf.c b/src/mainboard/tyan/s2892/get_bus_conf.c index cadf9d953f..3a45cfa158 100644 --- a/src/mainboard/tyan/s2892/get_bus_conf.c +++ b/src/mainboard/tyan/s2892/get_bus_conf.c @@ -12,7 +12,6 @@ // Global variables for MB layouts and these will be shared by irqtable mptable and acpi_tables //busnum is default - unsigned char bus_isa; unsigned char bus_ck804_0; //1 unsigned char bus_ck804_1; //2 unsigned char bus_ck804_2; //3 @@ -114,8 +113,6 @@ void get_bus_conf(void) dev = dev_find_slot(bus_ck804_0, PCI_DEVFN(sbdn+ 0x0e,0)); if (dev) { bus_ck804_5 = pci_read_config8(dev, PCI_SECONDARY_BUS); - bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS); - bus_isa++; } else { printk(BIOS_DEBUG, "ERROR - could not find PCI 1:%02x.0, using defaults\n", sbdn+ 0x0e); @@ -139,14 +136,11 @@ void get_bus_conf(void) dev = dev_find_slot(bus_8131_0, PCI_DEVFN(sbdn3+1,0)); if (dev) { bus_8131_2 = pci_read_config8(dev, PCI_SECONDARY_BUS); - bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS); - bus_isa++; } else { printk(BIOS_DEBUG, "ERROR - could not find PCI %02x:02.0, using defaults\n", bus_8131_0); bus_8131_2 = bus_8131_1+1; - bus_isa = bus_8131_1+2; } diff --git a/src/mainboard/tyan/s2892/irq_tables.c b/src/mainboard/tyan/s2892/irq_tables.c index dbe15efded..157ed12864 100644 --- a/src/mainboard/tyan/s2892/irq_tables.c +++ b/src/mainboard/tyan/s2892/irq_tables.c @@ -30,7 +30,6 @@ static void write_pirq_info(struct irq_info *pirq_info, uint8_t bus, uint8_t dev pirq_info->rfu = rfu; } -extern unsigned char bus_isa; extern unsigned char bus_ck804_0; //1 extern unsigned char bus_ck804_1; //2 extern unsigned char bus_ck804_2; //3 diff --git a/src/mainboard/tyan/s2892/mptable.c b/src/mainboard/tyan/s2892/mptable.c index 151659018d..79064ed40d 100644 --- a/src/mainboard/tyan/s2892/mptable.c +++ b/src/mainboard/tyan/s2892/mptable.c @@ -5,7 +5,6 @@ #include <stdint.h> #include <cpu/amd/amdk8_sysconf.h> -extern unsigned char bus_isa; extern unsigned char bus_ck804_0; //1 extern unsigned char bus_ck804_1; //2 extern unsigned char bus_ck804_2; //3 @@ -25,8 +24,7 @@ static void *smp_write_config_table(void *v) { struct mp_config_table *mc; unsigned sbdn; - unsigned char bus_num; - int i; + int i, bus_isa; mc = (void *)(((char *)v) + SMP_FLOATING_TABLE_LEN); @@ -37,12 +35,7 @@ static void *smp_write_config_table(void *v) get_bus_conf(); sbdn = sysconf.sbdn; -/*Bus: Bus ID Type*/ - /* define bus and isa numbers */ - for(bus_num = 0; bus_num < bus_isa; bus_num++) { - smp_write_bus(mc, bus_num, "PCI "); - } - smp_write_bus(mc, bus_isa, "ISA "); + mptable_write_buses(mc, NULL, &bus_isa); /*I/O APICs: APIC ID Version State Address*/ { diff --git a/src/mainboard/tyan/s2895/get_bus_conf.c b/src/mainboard/tyan/s2895/get_bus_conf.c index ef5963e39e..9de16291fd 100644 --- a/src/mainboard/tyan/s2895/get_bus_conf.c +++ b/src/mainboard/tyan/s2895/get_bus_conf.c @@ -12,7 +12,6 @@ // Global variables for MB layouts and these will be shared by irqtable mptable and acpi_tables //busnum is default - unsigned char bus_isa; unsigned char bus_ck804_0; //1 unsigned char bus_ck804_1; //2 unsigned char bus_ck804_2; //3 @@ -134,8 +133,6 @@ void get_bus_conf(void) dev = dev_find_slot(bus_8131_0, PCI_DEVFN(sbdn3,0)); if (dev) { bus_8131_2 = pci_read_config8(dev, PCI_SECONDARY_BUS); - bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS); - bus_isa++; } else { printk(BIOS_DEBUG, "ERROR - could not find PCI %02x:02.0, using defaults\n", bus_8131_0); @@ -151,13 +148,10 @@ void get_bus_conf(void) dev = dev_find_slot(bus_ck804b_0, PCI_DEVFN(sbdnb + 0x0e,0)); if (dev) { bus_ck804b_5 = pci_read_config8(dev, PCI_SECONDARY_BUS); - bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS); - bus_isa++; } else { printk(BIOS_DEBUG, "ERROR - could not find PCI %02x:%02x.0, using defaults\n", bus_ck804b_0,sbdnb+0x0e); bus_ck804b_5 = bus_ck804b_4+1; - bus_isa = bus_ck804b_5+1; } } diff --git a/src/mainboard/tyan/s2895/mptable.c b/src/mainboard/tyan/s2895/mptable.c index 71c7f9045b..d62a087280 100644 --- a/src/mainboard/tyan/s2895/mptable.c +++ b/src/mainboard/tyan/s2895/mptable.c @@ -5,7 +5,6 @@ #include <stdint.h> #include <cpu/amd/amdk8_sysconf.h> -extern unsigned char bus_isa; extern unsigned char bus_ck804_0; //1 extern unsigned char bus_ck804_1; //2 extern unsigned char bus_ck804_2; //3 @@ -33,8 +32,7 @@ static void *smp_write_config_table(void *v) { struct mp_config_table *mc; unsigned sbdn; - unsigned char bus_num; - int i; + int i, bus_isa; mc = (void *)(((char *)v) + SMP_FLOATING_TABLE_LEN); @@ -45,12 +43,7 @@ static void *smp_write_config_table(void *v) get_bus_conf(); sbdn = sysconf.sbdn; -/*Bus: Bus ID Type*/ - /* define bus and isa numbers */ - for(bus_num = 0; bus_num < bus_isa; bus_num++) { - smp_write_bus(mc, bus_num, "PCI "); - } - smp_write_bus(mc, bus_isa, "ISA "); + mptable_write_buses(mc, NULL, &bus_isa); /*I/O APICs: APIC ID Version State Address*/ { diff --git a/src/mainboard/tyan/s2912/get_bus_conf.c b/src/mainboard/tyan/s2912/get_bus_conf.c index 9ff59d24ab..d16f4e6d40 100644 --- a/src/mainboard/tyan/s2912/get_bus_conf.c +++ b/src/mainboard/tyan/s2912/get_bus_conf.c @@ -71,7 +71,7 @@ void get_bus_conf(void) struct mb_sysconf_t *m; device_t dev; - int i, j; + int i; if(get_bus_conf_done==1) return; //do it only once @@ -92,8 +92,6 @@ void get_bus_conf(void) sysconf.sbdn = (sysconf.hcdn[0] & 0xff); // first byte of first chain - m->bus_type[0] = 1; //pci - m->bus_mcp55[0] = (sysconf.pci1234[0] >> 16) & 0xff; /* MCP55 */ @@ -113,18 +111,6 @@ void get_bus_conf(void) } } - for(i=0; i< sysconf.hc_possible_num; i++) { - if(!(sysconf.pci1234[i] & 0x1) ) continue; - - unsigned busn = (sysconf.pci1234[i] >> 16) & 0xff; - unsigned busn_max = (sysconf.pci1234[i] >> 24) & 0xff; - for (j = busn; j <= busn_max; j++) - m->bus_type[j] = 1; - if(m->bus_isa <= busn_max) - m->bus_isa = busn_max + 1; - printk(BIOS_DEBUG, "i=%d bus range: [%x, %x] bus_isa=%x\n",i, busn, busn_max, m->bus_isa); - } - /*I/O APICs: APIC ID Version State Address*/ #if CONFIG_LOGICAL_CPUS==1 apicid_base = get_apicid_base(1); diff --git a/src/mainboard/tyan/s2912/mb_sysconf.h b/src/mainboard/tyan/s2912/mb_sysconf.h index a2e6fc7ade..d27ee3f69e 100644 --- a/src/mainboard/tyan/s2912/mb_sysconf.h +++ b/src/mainboard/tyan/s2912/mb_sysconf.h @@ -23,11 +23,8 @@ #define MB_SYSCONF_H struct mb_sysconf_t { - unsigned char bus_isa; unsigned char bus_mcp55[8]; //1 unsigned apicid_mcp55; - unsigned bus_type[256]; - }; #endif diff --git a/src/mainboard/tyan/s2912/mptable.c b/src/mainboard/tyan/s2912/mptable.c index 927d6742b7..d6fe934500 100644 --- a/src/mainboard/tyan/s2912/mptable.c +++ b/src/mainboard/tyan/s2912/mptable.c @@ -32,7 +32,7 @@ static void *smp_write_config_table(void *v) struct mp_config_table *mc; struct mb_sysconf_t *m; unsigned sbdn; - int i,j; + int i, j, bus_isa; mc = (void *)(((char *)v) + SMP_FLOATING_TABLE_LEN); @@ -44,13 +44,7 @@ static void *smp_write_config_table(void *v) sbdn = sysconf.sbdn; m = sysconf.mb; -/*Bus: Bus ID Type*/ - /* define bus and isa numbers */ - for(j= 0; j < 256 ; j++) { - if(m->bus_type[j]) - smp_write_bus(mc, j, "PCI "); - } - smp_write_bus(mc, m->bus_isa, "ISA "); + mptable_write_buses(mc, NULL, &bus_isa); /*I/O APICs: APIC ID Version State Address*/ { @@ -79,7 +73,7 @@ static void *smp_write_config_table(void *v) } - mptable_add_isa_interrupts(mc, m->bus_isa, m->apicid_mcp55, 0); + mptable_add_isa_interrupts(mc, bus_isa, m->apicid_mcp55, 0); /*I/O Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN# */ smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_mcp55[0], ((sbdn+1)<<2)|1, m->apicid_mcp55, 0xa); @@ -108,8 +102,8 @@ static void *smp_write_config_table(void *v) } /*Local Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN#*/ - smp_write_lintsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x0, MP_APIC_ALL, 0x0); - smp_write_lintsrc(mc, mp_NMI, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x0, MP_APIC_ALL, 0x1); + smp_write_lintsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, MP_APIC_ALL, 0x0); + smp_write_lintsrc(mc, mp_NMI, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, MP_APIC_ALL, 0x1); /* There is no extension information... */ /* Compute the checksums */ diff --git a/src/mainboard/tyan/s2912_fam10/get_bus_conf.c b/src/mainboard/tyan/s2912_fam10/get_bus_conf.c index 5a82b4ce69..da0ed54653 100644 --- a/src/mainboard/tyan/s2912_fam10/get_bus_conf.c +++ b/src/mainboard/tyan/s2912_fam10/get_bus_conf.c @@ -72,7 +72,7 @@ void get_bus_conf(void) struct mb_sysconf_t *m; device_t dev; - int i, j; + int i; if(get_bus_conf_done==1) return; //do it only once @@ -91,7 +91,6 @@ void get_bus_conf(void) get_pci1234(); - m->bus_type[0] = 1; //pci sysconf.sbdn = (sysconf.hcdn[0] & 0xff); // first byte of first chain m->bus_mcp55[0] = (sysconf.pci1234[0] >> 12) & 0xff; @@ -114,18 +113,6 @@ void get_bus_conf(void) } } - for(i=0; i< sysconf.hc_possible_num; i++) { - if(!(sysconf.pci1234[i] & 0x1) ) continue; - - unsigned busn = (sysconf.pci1234[i] >> 12) & 0xff; - unsigned busn_max = (sysconf.pci1234[i] >> 20) & 0xff; - for (j = busn; j <= busn_max; j++) - m->bus_type[j] = 1; - if(m->bus_isa <= busn_max) - m->bus_isa = busn_max + 1; - printk(BIOS_DEBUG, "i=%d bus range: [%x, %x] bus_isa=%x\n",i, busn, busn_max, m->bus_isa); - } - /*I/O APICs: APIC ID Version State Address*/ #if CONFIG_LOGICAL_CPUS==1 apicid_base = get_apicid_base(1); diff --git a/src/mainboard/tyan/s2912_fam10/mb_sysconf.h b/src/mainboard/tyan/s2912_fam10/mb_sysconf.h index a2e6fc7ade..d27ee3f69e 100644 --- a/src/mainboard/tyan/s2912_fam10/mb_sysconf.h +++ b/src/mainboard/tyan/s2912_fam10/mb_sysconf.h @@ -23,11 +23,8 @@ #define MB_SYSCONF_H struct mb_sysconf_t { - unsigned char bus_isa; unsigned char bus_mcp55[8]; //1 unsigned apicid_mcp55; - unsigned bus_type[256]; - }; #endif diff --git a/src/mainboard/tyan/s2912_fam10/mptable.c b/src/mainboard/tyan/s2912_fam10/mptable.c index be0c9a3d9f..1bea664bb7 100644 --- a/src/mainboard/tyan/s2912_fam10/mptable.c +++ b/src/mainboard/tyan/s2912_fam10/mptable.c @@ -32,7 +32,7 @@ static void *smp_write_config_table(void *v) struct mp_config_table *mc; struct mb_sysconf_t *m; unsigned sbdn; - int i,j; + int i, j, bus_isa; mc = (void *)(((char *)v) + SMP_FLOATING_TABLE_LEN); @@ -44,13 +44,7 @@ static void *smp_write_config_table(void *v) sbdn = sysconf.sbdn; m = sysconf.mb; -/*Bus: Bus ID Type*/ - /* define bus and isa numbers */ - for(j= 0; j < 256 ; j++) { - if(m->bus_type[j]) - smp_write_bus(mc, j, "PCI "); - } - smp_write_bus(mc, m->bus_isa, "ISA "); + mptable_write_buses(mc, NULL, &bus_isa); /*I/O APICs: APIC ID Version State Address*/ { @@ -79,7 +73,7 @@ static void *smp_write_config_table(void *v) } - mptable_add_isa_interrupts(mc, m->bus_isa, m->apicid_mcp55, 0); + mptable_add_isa_interrupts(mc, bus_isa, m->apicid_mcp55, 0); /*I/O Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN# */ smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_mcp55[0], ((sbdn+1)<<2)|1, m->apicid_mcp55, 0xa); @@ -108,8 +102,8 @@ static void *smp_write_config_table(void *v) } /*Local Ints: Type Polarity Trigger Bus ID IRQ APIC ID PIN#*/ - smp_write_lintsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x0, MP_APIC_ALL, 0x0); - smp_write_lintsrc(mc, mp_NMI, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x0, MP_APIC_ALL, 0x1); + smp_write_lintsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, MP_APIC_ALL, 0x0); + smp_write_lintsrc(mc, mp_NMI, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, MP_APIC_ALL, 0x1); /* There is no extension information... */ /* Compute the checksums */ |