InsydeH2O BIOS Modding Problems

I used “replace” as I initially tried “add” which causes a weird output with an extra microcode shown in a broken way followed by a crash from the tool. Maybe it’s not fully compatible? The Kernel version is found at the BIOS. Your own is “05.04.45”. Just search for the string “$BVDT$” and you will see it after 0x3A bytes with a size of 0x9.

@buggermem80

So as I understand your post, this a method of restoring to the generic (1.37) BIOS if anything goes wrong or just a method to flash a BIOS.
And I have to disconnect the battery inside since this laptop doesn’t have removable battery like it’s shown in the pictures ?


@plutomaniac

Well I confirm it too, I found the same kernel version number as you said in HxD, so assuming that in the release notes it says (“Kernel version required: 03.62.10, 03.72.10, 05.02.10 and later”), the tool should be applicable on this BIOS. Thanks again for the great find there.
And about that bug, I tried two BIOSes with the add option :

1. Using the add option in the edited BIOS with 24 Microcode (I used replace firstly on the FPT dumped BIOS) doesn’t give that weird output.
2. I confirm the bug same as yours here If I try to mod the (1.37 or dumped BIOS) with add option I get that weird output but here the tool doesn’t crash and the BIOS still can be saved.

The strange thing is that parsing the “bugged” BIOS in MC_Extractor shows that the BIOS is added next to the first one, but still there are 10 Microcodes in the BIOS.
Also even there’s a some BIOS in the tool that came with it (S675P008.fd), that has originally 7 Microcodes in there (reported by MC Extractor), and adding our Microcode there dosen’t produce the bug, so probably 10 Microcodes are the limit in Insyde BIOSes ??
And the tool actually reads the current Microcode in your PC and If it detects the same one in the BIOS then it shows only that one.

Bugged MCU.jpg

EDITED_ADD.png

GENERIC_ADD.png

S675P008.png

S675P008_EDITED_ADD.png

Sorry, didn’t notice that your laptop doesn’t have a removable battery.
Normally the recovery flash is the safest way to flash original and modded bioses, but in this case using the Windows flash utility might be better.
Here are the Windows flasher and the modded bios (added microcode using the same method you used). I also added the headers that the Insyde extractor removed, because those are necessary for the Windows flasher.
You can just extract the file and run “H2OFFT-W.exe”, then it should directly flash the bios.

With the official bios this method was already used successfully.
However, I never flashed a modded bios this way/used H2OEZE before, so you need to keep the risk in mind.



Thank you very much for this, but I will wait a little bit more though I have feeling that it will work, but when you don’t have programmer you still get that bag of risk there yeah…

Actually, the changes I made before might not be enough, so here’s one where I also removed some firmware checks.
In case you want to give it a try, this should (hopefully) be flashable.

Well if I decide to flash it I always can enable advanced options in BIOS (Fn + Tab in BIOS -> Exit BIOS -> Enter Again) and head to the BIOS lock option and disable it. Thanks again anyways.

@buggermem80

I tried the Microcode updated BIOS with Insyde Flasher and it didn’t work, hardware checks can’t be bypassed. Got an error message after reboot saying that the BIOS image is invalid.

Also I’ve been working with mclarke2355 who generously modded my BIOS with not just new Microcode but also Intel RST, GOP, VGA BIOS (Intel), Realtek OROM. We also discovered that it is not necessary to remove the battery to initiate BIOS recovery (which actually in newer laptops like mine has hardware checks if you’re trying to flash modded BIOSes)

With that find I decided to use Intel FPT to flash the BIOS region (before I disabled the option BIOS Lock) but new error appeared (28) which says that Protected Range Register are enforced in the BIOS.
So that means that modded BIOSes in newer laptops (I can say for now, only from Acer) can be only flashed via external programmer.

Forgot to mention, mclarke2355 has a thread (Link) where he offers his modded Acer E5-572G BIOS which can be safely flashed to recovery mode, this step does not apply to newer laptops as I said.

@acid96

Found something that might be interesting for you: Link.
Seemingly putting the computer to sleep and then waking it up removed the BIOS lock and made flashing with fptw64 possible.
The BIOSes of that laptop and yours share the same unlock combination, so they might also share that aspect, it should be worth a try.
If it doesn’t work with the newest BIOS, temporarily switching to the oldest one might work: BIOS 1.11

Maybe that method is more successful than the previous atempts.

Unfortunately no luck again, doesn’t matter how it went to sleep (lid down or just setting it sleep) it just doesn’t work. I assume that this bug is fixed in 10.0 ME Series chipsets and downgrading to older BIOS won’t make a difference.

