BIOS Modding: Introduction and Preparations

PhoenixTool should be the first choice when dealing with odd BIOS containers.

But I made a little .bat to avoid using it all the time. The 2 files should be in the same folder as Dell exe file, probably a clean one to avoid misdetects. You should also install Python and 7-zip, then correct their location in line 27 (ususally C:\Python\python.exe) and line 120 (usually "%programfiles%\7-Zip\7z.exe" or "%programfiles(x86)%\7-Zip\7z.exe").

One particular note is step 5, which is searching in %temp% for any unpacked BIOS files. Therefore it is needed to have a cleaned temp folder (at least from any .hdr/.fd/.rom/.cap/.bin) and to let the error message open for 5 seconds, otherwise the unpacked files will get deleted once message is closed. But a manual search is far better, I only implemented this as a quick solution.

I have tested with multiple types of files. With "Dell Vostro 3560 A13.exe" and "L322XA08.exe" even PhoenixTool fails.

test.png



Note that I’m note a coder and this suffice for my needs. If anyone is able to help, even with a feedback, please do so. Credits to JimboBobB from MDL for Dell_HDR.py


Edited: I have added a new .bat, which should reduce the number of error messages. If you get more than one error, than it is likely that the BIOS needs another extraction method. Just drop the exe file on the bat. The requirements have changed a bit. The .exe, Dell_HDR.py and .bat should be in the same folder with no other BIOS file (.fd, .rom, .bin etc.) around. Also it is now needed to have hexfind.exe from UBU in the same folder. Since CodeRush has put some work in providing this file and I don’t plan to release this as a standalone package, I don’t think it is fair to add it without his consensus.

It has been tested with some limited samples I had, but it is more than likely that it won’t work for each one. That is why I posted here, for some feedback.

Dell Extract.rar (2.08 KB)

Dell_Image_Extract v2.rar (2.48 KB)

Hi,

In the Original thread by Fernando it mentions

Note: You can find download links to a lot of actual and already extracted AHCI/RAID ROM modules from different chipset manufacturers within the start post of >this< thread.

The link seems to be broken :frowning:

Is the link supposed to be pointing to
AHCI & RAID ROM Modules

Apologies if my questions are so rudimentary… Been reading the posts but hasn’t really addressed any of the questions I have.

How do I know which processing tool I need? It does say download all of them which I have done, and if I want to update the Intel RAID ROM module and I have a gigabyte motherboard, am I safe to assume that I use CBROM_155 with the associated bin file?

Is it trial and error?

Or should I be using UEFI BIOS Updater?

Not understanding the differences between CBROM and the UEFI BIOS Updater.

Pardon me if this is also discussed elsewhere and if it is please could you point me in the right direction?

Help please

mcos0544

UPDATE*

Just saw this Article GA-H57-USB3 Need to mod BIOS to update Intel Rapid Storage Option ROM
which is not much different than mine (Gigabyte GA-P55A-UD4)

Then I found the t20f16-Guide-Award-Phoenix-BIOS-Modding.htmlm :slight_smile:

So I’ve got to the below stage where I have updated the bios file with the AHCI/RAID ROM module (Intel_RST_RAID-ROM_v11.2.0.1527) file named 8086-2822_11201527.bin renamed to pchraidr.bin

C:\Temp\New tools\CBROM_155>cbrom_155 p55aud4.f15 /d
cbrom_155 V1.55 [10/12/05 Release] (C)Phoenix Technologies 2001-2005

******** p55aud4.f15 BIOS component ********

No. Item-Name Original-Size Compressed-Size Original-File-Name
================================================================================
0. System BIOS 20000h(128.00K) 13F39h(79.81K) p55aud4.BIN
1. XGROUP CODE 0E3C0h(56.94K) 099CFh(38.45K) awardext.rom
2. ACPI table 055EBh(21.48K) 01B11h(6.77K) ACPITBL.BIN
3. GROUP ROM[18] 04740h(17.81K) 02C2Fh(11.05K) ggroup.bin
4. GROUP ROM[20] 04990h(18.39K) 02FC6h(11.94K) ffgroup.bin
5. Other(40CA:0000) 02380h(8.88K) 01845h(6.07K) y2group.bin
6. YGROUP ROM 0D6B0h(53.67K) 0767Ah(29.62K) awardeyt.rom
7. GROUP ROM[22] 0F630h(61.55K) 0261Ah(9.53K) tgroup.bin
8. GROUP ROM[23] 0F630h(61.55K) 03DAEh(15.42K) t1group.bin
9. GROUP ROM[24] 0F630h(61.55K) 01AC1h(6.69K) t2group.bin
10. GROUP ROM[ 0] 07F30h(31.80K) 02C0Ch(11.01K) _EN_CODE.BIN
11. MINIT 35200h(212.50K) 3522Fh(212.55K) csimemrc.bin
12. PCI ROM[B] 04000h(16.00K) 02B48h(10.82K) pchahci.bin
13. PCI ROM[C] 0F800h(62.00K) 0925Ch(36.59K) rtegrom.lom
14. LOGO BitMap 4B30Ch(300.76K) 214B0h(133.17K) p55rev20.bmp
15. PCI ROM[D] 08000h(32.00K) 04628h(17.54K) jmb10706.bin
16. GV3 03900h(14.25K) 02278h(8.62K) PPMINIT.ROM
17. OEM0 CODE 03056h(12.08K) 022F4h(8.74K) SBF.BIN
18. LOGO1 ROM 00B64h(2.85K) 00520h(1.28K) dbios.bmp
19. OEM6 CODE 06400h(25.00K) 03CE9h(15.23K) GRAID.BIN
20. PCI ROM[A] 1DC00h(119.00K) 10EDFh(67.72K) pchraidr.bin
(SP) NCPUCODE 12801h(74.00K) 12801h(74.00K) NCPUCODE.BIN

