![]() ![]() The easiest is just to open the whole bios file in a hex edit and search for the FIT table however you can also extract the actual FIT table as a whole but lets keep it simple. There are two ways to accomplish this step. Now it is necessary to correct the actual fit table. ![]() Step 4 - Update Microcode Rom file using UefiTool:ĭO NOT DO THIS ON THE MASTER BIOS FILE AS IT WILL CHANGE FILE SIZES AND CORRUPT!! INSTEAD DO A MANUAL COPY PASTE IN HEX EDITOR OF MICROCODE DATA!! Note: On my bios files I did not need to do this but I found someone that had extra modules referenced in their FIT Table and apparently changing the master MC file size alters those location addresses. If that is not possible then your going to have to adjust the FIT table’s reference to those other modules at the end by taking note by how much they have been offset. This is easily accomplished by adjusting the amount of ‘FF’ bytes at the end of the file. In some cases it is necessary to keep the size of your old main microcode master file the same as before especially if there are other BootGuard and other modules following your microcode file inside the firmware volume. ![]() VERY IMPORTANT TO REMOVE EMPTY ‘FF’ VALUES CORRESPONDING TO SIZE DISCREPANCY OR ADD ‘FF’ VALUES TO MATCH ORIGINAL MICROCODE MASTER BIOS FILE SIZE In my case this increased the size by 400 hex bytes. Hx Edit will tell you if and when it will change file size where it is appropriate. This can also be done by searching for the old header using a few bytes of the old MC to search for and replace according to the length of the file. You have to copy-paste and insert the new microcode data onto the old data by selecting ‘Paste Insert’ in HxD Edit. So goto the start of your particular MC you want to replace, and press Ctrl-E: If you load up that MC in HxD Edit we see those details in the first two rows of the header. In my case I want to replace 406F1 Platform EF revision 1D. I usually use HwInfo to dig up those details. First you need to know which microcode you need to replace. This value is important for the next step in HxD Edit. In the case of 406F1 UefiTool is telling me that it is 6400KB large. You can find the size of every microcode listed in UefiTool’s FIT table as shown above. Your going to need to know the difference in size between the old and new later. Its important to take note of their sizes by scrolling to the end of the file in Hxd edit. Also load in HxD the new microcode update revision you downloaded from the repository and copy all of its content into memory. Load your master microcode file into a hex editor. Step 3 - Edit master Microcode rom file in HxD Edit: However in most cases it is easier just to use the location data in the FIT table to locate each microcode file but you need to know the size in hex of the old microcode file (listed in the hex table inside UefiTool) and the size of the new file using Hxd edit. This is not absolutely necessary but by copying the first 16 bytes of the old header and searching for it you can find where it exists in the master file. If you can find your actual existing microcode file inside Ubu module folder, or from an extracted Intel Linux release open it up inside Hxd Edit for the purpose of searching for the start location inside the master microcode file. The other microcodes I believe are for other generation + server based processors which for most of us not needed. Even though my FIT table detailed four modules you really need to update just the one for your particular cpu. Go to the CPU Microcode repository and locate the cpu microcode modules that are appropriate for your platform. Step 2 - Extract Body of master microcode module and save: Just ‘Replace Body’ in UefiTool will be sufficient. In the case of individual microcode rom modules its a lot easier to manage in that probably you won’t need to copy paste the microcode hex values in a hex editor. Sometimes you may find each microcode in their own individual rom module: In my case my master microcode file resides in the rom module with GUID ‘17088572-377F-44EF-8F4E-B09FFF46A070’. Select the first microcode entry in the FIT table by doubling clicking item #2 as illustrated above and you will note that UEFITool A40 will automatically finds the actual master microcode file for us to manipulate. Then you have a number of references to the location of the actual microcode entries followed by possibly Bios initialization and ACM modules, Bootgaurd modules, and TPM/TXT modules of which may or may not be present depending on the bios. Take note that there will be a number of entries with the first one being a reference to ‘FIT’ table. Load your bios file in UEFITool A57 and select the ‘FIT’ tab on the lower panel.
0 Comments
Leave a Reply. |