diff options
author | Richard Braun <rbraun@sceen.net> | 2017-06-03 15:49:00 +0200 |
---|---|---|
committer | Richard Braun <rbraun@sceen.net> | 2017-06-03 15:49:00 +0200 |
commit | 04002b5583c6da62b60b9c2470b0853178358658 (patch) | |
tree | 69e67f0e40cec69423fc1636e5f5b86a8cf20f39 | |
parent | 6bdd90785b1519f7b71d79390c0b76d2299445e5 (diff) |
x86: don't unconditionnally initialize the legacy PIC
-rw-r--r-- | arch/x86/machine/boot.c | 2 | ||||
-rw-r--r-- | arch/x86/machine/cpu.c | 3 | ||||
-rw-r--r-- | arch/x86/machine/lapic.c | 19 | ||||
-rw-r--r-- | arch/x86/machine/lapic.h | 11 |
4 files changed, 2 insertions, 33 deletions
diff --git a/arch/x86/machine/boot.c b/arch/x86/machine/boot.c index 84960eb6..bca02f8c 100644 --- a/arch/x86/machine/boot.c +++ b/arch/x86/machine/boot.c @@ -71,7 +71,6 @@ #include <machine/cpu.h> #include <machine/elf.h> #include <machine/multiboot.h> -#include <machine/pic.h> #include <machine/pit.h> #include <machine/pmap.h> #include <machine/strace.h> @@ -487,7 +486,6 @@ boot_main(void) biosmem_free_usable(); intr_setup(); cpu_mp_probe(); - pic_setup(); atcons_setup(); uart_setup(); kernel_main(); diff --git a/arch/x86/machine/cpu.c b/arch/x86/machine/cpu.c index 7684f569..451bef1c 100644 --- a/arch/x86/machine/cpu.c +++ b/arch/x86/machine/cpu.c @@ -34,6 +34,7 @@ #include <machine/cpu.h> #include <machine/io.h> #include <machine/lapic.h> +#include <machine/pic.h> #include <machine/pit.h> #include <machine/pmap.h> #include <machine/trap.h> @@ -652,7 +653,7 @@ cpu_mp_probe(void) * ACPI only. If ACPI is unavailable, consider the APIC system to * be missing and fall back to using the legaxy XT-PIC. */ - lapic_setup_unused(); + pic_setup(); } printf("cpu: %u processor(s) configured\n", cpu_count()); diff --git a/arch/x86/machine/lapic.c b/arch/x86/machine/lapic.c index 148a2a93..dad3bd75 100644 --- a/arch/x86/machine/lapic.c +++ b/arch/x86/machine/lapic.c @@ -184,9 +184,6 @@ static volatile struct lapic_map *lapic_map __read_mostly; */ static uint32_t lapic_bus_freq __read_mostly; -static bool lapic_initialized __initdata; -static bool lapic_is_unused __initdata; - static uint32_t lapic_read(const volatile struct lapic_register *r) { @@ -245,20 +242,6 @@ lapic_setup_registers(void) lapic_write(&lapic_map->timer_icr, lapic_bus_freq / HZ); } -bool __init -lapic_unused(void) -{ - assert(lapic_initialized); - return lapic_is_unused; -} - -void __init -lapic_setup_unused(void) -{ - lapic_initialized = true; - lapic_is_unused = true; -} - void __init lapic_setup(uint32_t map_addr) { @@ -278,8 +261,6 @@ lapic_setup(uint32_t map_addr) lapic_compute_freq(); lapic_setup_registers(); - - lapic_initialized = true; } void __init diff --git a/arch/x86/machine/lapic.h b/arch/x86/machine/lapic.h index ff9c8937..ae7abfe1 100644 --- a/arch/x86/machine/lapic.h +++ b/arch/x86/machine/lapic.h @@ -29,17 +29,6 @@ void lapic_eoi(void); /* - * Report whether the local APIC is actually used or not. - */ -bool lapic_unused(void); - -/* - * Initialize the lapic module for the sole purpose of reporting that - * it's actually not used. - */ -void lapic_setup_unused(void); - -/* * Set up the lapic module. */ void lapic_setup(uint32_t map_addr); |