aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/mpparse_64.c
diff options
context:
space:
mode:
authorAlexey Starikovskiy <astarikovskiy@suse.de>2008-04-04 15:42:34 -0400
committerIngo Molnar <mingo@elte.hu>2008-04-17 11:41:36 -0400
commit62441bf1e0d5153dfb0cf8497df16deacff90789 (patch)
treedad63fa6e02c2496c66f23edc126bf746e549bff /arch/x86/kernel/mpparse_64.c
parente950bea8bff23c14eb38dc706aadf197ed81abf4 (diff)
x86: unify construct_default_ioirq_mptable
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/mpparse_64.c')
-rw-r--r--arch/x86/kernel/mpparse_64.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/arch/x86/kernel/mpparse_64.c b/arch/x86/kernel/mpparse_64.c
index d188848a893..11b74c9b8e0 100644
--- a/arch/x86/kernel/mpparse_64.c
+++ b/arch/x86/kernel/mpparse_64.c
@@ -401,10 +401,12 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type)
401 * 2 CPUs, numbered 0 & 1. 401 * 2 CPUs, numbered 0 & 1.
402 */ 402 */
403 processor.mpc_type = MP_PROCESSOR; 403 processor.mpc_type = MP_PROCESSOR;
404 processor.mpc_apicver = 0; 404 /* Either an integrated APIC or a discrete 82489DX. */
405 processor.mpc_apicver = mpc_default_type > 4 ? 0x10 : 0x01;
405 processor.mpc_cpuflag = CPU_ENABLED; 406 processor.mpc_cpuflag = CPU_ENABLED;
406 processor.mpc_cpufeature = 0; 407 processor.mpc_cpufeature = (boot_cpu_data.x86 << 8) |
407 processor.mpc_featureflag = 0; 408 (boot_cpu_data.x86_model << 4) | boot_cpu_data.x86_mask;
409 processor.mpc_featureflag = boot_cpu_data.x86_capability[0];
408 processor.mpc_reserved[0] = 0; 410 processor.mpc_reserved[0] = 0;
409 processor.mpc_reserved[1] = 0; 411 processor.mpc_reserved[1] = 0;
410 for (i = 0; i < 2; i++) { 412 for (i = 0; i < 2; i++) {
@@ -423,6 +425,14 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type)
423 case 5: 425 case 5:
424 memcpy(bus.mpc_bustype, "ISA ", 6); 426 memcpy(bus.mpc_bustype, "ISA ", 6);
425 break; 427 break;
428 case 2:
429 case 6:
430 case 3:
431 memcpy(bus.mpc_bustype, "EISA ", 6);
432 break;
433 case 4:
434 case 7:
435 memcpy(bus.mpc_bustype, "MCA ", 6);
426 } 436 }
427 MP_bus_info(&bus); 437 MP_bus_info(&bus);
428 if (mpc_default_type > 4) { 438 if (mpc_default_type > 4) {
@@ -433,7 +443,7 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type)
433 443
434 ioapic.mpc_type = MP_IOAPIC; 444 ioapic.mpc_type = MP_IOAPIC;
435 ioapic.mpc_apicid = 2; 445 ioapic.mpc_apicid = 2;
436 ioapic.mpc_apicver = 0; 446 ioapic.mpc_apicver = mpc_default_type > 4 ? 0x10 : 0x01;
437 ioapic.mpc_flags = MPC_APIC_USABLE; 447 ioapic.mpc_flags = MPC_APIC_USABLE;
438 ioapic.mpc_apicaddr = 0xFEC00000; 448 ioapic.mpc_apicaddr = 0xFEC00000;
439 MP_ioapic_info(&ioapic); 449 MP_ioapic_info(&ioapic);