cvs commit: src/sys/i386/acpica madt.c src/sys/i386/i386 io_apic.c local_apic.c mptable.c src/sys/i386/include apicvar.h

John Baldwin jhb at
Tue May 4 13:39:25 PDT 2004

jhb         2004/05/04 13:39:24 PDT

  FreeBSD src repository

  Modified files:
    sys/i386/acpica      madt.c 
    sys/i386/i386        io_apic.c local_apic.c mptable.c 
    sys/i386/include     apicvar.h 
  - Change the APIC code to mostly use the recently added intr_trigger
    and intr_polarity enums for passing around interrupt trigger modes and
    polarity rather than using the magic numbers 0 for level/low and 1 for
  - Convert the mptable parsing code to use the new ELCR wrapper code rather
    than reading the ELCR directly.  Also, use the ELCR settings to control
    both the trigger and polarity of EISA IRQs instead of just the trigger
  - Rework the MADT's handling of the ACPI SCI again:
    - If no override entry for the SCI exists at all, use level/low trigger
      instead of the default edge/high used for ISA IRQs.
    - For the ACPI SCI, use level/low values for conforming trigger and
      polarity rather than the edge/high values we use for all other ISA
    - Rework the tunables available to override the MADT.  The
      hw.acpi.force_sci_lo tunable is no longer supported.  Instead, there
      are now two tunables that can independently override the trigger mode
      and/or polarity of the SCI.  The hw.acpi.sci.trigger tunable can be
      set to either "edge" or "level", and the hw.acpi.sci.polarity tunable
      can be set to either "high" or "low".  To simulate hw.acpi.force_sci_lo,
      set hw.acpi.sci.trigger to "level" and hw.acpi.sci.polarity to "low".
      If you are having problems with ACPI either causing an interrupt storm
      or not working at all (e.g., the power button doesn't turn invoke a
      shutdown -p now), you can try tweaking these two tunables to find the
      combination that works.
  Revision  Changes    Path
  1.12      +86 -36    src/sys/i386/acpica/madt.c
  1.7       +8 -8      src/sys/i386/i386/io_apic.c
  1.8       +12 -10    src/sys/i386/i386/local_apic.c
  1.230     +27 -36    src/sys/i386/i386/mptable.c
  1.6       +7 -4      src/sys/i386/include/apicvar.h

More information about the cvs-src mailing list