diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h index b679a06e0..7a46e2661 100644 --- a/arch/x86/include/asm/apic.h +++ b/arch/x86/include/asm/apic.h @@ -44,6 +44,8 @@ extern "C" { #define APIC_TPR 0x0080 /// EOI Register #define APIC_EOI 0x00B0 +/// Required for future compatiblity +#define APIC_EOI_ACK 0x0000 /// Spurious Interrupt Vector Register #define APIC_SVR 0x00F0 /// Error Status Register diff --git a/arch/x86/kernel/apic.c b/arch/x86/kernel/apic.c index 3f4c43898..a7b1870ab 100644 --- a/arch/x86/kernel/apic.c +++ b/arch/x86/kernel/apic.c @@ -248,7 +248,7 @@ void apic_eoi(size_t int_no) * then we use the APIC */ if (apic_is_enabled() || int_no >= 48) { - lapic_write(APIC_EOI, 0); + lapic_write(APIC_EOI, APIC_EOI_ACK); } else { /* * If the IDT entry that was invoked was greater-than-or-equal to 40 @@ -1001,7 +1001,7 @@ int ipi_tlb_flush(void) static void apic_tlb_handler(struct state *s) { - LOG_INFO("Receive IPI at core %d to flush the TLB\n", CORE_ID); + LOG_DEBUG("Receive IPI at core %d to flush the TLB\n", CORE_ID); write_cr3(read_cr3()); } #endif @@ -1108,7 +1108,7 @@ static void apic_shutdown(struct state* s) static void apic_wakeup(struct state* s) { - LOG_INFO("Receive wakeup interrupt\n"); + LOG_DEBUG("Receive wakeup interrupt\n"); } int apic_init(void)