If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. Registration is $1 to post on this forum. To start viewing messages,
select the forum that you want to visit from the selection below.

AmdMsrTweaker - New Versions

Hi,

as announced in the original thread of AmdMsrTweaker, I took over development of the tool. In this thread I will announce new releases and hope to get feedback from the community. I'm open for feature suggestions. However I don't plan to implement a GUI at this point.

For usage instructions consult the included readme.txt file or the original thread.

Release Notes:v1.1 2013-04-09
- support for Trinity and Richland APUs
- preliminary support for Kaveri APUs

Note to the original author:
I have tried to contact you via forums (such as this) where you promoted the original release of the tool since I didn't find an e-mail address of yours. Until today I didn't receive a reply. If you want to comment on the situation, please drop me a line.

Rather annoying that Mega requires you to upgrade your browser to use their service :| *sigh* And when I get around that issue by using my Desktop, now I'm told I need to have the latest version of Flash Player... Didn't complain about my rather out of date Java when it was downloading 800TB worth of java-scripts in order to load the site!

Oh well, I'll check it out sooner or later. You still get a Thanks for providing awesome software for AMD hardware!

How to use MSRs to change CPU voltage on trinity (and maybe others). I'm not sure how this tool works exactly, but just stating what I found to be useful when editing MSRs myself.

MSR 0xC0010064 is top boost bin. Used for single/dual core mode only. Hardly ever used. I suggest not really messing with it since you can make things unstable, but not realize it since the bin is hardly used.
MSR 0xC0010065 is 2nd boost bin. This is max turbo for quad core mode. You can edit the PCI config space with other programs to make the CPU never drop below this bin. CPU spends the majority of its time at this speed when loaded.
lower bins not worth editing since they are only used when your system is throttling, which unfortunately trinity loves to do, but you can kill it the throttle with BAR-edit. Only worth bothering to edit if your laptop refuses to use turbo when on battery.

bits 9 - 15 are the voltage bits. Higher values are lower voltages.

examples:

My lowest 16 bits for MSR 0xC0010064 are 0x6010. bits 13 and 14 are high, while the rest are low. This corresponds to a voltage of 1.25V. I lowered this a little to 1.2V, which is 0x7010.
My lowest 16 bits for MSR 0xC0010065 are 0x8410. bits 10 and 15 are high, while the rest are low. This corresponds to a voltage of 1.1375V. The lowest I can run stable is 1.0425V, which is 0xA210.

I have been using crystalCPUID to change MSR values. CPU is an a10-4600.

I looked a little at example usage on the other thread and it looks like you don't need to enter the actual MSR values. One thing thing I am not sure on though, does P0 refer to hardware P0, or software P0?. Software P0 is top non-turbo bin, while hardware P0 is top turbo bin. If this program does not let you edit the boost bins then that is a big hit to its usefulness. I am away from my trinity system ATM so I cannot test it. If so though it looks like I can write command line scripts to do these edits instead of having to do things manually every startup.

If you run the tool without any commands you get an output of all the P-States including a listing of all Turbo States. So to answer your actual question, it uses hardware P-State numbering. If you look at the output you will pretty soon notice this is the case.

Also since you write about throttling which I noticed as well, what do you do to disable it?

If you run the tool without any commands you get an output of all the P-States including a listing of all Turbo States. So to answer your actual question, it uses hardware P-State numbering. If you look at the output you will pretty soon notice this is the case.

Also since you write about throttling which I noticed as well, what do you do to disable it?

There is no program that does it properly, so you need to do it directly with PCI config space writes. I use BAR-EDIT. The way the method works is you just limit the number of P-states the processor is allowed to use. PScheck can do this, but it neglects changing what P-state the CPU goes into C6 in, which is set by default to a state that is no longer available, thus breaking the top turbo bin. Unfortunately laptops have a lock bit set in BIOS that prevents constant PB0, but you can force no lower than PB1.

