Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

LightBulbFun

macrumors 68030
Original poster
Nov 17, 2013
2,901
3,198
London UK
I Just wanted to make a Quick posting that I managed to update the Microcode on my MacBook2,1 to the latest version intel has released for its CPU :)

I managed to do this by dumping my MacBooks BootROM using flashrom in Linux and actually manually finding the microcode in the BootROM (which in this case is 4096 Bytes long/big) and taking the updated microcode and replacing the old microcode with the new version, I then flashed the now edited BootROM onto the MacBooks BootROM flash chip crossed my fingers rebooted and low and behold it booted up with the updated microcode! :D

here is the Stock microcode in the BootROM

upload_2018-4-9_12-37-59.png


and here is the microcode after I have inserted the new version into the BootROM

upload_2018-4-9_12-36-41.png


while this is a MacBook and not a Mac Pro im fairly sure the same thing could be Applied to Mac Pros.

it might be possible to add E0 stepping CPU compatibility to a Mac Pro 3,1 and get the X5492 to work for example using this. or even maybe Westmere support to an Xserve3,1? or add the newest microcode for meltdown/spectre patching if Apple does not release an update for it :)

I used my MacBook for this as this machine is Fairly expendable, now that I see it did not brick the MacBook by doing this, I plan on trying to add updated microcode to one of my Mac Pro 1,1/2,1s at some point now to test this on a Mac Pro.

it might even be possible to add Harpertown support to a 1,1/2,1 Mac Pro :D (atm i dont own any Harpertown CPUs sadly so i cant test this out)


I just wanted to show that it is possible to update the Microcode in Apples EFI BootROMs :)

and now for some pictures of the MacBook actually booted up into an OS showing off the new microcode revision :)

here is the old microcode revision

upload_2018-4-9_12-31-8.png


and here is the new Microcode revision :)

upload_2018-4-9_12-31-54.png


I am very excited about this :) it could enable quite a few cool things :D
 
Thanks :)

indeed it very much was :) I could of easily bricked the machine and as I dont own an external EEPROM programmer (yet :D ) if I did brick the machine I would of had no way to recovery it.

(I did just remember that you can program SPI ROMs with a Pi which I have, however dont own a SOIC8 chip clip, tho I could always solder wires onto the legs of the EEPROM :) sadly PowerPC macs dont use SPI ROMs and flashrom does not work on PowerPC :(. )
 
  • Like
Reactions: dabotsonline
I used flashrom before to flash a macmini1,1 to 2,1 firmware, even changed the serial number of the board to the same of the enclosure. It's easy with a Pomona clip, but if I'm not mistaken Mac Pro 5,1 uses BGA flash, no?

Edit: correct info
  • Mac Pro 1,1 to 3,1 uses TSOP FWB flash memories
  • Mac Pro 4,1 to 6,1 uses SOIC-8 SPI flash memories
 
Last edited:
I used flashrom before to flash a macmini1,1 to 2,1 firmware, even changed the serial number of the board to the same of the enclosure. It's easy with a Pomona clip, but if I'm not mistaken Mac Pro 5,1 uses BGA flash, no?

Nice, flashing it that way should also change the Board ID so Lion will install without any hacks :) (where as flashing 1,1s to 2,1s normally does not change the board ID) I have also managed to edit the serial number in BootROMs too. I am aware of the Pomona clip I just dont own one atm sadly but I do want to get one :).

as for the Mac Pro 5,1, I was able to dump my Mac Pro 5,1s BootROM chip with flashrom but I have not tried flashing it back, I dont want to brick my main computer just yet LOL. (flashrom did say something about write protect being enabled im guessing to disable it you have to boot in Firmware update mode ie hold down the power button down until it beeps) keep in mind im not using an external programmer but using the -p internal switch in flashrom :)
[doublepost=1523308431][/doublepost]Just managed to patch/update the Microcode on my Xserve1,1 in the same manner :) , its worth mentioning that I had to put the Xserve into BootROM update mode before flashrom could erase/write to the EEPROM.

here is the old microcode

upload_2018-4-9_22-10-38.png


and here is the new microcode :)

upload_2018-4-9_22-11-9.png
 
Feel free to cover the cost of a couple X5698, for "development" purposes of course :D

I would love to try out the X5698 and X5687 even without any EFI mods, because as I have said in past posts if you trace it back only 1 or 2 people ever tested those CPUs, for all we know they could of been doing something wrong, much like how OWC says 8GB FB-DIMMs dont work in a Mac Pro 1,1/2,1 or that 32GB RDIMMs dont work in a Mac Pro 5,1 even tho they do work.

