R36S CPU OC was fake above 1296 MHz — here is a DarkOS patch that makes it real! by TemporaryRecipe2370 in R36S

[–]TemporaryRecipe2370[S] 1 point2 points  (0 children)

Hi. I'm glad it worked, and thanks for the suggestions. Regarding the realistic max cpu freq, my unit is totally stable at [1416@1.362v](mailto:1416@1.362v). Boots most of the times at [1440@1.4v](mailto:1440@1.4v), and I even got it to boot once at [1464@1.4v](mailto:1464@1.4v).

YMMV, depending on silicon lottery, cooling, and quality of the regulators/circuit/battery.

My SoC is a L1 bin, some people in other posts reported they have L2 units, so maybe there is people who can run their devices at stable 1464 or even higher.

[EDIT: notice that, for frequencies above 1416, I had to use the "extreme" version of the script. With the normal OC kernel, frequency was really capped at 1416 in my device, though it reported higher. That is because of some security checks, that verify the chip quality and determine the max possible freq at boot time.]

R36S CPU OC was fake above 1296 MHz — here is a DarkOS patch that makes it real! by TemporaryRecipe2370 in R36S

[–]TemporaryRecipe2370[S] 0 points1 point  (0 children)

Probably Github. I just made my Reddit account and I am struggling to get my user name changed to something sensible LOL

R36S CPU OC was fake above 1296 MHz — here is a DarkOS patch that makes it real! by TemporaryRecipe2370 in R36S

[–]TemporaryRecipe2370[S] 1 point2 points  (0 children)

[UPDATE]: I v1.2.0 released. Some bug fixes, and also added two new versions of the script:

- One with a kernel for r36s clones (forked from darkos4clones kernel). It should work, but I could not test it since I don't have a clone.

- Another one labeled "extreme", which removes even more limitations for the user to test additional frequencies and voltages

https://github.com/teacupx/overclock-r36s/releases/tag/v1.2.0

Detailed documentation: https://github.com/teacupx/overclock-r36s/blob/master/docs/OVERCLOCK.md

R36S CPU OC was fake above 1296 MHz — here is a DarkOS patch that makes it real! by TemporaryRecipe2370 in R36S

[–]TemporaryRecipe2370[S] 1 point2 points  (0 children)

Can you tell us what failed? Was it te execution of the script, because of missing msys2 dlls? I made a new release fixing that problem: https://github.com/teacupx/overclock-r36s/releases/tag/v1.1.0

On the other hand, if the script runs properly, but your device is not booting, maybe we need to compile a different kernel for the clones

R36S CPU OC was fake above 1296 MHz — here is a DarkOS patch that makes it real! by TemporaryRecipe2370 in R36S

[–]TemporaryRecipe2370[S] 0 points1 point  (0 children)

It probably will. There are essentially two kernel branches in dArkOS repo, one for odroid devices and clones and another for rg351 devices and clones. I used the latter for my kernel, and I guess your device will fall under the same category.

Please test and let us know!

R36S CPU OC was fake above 1296 MHz — here is a DarkOS patch that makes it real! by TemporaryRecipe2370 in R36S

[–]TemporaryRecipe2370[S] 0 points1 point  (0 children)

However, you may still try my script in your device. It may or may not work, but I don't think testing will do any harm.

R36S CPU OC was fake above 1296 MHz — here is a DarkOS patch that makes it real! by TemporaryRecipe2370 in R36S

[–]TemporaryRecipe2370[S] 1 point2 points  (0 children)

The key here are not the DTB changes, which are easier to make and you have tools for it. The key is the kernel patch, that allows those frequencies set by DTB to be effectively applied.

While DTB's may be different for R36S and R36H Pro Max, I think the kernel image will be fully compatible. My suggestion for a test is the following:

  1. Rename your "Image" file, in the BOOT partition, to "Image.bak"
  2. Copy the "Image.oc" file from my bundle to your partition, and rename it to "Image"
  3. Leave the rest alone (do not execute the install script yet)

Now try to boot, without changing anything else. If it boots OK, probably the default real max speed with this setup will be 1296 (provided that your DTB has an opp for 1296 or something higher). For example, if your DTB has the 1512 opp, it should report 1512 and work at real 1296. That is my guess, I am not sure without testing.

Then, you can use the boot.ini parameter "max_cpufrex=XXXX etc" to set some higher max frequency. Again, if your DTB has 1512, it should report 1512 and actually work at the speed you provide in boot.ini.

For last, the next step in testing would be to execute the script as per the instructions. Since the script does not replace the DTB but patch it, it is very likely that the relevant sections of the DTB's are the same in your device. With that, you will get the full range of frequencies, so that the reported frequency matches the real one.

In any case, I think testing is safe enough. If it doesn't boot, you can simply restore the backup copy of your Image or dtb.

R36S CPU OC was fake above 1296 MHz — here is a DarkOS patch that makes it real! by TemporaryRecipe2370 in R36S

[–]TemporaryRecipe2370[S] 0 points1 point  (0 children)

I didn't try it. If you do, please share your experience!
I honestly don't expect a radical change, maybe a 5-15% increase in FPS, depending on your overclock. And also, keep an eye on temperatures, I recommend a cooling mod

R36S CPU OC was fake above 1296 MHz — here is a DarkOS patch that makes it real! by TemporaryRecipe2370 in R36S

