Okay, here is a generic HowTo so you no longer need to wait for other people to release bios mods. I'm not going to cover adding new features or showing hidden ones by default, but I will show you how to upgrade embedded firmware (IDE/SATA Raid, PXE boot roms, etc).
WARNING! MODIFYING THE BIOS IMAGE PROVIDED BY YOUR MOTHREBOARD MANUFACTURER MAY NOT BE SAFE. IF YOU MAKE A MISTAKE, YOUR SYSTEM MAY BE DISABLED. THE FOLLOWING PROCUDURE WORKED FOR ME, BUT IT MAY NOT WORK FOR YOU. USE IT AT YOUR OWN RISK. I AM NOT LIABLE FOR ANY DAMAGES THAT MAY OCCUR.
First, you need to identify what hardware your motherboard has, and obtain:
1) The latest BIOS from your motherboard manufacturer.
2) The latest firmware/bios for your onboard devices.
- ITE RAID BIOSs may be found at www.ite.com.tw
- Silicon Image RAID BIOSs may be found at www.siliconimage.com
- For other firmware, just search around. You ought to be able to find it.
3) A recent version of cbrom (at the time of this writing, version 2.15 works well). NOTE: The 2.x versions are NEWER than the 6.x versions. Search on google for this one. It should be easy to find.
Extract everything and stick it all in a single directory. Open a command prompt ("cmd.exe" in XP/2000, and "command.com" in 9x) and change into the directory with everything in it.
For the remainder ofthe HowTo, I'll be using cbrom215 to refer to the cbrom executable. If you have a different version, use its name instead.
Now view what's currently in the bios image (which I'll call bios.bin)
Code:
cbrom215 bios.bin /D
You should see something like this:
Code:
No. Item-Name Original-Size Compressed-Size Original-File-Name
================================================================================
0. System BIOS 20000h(128.00K) 13BB6h(78.93K) 7nnxp.BIN
1. XGROUP CODE 0E0A0h(56.16K) 09A35h(38.55K) awardext.rom
2. ACPI table 046ACh(17.67K) 01890h(6.14K) ACPITBL.BIN
3. YGROUP ROM 06660h(25.59K) 042CEh(16.70K) awardeyt.rom
4. GROUP ROM[ 0] 06380h(24.88K) 02826h(10.04K) _EN_CODE.BIN
5. PCI ROM[A] 0C000h(48.00K) 0585Bh(22.09K) 4200.bin
6. PCI ROM[b] 0D000h(52.00K) 07C3Eh(31.06K) 540_pxe.bin
7. PCI ROM[C] 10000h(64.00K) 07593h(29.39K) NVPXES.NIC
8. EPA LOGO 022C4h(8.69K) 0080Ch(2.01K) logo.bmp
9. OEM1 CODE 09770h(37.86K) 00C9Eh(3.15K) BSMICODE.ROM
10. PCI ROM[D] 0A000h(40.00K) 058EDh(22.23K) ITE8212.ROM
11. OEM4 CODE 0637Ah(24.87K) 030D7h(12.21K) FINER.BIN
12. OEM0 CODE 02549h(9.32K) 01B11h(6.77K) DBF.BIN
Total compress code space = 5E000h(376.00K)
Total compressed code size = 45D1Ah(279.28K)
Remain compress code space = 182E6h(96.72K)
** Micro Code Information **
Update ID CPUID | Update ID CPUID | Update ID CPUID | Update ID CPUID
------------------+--------------------+--------------------+-------------------
What we're interested in are the PCI ROM[] entries. I have a Silicon Image SATA Raid controller and an ITE Raid controller. They show up as 4200.bin (PCI ROM[A]) and ITE4212.ROM (PCI ROM[D]). PCI ROM [b] and [C] are the pxe boot roms for my intel and nvidia lan cards. None of this is incredibly important, but it's fun to know.
Next, we want to replace the old, included rom files with the new ones we just downloaded. So, to update my SiliconImage Raid controller, I would type:
Code:
cbrom215 bios.bin /PCI 4247.bin
Where 4247.bin is the new bios/firmware I just downloaded. You should see a message something like this:
Code:
CBROM V2.15 (C)Award Software 2001 All Rights Reserved.
Adding 4247.bin ..... 51.5%
Now when I view the debug output again, I notice that 4200.bin has been replaced:
Code:
No. Item-Name Original-Size Compressed-Size Original-File-Name
================================================================================
0. System BIOS 20000h(128.00K) 13BB6h(78.93K) 7nnxp.BIN
1. XGROUP CODE 0E0A0h(56.16K) 09A35h(38.55K) awardext.rom
2. ACPI table 046ACh(17.67K) 01890h(6.14K) ACPITBL.BIN
3. YGROUP ROM 06660h(25.59K) 042CEh(16.70K) awardeyt.rom
4. GROUP ROM[ 0] 06380h(24.88K) 02826h(10.04K) _EN_CODE.BIN
5. PCI ROM[b] 0D000h(52.00K) 07C3Eh(31.06K) 540_pxe.bin
6. PCI ROM[C] 10000h(64.00K) 07593h(29.39K) NVPXES.NIC
7. EPA LOGO 022C4h(8.69K) 0080Ch(2.01K) logo.bmp
8. OEM1 CODE 09770h(37.86K) 00C9Eh(3.15K) BSMICODE.ROM
9. PCI ROM[D] 0A000h(40.00K) 058EDh(22.23K) ITE8212.ROM
10. OEM4 CODE 0637Ah(24.87K) 030D7h(12.21K) FINER.BIN
11. OEM0 CODE 02549h(9.32K) 01B11h(6.77K) DBF.BIN
12. PCI ROM[A] 0A800h(42.00K) 056BEh(21.69K) 4247.bin
Total compress code space = 5E000h(376.00K)
Total compressed code size = 45B7Dh(278.87K)
Remain compress code space = 18483h(97.13K)
** Micro Code Information **
Update ID CPUID | Update ID CPUID | Update ID CPUID | Update ID CPUID
------------------+--------------------+--------------------+-------------------
You can follow the same procedure to update other rom files. When you're done, bios.bin will have the latest firmware images included in it, and if you flash it and reboot, you ought to see that they have taken effect.
I hope this helps!
