cvs commit: src/sys/i386/apic apic_abi.c mpapic.c

Matthew Dillon dillon at
Thu Nov 3 17:25:08 PST 2005

dillon      2005/11/03 17:21:39 PST

DragonFly src repository

  Modified files:
    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

More information about the Commits mailing list