but if the X5698/X5687 do not work, I dont think it would be down to a microcode issue sadly as they share the same CPUID/Microcodes. (if they dont POST it might be down to the same thing that causes the X5698 to be stuck at 1.6Ghz when stuck in an EVGA SR2 Blackbird which MIGHT be patchable... people have managed to patch in X5698 support to the EVGA SR2 blackbird, IIRC the issue was the SR2 just not supporting such a high stock multiplier of 33, they simply changed the max number to 33 and it worked :) so in theory IF That is the issue with the Mac Pro was well we might be able to apply a similar patch to the MP5,1 BootROM)

BTW heres a quick screen shot of the Xserve1,1 booted into OS X showing the updated Microcode (its in decimal if your convert it to hex you get 0xD2) :)

upload_2018-4-10_2-47-28.png
 
Update time again! LOL

I finally dragged out my Mac Pro 1,1-2,1 (an upgraded 1,1 with 2,1 Firmware and SMC with Dual X5355 B3 stepping CPUs)

and I was also able to edit its BootROM and include updated microcode for the CPUs installed :)

heres is the old Microcode revision

upload_2018-4-11_12-24-21.png


and here is the new microcode revision :) (not a very big Jump in version mind you...)

upload_2018-4-11_12-24-49.png


also while I was poking around I noticed there are a total of 6 Microcodes included in the EFI, im planning on replacing the one of the un-needed microcodes with suitable Harpertown Microcode and hope I can get Harpertown CPUs working in a Mac Pro 1,1/2,1 :) I did notice there was a lot of empty space right at the end of the last Microcode so it Might be possible to add more then 6 Microcode but thats something I plan to play with once I have a means of recovering a bricked machine :D

also it turns out intelcpumicrocodelist works on Mac EFIs which is handy for quickly seeing what Microcodes are contained in an EFI :) here is an example of my Mac Pro indeed there are 6 Microcodes, the 2010 is the one I updated, and you can see some Microcode for some pre-release Core 2 Duo based CPUs :) but interestingly Microcode for G0 stepping CPUs is absent from the BootROM.... (I also Opened the BootROM up in a hex editor and confirmed this just incase there was some bug with intelmicrocodelist)

upload_2018-4-11_12-54-23.png


also worth noting that the Xserve1,1 lacks any microcode for any Clovertown CPU, I might try add some microcode and see if this Fixes the "Unknown" CPU in about this Mac that you get when you install Clovertown CPU into a MP1,1/XS1,1.

upload_2018-4-11_13-19-0.png


all in all theres been some pretty interesting findings I would think :)
 
Just jumping in to say this is an interesting thread. My 3,1 is still humming along. @LightBulbFun I look forward to seeing where all of this leads you -- maybe a few good surprises! Thanks for taking some risks and sharing results :)
 
  • Like
Reactions: LightBulbFun
VERY interesting thread. I was just inquiring whether or not Wolfdale and Harpertown CPUs would work in a 1,1 or 2,1 Mac Pro. With what you’ve done, it now may be a possibility.

Also, once I get my hands on a X5687, I plan on installing it into my flashed, single CPU 4,1. An X5698 experiment is a little too expensive for me at the moment.
 
I wonder where those Stock MBP3,1; 5,5; 6,1; 8,1 and MB5,2 BootRom dumps came from...

from a Shady BootROM dealer somewhere in New Jersey IIRC :D

Just jumping in to say this is an interesting thread. My 3,1 is still humming along. @LightBulbFun I look forward to seeing where all of this leads you -- maybe a few good surprises! Thanks for taking some risks and sharing results :)

VERY interesting thread. I was just inquiring whether or not Wolfdale and Harpertown CPUs would work in a 1,1 or 2,1 Mac Pro. With what you’ve done, it now may be a possibility.

Also, once I get my hands on a X5687, I plan on installing it into my flashed, single CPU 4,1. An X5698 experiment is a little too expensive for me at the moment.

Thanks :) a kind forum member here (@Gamer9430 ) helped me to get a pair of (C0 stepping) L5410s, so those should arrive pretty soon and then ill be able to have a go at getting Harpertown working in my Mac Pro 1,1/2,1 :D

keep us posting on the X5687 stuff I am eager to see how that turns out :)

