Hey everyone,
I am facing a problem with my bios for over a year, but now I made some progress (because I found out I can flash using Intel’s Flash Programming Tool, as afuwin is restricted from working, can’t even read the bios file).
Thing is, current bios version is 80.08 (I think it was 80.06 when I bought it). However, HP changed numbering scheme, and after 80.08 they continued with A0.06. Also, something with the dates is messed up, as 80.08 has 04/2017 as date, and A0.xx do have different dates from 2016 up to 2018, so like if there were existing parallel. The board is a Pegatron Memphis2-S 2B2C. And yes, by manually flashing 80.xx versions and A0.xx versions I could confirm that all are suited for this board.
My actual problem is though that I want to update using the regular way, but the bios routine refuses the newer A0 bioses. I think this is due to the change of numbering scheme. Why? Because bios downgrades are not allowed, and I assume that the update routine believes that 80.xx is newer than A0.xx. This is underlined by the fact that DMI tables show version 80.xx for the 80-series bioses, while A0.xx all show 4.6.5 in DMI tables. Now when I manually update to let’s say A0.14, there’s no problem to install the most current version A0.17 via the normal way. All works fine. But back on 80.08 the update complains that the bios file didn’t pass verification.
So, I could of course just flash the most current .bin file manually (using Intel Flash Programming Tool), but that means I would lose the Windows-8-serial programmed into the bios, as well as serial number, service tag, probably NIC MAC address and maybe more. I would like to retain this information.
So I was thinking if it is maybe possible to change the version number of my current bios from 80.08 to A0.08? I tried using AMIBCP 4.53, but it doesn’t accept letters (A) for the major version number. I tried also editing and replacing every occurence of 80.08 with hex editor, but the version number must be programmed somewhere else additionally. Does anybody have any idea where to look or could even change the version number for me?
I have attached my current bios dump with version 80.08 here:
https://www.sendspace.com/file/xpc6gq
Thank you all for trying to help and if you have any questions I’ll try to answer. Sorry for the long post but it’s a rather unusual problem and difficult to explain with only few words.
@treysis - Please link me to stock version (exe is fine) of one each of a 80.xx BIOS and A0.xx BIOS (Or you can zip one of each in same package and attach or upload and give me link)
Also, link me to HP download page for the main system model so I can look at all BIOS available there.
Changing version number wont help, without seeing BIOS yet, I assume both types are not for your same board, is why you can only flash one type normally.
If there was a change in name scheme, stock BIOS updater would know this and accept the new name, it wouldn’t think it’s older and block it, it would know it’s newer and correctly package new name scheme. This is second reason why I believe wrong BIOS for your system, I could be wrong but I bet not.
Also, your explanation seems off, or maybe unnecessary effort when you’ve already done what you wanted. You said current BIOS is 80.x, replacing an older 80.x, but they changes to A0.x (So this would now be latest series).
Then mid explanation you said you already updated to A0.14 and then to A0.17, ao final goal achieved already, latest BIOS A0.17 flashed in normal way
A0.17 is definitely not the same bios and motherboard, it all depends on the ROM Family SSID assigned to the motherboard
My experience with HP bioses is that the 80.x range bioses are for Intel Processor/Chipset motherboards and A0.x is for AMD Processor/Chipset motherboards…but hey, if you like to brick your motherboard go ahead !
@RvdH - I agree, that’s why I want to see these BIOS, to check all that (Mainly BIOS ID Tag etc) and show him
@Lost_N_BIOS His bioses can be found here:
https://support.hp.com/us-en/drivers/sel…9/model/8902926
I have a HP Pavilion Desktop - 500-405nd myself, and if I examine the A0.x variant listed for my desktop with, for example UBU, it contains AMD microcodes only, the 80.x variant contains the proper Intel microcodes
Thanks! Yes, they should explain that better for this model. I’ve seen some HP BIOS downloads, where it’s easily shown “This BIOS for AMD System” & “These are for Intel System”
Those you have to dig into the details, and it’s still not obvious then either, some you can see Intel microcode update mentioned or other stuff, but both 80.x and A0.x say for SSID 2B2C family?
Looks like a good lawsuit waiting to happen due to bricks, but we all know only proper BIOS will flash to system normally for many obvious reasons.
I noticed both 80.x and A0.x say for SSID 2B2C family for the HP Pavilion 500-549ng, that is very weird indeed… proceed with caution i would say
Sorry, with current bios version I meant currently installed on my system. It arrived via HP Support Assistant as an update to 80.07 about 2 years ago. The most current one is A0.17.
This pc model only exists with Intel cpu I think. I flashed already different A0 versions, but have to use FPTW. No problems with the A0. Boots fine. Just it is missing all the board specific values like ID and serial. Though if I use the official installer instead of fptw it will boot into UEFI bios update and then say that the file failed verification.
I’ve looked at all the bios versions available for that board, from 80.06 to A0.17. All say SSID 2B2C if opened in AMIBCP.
I will compile a list later with alle the links. This is the link to the model:
https://support.hp.com/us-en/drivers/sel…9/model/8902926
If you download the A0 bios updates you will also find that for some odd reason the update file always contains one 80.xx and one A0.xx version. But both cannot be installed in the official way on my system.
Ok guys, I now compiled a list of all the BIOS updates for board SSID 2B2C. It appears as if versions 80.07 and 80.08 were never officially published. “Add. Vers.” means that there’s an additional BIOS update file included in the sp*****.exe.
(I also attached Excel spreadsheet for better readability)
BIOS-updates_2B2C.xlsx (10.6 KB)
Do you have a backup from before you used FTP? You likely erased some variable required, aside from serial, UUID etc, and that’s why the stock installer is not working for you now.
As for retaining current board specific details like serial, UUID, windows key ect, which it sounds like you somehow still have, I can transfer all that to any BIOS for you so you can then use FPT.
So, since you have used FPT, and still retain all this info currently, sounds like you did good and made a backup sometime!
SSID is not same as FID, which I also planned to check, this may be all that’s stopping the normal update process, or you simply may need to edit the platform.ini or batch file etc.
I checked latest sp87681 and I see two BIOS in there (80.09 + A0.17) maybe that is what you meant too? Along with ME.bin, ME FW Update Tool, AMI SFU (HP Branded), dll’s, sys files, etc, and this is part of the batch file below, so all explained in the batch I think.
I checked, both BIOS do not have same FID, nor microcodes etc, plenty of differences, but FID is why it’s failing for you when you have one installed and try to update normally to the other type, this would cause fail with just AMI tools not even using HP ones.
Probably one right when it changed over would allow that, while on the old one, but they may have pulled that BIOS now, or you haven’t tried using it yet to then update to A0?
AMI SFU is what checked the current BIOS type via >>
DEL SID.LOG & DEL SID1.LOG
FOR /F “DELIMS=9” %%a IN (SID2.LOG) DO (
IF %%a EQU %SAFU_ID1% GOTO ME2_80 << This is one BIOS (I also extracted the actual rom/bin from this exe in package below for you)
IF %%a EQU %SAFU_ID2% GOTO ME2_A0 << This is the other BIOS (I also extracted the actual rom/bin from this exe in package below for you)
There is several checks and if this use that in the batch file, you could switch if you wanted, but from what I see the latest and best BIOS is the A0, so use that like you are now
** Side note, I can unlock this BIOS for you, so you have TONS of options! If you want this, zip me up a package of your visible BIOS pages showing one image of each section (Like 1x Main, Advanced, Boot, Save and exit etc), and inside that package include a FPT dump of your BIOS region via >> FPTw -bios -d biosreg.bin
It should be asking you which BIOS it looks like, especially if SSID mismatch!
:GUI_UPD
CLS
ECHO. & ECHO The System SSID is not match the SoftPAQ SSID, skip the auto execution process. & ECHO.
ECHO ===============================================================================
ECHO == ==
ECHO == Which system BIOS you want to execute? ==
ECHO == (1) HP Consumer Desktop PC BIOS Update (ROM Family SSID 2B2C) BIOS v80.09 ==
ECHO == (2) HP Consumer Desktop PC BIOS Update (ROM Family SSID 2B2C) BIOS vA0.17 ==
ECHO == (3) EXIT the SoftPAQ update program. ==
ECHO == ==
ECHO == Please enter the chosen (“1”, “2” or “3”) then press the “Enter” key ==
ECHO == to continue the procress. ==
ECHO == ==
ECHO ===============================================================================
Here’s that sp87681.exe BIOS extracted, and then extracted more (Just the rom’s for 2nd extract, there’s too many unnamed files/dlls/sys files etc to further extract the internal exe into anything useful other than the actual rom) in case you had not dug in this far yet @treysis
http://s000.tinyupload.com/index.php?fil…274675250981874
If you simply need your details transferred from 80 type BIOS to A0 type BIOS, so you can FPT it in, get back on 80 BIOS and make sure all details are there, then dump the BIOS via FPT or Universal BIOS backup toolkit (It freezes on screen, you can’t move it, wait till it’s done, then close)
I mention the other, in case you can’t dump entire BIOS via FPT. If you have FD/FDO/ME etc 2pin jumper on this model, then put a jumper on it, and you should be able to dump entire BIOS via FPTw -d bios.bin
First, I wasn’t even able to dump the bios. Had to set the FDO jumper to disabled to make FPT work (AFU didn’t work, not even the HP branded version). Then I made a dump of the 80.08. I actually modded the 80.08 to contain the v24 Haswell microcode update and flashed it back using FTP. Worked like a charm. All individual info still retained. So I do have a good backup that’s flashable via FPT. Not sure if this is flashable using SPI, though.
So: yes. I do have a backup with all info. I am also currently running 80.08 with all info still inside.
Ah, interesting. Didn’t know about FID. But where is this platform.ini?
Good catch! Didn’t realize they put out an 80.09 version with the latest A0.17. 80.09 actually seems to also contain the almost newest v24 Haswell microcode update (actually, trying to update microcode early 2018 was how I initially noticed there’s something off with the bios versions). Still don’t understand why they don’t officially publish it and hide it within A0.17. I know the difference of ME…bin. I actually was able to update ME firmware before by using the ME tools (even before changing FDO jumper).
Weird! Why do they use different FIDs? Yes, that could be the reason. I should check if updating to 80.09 works using the official installer for A0.17.
I tried to udpate using every single version (up until A0.16) I could find. Someone somewhere reported he was able to update using A0.10, but I can’t find what version he was using before. Anyway, A0.10 had some serious problems and was pulled. So it’s not even downloadable anymore, not even by knowing the correct spXXXXX.exe filename (also the info page was deleted). Maybe it was allowed by the UEFI update module, and since the UEFI engine has been updated (not the BIOS itself, but the UEFI Hardware Diagnostics or what it is called) maybe it doesn’t allow this transition from 80.xx to A0.xx anymore.
However, I was able to update to A0.xx using FPT. Just used the downloaded .bin from the spXXXXX-packages. I tried A0.17, and also tried A0.14. Both worked fine. Additionally, after flashing A0.14 I was able to use the official update package to update to A0.17. If I flash back 80.08 I am again not able to update to A0.xx using official way.
Yes, I’ve seen this. I managed to get this prompt shown somehow, but I don’t remember how I got to that selection (maybe I edited the flash.bat before). If you just straight run the spXXXXX.exe it will not prompt you.
Thanks, but you assumed correctly. I had extracted it that far already myself. Still, appreciate your effort! But I missed that the BIOS Tag (FID) is such an important factor.
Do you think it is maybe possible to just modify the FID of the 80.xx bios to match the A0.xx and then just use the normal update routine? Like this it wouldn’t be all that work to manually transfer everything to a new image (I am currently also running on 80.08 with manually patched microcode using UBU Tool).
***Regarding unlocking additional menus: I don’t think I’ll need this. I am not interested in overclocking and actually I think everything works rather fine. Or is there some feature where you’d say it is definitely worth to unlock?
Thanks again for all your efforts and detailed analysis!
EDIT: So I just tried to update to 80.09 using the official updater. Guess what: file didn’t pass verification. Update failed. Weird. So I guess I’ll have to transfer manually everything to A0.xx and flash using FPT. The 80.08 dump is here:
https://www.sendspace.com/file/xpc6gq
Just the first 5 digits of the Windows serial have been changed because I didn’t want my serial on the net? But I guess I can easily change that back using hex editor after transferring everything?
Platform.ini is for Insyde flash program, I mentioned that before I tore into this BIOS, so didn’t know it was AMI based tools instead.
I don’t know why the two BIOS and two FID’s? I didn’t look into settings or anything, maybe one has more or different settings, maybe one is general and one is more business class type BIOS, or ME (I didn’t check that either)
Yes, edit the batch to make prompt show up, probably (I’m not looking at it right now) but I assume you can make it attended vs unattended or similar.
Yes, FID can be modified, I’ve done this for BIOS crossflashing for other model mainstream boards. I will grab your dump and get on this tonight for you, and yes, if you know where the key is you can change back once I’m done before you flash it in.
So what am I doing now Which BIOS to edit your info into?
Ohh! on your stock update attempt, if FID is not checked with the stock update stuff (which it should be, since it’s all AMI based inside the seconday exe’s, then this might work
IF %%a EQU %SAFU_ID1% GOTO ME2_80 << Switch with below
IF %%a EQU %SAFU_ID2% GOTO ME2_A0 << Switch to above
On the unlock, no, nothing needs to be unlocked, especially since it’s not something you are after/needing anyway. You’re welcome, this kind of thing keeps my mind occupied and I enjoy the struggle trying to make BIOS do what we want not what they say it should do
You can remove link to BIOS backup now, and delete from sendspace if you want, I got it.
Yes, I also can only suspect something like this. This board has been used in different models. BUT then why HP lists different BIOS version on support side. I think they somehow lost track of their build scripts or something. Really no idea how this happened (and continued to go on like this).
Hm, I’d like to try updating the official way again. So you think it would be possible to modify the dump (see sendspace link) to contain the FID of A0 series? Maybe even change 80.08 to A0.08 to make it more similar to A0 series? If that won’t work then I’ll think best would be to transfer everything over manually.
That won’t do any good. In the end it will just execute ME2_A017.EXE or ME2_8009.EXE, depending on choice. I can just execute those manually for same effect.
Haha, good, so: you’re welcome No really, many many thanks to you!
FID can be changed, but you cannot flash “Official Way” with modified BIOS anyway, so no point in that if “Official Way” is your goal. I think the only way you can flash official way, possibly, is to switch the parts I mentioned in batch file.
But yes, same effect as launching the exe yourself, maybe (maybe some check already done and wont be checked again with batch though, but not with direct execution)
If direct execution fails, or editing batch fails, you could switch the roms contained in those exes using AMIUCP, that might work but could also fail. If it fails, also switch out the signature files in there too (USG and 3SG I think, but you’d have to extract them all to verify if its a key/sig or not 128KB or 256Kb is a key/sig)
You’re welcome too, and thanks!
Hey @Lost_N_Bios
sorry for the long time without reply. I couldn’t get back to you earlier.
Why it is not possible using official way after changing FID? It’s doing some checksum test?
No no, I checked the parameters in the batch file…doesn’t make a difference if I run update through batch or directly by exe file.
Extract signature? How do I do that? Anyway, I don’t think this would help. If it doesn’t work with switching FID, I think only way is to manually transfer data to new bios file.
It’s OK @treysis - I’m often late and behind too
Yes, it would check FID and official way would then not match, and yes it may also check other checksums or values. YOu can try and see what happens. Signature files, I said how to extract all that, using AMIUCP, you can compile your own EXE with that using whatever you want, including whatever rom or signatures etc.
Using that method, if you switch FID, and then repack with the other files signatures it may be OK using “Normal exe way” however that’s an edited exe file then so not really considered “normal way”
Well, I wanted to edit FID of current bios, so that if I flash new BIOS I can do it official way. So for example my dump of current 80.08, edit FID to match that of A0.xx, and then use official installer for A0.xx to update.
That might work, but you would need to use unofficial way to edit and get that in there, so not really being official doing that That may work though, unsure, many checks are done usually but FID is one of the major ones.
I already flashed a modified bios using FPT. Read it first using FPT. Then edited just some parts using hex editor. Flashed it back. Worked. So I guess changing FID in bios dump and then reflashing should work. Do you think you can try to adjust the FID in the bios dump on page 1 to reflect that of A0.xx? And maybe change bios version from 80.08 to read A0.08?
Can you please try this?