Parsing is complete! All that's left now is to add the editing functions, and the program will be complete!
View attachment 765881
Congrats on the code milestone.
Parsing is complete! All that's left now is to add the editing functions, and the program will be complete!
View attachment 765881
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
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
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.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?
It's already been tested, didn't work.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.
can you elaborate ?
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!
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.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...♂️♂️♂️♂️
How did you dump the ROM?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
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!
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.
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.
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
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...