I’m just about at my wits end trying to undervolt the ryzen 6900hx cpu.
amdctl doesn’t support rembrandt (It’s a matter of rembrandt needing higher VID values than amdctl allows)
ryzenadj does, as does ryzen_smu which is required for it, however ryzen_smu inexplicably does not work for me (module loads but it does not actually work) and even if i could get that working, i have no idea how to actually undervolt with it (or if it even can, documentation isn’t very clear on it, but I know there’s a modified version of it used for undervolting the steamdeck out there so surely it can… right?)
which leaves zenstates which has not been updated for 7 years… On the surface it looks like it might work
$ sudo zenstates
usage: zenstates [-h] [-l] [-p {0,1,2,3,4,5,6,7}] [--enable] [--disable] [-f FID] [-d DID]
[-v VID] [--c6-enable] [--c6-disable]
Sets P-States for Ryzen processors
options:
-h, --help show this help message and exit
-l, --list List all P-States
-p {0,1,2,3,4,5,6,7}, --pstate {0,1,2,3,4,5,6,7}
P-State to set
--enable Enable P-State
--disable Disable P-State
-f FID, --fid FID FID to set (in hex)
-d DID, --did DID DID to set (in hex)
-v VID, --vid VID VID to set (in hex)
--c6-enable Enable C-State C6
--c6-disable Disable C-State C6
$sudo zenstates -l
P0 - Enabled - FID = 84 - DID = 8 - VID = BF - Ratio = 33.00 - vCore = 0.35625
P1 - Enabled - FID = 5A - DID = A - VID = AB - Ratio = 18.00 - vCore = 0.48125
P2 - Enabled - FID = 50 - DID = A - VID = 97 - Ratio = 16.00 - vCore = 0.60625
P3 - Disabled
P4 - Disabled
P5 - Disabled
P6 - Disabled
P7 - Disabled
C6 State - Package - Enabled
C6 State - Core - Enabled
But far as I can tell, there actually is no documentation, and there doesn’t seem to be a way to see the current VID and core voltage so the point is moot since it provides no way to verify if it is in fact doing anything or not.
This is a right mess, how can it be this hard to lower the voltage by a few millivolts? It was so easy with intel-undervolt…