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

dosdude1

macrumors 68030
Feb 16, 2012
2,779
7,412
At last, my ROM microcode editing application is complete! It took me a lot longer than I anticipated to write this, but here it is, a fully interactive GUI that can add/extract/replace microcodes in your system ROM dump! This is how it works:

- Open the program, and select a dumped ROM.
- From here, you can simply right-click in the table to perform actions, or use the Menu Bar items.
- To extract a microcode from your ROM, simply right-click on the microcode you wish to extract, and select "Extract Microcode". Save it to a file.
- To add a new microcode, simply right-click anywhere in the table, and select "Add Microcode". If the microcode for the same CPUID and platform ID in the microcode you're trying to add already exists in the ROM, it will replace it with the selected file. If not, it will add it.
- Microcode files can also be dragged and dropped onto the table to add them.
- Once the modifications you desire have been made, simply save the file, or do "Save as" to save it as a different file, keeping your original unmodified.

Download the application here. Source code is available on my GitHub. Microcode files can be obtained here.

Enjoy!

Screen Shot 2018-06-13 at 11.35.58 PM.png
 

h9826790

macrumors P6
Original poster
Apr 3, 2014
16,656
8,587
Hong Kong
At last, my ROM microcode editing application is complete! It took me a lot longer than I anticipated to write this, but here it is, a fully interactive GUI that can add/extract/replace microcodes in your system ROM dump! This is how it works:

- Open the program, and select a dumped ROM.
- From here, you can simply right-click in the table to perform actions, or use the Menu Bar items.
- To extract a microcode from your ROM, simply right-click on the microcode you wish to extract, and select "Extract Microcode". Save it to a file.
- To add a new microcode, simply right-click anywhere in the table, and select "Add Microcode". If the microcode for the same CPUID and platform ID in the microcode you're trying to add already exists in the ROM, it will replace it with the selected file. If not, it will add it.
- Microcode files can also be dragged and dropped onto the table to add them.
- Once the modifications you desire have been made, simply save the file, or do "Save as" to save it as a different file, keeping your original unmodified.

Download the application here. Source code is available on my GitHub. Microcode files can be obtained here.

Enjoy!

View attachment 766112

Sticky post update to including this post (link) :D
 
  • Like
Reactions: LightBulbFun

edgerider

macrumors 6502
Apr 30, 2018
281
149
@dosdude,

first of all thank you for giving so much for the comunity! People like you makes the world better.
So....
what would you need to get the Xserve 3.1 accept X56xx processor?
if i send you a dump of my xserve rom,
would you look at it?
Xserve are incredibly well built machine and there are plenty of them available for a couple hundred bucks....

with the emergence of very cheap 10gbe network card, it is easy to gang several of those puppy in a 12U case and run occurence of adobe media encoder to render on those.

media encoder rely both on gpu and CPU.

I successfully run 4 Gtx 1080ti in a supermicro Sc846 chassis fitted with a cyclone micro systems pcie expender/switch (x16x16x16x8x8)
who also host an areca 1882ix24
and 24 sas drive.

it is very fast on my 2xx5690 macpro, but on the x serve, it is like 50% slower because of the 2x2,26 and slower memory....

also I know it is possible to use those cyclone pcie expender as a 80gbs fabric switch so at the end with with less than 2000€ of investment, this could end up to a 3,46 60core cluster.
sure it would draw a lot of power but a well over 5x25k geek bench, it should crunch numbers preatty fast.
I have one extra motherboard so I dont care lifting the eprom with a hot air station if needed....
 

edgerider

macrumors 6502
Apr 30, 2018
281
149
At last, my ROM microcode editing application is complete! It took me a lot longer than I anticipated to write this, but here it is, a fully interactive GUI that can add/extract/replace microcodes in your system ROM dump! This is how it works:

- Open the program, and select a dumped ROM.
- From here, you can simply right-click in the table to perform actions, or use the Menu Bar items.
- To extract a microcode from your ROM, simply right-click on the microcode you wish to extract, and select "Extract Microcode". Save it to a file.
- To add a new microcode, simply right-click anywhere in the table, and select "Add Microcode". If the microcode for the same CPUID and platform ID in the microcode you're trying to add already exists in the ROM, it will replace it with the selected file. If not, it will add it.
- Microcode files can also be dragged and dropped onto the table to add them.
- Once the modifications you desire have been made, simply save the file, or do "Save as" to save it as a different file, keeping your original unmodified.

Download the application here. Source code is available on my GitHub. Microcode files can be obtained here.

Enjoy!

View attachment 766112

Thank you @dosdude!

