Updated _CRS method for HPET, bringing it in line with the way it is presented on recent hardware (e.g. Dell Latitude D630, MacPro5,1, etc); Allows it to be detected and utilized from Mac OS X; Also tested OK on Linux (F16 64-bit install DVD) and Windows (Win7 64-bit install DVD).
Signed-off-by: Gabriel Somlo somlo@cmu.edu ---
On Wed, Nov 07, 2012 at 07:30:31AM +0100, Gerd Hoffmann wrote:
Any reason you are making this a method?
Not really, I was just imitating the convention used by the hardware implementation(s) I was using for inspiration :) That being said, I do agree it looks better and more concise if left as "Name...", as you suggested (see below).
/me wonders where the "ReadOnly" comes from as the hpet has writable registers. I see this on real hardware too, so it is probably correct. Would be nice to have this confirmed by some specification reference though.
My guess would be subsection 2.3.2 (page 10) of the HPET spec rev. 1.0a: "2. Software should not write to read-only registers". Since at this level of detail we don't know where those registers are, only that they're out there somewhere, I'm guessing the thinking was that the safe course of action would be to declare it all ReadOnly, and leave it to the (hopefully more knowledgeable) OS driver to decide if/when to override that...
Thanks, Gabriel
src/acpi-dsdt.dsl | 13 ++++--------- 1 files changed, 4 insertions(+), 9 deletions(-)
diff --git a/src/acpi-dsdt.dsl b/src/acpi-dsdt.dsl index 284d70d..e19f886 100644 --- a/src/acpi-dsdt.dsl +++ b/src/acpi-dsdt.dsl @@ -269,15 +269,10 @@ DefinitionBlock ( Return (0x0F) } Name(_CRS, ResourceTemplate() { - DWordMemory( - ResourceConsumer, PosDecode, MinFixed, MaxFixed, - NonCacheable, ReadWrite, - 0x00000000, - 0xFED00000, - 0xFED003FF, - 0x00000000, - 0x00000400 /* 1K memory: FED00000 - FED003FF */ - ) + Memory32Fixed (ReadOnly, + 0xFED00000, // Address Base + 0x00000400, // Address Length + ) }) } }