mismatch between FACP and chipset spec

Andriy Gapon avg at icyb.net.ua
Thu Feb 28 08:25:53 UTC 2008


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.

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).

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.

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

-- 
Andriy Gapon


More information about the freebsd-acpi mailing list