On Tue, Feb 2, 2010 at 6:40 PM, Stefan Reinauer <[email protected]> wrote: > On 2/2/10 4:25 AM, Bao, Zheng wrote: >> Index: src/arch/i386/smp/ioapic.c >> =================================================================== >> --- src/arch/i386/smp/ioapic.c (revision 5073) >> +++ src/arch/i386/smp/ioapic.c (working copy) >> @@ -110,7 +110,7 @@ >> #endif >> >> /* Enable Virtual Wire Mode */ >> - low = ENABLED | TRIGGER_EDGE | POLARITY_HIGH | PHYSICAL_DEST | >> ExtINT; >> + low = DISABLED; >> high = bsp_lapicid << (56 - 32); >> >> io_apic_write(ioapic_base, 0x10, low); >> > > Hm.. This will break quite some other boards... > > Is there any particular reason why the dbm690t will not work in virtual > wire mode? > > I think either the sb600 code should call clear_ioapic() instead of > setup_ioapic() or (maybe better) the setup_ioapic() function should get > an additional parameter virtual_wire > > Anyways, maybe we should try to unify clear_ioapic and setup_ioapic > > (also, the function should create a device node and append it to the > bridge it is called from)
Sefan, You are right. The sb600 was really doing a clear_ioapic() previously. I don't yet understand why the virtual wire mode causes problems. It is either an additional sb600 setup issue or a mainboard problem with how EXTINT is connected. The setup_ioapic() should probably have more options as EXTINT doesn't have to be connected to the APIC. Signed-off-by: Marc Jones <[email protected]> Marc -- http://se-eng.com
sb600_apic.patch
Description: Binary data
-- coreboot mailing list: [email protected] http://www.coreboot.org/mailman/listinfo/coreboot