These changes net a consistent 9-12% raw performance gain in multithreaded programs. In games the difference is actually more noticeable since without this fix the CPU will randomly drop as low as 1.6ghz for me, which is just flat out dumb and causes major stutter.

cinebench throttle fix vs no fix: http://i.imgur.com/Ov8Wkhk.jpg (this fix alone only gets to 2.27, not 2.29. I also lowered memory timings a little for the 2.29)

cpu only hits low 70s in P95 with this fix and an undervolt. Really wish I could find the boost lock in the BIOS to force constant 3.2ghz, but this BIOS is an utter disaster with zero coding consistency, and I couldn't find it after searching for 4 hours.

I own an A10-5700 and I experienced throttling with Turbo enabled. When I disabled Turbo in BIOS it disappeared.

Turns out this BIOS option also disabled APM, which throttles the processor down to keep inside the TDP. You can actually disable APM with amdmsrtweaker, so you might want to give it a try if your notebook's cooling system is up for the job.

If you don't want to use this tool you can set the 7th bit of D18F4x15C to zero to disable APM. This is also documented in the BKDG.

Originally Posted by BIOS and Kernel Developer?s Guide (BKDG) for AMD Family 15h Models 10h-1Fh Processors

Application Power Management (APM) allows the processor to deterministically provide maximum performance while remaining within the specified power delivery and removal envelope.

Last edited by johannes; 07-03-2013 at 10:47 PM.
Reason: I incorrectly claimed Turbo can be active when APM is disabled.

I own an A10-5700 and I experienced throttling with Turbo enabled. When I disabled Turbo in BIOS it disappeared.

Turns out this BIOS option also disabled APM, which throttles the processor down to keep inside the TDP. You can actually disable APM with amdmsrtweaker, so you might want to give it a try if your notebook's cooling system is up for the job.

If you don't want to use this tool you can set the 7th bit of D18F4x15C to zero to disable APM while keeping Turbo. This is also documented in the BKDG.

All my attempts to disable APM also disabled turbo, including bit 7 D18F4x15C.

You are right. I could keep the Turbo enabled in BIOS and then disable APM at run-time, but this would disable Turbo, too. Sorry for the confusion.

If your processor is unlocked (D18F4x15C bit 31 is 0) you might try to change NodeTdpLimit (bits 11-0 in D18F4x10C, I do not know how the TDP is represented). I can try to give you the value for a 65W APU later today. Edit: The value is 0x45 -> 69 decimal.

You are right. I could keep the Turbo enabled in BIOS and then disable APM at run-time, but this would disable Turbo, too. Sorry for the confusion.

If your processor is unlocked (D18F4x15C bit 31 is 0) you might try to change NodeTdpLimit (bits 11-0 in D18F4x10C, I do not know how the TDP is represented). I can try to give you the value for a 65W APU later today. Edit: The value is 0x45 -> 69 decimal.

The BIOS does lock the CPU. The problem with engaging the top boost bin is not TDP, but the silly restriction that 2 cores must be in C6. With the boost lock disengaged though this restriction can at least be reduced to 1 core, and possibly removed if raising the 2nd boost bin up to the 1st boost bin clocks works.

The bios has no control over "BoostLock", as it is a fused value loaded from the "OTP" registers during CPU init.
It cannot be disabled without the HDT (and proper information).

There is a way to disable the actual TDP limitation without turning off Apm and loosing the CPB feature.
Basically the Pb1 PState will become the new base frequency and the highest boosted PState (Pb0) will be available for single threaded workloads. When the TDP limitation has been disabled the boost activation will rely on PState Deltas and temperatures only.

Need to check it on Trinity, however on Richland it works just fine.
Shouldn't be any different.

And no, you won't find it from any of the datasheets, AGESA source or from anywhere else.
The ghost protocol

The bios has no control over "BoostLock", as it is a fused value loaded from the "OTP" registers during CPU init.
It cannot be disabled without the HDT (and proper information).

