Award BIOS File Structure

In this article I'll try to explain the components that make up a mainboard BIOS file. This is not meant to be complete, since I don't have enough knowledge in this stuff, I'll just explain what I already know exactly and not trying to speculate on things that is obscure to me. You will need cbrom.exe version 2.08 or newer to try some things mentioned here. Cbrom.exe is a program that can display the components of an award bios file. To begin with, let's see two different version of award BIOS, i.e. the version 4.51PGNM, which is used by motherboards in year 2000 or before year 2000, such as my old Iwill VD133 motherboard, and the version 6.0PG which is used in newer mainboard such as my DFI865PE infinity board.

This is the dump of the output from one of my DFI865PE bios:

D:\HD_LAM~1\HARDWA~2\Tweaking\BIOS_R~1>cbrom208 865IDC19.bin /D 

CBROM V2.08 (C)Award Software 2000 All Rights Reserved.

                ******** 865IDC19.bin BIOS component ********   

No. Item-Name         Original-Size   Compressed-Size  Original-File-Name ================================================================================

   0. System BIOS       20000h(128.00K) 13C31h(79.05K)   865IDC19.BIN

   1. XGROUP CODE       0D960h(54.34K)  09806h(38.01K)   awardext.rom

   2. CPU micro code    04000h(16.00K)  03FA2h(15.91K)   CPUCODE.BIN

   3. ACPI table        045C1h(17.44K)  01A7Dh(6.62K)    ACPITBL.BIN

   4. EPA LOGO          0168Ch(5.64K)   002AAh(0.67K)    AwardBmp.bmp

   5. YGROUP ROM        05D00h(23.25K)  03E56h(15.58K)   awardeyt.rom

   6. GROUP ROM[ 0]     05360h(20.84K)  024B5h(9.18K)    _EN_CODE.BIN

   7. VGA ROM[1]        0C000h(48.00K)  06B05h(26.75K)   SDG_2831.DAT

   8. GROUP ROM[ 5]     004F0h(1.23K)   002A4h(0.66K)    SDG_2831.VBT

   9. Flash ROM         0A00Ch(40.01K)  05777h(21.87K)   AWDFLASH.EXE

  10. PCI ROM[A]        0C000h(48.00K)  05DFCh(23.50K)   4212.BIN

    Total compress code space  = 4A000h(296.00K)

   Total compressed code size = 3B727h(237.79K)

   Remain compress code space = 0E8D9h(58.21K)

                            ** Micro Code Information ** 

Update ID  CPUID  |  Update ID  CPUID  |  Update ID  CPUID   |  Update ID  CPUID 

------------------+--------------------+---------------------+------------------- 

SLOT2  17   0F29  |  SLOT2  2C   0F12  |  SLOT2  01   0F21   |  SLOT2  08   0F23 

SLOT2  1E   0F24  |  SLOT2  05   0F13  |  SLOT2  15   0F25   |  SLOT2  37   0F27 

SLOT2  17   0F29  | 

D:\HD_LAM~1\HARDWA~2\Tweaking\BIOS_R~1>

This is the dump of the output from one of my Iwill VD133 bios:

D:\HD_LAM~1\HARDWA~2\Tweaking\BIOS_R~1>cbrom208 vd30728.bin /D 

CBROM V2.08 (C)Award Software 2000 All Rights Reserved.

                ********  vd30728.bin BIOS component ********

   No. Item-Name         Original-Size   Compressed-Size  Original-File-Name ================================================================================

   0. System BIOS       20000h(128.00K) 15532h(85.30K)   original.tmp

   1. XGROUP CODE       057C0h(21.94K)  03AADh(14.67K)   awardext.rom

   2. CPU micro code    0A000h(40.00K)  05D03h(23.25K)   CPUCODE.BIN

   3. ACPI table        021A6h(8.41K)   00E21h(3.53K)    ACPITBL.BIN

   4. EPA LOGO          02D3Ch(11.31K)  00382h(0.88K)    iwillbmp.bmp

   5. NNOPROM           00FECh(3.98K)   00A5Fh(2.59K)    nnoprom.bin

   6. VRS ROM           02280h(8.62K)   014BBh(5.18K)    anti_vir.bin

   7. ROS ROM           14380h(80.88K)  0F670h(61.61K) E:\2A6LGI3C\AAA\ROSUPD.BIN

    Total compress code space  = 35532h(213.30K)

   Total compressed code size = 3140Fh(197.01K)

   Remain compress code space = 04123h(16.28K)

                            ** Micro Code Information **

 Update ID  CPUID  |  Update ID  CPUID  |  Update ID  CPUID   |  Update ID  CPUID

 ------------------+--------------------+---------------------+-------------------

 PPGA   11   0681  |  PPGA   10   0683  |  PPGA   08   0686   |  PPGA   03   0665

 SLOT1  13   0630  |  SLOT1  20   0632  |  SLOT1  34   0633   |  SLOT1  35   0634

 SLOT1  40   0651  |  SLOT1  2A   0652  |  SLOT1  10   0653   |  SLOT1  0A   0660

 SLOT1  03   0671  |  SLOT1  10   0672  |  SLOT1  0E   0673   |  SLOT1  14   0680

 SLOT1  0D   0681  |  SLOT1  0C   0683  |  SLOT1  07   0686   | 

D:\HD_LAM~1\HARDWA~2\Tweaking\BIOS_R~1>

As you can see, there are some similarities in the components even though they are different award bios version. Explanation of components that are known to me:

Explanation of Expansion/Option ROM

Expansion rom actually is a firmware similar to the mainboard bios, but their purpose is to initialize the card in which they are soldered/socketed. Sometimes they are mounted into an old ISA card (in which we call them ISA option/expansion ROM) or to a PCI card (in which we call them PCI option/expansion ROM). There are also things called BIOS32 services, but this is quite seldom implemented, and I don't know too much about it. Eventhough in most cases, PCI or ISA expansion ROM are implanted in a eprom/eeprom/flashrom chip in a PCI or ISA card, there also certain cases which they are implemented as the mainboard bios component, sometimes due to the mainboard design which incorporate some add on PCI chip in their mainboard, such as RAID controller, SCSI controller or serial ATA controller like the one you saw in the DFI865PE bios example above. Note that an expansion ROM implemented as a mainboard bios component is no different with expansion rom implemented in a PCI/ISA expansion card.

copyright © Darmawan M S a.k.a Pinczakko