ASL fixing questions

Martijn Pieters
2004-02-12T03:58:55Z

[-- Attachment #1: Type: text/plain, Size: 1807 bytes --]

Hi list,

Okay, so I have a nice new eMachines M6805, but ACPI support is screwed.
I am trying fix the AML the bios provided me, and iron out all the
errors and warnings. Attached my DSDT.dsl, as fixed so far.

So far I got rid of the warnings (_WAK didn't return anything; fixed
with examples from working DSTS-es, _BTS method didn't return anything
on some control paths; move return out of if statement down).

However, I am still stuck with 3 different error classes I have trouble
figuring out.

First of all, there are 7 references to a _PPC field on the CPU0
Processor object:

dsdt.dsl 2035: Store (Zero, \_PR.CPU0._PPC)
Error 1022 - Object does not exist ^ (\_PR.CPU0._PPC)

Now, _PPC is a ACPI 2.0 *Method*, not a field, and this ASL states it
adheres to ACPI _version 1.0_. My question: Is this a Microsoft-only
extension to the ACPI 1.0 spec and can I safely remove these _PPC lines
for Linux? They appear to set the CPU power states, but I am not sure
how to correctly set these from ASL otherwise.

The second error is that there are 3 Field declarations that seem to
want to address more information than the OperationRegions they are
attached to:

dsdt.dsl 2953: PWST, 2,
Error 1051 - ^ Access width of Field Unit extends beyond region limit

I am not sure how to go about fixing these yet; I am not entirely sure
what the syntax means yet.

Last but not least, tehre is one Field declaration that wants to define
AnyAcc to a OperationRegion, something that apparently isn't possible:

dsdt.dsl 3235: Field (ERAM, AnyAcc, NoLock, Preserve)
Error 1048 - ^ Host Operation Region requires ByteAcc access

Again, I have no clue yet how to go about fixing this error, if at all
possible.

Any help or hints is greatly appreciated!

Martijn Pieters