http://episteme.arstechnica.com/eve/ubb.x/a/tpc/f/8300945231/m/721002389631
Thanks.
First - please le me apologize for the monster post... there is a lot of data to digest.
Secondly - Please let me clarify... Momentum (
http://www.momenco.com), where I work, is not affiliated with IBM. We just want to bring the chips (& 64-bit computing) into the embedded and TELCO space.
A better picture of the Maple product is here:
http://www.momenco.com/products/xsc100.html
Also, we maintain the
http://www.970eval.com site and its associated forum(s).
The purpose of those forums is to help people who are trying to understand the 'nuts-n-bolts' of 970 and how it works in a system. It is at an engineering level. While we can't talk about other companies specific implementation(s), we can talk about what has to happen at what time.
I am pretty motivated to help folks understand 970 and its associated quirks. I think that people must understand this chipset before they will really accept it - So without violating any NDA's, I'm happy to pontificate on hypothetical scenarios, like overclocking the 970.
'nuff said...
WRT YellowDog Linux... Kai Staats, the CEO of TerraSoftSolutions, who makes & maintains YellowDog Linux and I have spoken about how YellowDog starts up on 970 systems. There is an OpenFirmware tree structure in memory that is handed off to the Kernel, which describes everything that should have already been enumerated... like processor and bus speed.... so by the time an OS gets loaded... bus speeds are already set. This tends to point us back at the H8, towards figuring out what on the motherboard directs this micro to tell the Bridge and processor how fast to run the bus...
It all comes down to clocking...
If you go to
http://www.970Eval.com and register into the forum, go to
PowerPC 970 Evaluation » Board Management Processor » 405EP BootLoader
and look at "System Clock speed, Problems working at 450 Mhz ?"
from Jan 14 2004
(Sorry, I can't re-post here without REALLY pissing someone off)
There, you will find a FULL description of PLL, multipliers/dividers & clocking requirements for 970 and the bridge. Examples are given for clarity.
So, from the data above, one should be able to see that there is a (programmable) clock source on the motherboard that is responsible for giving various clock speeds to the processors and bridge for different configurations. Seeing as the H8 is the 'Master' of configuration of this motherboard, as well as monitoring (for fan speed) - it is not a large leap to assume that the H8 probably configures this clock source at boot time, over I2C - since everything else is I2C, too.
The clock speed generated for a 1.6GHz processor can not be the same speed as for a 1.8GHz processor, because the bus speeds have to be different for the math to work out... Therefore one must use an I2C probe to figure out what modifications to the baseboard (like resistor position) yeild the correct generated clock speeds to yeild the desired processor speed. It is also possible that there are resistors on the processor modules that direct this functionality.
One has to realize that this is only half of the hack... The other half lies in convincing the 1.6GHz processor module to run at 1.8GHz. Just like most modern processors, there is nothing inside the silicon of a 970 that limits its speed or configuration... IBM bins different speed grades based upon their characterization of the bare die. Convincing a 970 to run faster than what it has been 'binned' for is a simple matter. Keeping it running may be less trivial (Heat). Please remember that the thermal density of the silicon is four times that of a Pentium IV - Same Wattage in 1/4th the space... so thermal management becomes a real issue, thus the HUGE heat sinks... If you look at a processor module, you'll see that there is a programmable I2C part on them. I would assume that this is what holds the magic for specific speed configuration for a specific processor. This PROM is probably read out at boot time, telling the H8 what it's max speed and configuration is, and the H8 probably compares that against what it thinks the motherboard is configured for and activates the lowest common denominator. The second half of the hack would be to re-program this I2C PROM with the contents of a higher speed processor modules PROM. Hypothetically.
If you assume that the hypothesis stated above is correct, then you really have to hand it to Apple for creating a manufacturable, configureable machine. Its graceful in its configureability. They could stock up a number of generic motherboards and simply plop in pre-configured processor modules at build time, depending strictly upon demand - and know that the system will only run as fast as they want it to. Amazing.
Bruce