Move generation of mptable entries for ISA to generic code.
Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de> Acked-by: Myles Watson <mylesgw@gmail.com> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5575 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
		| @@ -304,3 +304,24 @@ void smp_write_compatibility_address_space(struct mp_config_table *mc, | |||||||
| 	smp_add_mpe_entry(mc, (mpe_t)mpe); | 	smp_add_mpe_entry(mc, (mpe_t)mpe); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | void mptable_add_isa_interrupts(struct mp_config_table *mc, unsigned long bus_isa, unsigned long apicid, int external_int2) | ||||||
|  | { | ||||||
|  | /*I/O Ints:                   Type         Trigger            Polarity         Bus ID   IRQ  APIC ID   PIN# */ | ||||||
|  | 	smp_write_intsrc(mc, external_int2?mp_INT:mp_ExtINT, | ||||||
|  | 	                             MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x0, apicid, 0x0); | ||||||
|  | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x1, apicid, 0x1); | ||||||
|  | 	smp_write_intsrc(mc, external_int2?mp_ExtINT:mp_INT, | ||||||
|  | 	                             MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x0, apicid, 0x2); | ||||||
|  | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x3, apicid, 0x3); | ||||||
|  | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x4, apicid, 0x4); | ||||||
|  | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x6, apicid, 0x6); | ||||||
|  | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x7, apicid, 0x7); | ||||||
|  | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x8, apicid, 0x8); | ||||||
|  | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x9, apicid, 0x9); | ||||||
|  | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xa, apicid, 0xa); | ||||||
|  | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xb, apicid, 0xb); | ||||||
|  | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xc, apicid, 0xc); | ||||||
|  | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xd, apicid, 0xd); | ||||||
|  | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xe, apicid, 0xe); | ||||||
|  | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xf, apicid, 0xf); | ||||||
|  | } | ||||||
|   | |||||||
| @@ -273,5 +273,7 @@ void *smp_write_floating_table_physaddr(unsigned long addr, | |||||||
| 		unsigned long mpf_physptr); | 		unsigned long mpf_physptr); | ||||||
| unsigned long write_smp_table(unsigned long addr); | unsigned long write_smp_table(unsigned long addr); | ||||||
|  |  | ||||||
|  | void mptable_add_isa_interrupts(struct mp_config_table *mc, unsigned long bus_isa, unsigned long apicid, int external); | ||||||
|  |  | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
|   | |||||||
| @@ -121,23 +121,7 @@ static void *smp_write_config_table(void *v) | |||||||
| #define IO_LOCAL_INT(type, intr, apicid, pin) \ | #define IO_LOCAL_INT(type, intr, apicid, pin) \ | ||||||
| 	smp_write_intsrc(mc, (type), MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, bus_isa, (intr), (apicid), (pin)); | 	smp_write_intsrc(mc, (type), MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, bus_isa, (intr), (apicid), (pin)); | ||||||
|  |  | ||||||
| 	IO_LOCAL_INT(mp_ExtINT, 0x0, apicid_sb600, 0x0); | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_sb600, 0); | ||||||
|  |  | ||||||
| 	/* ISA ints are edge-triggered, and usually originate from the ISA bus, |  | ||||||
| 	 * or its remainings. |  | ||||||
| 	 */ |  | ||||||
| #define ISA_INT(intr, pin) \ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, (intr), apicid_sb600, (pin)) |  | ||||||
|  |  | ||||||
| 	ISA_INT(0x1, 0x1); |  | ||||||
| 	ISA_INT(0x0, 0x2); |  | ||||||
| 	ISA_INT(0x3, 0x3); |  | ||||||
| 	ISA_INT(0x4, 0x4); |  | ||||||
| 	ISA_INT(0x6, 0x6); |  | ||||||
| 	ISA_INT(0x7, 0x7); |  | ||||||
| 	ISA_INT(0xc, 0xc); |  | ||||||
| 	ISA_INT(0xd, 0xd); |  | ||||||
| 	ISA_INT(0xe, 0xe); |  | ||||||
|  |  | ||||||
| 	/* PCI interrupts are level triggered, and are | 	/* PCI interrupts are level triggered, and are | ||||||
| 	 * associated with a specific bus/device/function tuple. | 	 * associated with a specific bus/device/function tuple. | ||||||
|   | |||||||
| @@ -122,23 +122,7 @@ static void *smp_write_config_table(void *v) | |||||||
| #define IO_LOCAL_INT(type, intr, apicid, pin) \ | #define IO_LOCAL_INT(type, intr, apicid, pin) \ | ||||||
| 	smp_write_intsrc(mc, (type), MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, bus_isa, (intr), (apicid), (pin)); | 	smp_write_intsrc(mc, (type), MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, bus_isa, (intr), (apicid), (pin)); | ||||||
|  |  | ||||||
| 	IO_LOCAL_INT(mp_ExtINT, 0x0, apicid_sb700, 0x0); | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_sb700, 0); | ||||||
|  |  | ||||||
| 	/* ISA ints are edge-triggered, and usually originate from the ISA bus, |  | ||||||
| 	 * or its remainings. |  | ||||||
| 	 */ |  | ||||||
| #define ISA_INT(intr, pin) \ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, (intr), apicid_sb700, (pin)) |  | ||||||
|  |  | ||||||
| 	ISA_INT(0x1, 0x1); |  | ||||||
| 	ISA_INT(0x0, 0x2); |  | ||||||
| 	ISA_INT(0x3, 0x3); |  | ||||||
| 	ISA_INT(0x4, 0x4); |  | ||||||
| 	ISA_INT(0x6, 0x6); |  | ||||||
| 	ISA_INT(0x7, 0x7); |  | ||||||
| 	ISA_INT(0xc, 0xc); |  | ||||||
| 	ISA_INT(0xd, 0xd); |  | ||||||
| 	ISA_INT(0xe, 0xe); |  | ||||||
|  |  | ||||||
| 	/* PCI interrupts are level triggered, and are | 	/* PCI interrupts are level triggered, and are | ||||||
| 	 * associated with a specific bus/device/function tuple. | 	 * associated with a specific bus/device/function tuple. | ||||||
|   | |||||||
| @@ -122,23 +122,7 @@ static void *smp_write_config_table(void *v) | |||||||
| #define IO_LOCAL_INT(type, intr, apicid, pin) \ | #define IO_LOCAL_INT(type, intr, apicid, pin) \ | ||||||
| 	smp_write_intsrc(mc, (type), MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, bus_isa, (intr), (apicid), (pin)); | 	smp_write_intsrc(mc, (type), MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, bus_isa, (intr), (apicid), (pin)); | ||||||
|  |  | ||||||
| 	IO_LOCAL_INT(mp_ExtINT, 0x0, apicid_sb700, 0x0); | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_sb700, 0); | ||||||
|  |  | ||||||
| 	/* ISA ints are edge-triggered, and usually originate from the ISA bus, |  | ||||||
| 	 * or its remainings. |  | ||||||
| 	 */ |  | ||||||
| #define ISA_INT(intr, pin) \ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, (intr), apicid_sb700, (pin)) |  | ||||||
|  |  | ||||||
| 	ISA_INT(0x1, 0x1); |  | ||||||
| 	ISA_INT(0x0, 0x2); |  | ||||||
| 	ISA_INT(0x3, 0x3); |  | ||||||
| 	ISA_INT(0x4, 0x4); |  | ||||||
| 	ISA_INT(0x6, 0x6); |  | ||||||
| 	ISA_INT(0x7, 0x7); |  | ||||||
| 	ISA_INT(0xc, 0xc); |  | ||||||
| 	ISA_INT(0xd, 0xd); |  | ||||||
| 	ISA_INT(0xe, 0xe); |  | ||||||
|  |  | ||||||
| 	/* PCI interrupts are level triggered, and are | 	/* PCI interrupts are level triggered, and are | ||||||
| 	 * associated with a specific bus/device/function tuple. | 	 * associated with a specific bus/device/function tuple. | ||||||
|   | |||||||
| @@ -121,23 +121,7 @@ static void *smp_write_config_table(void *v) | |||||||
| #define IO_LOCAL_INT(type, intr, apicid, pin) \ | #define IO_LOCAL_INT(type, intr, apicid, pin) \ | ||||||
| 	smp_write_intsrc(mc, (type), MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, bus_isa, (intr), (apicid), (pin)); | 	smp_write_intsrc(mc, (type), MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, bus_isa, (intr), (apicid), (pin)); | ||||||
|  |  | ||||||
| 	IO_LOCAL_INT(mp_ExtINT, 0x0, apicid_sb600, 0x0); | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_sb600, 0); | ||||||
|  |  | ||||||
| 	/* ISA ints are edge-triggered, and usually originate from the ISA bus, |  | ||||||
| 	 * or its remainings. |  | ||||||
| 	 */ |  | ||||||
| #define ISA_INT(intr, pin) \ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, (intr), apicid_sb600, (pin)) |  | ||||||
|  |  | ||||||
| 	ISA_INT(0x1, 0x1); |  | ||||||
| 	ISA_INT(0x0, 0x2); |  | ||||||
| 	ISA_INT(0x3, 0x3); |  | ||||||
| 	ISA_INT(0x4, 0x4); |  | ||||||
| 	ISA_INT(0x6, 0x6); |  | ||||||
| 	ISA_INT(0x7, 0x7); |  | ||||||
| 	ISA_INT(0xc, 0xc); |  | ||||||
| 	ISA_INT(0xd, 0xd); |  | ||||||
| 	ISA_INT(0xe, 0xe); |  | ||||||
|  |  | ||||||
| 	/* PCI interrupts are level triggered, and are | 	/* PCI interrupts are level triggered, and are | ||||||
| 	 * associated with a specific bus/device/function tuple. | 	 * associated with a specific bus/device/function tuple. | ||||||
|   | |||||||
| @@ -102,21 +102,9 @@ static void *smp_write_config_table(void *v) | |||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	mptable_add_isa_interrupts(mc, m->bus_isa, m->apicid_8111, 0); | ||||||
|  |  | ||||||
| /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# */ | /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# */ | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x0, m->apicid_8111, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x1, m->apicid_8111, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x0, m->apicid_8111, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x3, m->apicid_8111, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x4, m->apicid_8111, 0x4); |  | ||||||
|   	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x5, m->apicid_8111, 0x5); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x6, m->apicid_8111, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x7, m->apicid_8111, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x8, m->apicid_8111, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x9, m->apicid_8111, 0x9); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xc, m->apicid_8111, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xd, m->apicid_8111, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xe, m->apicid_8111, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xf, m->apicid_8111, 0xf); |  | ||||||
| //??? What | //??? What | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_8111_0, ((sysconf.sbdn+1)<<2)|3, m->apicid_8111, 0x13); |         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_8111_0, ((sysconf.sbdn+1)<<2)|3, m->apicid_8111, 0x13); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -122,21 +122,9 @@ static void *smp_write_config_table(void *v) | |||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	mptable_add_isa_interrupts(mc, m->bus_isa, m->apicid_8111, 0); | ||||||
|  |  | ||||||
| 	/* I/O Ints:	Type	Polarity	Trigger		Bus ID		IRQ	APIC ID	PIN#*/ | 	/* I/O Ints:	Type	Polarity	Trigger		Bus ID		IRQ	APIC ID	PIN#*/ | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x0, m->apicid_8111, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,	m->bus_isa, 0x1, m->apicid_8111, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,	m->bus_isa, 0x0, m->apicid_8111, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,	m->bus_isa, 0x3, m->apicid_8111, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,	m->bus_isa, 0x4, m->apicid_8111, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,	m->bus_isa, 0x5, m->apicid_8111, 0x5); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,	m->bus_isa, 0x6, m->apicid_8111, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,	m->bus_isa, 0x7, m->apicid_8111, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,	m->bus_isa, 0x8, m->apicid_8111, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,	m->bus_isa, 0x9, m->apicid_8111, 0x9); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,	m->bus_isa, 0xc, m->apicid_8111, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,	m->bus_isa, 0xd, m->apicid_8111, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,	m->bus_isa, 0xe, m->apicid_8111, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,	m->bus_isa, 0xf, m->apicid_8111, 0xf); |  | ||||||
| //??? What | //??? What | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_8111_0, ((sysconf.sbdn+1)<<2)|3, m->apicid_8111, 0x13); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_8111_0, ((sysconf.sbdn+1)<<2)|3, m->apicid_8111, 0x13); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -122,23 +122,7 @@ static void *smp_write_config_table(void *v) | |||||||
| #define IO_LOCAL_INT(type, intr, apicid, pin) \ | #define IO_LOCAL_INT(type, intr, apicid, pin) \ | ||||||
| 	smp_write_intsrc(mc, (type), MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, bus_isa, (intr), (apicid), (pin)); | 	smp_write_intsrc(mc, (type), MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, bus_isa, (intr), (apicid), (pin)); | ||||||
|  |  | ||||||
| 	IO_LOCAL_INT(mp_ExtINT, 0x0, apicid_sb700, 0x0); | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_sb700, 0); | ||||||
|  |  | ||||||
| 	/* ISA ints are edge-triggered, and usually originate from the ISA bus, |  | ||||||
| 	 * or its remainings. |  | ||||||
| 	 */ |  | ||||||
| #define ISA_INT(intr, pin) \ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, (intr), apicid_sb700, (pin)) |  | ||||||
|  |  | ||||||
| 	ISA_INT(0x1, 0x1); |  | ||||||
| 	ISA_INT(0x0, 0x2); |  | ||||||
| 	ISA_INT(0x3, 0x3); |  | ||||||
| 	ISA_INT(0x4, 0x4); |  | ||||||
| 	ISA_INT(0x6, 0x6); |  | ||||||
| 	ISA_INT(0x7, 0x7); |  | ||||||
| 	ISA_INT(0xc, 0xc); |  | ||||||
| 	ISA_INT(0xd, 0xd); |  | ||||||
| 	ISA_INT(0xe, 0xe); |  | ||||||
|  |  | ||||||
| 	/* PCI interrupts are level triggered, and are | 	/* PCI interrupts are level triggered, and are | ||||||
| 	 * associated with a specific bus/device/function tuple. | 	 * associated with a specific bus/device/function tuple. | ||||||
|   | |||||||
| @@ -223,39 +223,7 @@ static void *smp_write_config_table(void *v) | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/* ISA backward compatibility interrupts  */ | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_8111, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x00, apicid_8111, 0x00); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x01, apicid_8111, 0x01); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x00, apicid_8111, 0x02); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x03, apicid_8111, 0x03); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x04, apicid_8111, 0x04); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x05, apicid_8111, 0x05); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x06, apicid_8111, 0x06); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x07, apicid_8111, 0x07); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x08, apicid_8111, 0x08); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x09, apicid_8111, 0x09); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0a, apicid_8111, 0x0a); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0b, apicid_8111, 0x0b); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0c, apicid_8111, 0x0c); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0d, apicid_8111, 0x0d); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0e, apicid_8111, 0x0e); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0f, apicid_8111, 0x0f); |  | ||||||
|  |  | ||||||
| 	/* Standard local interrupt assignments */ | 	/* Standard local interrupt assignments */ | ||||||
| 	smp_write_lintsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, | 	smp_write_lintsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, | ||||||
|   | |||||||
| @@ -118,27 +118,10 @@ static void *smp_write_config_table(void *v) | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/* I/O Ints:    Type    Polarity    Trigger     Bus ID   IRQ    APIC ID PIN# */ |  | ||||||
| #define IO_LOCAL_INT(type, intr, apicid, pin) \ | #define IO_LOCAL_INT(type, intr, apicid, pin) \ | ||||||
| 	smp_write_intsrc(mc, (type), MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, bus_isa, (intr), (apicid), (pin)); | 	smp_write_intsrc(mc, (type), MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, bus_isa, (intr), (apicid), (pin)); | ||||||
|  |  | ||||||
| 	IO_LOCAL_INT(mp_ExtINT, 0x0, apicid_sb700, 0x0); | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_sb700, 0); | ||||||
|  |  | ||||||
| 	/* ISA ints are edge-triggered, and usually originate from the ISA bus, |  | ||||||
| 	 * or its remainings. |  | ||||||
| 	 */ |  | ||||||
| #define ISA_INT(intr, pin) \ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, (intr), apicid_sb700, (pin)) |  | ||||||
|  |  | ||||||
| 	ISA_INT(0x1, 0x1); |  | ||||||
| 	ISA_INT(0x0, 0x2); |  | ||||||
| 	ISA_INT(0x3, 0x3); |  | ||||||
| 	ISA_INT(0x4, 0x4); |  | ||||||
| 	ISA_INT(0x6, 0x6); |  | ||||||
| 	ISA_INT(0x7, 0x7); |  | ||||||
| 	ISA_INT(0xc, 0xc); |  | ||||||
| 	ISA_INT(0xd, 0xd); |  | ||||||
| 	ISA_INT(0xe, 0xe); |  | ||||||
|  |  | ||||||
| 	/* PCI interrupts are level triggered, and are | 	/* PCI interrupts are level triggered, and are | ||||||
| 	 * associated with a specific bus/device/function tuple. | 	 * associated with a specific bus/device/function tuple. | ||||||
|   | |||||||
| @@ -100,45 +100,7 @@ static void *smp_write_config_table(void *v) | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/* I/O Ints: Type Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# */ | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_ck804, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 			 bus_isa, 0x0, apicid_ck804, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 			 bus_isa, 0x1, apicid_ck804, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 			 bus_isa, 0x0, apicid_ck804, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 			 bus_isa, 0x4, apicid_ck804, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 			 bus_isa, 0x6, apicid_ck804, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 			 bus_isa, 0x7, apicid_ck804, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, |  | ||||||
| 			 bus_isa, 0x8, apicid_ck804, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 			 bus_isa, 0x9, apicid_ck804, 0x9); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 			 bus_isa, 0xa, apicid_ck804, 0xa); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 			 bus_isa, 0xc, apicid_ck804, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 			 bus_isa, 0xd, apicid_ck804, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 			 bus_isa, 0xe, apicid_ck804, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 			 bus_isa, 0xf, apicid_ck804, 0xf); |  | ||||||
|  |  | ||||||
| 	// Onboard ck804 smbus | 	// Onboard ck804 smbus | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, | ||||||
|   | |||||||
| @@ -65,22 +65,7 @@ static void *smp_write_config_table(void *v) | |||||||
| 	smp_write_ioapic(mc, VT8237R_APIC_ID, 0x20, VT8237R_APIC_BASE); | 	smp_write_ioapic(mc, VT8237R_APIC_ID, 0x20, VT8237R_APIC_BASE); | ||||||
| 	smp_write_ioapic(mc, K8T890_APIC_ID, 0x20, K8T890_APIC_BASE); | 	smp_write_ioapic(mc, K8T890_APIC_ID, 0x20, K8T890_APIC_BASE); | ||||||
|  |  | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, VT8237R_APIC_ID, 0x0); | 	mptable_add_isa_interrupts(mc, bus_isa, VT8237R_APIC_ID, 0); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x1, VT8237R_APIC_ID, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, VT8237R_APIC_ID, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x3, VT8237R_APIC_ID, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x4, VT8237R_APIC_ID, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x5, VT8237R_APIC_ID, 0x5); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x6, VT8237R_APIC_ID, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x7, VT8237R_APIC_ID, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x8, VT8237R_APIC_ID, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x9, VT8237R_APIC_ID, 0x9); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xa, VT8237R_APIC_ID, 0xa); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xb, VT8237R_APIC_ID, 0xb); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xc, VT8237R_APIC_ID, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xd, VT8237R_APIC_ID, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xe, VT8237R_APIC_ID, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xf, VT8237R_APIC_ID, 0xf); |  | ||||||
|  |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0,  (0xb << 2) | 0, VT8237R_APIC_ID, 0x10); //IRQ16 | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0,  (0xb << 2) | 0, VT8237R_APIC_ID, 0x10); //IRQ16 | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0,  (0xb << 2) | 1, VT8237R_APIC_ID, 0x11); //IRQ17 | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0,  (0xb << 2) | 1, VT8237R_APIC_ID, 0x11); //IRQ17 | ||||||
|   | |||||||
| @@ -86,46 +86,8 @@ static void *smp_write_config_table(void *v) | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/* I/O Ints: Type  Polarity  Trigger  Bus ID  IRQ  APIC ID  PIN# */ | 	mptable_add_isa_interrupts(mc, 0x2, 0x2, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x2, |  | ||||||
| 			 0x0, 0x2, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x2, |  | ||||||
| 			 0x1, 0x2, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x2, |  | ||||||
| 			 0x0, 0x2, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x2, |  | ||||||
| 			 0x3, 0x2, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x2, |  | ||||||
| 			 0x4, 0x2, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x2, |  | ||||||
| 			 0x5, 0x2, 0x5); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x2, |  | ||||||
| 			 0x6, 0x2, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x2, |  | ||||||
| 			 0x7, 0x2, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x2, |  | ||||||
| 			 0x8, 0x2, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x2, |  | ||||||
| 			 0x9, 0x2, 0x9); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x2, |  | ||||||
| 			 0xc, 0x2, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x2, |  | ||||||
| 			 0xe, 0x2, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x2, |  | ||||||
| 			 0xf, 0x2, 0xf); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, | ||||||
| 			 0x2, 0xb, 0x2, 0x10); | 			 0x2, 0xb, 0x2, 0x10); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, | ||||||
|   | |||||||
| @@ -86,46 +86,8 @@ static void *smp_write_config_table(void *v) | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/* I/O Ints: Type  Polarity  Trigger  Bus ID  IRQ  APIC ID  PIN# */ | 	mptable_add_isa_interrupts(mc, 0x1, 0x2, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x1, |  | ||||||
| 			 0x0, 0x2, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x1, |  | ||||||
| 			 0x1, 0x2, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x1, |  | ||||||
| 			 0x0, 0x2, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x1, |  | ||||||
| 			 0x3, 0x2, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x1, |  | ||||||
| 			 0x4, 0x2, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x1, |  | ||||||
| 			 0x5, 0x2, 0x5); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x1, |  | ||||||
| 			 0x6, 0x2, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x1, |  | ||||||
| 			 0x7, 0x2, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x1, |  | ||||||
| 			 0x8, 0x2, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x1, |  | ||||||
| 			 0x9, 0x2, 0x9); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x1, |  | ||||||
| 			 0xc, 0x2, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x1, |  | ||||||
| 			 0xe, 0x2, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, |  | ||||||
| 			 MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x1, |  | ||||||
| 			 0xf, 0x2, 0xf); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, | ||||||
| 			 0x0, 0x13, 0x2, 0x13); | 			 0x0, 0x13, 0x2, 0x13); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, | ||||||
|   | |||||||
| @@ -75,19 +75,7 @@ static void *smp_write_config_table(void *v) | |||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# */ | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_bcm5785[0], 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, apicid_bcm5785[0], 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x1, apicid_bcm5785[0], 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x0, apicid_bcm5785[0], 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x3, apicid_bcm5785[0], 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x4, apicid_bcm5785[0], 0x4); |  | ||||||
|   	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x5, apicid_bcm5785[0], 0x5); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x6, apicid_bcm5785[0], 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x7, apicid_bcm5785[0], 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x8, apicid_bcm5785[0], 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x9, apicid_bcm5785[0], 0x9); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xc, apicid_bcm5785[0], 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xd, apicid_bcm5785[0], 0xd); |  | ||||||
|  |  | ||||||
| //IDE | //IDE | ||||||
| 	outb(0x02, 0xc00); outb(0x0e, 0xc01); | 	outb(0x02, 0xc00); outb(0x0e, 0xc01); | ||||||
|   | |||||||
| @@ -136,39 +136,17 @@ static void *smp_write_config_table(void *v) | |||||||
| 			printk(BIOS_DEBUG, "ERROR - could not find IOAPIC PCI 1:00.3\n"); | 			printk(BIOS_DEBUG, "ERROR - could not find IOAPIC PCI 1:00.3\n"); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 	/* ISA backward compatibility interrupts  */ |  | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, | 	mptable_add_isa_interrupts(mc, bus_isa, 0x2, 0); | ||||||
| 		bus_isa, 0x00, 0x02, 0x00); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x01, 0x02, 0x01); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x00, 0x02, 0x02); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x03, 0x02, 0x03); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x04, 0x02, 0x04); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x74, 0x02, 0x10); | 		0x00, 0x74, 0x02, 0x10); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x06, 0x02, 0x06); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x76, 0x02, 0x12); | 		0x00, 0x76, 0x02, 0x12); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x08, 0x02, 0x08); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x09, 0x02, 0x09); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x77, 0x02, 0x17); | 		0x00, 0x77, 0x02, 0x17); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x75, 0x02, 0x13); | 		0x00, 0x75, 0x02, 0x13); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x0c, 0x02, 0x0c); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x0d, 0x02, 0x0d); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x0e, 0x02, 0x0e); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x0f, 0x02, 0x0f); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x74, 0x02, 0x10); | 		0x00, 0x74, 0x02, 0x10); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
|   | |||||||
| @@ -70,21 +70,7 @@ static void *smp_write_config_table(void *v) | |||||||
| 	smp_write_ioapic(mc, 2, 0x20, 0xfec00000); | 	smp_write_ioapic(mc, 2, 0x20, 0xfec00000); | ||||||
|  |  | ||||||
| 	/* Legacy Interrupts */ | 	/* Legacy Interrupts */ | ||||||
|  | 	mptable_add_isa_interrupts(mc, isa_bus, 0x2, 0); | ||||||
| 	/* I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# */	 |  | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0x0, 0x2, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0x1, 0x2, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0x0, 0x2, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0x3, 0x2, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0x4, 0x2, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, isa_bus, 0x8, 0x2, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0x9, 0x2, 0x9); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0xa, 0x2, 0xa); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0xb, 0x2, 0xb); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0xc, 0x2, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0xd, 0x2, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0xe, 0x2, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0xf, 0x2, 0xf); |  | ||||||
|  |  | ||||||
| 	/* Builtin devices on Bus 0 */ | 	/* Builtin devices on Bus 0 */ | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x8, 0x2, 0x10); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x8, 0x2, 0x10); | ||||||
|   | |||||||
| @@ -100,26 +100,7 @@ static void *smp_write_config_table(void *v) | |||||||
|                 } |                 } | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/* I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# */ | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_sis966, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, apicid_sis966, 0x0); |  | ||||||
|  |  | ||||||
| /* ISA ints are edge-triggered, and usually originate from the ISA bus, |  | ||||||
|  * or its remainings. |  | ||||||
|  */ |  | ||||||
| #define ISA_INT(intr, pin)\ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, (intr), apicid_sis966,(pin)) |  | ||||||
|  |  | ||||||
| 	ISA_INT(0x1, 0x1); |  | ||||||
| 	ISA_INT(0x0, 0x2); |  | ||||||
| 	ISA_INT(0x3, 0x3); |  | ||||||
| 	ISA_INT(0x4, 0x4); |  | ||||||
| 	ISA_INT(0x6, 0x6); |  | ||||||
| 	ISA_INT(0x7, 0x7); |  | ||||||
| 	ISA_INT(0x8, 0x8); |  | ||||||
| 	ISA_INT(0xc, 0xc); |  | ||||||
| 	ISA_INT(0xd, 0xd); |  | ||||||
| 	ISA_INT(0xe, 0xe); |  | ||||||
| 	ISA_INT(0xf, 0xf); |  | ||||||
|  |  | ||||||
| /* PCI interrupts are level triggered, and are | /* PCI interrupts are level triggered, and are | ||||||
|  * associated with a specific bus/device/function tuple. |  * associated with a specific bus/device/function tuple. | ||||||
|   | |||||||
| @@ -94,26 +94,7 @@ static void *smp_write_config_table(void *v) | |||||||
|                 } |                 } | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/*I/O Ints:	     Type	Trigger    Polarity	                  Bus ID   IRQ	APIC ID	      PIN# */ | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_mcp55, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, apicid_mcp55, 0x0); |  | ||||||
|  |  | ||||||
| /* ISA ints are edge-triggered, and usually originate from the ISA bus, |  | ||||||
|  * or its remainings. |  | ||||||
|  */ |  | ||||||
| #define ISA_INT(intr, pin)\ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, (intr), apicid_mcp55, (pin)) |  | ||||||
|  |  | ||||||
| 	ISA_INT(1,1); |  | ||||||
| 	ISA_INT(0,2); |  | ||||||
| 	ISA_INT(3,3); |  | ||||||
| 	ISA_INT(4,4); |  | ||||||
| 	ISA_INT(6,6); |  | ||||||
| 	ISA_INT(7,7); |  | ||||||
| 	ISA_INT(8,8); |  | ||||||
| 	ISA_INT(12,12); |  | ||||||
| 	ISA_INT(13,13); |  | ||||||
| 	ISA_INT(14,14); |  | ||||||
| 	ISA_INT(15,15); |  | ||||||
|  |  | ||||||
| /* PCI interrupts are level triggered, and are | /* PCI interrupts are level triggered, and are | ||||||
|  * associated with a specific bus/device/function tuple. |  * associated with a specific bus/device/function tuple. | ||||||
|   | |||||||
| @@ -151,31 +151,17 @@ static void *smp_write_config_table(void *v) | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| /*I/O Ints:    Type    Polarity    Trigger     Bus ID   IRQ    APIC ID PIN# */ | 	mptable_add_isa_interrupts(mc, m->bus_isa, m->apicid_bcm5785[0], 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x0, m->apicid_bcm5785[0], 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x1, m->apicid_bcm5785[0], 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x0, m->apicid_bcm5785[0], 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x3, m->apicid_bcm5785[0], 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x4, m->apicid_bcm5785[0], 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x5, m->apicid_bcm5785[0], 0x5); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x6, m->apicid_bcm5785[0], 0x6); |  | ||||||
| 	//SATA | 	//SATA | ||||||
| /* 	printk(BIOS_DEBUG, "MPTABLE_SATA: bus_id:%d irq:%d apic_id:%d pin:%d\n",m->bus_bcm5785_1, (0x0e<<2)|0, m->apicid_bcm5785[0], 0x7); */ | /* 	printk(BIOS_DEBUG, "MPTABLE_SATA: bus_id:%d irq:%d apic_id:%d pin:%d\n",m->bus_bcm5785_1, (0x0e<<2)|0, m->apicid_bcm5785[0], 0x7); */ | ||||||
| /*	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_bcm5785_1, (0x0e<<2)|0, m->apicid_bcm5785[0], 0x7); */ | /*	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_bcm5785_1, (0x0e<<2)|0, m->apicid_bcm5785[0], 0x7); */ | ||||||
| 	printk(BIOS_DEBUG, "MPTABLE_SATA: bus_id:%d irq:%d apic_id:%d pin:%d\n",m->bus_bcm5785_1, (0x0e<<2)|0, m->apicid_bcm5785[0], 0xb); | 	printk(BIOS_DEBUG, "MPTABLE_SATA: bus_id:%d irq:%d apic_id:%d pin:%d\n",m->bus_bcm5785_1, (0x0e<<2)|0, m->apicid_bcm5785[0], 0xb); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_bcm5785_1, (0x0e<<2)|0, m->apicid_bcm5785[0], 0xb); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_bcm5785_1, (0x0e<<2)|0, m->apicid_bcm5785[0], 0xb); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x8, m->apicid_bcm5785[0], 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x9, m->apicid_bcm5785[0], 0x9); |  | ||||||
| 	//USB | 	//USB | ||||||
| 	printk(BIOS_DEBUG, "sysconf.sbdn: %d on bus: %x \n",sysconf.sbdn, m->bus_bcm5785_0); | 	printk(BIOS_DEBUG, "sysconf.sbdn: %d on bus: %x \n",sysconf.sbdn, m->bus_bcm5785_0); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_bcm5785_0, (0x03<<2)|0, m->apicid_bcm5785[0], 0xa); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_bcm5785_0, (0x03<<2)|0, m->apicid_bcm5785[0], 0xa); | ||||||
|  |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xb, m->apicid_bcm5785[0], 0xb); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xc, m->apicid_bcm5785[0], 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xd, m->apicid_bcm5785[0], 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xe, m->apicid_bcm5785[0], 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xf, m->apicid_bcm5785[0], 0xf); |  | ||||||
|  |  | ||||||
| 	//VGA | 	//VGA | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_bcm5785_0, (0x4<<2)|0, m->apicid_bcm5785[1], 0x7); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_bcm5785_0, (0x4<<2)|0, m->apicid_bcm5785[1], 0x7); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -103,23 +103,7 @@ static void *smp_write_config_table(void *v) | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/* ISA backward compatibility interrupts  */ | 	mptable_add_isa_interrupts(mc, bus_isa, 0x2, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x00, 0x02, 0x00); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x01, 0x02, 0x01); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x00, 0x02, 0x02); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x03, 0x02, 0x03); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x04, 0x02, 0x04); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x05, 0x02, 0x05); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x06, 0x02, 0x06); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x07, 0x02, 0x07); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x08, 0x02, 0x08); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x09, 0x02, 0x09); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x0a, 0x02, 0x0a); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x0b, 0x02, 0x0b); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x0c, 0x02, 0x0c); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x0d, 0x02, 0x0d); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x0e, 0x02, 0x0e); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x0f, 0x02, 0x0f); |  | ||||||
|  |  | ||||||
| 	/* PCI Ints:	     Type	Polarity    	    Trigger		  	Bus ID      PCIDEVNUM|IRQ  APIC ID PIN# */ | 	/* PCI Ints:	     Type	Polarity    	    Trigger		  	Bus ID      PCIDEVNUM|IRQ  APIC ID PIN# */ | ||||||
| 	/* Integrated SMBus 2.0 */ | 	/* Integrated SMBus 2.0 */ | ||||||
|   | |||||||
| @@ -102,23 +102,7 @@ static void *smp_write_config_table(void *v) | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/* ISA backward compatibility interrupts  */ | 	mptable_add_isa_interrupts(mc, bus_isa, 0x2, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x00, 0x02, 0x00); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x01, 0x02, 0x01); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x00, 0x02, 0x02); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x03, 0x02, 0x03); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x04, 0x02, 0x04); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x05, 0x02, 0x05); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x06, 0x02, 0x06); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x07, 0x02, 0x07); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x08, 0x02, 0x08); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x09, 0x02, 0x09); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x0a, 0x02, 0x0a); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x0b, 0x02, 0x0b); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x0c, 0x02, 0x0c); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x0d, 0x02, 0x0d); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x0e, 0x02, 0x0e); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0x0f, 0x02, 0x0f); |  | ||||||
|  |  | ||||||
| 	/* PCI Ints:	     Type	Polarity    	    Trigger		  	Bus ID      PCIDEVNUM|IRQ  APIC ID PIN# */ | 	/* PCI Ints:	     Type	Polarity    	    Trigger		  	Bus ID      PCIDEVNUM|IRQ  APIC ID PIN# */ | ||||||
| 	/* Integrated SMBus 2.0 */ | 	/* Integrated SMBus 2.0 */ | ||||||
|   | |||||||
| @@ -69,20 +69,7 @@ static void *smp_write_config_table(void *v) | |||||||
|  |  | ||||||
| 	/* Legacy Interrupts */ | 	/* Legacy Interrupts */ | ||||||
|  |  | ||||||
| 	/* I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# */ | 	mptable_add_isa_interrupts(mc, isa_bus, 0x2, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0x0, 0x2, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0x1, 0x2, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0x0, 0x2, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0x3, 0x2, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0x4, 0x2, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, isa_bus, 0x8, 0x2, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0x9, 0x2, 0x9); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0xa, 0x2, 0xa); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0xb, 0x2, 0xb); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0xc, 0x2, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0xd, 0x2, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0xe, 0x2, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0xf, 0x2, 0xf); |  | ||||||
|  |  | ||||||
| 	/* Builtin devices on Bus 0 */ | 	/* Builtin devices on Bus 0 */ | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x8, 0x2, 0x10); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x8, 0x2, 0x10); | ||||||
|   | |||||||
| @@ -179,39 +179,7 @@ static void *smp_write_config_table(void *v) | |||||||
|                 } |                 } | ||||||
| 	} | 	} | ||||||
| 	*/ | 	*/ | ||||||
| 	/*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN#*/ | 	mptable_add_isa_interrupts(mc, bus_isa, IO_APIC0, 0); | ||||||
| 	/* IRQ0 8254 Counter 0, MNT0 */ |  | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa,  0, IO_APIC0,  0); |  | ||||||
| 	/* IRQ1 Keyboard */ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa,  1, IO_APIC0,  1); |  | ||||||
| 	/* IRQ2 8259 cascade only */ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa,  0, IO_APIC0,  2); |  | ||||||
| 	/* IRQ3 COM2, Option for PIRQx */ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa,  3, IO_APIC0,  3); |  | ||||||
| 	/* IRQ4 COM1, Option for PIRQx */ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa,  4, IO_APIC0,  4); |  | ||||||
| 	/* IRQ5 Option for PIRQx */ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa,  5, IO_APIC0,  5); |  | ||||||
| 	/* IRQ6 Option for PIRQx */ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa,  6, IO_APIC0,  6); |  | ||||||
| 	/* IRQ7 OPtion for PIRQx */ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa,  7, IO_APIC0,  7); |  | ||||||
| 	/* IRQ8# RTC, MNT1 */ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_EDGE   |MP_IRQ_POLARITY_HIGH,    bus_isa,  8, IO_APIC0,  8); |  | ||||||
| 	/* IRQ9 Option for PIRQx, SCI, TCO */ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa,  9, IO_APIC0,  9); |  | ||||||
| 	/* IRQ10 Option for PIRQx, SCI, TCO */ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 12, IO_APIC0, 10); |  | ||||||
| 	/* IRQ11 Option for PIRQx, SCI, TCO, MMT2 */ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 12, IO_APIC0, 11); |  | ||||||
| 	/* IRQ12 Mouse, Option for PIRQx */ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 12, IO_APIC0, 12); |  | ||||||
| 	/* IRQ13 Floating point interrupt generated off of the processor assertion of FERR# */ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 13, IO_APIC0, 13); |  | ||||||
| 	/* IRQ14 PIRQx Sata primary (legacy mode) */ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 14, IO_APIC0, 14); |  | ||||||
| 	/* IRQ15 PIRQx Sata secondary (legacy mode) */ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 15, IO_APIC0, 15); |  | ||||||
|  |  | ||||||
| 	/*Local Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN#*/ | 	/*Local Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN#*/ | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0, MP_APIC_ALL, 0); | 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, bus_isa, 0, MP_APIC_ALL, 0); | ||||||
|   | |||||||
| @@ -166,31 +166,8 @@ static void *smp_write_config_table(void *v) | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/* ISA backward compatibility interrupts  */ | 	mptable_add_isa_interrupts(mc, bus_isa, 0x8, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x00, 0x08, 0x00); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x01, 0x08, 0x01); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x00, 0x08, 0x02); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x03, 0x08, 0x03); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x04, 0x08, 0x04); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x06, 0x08, 0x06); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x08, 0x08, 0x08); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x09, 0x08, 0x09); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0c, 0x08, 0x0c); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0d, 0x08, 0x0d); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0e, 0x08, 0x0e); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0f, 0x08, 0x0f); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		bus_isa, 0x0a, 0x08, 0x10); | 		bus_isa, 0x0a, 0x08, 0x10); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
|   | |||||||
| @@ -64,31 +64,7 @@ static void *smp_write_config_table(void *v) | |||||||
| 	/* IOAPIC handling */ | 	/* IOAPIC handling */ | ||||||
| 	smp_write_ioapic(mc, 0x01, 0x20, 0xfec00000); | 	smp_write_ioapic(mc, 0x01, 0x20, 0xfec00000); | ||||||
|  |  | ||||||
| 	/* ISA backward compatibility interrupts  */ | 	mptable_add_isa_interrupts(mc, bus_isa, 0x1, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x00, 0x01, 0x00); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x01, 0x01, 0x01); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x00, 0x01, 0x02); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x03, 0x01, 0x03); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x04, 0x01, 0x04); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x06, 0x01, 0x06); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x08, 0x01, 0x08); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x09, 0x01, 0x09); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0c, 0x01, 0x0c); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0d, 0x01, 0x0d); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0e, 0x01, 0x0e); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0f, 0x01, 0x0f); |  | ||||||
|  |  | ||||||
| 	/* Standard local interrupt assignments */ | 	/* Standard local interrupt assignments */ | ||||||
| 	smp_write_lintsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, | 	smp_write_lintsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, | ||||||
|   | |||||||
| @@ -97,31 +97,7 @@ static void *smp_write_config_table(void *v) | |||||||
| 	/* IOAPIC handling */ | 	/* IOAPIC handling */ | ||||||
| 	smp_write_ioapic(mc, 0x8, 0x20, 0xfec00000); | 	smp_write_ioapic(mc, 0x8, 0x20, 0xfec00000); | ||||||
|  |  | ||||||
| 	/* ISA backward compatibility interrupts */ | 	mptable_add_isa_interrupts(mc, bus_isa, 0x8, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x00, 0x8, 0x00); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x01, 0x8, 0x01); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x00, 0x8, 0x02); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x03, 0x8, 0x03); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x04, 0x8, 0x04); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x06, 0x8, 0x06); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x08, 0x8, 0x08); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x09, 0x8, 0x09); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0c, 0x8, 0x0c); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0d, 0x8, 0x0d); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0e, 0x8, 0x0e); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0f, 0x8, 0x0f); |  | ||||||
|  |  | ||||||
| 	/* Standard local interrupt assignments */ | 	/* Standard local interrupt assignments */ | ||||||
| 	smp_write_lintsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, | 	smp_write_lintsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, | ||||||
|   | |||||||
| @@ -126,20 +126,7 @@ static void xe7501devkit_register_interrupts(struct mp_config_table *mc) | |||||||
|  |  | ||||||
| 	// TODO: Not sure how to handle BT_INTR# signals from the P64H2s. Do we even need to, in APIC mode? | 	// TODO: Not sure how to handle BT_INTR# signals from the P64H2s. Do we even need to, in APIC mode? | ||||||
|  |  | ||||||
| 	// Super I/O (ISA interrupts) | 	mptable_add_isa_interrupts(mc, SUPERIO_BUS, IOAPIC_ICH3, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE |MP_IRQ_POLARITY_HIGH,	SUPERIO_BUS,		 0,					IOAPIC_ICH3,			 0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_EDGE |MP_IRQ_POLARITY_HIGH,	SUPERIO_BUS,		 1,					IOAPIC_ICH3,			 1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_EDGE |MP_IRQ_POLARITY_HIGH,	SUPERIO_BUS,		 0,					IOAPIC_ICH3,			 2); |  | ||||||
|  |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_EDGE |MP_IRQ_POLARITY_HIGH,	SUPERIO_BUS,		 3,					IOAPIC_ICH3,			 3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_EDGE |MP_IRQ_POLARITY_HIGH,	SUPERIO_BUS,		 4,					IOAPIC_ICH3,			 4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_EDGE |MP_IRQ_POLARITY_HIGH,	SUPERIO_BUS,		 6,					IOAPIC_ICH3,			 6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_EDGE |MP_IRQ_POLARITY_HIGH,	SUPERIO_BUS,		 8,					IOAPIC_ICH3,			 8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_EDGE |MP_IRQ_POLARITY_HIGH,	SUPERIO_BUS,		 9,					IOAPIC_ICH3,			 9); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_EDGE |MP_IRQ_POLARITY_HIGH,	SUPERIO_BUS,		12,					IOAPIC_ICH3,			12); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_EDGE |MP_IRQ_POLARITY_HIGH,	SUPERIO_BUS,		13,					IOAPIC_ICH3,			13); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_EDGE |MP_IRQ_POLARITY_HIGH,	SUPERIO_BUS,		14,					IOAPIC_ICH3,			14); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,	MP_IRQ_TRIGGER_EDGE |MP_IRQ_POLARITY_HIGH,	SUPERIO_BUS,		15,					IOAPIC_ICH3,			15); |  | ||||||
| } | } | ||||||
|  |  | ||||||
| static void *smp_write_config_table(void* v) | static void *smp_write_config_table(void* v) | ||||||
|   | |||||||
| @@ -102,21 +102,8 @@ static void *smp_write_config_table(void *v) | |||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# */ | 	mptable_add_isa_interrupts(mc, m->bus_isa, m->apicid_8111, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x0, m->apicid_8111, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x1, m->apicid_8111, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x0, m->apicid_8111, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x3, m->apicid_8111, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x4, m->apicid_8111, 0x4); |  | ||||||
|   	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x5, m->apicid_8111, 0x5); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x6, m->apicid_8111, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x7, m->apicid_8111, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x8, m->apicid_8111, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x9, m->apicid_8111, 0x9); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xc, m->apicid_8111, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xd, m->apicid_8111, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xe, m->apicid_8111, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xf, m->apicid_8111, 0xf); |  | ||||||
| //??? What | //??? What | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_8111_0, ((sysconf.sbdn+1)<<2)|3, m->apicid_8111, 0x13); |         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_8111_0, ((sysconf.sbdn+1)<<2)|3, m->apicid_8111, 0x13); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -104,39 +104,7 @@ static void *smp_write_config_table(void *v) | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/* ISA backward compatibility interrupts  */ | 	mptable_add_isa_interrupts(mc, bus_isa, 0x2, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x00, 0x02, 0x00); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x01, 0x02, 0x01); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x00, 0x02, 0x02); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x03, 0x02, 0x03); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x04, 0x02, 0x04); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x05, 0x02, 0x05); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x06, 0x02, 0x06); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x07, 0x02, 0x07); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x08, 0x02, 0x08); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x09, 0x02, 0x09); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0a, 0x02, 0x0a); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0b, 0x02, 0x0b); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0c, 0x02, 0x0c); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0d, 0x02, 0x0d); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0e, 0x02, 0x0e); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0f, 0x02, 0x0f); |  | ||||||
|  |  | ||||||
| 	/* Standard local interrupt assignments */ | 	/* Standard local interrupt assignments */ | ||||||
| 	smp_write_lintsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, | 	smp_write_lintsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, | ||||||
|   | |||||||
| @@ -104,39 +104,7 @@ static void *smp_write_config_table(void *v) | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/* ISA backward compatibility interrupts  */ | 	mptable_add_isa_interrupts(mc, bus_isa, 0x2, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x00, 0x02, 0x00); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x01, 0x02, 0x01); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x00, 0x02, 0x02); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x03, 0x02, 0x03); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x04, 0x02, 0x04); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x05, 0x02, 0x05); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x06, 0x02, 0x06); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x07, 0x02, 0x07); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x08, 0x02, 0x08); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x09, 0x02, 0x09); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0a, 0x02, 0x0a); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0b, 0x02, 0x0b); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0c, 0x02, 0x0c); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0d, 0x02, 0x0d); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0e, 0x02, 0x0e); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0f, 0x02, 0x0f); |  | ||||||
|  |  | ||||||
| 	/* Standard local interrupt assignments */ | 	/* Standard local interrupt assignments */ | ||||||
| 	smp_write_lintsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, | 	smp_write_lintsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, | ||||||
|   | |||||||
| @@ -89,21 +89,7 @@ static void *smp_write_config_table(void *v) | |||||||
| 	smp_write_ioapic(mc, ioapic_id, 0x20, 0xfec00000); | 	smp_write_ioapic(mc, ioapic_id, 0x20, 0xfec00000); | ||||||
|  |  | ||||||
| 	/* Legacy Interrupts */ | 	/* Legacy Interrupts */ | ||||||
|  | 	mptable_add_isa_interrupts(mc, isa_bus, ioapic_id, 0); | ||||||
| 	/* I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# */ |  | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0x0, ioapic_id, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0x1, ioapic_id, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0x0, ioapic_id, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0x3, ioapic_id, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0x4, ioapic_id, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,       isa_bus, 0x8, ioapic_id, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0x9, ioapic_id, 0x9); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0xa, ioapic_id, 0xa); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0xb, ioapic_id, 0xb); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0xc, ioapic_id, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0xd, ioapic_id, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0xe, ioapic_id, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0xf, ioapic_id, 0xf); |  | ||||||
|  |  | ||||||
| 	/* Builtin devices on Bus 0 */ | 	/* Builtin devices on Bus 0 */ | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x4, ioapic_id, 0x10); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x4, ioapic_id, 0x10); | ||||||
|   | |||||||
| @@ -117,27 +117,10 @@ static void *smp_write_config_table(void *v) | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/* I/O Ints:    Type    Polarity    Trigger     Bus ID   IRQ    APIC ID PIN# */ |  | ||||||
| #define IO_LOCAL_INT(type, intr, apicid, pin) \ | #define IO_LOCAL_INT(type, intr, apicid, pin) \ | ||||||
| 	smp_write_intsrc(mc, (type), MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, bus_isa, (intr), (apicid), (pin)); | 	smp_write_intsrc(mc, (type), MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, bus_isa, (intr), (apicid), (pin)); | ||||||
|  |  | ||||||
| 	IO_LOCAL_INT(mp_ExtINT, 0x0, apicid_sb600, 0x0); | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_sb600, 0); | ||||||
|  |  | ||||||
| 	/* ISA ints are edge-triggered, and usually originate from the ISA bus, |  | ||||||
| 	 * or its remainings. |  | ||||||
| 	 */ |  | ||||||
| #define ISA_INT(intr, pin) \ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, (intr), apicid_sb600, (pin)) |  | ||||||
|  |  | ||||||
| 	ISA_INT(0x1, 0x1); |  | ||||||
| 	ISA_INT(0x0, 0x2); |  | ||||||
| 	ISA_INT(0x3, 0x3); |  | ||||||
| 	ISA_INT(0x4, 0x4); |  | ||||||
| 	ISA_INT(0x6, 0x6); |  | ||||||
| 	ISA_INT(0x7, 0x7); |  | ||||||
| 	ISA_INT(0xc, 0xc); |  | ||||||
| 	ISA_INT(0xd, 0xd); |  | ||||||
| 	ISA_INT(0xe, 0xe); |  | ||||||
|  |  | ||||||
| 	/* PCI interrupts are level triggered, and are | 	/* PCI interrupts are level triggered, and are | ||||||
| 	 * associated with a specific bus/device/function tuple. | 	 * associated with a specific bus/device/function tuple. | ||||||
|   | |||||||
| @@ -112,29 +112,7 @@ static void *smp_write_config_table(void *v) | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/* Now, assemble the table. */ | 	/* Now, assemble the table. */ | ||||||
|  | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_ck804, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, |  | ||||||
| 			 MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, |  | ||||||
| 			 bus_isa, 0x0, apicid_ck804, 0x0); |  | ||||||
|  |  | ||||||
| #define ISA_INT(intr, pin) \ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, \ |  | ||||||
| 		bus_isa, (intr), apicid_ck804, (pin)) |  | ||||||
|  |  | ||||||
| 	ISA_INT(1, 1); |  | ||||||
| 	ISA_INT(0, 2); |  | ||||||
| 	ISA_INT(3, 3); |  | ||||||
| 	ISA_INT(4, 4); |  | ||||||
|  |  | ||||||
| 	ISA_INT(6, 6); |  | ||||||
| 	ISA_INT(7, 7); |  | ||||||
| 	ISA_INT(8, 8); |  | ||||||
| 	ISA_INT(9, 9); |  | ||||||
|  |  | ||||||
| 	ISA_INT(0xc, 0xc); |  | ||||||
| 	ISA_INT(0xd, 0xd); |  | ||||||
| 	ISA_INT(0xe, 0xe); |  | ||||||
| 	ISA_INT(0xf, 0xf); |  | ||||||
|  |  | ||||||
| #define PCI_INT(bus, dev, fn, pin) \ | #define PCI_INT(bus, dev, fn, pin) \ | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, \ | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, \ | ||||||
|   | |||||||
| @@ -95,19 +95,9 @@ static void *smp_write_config_table(void *v) | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_mcp55, 0); | ||||||
|  |  | ||||||
| 	/* I/O Ints:         Type       Trigger                Polarity              Bus ID        IRQ                    APIC ID       PIN# */ | 	/* I/O Ints:         Type       Trigger                Polarity              Bus ID        IRQ                    APIC ID       PIN# */ | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE  | MP_IRQ_POLARITY_HIGH, bus_isa,      0x0,                   apicid_mcp55, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_EDGE  | MP_IRQ_POLARITY_HIGH, bus_isa,      0x1,                   apicid_mcp55, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_EDGE  | MP_IRQ_POLARITY_HIGH, bus_isa,      0x0,                   apicid_mcp55, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_EDGE  | MP_IRQ_POLARITY_HIGH, bus_isa,      0x3,                   apicid_mcp55, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_EDGE  | MP_IRQ_POLARITY_HIGH, bus_isa,      0x4,                   apicid_mcp55, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_EDGE  | MP_IRQ_POLARITY_HIGH, bus_isa,      0x6,                   apicid_mcp55, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_EDGE  | MP_IRQ_POLARITY_HIGH, bus_isa,      0x7,                   apicid_mcp55, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_EDGE  | MP_IRQ_POLARITY_HIGH, bus_isa,      0x8,                   apicid_mcp55, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_EDGE  | MP_IRQ_POLARITY_HIGH, bus_isa,      0xc,                   apicid_mcp55, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_EDGE  | MP_IRQ_POLARITY_HIGH, bus_isa,      0xd,                   apicid_mcp55, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_EDGE  | MP_IRQ_POLARITY_HIGH, bus_isa,      0xe,                   apicid_mcp55, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_EDGE  | MP_IRQ_POLARITY_HIGH, bus_isa,      0xf,                   apicid_mcp55, 0xf); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW,  bus_mcp55[0], ((sbdn + 1) << 2) | 1, apicid_mcp55, 0xa); | 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW,  bus_mcp55[0], ((sbdn + 1) << 2) | 1, apicid_mcp55, 0xa); | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW,  bus_mcp55[0], ((sbdn + 2) << 2) | 0, apicid_mcp55, 0x16);	// 22 | 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW,  bus_mcp55[0], ((sbdn + 2) << 2) | 0, apicid_mcp55, 0x16);	// 22 | ||||||
| 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW,  bus_mcp55[0], ((sbdn + 2) << 2) | 1, apicid_mcp55, 0x17);	// 23 | 	smp_write_intsrc(mc, mp_INT,    MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW,  bus_mcp55[0], ((sbdn + 2) << 2) | 1, apicid_mcp55, 0x17);	// 23 | ||||||
|   | |||||||
| @@ -96,19 +96,7 @@ static void *smp_write_config_table(void *v) | |||||||
|  |  | ||||||
|        } |        } | ||||||
|  |  | ||||||
| /*I/O Ints:    Type    Polarity    Trigger     Bus ID   IRQ    APIC ID PIN# */ | 	mptable_add_isa_interrupts(mc, m->bus_isa, m->apicid_bcm5785[0], 0); | ||||||
|        smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x0, m->apicid_bcm5785[0], 0x0); |  | ||||||
|        smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x1, m->apicid_bcm5785[0], 0x1); |  | ||||||
|        smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x0, m->apicid_bcm5785[0], 0x2); |  | ||||||
|        smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x3, m->apicid_bcm5785[0], 0x3); |  | ||||||
|        smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x4, m->apicid_bcm5785[0], 0x4); |  | ||||||
|        smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x5, m->apicid_bcm5785[0], 0x5); |  | ||||||
|        smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x6, m->apicid_bcm5785[0], 0x6); |  | ||||||
|        smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x7, m->apicid_bcm5785[0], 0x7); |  | ||||||
|        smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x8, m->apicid_bcm5785[0], 0x8); |  | ||||||
|        smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x9, m->apicid_bcm5785[0], 0x9); |  | ||||||
|        smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xc, m->apicid_bcm5785[0], 0xc); |  | ||||||
|        smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xd, m->apicid_bcm5785[0], 0xd); |  | ||||||
|  |  | ||||||
| //IDE | //IDE | ||||||
|        outb(0x02, 0xc00); outb(0x0e, 0xc01); |        outb(0x02, 0xc00); outb(0x0e, 0xc01); | ||||||
|   | |||||||
| @@ -103,19 +103,7 @@ static void *smp_write_config_table(void *v) | |||||||
|  |  | ||||||
|        } |        } | ||||||
|  |  | ||||||
|                   /*I/O Ints:  Type    Polarity    Trigger                     Bus ID   IRQ    APIC ID PIN# */ | 	mptable_add_isa_interrupts(mc, m->bus_isa, m->apicid_mcp55, 0); | ||||||
|        smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x0, m->apicid_mcp55, 0x0); |  | ||||||
|        smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x1, m->apicid_mcp55, 0x1); |  | ||||||
|        smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x0, m->apicid_mcp55, 0x2); |  | ||||||
|        smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x3, m->apicid_mcp55, 0x3); |  | ||||||
|        smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x4, m->apicid_mcp55, 0x4); |  | ||||||
|        smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x6, m->apicid_mcp55, 0x6); |  | ||||||
|        smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x7, m->apicid_mcp55, 0x7); |  | ||||||
|        smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x8, m->apicid_mcp55, 0x8); |  | ||||||
|        smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xc, m->apicid_mcp55, 0xc); |  | ||||||
|        smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xd, m->apicid_mcp55, 0xd); |  | ||||||
|        smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xe, m->apicid_mcp55, 0xe); |  | ||||||
|        smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xf, m->apicid_mcp55, 0xf); |  | ||||||
|  |  | ||||||
| //SMBUS | //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); |         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); | ||||||
|   | |||||||
| @@ -100,19 +100,7 @@ static void *smp_write_config_table(void *v) | |||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 			/*I/O Ints:	Type	Polarity    Trigger			Bus ID	 IRQ	APIC ID	PIN# */ | 	mptable_add_isa_interrupts(mc, m->bus_isa, m->apicid_mcp55, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x0, m->apicid_mcp55, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x1, m->apicid_mcp55, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x0, m->apicid_mcp55, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x3, m->apicid_mcp55, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x4, m->apicid_mcp55, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x6, m->apicid_mcp55, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x7, m->apicid_mcp55, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x8, m->apicid_mcp55, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xc, m->apicid_mcp55, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xd, m->apicid_mcp55, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xe, m->apicid_mcp55, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xf, m->apicid_mcp55, 0xf); |  | ||||||
|  |  | ||||||
| 	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); | 	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); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -105,39 +105,7 @@ static void *smp_write_config_table(void *v) | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/* ISA backward compatibility interrupts  */ | 	mptable_add_isa_interrupts(mc, bus_isa, 0x2, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x00, 0x02, 0x00); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x01, 0x02, 0x01); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x00, 0x02, 0x02); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x03, 0x02, 0x03); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x04, 0x02, 0x04); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x05, 0x02, 0x05); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x06, 0x02, 0x06); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x07, 0x02, 0x07); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x08, 0x02, 0x08); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x09, 0x02, 0x09); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0a, 0x02, 0x0a); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0b, 0x02, 0x0b); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0c, 0x02, 0x0c); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0d, 0x02, 0x0d); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0e, 0x02, 0x0e); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, |  | ||||||
| 		bus_isa, 0x0f, 0x02, 0x0f); |  | ||||||
|  |  | ||||||
| 	/* Standard local interrupt assignments */ | 	/* Standard local interrupt assignments */ | ||||||
| 	smp_write_lintsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, | 	smp_write_lintsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, | ||||||
|   | |||||||
| @@ -125,19 +125,7 @@ static void *smp_write_config_table(void *v) | |||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 		   /*I/O Ints:	Type	Polarity    Trigger			Bus ID	 IRQ	APIC ID	PIN# */ | 	mptable_add_isa_interrupts(mc, m->bus_isa, m->apicid_mcp55, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x0, m->apicid_mcp55, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x1, m->apicid_mcp55, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x0, m->apicid_mcp55, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x3, m->apicid_mcp55, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x4, m->apicid_mcp55, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x6, m->apicid_mcp55, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x7, m->apicid_mcp55, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x8, m->apicid_mcp55, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xc, m->apicid_mcp55, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xd, m->apicid_mcp55, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xe, m->apicid_mcp55, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xf, m->apicid_mcp55, 0xf); |  | ||||||
|  |  | ||||||
| 	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 | 	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 | ||||||
|  |  | ||||||
|   | |||||||
| @@ -70,21 +70,7 @@ static void *smp_write_config_table(void *v) | |||||||
| 	smp_write_ioapic(mc, 2, 0x20, 0xfec00000); | 	smp_write_ioapic(mc, 2, 0x20, 0xfec00000); | ||||||
|  |  | ||||||
| 	/* Legacy Interrupts */ | 	/* Legacy Interrupts */ | ||||||
|  | 	mptable_add_isa_interrupts(mc, isa_bus, 0x2, 0); | ||||||
| 	/* I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# */ |  | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0x0, 0x2, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0x1, 0x2, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0x0, 0x2, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0x3, 0x2, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0x4, 0x2, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, isa_bus, 0x8, 0x2, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0x9, 0x2, 0x9); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0xa, 0x2, 0xa); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0xb, 0x2, 0xb); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0xc, 0x2, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0xd, 0x2, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0xe, 0x2, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, isa_bus, 0xf, 0x2, 0xf); |  | ||||||
|  |  | ||||||
| 	/* Builtin devices on Bus 0 */ | 	/* Builtin devices on Bus 0 */ | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x8, 0x2, 0x10); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x8, 0x2, 0x10); | ||||||
|   | |||||||
| @@ -134,19 +134,7 @@ static void *smp_write_config_table(void *v) | |||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_ck804, 1); | ||||||
| */	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, apicid_ck804, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x1, apicid_ck804, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x0, apicid_ck804, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x3, apicid_ck804, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x4, apicid_ck804, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x6, apicid_ck804, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x7, apicid_ck804, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x8, apicid_ck804, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xc, apicid_ck804, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xd, apicid_ck804, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xe, apicid_ck804, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xf, apicid_ck804, 0xf); |  | ||||||
|  |  | ||||||
| // Onboard ck804 smbus | // Onboard ck804 smbus | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_ck804_0, ((sbdn+1)<<2)|1, apicid_ck804, 0xa); |         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_ck804_0, ((sbdn+1)<<2)|1, apicid_ck804, 0xa); | ||||||
|   | |||||||
| @@ -103,19 +103,7 @@ static void *smp_write_config_table(void *v) | |||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_mcp55, 0); | ||||||
| */	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, apicid_mcp55, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x1, apicid_mcp55, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x0, apicid_mcp55, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x3, apicid_mcp55, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x4, apicid_mcp55, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x6, apicid_mcp55, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x7, apicid_mcp55, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x8, apicid_mcp55, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xc, apicid_mcp55, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xd, apicid_mcp55, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xe, apicid_mcp55, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xf, apicid_mcp55, 0xf); |  | ||||||
|  |  | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_mcp55[0], ((sbdn+1)<<2)|1, apicid_mcp55, 0xa); |         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_mcp55[0], ((sbdn+1)<<2)|1, apicid_mcp55, 0xa); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -103,20 +103,9 @@ static void *smp_write_config_table(void *v) | |||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_mcp55, 0); | ||||||
| */	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, apicid_mcp55, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x1, apicid_mcp55, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x0, apicid_mcp55, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x3, apicid_mcp55, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x4, apicid_mcp55, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x6, apicid_mcp55, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x7, apicid_mcp55, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x8, apicid_mcp55, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xc, apicid_mcp55, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xd, apicid_mcp55, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xe, apicid_mcp55, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xf, apicid_mcp55, 0xf); |  | ||||||
|  |  | ||||||
|  | 		   /*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, bus_mcp55[0], ((sbdn+1)<<2)|1, apicid_mcp55, 0xa); |         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_mcp55[0], ((sbdn+1)<<2)|1, apicid_mcp55, 0xa); | ||||||
|  |  | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_mcp55[0], ((sbdn+2)<<2)|0, apicid_mcp55, 0x16); // 22 |         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_mcp55[0], ((sbdn+2)<<2)|0, apicid_mcp55, 0x16); // 22 | ||||||
|   | |||||||
| @@ -100,20 +100,9 @@ static void *smp_write_config_table(void *v) | |||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 		   /*I/O Ints:	Type	Polarity    Trigger			Bus ID	 IRQ	APIC ID	PIN# */ | 	mptable_add_isa_interrupts(mc, m->bus_isa, m->apicid_mcp55, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x0, m->apicid_mcp55, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x1, m->apicid_mcp55, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x0, m->apicid_mcp55, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x3, m->apicid_mcp55, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x4, m->apicid_mcp55, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x6, m->apicid_mcp55, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x7, m->apicid_mcp55, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x8, m->apicid_mcp55, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xc, m->apicid_mcp55, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xd, m->apicid_mcp55, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xe, m->apicid_mcp55, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xf, m->apicid_mcp55, 0xf); |  | ||||||
|  |  | ||||||
|  | 		   /*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); | 	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); | ||||||
|  |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_mcp55[0], ((sbdn+2)<<2)|0, m->apicid_mcp55, 0x16); // 22 | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_mcp55[0], ((sbdn+2)<<2)|0, m->apicid_mcp55, 0x16); // 22 | ||||||
|   | |||||||
| @@ -101,20 +101,9 @@ static void *smp_write_config_table(void *v) | |||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 		   /*I/O Ints:	Type	Polarity    Trigger			Bus ID	 IRQ	APIC ID	PIN# */ | 	mptable_add_isa_interrupts(mc, m->bus_isa, m->apicid_mcp55, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x0, m->apicid_mcp55, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x1, m->apicid_mcp55, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x0, m->apicid_mcp55, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x3, m->apicid_mcp55, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x4, m->apicid_mcp55, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x6, m->apicid_mcp55, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x7, m->apicid_mcp55, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x8, m->apicid_mcp55, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xc, m->apicid_mcp55, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xd, m->apicid_mcp55, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xe, m->apicid_mcp55, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xf, m->apicid_mcp55, 0xf); |  | ||||||
|  |  | ||||||
|  | 		   /*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, 0x5);  /*  5 SMBus, OK */ | 	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, 0x5);  /*  5 SMBus, OK */ | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_mcp55[0], ((sbdn+2)<<2)|0, m->apicid_mcp55, 0xb); /* 11 USB, OK */ | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_mcp55[0], ((sbdn+2)<<2)|0, m->apicid_mcp55, 0xb); /* 11 USB, OK */ | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_mcp55[0], ((sbdn+2)<<2)|1, m->apicid_mcp55, 0xa); /* 10 USB, OK */ | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_mcp55[0], ((sbdn+2)<<2)|1, m->apicid_mcp55, 0xa); /* 10 USB, OK */ | ||||||
|   | |||||||
| @@ -61,39 +61,14 @@ static void *smp_write_config_table(void *v) | |||||||
| 	smp_write_ioapic(mc, 2, 0x20, 0xfec00000); | 	smp_write_ioapic(mc, 2, 0x20, 0xfec00000); | ||||||
| 	smp_write_ioapic(mc, 3, 0x20, 0xfec10000); | 	smp_write_ioapic(mc, 3, 0x20, 0xfec10000); | ||||||
|  |  | ||||||
| 	/* ISA backward compatibility interrupts  */ | 	mptable_add_isa_interrupts(mc, bus_isa, 0x2, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x00, 0x02, 0x00); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x01, 0x02, 0x01); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x00, 0x02, 0x02); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x03, 0x02, 0x03); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x04, 0x02, 0x04); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x74, 0x02, 0x10); | 		0x00, 0x74, 0x02, 0x10); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x06, 0x02, 0x06); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x07, 0x02, 0x07); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x08, 0x02, 0x08); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x09, 0x02, 0x09); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x77, 0x02, 0x17); | 		0x00, 0x77, 0x02, 0x17); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x75, 0x02, 0x13); | 		0x00, 0x75, 0x02, 0x13); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x0c, 0x02, 0x0c); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x0d, 0x02, 0x0d); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x0e, 0x02, 0x0e); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x0f, 0x02, 0x0f); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x7c, 0x02, 0x12); | 		0x00, 0x7c, 0x02, 0x12); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
|   | |||||||
| @@ -113,39 +113,14 @@ static void *smp_write_config_table(void *v) | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/* ISA backward compatibility interrupts  */ | 	mptable_add_isa_interrupts(mc, bus_isa, 0x2, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x00, 0x02, 0x00); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x01, 0x02, 0x01); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x00, 0x02, 0x02); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x03, 0x02, 0x03); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x04, 0x02, 0x04); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x74, 0x02, 0x10); | 		0x00, 0x74, 0x02, 0x10); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x06, 0x02, 0x06); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, // added |  | ||||||
| 		bus_isa, 0x07, 0x02, 0x07); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x08, 0x02, 0x08); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x09, 0x02, 0x09); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x77, 0x02, 0x17); | 		0x00, 0x77, 0x02, 0x17); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x75, 0x02, 0x13); | 		0x00, 0x75, 0x02, 0x13); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x0c, 0x02, 0x0c); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x0d, 0x02, 0x0d); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x0e, 0x02, 0x0e); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x0f, 0x02, 0x0f); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x7c, 0x02, 0x12); | 		0x00, 0x7c, 0x02, 0x12); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
|   | |||||||
| @@ -113,39 +113,15 @@ static void *smp_write_config_table(void *v) | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	mptable_add_isa_interrupts(mc, bus_isa, 0x2, 0); | ||||||
|  |  | ||||||
| 	/* ISA backward compatibility interrupts  */ | 	/* ISA backward compatibility interrupts  */ | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x00, 0x02, 0x00); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x01, 0x02, 0x01); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x00, 0x02, 0x02); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x03, 0x02, 0x03); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x04, 0x02, 0x04); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x74, 0x02, 0x10); | 		0x00, 0x74, 0x02, 0x10); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x06, 0x02, 0x06); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, // added |  | ||||||
| 		bus_isa, 0x07, 0x02, 0x07); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x08, 0x02, 0x08); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x09, 0x02, 0x09); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x77, 0x02, 0x17); | 		0x00, 0x77, 0x02, 0x17); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x75, 0x02, 0x13); | 		0x00, 0x75, 0x02, 0x13); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x0c, 0x02, 0x0c); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x0d, 0x02, 0x0d); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x0e, 0x02, 0x0e); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x0f, 0x02, 0x0f); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x7c, 0x02, 0x12); | 		0x00, 0x7c, 0x02, 0x12); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
|   | |||||||
| @@ -159,40 +159,16 @@ static void *smp_write_config_table(void *v) | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
|  | 	mptable_add_isa_interrupts(mc, bus_isa, 0x2, 0); | ||||||
|  |  | ||||||
| 	/* ISA backward compatibility interrupts  */ |  | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x00, 0x02, 0x00); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x01, 0x02, 0x01); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x00, 0x02, 0x02); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x03, 0x02, 0x03); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x04, 0x02, 0x04); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x74, 0x02, 0x10); | 		0x00, 0x74, 0x02, 0x10); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x06, 0x02, 0x06); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x76, 0x02, 0x12); | 		0x00, 0x76, 0x02, 0x12); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x08, 0x02, 0x08); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x09, 0x02, 0x09); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x77, 0x02, 0x17); | 		0x00, 0x77, 0x02, 0x17); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x75, 0x02, 0x13); | 		0x00, 0x75, 0x02, 0x13); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x0c, 0x02, 0x0c); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x0d, 0x02, 0x0d); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x0e, 0x02, 0x0e); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x0f, 0x02, 0x0f); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x74, 0x02, 0x10); | 		0x00, 0x74, 0x02, 0x10); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
|   | |||||||
| @@ -136,39 +136,17 @@ static void *smp_write_config_table(void *v) | |||||||
| 			printk(BIOS_DEBUG, "ERROR - could not find IOAPIC PCI 1:00.3\n"); | 			printk(BIOS_DEBUG, "ERROR - could not find IOAPIC PCI 1:00.3\n"); | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  | 	mptable_add_isa_interrupts(mc, bus_isa, 0x2, 0); | ||||||
|  |  | ||||||
| 	/* ISA backward compatibility interrupts  */ | 	/* ISA backward compatibility interrupts  */ | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x00, 0x02, 0x00); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x01, 0x02, 0x01); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x00, 0x02, 0x02); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x03, 0x02, 0x03); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x04, 0x02, 0x04); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x74, 0x02, 0x10); | 		0x00, 0x74, 0x02, 0x10); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x06, 0x02, 0x06); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x76, 0x02, 0x12); | 		0x00, 0x76, 0x02, 0x12); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x08, 0x02, 0x08); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x09, 0x02, 0x09); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x77, 0x02, 0x17); | 		0x00, 0x77, 0x02, 0x17); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x75, 0x02, 0x13); | 		0x00, 0x75, 0x02, 0x13); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x0c, 0x02, 0x0c); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x0d, 0x02, 0x0d); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x0e, 0x02, 0x0e); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, |  | ||||||
| 		bus_isa, 0x0f, 0x02, 0x0f); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
| 		0x00, 0x74, 0x02, 0x10); | 		0x00, 0x74, 0x02, 0x10); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, | ||||||
|   | |||||||
| @@ -117,27 +117,10 @@ static void *smp_write_config_table(void *v) | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/* I/O Ints:    Type    Polarity    Trigger     Bus ID   IRQ    APIC ID PIN# */ |  | ||||||
| #define IO_LOCAL_INT(type, intr, apicid, pin) \ | #define IO_LOCAL_INT(type, intr, apicid, pin) \ | ||||||
| 	smp_write_intsrc(mc, (type), MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, bus_isa, (intr), (apicid), (pin)); | 	smp_write_intsrc(mc, (type), MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, bus_isa, (intr), (apicid), (pin)); | ||||||
|  |  | ||||||
| 	IO_LOCAL_INT(mp_ExtINT, 0x0, apicid_sb600, 0x0); | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_sb600, 0); | ||||||
|  |  | ||||||
| 	/* ISA ints are edge-triggered, and usually originate from the ISA bus, |  | ||||||
| 	 * or its remainings. |  | ||||||
| 	 */ |  | ||||||
| #define ISA_INT(intr, pin) \ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, (intr), apicid_sb600, (pin)) |  | ||||||
|  |  | ||||||
| 	ISA_INT(0x1, 0x1); |  | ||||||
| 	ISA_INT(0x0, 0x2); |  | ||||||
| 	ISA_INT(0x3, 0x3); |  | ||||||
| 	ISA_INT(0x4, 0x4); |  | ||||||
| 	ISA_INT(0x6, 0x6); |  | ||||||
| 	ISA_INT(0x7, 0x7); |  | ||||||
| 	ISA_INT(0xc, 0xc); |  | ||||||
| 	ISA_INT(0xd, 0xd); |  | ||||||
| 	ISA_INT(0xe, 0xe); |  | ||||||
|  |  | ||||||
| 	/* PCI interrupts are level triggered, and are | 	/* PCI interrupts are level triggered, and are | ||||||
| 	 * associated with a specific bus/device/function tuple. | 	 * associated with a specific bus/device/function tuple. | ||||||
|   | |||||||
| @@ -117,27 +117,10 @@ static void *smp_write_config_table(void *v) | |||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	/* I/O Ints:    Type    Polarity    Trigger     Bus ID   IRQ    APIC ID PIN# */ |  | ||||||
| #define IO_LOCAL_INT(type, intr, apicid, pin) \ | #define IO_LOCAL_INT(type, intr, apicid, pin) \ | ||||||
| 	smp_write_intsrc(mc, (type), MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, bus_isa, (intr), (apicid), (pin)); | 	smp_write_intsrc(mc, (type), MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, bus_isa, (intr), (apicid), (pin)); | ||||||
|  |  | ||||||
| 	IO_LOCAL_INT(mp_ExtINT, 0x0, apicid_sb600, 0x0); | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_sb600, 0); | ||||||
|  |  | ||||||
| 	/* ISA ints are edge-triggered, and usually originate from the ISA bus, |  | ||||||
| 	 * or its remainings. |  | ||||||
| 	 */ |  | ||||||
| #define ISA_INT(intr, pin) \ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, (intr), apicid_sb600, (pin)) |  | ||||||
|  |  | ||||||
| 	ISA_INT(0x1, 0x1); |  | ||||||
| 	ISA_INT(0x0, 0x2); |  | ||||||
| 	ISA_INT(0x3, 0x3); |  | ||||||
| 	ISA_INT(0x4, 0x4); |  | ||||||
| 	ISA_INT(0x6, 0x6); |  | ||||||
| 	ISA_INT(0x7, 0x7); |  | ||||||
| 	ISA_INT(0xc, 0xc); |  | ||||||
| 	ISA_INT(0xd, 0xd); |  | ||||||
| 	ISA_INT(0xe, 0xe); |  | ||||||
|  |  | ||||||
| 	/* PCI interrupts are level triggered, and are | 	/* PCI interrupts are level triggered, and are | ||||||
| 	 * associated with a specific bus/device/function tuple. | 	 * associated with a specific bus/device/function tuple. | ||||||
|   | |||||||
| @@ -58,20 +58,10 @@ static void *smp_write_config_table(void *v) | |||||||
|                         } |                         } | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  | 	mptable_add_isa_interrupts(mc, 0x5, 0x8, 0); | ||||||
|  |  | ||||||
| /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# | /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# | ||||||
| */ | */ | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, 0x5, 0x0, 0x8, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, 0x5, 0x1, 0x8, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, 0x5, 0x0, 0x8, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, 0x5, 0x3, 0x8, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, 0x5, 0x4, 0x8, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, 0x5, 0x6, 0x8, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, 0x5, 0x8, 0x8, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, 0x5, 0x9, 0x8, 0x9); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, 0x5, 0xc, 0x8, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, 0x5, 0xd, 0x8, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, 0x5, 0xe, 0x8, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, 0x5, 0xf, 0x8, 0xf); |  | ||||||
| //USB | //USB | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x7c, 0x8, 0x12); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x7c, 0x8, 0x12); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x7d, 0x8, 0x11); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x7d, 0x8, 0x11); | ||||||
|   | |||||||
| @@ -116,22 +116,10 @@ static void *smp_write_config_table(void *v) | |||||||
|  |  | ||||||
| 	smp_write_ioapic(mc, apicid_8111, 0x11, 0xfec00000); | 	smp_write_ioapic(mc, apicid_8111, 0x11, 0xfec00000); | ||||||
|  |  | ||||||
|  | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_8111, 0); | ||||||
|  |  | ||||||
| /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# */ | /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# */ | ||||||
|  |  | ||||||
|         smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, apicid_8111, 0x0); |  | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x1, apicid_8111, 0x1); |  | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, apicid_8111, 0x2); |  | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x3, apicid_8111, 0x3); |  | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x4, apicid_8111, 0x4); |  | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x6, apicid_8111, 0x6); |  | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x7, apicid_8111, 0x7); |  | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x8, apicid_8111, 0x8); |  | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xc, apicid_8111, 0xc); |  | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xd, apicid_8111, 0xd); |  | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xe, apicid_8111, 0xe); |  | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xf, apicid_8111, 0xf); |  | ||||||
|  |  | ||||||
|  |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_chain_0, (2<<2)|3, apicid_8111, 0x13); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_chain_0, (2<<2)|3, apicid_8111, 0x13); | ||||||
|  |  | ||||||
| //On Board AMD USB | //On Board AMD USB | ||||||
|   | |||||||
| @@ -131,21 +131,9 @@ static void *smp_write_config_table(void *v) | |||||||
|         apicid_8111 = apicid_base+0; |         apicid_8111 = apicid_base+0; | ||||||
| 	smp_write_ioapic(mc, apicid_8111, 0x11, 0xfec00000); | 	smp_write_ioapic(mc, apicid_8111, 0x11, 0xfec00000); | ||||||
|  |  | ||||||
| /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_8111, 0); | ||||||
| */	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, apicid_8111, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x1, apicid_8111, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x0, apicid_8111, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x3, apicid_8111, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x4, apicid_8111, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x6, apicid_8111, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x7, apicid_8111, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x8, apicid_8111, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xc, apicid_8111, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xd, apicid_8111, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xe, apicid_8111, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xf, apicid_8111, 0xf); |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# */ | ||||||
| //??? What | //??? What | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_chain_0, (5<<2)|3, apicid_8111, 0x13); |         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_chain_0, (5<<2)|3, apicid_8111, 0x13); | ||||||
| //Onboard AMD AC97 Audio ??? | //Onboard AMD AC97 Audio ??? | ||||||
|   | |||||||
| @@ -166,21 +166,9 @@ static void *smp_write_config_table(void *v) | |||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_8111, 0); | ||||||
| */	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, apicid_8111, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x1, apicid_8111, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, apicid_8111, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x3, apicid_8111, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x4, apicid_8111, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x6, apicid_8111, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x7, apicid_8111, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x8, apicid_8111, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xc, apicid_8111, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xd, apicid_8111, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xe, apicid_8111, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xf, apicid_8111, 0xf); |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /*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, bus_chain_0, (4<<2)|0, apicid_8111, 0x13); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_chain_0, (4<<2)|0, apicid_8111, 0x13); | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -83,20 +83,9 @@ static void *smp_write_config_table(void *v) | |||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_8111, 0); | ||||||
| */	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, apicid_8111, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x1, apicid_8111, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, apicid_8111, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x3, apicid_8111, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x4, apicid_8111, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x6, apicid_8111, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x7, apicid_8111, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x8, apicid_8111, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xc, apicid_8111, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xd, apicid_8111, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xe, apicid_8111, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xf, apicid_8111, 0xf); |  | ||||||
|  |  | ||||||
|  | /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# */ | ||||||
| //8111 LPC ???? | //8111 LPC ???? | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8111_0, ((sysconf.sbdn+1)<<2)|0, apicid_8111, 0x13); |         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8111_0, ((sysconf.sbdn+1)<<2)|0, apicid_8111, 0x13); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -164,20 +164,9 @@ static void *smp_write_config_table(void *v) | |||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# */ | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_8111, 0); | ||||||
|         smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, apicid_8111, 0x0); |  | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x1, apicid_8111, 0x1); |  | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, apicid_8111, 0x2); |  | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x3, apicid_8111, 0x3); |  | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x4, apicid_8111, 0x4); |  | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x6, apicid_8111, 0x6); |  | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x7, apicid_8111, 0x7); |  | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x8, apicid_8111, 0x8); |  | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xc, apicid_8111, 0xc); |  | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xd, apicid_8111, 0xd); |  | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xe, apicid_8111, 0xe); |  | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xf, apicid_8111, 0xf); |  | ||||||
|  |  | ||||||
|  | /*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, bus_chain_0, (4<<2)|3, apicid_8111, 0x13); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_chain_0, (4<<2)|3, apicid_8111, 0x13); | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -84,20 +84,9 @@ static void *smp_write_config_table(void *v) | |||||||
|                 } |                 } | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_8111, 0); | ||||||
| */	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, apicid_8111, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x1, apicid_8111, 0x1); | /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# */ | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x0, apicid_8111, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x3, apicid_8111, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x4, apicid_8111, 0x4); |  | ||||||
|   	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x5, apicid_8111, 0x5); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x6, apicid_8111, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x7, apicid_8111, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x8, apicid_8111, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xc, apicid_8111, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xd, apicid_8111, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xe, apicid_8111, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xf, apicid_8111, 0xf); |  | ||||||
| //??? What | //??? What | ||||||
|         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8111_0, ((sysconf.sbdn+1)<<2)|3, apicid_8111, 0x13); |         smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_8111_0, ((sysconf.sbdn+1)<<2)|3, apicid_8111, 0x13); | ||||||
| //Onboard AMD AC97 Audio | //Onboard AMD AC97 Audio | ||||||
|   | |||||||
| @@ -107,19 +107,7 @@ static void *smp_write_config_table(void *v) | |||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_ck804, 1); | ||||||
| */	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, apicid_ck804, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x1, apicid_ck804, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x0, apicid_ck804, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x3, apicid_ck804, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x4, apicid_ck804, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x6, apicid_ck804, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x7, apicid_ck804, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x8, apicid_ck804, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xc, apicid_ck804, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xd, apicid_ck804, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xe, apicid_ck804, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xf, apicid_ck804, 0xf); |  | ||||||
|  |  | ||||||
| // Onboard ck804 smbus | // Onboard ck804 smbus | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_ck804_0, ((sbdn+1)<<2)|1, apicid_ck804, 0xa); // 10 | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_ck804_0, ((sbdn+1)<<2)|1, apicid_ck804, 0xa); // 10 | ||||||
|   | |||||||
| @@ -107,20 +107,9 @@ static void *smp_write_config_table(void *v) | |||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_ck804, 1); | ||||||
| */	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, apicid_ck804, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x1, apicid_ck804, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x0, apicid_ck804, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x3, apicid_ck804, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x4, apicid_ck804, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x6, apicid_ck804, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x7, apicid_ck804, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x8, apicid_ck804, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xc, apicid_ck804, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xd, apicid_ck804, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xe, apicid_ck804, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xf, apicid_ck804, 0xf); |  | ||||||
|  |  | ||||||
|  | /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# */ | ||||||
| // Onboard ck804 smbus | // Onboard ck804 smbus | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_ck804_0, ((sbdn+1)<<2)|1, apicid_ck804, 0xa); // 10 | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_ck804_0, ((sbdn+1)<<2)|1, apicid_ck804, 0xa); // 10 | ||||||
|  |  | ||||||
|   | |||||||
| @@ -135,20 +135,9 @@ static void *smp_write_config_table(void *v) | |||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_ck804, 1); | ||||||
| */	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, apicid_ck804, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x1, apicid_ck804, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x0, apicid_ck804, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x3, apicid_ck804, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x4, apicid_ck804, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x6, apicid_ck804, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x7, apicid_ck804, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0x8, apicid_ck804, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xc, apicid_ck804, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xd, apicid_ck804, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xe, apicid_ck804, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  bus_isa, 0xf, apicid_ck804, 0xf); |  | ||||||
|  |  | ||||||
|  | /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# */ | ||||||
| // Onboard ck804 smbus | // Onboard ck804 smbus | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_ck804_0, ((sbdn+1)<<2)|1, apicid_ck804, 0xa); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_ck804_0, ((sbdn+1)<<2)|1, apicid_ck804, 0xa); | ||||||
| // 10 | // 10 | ||||||
|   | |||||||
| @@ -100,20 +100,9 @@ static void *smp_write_config_table(void *v) | |||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 		   /*I/O Ints:	Type	Polarity    Trigger			Bus ID	 IRQ	APIC ID	PIN# */ | 	mptable_add_isa_interrupts(mc, m->bus_isa, m->apicid_mcp55, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x0, m->apicid_mcp55, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x1, m->apicid_mcp55, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x0, m->apicid_mcp55, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x3, m->apicid_mcp55, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x4, m->apicid_mcp55, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x6, m->apicid_mcp55, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x7, m->apicid_mcp55, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x8, m->apicid_mcp55, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xc, m->apicid_mcp55, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xd, m->apicid_mcp55, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xe, m->apicid_mcp55, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xf, m->apicid_mcp55, 0xf); |  | ||||||
|  |  | ||||||
|  | 		   /*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); | 	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); | ||||||
|  |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_mcp55[0], ((sbdn+2)<<2)|0, m->apicid_mcp55, 0x16); // 22 | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_mcp55[0], ((sbdn+2)<<2)|0, m->apicid_mcp55, 0x16); // 22 | ||||||
|   | |||||||
| @@ -100,20 +100,9 @@ static void *smp_write_config_table(void *v) | |||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 			/*I/O Ints:	Type	Polarity    Trigger			Bus ID	 IRQ	APIC ID	PIN# */ | 	mptable_add_isa_interrupts(mc, m->bus_isa, m->apicid_mcp55, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, m->bus_isa, 0x0, m->apicid_mcp55, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x1, m->apicid_mcp55, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x0, m->apicid_mcp55, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x3, m->apicid_mcp55, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x4, m->apicid_mcp55, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x6, m->apicid_mcp55, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x7, m->apicid_mcp55, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0x8, m->apicid_mcp55, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xc, m->apicid_mcp55, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xd, m->apicid_mcp55, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xe, m->apicid_mcp55, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH,  m->bus_isa, 0xf, m->apicid_mcp55, 0xf); |  | ||||||
|  |  | ||||||
|  | 			/*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); | 	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); | ||||||
|  |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_mcp55[0], ((sbdn+2)<<2)|0, m->apicid_mcp55, 0x16); // 22 | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, m->bus_mcp55[0], ((sbdn+2)<<2)|0, m->apicid_mcp55, 0x16); // 22 | ||||||
|   | |||||||
| @@ -165,25 +165,9 @@ static void *smp_write_config_table(void *v) | |||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_8111, 0); | ||||||
| */	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, apicid_8111, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x1, apicid_8111, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, apicid_8111, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x3, apicid_8111, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x4, apicid_8111, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x5, apicid_8111, 0x5); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x6, apicid_8111, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x7, apicid_8111, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x8, apicid_8111, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x9, apicid_8111, 0x9); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xa, apicid_8111, 0xa); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xb, apicid_8111, 0xb); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xc, apicid_8111, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xd, apicid_8111, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xe, apicid_8111, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xf, apicid_8111, 0xf); |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /*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, bus_chain_0, (4<<2)|0, apicid_8111, 0x13); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_chain_0, (4<<2)|0, apicid_8111, 0x13); | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -165,25 +165,9 @@ static void *smp_write_config_table(void *v) | |||||||
|  |  | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# | 	mptable_add_isa_interrupts(mc, bus_isa, apicid_8111, 0); | ||||||
| */	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, apicid_8111, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x1, apicid_8111, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x0, apicid_8111, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x3, apicid_8111, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x4, apicid_8111, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x5, apicid_8111, 0x5); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x6, apicid_8111, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x7, apicid_8111, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x8, apicid_8111, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0x9, apicid_8111, 0x9); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xa, apicid_8111, 0xa); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xb, apicid_8111, 0xb); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xc, apicid_8111, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xd, apicid_8111, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xe, apicid_8111, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, bus_isa, 0xf, apicid_8111, 0xf); |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  | /*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, bus_chain_0, (4<<2)|0, apicid_8111, 0x13); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, bus_chain_0, (4<<2)|0, apicid_8111, 0x13); | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -71,8 +71,10 @@ static void *smp_write_config_table(void *v) | |||||||
| 			} | 			} | ||||||
|                 } |                 } | ||||||
| 	} | 	} | ||||||
| /*I/O Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN# | 	mptable_add_isa_interrupts(mc, 0x2, 0x2, 0); | ||||||
| */	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x40, 0x2, 0x15); |  | ||||||
|  | /*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, 0x0, 0x40, 0x2, 0x15); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x40, 0x2, 0x15); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x40, 0x2, 0x15); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x41, 0x2, 0x15); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x41, 0x2, 0x15); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x41, 0x2, 0x15); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x41, 0x2, 0x15); | ||||||
| @@ -81,19 +83,6 @@ static void *smp_write_config_table(void *v) | |||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x1, 0x0, 0x2, 0x10); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x1, 0x0, 0x2, 0x10); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x48, 0x2, 0x17); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x48, 0x2, 0x17); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x3d, 0x2, 0x14); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, 0x0, 0x3d, 0x2, 0x14); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x2, 0x0, 0x2, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x2, 0x1, 0x2, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x2, 0x0, 0x2, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x2, 0x3, 0x2, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x2, 0x4, 0x2, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x2, 0x5, 0x2, 0x5); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x2, 0x6, 0x2, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x2, 0x7, 0x2, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, 0x2, 0x8, 0x2, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x2, 0x9, 0x2, 0x9); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x2, 0xd, 0x2, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x2, 0xe, 0x2, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x2, 0xf, 0x2, 0xf); |  | ||||||
| /*Local Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN#*/ | /*Local Ints:	Type	Polarity    Trigger	Bus ID	 IRQ	APIC ID	PIN#*/ | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x0, 0x0, MP_APIC_ALL, 0x0); | 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x0, 0x0, MP_APIC_ALL, 0x0); | ||||||
| 	smp_write_intsrc(mc, mp_NMI, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x0, 0x0, MP_APIC_ALL, 0x1); | 	smp_write_intsrc(mc, mp_NMI, MP_IRQ_TRIGGER_DEFAULT|MP_IRQ_POLARITY_DEFAULT, 0x0, 0x0, MP_APIC_ALL, 0x1); | ||||||
|   | |||||||
| @@ -73,29 +73,7 @@ static void *smp_write_config_table(void *v) | |||||||
| 	smp_write_ioapic(mc, VT8237R_APIC_ID, 0x20, VT8237R_APIC_BASE); | 	smp_write_ioapic(mc, VT8237R_APIC_ID, 0x20, VT8237R_APIC_BASE); | ||||||
|  |  | ||||||
| 	/* Now, assemble the table. */ | 	/* Now, assemble the table. */ | ||||||
|  | 	mptable_add_isa_interrupts(mc, bus_isa, VT8237R_APIC_ID, 0); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, |  | ||||||
| 			 MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, |  | ||||||
| 			 bus_isa, 0x0, VT8237R_APIC_ID, 0x0); |  | ||||||
|  |  | ||||||
| #define ISA_INT(intr, pin) \ |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE|MP_IRQ_POLARITY_HIGH, \ |  | ||||||
| 		bus_isa, (intr), VT8237R_APIC_ID, (pin)) |  | ||||||
|  |  | ||||||
| 	ISA_INT(1, 1); |  | ||||||
| 	ISA_INT(0, 2); |  | ||||||
| 	ISA_INT(3, 3); |  | ||||||
| 	ISA_INT(4, 4); |  | ||||||
|  |  | ||||||
| 	ISA_INT(6, 6); |  | ||||||
| 	ISA_INT(7, 7); |  | ||||||
| 	ISA_INT(8, 8); |  | ||||||
| 	ISA_INT(9, 9); |  | ||||||
|  |  | ||||||
| 	ISA_INT(0xc, 0xc); |  | ||||||
| 	ISA_INT(0xd, 0xd); |  | ||||||
| 	ISA_INT(0xe, 0xe); |  | ||||||
| 	ISA_INT(0xf, 0xf); |  | ||||||
|  |  | ||||||
| #define PCI_INT(bus, dev, fn, pin) \ | #define PCI_INT(bus, dev, fn, pin) \ | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, \ | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL|MP_IRQ_POLARITY_LOW, \ | ||||||
|   | |||||||
| @@ -63,6 +63,8 @@ static void *smp_write_config_table(void *v) | |||||||
| 	/* I/O APICs:   APIC ID Version State Address */ | 	/* I/O APICs:   APIC ID Version State Address */ | ||||||
| 	smp_write_ioapic(mc, 2, 17, 0xfec00000); | 	smp_write_ioapic(mc, 2, 17, 0xfec00000); | ||||||
|  |  | ||||||
|  | 	mptable_add_isa_interrupts(mc, 0x81, 0x2, 0); | ||||||
|  |  | ||||||
| 	/* I/O Ints:    Type    Polarity    Trigger     Bus ID   IRQ    APIC ID PIN# */ | 	/* 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, 0x0, 0x40, 0x2, 0x14); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, 0x0, 0x40, 0x2, 0x14); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, 0x0, 0x41, 0x2, 0x16); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, 0x0, 0x41, 0x2, 0x16); | ||||||
| @@ -71,19 +73,6 @@ static void *smp_write_config_table(void *v) | |||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, 0x80, 0x4, 0x2, 0x11); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, 0x80, 0x4, 0x2, 0x11); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, 0x1, 0x0, 0x2, 0x11); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, 0x1, 0x0, 0x2, 0x11); | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, 0x2, 0x10, 0x2, 0x11); | 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_LEVEL | MP_IRQ_POLARITY_LOW, 0x2, 0x10, 0x2, 0x11); | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x81, 0x0, 0x2, 0x0); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x81, 0x1, 0x2, 0x1); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x81, 0x0, 0x2, 0x2); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x81, 0x3, 0x2, 0x3); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x81, 0x4, 0x2, 0x4); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x81, 0x6, 0x2, 0x6); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x81, 0x7, 0x2, 0x7); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_EDGE | MP_IRQ_POLARITY_HIGH, 0x81, 0x8, 0x2, 0x8); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x81, 0x9, 0x2, 0x9); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x81, 0xc, 0x2, 0xc); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x81, 0xd, 0x2, 0xd); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x81, 0xe, 0x2, 0xe); |  | ||||||
| 	smp_write_intsrc(mc, mp_INT, MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x81, 0xf, 0x2, 0xf); |  | ||||||
|  |  | ||||||
| 	/*Local Ints:   Type    Polarity    Trigger     Bus ID   IRQ    APIC ID PIN# */ | 	/*Local Ints:   Type    Polarity    Trigger     Bus ID   IRQ    APIC ID PIN# */ | ||||||
| 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x0, 0x0, MP_APIC_ALL, 0x0); | 	smp_write_intsrc(mc, mp_ExtINT, MP_IRQ_TRIGGER_DEFAULT | MP_IRQ_POLARITY_DEFAULT, 0x0, 0x0, MP_APIC_ALL, 0x0); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user