N64/ Trusty CPU microcode bios update
Posted: Wed Apr 03, 2019 12:47 am
HI I have been playing around with the my Xbox and the bios and have realised none of the bioses are optimised specifically for Trusty and N64 modded motherboards with updated Microcodes to patch Eratta.
Eratta is basically bugs contained with in the processor that causes it to operate outside of what it is expected, this could be any thing up to lockups and crashes.
To give you an indication on what the microcode does below is a link to the intel Pentium 3 microcode Eratta that explains what these microcodes potentially fix:
ftp://ftp.jameco.com/Archive/Current-Te ... 196509.pdf
The retail bios images contain two Microcodes to support the two revisions of the stock coppermine processor with CPUID 686 and 68A for platform ID 10.
So I replaced the Microcodes with CPUID 6B1 and 6B4 suitable for the Intel pentium 3 Tualatin processor and tested it out and it seems to boot and run as expected.
So the process is rather easy all you have to do is unpack your chosen bios with XBtool or EVtool so you get a uncompressed kernel image that you can open it with a hex editor.
Once you have your Kernel image and your new and old Microcodes you can then open it with HxD for example and select all of the contents of the old microcode and search for the hex string and replace it with the new microcode, you can then repeat the process patching in the other microcode to support all variants of the Tualatin processor.
You can then repack the bios and test flash it to a spare bank on your modchip.
NOTE: I don't recommend you flash it directly to your TSOP or main bios after editing it just in case something goes wrong so you can recover if need be.
Of note I tried to add all four Microcodes to support all processors but the Xbox would only frag I suspect the bios I tested must be referenced top down or bottom up or something and the resulting kernel image would change in size by 4Kb causing addressing issues.
You can verify the microcode is active by running Linux and checking the microcode revision.
Eratta is basically bugs contained with in the processor that causes it to operate outside of what it is expected, this could be any thing up to lockups and crashes.
To give you an indication on what the microcode does below is a link to the intel Pentium 3 microcode Eratta that explains what these microcodes potentially fix:
ftp://ftp.jameco.com/Archive/Current-Te ... 196509.pdf
The retail bios images contain two Microcodes to support the two revisions of the stock coppermine processor with CPUID 686 and 68A for platform ID 10.
So I replaced the Microcodes with CPUID 6B1 and 6B4 suitable for the Intel pentium 3 Tualatin processor and tested it out and it seems to boot and run as expected.
So the process is rather easy all you have to do is unpack your chosen bios with XBtool or EVtool so you get a uncompressed kernel image that you can open it with a hex editor.
Once you have your Kernel image and your new and old Microcodes you can then open it with HxD for example and select all of the contents of the old microcode and search for the hex string and replace it with the new microcode, you can then repeat the process patching in the other microcode to support all variants of the Tualatin processor.
You can then repack the bios and test flash it to a spare bank on your modchip.
NOTE: I don't recommend you flash it directly to your TSOP or main bios after editing it just in case something goes wrong so you can recover if need be.
Of note I tried to add all four Microcodes to support all processors but the Xbox would only frag I suspect the bios I tested must be referenced top down or bottom up or something and the resulting kernel image would change in size by 4Kb causing addressing issues.
You can verify the microcode is active by running Linux and checking the microcode revision.