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/msi | |
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/msi')
-rw-r--r-- | src/mainboard/msi/ms7135/get_bus_conf.c | 23 | ||||
-rw-r--r-- | src/mainboard/msi/ms7135/irq_tables.c | 1 | ||||
-rw-r--r-- | src/mainboard/msi/ms7260/get_bus_conf.c | 25 | ||||
-rw-r--r-- | src/mainboard/msi/ms7260/irq_tables.c | 3 | ||||
-rw-r--r-- | src/mainboard/msi/ms7260/mptable.c | 12 | ||||
-rw-r--r-- | src/mainboard/msi/ms9185/get_bus_conf.c | 11 | ||||
-rw-r--r-- | src/mainboard/msi/ms9185/mb_sysconf.h | 1 | ||||
-rw-r--r-- | src/mainboard/msi/ms9185/mptable.c | 22 | ||||
-rw-r--r-- | src/mainboard/msi/ms9282/get_bus_conf.c | 18 | ||||
-rw-r--r-- | src/mainboard/msi/ms9282/mb_sysconf.h | 3 | ||||
-rw-r--r-- | src/mainboard/msi/ms9282/mptable.c | 22 | ||||
-rw-r--r-- | src/mainboard/msi/ms9652_fam10/get_bus_conf.c | 15 | ||||
-rw-r--r-- | src/mainboard/msi/ms9652_fam10/mb_sysconf.h | 3 | ||||
-rw-r--r-- | src/mainboard/msi/ms9652_fam10/mptable.c | 16 |
14 files changed, 27 insertions, 148 deletions
diff --git a/src/mainboard/msi/ms7135/get_bus_conf.c b/src/mainboard/msi/ms7135/get_bus_conf.c index 6ccd97587d..cfcce2fa8b 100644 --- a/src/mainboard/msi/ms7135/get_bus_conf.c +++ b/src/mainboard/msi/ms7135/get_bus_conf.c @@ -38,7 +38,6 @@ * mptable and acpi_tables. */ /* busnum is default */ -unsigned char bus_isa; unsigned char bus_ck804[6]; unsigned apicid_ck804; @@ -49,9 +48,6 @@ unsigned pci1234x[] = { //Here you only need to set value in pci1234 for HT-IO unsigned hcdnx[] = { //HT Chain device num, actually it is unit id base of every ht device in chain, assume every chain only have 4 ht device at most 0x20202020, //ms7135 has only one ht-chain }; -unsigned bus_type[256]; - - static unsigned get_bus_conf_done = 0; @@ -61,7 +57,7 @@ void get_bus_conf(void) device_t dev; unsigned sbdn; - int i, j; + int i; if (get_bus_conf_done == 1) return; //do it only once @@ -84,16 +80,8 @@ void get_bus_conf(void) bus_ck804[i] = 0; } - for (i = 0; i < 256; i++) { - bus_type[i] = 0; - } - - bus_type[0] = 1; //pci - bus_ck804[0] = (sysconf.pci1234[0] >> 16) & 0xff; - bus_type[bus_ck804[0]] = 1; - /* CK804 */ int dn = -1; for (i = 1; i < 4; i++) { @@ -106,15 +94,6 @@ void get_bus_conf(void) dev = dev_find_slot(bus_ck804[0], PCI_DEVFN(sbdn + dn, 0)); if (dev) { bus_ck804[i] = pci_read_config8(dev, PCI_SECONDARY_BUS); - bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS); - bus_isa++; - for (j = bus_ck804[i]; j < bus_isa; j++) - bus_type[j] = 1; - } else { - printk - (BIOS_DEBUG, "ERROR - could not find PCI %02x:%02x.0, using defaults\n", - bus_ck804[0], sbdn + dn); - bus_isa = bus_ck804[i - 1] + 1; } } diff --git a/src/mainboard/msi/ms7135/irq_tables.c b/src/mainboard/msi/ms7135/irq_tables.c index e4a717ba72..81cc53c130 100644 --- a/src/mainboard/msi/ms7135/irq_tables.c +++ b/src/mainboard/msi/ms7135/irq_tables.c @@ -35,7 +35,6 @@ #include <arch/pirq_routing.h> #include <cpu/amd/amdk8_sysconf.h> -extern unsigned char bus_isa; extern unsigned char bus_ck804[6]; diff --git a/src/mainboard/msi/ms7260/get_bus_conf.c b/src/mainboard/msi/ms7260/get_bus_conf.c index 6f4e198785..fadc3fe703 100644 --- a/src/mainboard/msi/ms7260/get_bus_conf.c +++ b/src/mainboard/msi/ms7260/get_bus_conf.c @@ -32,7 +32,6 @@ /* Global variables for MB layouts (shared by irqtable/mptable/acpi_table). */ // busnum is default. -unsigned char bus_isa; unsigned char bus_mcp55[8]; // 1 unsigned apicid_mcp55; @@ -65,17 +64,13 @@ unsigned hcdnx[] = { // 0x20202020, }; -unsigned bus_type[256]; - - - static unsigned get_bus_conf_done = 0; void get_bus_conf(void) { unsigned int apicid_base, sbdn; device_t dev; - int i, j; + int i; if (get_bus_conf_done == 1) return; /* Do it only once. */ @@ -96,23 +91,14 @@ void get_bus_conf(void) for (i = 0; i < 8; i++) bus_mcp55[i] = 0; - for (i = 0; i < 256; i++) - bus_type[i] = 0; - - bus_type[0] = 1; /* PCI */ - bus_mcp55[0] = (sysconf.pci1234[0] >> 16) & 0xff; - bus_type[bus_mcp55[0]] = 1; - /* MCP55 */ dev = dev_find_slot(bus_mcp55[0], PCI_DEVFN(sbdn + 0x06, 0)); if (dev) { bus_mcp55[1] = pci_read_config8(dev, PCI_SECONDARY_BUS); bus_mcp55[2] = pci_read_config8(dev, PCI_SUBORDINATE_BUS); bus_mcp55[2]++; - for (j = bus_mcp55[1]; j < bus_mcp55[2]; j++) - bus_type[j] = 1; } else { printk (BIOS_DEBUG, "ERROR - could not find PCI 1:%02x.0, using defaults\n", @@ -127,15 +113,6 @@ void get_bus_conf(void) PCI_DEVFN(sbdn + 0x0a + i - 2, 0)); if (dev) { bus_mcp55[i] = pci_read_config8(dev, PCI_SECONDARY_BUS); - bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS); - bus_isa++; - for (j = bus_mcp55[i]; j < bus_isa; j++) - bus_type[j] = 1; - } else { - printk - (BIOS_DEBUG, "ERROR - could not find PCI %02x:%02x.0, using defaults\n", - bus_mcp55[0], sbdn + 0x0a + i - 2); - bus_isa = bus_mcp55[i - 1] + 1; } } diff --git a/src/mainboard/msi/ms7260/irq_tables.c b/src/mainboard/msi/ms7260/irq_tables.c index 345b0fac29..df471267be 100644 --- a/src/mainboard/msi/ms7260/irq_tables.c +++ b/src/mainboard/msi/ms7260/irq_tables.c @@ -46,11 +46,8 @@ static void write_pirq_info(struct irq_info *pirq_info, uint8_t bus, pirq_info->rfu = rfu; } -extern unsigned char bus_isa; extern unsigned char bus_mcp55[8]; // 1 - - unsigned long write_pirq_routing_table(unsigned long addr) { struct irq_routing_table *pirq; diff --git a/src/mainboard/msi/ms7260/mptable.c b/src/mainboard/msi/ms7260/mptable.c index 5184985ba4..2e365b332d 100644 --- a/src/mainboard/msi/ms7260/mptable.c +++ b/src/mainboard/msi/ms7260/mptable.c @@ -26,16 +26,14 @@ #include <stdint.h> #include <cpu/amd/amdk8_sysconf.h> -extern unsigned char bus_isa; extern unsigned char bus_mcp55[8]; // 1 extern unsigned apicid_mcp55; -extern unsigned bus_type[256]; static void *smp_write_config_table(void *v) { struct mp_config_table *mc; unsigned int sbdn; - int i, j; + int i, j, bus_isa; mc = (void *)(((char *)v) + SMP_FLOATING_TABLE_LEN); @@ -46,13 +44,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 (j = 0; j < 256; j++) { - if (bus_type[j]) - smp_write_bus(mc, j, "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/msi/ms9185/get_bus_conf.c b/src/mainboard/msi/ms9185/get_bus_conf.c index a94acdeb19..0e97de6ed4 100644 --- a/src/mainboard/msi/ms9185/get_bus_conf.c +++ b/src/mainboard/msi/ms9185/get_bus_conf.c @@ -105,11 +105,6 @@ void get_bus_conf(void) dev = dev_find_slot(m->bus_bcm5785_1, PCI_DEVFN(0xd,0)); if(dev) { m->bus_bcm5785_1_1 = pci_read_config8(dev, PCI_SECONDARY_BUS); -#if CONFIG_HT_CHAIN_END_UNITID_BASE >= CONFIG_HT_CHAIN_UNITID_BASE - m->bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS); - m->bus_isa++; - printk(BIOS_DEBUG, "bus_isa=%d\n",m->bus_isa); -#endif } } else { @@ -121,12 +116,6 @@ void get_bus_conf(void) dev = dev_find_slot(m->bus_bcm5780[0], PCI_DEVFN(m->sbdn2 + i - 1,0)); if(dev) { m->bus_bcm5780[i] = pci_read_config8(dev, PCI_SECONDARY_BUS); -#if CONFIG_HT_CHAIN_END_UNITID_BASE < CONFIG_HT_CHAIN_UNITID_BASE - m->bus_isa = pci_read_config8(dev, PCI_SUBORDINATE_BUS); - m->bus_isa++; - printk(BIOS_DEBUG, "bus_isa=%d\n",m->bus_isa); -#endif - } else { printk(BIOS_DEBUG, "ERROR - could not find PCI %02x:%02x.0, using defaults\n", m->bus_bcm5780[0], m->sbdn2+i-1); diff --git a/src/mainboard/msi/ms9185/mb_sysconf.h b/src/mainboard/msi/ms9185/mb_sysconf.h index 401bcd704f..88db3855fc 100644 --- a/src/mainboard/msi/ms9185/mb_sysconf.h +++ b/src/mainboard/msi/ms9185/mb_sysconf.h @@ -25,7 +25,6 @@ #define MB_SYSCONF_H struct mb_sysconf_t { - unsigned char bus_isa; unsigned char bus_bcm5780[7]; unsigned char bus_bcm5785_0; unsigned char bus_bcm5785_1; diff --git a/src/mainboard/msi/ms9185/mptable.c b/src/mainboard/msi/ms9185/mptable.c index bd45184618..c43816b292 100644 --- a/src/mainboard/msi/ms9185/mptable.c +++ b/src/mainboard/msi/ms9185/mptable.c @@ -40,9 +40,8 @@ static void *smp_write_config_table(void *v) { struct mp_config_table *mc; - unsigned char bus_num; - int i; - struct mb_sysconf_t *m; + int i, bus_isa; + struct mb_sysconf_t *m; mc = (void *)(((char *)v) + SMP_FLOATING_TABLE_LEN); @@ -50,15 +49,10 @@ static void *smp_write_config_table(void *v) smp_write_processors(mc); - get_bus_conf(); - m = sysconf.mb; + get_bus_conf(); + m = sysconf.mb; -/*Bus: Bus ID Type*/ - /* define bus and isa numbers */ - for(bus_num = 0; bus_num < m->bus_isa; bus_num++) { - smp_write_bus(mc, bus_num, "PCI "); - } - smp_write_bus(mc, m->bus_isa, "ISA "); + mptable_write_buses(mc, NULL, &bus_isa); /*I/O APICs: APIC ID Version State Address*/ { @@ -76,7 +70,7 @@ static void *smp_write_config_table(void *v) } - mptable_add_isa_interrupts(mc, m->bus_isa, m->apicid_bcm5785[0], 0); + mptable_add_isa_interrupts(mc, bus_isa, m->apicid_bcm5785[0], 0); //IDE outb(0x02, 0xc00); outb(0x0e, 0xc01); @@ -152,8 +146,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/msi/ms9282/get_bus_conf.c b/src/mainboard/msi/ms9282/get_bus_conf.c index 5b4ee487c1..833b29b711 100644 --- a/src/mainboard/msi/ms9282/get_bus_conf.c +++ b/src/mainboard/msi/ms9282/get_bus_conf.c @@ -75,7 +75,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 @@ -96,8 +96,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 */ @@ -119,20 +117,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/msi/ms9282/mb_sysconf.h b/src/mainboard/msi/ms9282/mb_sysconf.h index 71770203ec..6d0ee75d3e 100644 --- a/src/mainboard/msi/ms9282/mb_sysconf.h +++ b/src/mainboard/msi/ms9282/mb_sysconf.h @@ -26,11 +26,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/msi/ms9282/mptable.c b/src/mainboard/msi/ms9282/mptable.c index d800932e7f..391101276f 100644 --- a/src/mainboard/msi/ms9282/mptable.c +++ b/src/mainboard/msi/ms9282/mptable.c @@ -36,7 +36,7 @@ static void *smp_write_config_table(void *v) struct mb_sysconf_t *m; unsigned sbdn; - int i,j; + int i, j, bus_isa; mc = (void *)(((char *)v) + SMP_FLOATING_TABLE_LEN); @@ -44,17 +44,11 @@ static void *smp_write_config_table(void *v) smp_write_processors(mc); - get_bus_conf(); - sbdn = sysconf.sbdn; - m = sysconf.mb; + get_bus_conf(); + 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*/ { @@ -83,7 +77,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); //SMBUS 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); @@ -121,8 +115,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/msi/ms9652_fam10/get_bus_conf.c b/src/mainboard/msi/ms9652_fam10/get_bus_conf.c index c5f9083392..746abc88b2 100644 --- a/src/mainboard/msi/ms9652_fam10/get_bus_conf.c +++ b/src/mainboard/msi/ms9652_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; printk(BIOS_SPEW, "get_bus_conf()\n"); @@ -93,7 +93,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; @@ -116,18 +115,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/msi/ms9652_fam10/mb_sysconf.h b/src/mainboard/msi/ms9652_fam10/mb_sysconf.h index a2e6fc7ade..d27ee3f69e 100644 --- a/src/mainboard/msi/ms9652_fam10/mb_sysconf.h +++ b/src/mainboard/msi/ms9652_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/msi/ms9652_fam10/mptable.c b/src/mainboard/msi/ms9652_fam10/mptable.c index bb64bc10bd..370c6dbc56 100644 --- a/src/mainboard/msi/ms9652_fam10/mptable.c +++ b/src/mainboard/msi/ms9652_fam10/mptable.c @@ -33,7 +33,7 @@ static void *smp_write_config_table(void *v) struct mb_sysconf_t *m; unsigned sbdn; - int i,j; + int i, j, bus_isa; mc = (void *)(((char *)v) + SMP_FLOATING_TABLE_LEN); @@ -45,13 +45,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*/ { @@ -80,7 +74,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); 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); @@ -110,8 +104,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 */ |