Any chance you happen to give me an insight on what would be required to make a xserve 3.1 accept x5690???
is it just about injecting microcode or is there way more stuff to do to make an Xserve see newer processor steping?
sorry for bein so pushy, but my frustration comes from the fact that I dont actually understand how much work it is to modify a XServe 3.1 firmware to do like the 4.1 to 5.1 firmware flash.
honnestly xserve are wonderfull machines, and seeing them run a pair of x5690 would be sweet as they have 12 ram slot!
so I am begging for someone to actually explain me what needs to be done in order to make this happend!
would it help if I would download a xserve 3.1 rom here?
 

dosdude1

macrumors 68030
Feb 16, 2012
2,779
7,412
Thank you @dosdude!

Any chance you happen to give me an insight on what would be required to make a xserve 3.1 accept x5690???
is it just about injecting microcode or is there way more stuff to do to make an Xserve see newer processor steping?
sorry for bein so pushy, but my frustration comes from the fact that I dont actually understand how much work it is to modify a XServe 3.1 firmware to do like the 4.1 to 5.1 firmware flash.
honnestly xserve are wonderfull machines, and seeing them run a pair of x5690 would be sweet as they have 12 ram slot!
so I am begging for someone to actually explain me what needs to be done in order to make this happend!
would it help if I would download a xserve 3.1 rom here?
Nobody knows at this point, as nobody has an Xserve3,1 to test with. If you want to find out, you will have to do the testing. Dump your system ROM and add the microcode for the X5690. Flash it back, and then install X5690s. If it works, great, if not, there must be something else that needs to be added. But yeah, if you want to send me a dump, that would help.
 
  • Like
Reactions: LightBulbFun

tsialex

Contributor
Jun 13, 2016
13,455
13,602
Nobody knows at this point, as nobody has an Xserve3,1 to test with. If you want to find out, you will have to do the testing. Dump your system ROM and add the microcode for the X5690. Flash it back, and then install X5690s. If it works, great, if not, there must be something else that needs to be added. But yeah, if you want to send me a dump, that would help.
It's already been tested, didn't work.
 
  • Like
Reactions: LightBulbFun

edgerider

macrumors 6502
Apr 30, 2018
281
149
can you elaborate ?
before people use to say NVME boot was not possible, and someone poove them wrong...
I will try to dump the firmware here ...
and I have big faith that even if the 6 core thing dont work I could totaly see the Nvme boot on xserve done!
xserve and mac pro are very close hardware wise.

the only difference might be the northbridge because the pcie lane are indeed managed in a totally different way...
I am busy trying to recover a 4Tb drive i have formated by error but will dig into this asap!
If we can make this happend I can tell you that at 150$ the xserve, ebay is going to be on fire
thanks @dosdude1 !
we stay in touch!
 

tsialex

Contributor
Jun 13, 2016
13,455
13,602
can you elaborate ?
before people use to say NVME boot was not possible, and someone poove them wrong...
I will try to dump the firmware here ...
and I have big faith that even if the 6 core thing dont work I could totaly see the Nvme boot on xserve done!
xserve and mac pro are very close hardware wise.

the only difference might be the northbridge because the pcie lane are indeed managed in a totally different way...
I am busy trying to recover a 4Tb drive i have formated by error but will dig into this asap!
If we can make this happend I can tell you that at 150$ the xserve, ebay is going to be on fire
thanks @dosdude1 !
we stay in touch!

The upgraded microcode didn’t add support for new/unsupported processors.

@LightBulbFun thinks that the multiplier is locked between defined ranges (like on SR2 mobo) and somewhere else on the firmware miss the support for hexas.

You can add NVMe support, has been tested and works on Xserve3,1.
 

edgerider

macrumors 6502
Apr 30, 2018
281
149
The upgraded microcode didn’t add support for new/unsupported processors.

@LightBulbFun thinks that the multiplier is locked between defined ranges (like on SR2 mobo) and somewhere else on the firmware miss the support for hexas.

You can add NVMe support, has been tested and works on Xserve3,1.
yeah I will have my hand on a second xserve next week, i dont want to brick the one i have because it is my fileserver. I found one for 100$ close-by and i will dig on hardware to check the difference and to see if the eprom is the same. I remenber that on the old G3 there was a way to let any machine run at the highest clock speed sold by apple just by soldering resitor.
to me it cant be that much of difference in hardware except if they use a c6xx northbridge and not a X58.
X58 was not a true « servergrade » chipset, more a High end prosumer chipset. So maybe the xserve have a different « servergrade » chipset...
many thanks to all of you for your time.
now I have to go back to work trying to rescue file deleted by inserting a data drive in my server and who got picked up as a hotspare...‍♂️‍♂️‍♂️‍♂️
 

iancoop

