Friday, November 6, 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.

67 comments:

  1. The fan speed only response to CPU temp..can you moded back so that when GPU reach 70 degree Celsius the fan will spin full speed..

    ReplyDelete
  2. The DSDT doesn't have any fan code.
    It seems the black thermal sensor is the built in device for sensing the temperature.

    ReplyDelete
  3. OMG my laptop(Acer 4530) cannot start after flashing it with your modded BIOS..
    always BSOD and i cant even open safe mode..it says ACPI not compliant or something like that..how can I reset back the BIOS?

    ReplyDelete
  4. It cannot be because I am using the BIOS now.
    Resetting the BIOS is easy just download the original BIOS and flash in DOS mode which should always be the way you do flashing
    Can you tell me the OS you are using because I suspect IASL compiled ACPI 3.0 code which may not be compatible on Older OS.

    ReplyDelete
  5. i'm using Vista Premium sp3..can u give some tutor flashing in DOS mode using Swinflash(the command line)..or do i have to use other flash utility?..

    ReplyDelete
  6. There is no such thing as Vista SP3.
    Only Xp SP3.
    Vista only reached SP2.
    Download the activator.zip in modded BIOS article entry.
    It has instruction on how to flash in DOS Mode.

    ReplyDelete
  7. Finally i manage to flash it..thanks..actually i'm hoping your modded BIOS will solve my overheating prob..but i'll keep waiting 4 your geat stuff..about Vista sp3..i got this in from windows update..
    http://picasaweb.google.com/lh/photo/dxfOiAUpA3HTME4a_S_grA?authkey=Gv1sRgCIyUxMK-17i7Yg&feat=directlink

    ReplyDelete
  8. Regarding Vista there is no SP3, it must be a "patch" to modify the text to say SP3.
    Officially there is only SP2 to date.
    Anyway I don't advice you to have any SP3 wordings on the OS.
    It can possibly corrupt the OS or contain any malware payload.

    ReplyDelete
  9. im using windows 7
    n what acpi that i shold download n Includes Win7 SLIC, Undervolted GPU witn corrected dsdt code?

    ReplyDelete
  10. Either one will work but if you intent to install Linux the compatibility one is better.

    ReplyDelete
  11. using acer aspire 4530 window 7 ultimate build 7600 x86 system. The bios im using is slic 2.1 v1.3334 (which u provided at the modded bios)

    so as per ur previous post, i should download the bios with linux compatibility? may i know which one r u using too? thank you.

    ReplyDelete
  12. using the undervolted GPU bios, what should be the expected idle temp of the GPU using GPU-Z?

    ReplyDelete
  13. I am using the Compatibility with ACPI 2.0 Code because I am dual booting Ubuntu, with the 3.0 Ubuntu refuses to boot but both will work with Windows 7 and Vista.

    The Idle temp of the Undervolted will hit 60 deg and less.

    ReplyDelete
  14. Gud day! Does the bios with ACPI v2.0 have slic 2.1 mod that you made? Does this also have the undervolted feature for the GPU? is this bios much newer than the one posted in the windows 7 licensing tutorial you posted? And does the new bios the one with the 1.3336 mod have this ACPI DSDT mod? Sorry for the many questions.. hehe.., just a noob..good luck more support!

    ReplyDelete
  15. Yes everything I find required like SLIC 2.1, DSDT and GPU Undervolting is brought forth to the new BIOS.

    ReplyDelete
  16. WARNING BE CAREFULL

    i have windows 7 ultimate x86. after flashing my BIOS with ACPI v3.0 my os was not booting i was getting geting BSOD during boot
    and thats not all even my win7 installation disc started giving me BSOD ...
    i managed to downgrade my laptop BIOS from dos mode n saved my slf

    ReplyDelete
  17. just to confirm: this will work on windows xp right?

    ReplyDelete
  18. Yes it will even activate Windows 7 if you have the install media.

    ReplyDelete
  19. Which BIOS is the newest, this one here http://www.mediafire.com/download.php?iykziliryjy (you said it's SuperUnvolted and that there will be no more mod), or this one http://www.mediafire.com/download.php?ojyz1mqge2g (the one with the ACPI 3.0 and corrected DSDT code) ?

    I'm asking because the one that's SuperUnvolted is in your older post. Big thanks from me.

    Oh, and if I update my BIOS to whichever newest, should I still install this ->http://aspiregemstone.blogspot.com/2009/11/dsdt-testing.html ?

    ReplyDelete
  20. Don't use the ACPI 3.0 because some OS don't like it.
    Just use this
    http://www.mediafire.com/download.php?3n1rjyqwonq.
    It has DSDT fixed (no errors from compiler),Undervolted and uses SLIC 2.1.
    You can ignore testing DSDT.

    ReplyDelete
  21. Hello guys i have some warnings when recompiling my dsdt file. If anyone bother tose please and thanks. Here are warnings and dsdt.dsl zipped file:
    http://www.mediafire.com/file/zoxwwzlywnq/DSDT.dsl.zip

    ReplyDelete
  22. By the way my laptop is not gemstone 4530 but gemstone 6935g.

    ReplyDelete
  23. I have a similar problem with incorrect ACPI tables on a Dell Pheonix bios..Can you mod said Tables?

    ReplyDelete
  24. Point which Dell BIOS and what do you want modified.

    ReplyDelete
  25. Its a laptop. Dell mobo: 0f237n
    Dell Bios version A08. DMI version 2.5 on a Studio 1737
    Plz if u need more info, just ask.


    I upgraded cpu to a Q9000(less demanding that the old duo) but the P-states are wrong.

    Old t6500 Volt range is 1.00v- 1.225v. New q9000 is 1.050v-1.175v


    Its a 2ghz cpu. P-states are: (P1) 1.6ghz 6.0x @ 1.050v (P2) 2.0ghz 7.5x (max multi) @ 1.112v (1.175 req)
    (P3) 2.26ghz+ 8.5x (overclock) @ 1.212v (to much)

    It cannot meet req to be put in P3 because its only 2.0ghz max. I need P2 to be more like: 2.0ghz 7.5x @ 1.175v (or a lil higher V to be sure) p3 can just stay the same cause it will never reach it. Can you do this? I am at the end of my rope for a solution. I have to throttle it to 1.8ghz @ 1.112v atm.

    ReplyDelete
  26. Can you download RW-Everything then dump the BIOS info into a file and upload the report.
    This is rather tricky can't guarantee you anything.

    ReplyDelete
  27. Also I am unable to extract the BIOS Image on my Laptop.
    I don't know if it does any checking before releasing the BIOS file.
    To get the BIOS ROM file download the BIOS.exe from Dell.
    Then in Command Prompt (With Admin Permission)
    Navigate to the directory you download the exe.
    C:\Windows\System32)cd "C:\Users\Username\Desktop"
    Then
    1735_A08.exe /writeromfile
    Then upload the ROM File.

    ReplyDelete
  28. your saying RW-everything doesn't work and I should try the latter method?

    ReplyDelete
  29. I tried it 3 times, it says "Create Rom error" Im going to try to use 7zip. Where should I upload the rom file?

    ReplyDelete
  30. hmmm.. when I 7zip it, it displays these files:
    mfc42.dll
    msvcp60.dll
    msvcrt.dll
    phlash.ini
    phlash2.ini
    phlashLc.dll
    phlashNT.sys
    winhlp32.exe
    WINPHLASH.chm
    Winphlash.exe

    any guesses?

    ReplyDelete
  31. That is the same problem I got.
    Couldn't get the ROM File as well.
    Maybe you try running it (Without Flashing) and the ROM File would be in C:\Users\{Username}
    AppData\Local\Temp.

    ReplyDelete
  32. I didnt see anything. I think it unpacks after iv initiated the flash process. This guy did it with the exact same bios file, mobo and computer i am trying to do it with now. exactly. He was just trying to fix his bios tho.

    http://forums.mydigitallife.info/threads/14085-Dell-Studio-1737-BIOS-Recovery

    ReplyDelete
  33. Oh Oh!! I think I found it. It was in my temp folder and corresponds to the time I recently re-flashed my bios. Its called "BIOS.bak" its 2,088kb.

    Is that it?

    where do I upload it to?

    ReplyDelete
  34. Mediafire so I can download and open it.
    Also Download and Install RW-Everything(google) then dump the BIOS info and upload it as well.

    ReplyDelete
  35. http://www.mediafire.com/file/zymn12ez2tl/Bios files.7z

    Heres the link for the files which are 7-zipped. The zip file was much smaller than the files I put in it, please tell me if this is a problem.

    Here are links to some details about the old (T6500) and new (q9000) processors to aid you..

    Q9000: http://processorfinder.intel.com/details.aspx?sSpec=SLGEJ

    T6500: http://processorfinder.intel.com/details.aspx?sSpec=SLGF4

    Again thank you for helping me.

    ReplyDelete
  36. Btw what is the adapter you are using?
    If you upgrade the processor you might need to upgrade the adapter to add a few ampere of current as well.
    How high does it over heat?

    ReplyDelete
  37. Also can you send me the rw-everything report for ACPI
    Click on ACPI first before dumping the report.

    ReplyDelete
  38. Ya I know its a 45w thermal design. I dont think the adapter is much of an issue considering that my old processor was drawing 1.250v at its max. And this one will draw 1.175 at its max. uh.. Well right now if i play L4D2 on all max, it wont get over 60C, and a prime95 test will get it to a max of 72-75C. Thats at 1.112v. Im thinking it may get hotter but it wont get to 105C (its limit).

    Here is the ACPI tables:

    http://www.mediafire.com/file/uyixqozgic5/AcpiTbls.rw

    ReplyDelete
  39. The reason I thought you might need a more powerful adapter is because Q9000 has 4 cores although it has low voltage but the combined power requirements of 4 Core on a single die is significantly higher than a dual core.
    Looking at the ACPI Tables it seemed pretty ok all 4 Cores are activated and working properly.
    If it crash at 100 percent could be that not enough power is present.
    The SSDT is not hardcoded in the BIOS meaning the values are obtained by querying the processor.

    ReplyDelete
  40. So your saying the processor is only requesting 1.112v even though its max is 1.175v? And the power states aren't in the bios or controlled by the OS? You can obviously see more about this than I can. From my point of view the slight lack in voltage was the issue, can u see anything about the amperage? if I dont throttle it, it doesnt even have to be at 100%. just 50% for an extended time will give me BSOD. 1800mhz @ 1.112v is semi-stable. but 2000mhz at the same voltage it will bsod.

    ReplyDelete
  41. It means that the processor need 1.175 PER CORE to function.
    In essence for Processor to function without error there must be sufficient power to form a clear digital signal.
    When it BSOD it could mean that there is insufficient power for the Processor to function normally.
    I tell you a way to further confirm if this is the case.
    Type "msconfig" set number of processor to 2 then run Intel Burn In without throttling it.
    If it doesn't BSOD it could mean that this is indeed the case.

    ReplyDelete
  42. Ok well it ran, and it didnt freeze at all. so you were right. I thought intel posted its voltages by the whole piece, not individual cores on that piece. Can you tell me how much max voltage the p-socket on my mobo supplies from the files I sent? since 1.250 x 2 = 2.50v for the duo. and 1.112x 4 = 4.448v. for the Quad.

    ReplyDelete
  43. Are you sure that per core thing is right? no disrespect. But, I have been doing some research, and emailed Intel, and found that in fact the voltage rating is for the entire assembly, not per core. So all of the quad cores combined equal to a max of 1.175 volts. The utilities that show me the P-state information state that the P-states are located in the Acpi-Bios.
    My hardware should have sufficient voltage to accommodate the new processor. Their has got to be some type of error in the bios/acpi or some firmware. Do you have any other Ideas as to what could be causing this? Plus, in my event viewer, i am getting ACPI event 13: The embedded controller did not respond within the specified timeout period. this could indicate an error in the EC hardware or firmware, or the bios is not accessing the EC correctly. I did get these errors with the old processor though.

    ReplyDelete
  44. Is this not the case, that the processor only stores the highest and lowest voltages, and any others are in the bios, outlined here:
    http://www.extremetech.com/article2/0,2845,2052562,00.asp

    I am sorry if I sound like Im arguing with you, I mean no offence. I am just trying to give you some ideas.

    ReplyDelete
  45. Ok some thoughts I have, since I have been trying to fix this all day. Bear with me. I have a dual linux/ windows 7 partition. I have had it for a while. Because certain tables load at boot, could the GRUB lootloader be preventing these new tabled from loading, or are keeping the old ones ion place? Also, If your theory is true and I am not being supplied with enough juice, why can turbo mode enable up to 1.212v, but it says my max at 2000mhz is only 1.112, wouldnt it request more, if it was capable of 1.212v? I have gotten it to run at 1.212 volts before. but At idle it was getting really hot. I am gonna uninstall linux. Do you think its OS related? should I do a clean windows 7 install as well?

    ReplyDelete
  46. So you mean you did use msconfig to disable 2 Cores(restart and task manager show only 2 Cores)and it run fine?
    Yes it does rate the TDP as a sum of the whole cores but TDP is not reflective of total power consumption. Also the processor is Q9000 not Core iX. Means the power consumption doubled, Q9000 is 2 Core 2 Duo Processor on 1 die while Core iX turn off Cores when not in used.
    Can you check how many watts does you adapter supply and how much watt adapter does a Quad Core Dell Laptop use.
    As for the EC timeout I experienced it before, it is cause by Chipset Driver not installed but your Processor shouldn't BSOD under all conditions.
    I think it is not about voltage but insufficient power.
    It is not OS related because Boot loaders simply parse the boot sectors and load the OS. Windows will load the ACPI Table from the BIOS chip itself not from the boot loader.

    ReplyDelete
  47. Yes i did the msconfig thing. it ran without BSOD. When u say that its not about voltage, but power. Isnt voltage the power measurement? I have a 90w adapter, it will get hot if I am using the computer, and charging the battery. The versions of my laptop with the iX have an optional 130W adapter. So your saying that even if my computer could get into the P-state that allows 1.212v (overvolttage) it would still BSOD? I am able to get it to idle in the state of 1.212v, but as soon as I put it under load it drops back down to 1.112v. this is obviously a bios/acpi problem. The bios on my laptop will warn me if the power from my adapter isnt enough when i turn it on, and it hasnt. There arent ANY acpi or power state tables in those files? All computers' bios's have Intel Speedstep, which requires them to have p-state tables. I can see the tables in the Cpu utility I have.

    ReplyDelete
  48. I installed my old processor and the acpi tables were slightly different. However all the tables were applied to the processor successfully. With my new processor the highest power state wont engage unless idle. Here are some pics to elaborate.

    Not under Load: http://www.mediafire.com/file/gt2jamqz0oa/No load.png

    Under 50% load: http://www.mediafire.com/file/neyyljtmzmm/Under Load.png

    note how the voltage drops under load... any guesses.

    ReplyDelete
  49. Yep that is why I said the ACPI Tables are generated Dynamically therefore not possible to mod them.
    What I mean is Voltage != Power (P=I*V).
    Does if you msconfig it to 2 proc does it ramp up the states and voltage correctly?
    Just noticed you play BF2 as well =P.
    The BIOS does have hardwired value to send you the warning message if it detects certain power inputs but you are doing a DIY Mod which means it doesn't account for that when all your 4 Core running at max state. On Phenom Desktop just the CPU takes up 90 watt power so you can guess how power hungry is a Quad.

    ReplyDelete
  50. No. If I only have the 2 cores enabled it still registers it at the same low voltage. If I disable speedstep it defaults to the lowest VID. making it even worse. can u mod the default voltage setting with speedstep off? is there a way to unlock my bios to let me change the voltages manually? or a similar bios that may help? Any solution at all? the wattage for my old and new processor is only 10W difference, ud think it could handle that. I hate having a 1.8ghz quad that still fails a prime95. ya BF2 is sweet :)

    ReplyDelete
  51. First, I really appreciate you taking the time to assist me. and second, are u skilled at deciphering stop codes/bugcheck codes? maybe you can pinpoint the problem.. I will do something to invoke a BSOD, and give you the dump file possibly?

    ReplyDelete
  52. thoughts after unsuccessfully invoking a BSOD while playing L4D2:

    Its not always a BSOD. If i play L4D2 about 10min into the game it will either BSOD (about 30% of the time), or just crash (70% of the time). Like crash with no error, just back to the desktop. I thought this could just be a fluke with the game, but if I throttle the CPU down to 1.8ghz it will not crash. Also a prime95 cpu test has never BSOD, after about 3min one of the cores (usually 3rd or 4th core) will just stop with an "expected 0.5 and got 0.45463" rounding error. while the others continue on at 100% infinitely.

    ReplyDelete
  53. something else: in services I disabled "power" and rebooted. When it was done, i opened my monitoring program and the voltage was 1.212v constantly. I then put it under load, and it sadly went back down to 1.112v as normal. I renabled the power service, and instantly the voltage dropped to the minimum VID. 1.050v. why is this?

    ReplyDelete
  54. on this forum: http://forums.lenovo.com/t5/Linux-Discussion/S10-2-Wrong-Clockspeed-ACPI-Table-Error/td-p/173692/page/2;jsessionid=AA6861CBEEF0613F4CDE958E754BE7D7

    this guy was talking about how in the original BIOS the CPU power management stuff is located in SSDT which in turn loads dynamic SSDTs containing the actual values; AFAICS there's no conditional branching for the different processors...? does this shed light on anything?

    ReplyDelete
  55. Because the SSDT Table is created after they detect the processor so even if I mod the SSDT Table it will not work.

    ReplyDelete
  56. Btw can you use RMClock to force set the Voltages?

    ReplyDelete
  57. I tried RMclock. The voltages will only change to 1.050, 1.112 or 1.212. if i set 1.212 it will stay until i put it under load. Gah, I wish this would just work. well anyway, thanks for your help, if you happen to stumble upon some solution in the future could you email me please?

    Again, thank you.

    ReplyDelete
  58. I did stumble upon some notes on the bios update A02 for my computer. Apparently the penryn microcode was updated in that revision. I am not sure what the processors microcode contains however.

    ReplyDelete
  59. I have one more question for you, if you would be so kind as to still put up with me :D

    Would a lot of voltage fluctuation under load cause instability? I was encoding and monitoring the voltage, and noticed the voltage was jumping from max to min alot, and that was causing the muli to change alot as well. Then instead of a blue screen, explorer and the encoder I was using crashed simultaneously.. very odd.

    ReplyDelete
  60. Yes but this happens when you have bad capacitors.
    Btw are you using ES Processor?
    The problem is I cannot tell whether it is the CPU Problem or the Motherboard.

    ReplyDelete
  61. No its not its Spec number is: SLGEJ
    I have resolved the problem to an extent. 2 things needed to happen, I had been doing these individually, but never made sure they both worked at the same time: 1st the Northbridge cannot go over 75C or so, or it will BSOD. I was not even monitoring this. 2nd, turbo mode was the p-state i could never achieve, the 2.3+ghz, 8.5x multi @ 1.212v. However under load it would contstantly fluctuate between that state and a stable one . Like 3 times a second. So, by making sure the northbridge was ok, and turning off turbo, i have played L4D2 for 2 hours and supremem commander for several hours without incident. I also found this provided by A dell tech.

    http://ark.intel.com/chipset.aspx?familyID=35509

    ReplyDelete
  62. Just for the record there is an Intel Turbo Driver on Acer Site, not sure if it is applicable.
    Also, I have a software called Intel Extreme Tuning Utility you can download it here.
    At this point might as well try everything.

    ReplyDelete
  63. ah, the utility is a no go apparently. It gives a hardware error when i try and run it. I cant find the specific acer driver your referring to either..

    ReplyDelete
  64. Could you help me with another annoying problem I have been having? My windows 7 Ultimate boot time is about 1:30, it used to be 2:30 but I did bootlog, and fixed all of the driver load problems, so they all load. I cant tell, even though they're loading, if they are hanging at some point. I would say after the bios loads, it takes 45sec appx just for the splash screen, then another 20 or so of just black screen until I can even see the login screen background, then about 20sec more till i get to login. After login its runs very very smoothly. I am running a constant clean boot, nothing in startup. I have Blackviper tweaked my services, and got Autoruns to see exactly whats going on. everything checks out. My friend's (almost identical) 1737 starts from bios to login in under 30sec. What is the problem?! I have no noticeable warnings in event log, save the CONSTANT ACPI error 13. Any clues?

    Cheers :)

    ReplyDelete
  65. Did you run Windows RunIdle task?
    I put it on this blog as well.
    After that run defrag boot.

    ReplyDelete
  66. ok. I am not sure what "runidle" task is. What exactly did you put on this blog as well?

    I have actually gotten it down to 44 seconds. I will be content with that..

    do you think their would be much of a difference in performance between a quad with a 6MB L2 or 12MB L2.

    Srry I have all these questions but no one to ask..
    Thanks for your help.

    ReplyDelete