The CPU limitation is straightforward. A simple cap that can be moved up/down based on a simple test to see if the CPU is a 'T'.
The RAM change is harder to read, I think it may be switching to a second struct (hence this first test). The GPU is really hard to follow and I'll try to unpick that today. Both of these are triggered by the 'leakage' level. From what little I've seen so far 'real' RK3188 chips have a leakage level of 0 or next to 0. T chips have higher levels. Leakage is effectively a limitation on the voltage that can be applied over transistors placed incredibly close to each other (28nm!).
So what is happening is the code assesses the leakage level and then backs off the voltages and frequencies to ensure stability.
This code wasn't needed when the RK3188 chips sold all had no leakage problems at the expected operating voltages/frequencies.
Comment