I also had a look at a couple other BootROMs and noticed some interesting stuff like the iMac7,1 has no Penryn Microcode in it, it might explain why it reports weird CPU speeds to OS X when you install a Penryn CPU into said iMac. I wonder if adding Penryn Microcode would solve that issue (and the issue of the X9000 being stuck at the lowest multiplier when install in an iMac7,1) sadly I dont own an iMac7,1 to test this on (I would also like to try and flash an iMac7,1 with iMac8,1 firmware as they both share the same chipsets and have a very similar board layout)

I also confirmed the Mac Pro 3,1 lacks E0 Microcode so hopefully adding E0 stepping microcode to its Firmware would enable E0 stepping CPUs to work in the Mac Pro 3,1 :) (again one i cant personally test as of typing this due to a Lack of hardware, my Macintosh collection is mostly made up of PowerPC macs :D )
 
Last edited:
from a Shady BootROM dealer somewhere in New Jersey IIRC :D





Thanks :) a kind forum member here has enabled me to get a pair of C0 stepping L5410s, so those should arrive pretty soon and then ill be able to have a go at getting Harpertown working in my Mac Pro 1,1/2,1,

keep us posting on the X5687 stuff I am eager to see how that turns out :)

I also had a look at a couple other BootROMs and noticed some interesting stuff like the iMac7,1 has no Penryn Microcode in it, it might explain why it reports weird CPU speeds to OS X when you install a Penryn CPU into said iMac. I wonder if adding Penryn Microcode would solve that issue (and the issue of the X9000 being stuck at the lowest multiplier when install in an iMac7,1) sadly I dont own an iMac7,1 to test this on (I would also like to try and flash an iMac7,1 with iMac8,1 firmware as they both share the same chipsets and have a very similar board layout)

I also confirmed the Mac Pro 3,1 lacks E0 Microcode so hopefully adding E0 stepping microcode to its Firmware would enable E0 stepping CPUs to work in the Mac Pro 3,1 :) (again one i cant personally test as of typing this due to a Lack of hardware, my Macintosh collection is mostly made up of PowerPC macs :D )

Hopefully those CPUs will help to further your research. They were pretty cheap, which would mean if successful, a lot of people could easily get Harpertown CPUs, install them, and once again extend the lives of their MP 1,1/2,1s, like myself :p
 
keep us posting on the X5687 stuff I am eager to see how that turns out :)

I also confirmed the Mac Pro 3,1 lacks E0 Microcode so hopefully adding E0 stepping microcode to its Firmware would enable E0 stepping CPUs to work in the Mac Pro 3,1 :) (again one i cant personally test as of typing this due to a Lack of hardware, my Macintosh collection is mostly made up of PowerPC macs :D )

Got an offer on a X5687... so I'll keep you posted if it works out.

Would LOVE to see the E0 stepping pan out for the 3,1... as I already have the dual-core 3.4ghz X5272 in my 3,1, but would love to replace them with the quad-core versions.

Keep up the AMAZING work!
 
Got an offer on a X5687... so I'll keep you posted if it works out.

Would LOVE to see the E0 stepping pan out for the 3,1... as I already have the dual-core 3.4ghz X5272 in my 3,1, but would love to replace them with the quad-core versions.

Keep up the AMAZING work!

Thanks :) sadly its probably going to be a while before anything MP3,1 happens since I dont actually own a MP3,1 sadly...
(nice work on the X5687 :) )


with any luck my Harpertown CPUs will arrive tomorrow and I can to work on getting Harpertown working in a MP1,1/2,1 :) I also confirmed that indeed the Mac Pro 1,1/2,1 also lacks Microcode at all for G0 stepping Woodcrest and clovertown CPUs so while those do boot the Mac Pro is actually running them without any microcode... (at least starting with mavericks OS X loads its own microcode on the fly) so while im working on Harpertown support I will also be working on enabling better G0 stepping Woodcrest/clovertown support for the Mac Pro 2,1 :)

I was also thinking about Hacking in NVMe support into the Mac Pro 5,1 when I had a better idea

I wonder if its possible to build a normal PCIe to M.2 adapter board, but one that contains a small EEPROM/OptionROM that contains an NVMe (U)EFI driver that gets loaded at POST, I know its possible to load the NVMe (U)EFI driver from another hard drive then from the EFI boot OS X from the newly exposed NVMe drive on a Mac (IIRC someone has done this with an Xserve even), so it should be possible to embed that as an OptionROM on a PCIe adapter board... it would be a great way to get NVMe booting working on the Mac Pro 5,1 and would enable NVMe booting with no BootROM hacks :)

