diff options
author | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2021-06-06 06:19:15 +0300 |
---|---|---|
committer | Kyösti Mälkki <kyosti.malkki@gmail.com> | 2021-06-16 19:57:51 +0000 |
commit | c545baaf476016c1c136c3c88214c3c4252d4059 (patch) | |
tree | 71c376f297d09fd1df3707a87afbcc0f6db9b028 | |
parent | 5c2594e179f347fd23aecc4987ded12e18fa7895 (diff) |
arch/x86/ioapic: Clear vector table first
Always clear vector 0 entry before optionally overwriting it
with the i8259 timer redirection.
Change-Id: Ia2e96f43e6494711f9fc4fd74229f5817b04b48d
Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/55286
Reviewed-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-by: Furquan Shaikh <furquan@google.com>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
-rw-r--r-- | src/arch/x86/ioapic.c | 10 |
1 files changed, 2 insertions, 8 deletions
diff --git a/src/arch/x86/ioapic.c b/src/arch/x86/ioapic.c index d2f65fdaf3..a11e5dd9b3 100644 --- a/src/arch/x86/ioapic.c +++ b/src/arch/x86/ioapic.c @@ -138,17 +138,11 @@ 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) { - int first = 0, last; - set_ioapic_id(ioapic_base, ioapic_id); + clear_ioapic(ioapic_base); - if (enable_virtual_wire) { + if (enable_virtual_wire) route_i8259_irq0(ioapic_base); - first = 1; - } - - last = ioapic_interrupt_count(ioapic_base) - 1; - clear_vectors(ioapic_base, first, last); } |