Disclaimer

I am not responsible if your devices send you back in time, explodes, implodes, bricks or flies into space from the use of any software I put up.

Search

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.

70 comments:

Anonymous said...

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

Admin said...

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

Anonymous said...

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?

Admin said...

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.

Anonymous said...

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

Admin said...

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.

Anonymous said...

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

Admin said...

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.

aHBeN HaShRiQ said...

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

Admin said...

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

Anonymous said...

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.

John said...

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

Admin said...

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.

Lui said...

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!

Admin said...

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

apocha said...

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

Oji said...

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

Admin said...

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

Santoso said...

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 ?

Admin said...

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.

Anonymous said...

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

Anonymous said...

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

Cale said...

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

Admin said...

Point which Dell BIOS and what do you want modified.

Cale said...

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.

Admin said...

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.

Admin said...

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.

Cale said...

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

Cale said...

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

Cale said...

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?

Admin said...

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.

Cale said...

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

Cale said...

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?

Admin said...

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.

Cale said...

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.

Admin said...

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?

Admin said...

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

Cale said...

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

Admin said...

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.

Cale said...

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.

Admin said...

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.

Cale said...

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.

Cale said...

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.

Cale said...

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.

Cale said...

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?

Admin said...

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.

Cale said...

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.

Cale said...

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.

Admin said...

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.

Cale said...

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

Cale said...

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?

Cale said...

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.

Cale said...

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?

Cale said...

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?

Admin said...

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

Admin said...

Btw can you use RMClock to force set the Voltages?

Cale said...

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.

Cale said...

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.

Cale said...

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.

Admin said...

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.

Cale said...

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

Admin said...

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.

Cale said...

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

Cale said...

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

Admin said...

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

Cale said...

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.

Admin said...

Take a look at this thread.

Ryan said...

thanks for these infos, i've been looking for this, can you please update the "patched DSDT"... I need it for my laptop... Thanks in advance!

anil sharma said...

Hi,

i have dell e6410 how i can modify it?

anil sharma said...

Hi,

i have dell e6410 how i can modify it?