How to use AMD P-State in Linux

It’s a mini desktop (Asus PN51).

Exact the same steps as in the OP from @Echoa.

I haven’t been able to make it work on a Lenovo laptop with Ryzen 7 4800U.

Me either on the HP 4700U or the Lenovo 5500U

Edit: I think both of these are Ryzen 5?

1 Like

I am tempted to try the tool that @jonathon posted about above but I’m a bit apprehensive for the prospect of an slight risk of bricking. That is my main laptop and can’t afford borking it.

that machine is running Fedora. But i saw there is a copr repo offering that tool, too.

So there you go:

CPU Family: Lucienne
SMU BIOS Interface Version: 20
Version: v0.10.0 
PM Table Version: 370005
|        Name         |   Value   |      Paramter      |
|---------------------|-----------|--------------------|
| STAPM LIMIT         |    30.000 | stapm-limit        |
| STAPM VALUE         |     1.821 |                    |
| PPT LIMIT FAST      |    30.000 | fast-limit         |
| PPT VALUE FAST      |     2.586 |                    |
| PPT LIMIT SLOW      |    25.000 | slow-limit         |
| PPT VALUE SLOW      |     1.899 |                    |
| StapmTimeConst      |     1.000 | stapm-time         |
| SlowPPTTimeConst    |     5.000 | slow-time          |
| PPT LIMIT APU       |    25.000 | apu-slow-limit     |
| PPT VALUE APU       |     1.899 |                    |
| TDC LIMIT VDD       |    33.000 | vrm-current        |
| TDC VALUE VDD       |     0.264 |                    |
| TDC LIMIT SOC       |    13.000 | vrmsoc-current     |
| TDC VALUE SOC       |     0.390 |                    |
| EDC LIMIT VDD       |    70.000 | vrmmax-current     |
| EDC VALUE VDD       |    15.422 |                    |
| EDC LIMIT SOC       |    17.000 | vrmsocmax-current  |
| EDC VALUE SOC       |     0.000 |                    |
| THM LIMIT CORE      |    80.000 | tctl-temp          |
| THM VALUE CORE      |    35.875 |                    |
| STT LIMIT APU       |    35.000 | apu-skin-temp      |
| STT VALUE APU       |    27.660 |                    |
| STT LIMIT dGPU      |     0.000 | dgpu-skin-temp     |
| STT VALUE dGPU      |     0.000 |                    |
| CCLK Boost SETPOINT |    95.000 | power-saving /     |
| CCLK BUSY VALUE     |    39.540 | max-performance    |

i hope that helps.

1 Like

I just checked my lenovo Thinkbook which is a Ryzen 5500U and it is automatically working on Manjaro. It wasn’t before but i think the kernel was lower. It’s on 5.17.9-1-Manjaro and i see the kernel parameters are in grub.

So i guess it will work then when i install EOS. But the HP is a 4700U and i can’t get it working on it.

Hi all,

I loaded the tool that @jonathon posted about above. Booting it up, the closest settings to anything related to pstate was found under:

Device Manager > AMD CBS > CPU Common Options > Performance > Custom core Pstate

Now this was set to: Custom Pstate0 <Auto>

Setting it to <Custom>, it revealed the following settings as can be seen in the pics below:

For obvious reasons (cowardice among others :wink:), I didn’t change anything.

Just wanted to post about it and hopefully get your comments on it.

That isnt anything to so with CPPC unfortunately. If its related to CPPC it will likely be labeled as so. P-States arent new to the CPUs, the driver just allows the system to more effectively utilize them.

Its very likely that your laptop simply doesnt have support for it and would need some sort of firmware update in order to .

1 Like

Thanks for the reply @Echoa!

Right, I guessed as much as well.

Looks like that I have to yield to the fact.

I hope Lenovo would release some with this capability enabled.

Thanks again for the reply and the thread! It’s been educational.

According to Lenovo it will come (at least for Thinkpads) at some point

I’ll report back as soon as new FW hits lvfs-testing

1 Like

Sounds great!
Mine is a Yoga. Hopefully there will be some for this line as well.

Thanks for the info!

It is working an my Lenovo Thinkbook with Ryzen 5 5500u but not on my HP 4700u. The UEFI Bios settings don’t show anything so it’s obviously buried. Both have the same flags for cppc.

New experimental firmware is out. If you don’t hear from me in the next 30 minutes, the machine is most likely dead :rofl:

