summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2017-06-03 15:49:00 +0200
committerRichard Braun <rbraun@sceen.net>2017-06-03 15:49:00 +0200
commit04002b5583c6da62b60b9c2470b0853178358658 (patch)
tree69e67f0e40cec69423fc1636e5f5b86a8cf20f39
parent6bdd90785b1519f7b71d79390c0b76d2299445e5 (diff)
x86: don't unconditionnally initialize the legacy PIC
-rw-r--r--arch/x86/machine/boot.c2
-rw-r--r--arch/x86/machine/cpu.c3
-rw-r--r--arch/x86/machine/lapic.c19
-rw-r--r--arch/x86/machine/lapic.h11
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);