There is a way to disable the actual TDP limitation without turning off Apm and loosing the CPB feature.
Basically the Pb1 PState will become the new base frequency and the highest boosted PState (Pb0) will be available for single threaded workloads. When the TDP limitation has been disabled the boost activation will rely on PState Deltas and temperatures only.

Need to check it on Trinity, however on Richland it works just fine.
Shouldn't be any different.

And no, you won't find it from any of the datasheets, AGESA source or from anywhere else.
The ghost protocol

Well that explains why I could never find the bit in the BIOS. I was thinking that it was similar to the MSR 0x610 bit 63 lock to prevent TDP changes on sandy bridge systems, which is completely made up by the BIOS.

So there's no way to force pb0 for all cores at all times though? It sounds like the results of what you describe will be similar to what I currently do, but your method is more proper.

Khenglish I can see what you are doing. When playing around with throttling I sometimes limited Windows to less than 100% maximum CPU frequency which has a similar effect (it never lets the CPU enter a higher P-State if you set the percentage correctly). However you also lose Turbo this way. I am actually in the process of trying to quantize the impact of throttling. Currently I only have desktop versions of Trinity and Richland so it mostly depends on cooling. Usually I only observed throttling when running Prime95 or when overclocking.

I also wish The Stilt would be a bit more forthcoming with the details he knows

Hi there. First of: fantastic tool ! Was looking for a good K10stat alternative for my FX-8350.

Unfortunately, it only works 50% for me. It doesn't apply the voltage settings but keeps the ones set in BIOS. Asus TurboV EVO (that came with the MB) does change voltages so I'm sure it can be done somehow ? If that would work too that would be soo awesome !

Hi there. First of: fantastic tool ! Was looking for a good K10stat alternative for my FX-8350.

Unfortunately, it only works 50% for me. It doesn't apply the voltage settings but keeps the ones set in BIOS. Asus TurboV EVO (that came with the MB) does change voltages so I'm sure it can be done somehow ? If that would work too that would be soo awesome !

as announced in the original thread of AmdMsrTweaker, I took over development of the tool. In this thread I will announce new releases and hope to get feedback from the community. I'm open for feature suggestions. However I don't plan to implement a GUI at this point.

For usage instructions consult the included readme.txt file or the original thread.

Release Notes:v1.1 2013-04-09
- support for Trinity and Richland APUs
- preliminary support for Kaveri APUs

Note to the original author:
I have tried to contact you via forums (such as this) where you promoted the original release of the tool since I didn't find an e-mail address of yours. Until today I didn't receive a reply. If you want to comment on the situation, please drop me a line.

thanks for taking over.

I'm interested in taking this further.

Is there any way to control specifically WHEN and WHICH turbo P-State the turbo is engaging, or is that up to the BIOS to decide?
I ask because my 8310 is hardly ever reaching the highest boost state. As in, ever. Like 5% of the time it will.

Is there any way to control specifically WHEN and WHICH turbo P-State the turbo is engaging, or is that up to the BIOS to decide?
I ask because my 8310 is hardly ever reaching the highest boost state. As in, ever. Like 5% of the time it will.

It is possible, but not with the methods available to public.
The highest boost state (Pb0) is only available when at least half of the compute units are power gated (C6 state).

Has anyone been able to use this tool to modify the P3 state successfully? When I do that on my Kaveri chip, it causes the OS (Windows 10 build 9926) to log out my session and causes the screen to flicker madly. My only choice is to reboot after that point.

Has anyone been able to use this tool to modify the P3 state successfully? When I do that on my Kaveri chip, it causes the OS (Windows 10 build 9926) to log out my session and causes the screen to flicker madly. My only choice is to reboot after that point.

"P3" in that software is actually P0 (Pb0, Pb1, Pb2, P0).

Changing the P0 frequency from the boot-up value will break Windows Aero as the time stamp counter gets out of sync.
If you adjust P0 you need to do it from bios to keep the Aero (on Vista, 7, 8, 8.1 and 10) intact.