Thứ Sáu, 6 tháng 11, 2009

ACPI DSDT Investigation

There has been this problem with Acer Aspire 4530.
When the temperature of the GPU hits 99 degrees the fans don't seemed to turn on to cool it.
Instead the GPU throttle down but without the active cooling the throttling doesn't help instead it stays around 95-99 cycling back and forth.
Therefore I investigated the ACPI configuration of the laptop.
Using Phoenix BIOS editor I extracted the AML file contain compiled ACPI instruction.
The AML file is actually the DSDT Table which Windows load from the BIOS
Using Microsoft ASL Compiler I decompiled the AML file to a notepad readable format.
After checking with ACPI specification PDF documentation I discovered a flaw in the coding.
According to the ACPI documentation as shown below
_PSV is supposed to be the temperature which it safe to do passive cooling meaning fan can turn off.
However Acer programmed the _PSV value to be 0x63 (hex) which is actually 99 degrees in Decimal.
Which means when the laptop reaches 99 degrees it is safe to turn off the fan which led to this situation.
Therefore I modded the DSDT changed it to 45 degrees and overload the table to Windows Registry.
Now the fan no longer stop working when the temperature reaches high levels.

Here I share with you the patched DSDT (actually you can patch the BIOS but I prefer not to do this)

To use the DSDT install Microsoft ASL Compiler, v. 3.0.1 [646 KB] from this page.

Copy and paste the patched DSDT to "C:\Program Files\Microsoft ASL Compiler v3.0"
Then open a Command Prompt Windows with Admin Permission then type
cd "C:\Program Files\Microsoft ASL Compiler v3.0"
asl.exe /loadtable DSDT.AML
You should see "Table Overloading Succeeded".
Reboot.

I modified another value.
It is the return value for the THRM.
I modified the else condition to a higher hex value so the else condition will assume higher temperature.
I relink the link above to the newer file.

Hi guys sorry I promised there would be no changes to th Acer Aspire 4530 BIOS but I found some errors in the Acer Aspire 4530 DSDT code hence I had to recompile and replace the buggy DSDT code found originally in the Acer Aspire 4530 BIOS.

Here is an excerpt from the original buggy code.

I used IASL Compiler (Intel ASL Compiler) for this purpose as Microsoft ASL Compiler is non-standard(Doesn't guarantee Linux Compatibility), no optimization & buggy.

The new output after I corrected the DSDT:


As usual I always tested the new BIOS with my Aspire 4530 before releasing it so no worries.

Please refer here for the modified BIOS for Aspire 4530

**Note important!
I have removed the optimized DSDT as many seems to have issues with it.
If your Windows report error please flash from DOS (Read Instructions) because DOS doesn't require ACPI so it should be possible.

(Includes Win7 SLIC, Undervolted GPU & Corrected DSDT code)
I noticed things like Brightness Display during unplugging of Adapter and Battery is solved with this DSDT Code Correction.

Không có nhận xét nào:

Đăng nhận xét