Ah, is this why it often misreports the hardware then (PUP, I mean, it often reported my 240MHz PPC as 160MHz, despite the fact the CPU is definately a 240MHz part)?
In most cases that was just applications being buggy. They assumed the PLL multiplier value was direct multiplier, instead of index to multiplier table specific to each CPU (well some CPUs share the PLL multiplier tables). For example some Doom version blasted "buggy ppc.library" for this, when in fact the app itself was broken.
But if your CPU speed appears randomly change between 240 and 160, then I have no clue.
- unless the value in the library base is hard coded, at some point during initialisation it must be read from the physical PVR, regardless of what happens on subsequent library calls...
Sure, it's read at library init. However, your query doesn't trigger any PPC code execution... :-)