thats Just an idea/brainwave I had :D


Also interestingly the MBP5,5 contains intel Atom Microcode... Apple NetBook? the MacBook5,2 does not contain the atom microcode.

upload_2018-4-14_5-3-37.png
 
Last edited:
so the L5410 Harpertown CPU arrived today

sadly the ebay seller Messed up and sent me 1 E0 stepping L5410 rather then the 2 C0 stepping CPUs that where actually ordered...

I still pressed on with trying to get it to work in my Mac Pro 1,1/2,1 (only thing is E0 throws another variable into the system considering E0 supposedly does not even work in 3,1s let alone 1,1/2,1s)

now im going to mention a couple of things before getting to actually fitting the L5410 and that is:

I noticed that with both the Xserve1,1 and my MacPro2,1, they both lack G0 Woodcrest/Clovertown Microcode yet both of them will happily boot with G0 stepping CPUs they just run with no microcode. (Stepping 11 is G0)

upload_2018-4-16_17-18-2.png


now the interesting thing is if I add G0 microcode to the EFI on both the Xserve1,1 and the Mac Pro1,1 they will both fail to POST and light up the CPU_HLT/CPU FAIL LEDs on their respective motherboards... if I remove the microcode it boots right up.

now onto the L5410 and Harpertown CPUs.

first test was Just installing the CPU into a unmodified Mac Pro 1,1-2,1.

interestingly I had read reports that this would result in the CPU over temp LED lighting up and thats it.

but what happened is the Machine turned on it did not POST or chime but no LEDs that should not be normally lit up where lit :) (the Over temp and CPU FAIL LEDs stayed off).

having confirmed that the Mac Pro as more or less expected does not work with the Harpertown CPU stock, I went about adding the E0 Harpertown Microcode (CPUID 1067A) into the Mac Pros EFI.

I then flashed it and rebooted with the X5355s to make sure I had not bricked anything Once I confirmed that I had not bricked anything I stuck the L5410 in...

moment of truth time. apply power stuff spins up ... ... CPU_FAIL LED lights up. f*ck... but interestingly this is diffrent from what the L5410s in the Mac Pro 1,1/2,1 did when there was no microcode for them in the EFI.


what im suspecting is happening is, since we deduced that the Mac Pro 2,1 will run/post with a CPU That has No microcode in the EFI. (another example of this is the iMac7,1 does not have any penryn Microcode but will work with Penryn CPUs)

I think that the Harpertown is actually trying to boot when in a stock Mac Pro 1,1/2,1 there just seems to be some sort of Hardware incompatibility stopping it from finishing POST but it does get far enough to Load Microcode if I have inserted it and fall over said microcode like the G0 CPUs do.

now the interesting thing is I vaguely remember reading a Mac Pro article where it mentioned that some people with the Intel V8 Motherboard (The Pre curser to SkullTrail) managed to hack in Harpertown Support via some Hardware mods.

sadly I cant find this article for love nor money, I would love to find out some more details on the mods they did to see if they can be Applied to the Mac Pro 1,1/2,1 :)

it also brings back us back to what anadtech said here https://www.anandtech.com/show/2800/upgrading-and-analyzing-apple-s-nehalem-mac-pro

upload_2018-4-16_18-24-32.png


im really curious as to what those Hardware mods are (like the intel V8 board?) sadly anand works for Apple now IIRC, so I dont know if we could even contact him for details...


im also quite curious as to what a Genuine Mac Pro 2,1 Would do with harpertown CPUs since I know the Mac Pro 2,1s logic-board is slightly diffrent from the Mac Pro 1,1 Logic-board (thanks to @Surrat s detailed analysis of a real 2,1 Lobo) Remember that I (and a lot of other people) use 1,1 boards that are flashed to 2,1 Firmware, I also still need to Test out C0 CPUs in the 1,1/2,1 but at least I have an E0 Harpertown now for testing E0 Harpertowns in a Mac Pro 3,1 if i can get ahold of a MP3,1...

I hope this all makes sense! I may or may not have been awake for over 24 hours at the time of writing this up :D

basically TLDR is:

Harpertowns in 1,1/2,1 are still a no go but I think its just a hardware limitation we might be able to hack round.
 
Last edited:
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.