Contribute
Register

RX 6600 XT: Henbury framebuffer and Zero RPM in Monterey 12.3

The resulting power table (and SSDT) end up identical to the previous one with 48 / 62 (SSDT-ZeroRPM-2M.aml).
Code:
Disa:SSDT-ZRPM $ diff -C 0 SSDT-ZeroRPM-4560.dsl SSDT-ZeroRPM-2M.dsl
*** SSDT-ZeroRPM-4560.dsl    Wed Mar 13 17:05:02 2024
--- SSDT-ZeroRPM-2M.dsl    Tue Mar 12 15:23:40 2024
***************
*** 8 ****
!  * Disassembly of iASLAfNthc.aml, Wed Mar 13 17:04:24 2024
--- 8 ----
!  * Disassembly of iASLS0TBuo.aml, Tue Mar 12 15:23:26 2024
Disa:SSDT-ZRPM $ diff SSDT-ZeroRPM-4560.aml SSDT-ZeroRPM-2M.aml
Disa:SSDT-ZRPM $
Maybe MorePowerTool has some granularity and does not set temperatures to a single degree.
Oh, same as last time. Perhaps the new .aml are without glitch. Thanks again @etorix
 
Here is a manual attempt to set the limits at 45 and 60, keeping the "safe" value of 0x91 at the other two offsets. You may carefully try this one. If it does not behave as expected and/or yield valuable results, it might be time to stop the experiments.
 

Attachments

  • SSDT-ZeroRPM.dsl
    32.1 KB · Views: 2
  • SSDT-ZeroRPM.aml
    2.6 KB · Views: 4
Here is a manual attempt to set the limits at 45 and 60, keeping the "safe" value of 0x91 at the other two offsets. You may carefully try this one. If it does not behave as expected and/or yield valuable results, it might be time to stop the experiments.
It's magic this time. No glitch. Fans start spinning at 60 degrees and stop at 45 degrees. What have you done? Im overwhelmed of your expertise on this. Thank you again @etorix
 
That's more luck and happy guessing than expertise, really.
I did just what I explained: Having noticed just four bytes that were changed between different tables, I manually set the two bytes which appeared to represent temperatures, but left the original value (0x91) for the other two positions.
It's all visible in the .dsl code:
/* 0328 */ 0x7F, 0xA3, 0xE3, 0x37, 0x04, 0x00, 0x91, 0x00, // macOS safe value, whatever that represents
/* 0330 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
/* 0338 */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0x00,

/* 06F8 */ 0x01, 0x04, 0x51, 0x00, 0x6B, 0x02, 0x2D, 0x00, // 45°C
/* 0700 */ 0x3C, 0x00, 0x00, 0x00, 0x64, 0x00, 0x64, 0x00, // 60°C
 
That's more luck and happy guessing than expertise, really.
I did just what I explained: Having noticed just four bytes that were changed between different tables, I manually set the two bytes which appeared to represent temperatures, but left the original value (0x91) for the other two positions.
It's all visible in the .dsl code:
Ok, I take it that you modified in the last reg file I sent?. It's a bit strange that the last regfile was the same as the first one I sent, and no one got 45/60. I must have done something, or the program wouldn't do those parameters. But we stop now! :thumbup:
 
I actually went back to the initial SSDT-ZeroRPM-ON.dsl, as I had only two bytes to change, but it hardly matters for the end result. The registry files showed what could potentially be changed.
If more testing confirms that there are no glitches at all, we have the recipe to adjust thresholds almost at will for this RX 6600 XT card. Start and stop temperatures at offsets 0x700 and 0x6FE, as plain Celsius degrees; do not touch the rest.
 
Start and stop temperatures at offsets 0x700 and 0x6FE,
0x6FE typo? should be 0x6F8?

I actually went back to the initial SSDT-ZeroRPM-ON.dsl, as I had only two bytes to change, but it hardly matters for the end result. The registry files showed what could potentially be changed.
If more testing confirms that there are no glitches at all, we have the recipe to adjust thresholds almost at will for this RX 6600 XT card. Start and stop temperatures at offsets 0x700 and 0x6FE, as plain Celsius degrees; do not touch the rest.
AHA now I understand. I have working in Lightroom several hours today, using bluetooth, Spotify, Safari. No glitches so far. Perhaps one day I will change 45 degrees to 50 degrees because the fans are spinning in very long time to get 45 degrees, specially the last degree, from 46 to 45 (with two monitors). So I can only change 0x2D to 0x32 in the line 0x6F8 then and fan starts to spin at 50 degrees. Fantastic!
 

Attachments

  • Screenshot 2024-03-14 at 18.22.59.png
    Screenshot 2024-03-14 at 18.22.59.png
    85.1 KB · Views: 4
So I can only change 0x2D to 0x32 in the line 0x6F8 then and fan starts to spin at 50 degrees. Fantastic!
Yes, change to 0x30 or 0x32 and fans should stop spinning at 48°C or 50°C respectively.
0x6F8 is the offset at the beginning of the line, so the offet of the relevant byte is 0x6FE. No typo ;)
 
0x6F8 is the offset at the beginning of the line, so the offet of the relevant byte is 0x6FE. No typo ;)
oh another abstract thing! I wrote "start spinning at 50 degrees" meant of course "stop spinning". My head are a bit upside down while writing, and combo with HEX haha. A little stress typing here with so many people watching, my English are bad, some misunderstanding here and there, google translate and so on. It's hard work! We stop now. Thanks again @etorix
 
Back
Top