I recently installed Catalina on a 24 inch iMac 7,1 (mid 2007). To enable the iMac to run newer macOS versions I swapped the 2.4 GHz T7700 "Merom" CPU to a 2.5 GHz Core 2 Duo T9300 "Penryn".
See more in this post:
Continuity and Catalina on 2007 iMac 7,1
I had ordered a Core 2 Duo T9300 CPU to enable the Mac to run Catalina. I used some old Arctic Silver 3 on the CPU and the GPU. For the GPU ram I reused the white silicon paste. The GPU on the 24 inch IMac had been running much hotter than in the 20 inch iMac, deteriorating the black rubber foam and leaving sandy black dust inside the Mac.
I was left with a 20 iMac 7,1 with a failing GPU and scratched glass panel. I am considering doing the same upgrades to this iMac. Unfortunately the price of a T9300 has almost doubled from last year when I ordered mine. A T9300 from China now cost almost $25 and a T9500 almost $50.
I originally found the 20 inch iMac in a dumpster, so my budget and interest in upgrading it is quite limited. The main use would be as a testbed for Mac upgrades, like EFI patches, boot loaders, GPU upgrades, and maybe running Big Sur. I was thinking of spending $50, of which $45 is already spent on parts purchased (SSD, RAM, BCM94331CD). This leaves me about $5 to spend.
I ordered an
Intel Core 2 Duo T9400 from AliExpress fo $5. The T9300 and the T9500 run at the same 800 MHz front-side bus speeds as the original T7700. The T9400, T9550, and the T9600 use a 1066 MHz FSB. I assume a T9400 would boot and run on an iMac 7,1 nonetheless at a 800 MHz FSB speed, resulting in a 1.9 GHz core speed instead of the nominal 2.53 GHz.
To get optimal performance one would need to overclock the FSB to something near 1066 MHz. I believe this is technically feasible. The iMac uses an Intel
82PM965 Memory Controller northbridge. The PM965 shares the same
Intel 960 Series silicon as the P965 northbridge. The
P965 is well known for its overclocking capabilities. The P965 can reach
FSB speeds of over 2000 MHz on the best motherboards, like the Asus P5B-E.
The main difference between the PM965 and the P965 is in TDP. The P965 outputs max 19 watts while the PM965 is limited to 8 W. To overclock the chipset on a iMac might require better cooling.
Here are some hurdles to overcome, assuming that the T9400 boots in a mid 2007 iMac.
- The iMac does not have BIOS to configure clock settings. Overclocking would have to be done from an application like ClockGen. Most overclocking applications are limited to Windows. Would making the setting in Windows and then warm booting to macOS preserve the settings?
An alternative would be running the overclocking app from a EFI script before booting into macOS. The fallback option would be swapping the 20 MHz crystal to a 25 MHz one.
- Memory would be overclocked in the same proportion as the CPU, unless there is an option of changing the memory strap. Boosting the FSB to 1066 MHz would make the RAM run at 888 MHz. It is well known that the iMac 7,1 fails to boot with 800 MHz ram. It is unlikely that 667 MHz DDR2 ram can handle 888 MHz, especially with the fast 667 MHz latency settings. To make 800 MHz DIMMs boot, one could reprogram the serial presence detect (SPD) data to 667 MHz speed with other parameters suited for overclocking.
- Some sources from 2008 claim that 1066 MHz CPUs will not work in a PM965 laptop or motherboard. I cannot see why they would not work on the iMac. It is not a question of a missing CPU id or missing microcode. The iMac 7,1 has neither in its firmware but the T9300 still works. Could this be an issue of the firmware refusing to boot if it sees the BSEL pins for a 1066 MHz FSB. If so, BSEL can be modified.
Even if the CPU cannot be overclocked to its stated speed, the benefit would be a more modern CPU running at a lower speed and lower power usage. How about an undervolted P9600 (25 W TDP nominal) running at 2 GHz?
Update 1 - July 6, 2020: There is a problem in installing a 1066 MHz FSB Penryn in a system with the PM965 northbridge. According to page 225 of the
Mobile Intel® 965 Express Chipset Family Datasheet (Revision 003 June 2007):
FSB Frequency Select:
Reflects the State of BSEL pins from the Processor. BSEL(2:0) selects the FSB frequency as defined below:
- 001: FSB533
- 011: FSB667
- 010: FSB800
- Others: Reserved
Attempts to strap values to unsupported frequencies will shut down the host PLL.
The issue was discussed at length in a
144 page thread at Notebook Review. Evidently it took several years from 2008 to find the solution. It takes two steps:
- Make the the 1066 MHz FSB CPU "spoof" a lower FSB speed by BSEL modding the socket.
- Overclock the FSB to something near 1066 MHz by tweaking the clock generator.
This photo shows the BSEL mod as applied to Socket P. The piece of wire pulls BSEL1 (pin B23) to Vcc (A20). I guess pin B23 also needs to be cut from the CPU.
Luckily there is a no need to do the BSEL mod on the socket or CPU on an iMac. Apple has built the required jumper resistors on the logic board. All Macs from 2007 share this same design defined on the "Clock Termination" page under "CK505 Configuration Straps" of the
schematic diagrams. There are three ways of configuring the resistors R3081 to R3090 at the factory.
- Leave out the pull-up and pull-down resistors ("NO STUFF"). The BSEL pins of the CPU will set the FSB frequency.
- Leave out the shunt resistors and set the frequency "manually" by placing the appropriate pull-up or pull-down resistors.
- Connect the shunt resistors but make a frequency pre-selection using pull-up or pull-down resistors. If the shunt resistors are later removed, the FSB frequency will be forced to the preselected value.
Apple chose the last one, in the expectation that some penniless iMac user would find the shunt resistors and schematic 15 years later!
Thank you Apple!
I still have not located the shunt resistors. Evidently they are hidden under the northbridge heatsink. Note that all Apple schematics using similar design elements use the same labels for the components.)
I have not been able to find datasheets for the clock generator circuits. The chips used in 2007 include Silego SL8GLP537V, SL8GLP536, and SLG2AP101 and Cypress Semiconductor CY28545-5. All these seem to share the pinout. A note on the iMac 7,1 schematic diagram says "Only 100-200MHz supported by SLG8LP536 and CY28545-5". The SL8GLP537V used on the iMac 7,1 should thus support higher FSB frequencies.
There can be little harm done in removing the R3086 shunt resistor for BSEL1. The CPU can still select between 4 x 166 MHz and 4 x 200 MHz FSB speeds. Only 4 x 133 MHz will be disabled, but there is little chance anyone will ever try to install a 533 MHz FSB CPU in a 2007 iMac. Intel claims that the Santa Rosa mobile chipsets, including the PM965 do not and will not ever support any FSB frequency beyond 800 MHz. (Or will they? Wait for the next update.)
Update 2 - July 6, 2020: There may be a simpler solution: just
flash it to a 2008 iMac 8,1!
There is no meaningful difference between the iMac7,1 and the iMac8,1 logic boards. I looked at the schematics side by side. Both use the same Intel "
Crestline" Memory Controller Hub northbridge. Both claim support for 1066 MHz FSB. The only difference is that in the iMac 8,1 FSB speed preselect resistors are set to 1066 MHz (L-L-L) whereas on the 7,1 they are set to 800 MHz (L-H-L).
The main difference between the boards is in 12 volt power delivery and monitoring. High-end 2008 iMacs have additional power sense circuitry. (On the lower-end models these components are unpopulated.)
One missing feature in the 2008 iMac is connectors for an ambient light sensor. The connector pins exist on the iMac 7,1 logic board in the connector for the infrared sensor. In my 20 inch iMac only the 4 USB pins for the infrared sensor are connected. Neither of these two differences should affect how the firmware controls the Mac.
But how can the PM965 northbridge support a 1066 MHz frontside bus? There are only two options:
Either Intel secretly sold Apple an unlocked version of the chip.
Or Intel lied. The north bridge does not shut down the host PLL when it sees "unsupported" BSEL values. This is done by the firmware blob provided to motherboard manufactures by Intel along with the PM965 chip. Apple opted out and got unlocked firmware code from Intel.
Supposing the 8,1 firmware works, there are two issues involved in the process of flashing. Does iMac 8,1 support Merom processors? Will the iMac 7,1 with original firmware boot with a 1066 MHz processor without the BSEL mod? In the worst case the flashing would need to be done in two steps.
- First install 800 MHz Penryn.
- Flash and confirm that system boots.
- Swap to 1066 MHz Penryn.
The alternative would be to simply
- Flash. Fail to boot after flash.
- Install 1066 MHz Penryn and hope it boots.
Searching the web I found this old post from 2018 on the Netkas forum. User beyre83 has had partial success in flashing a iMac 7,1 with 8,1 firmware.
iMac 7,1 Firmware Editing
I have found iMac 8,1 Rom Dump on the Deepest Darkest Internet flashed it to my iMac 7,1
no display no chime, but the system does boot to osx and I can remote display into it
The audio volume is too low and the screen stays black. The issue could be in the LCD backlight not turning on. Maybe there is an incompatibility between the iMac 8,1 bootROM and the iMac 7,1 SMC firmware. But the system boots and recognizes the processor properly.
Screenshot: iMac 7,1 with an upgraded T9300 CPU running iMac 8,1 firmware.
Photo by beyre83 via Netkas forum. Unfortunately beyre83 did not test if the iMac now supports 800 MHz DDR2 ram or 1066 MHz FSB Penryn processors.
The reason this has not been tried more often may be that the iMac 8,1 firmware is not publicly available. Evidently the 2008 iMac has never received
a firmware update! Someone would have to dump their firmware and share it.