Total compress code space = E3000h(908.00K)
Total compressed code size = CB262h(812.60K)
Remain compress code space = 17D9Eh(95.40K)

** Micro Code Information **
Update ID CPUID | Update ID CPUID | Update ID CPUID | Update ID CPUID
------------------±-------------------±-------------------±------------------
SLOT1 01 06F0 | SLOT1 0D 06E1 | SLOT1 07 06F1 | SLOT1 0A 06E3
SLOT1 04 06E5 | SLOT1 01 06E5 | 0000 0000| 0000 000
0
0000 0000| 0000 0000|

Am I ok to go from Intel(R) RAID for SATA - v9.5.0.1037 to Intel(R) RAID for SATA - v11.2.0.1527?

So seem to be progressing, but now stuck at how to flash my computers bios?

The Gigabyte site lists QFLASH and @BIOS and a DOS Flash utility

Which one should I use? Or is there another recommended application? OS = Windows 7 Sp1 x64

@ mcos0544:
Welcome at Win-RAID Forum!

Zitat von mcos0544 im Beitrag #22
In the Original thread by Fernando it mentions

The link seems to be broken :frowning:
Is the link supposed to be pointing to
AHCI & RAID ROM Modules



Yes!
You are right: The linlk was broken, because the website win-lite.de doesn’t exist anymore. I am sorry about the broken link, which is now corrected.

As the name "UEFI BIOS Updater" already says, the UBU tool is only usable, if you want to modify an AMI UEFI BIOS. Only rather new mainboards (from Intel 6-Series Chipset up) have such BIOS.
As you already have found out, you have to use the tool CBROM, because your mainboard has a Phoenix/Award BIOS.

Yes!

You can use either of them, but I would prefer the DOS Flash Utility.
Don’t forget to store somewhere the original BIOS to be able to reflash it in case of any trouble.

Good luck!
Fernando

P.S:: BIOS modding is risky and should not be done in a hurry. This afternoon I will do a deeper look into the BIOS of your mainboard.

Just enter the BIOS of your system. Then you will see, if your mainboard uses a Phoenix/Award or an AMI BIOS.
After having found out the BIOS type (Phoenix/Award, AMI or UEFI AMI) by entering the BIOS, you know, which of the BIOS modding tools and which one of my 3 guides you will need.

Only for me and other people, who are trying to modify an unknown BIOS, but not for the mainboard owner like you.

Meanwhile I have tested the BIOS modding you want to do.
After having downloaded and extracted the latest GA-P55A-UD4 BIOS named p55aud1.f15, I opened it with the tool CBROM v1.98 and got this result:


Since all PCI ROM modules are listed below the sensitive module MINIT, there was no need to use the CBROM v1.55 for the BIOS modding procedure.
Then I extracted the original Intel AHCI ROM named pchahci.bin and the Intel RAID ROM named pchraidr.bin from the BIOS to look for the versions of them.
After having opened both modules with the Hex Editor HxD I found out, that the Intel AHCI ROM was v1.20E (which is already the latest) and the Intel RAID ROM was v9.5.0.1037.
As next step I replaced the Intel RAID ROM v9.5.0.1037 by the v11.2.0.1527 (according to my guide). Everything worked as it should (no error message, no replacement of sensitive BIOS modules were shown).
As last step I reopened the modded BIOS and got this result:



So for me everything looks fine. You should be able to successfully flash the BIOS, which has been modified this way.

Can someone help me to extract BIOS file from EXE flasher, please? Here is the link .
It should be Phoenix EFI BIOS. It’s for my Samsung laptop (Intel SB CPU + HM65 chipset).
My general goal is to see how outdated are all ROMs which can be updated, and to try to flash a modified BIOS, if it not too risky and is worth it at all…

I tried to extract the BIOS from the EXE file by using 7-Zip, the tool Resource Hacker, CodeRush’s UEFITool and Andy’s PhoenixTool, but didn’t succeed.

Could someone please assist.

