-
Notifications
You must be signed in to change notification settings - Fork 123
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
6800U is doesn't work #210
Comments
A little more background on the issue: In HandyPT I use dump-table to read the current values to set the initial level of the UI and to validate the settings took accurately. This ensures that I'm not constantly spamming the system with TDP settings and ensures I can let the user know if another tool/setting/mode has changed the TDP as well. The --stapm-limit, --fast-limit, and --TCTL-temp flags all appear to set, but cannot be validated with -i or -dump-table in Linux or Windows. Is this an oversight, or is there a technical limitation that prevents the Rembrandt series from exposing the entire settings table? |
Hmm, it just means that nobody had reverse engineering this table version (which can be affected by processor model and AGESA rev). Let's see if anybody will put effort on it. We should be able to reverse it from uProf. |
Sweet. Do you have an example/general outline of what to do? I've never used uProf before. This seems to be the correct package: |
Installed uProf and started geting familiar with it. What info do you need? My laptop is a 4800U but I'd like to write a step by step for the testers with the 6000 series to make it a bit more simple to get the data we need. |
I have two users standing by with 6000 series chips. What uProf data is required for this? |
I'm pretty sure you'd need the information from uProf controllers am I correct? It looks like the newer versions have an issue where these options are missing and the archive options no longer list the version where it was visible. I disabled SVM and it isn't visible for me still, it appears as though doing this helped people on Windows however. I may need to install Windows to try and get this information. |
I have a 6900HS, I'm happy to take a look at reverse engineering whatever is required to get this working, where should I start looking? |
We are already working on support for Rembrandt. The problem is that none of us has a device with such an APU and that makes it harder for us to add and test the support for Rembrandt. If someone wants to help, could he or she please run the following script? https://gist.github.com/patrickschur/4645f81601fe6f8ff16c7a90e848d7cb Just download the script and run the following command: sudo python3 pmtable.py Please run the script two times and let us know the result of both executions. |
Hm, I don't have a kernel that supports
Is there any way around this? If not I can compile a kernel with /dev/mem support. |
As far as I know there is no way around this (at least not from userland). |
I attempted this on Pop OS and I got the same issue. Does this work on Arch Linux? |
Yes, if you compile the kernel with |
Cool, I'll compile the kernel now and try to get you the information. |
I'll have a 6850U soon and I'll be happy to help in this |
so just to confirm, CONFIG_DEMEM=Y |
@hh1599
You can get the config using |
I tested a build using this config here. https://github.com/ruineka/linux/releases/download/v6.0-rc5-asus-fix/config |
@ruineka |
I compiled a kernel with strict_devmem=n and io_strict_devmem not set and this is the result of same result both times except table base address: 0xfe300000 (every address outputs "nan") |
@patrickschur |
I have a 6850U running Arch Linux, how can I help with support for this processor? |
@GreyXor As of right now, the instructions have been to run pmtable.py (#210 (comment)) and you might have to compile a kernel with devmem support (devmem=y, strict_devmem=n is what i did). |
Devs, |
https://gist.github.com/patrickschur/4645f81601fe6f8ff16c7a90e848d7cb
|
@ruineka |
Oh sorry I should have read the name more closely 😂 |
@patrickschur I ran the script two times, both yielded the same output. The CPU I have is a 6850U. |
@JadedTuna any insight as so why my pmtable just outputs "nan"? is it a 6800U vs 6850U thing or did I screw something up? I definitely have devmem access as indicated by running this command: |
T14s Gen3 AMD with 6850U here |
|
Nope. It only works for flash installed holoiso in ARKZOE, not in GPDWINMAX2 with Manjaro Linux with Linux 6.1 Kernel. |
@bowes332frank Any error message? Does it fail to map |
Reporting another success with a 6850U in Linux with
|
i tested download source code to build is work, thx CPU Family: Rembrandt
|
but i found the problem if build at debug mode
if build at release
some value show 0 , some value is - |
@cyrus0880 Are you testing on Windows? If so please try binary here: https://github.com/FlyGoat/RyzenAdj/actions/runs/3580018117 |
i rebooted my winmax2 and use this binary no idea what problem ~\Downloads\ryzenadj-win64
|
source build before reboot use your bin for win if after reboot run ryzenadj.exe -i, ryzenadj-r.exe -i, ryzenadj-d.exe -i but i open vscode build debug again and run new binary got this CPU Family: Rembrandt
and wait 5min run again got all value 0 again |
@patrickschur Any thoughts? I'm going to make a release soonish. |
@FlyGoat Unfortunately, I don't know why it doesn't work on Windows. But I also don't use Windows. |
@patrickschur could it have something to do with the reason the 6800u requires iomem=relaxed but the 5800u doesn't? |
Can some one with access to those chips spare some time to test how many functions are working? https://github.com/FlyGoat/RyzenAdj/wiki/Supported-Models I think document those into our wiki can be useful. |
I can help, i have an aokzoe device with 6800u (their firmware is iffy though) @FlyGoat. Just tell me procedures to test. |
readings from ryzenadj -i (AOKZOE A1 AR07)CPU Family: Rembrandt
|
@FlyGoat btw gpu clock seems to be messed up after installing ryzenadj |
@NikhilSaini38 Just play around those parameters to see if they actually have affect to the system :-) RyzenAdj may conflict with other software measuring the clock. |
@FlyGoat it migh be due to vendor configuration, but so far only these parameters respond
|
@patrickschur Back to the windows issue: The only difference should be the 64bit memory address for the PM Table. Unfortunately, Rembrandt is the first which needs a 64bit memory address, so none of us has a device to play around locally. And to make things worse, on Windows you need something which runs on same mode like a driver, and it is kind of a problem to sign stuff. And without this process, you can't load a self compiled sys files as driver. That's why all are using this old inpoutx64.dll which contains a signed driver as far as I understood. If you did confirm that the windows build has found a good memory address, then it is very likely that our inpoutx64.dll version doesn't support addresses larger than 32bit. I would highly recommend adding the non-supported error back into the Windows version until we find somebody how know how to deal with these kinds of topics. If the Windows version does not create an error message, all tools relying on ryzenAdj would get incorrect values on Windows. Update: |
@Falcosc |
@patrickschur could you create a build for @ewagner12 which prints out the memory address to confirm 64bit is working with inpoutx64.dll? @ewagner12 Maybe your table memory address fits in a 32bit. @cyrus0880 If patrick finds some time to create a version with table memory address output, could you try it as well? Maybe we have timing issues again with our SMU commands. Update: that was the fix for the timing issues, without this fix some APUs did get uninitialized memory data as well, maybe it needs to be fine-tuned again 36fa8f0 Lines 238 to 248 in 36fa8f0
Raven and Picasso did get 0 data and for that reason we have a hack @patrickschur I know I ask for much time, but if we actually did confirm that ewagner12 is successfully pulling data from 64bit memory addresses, maybe we have to just try to refresh table until we find plausible data? Lines 288 to 294 in 36fa8f0
|
@Falcosc @patrickschur would the DSDT code help in figuring out these addresses? I was looking into mine and was able to find some of the power parameters inside the DSDT, but not all of them. Also wasn't able to reverse engineer some values. |
Thank you for your application, but may I ask how to add "you may need to add iomem=relaxed as a boot parameter for ryzenadj to work" I am really not good at programming |
That depends on your bootloader. Also some allow you to pass extra param on the fly (like in Grub) to test change before making it permanent in bootloader config. Just google for your Linux distribution name + "add boot flag". In all cases you can verify if flag was passed correctly by issuing |
I confirm it works on AMD 6800U machine GPD Win MAX 2 with vanilla Arch Linux, 6.2.12 stock kernel with
By "works" I mean it recognizes chip and displays this info. I haven't tried turning knobs yet. |
After a longer break, I'm finally back! :) @Falcosc Unfortunately, I can't help when it comes to fixing the Windows version. I don't even use Windows. |
It's not working here. When you try to set -a -b -c the values get applied but the tdp does not change. You can test this easily by running the device on battery and running a game with mangohud showing cpu+gpu wattage. Currently this statement holds true:
But applying
Don't seem to have any effect. --tcl-temp does work however. This can be used as a hacky way to lower tdp. Additionally GPD themselves have noted that their MotionAssistant software which controls TDP in windows does not actually touch TDP values: So far I tested 6800U on both GPD Win Max 2 and GPD Win 4, both cannot lower TDP via -a -b -c (ex -a 15000 -b 15000 -c 15000) As a workaround I use something like --tcl-temp 40 which forces tdp to around 12w under load (I used gears of war 5 for testing) On the flipside -- my laptop has a 6900HS and I can modify TDP values on it with no problem |
Correct command is And it does the trick, setting it to 45 on Win MAX 2 6800U avoids annoying fan reving up for a few seconds for example when heavy www page is opened. |
I used the latest version, V0.11.1.
But it doesn't work
This issue causes me to be unable to adjust on SteamOS
ryzenadj.exe -i
CPU Family: Rembrandt
SMU BIOS Interface Version: 18
Version: v0.11.1
request_table_ver_and_size is not supported on this family
Unable to init power metric table: -1, this does not affect adjustments because it is only needed for monitoring.
ryzenadj.exe --dump-table
request_table_ver_and_size is not supported on this family
Unable to init power metric table: -1, this does not affect adjustments because it is only needed for monitoring.
The text was updated successfully, but these errors were encountered: