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>
This commit is contained in:
parent
5c2594e179
commit
c545baaf47
|
@ -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)
|
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);
|
set_ioapic_id(ioapic_base, ioapic_id);
|
||||||
|
clear_ioapic(ioapic_base);
|
||||||
|
|
||||||
if (enable_virtual_wire) {
|
if (enable_virtual_wire)
|
||||||
route_i8259_irq0(ioapic_base);
|
route_i8259_irq0(ioapic_base);
|
||||||
first = 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
last = ioapic_interrupt_count(ioapic_base) - 1;
|
|
||||||
clear_vectors(ioapic_base, first, last);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue