AMD Athlon Neo MV-40 Help

If you have trouble with PHC you can ask and hope for help here.
mobad
Posts: 6
Joined: Sat 22. Aug 2009, 23:01
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

AMD Athlon Neo MV-40 Help

Post by mobad » Sat 22. Aug 2009, 23:18

I'm on 64bit Jaunty and I've installed the latest ppa kernel (-15 one)

When I try to modprobe acpi_cpufreq I get:
FATAL: Error inserting acpi_cpufreq (/lib/modules/2.6.28-15-generic/kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko): No such device

"lsmod | grep k8" gives me: k8temp and "dmesg | grep k8" gives me nothing.

Can anyone help?

EDIT:
I guess I was try to mount the Intel module...
For some reason the kernel doesn't come with phc_k8 so I compiled it.
I get "8:22 0:22" in phc_controls now.
But... changing the 22s does nothing so I will assume AMD Neo support is has not been added yet so I will wait patiently...
Supposedly RMClock works amazingly on the processor.

EDIT2:
Hmm further testing reveals that it works (a little bit)

In dmesg it gives an error when I try to lower the VID past 20:

Code: Select all

[ 2779.428387] phc-k8: vid trans failed, vid 0x13, curr 0x14
[ 2779.428494] phc-k8: transition frequency failed
I also get this when trying to change "0:20" to anything lower :

Code: Select all

[ 2853.452609] phc-k8:    0 : fid 0x8 (1600 MHz), vid 0x14
[ 2853.452618] phc-k8:    1 : fid 0x0 (800 MHz), vid 0x14
[ 2853.452628] phc-k8: ignoring illegal change in lo freq table-0 to 0x0
[ 2853.452635] phc-k8: transition frequency failed
EDIT3: ...For some reason I can't see the "init / autostart scripts" board while logged in.

User avatar
DavidG
Posts: 180
Joined: Fri 18. Jul 2008, 11:25
Contact:

Re: AMD Athlon Neo MV-40 Help

Post by DavidG » Sun 23. Aug 2009, 22:44

Hi, I saw and answered your post at ubuntuforums, but as it seems that one is not needed anymore.

The next Linux kernel, 2.6.31, will contain the updated driver for your processor, but it wasn't available at the time I released the 0.4.1 driver. I will backport those changes, but to get the current PHC driver working and make it even better you can add "direct_transitions=1" to the module option and then it should work. (For linux-phc Ubuntu PPA: "option powernow-k8 direct_transitions=1" in for example /etc/modprobe.d/powernow-k8.conf)
A bank is a place where they lend you an umbrella in fair weather and ask for it back when it begins to rain -- R. Frost

mobad
Posts: 6
Joined: Sat 22. Aug 2009, 23:01
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Re: AMD Athlon Neo MV-40 Help

Post by mobad » Mon 24. Aug 2009, 01:02

Can't wait for the next version.

None of this was working when it was just the powernow_k8 driver (with the ppa kernel) it doesn't seem like the ppa kernel comes with the AMD driver.

The direct_transitions trick seems to be working great!

EDIT: Err maybe direct_transitions isn't working... I thought it did but it gives me the same error.
Is there a way to check if direct_transitions is on?

EDIT2: direct_transitions works for adding new FIDs but still no lower than 20.

User avatar
DavidG
Posts: 180
Joined: Fri 18. Jul 2008, 11:25
Contact:

Re: AMD Athlon Neo MV-40 Help

Post by DavidG » Tue 25. Aug 2009, 10:40

mobad wrote:Can't wait for the next version.

EDIT2: direct_transitions works for adding new FIDs but still no lower than 20.
Maybe it won't allow you to use any FID lower than 20. Could you please install "msr-tools" and post the content of:

Code: Select all

sudo modprobe msr; sleep 1s
sudo rdmsr 0xc0010042

mobad
Posts: 6
Joined: Sat 22. Aug 2009, 23:01
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Re: AMD Athlon Neo MV-40 Help

Post by mobad » Thu 27. Aug 2009, 04:22

The msr thing is "3114161414080000".
This processor can be undervolted to get an extra 25% battery life (with RMClock) so I would guess it's possible to go lower than 20.

Current phc_controls "8:20 4:20 0:20"

User avatar
DavidG
Posts: 180
Joined: Fri 18. Jul 2008, 11:25
Contact:

Re: AMD Athlon Neo MV-40 Help

Post by DavidG » Thu 27. Aug 2009, 14:56

mobad wrote:The msr thing is "3114161414080000".
This processor can be undervolted to get an extra 25% battery life (with RMClock) so I would guess it's possible to go lower than 20.

Current phc_controls "8:20 4:20 0:20"
According to your "FIDVID_STATUS" register, it is not possible to go lower than 0x14 (20), but it is very strange that your initial VID is 0x16, which is more than the maxvid of 0x14 (which wouldn't be allowed).

You could try and see if this will work, but I don't think you can actually raise your maxVID (to 0x1f in this case), but maybe on the Neo you can:

Code: Select all

sudo modprobe msr; sleep 1s
sudo wrmsr 0xc0010042 0x311f161414080000
A bank is a place where they lend you an umbrella in fair weather and ask for it back when it begins to rain -- R. Frost

mobad
Posts: 6
Joined: Sat 22. Aug 2009, 23:01
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Re: AMD Athlon Neo MV-40 Help

Post by mobad » Thu 27. Aug 2009, 23:58

I get "wrmsr:pwrite: Input/output error" when I run it.

Not sure it will help but here http://forum.notebookreview.com/showthread.php?t=379050 is the site that talks about undervolting with RMClock with this processor. (New BIOS removed some clock speeds)

User avatar
DavidG
Posts: 180
Joined: Fri 18. Jul 2008, 11:25
Contact:

Re: AMD Athlon Neo MV-40 Help

Post by DavidG » Mon 31. Aug 2009, 12:09

Could you try to do the following thing to the phc-k8.c that is included in the phc-k8 package...

From line 366 in function "core_voltage_pre_transition" you find the following lines:

Code: Select all

	rdmsr(MSR_FIDVID_STATUS, lo, maxvid);
	maxvid = 0x1f & (maxvid >> 16);
	dprintk("ph1 maxvid=0x%x\n", maxvid);
	if (reqvid < maxvid) /* lower numbers are higher voltages */
		reqvid = maxvid;
Please disable this code by replacing this text with:

Code: Select all

	/* 
	rdmsr(MSR_FIDVID_STATUS, lo, maxvid);
	maxvid = 0x1f & (maxvid >> 16);
	dprintk("ph1 maxvid=0x%x\n", maxvid);
	if (reqvid < maxvid) /* lower numbers are higher voltages */
		reqvid = maxvid;
	*/
  • Now try to see if you can:
  • Set the vid to 22
  • If that is possible, try 23. According to the AMD spec this should not be possible, but if RMClock can do it, so should we... Please use the "rdmsr" command I mentioned here earlier and post its output here to verify whether it worked or not.
A bank is a place where they lend you an umbrella in fair weather and ask for it back when it begins to rain -- R. Frost

mobad
Posts: 6
Joined: Sat 22. Aug 2009, 23:01
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable

Re: AMD Athlon Neo MV-40 Help

Post by mobad » Mon 31. Aug 2009, 12:52

I changed the file to what you said (although I had to remove the comment within a comment) and I can go up to 23 fine (lower than 20 same error and it starts at 22) the rdmsr command gives "3114161714080000".

It's probably worth mentioning that both the old read_msr and the new one don't work.

Code: Select all

MSRTOOL V0.1 started...

Cannot read file "/dev/cpu/0/msr. Are you root?
Displaying data for CPU cpu0
/---------------------------------------
Traceback (most recent call last):
  File "./read_msr.py", line 90, in <module>
    msrtool.get_phc_cpus()
  File "./read_msr.py", line 32, in get_phc_cpus
    self.show_data(msr_vals, cpustring)	#displaying data in a beautiful way
  File "./read_msr.py", line 78, in show_data
    print "| Current VID: "+ str(msr_vals['curV'])
KeyError: 'curV'
EDIT: Whoa... according to that comment "lower numbers are higher voltages" should I be increasing the VID instead of decreasing it?

User avatar
DavidG
Posts: 180
Joined: Fri 18. Jul 2008, 11:25
Contact:

Re: AMD Athlon Neo MV-40 Help

Post by DavidG » Mon 31. Aug 2009, 14:25

mobad wrote:I changed the file to what you said (although I had to remove the comment within a comment)
Ahmm, sorry about that :oops: But I did not want to use C++ style comments in C files, even though it works for GCC and almost any other C compiler.
It's probably worth mentioning that both the old read_msr and the new one don't work.
That's only writen for Intel CPU's. For the AMD k8 processors that are supported at the moment, the PState info is not contained in the processor's (MSR) registers, but instead in the ACPI description of the motherboard.
EDIT: Whoa... according to that comment "lower numbers are higher voltages" should I be increasing the VID instead of decreasing it?
OIC, I missed that you were actually trying to set lower VIDs. :oops: And because I assumed "maxVID" is actually the maximum possible VID not the maximum voltage/minimal VID you can use, I never even assumed you were doing it wrong... If I'd read the code snippet I let you comment out, indeed I would have known already that the maxVID is really the minimum VID and that you should be able to use any VID between 20-63 :?

So, yeah, apparently all is working as supposed, but you just missed the fact that a higher VID means a lower voltage and I missed the fact that maxVID is actually the minVID carrying the wrong name ;)
A bank is a place where they lend you an umbrella in fair weather and ask for it back when it begins to rain -- R. Frost

Post Reply
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1275: count(): Parameter must be an array or an object that implements Countable