macrumors newbie
Jan 9, 2017
2
0
Sydney
yeah I will have my hand on a second xserve next week, i dont want to brick the one i have because it is my fileserver. I found one for 100$ close-by and i will dig on hardware to check the difference and to see if the eprom is the same. I remenber that on the old G3 there was a way to let any machine run at the highest clock speed sold by apple just by soldering resitor.
to me it cant be that much of difference in hardware except if they use a c6xx northbridge and not a X58.
X58 was not a true « servergrade » chipset, more a High end prosumer chipset. So maybe the xserve have a different « servergrade » chipset...
many thanks to all of you for your time.
now I have to go back to work trying to rescue file deleted by inserting a data drive in my server and who got picked up as a hotspare...‍♂️‍♂️‍♂️‍♂️


Here is the ROM from one of my XServe 3,1 in case this helps the cause ..
It currently has BootRom XS31.0081.B06

Cheers
 

Attachments

  • XServe3_1 .bin.zip
    1.3 MB · Views: 297

tyvol

macrumors newbie
Jan 7, 2009
20
6
Indio, California
Many, many thanks h9826790 for this terrific guide!

Somehow, though, when I'm using your iHex instruction numbers 15 and 16 (clicking Next each time), nothing that can be seen happens and I just get my 'boink' sound (indicating nothing happened).

If I proceed to instruction 17 and save the new ROM image file (0085.B00_V30) and then use ROM Tool to flash the system ROM with it, I get a normal restart.

Except, that is, when I use terminal and look at the microcode version, it is still 15, not 30.

I'm obviously doing something wrong...

If anyone can point me in the right direction, I'd be most grateful!
 

h9826790

macrumors P6
Original poster
Apr 3, 2014
16,656
8,587
Hong Kong
Many, many thanks h9826790 for this terrific guide!

Somehow, though, when I'm using your iHex instruction numbers 15 and 16 (clicking Next each time), nothing that can be seen happens and I just get my 'boink' sound (indicating nothing happened).

If I proceed to instruction 17 and save the new ROM image file (0085.B00_V30) and then use ROM Tool to flash the system ROM with it, I get a normal restart.

Except, that is, when I use terminal and look at the microcode version, it is still 15, not 30.

I'm obviously doing something wrong...

If anyone can point me in the right direction, I'd be most grateful!

That should be because the "Replace and Find" failed.

You can manually do the "find', and then "replace" the original code with the lates microcode.

So, it become

step 15, click "Find" + step 15A, click "Replace"

step 16, click "Find" + step 16A, click "Replace"

Then continue to step 17.
 

tyvol

macrumors newbie
Jan 7, 2009
20
6
Indio, California
Well, thank you very much for your prompt response!

Much appreciated, as I will keep trying to execute your instructions as best as I can.

And, my apologies for being so slow to learn all of this, but I don't see any "Find" button to click on as you indicate for the manual approach you suggest.

Another pointer if you can, please, but only when you have the time.
[doublepost=1530498904][/doublepost]Going back to your original instructions and trying again, I got the "Replace and Find" to actually work (when I clicked Replace and Find as per your iHex instruction 11, the window on the 0085.B00.bin file changed color briefly).

But then I did your iHex instruction 12, 13 and 14, no problem.

Then I clicked "Next" as instructed in your iHex instruction 15, and again, it worked (brief color change again).

So far, everything is fine following your instructions.

But then, at your instruction 16 to click "Next" again (which I did), nothing happened at all and I got the same "boink" sound.

It seems I'm very close to making your whole process work, but maybe I'm doing something incorrectly.

I'll keep trying...


BTW: Does anyone know where I can find the OO87.B00.bin file to download? None of my searching is turning up anything...
 

h9826790

macrumors P6
Original poster
Apr 3, 2014
16,656
8,587
Hong Kong
Well, thank you very much for your prompt response!

Much appreciated, as I will keep trying to execute your instructions as best as I can.

And, my apologies for being so slow to learn all of this, but I don't see any "Find" button to click on as you indicate for the manual approach you suggest.

Another pointer if you can, please, but only when you have the time.
[doublepost=1530498904][/doublepost]Going back to your original instructions and trying again, I got the "Replace and Find" to actually work (when I clicked Replace and Find as per your iHex instruction 11, the window on the 0085.B00.bin file changed color briefly).

But then I did your iHex instruction 12, 13 and 14, no problem.

Then I clicked "Next" as instructed in your iHex instruction 15, and again, it worked (brief color change again).

So far, everything is fine following your instructions.

But then, at your instruction 16 to click "Next" again (which I did), nothing happened at all and I got the same "boink" sound.

It seems I'm very close to making your whole process work, but maybe I'm doing something incorrectly.

I'll keep trying...