Though great find no matter if it wasn’t successful.

Found a workaround if anyone is interested if updating a Microcode without altering the BIOS in any way, it works like in Linux based OSes where the kernel updates the microcode everytime when starting up the OS. So this procedure is applied in Windows now.

VMware CPU Microcode Update [Windows]

I attached screenshot showing updated microcode for Intel i5 5200U from 1F to 24.

Hope you find it helpful

Regards,

Screenshot (26).png

@acid96 :
Hello!!!
How do you dump (back up) your insyde h20 bios?
I try use h20fft <file name> -O or -G but console says that me region is locked and stop creating backup.
It will be grat if this program has function like
fpt -d <filename> -BIOS and backup only bios region
FPT does not support insyde platform :frowning:

Hi

Is there a way to get the Meltdown/Spectre patches into Insyde H2O type firmware for ‘middle aged’ laptops, like Acer and Lenovo?

I’m trying to work with the Insyde H2O software suite but i could only find a very old version of the H20EZE Easy Bios Editor: EzH2O.exe version 2.1.0.4 from 2008

In that version there should be an option for microcode according to the documentation (see picture) but it is not actually there when I open the firmware file (in my case an Acer TravelMate P236-M 1.22 from 2016. Other options are there but the microcode option is not shown. The firmware download from Acer’s website does not load but a firmware dump created with the firmware flash tool H2OFFT-W.exe does load in EzH2O.exe succesfully.

How do I go about this?

Hi guys,
I’ve got Acer ES1-131-P5CX. Last known bios version is 1.24 avable here. After some investigation I dumped bios file using fpt -d -bios backup.rom from Intel TXE System Tools v2 r2. Attached as backup.zip. UEFITool 0.22.3 give me bunch of errors like these:


My first question is: Should I care about them?

It is InsydeH2) so I cannot use UBU Tool for all the hard work.
Ok. let’s go further. When I opened bios file in H2OEZE (100.00.02.10) I was able to export some oprom modules for example: vbios, gop_vbt and realtek.
Let’s take a look at vbios oprom module. I would like to update it but this particular one is very old - CherryView version 1005. So I wasn’t able to transer OROM VBIOS from the old version to the new one using excellent tutorial by @SoniX because I haven’t got corresponding bsf file (the oldest one from SoniX’s collection is 1008).

I don’t know how to update not only vbios but Realtek module and Intel GOP too. For example inside GOP driver (opened in HxD) I can see:



So - my next question is: How can I update these modules? (using UEFITool? H2oEZE?) And where can I find new ones? (GOP drivers in UBU Tool are for newer chipsets). What about OROM and EFI modules for SATA? I can’t see it.

Last but not least: What about Intel microcode? Inside this little laptop I’ve got Intel Pentium N3700 1,60GHz (codename Braswell 406C3). In @plutomaniac 's repository I found relatively new microcode dated 2017-12-25. But how and using which tools can I insert this mcode?

Can anybody cast same light on this problem?

backup.zip (2.51 MB)

First of all, I would like to thank everyone for developing very useful howto discussions and tools which have enabled me to write the following guide. I had found the guides extremely useful in assisting me with updating my Gigabyte boards.

I decided to write this guide to share the wealth and I had discovered:
1) the MS Windows OS Microcode update file did not include my older processor microcode updates and therefore did not enable Spectre at boot
2) The vmware cpu microcde update driver does not load earlier than the Microsoft Spectre checks to enable the Spectre mitigations; left the spectre mitigations disabled even though the microcode had been updated by the VMware driver
3) I also hate the expectation of manufactures that the consumer will by a new computer every three months; computers are a lot of money and most can barely afford to buy a computer

Warning Disclaimer: I am not responsible for any damages or broken laptop issues you may have as a result of following these highlevel steps. These instructions assume one has a working knowledge of a hex editor and windows powershell.

The following guide addresses how to install the latest microcode on a Sony InsydeH2O VPCSC41FM computer.

1) Extract the ROM file from the executable patch file.
1.a) Run the the Sony ISBSYS-00269046-1040.EXE and do not close the application
1.b) Perform a command file search to file the directory on your c drive
cd c:<br />dir /b /s/ InsydeFlase.exe

For me, the file was located at:
C:\Users\All Users\Sony Corporation\Sony Packaging Manager\PackagingTemp{175E91FA-9CA7-4123-A76B-C0EF6A87507E}<br />
1.c) Copy the directory contents to a Temporary Directory (Sony_BIOS_FROM_EXE)
1.d) Make a Copy of the R2087H4.ROM file as R2087H4_working.ROM
2) From the command line, use the MCE tool within the UBU_v1_69_16 toolset to extract the microcode files from the working rom file (R2087H4_working.ROM)
mce bios.bin -skip>nul