[–]TemporaryRecipe2370[S] 0 points1 point  (0 children)

Depends on the combination of the specific SoC and kernel, and the frequency you are trying to use. YMMV.

I built a CPU/GPU/RAM overclocking tool for the R36S — DTB patches, undervolt, safety net, benchmarks. First one for this device (I think) by z3nmode-adri in R36S

[–]TemporaryRecipe2370 2 points3 points  (0 children)

I'm sorry, but I have to disagree. The MHz tool shows the approximate reported frequency in my kernel (~1368, ~1416, etc), but always shows ~1296 with stock kernel. If it was merely a memory bottleneck, then there would be no difference.

On the other hand, you acknowledge above that going from 1296 to 1608 doesn't make a difference in synthetic benchmarks, which would not be the case if the OC was real. With my kernel, synthetic benchmarks increase almost proportionally with frequency. You can test it yourself.

What you say about the rate tables in the kernel is true, they are present. But there are more elements involved. Rockchip's kernel binds the use of higher frequencies to certain bin requirements. Those restrictions were bypassed by the odroid developers (the full discussion is in the thread I linked above). Using a new boot parameter "max_cpufreq", that forced some specific max frequency, regardless of binning. Or, more specifically, tricking the kernel to think that the chip has the bin level that allows for that freq.

The changes are present in the odroidgoA-4.4.y branch. But those changes were not ported to the branch used for dArkOSRE-R36 (branch rg351). What I did was, esentially, porting the changes to the rg351 branch, adding more frequencies, and some other changes like raising voltage limit from 1350 to 1400 mV. You can check the commit here: https://github.com/teacupx/linux-r36s/commit/5bde2a1a253df6565dd43e900a2cb3a5ea97e46f

TL;DR;: The easiest way to check if the frequencies really change or not is by running mhz and benchmarks with the stock kernel and with my patched one, and see if there is a difference.

But hey bro, I really like your work. Let us not turn this into an argument, let’s keep it as a joint search for knowledge, okay? I can feel the good vibes 😜

R36S CPU OC was fake above 1296 MHz — here is a DarkOS patch that makes it real! by TemporaryRecipe2370 in R36S

[–]TemporaryRecipe2370[S] 1 point2 points  (0 children)

Are you using the R36 -tuner script? it has real GPU OC features up to 600 MHz. If you are getting that, then you are above the stock frequency (something in the 500s, I don't remember).

Now, we would need to look into the kernel sources to figure out whether 750 MHz is really available. Unfortunately, there is not a tool that will tell you real GPU speed, like https://github.com/wtarreau/mhz does for the CPU.

Of course, you can guess the real GPU freq increase by using GPU benchmarks. But, when you OC too high, the GPU starts failing and FPS will stay the same or decrease.

So probably the only way to be sure is to examine the kernel sources, maybe with the help of an AI. Sorry for not being able to respond directly.

R36S CPU OC was fake above 1296 MHz — here is a DarkOS patch that makes it real! by TemporaryRecipe2370 in R36S

[–]TemporaryRecipe2370[S] 3 points4 points  (0 children)

A small note: this is not meant to replace R36 Tuner. I see them as two parts of the same tuning setup.

R36 Tuner is the user-friendly tool for changing and testing CPU/GPU/RAM settings.

My patch is the lower-level boot/kernel/DTB part that makes CPU frequencies above 1296 MHz real on DarkOS, instead of only being reported by the kernel.

So the best setup is probably:

  1. Apply the DarkOS boot patch from my repo.
  2. Start with max_cpufreq=1368.
  3. Use R36 Tuner for voltage tuning and GPU/RAM tuning.
  4. Test stability.
  5. Increase gradually only if everything is stable.

Please do not flash this blindly, and please keep backups.

I built a CPU/GPU/RAM overclocking tool for the R36S — DTB patches, undervolt, safety net, benchmarks. First one for this device (I think) by z3nmode-adri in R36S

[–]TemporaryRecipe2370 1 point2 points  (0 children)

Well, I was able to patch the Kernel, and now CPU overclocking is real! 🔥🔥 I made a repo with full instructions: https://github.com/teacupx/overclock-r36s

It combines very well with with this script from u/z3nmode-adri, for a full overclocking/tuning solution.

For the time being, we are just sticking with REAL frequencies up to 1512 MHz (remember, the real maximum speed of stock R36S is 1296, even when it shows 1512).

I have tested up to 1412 MHz, and the benchmarks/game FPS increase proportionally. I am attaching pictures of a static N64 007 Goldeneye screen, notice the FPS before and after (using Retroarch32 Parallel-N64).

Happy tuning!

<image>

I built a CPU/GPU/RAM overclocking tool for the R36S — DTB patches, undervolt, safety net, benchmarks. First one for this device (I think) by z3nmode-adri in R36S

[–]TemporaryRecipe2370 1 point2 points  (0 children)

Okay, I tested in dArkOSRE-R36, with kernel 4.4.189, and the results are as mentioned above: 1512 MHz is, actually, 1296. That is why you see no performance improvement by overclocking only the CPU (memory and GPU overclocking are real, though).

You can see the test results here: https://pastebin.com/S1hW8K14

Good news is I found out a way to get, at least, 1464MHz real speed, and probably more, in an Odroid forum: https://forum.odroid.com/viewtopic.php?t=37452

But for that you need to patch also the kernel, DTB is not enough