The change-log does not really indicate if the CPPC

  └─ThinkPad X13/T14s Gen 1 AMD:
        New version:      0.1.41
        Remote ID:        lvfs-testing
        Release ID:       13938
        Summary:          Lenovo ThinkPad X13/T14s Gen 1 AMD System Firmware
        License:          Proprietary
        Size:             17.9 MB
        Created:          2021-07-13
        Urgency:          High
        Vendor:           Lenovo
        Update Message:   The computer will be restarted automatically after updating BIOS completely. Do NOT turn off your computer or remove the AC adaptor while update is in progress.
        Release Flags:    • Is upgrade
        Description:      
        This stable release fixes the following issues:
        
        • fix CPU frequency stuck issue
        • Fixed Out of order idle states under Linux.
        
        Some new functionality has also been added:
        
        • update PIcode1004->1008
1 Like

crossing fingers and toes!

:crossed_fingers:t5:

[   75.861392] amd_pstate:amd_pstate_init: amd_pstate: the _CPC object is not present in SBIOS

Notebook still alive no amd_pstate though

I’m wondering how they messed up with the version and date though lol:

  Mobo: LENOVO model: 20UHCTO1WW v: SDK0R32862 WIN serial: <filter>
  UEFI: LENOVO v: R1CET72W(1.41 ) date: 06/14/2022

Looked like downgrading to some beta BIOS on first sight :rofl:

1 Like

Great! :relieved:

What a bummer :face_with_diagonal_mouth:

I guess we need to wait and hope that someday…

Thanks for getting back to the thread and sharing the info!

1 Like

I just had a BIOS update to this Lenovo laptop:

Machine:
  Type: Laptop System: LENOVO product: 82A2 v: Yoga Slim 7 14ARE05
    serial: <superuser required>
  Mobo: LENOVO model: LNVNB161216 v: SDK0J40709 WIN
    serial: <superuser required> UEFI: LENOVO v: DMCN42WW date: 06/09/2022

and thought to try my luck again with amd_pstate.

I followed the instructions in the OP but seemingly it didn’t work this time either

This is what I see in the journal:

Jun 29 08:08:54 arch 40grub2[6136]: debug: parsing: linux /boot/vmlinuz-linux-zen root=UUID=920fc5a6-a736-43bf-a799-127e270776f0 rw amd_pstate.enable=1 amd_pstate.shared_mem=1 lsm=landlock,lockdown,yama,apparmor,bpf loglevel=3
Jun 29 08:08:54 arch 40grub2[6161]: debug: parsing: linux /boot/vmlinuz-linux-zen root=UUID=920fc5a6-a736-43bf-a799-127e270776f0 rw amd_pstate.enable=1 amd_pstate.shared_mem=1 lsm=landlock,lockdown,yama,apparmor,bpf loglevel=3
Jun 29 08:08:54 arch 40grub2[6186]: debug: parsing: linux /boot/vmlinuz-linux-zen root=UUID=920fc5a6-a736-43bf-a799-127e270776f0 rw amd_pstate.enable=1 amd_pstate.shared_mem=1 lsm=landlock,lockdown,yama,apparmor,bpf loglevel=3
Jun 29 08:09:54 arch kernel: Command line: BOOT_IMAGE=/boot/vmlinuz-linux-zen root=UUID=920fc5a6-a736-43bf-a799-127e270776f0 rw amd_pstate.shared_mem=1 lsm=landlock,lockdown,yama,apparmor,bpf loglevel=3
Jun 29 08:09:54 arch kernel: Kernel command line: BOOT_IMAGE=/boot/vmlinuz-linux-zen root=UUID=920fc5a6-a736-43bf-a799-127e270776f0 rw amd_pstate.shared_mem=1 lsm=landlock,lockdown,yama,apparmor,bpf loglevel=3
Jun 29 08:09:54 arch systemd-modules-load[338]: Failed to insert module 'amd_pstate': No such device

:frowning_with_open_mouth:

This is what i get on my hp also with Ryzen 4700u but my Lenovo Thinkbook Ryzen 5500u works out of the box.

I guess this:

The 4700u is using cpufreq and no matter if you try to disable it and try to set pstates it just isn’t working. I didn’t have to do anything on my 5500u is was already active on Manjaro. I haven’t switched it yet to EndeavourOS. I have Arch on the HP 4700u.

Yes, I know. I was hoping that the new BIOS update would have enabled the support for CPPC but alas no.