The files will be placed into a Extracted subdirectory.

3) Use HxD to an original microcode file to be replaced, in my case cpu206A7_plat12_ver00000014_2011-01-06_PRD_0308B7C3.bin, and copy the contents of the file
4) Use HxD to open the working ROM file (R2087H4_working.ROM),
4a) write down the length of the unedited ROM file
4b) search for the old microcode
4c) write down the starting address of microcode
4d) delete the highlighted area
5) Use HxD to open the the replacement rom file from UBU_v1_69_16\Modules\mCode\1155\cpu206A7_plat12_ver0000002D_2018-02-07_PRD_1BDB79EA.bin and copy its contents
6) Paste the replacement microcode into the ROM file at the exact memery location where the original microcode was deleted
7) Find the end of the Microcode block, it will be padded with FF… I found the end by searching for the contents of Microcode cpu206A2_plat12_ver00000026_2010-02-17_PRD_82FFBD7B.bin
8) Remove a portion of the padding immediately after the microcode block to reduce the ROM size to the original size noted in step 4b
9) Copy the R2087H4_working.ROM to the SONY_BIOS_FROM_EXE directory
10) Update the platform.ini file with the following; the platform.ini is pretty well documented
FileName=R2087H4_working.ROM
Flag=0
Action=2
Confirm=1
11) Your machine should open the insyde flash utility
11a) confirm the flash
11b) the machine willl reboot
12) After the reboot, confirm with InSpectre the machine is no longer vulnerable to Meltdown and Spectre

My results indicated I was not vulnerable to Meltdown and Spectre, but my performance was slower due to the hardware not supporting page table isolation when addressing the Meltdown vulnerability.

Your mileage may vary, but as noted in the disclaimer above, I am not responsible if this damages/bricks your laptop.

Feel free to ask questions, I will answer them time permitting.

This might help, I had cracked open my ROM to update the microcode on my older laptop.

Sony: InsydeH2O VPCSC41FM: Microcode Update

@maks - I put in microcode with the version H2OEZE you mentioned, via “Other > Microcode” in the menu (496C2 and 406C4 codes are also in there by default).
I updated them all, by first download all three updated microcodes, create empty ncpucode.bin, combine all three to that, then delete code in stock BIOS, replace with new combined microcode file.
If you need better explanation on that let me know, I assumed you knew about that since you’ve dug this deep already so I kept it short

UpdatedMicrocodes.png


https://www.sendspace.com/file/361qw1

Cherryview GOP 8.0.1040 here, in case you need later including BSF’s for both, but still can’t find the 1005 you need Other modules there may be of use to you as well.
RE:CherryView BIOS Mod Help

LAN can be modified w/ UEFITool, or with the H2OEZ2 app. All modules can be replaced with that version it looks like, via components > module > Replace.
I see what looks like at least 100+ shown as replaceable, and I see Intel GOP at the very end of the list whenever you find proper one for that.
via Binary-Rom > OpRom you can replace same as extract likeyou did, oprom one is vBIOS 2 is Intel Undi/Realtek PXE GBE, 3-5 is NVidia roms.

As for UEFITool errors like that, when I see them in a stock known working BIOS I assume that’s normal and do not try to mess with them or correct it. Sometimes I avoid using UEFITool then, in case it automatically corrects them and breaks something.
OK to test if you have a programmer, then it’s not a problem, but if not I’d try MMTool instead, then take back to UEFITool and if errors are fixed, be worried again.
Once you have a programmer you can right click, rebuild all those errors after double clicking on them and it takes you to each section at the top, and see if it’s OK to use after that.

When messing with BIOS editing, especially when there is so many unknowns, get a CH341A flasher, they’re very cheap (Get two!) usually only $2.50-$4
https://www.ebay.com/itm/263458010112 - Choose “Blue” model, and if $$ is no issue, get black one below too, it’s cheaper than ordering same one from this seller. Or get both from same seller, add blue to cart, go back and add black from same seller, then checkout.
https://www.ebay.com/itm/223021931206

I suggest both types, because often people have issue with one or the other in various situations, and they’re so cheap everyone might as well get both.
If your BIOS is soldered to the board, grab one of these too
https://www.ebay.com/itm/263708580560

@Lost_N_BIOS
Thanks fof your help.

As you can see in H2OEZE cpu microcode section is shown as:

