Aladyshev Konstantin (kostr@list.ru) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/2043
-gerrit
commit 40435e4b72f92de68d976217124ae60813b92ffc Author: Kostr aladyshev@nicevt.ru Date: Tue Dec 18 22:29:20 2012 +0400
Fix reading of number of interrupts for IO-APICs
Do change http://review.coreboot.org/#/c/1624/ for "clear_ioapic" function
Change-Id: I7b730d016a514c95c3b32aee6f31bd3d7b2c08cb Signed-off-by: Kostr aladyshev@nicevt.ru --- src/arch/x86/lib/ioapic.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/arch/x86/lib/ioapic.c b/src/arch/x86/lib/ioapic.c index 018a42c..e05d80c 100644 --- a/src/arch/x86/lib/ioapic.c +++ b/src/arch/x86/lib/ioapic.c @@ -43,8 +43,11 @@ void clear_ioapic(u32 ioapic_base)
/* Read the available number of interrupts. */ ioapic_interrupts = (io_apic_read(ioapic_base, 0x01) >> 16) & 0xff; - if (!ioapic_interrupts || ioapic_interrupts == 0xff) - ioapic_interrupts = 24; + if (ioapic_interrupts == 0xff) + ioapic_interrupts = 23; + ioapic_interrupts += 1; /* Bits 23-16 specify the maximum redirection + entry, which is the number of interrupts + minus 1. */ printk(BIOS_DEBUG, "IOAPIC: %d interrupts\n", ioapic_interrupts);
low = DISABLED;
Just double checking, but this has run on real hardware, right?
thanks
ron