I’ve got all the needed tools to update my aging XPS 1645. I’ve got the BIOS I want (WPH file) and I’ve got the latest microcode I want to put on it which is version 7 (BIOS has version 4).

I can find the microcode section in the BIOS and update it using Hex but after saving and trying to install it, it fails due to wrong offset. I’ve also tried to run this past Phoenixtool, in the DUMP folder I can find it in the BB.BIN file, update that section - and then run Phoenixtool again but the problem is that it’s not updated (this is where I’m doing something wrong).

Lastly I tried to cheat by using the Hex method first, then running the updated BIOS through Phoenixtool - all looked fine but again, wrong offset so won’t install.

add: CBROM won’t do anything with this so I’m using latest Phoenixtool.

If you want to change a module by using the Phoenixtool, you have to hit the "Structure" button, navigate to the module and replace it by another one.

hmm, I don’t have anything like that? This is the process I am using with pictures.

1)

start.png



2)

BIOS insert.png



3)

options_addded.png



At this stage I have my DUMP output and I’ve set the options to allow myself to mod the modules as I understand it.

So now I can navigate to the DUMP directory and modify the BB.BIN file and replace the microcode with version 7. But if I simply do that and then press “GO” it won’t update it to the new BIOS_SLIC.WPH file.

Instead, if I now press “GO” it will go through it’s motions and tell me that I can now modify the entries in the DUMP folder half-way through the process. If I do that and update the BB.BIN file and then let it finish, I get a new BIOS_SLIC.WPH which has been updated with latest microcode - great news.

Pressing “GO” - 1st part:

1st-part.png



(I’d now mod the BIN.BB file to update the microcode)

Letting it finish:

2nd-part.png



Problem: this output is still giving me checksum error when I try and install it?

hmm, the pictures don’t appear to show up?

Here is a picture with the "Structure" button of the Phoenixtool, but this button is obviously only visible with certain BIOSes:


Please compare the size and the checksum of both CPU Microcode modules (the original and the inserted). If the checksums should be different, you may be able to correct it by using an hex editor.

Alright thanks though I think I’m just missing something simple. For example I’ve just learned that the BB.BIN is actually a Boot Block file, now why would I have to mod this file to update microcode I don’t know but for now, that’s the only “module” that is spat out and where I can find the microcode. If it was as simple as having a microcode module alone it’d be simpler (I think, still possible the offset would be off).

More searching, can’t be that hard.

Hello
Please help me with the bios
i have a HP Thin Client with this bios and i have made a mod in the thin client
added a memory socket DDR2 so-dimm and tried to put in there 2x2 GB RAM
i have tested it but with 2x2GB the TK dont work (it starts and shows 3,5GB but several systems didn’t start)
i am 99% sure that the bios have some kind of memory limitation thats why it shows 3,5GB not 4GB

690hv202.zip (350 KB)

@ krzysiek841:
Welcome at Win-RAID Forum!

Which OS are you running? If it has a 32bit architecture, it cannot manage more than ca. 3,5 GB.

Regards
Fernando

i have tested win7 64, win8.1 64bit both restarts the TK after start about 10 sec
windows miniPE XP from cd launched normally (i think its 32bit) and shows 3,5GB same as the bios shows but i have run there a cpu-z and it showed me normally 4GB (2x2GB)
in socket 1 2GB running normally in socket 2 2GB runs normally too, 3GB (2+1) runs normally too, but 2x2GB not
i think that the bios should show normally 4GB
both of the 2GB kingston modules are identikal
HP T5735

@ krzysiek841:

Since we do not support any System BIOS module modding, you should better ask the HP Support regarding the HP Thin Client memory problem.

i do not think that they answer
1 soldered second ram socket void the warranty
2 its to old for warranty
3 do not think that they have interest on answer people who are modding their TKs
but thanks for reply

how can i unpack the bios ?

Why do you want to unpack it?
You can open the BIOS file named 690hv202.BIN with the normal Phoenix/Award BIOS tool CBROM32_198.

Hello, I’m a forum friend of krzysiek841 on a thread dealing with modding the ThinClient.
http://www.phoneservicesupport.com/new-m…card-t3517.html

We’ve gotten quite far in upgrading these small devices, but this RAM issue, with the second added RAM socket has reached a ‘road-block’ :slight_smile:

I understand this site (yours) only deals with the RAID section of the BIOS, but if you can look at the picture (screen-capture) I made, after using the recommended BIOS reading tool you suggested, can you tell us the section of the BIOS dealing with the RAM controller?

In this case, we may be able to compare a working 2 RAM socket thinclient’s BIOS section, to this older one.
Thank you.

image.jpg

@ MoMo:
Welcome at Win-RAID Forum!

Since I am unsure regarding this point, maybe >this< site will help you.

Regards
Fernando

That is very interesting.
Thank you for that link.

If you find any other info,
or come across others who may know about this ThinClient,
please forward me their post link.

This info you gave is more than we knew before. :slight_smile:

Good night, and thanks again.