I have a number of products with am335x processors running at different frequencies. In fact the processors are marked with different suffixes. For example I have am3352bzczd30 (300MHz) and am3354bzcz100 (1000MHz). Of course the linux kernel is the same for both products but the system does not know correctly which frequency should be used. 1GHz version runs fine at 1GHz, but the 300MHz version is not limited to 300MHz. Here is what cpufreq-info prints at am3352bzczd30:
cpufrequtils 008: cpufreq-info © Dominik Brodowski 2004-2009
Report errors and bugs to email@example.com, please.
analyzing CPU 0:
CPUs which run at the same hardware frequency: 0
CPUs which need to have their frequency coordinated by software: 0
maximum transition latency: 300 us.
hardware limits: 275 MHz - 720 MHz
available frequency steps: 275 MHz, 500 MHz, 600 MHz, 720 MHz
available cpufreq governors: conservative, userspace, powersave, ondemand, performance
current policy: frequency should be within 275 MHz and 720 MHz.
The governor “ondemand” may decide which speed to use
within this range.
current CPU frequency is 275 MHz (asserted by call to hardware).
cpufreq stats: 275 MHz:nan%, 500 MHz:nan%, 600 MHz:nan%, 720 MHz:nan%
As you can see it is capable to run at 720MHz which I don’t consider to be safe for this specific model of processor. Is there any way to read the marked frequency from CPU registers and limit the PLL?