acer_mc.jpg


So is that combined microcode file you mentioned? Could you describe how can I create new one? AFAIU I need to create empty file ncpucode.bin and put all three microcode files inside one by one right? Should I add some header or other stuff there?

If I remember correctly there is GOP 8.0.1038 inside. So I need to find GOP 8.0.1040 somewhere… Maybe from another Acer model.
Within H2OEZE there are 2 modules:
FF0C8745-3270-4439-B74F-3E45F8C77064 so called IntelGopDriver
and
878AC2CC-5343-46F2-B563-51F89DAF56BA so called IntelGopVbt
I think that the first one is UEFI GOP driver and second one is legacy VBT driver. Is that right? How can I find if GOP driver is 32 or 64 bits?

And finally - I don’t know how to find and replace AHCI driver. There are plenty of modules named ahci/sata/something. For example:
3ACC966D-8E33-45C6-B4FE-62724BCD15A9 - AhciBusDxe
BB65942B-521F-4EC3-BAF9-A92540CF60D2 - SataController
69FD8E47-A161-4550-B01A-5594CEB2B2B2 - IdebusDxe
As I mentioned in my earlier post I would like to update EFI (and OROM maybe) modules for AHCI but which one should I replace?

I tried to compare modules (network) taken from my bios with @SoniX one but they have different structure. So first I need to know is it safe to replace it.

P.S. I already have CH341A flasher. I fried “black” model and now I’ve got “green” one or I can use my Rapsberry Pi to flash bios.

Later when I have time (heading to sleep now), I’ll write out detail on how to create combined microcode file.
GOP file 8.0.1040, I linked above. I will look at all of those for AHCI rom for you tonight and let you know more.

And, while you wait for my next reply, specify for me which network module exactly you are replacing, and which you compared with that you thought isn’t right one.
I’ll try to help best I can, but as you notice already not many people modify these BIOS so there’s not a whole lot of info out there. It’s good you have a flash programmer already, no worries about failed BIOS testing now!

Please go ahead while you wait on us to figure out the other stuff and program in the BIOS I posted above, so I can know if the replaced the microcode safely or not. If it fails to boot, then I can try few other ways to update the microcode.
This can all be done manually, via hex or other non-tool type methods, but best to use tools when we can. The H2OEZ2 tool is made for this, so probably best to use for all, but I may need to do the microcode differently (ie remove all, then insert one by one instead of single file containing all)

*Edit -
To create single microcode file from several microcodes, put all microcodes into one folder on desktop for easy processing.
1. Open command prompt at that folder run this command to create empty microcode file (Ignore any warnings) >> Nul > NCPUcode.bin
2. Combine all microcodes to that new empty microcode file with this command, editing in your full microcode file names in the middle area (leave ncpucode.bin at start and end) >> copy /b ncpucode.bin + microcode1.bin + microcode2.bin + microcode3.bin ncpucode.bin
3. Right click newly compiled ncpucode.bin and go to properties, check “Read Only” and apply.
4. Done! You now have a compiled new multi-entry microcode file.

VBT CHERRYVIEW 1005 Intel(R) CHV Mobile/Desktop PCI Accelerated SVGA BIOS Build Number: 1005 PC 14.34
OptionRom1 64KB

FF0C8745-3270-4439-B74F-3E45F8C77064 = GOP Driver 1038 70KB

VBT CHERRYVIEW 1215 Intel(R) CHV Mobile/Desktop PCI Accelerated SVGA BIOS Build Number: 1215 PC 14.34
IntelGOPVBT 6KB
878AC2CC-5343-46F2-B563-51F89DAF56BA 6KB

Watch extraction with UEIFTool or Intel tol etc, different headers via different methods, applies to all

So, I think due to version numbers and size that is three different things for vBIOS related files.

I’m still looking about AHCI and LAN. I don’t think either of those AHCI (AHCIBus or SATAController) are what you want to update (Like AHCI Option rom I mean)

Option Rom 2 is Intel UNDI/Realtek PXE (Boot from network, not LAN)

@maks
There is one problem. After updating the files in this BIOS, you can get a brick.

@Lost_N_BIOS
I’ll try to merge 3 microcode files (I think that I need only one for 406C3) in HxD to be sure. Then I use H2OEZE to replace it.

I checked InsydeH2O Setup and there is definitely Intel(R) GOP Driver [8.0.1038]. So what should I do next with GOP driver? Maybe it will be better to leave VBT module as is because I don’t use it.

@SoniX
Why do you think so? I’ve got CH341A or RasPi to “unbrick” this laptop - I hope so :confused: