Commit 62441bf1 authored by Alexey Starikovskiy's avatar Alexey Starikovskiy Committed by Ingo Molnar

x86: unify construct_default_ioirq_mptable

Signed-off-by: default avatarAlexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent e950bea8
...@@ -436,13 +436,13 @@ static void __init construct_default_ioirq_mptable(int mpc_default_type) ...@@ -436,13 +436,13 @@ static void __init construct_default_ioirq_mptable(int mpc_default_type)
* If it does, we assume it's valid. * If it does, we assume it's valid.
*/ */
if (mpc_default_type == 5) { if (mpc_default_type == 5) {
printk(KERN_INFO printk(KERN_INFO "ISA/PCI bus type with no IRQ information... "
"ISA/PCI bus type with no IRQ information... falling back to ELCR\n"); "falling back to ELCR\n");
if (ELCR_trigger(0) || ELCR_trigger(1) || ELCR_trigger(2) if (ELCR_trigger(0) || ELCR_trigger(1) || ELCR_trigger(2) ||
|| ELCR_trigger(13)) ELCR_trigger(13))
printk(KERN_WARNING printk(KERN_ERR "ELCR contains invalid data... "
"ELCR contains invalid data... not using ELCR\n"); "not using ELCR\n");
else { else {
printk(KERN_INFO printk(KERN_INFO
"Using ELCR to identify PCI interrupts\n"); "Using ELCR to identify PCI interrupts\n");
...@@ -523,8 +523,7 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type) ...@@ -523,8 +523,7 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type)
bus.mpc_busid = 0; bus.mpc_busid = 0;
switch (mpc_default_type) { switch (mpc_default_type) {
default: default:
printk("???\n"); printk(KERN_ERR "???\nUnknown standard configuration %d\n",
printk(KERN_ERR "Unknown standard configuration %d\n",
mpc_default_type); mpc_default_type);
/* fall through */ /* fall through */
case 1: case 1:
......
...@@ -401,10 +401,12 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type) ...@@ -401,10 +401,12 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type)
* 2 CPUs, numbered 0 & 1. * 2 CPUs, numbered 0 & 1.
*/ */
processor.mpc_type = MP_PROCESSOR; processor.mpc_type = MP_PROCESSOR;
processor.mpc_apicver = 0; /* Either an integrated APIC or a discrete 82489DX. */
processor.mpc_apicver = mpc_default_type > 4 ? 0x10 : 0x01;
processor.mpc_cpuflag = CPU_ENABLED; processor.mpc_cpuflag = CPU_ENABLED;
processor.mpc_cpufeature = 0; processor.mpc_cpufeature = (boot_cpu_data.x86 << 8) |
processor.mpc_featureflag = 0; (boot_cpu_data.x86_model << 4) | boot_cpu_data.x86_mask;
processor.mpc_featureflag = boot_cpu_data.x86_capability[0];
processor.mpc_reserved[0] = 0; processor.mpc_reserved[0] = 0;
processor.mpc_reserved[1] = 0; processor.mpc_reserved[1] = 0;
for (i = 0; i < 2; i++) { for (i = 0; i < 2; i++) {
...@@ -423,6 +425,14 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type) ...@@ -423,6 +425,14 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type)
case 5: case 5:
memcpy(bus.mpc_bustype, "ISA ", 6); memcpy(bus.mpc_bustype, "ISA ", 6);
break; break;
case 2:
case 6:
case 3:
memcpy(bus.mpc_bustype, "EISA ", 6);
break;
case 4:
case 7:
memcpy(bus.mpc_bustype, "MCA ", 6);
} }
MP_bus_info(&bus); MP_bus_info(&bus);
if (mpc_default_type > 4) { if (mpc_default_type > 4) {
...@@ -433,7 +443,7 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type) ...@@ -433,7 +443,7 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type)
ioapic.mpc_type = MP_IOAPIC; ioapic.mpc_type = MP_IOAPIC;
ioapic.mpc_apicid = 2; ioapic.mpc_apicid = 2;
ioapic.mpc_apicver = 0; ioapic.mpc_apicver = mpc_default_type > 4 ? 0x10 : 0x01;
ioapic.mpc_flags = MPC_APIC_USABLE; ioapic.mpc_flags = MPC_APIC_USABLE;
ioapic.mpc_apicaddr = 0xFEC00000; ioapic.mpc_apicaddr = 0xFEC00000;
MP_ioapic_info(&ioapic); MP_ioapic_info(&ioapic);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment