aboutsummaryrefslogtreecommitdiff
path: root/src/mainboard/nvidia
diff options
context:
space:
mode:
authorPatrick Georgi <patrick@georgi-clan.de>2010-11-21 14:41:07 +0000
committerPatrick Georgi <patrick.georgi@coresystems.de>2010-11-21 14:41:07 +0000
commit5244e1ba63e5f3ea12066734bfb0d864a8f1f11d (patch)
treee389268c9bb473c457df4e7ab1de60922e0c7adf /src/mainboard/nvidia
parent8cda9699d4a2fea8ed2c5e4a7e66e8e1e0f831df (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/nvidia')
-rw-r--r--src/mainboard/nvidia/l1_2pvv/get_bus_conf.c19
-rw-r--r--src/mainboard/nvidia/l1_2pvv/mb_sysconf.h4
-rw-r--r--src/mainboard/nvidia/l1_2pvv/mptable.c16
3 files changed, 6 insertions, 33 deletions
diff --git a/src/mainboard/nvidia/l1_2pvv/get_bus_conf.c b/src/mainboard/nvidia/l1_2pvv/get_bus_conf.c
index e5380d77b8..99f8431d86 100644
--- a/src/mainboard/nvidia/l1_2pvv/get_bus_conf.c
+++ b/src/mainboard/nvidia/l1_2pvv/get_bus_conf.c
@@ -95,7 +95,7 @@ void get_bus_conf(void)
unsigned apicid_base;
struct mb_sysconf_t *m;
- int i, j;
+ int i;
if (get_bus_conf_done)
return; //do it only once
@@ -119,25 +119,8 @@ void get_bus_conf(void)
m->sbdnb = (sysconf.hcdn[1] & 0xff); // first byte of second chain
- m->bus_type[0] = 1; //pci
-
m->bus_mcp55 = (sysconf.pci1234[0] >> 16) & 0xff;
- for (i = 0; i < sysconf.hc_possible_num; i++) {
- unsigned busn_min, busn_max;
-
- if (!(sysconf.pci1234[i] & 0x1))
- continue;
-
- busn_min = (sysconf.pci1234[i] >> 16) & 0xff;
- busn_max = (sysconf.pci1234[i] >> 24) & 0xff;
- for (j = busn_min; 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_min, busn_max, m->bus_isa);
- }
-
/* MCP55b */
for (i = 1; i < sysconf.hc_possible_num; i++) {
if (!(sysconf.pci1234[i] & 0x0f))
diff --git a/src/mainboard/nvidia/l1_2pvv/mb_sysconf.h b/src/mainboard/nvidia/l1_2pvv/mb_sysconf.h
index 763653fd32..09ee5df8cc 100644
--- a/src/mainboard/nvidia/l1_2pvv/mb_sysconf.h
+++ b/src/mainboard/nvidia/l1_2pvv/mb_sysconf.h
@@ -23,15 +23,11 @@
#define MB_SYSCONF_H
struct mb_sysconf_t {
- unsigned char bus_isa;
unsigned char bus_mcp55;
unsigned char bus_mcp55b;
unsigned apicid_mcp55;
unsigned apicid_mcp55b;
- unsigned bus_type[256];
-
unsigned sbdnb;
-
};
#endif
diff --git a/src/mainboard/nvidia/l1_2pvv/mptable.c b/src/mainboard/nvidia/l1_2pvv/mptable.c
index 988c7f496a..6f8476719f 100644
--- a/src/mainboard/nvidia/l1_2pvv/mptable.c
+++ b/src/mainboard/nvidia/l1_2pvv/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;
unsigned char apicpin[4];
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*/
{
@@ -104,7 +98,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, ((sbdn+1)<<2)|1, m->apicid_mcp55, 0xa); // 10
@@ -167,8 +161,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 */