BTW: Does anyone know where I can find the OO87.B00.bin file to download? None of my searching is turning up anything...

If you want 0087.B00, download the 10.13.5 full installer from AppStore, run it.

It will ask you to upgrade the firmware. Then you can dump it out again.

You SHOULD NOT download the 0087.B00 from anywhere. Your computer’s serial number is stored in the BootROM. You should dump your own BootROM then mod it.
 
  • Like
Reactions: TheStork

tyvol

macrumors newbie
Jan 7, 2009
20
6
Indio, California
If you want 0087.B00, download the 10.13.5 full installer from AppStore, run it.

It will ask you to upgrade the firmware. Then you can dump it out again.

You SHOULD NOT download the 0087.B00 from anywhere. Your computer’s serial number is stored in the BootROM. You should dump your own BootROM then mod it.

Great point. Will not download 0087.B00.

Continuing to try and use your instructions to get my current 0085.B00 up to microcode version 30.

So far, no joy.

Thank you.
 

h9826790

macrumors P6
Original poster
Apr 3, 2014
16,656
8,587
Hong Kong
  • Like
Reactions: LightBulbFun

tyvol

macrumors newbie
Jan 7, 2009
20
6
Indio, California
There is a much simpler and lower risk method developed by Dosdude. You better use this method now.

https://forums.macrumors.com/threads/mp51-0084-b00-rom-dump-request.2119496/page-19#post-26151890

Geez, h9826790, a Great suggestion!!!!

Again, and also to dosdude, all of your help to guide us through these uncharted waters, is very much appreciated!

My 12-core 5,1 is now up and solid with the 0087.B00 ROM and it is using (confirmed) version 30 of needed microcode.

Again, I'm most grateful to you both for your contributions here.

Kindest regards,

tyvol
 
Last edited:
  • Like
Reactions: h9826790

tyvol

macrumors newbie
Jan 7, 2009
20
6
Indio, California
Geez, h9826790, a Great suggestion!!!!

Again, and also to dosdude, all of your help to guide us through these uncharted waters, is very much appreciated!

My 12-core 5,1 is now up and solid with the 0087.B00 ROM and it is using (confirmed) version 30 of needed microcode.

Again, I'm most grateful to you both for your contributions here.

Kindest regards,

tyvol

Well, the macOS side of my MP 5,1 working solid with 0087.B00 was the silver lining...

As was possibly indicated by h9826790, the 0087.B00 ROM (even with version 30 microcode) prevents my separate Windows 10 setup from loading at all with a "Processor Not Supported" message from Microsoft.

Reflashed my previous 0085.B00 ROM with version 30 microcode and everything on the macOS side works perfectly as before, but no matter what I try (automatic repair, PRAM reset, etc.), my Windows 10 environment will not boot.

Mucho work ahead for me...
 
Last edited:

tyvol

macrumors newbie
Jan 7, 2009
20
6
Indio, California
The ONLY way to get my Windows 10 Pro SSD to boot again was to reflash my Mac Pro 5,1's ROM back to 0085.B00 with version 15 microcode.

Just FYI...

Cheers,

tyvol
 

h9826790

macrumors P6
Original poster
Apr 3, 2014
16,656
8,587
Hong Kong
Well, the macOS side of my MP 5,1 working solid with 0087.B00 was the silver lining...

As was possibly indicated by h9826790, the OO87.B00 ROM (even with version 30 microcode) prevents my separate Windows 10 setup from loading at all with a "Processor Not Supported" message from Microsoft.

Reflashed my previous 0085.B00 ROM with version 30 microcode and everything on the macOS side works perfectly as before, but no matter what I try (automatic repair, PRAM reset, etc.), my Windows 10 environment will not boot.

Mucho work ahead for me...

In my case, a new clean Windows 10 installation work (I tested both Legacy and EFI mode).
 

tyvol

macrumors newbie
Jan 7, 2009
20
6
Indio, California
Good testing on your part (as usual), but I had too much history to do a clean Windows 10 install, but I kept trying to boot my established Windows 10 setup with the 0087.B00 version and finally got my old Windows 10 setup to boot with it, but I did not include version 30 microcode.

The 0087.B00 version that finally worked was just the way it installed on my Mac Pro with the full High Sierra install.

Could be risky, I suppose, but if I have time, I'll try to update the raw 0087.B00 with versions 15 and 30 to see what might work with established Windows 10 setups.
 
Last edited:

tyvol

macrumors newbie
Jan 7, 2009
20
6
Indio, California
0087.B00 ROM updated to add microcode version 15 with dosdude1's wonderful app (Apple Microcode Tool) works just fine booting up my established Windows 10 Pro setup.

Super!
 
  • Like
Reactions: h9826790
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.