DragonFly commits List (threaded) for 2005-11
cvs commit: src/sys/i386/apic apic_abi.c mpapic.c
dillon 2005/11/03 17:21:39 PST
DragonFly src repository
sys/i386/apic apic_abi.c mpapic.c
ICU/APIC cleanup part 10/many. Be a lot more careful programming the IO APIC.
* During initial pin programming, unprogrammed pins are placed in as
disconnected a state as possible by not only masking them, but
completely resetting their configuration.
* When programming or reprogramming an IO APIC pin, always place it into
edge-triggered mode before placing it into the actual mode. This will
hopefully ensure that the IRR bit gets cleared just in case an interrupt
had been queued to an LAPIC and not yet EOI'd. Otherwise, just
changing the vector can cause the EOI to get lost (my best understanding
of the IO APIC is that EOIs are based on the vector number).
* Use imen_lock/unlock around all IO APIC reprogramming sections.
Revision Changes Path
1.8 +27 -10 src/sys/i386/apic/apic_abi.c
1.13 +54 -25 src/sys/i386/apic/mpapic.c