From owner-cvs-src@FreeBSD.ORG Tue May 4 13:39:24 2004 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C037F16A4CE; Tue, 4 May 2004 13:39:24 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 710A243D4C; Tue, 4 May 2004 13:39:24 -0700 (PDT) (envelope-from jhb@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.10/8.12.10) with ESMTP id i44KdOGe079649; Tue, 4 May 2004 13:39:24 -0700 (PDT) (envelope-from jhb@repoman.freebsd.org) Received: (from jhb@localhost) by repoman.freebsd.org (8.12.10/8.12.10/Submit) id i44KdOfk079648; Tue, 4 May 2004 13:39:24 -0700 (PDT) (envelope-from jhb) Message-Id: <200405042039.i44KdOfk079648@repoman.freebsd.org> From: John Baldwin Date: Tue, 4 May 2004 13:39:24 -0700 (PDT) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Subject: 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 X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 04 May 2004 20:39:25 -0000 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 Log: - 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 edge/high. - 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 mode. - 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 IRQs. - 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