summaryrefslogtreecommitdiffstats
path: root/src/arch
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/x86/Kconfig8
-rw-r--r--src/arch/x86/include/arch/ioapic.h4
-rw-r--r--src/arch/x86/ioapic.c17
3 files changed, 11 insertions, 18 deletions
diff --git a/src/arch/x86/Kconfig b/src/arch/x86/Kconfig
index a488b55d0a9c..6a25daeed29b 100644
--- a/src/arch/x86/Kconfig
+++ b/src/arch/x86/Kconfig
@@ -172,14 +172,6 @@ config CMOS_DEFAULT_FILE
default "src/mainboard/\$(MAINBOARDDIR)/cmos.default"
depends on HAVE_CMOS_DEFAULT
-config IOAPIC_INTERRUPTS_ON_FSB
- bool
- default y if !IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS
-
-config IOAPIC_INTERRUPTS_ON_APIC_SERIAL_BUS
- bool
- default n
-
config HPET_ADDRESS_OVERRIDE
def_bool n
diff --git a/src/arch/x86/include/arch/ioapic.h b/src/arch/x86/include/arch/ioapic.h
index 839dba497749..372cb79e9fa6 100644
--- a/src/arch/x86/include/arch/ioapic.h
+++ b/src/arch/x86/include/arch/ioapic.h
@@ -34,8 +34,8 @@ u8 get_ioapic_version(void *ioapic_base);
void setup_ioapic(void *ioapic_base, u8 ioapic_id);
void clear_ioapic(void *ioapic_base);
-void setup_ioapic_helper(void *ioapic_base, u8 ioapic_id, bool irq_on_fsb,
- bool enable_virtual_wire);
+void ioapic_set_boot_config(void *ioapic_base, bool irq_on_fsb);
+void setup_ioapic_helper(void *ioapic_base, u8 ioapic_id, bool enable_virtual_wire);
#endif
#endif
diff --git a/src/arch/x86/ioapic.c b/src/arch/x86/ioapic.c
index dc88de1a8e91..d2f65fdaf3e0 100644
--- a/src/arch/x86/ioapic.c
+++ b/src/arch/x86/ioapic.c
@@ -119,13 +119,8 @@ u8 get_ioapic_version(void *ioapic_base)
return io_apic_read(ioapic_base, 0x01) & 0xff;
}
-void setup_ioapic_helper(void *ioapic_base, u8 ioapic_id, bool irq_on_fsb,
- bool enable_virtual_wire)
+void ioapic_set_boot_config(void *ioapic_base, bool irq_on_fsb)
{
- int first = 0, last;
-
- set_ioapic_id(ioapic_base, ioapic_id);
-
if (irq_on_fsb) {
/*
* For the Pentium 4 and above APICs deliver their interrupts
@@ -139,6 +134,13 @@ void setup_ioapic_helper(void *ioapic_base, u8 ioapic_id, bool irq_on_fsb,
"IOAPIC: Enabling interrupts on APIC serial bus\n");
io_apic_write(ioapic_base, 0x03, 0);
}
+}
+
+void setup_ioapic_helper(void *ioapic_base, u8 ioapic_id, bool enable_virtual_wire)
+{
+ int first = 0, last;
+
+ set_ioapic_id(ioapic_base, ioapic_id);
if (enable_virtual_wire) {
route_i8259_irq0(ioapic_base);
@@ -152,6 +154,5 @@ void setup_ioapic_helper(void *ioapic_base, u8 ioapic_id, bool irq_on_fsb,
void setup_ioapic(void *ioapic_base, u8 ioapic_id)
{
- setup_ioapic_helper(ioapic_base, ioapic_id,
- CONFIG(IOAPIC_INTERRUPTS_ON_FSB), true);
+ setup_ioapic_helper(ioapic_base, ioapic_id, true);
}