From owner-freebsd-acpi@FreeBSD.ORG Thu Feb 28 18:17:54 2008 Return-Path: Delivered-To: freebsd-acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 34C28106566B for ; Thu, 28 Feb 2008 18:17:54 +0000 (UTC) (envelope-from nate@root.org) Received: from root.org (root.org [67.118.192.226]) by mx1.freebsd.org (Postfix) with ESMTP id 0D6A48FC24 for ; Thu, 28 Feb 2008 18:17:54 +0000 (UTC) (envelope-from nate@root.org) Received: (qmail 43773 invoked from network); 28 Feb 2008 18:17:54 -0000 Received: from adsl-71-141-98-131.dsl.snfc21.pacbell.net (HELO ?192.168.1.77?) (nate-mail@71.141.98.131) by root.org with ESMTPA; 28 Feb 2008 18:17:54 -0000 Message-ID: <47C6FACC.9090502@root.org> Date: Thu, 28 Feb 2008 10:17:48 -0800 From: Nate Lawson User-Agent: Thunderbird 2.0.0.12 (Windows/20080213) MIME-Version: 1.0 To: Andriy Gapon References: <47C67001.20101@icyb.net.ua> In-Reply-To: <47C67001.20101@icyb.net.ua> X-Enigmail-Version: 0.95.6 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-acpi@freebsd.org Subject: Re: mismatch between FACP and chipset spec X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 28 Feb 2008 18:17:54 -0000 Andriy Gapon wrote: > As some of you probably already know I have a motherboard based on > 440BX/PIIX4E chipset: > http://www.geocities.com/SiliconValley/3686/delta_mp2.html > > Here's some info from ACPI tables: > PM1a_EVT_BLK=0x4000-0x4003 > PM1a_CNT_BLK=0x4040-0x4041 > PM_TMR_BLK=0x4008-0x400b > > I know that in my case 0x4000 is a base address of "Power Management IO > Space" (as defined by PIIX4 specification). > I see that descriptions of the registers and their bits match between > ACPI specification and PIIX4 specification for registers in PM1a_EVT_BLK > (PMSTS and PMEN registers in PIIX4 parlance) and PM_TMR_BLK (PMTMP > register in PIIX4 parlance). > But addresses given for PM1a_CNT_BLK are not documented at all! On the > other hand ACPI description of that register perfectly matches > description of PIIX4 PMCNTRL register that is located at 0x4004 with a > given base address. So, this is 0x4040 vs. 0x4004, looks like a possible > typo/mistake by an author of ACPI tables for this motherboard. 440BX is pretty old, and typos like that were common back then. ACPI was less used and drivers would just hardcode 0x4004 or whatever. > Question: is there any way I can way override the address of > PM1a_CNT_BLK? My guess is that there is zero chance that there would be > any BIOS updates for this old and exotic motherboard (MP2-BX-X). No generic way. You'd have to add a quirk to acpi.c/acpi_quirks and use that to override FADT. > I think that this register is mostly useful for BM_RLD bit which is used > in C3 support. I don't use C3 (there is an errata for C3 with this > chipset and there is no PM2_CNT register defined anyway), but I am > curios anyway. Seems like a lot of effort for no gain. Since you are getting good at debugging, can we get you newer hardware to play with? :) > And a mostly unrelated question. From the following code it seems that > linux won't go even into C2 state if there is any bus master activity > detected (but I am not what would happen with "demotion"/"promotion"): > http://lxr.linux.no/linux/drivers/acpi/processor_idle.c#L389 I don't think so. I think cx->demotion.threshold.bm is a flag that says whether the idle state the CPU is entering requires bus mastering awareness. It will probably only be set for C3. -- Nate