%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
本文所涉及到的资料,均来自internet...
造成的后果,与本人无关
| 内容仅为个人意见。由于时间仓促,很多细节没有验证,错误很多。
| 如果您有不同意见,可联系icelord@sohu.com,欢迎指正。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[1].关键数据结构
(1).*BBSS*
see AwdBiosSrc
(2).-lh5-
see AwdbEditSrc
see Xfcous Article 'xxx文件格式xxx'
(3).*KSA (Locate in SystemBIOS中)
see AwdBiosSrc
[2].几个镜像的结构
----------------------------BIOS 6.00PG (512KB /????)----------------------------
BIOS Version:Phoenix - AwardBIOS v6.00PG
BIOS Info:11/05/2003-KT600-8237-6A6LYA1GC-13
BIOS ID:6A6LYA1Gnix - AwardBIOS v6.00PG
Name:KV7_13.BIN Type:50000000 Offset: 0 ModuleSize:129E1
Name:awardext.rom Type:407F0000 Offset: 129E3 ModuleSize:8F5F
Name:ACPITBL.BIN Type:40030000 Offset: 1B943 ModuleSize:1ABA
Name:AWARDEPA.BIN Type:40020000 Offset: 1D3FE ModuleSize:22A
Name:awardeyt.rom Type:400E0000 Offset: 1D629 ModuleSize:3F24
Name:_EN_CODE.BIN Type:40290000 Offset: 2154E ModuleSize:261B
Name:8233LAN.BIN Type:40860000 Offset: 23B6A ModuleSize:80FE
Name:6420R221.rom Type:40870000 Offset: 2BC69 ModuleSize:6C6A
Name:leaving.bin Type:40A40000 Offset: 328D4 ModuleSize:12C5
External_BootRom_Seg:7000 //4GB-64KB+0x7000 --->FileOffset 0x77000
Decompress_Code_Seg:9400 //hehe,should be '=Award Decompression Bios ='
WholeBootRomStart_Seg:6000
ROMDrive_Limit_Seg:6000 //4GB-64KB+0x6000 --->file offset 0x76000
ESCD_Data_Seg:FFFF //not exist?
Extract_Entry:9ADE
Expand_Entry:9B34
BootExt_Size:9 //9KB == DecompBlockStart-ExtBootRomSeg=0x9400-0x7000=9KB
+-----------------------------+ 0x00000 '-lh5-' --->LzhModule
| lzh module |
+-----------------------------+
| lzh module |
+-----------------------------+
| lzh module |
+-----------------------------+
| |
+-----------------------------+
| Free Space(0xFF) |
+-----------------------------+
| |
+-----------------------------+ 0x76000 here appear code that !=0xFF
| |
+-----------------------------+
| |
+-----------------------------+ 0x79400 '=Award Decompression Bios ='
| DecompBlock(4KB??) |
+-----------------------------+ 0x79F30 '*BS1'
| |
+-----------------------------+ 0x79F50 '*BBSS*' --->Bootblock Signature struct...
| |
+-----------------------------+ 0x7A000 'IMD$' --->DMI Area
| DMI (8KB) |
+-----------------------------+ 0x7C000
| |
+-----------------------------+ 0x7E000 'Award BootBlock BIOS v1.0'
| BootBlock(8KB) |
+-----------------------------+ 0x7FFFF
----------------------------BIOS 6.00PG (256KB/16K-8K-8K Unit???)----------------------------
Name:6A69VM4H.BIN Type:50000000 Offset: 0 ModuleSize:12AE2
Name:awardext.rom Type:407F0000 Offset: 12AE4 ModuleSize:96C8
Name:CPUCODE.BIN Type:40010000 Offset: 1C1AD ModuleSize:1024
Name:ACPITBL.BIN Type:40030000 Offset: 1D1D2 ModuleSize:17BB
Name:AwardBmp.bmp Type:40020000 Offset: 1E98E ModuleSize:30C
Name:_EN_CODE.BIN Type:40290000 Offset: 1EC9B ModuleSize:1396
Name:ANTI_VIR.BIN Type:40070000 Offset: 20032 ModuleSize:14AB
Name:cafe.bmp Type:40000000 Offset: 214DE ModuleSize:492E
SystemBIOS CRC:AC36
BIOS Version:Award Modular BIOS v6.00PG
BIOS Info:10/09/2001-i845-W627HF-6A69VM4HC-00
BIOS ID:6A69VM4Hd Modular BIOS v6.00PG
External_BootRom_Seg:4000 //bootExt Start=0x34000
Decompress_Code_Seg:7000 //DecompBlock -0x37000
WholeBootRomStart_Seg:4000 //
ROMDrive_Limit_Seg:4000 //
ESCD_Data_Seg:A000 //'ACFG'=0x3A000
Extract_Entry:76DE //
Expand_Entry:7734 //
BootExt_Size:C //bootExt_Size=DecompBlock-ExtBootStart=0x7000-0x4000
+-----------------------------+ 0x00000 '-lh5-' --->LzhModule
| lzh module |
+-----------------------------+
| lzh module |
+-----------------------------+
| lzh module |
+-----------------------------+
| |
+-----------------------------+
| Free Space(0xFF) |
+-----------------------------+
| |
+-----------------------------+ 0x34000 here appear code that !=0xFF
| |
+-----------------------------+
| |
+-----------------------------+ 0x37000 '=Award Decompression Bios ='
| DecompBlock(4KB??) |
+-----------------------------+ 0x37B20 '*BS1'
| |
+-----------------------------+ 0x37B40 '*BBSS*' --->Bootblock Signature struct...
| |
+-----------------------------+ 0x38000 'IMD$' --->DMI Area
| DMI (8KB) |
+-----------------------------+ 0x3A000 'ACFG' --->ESCD Area
| ESCD (8KB) |
+-----------------------------+ 0x3C000
| |
+-----------------------------+ 0x3E000 'Award BootBlock BIOS v1.0'
| BootBlock(8KB) |
+-----------------------------+ 0x3FFFF
----------------------------BIOS 6.00PG (512KB/64KB Unit?)----------------------------
Name:ms86517b.BIN Type:50000000 Offset: 20000 ModuleSize:13B4A
Name:awardext.rom Type:407F0000 Offset: 33B4C ModuleSize:9D7E
Name:CPUCODE.BIN Type:40010000 Offset: 3D8CB ModuleSize:3790
Name:ACPITBL.BIN Type:40030000 Offset: 4105C ModuleSize:1AF1
Name:AwardBmp.bmp Type:40020000 Offset: 42B4E ModuleSize:2A9
Name:awardeyt.rom Type:400E0000 Offset: 42DF8 ModuleSize:65E6
Name:_EN_CODE.BIN Type:40290000 Offset: 493DF ModuleSize:1F41
Name:SDG_2731.DAT Type:40800000 Offset: 4B321 ModuleSize:6671
Name:DMBM_Tt.ROM Type:40160000 Offset: 51993 ModuleSize:626
Name:MBINFO.ROM Type:400F0000 Offset: 51FBA ModuleSize:C8
Name:RTSROM_M.LOM Type:40860000 Offset: 52083 ModuleSize:7DA8
Name:L_PII.BMP Type:40000000 Offset: 59E2C ModuleSize:1639
Name:L_HT.BMP Type:40200000 Offset: 5B466 ModuleSize:18EA
Name:L_P4.BMP Type:40210000 Offset: 5CD51 ModuleSize:1858
Analyse BIOS Okay!!!
Decompress okay...!!!
SystemBIOS CRC:656A
BIOS Version:Phoenix - AwardBIOS v6.00PG
BIOS Info:04/04/2005-i865-W83627-6A79Q1JC-00
BIOS ID:6A79Q1J
External_BootRom_Seg:B00E //0xEB000 ---> FileOffset:0x6B000 ?
Decompress_Code_Seg:EE4E //0xEEE40 ---> FileOffset:0x6EE40 !
WholeBootRomStart_Seg:B00E //0xEB000 ---> FileOffset:0x6B000 ?
ROMDrive_Limit_Seg:B00E //0xEB000 ---> FileOffset:0x6B000 ?
ESCD_Data_Seg:1 //0x10000 ---> FileOffset:0x10000 ?
Extract_Entry:F51E
Expand_Entry:F574
BootExt_Size:C //12KB?? ---> ?
+-----------------------------+ 0x00000 'IMD$' --->DMI Area
| DMI Block |
+-----------------------------+ 0x10000 'ACFG' --->ESCD Area
| ESCD Block |
+-----------------------------+ 0x20000 '-lh5-' -->LzhModule
| lzh module |
+-----------------------------+
| lzh module |
+-----------------------------+
| Free Space(0xFF) |
+-----------------------------+
| |
+-----------------------------+ 0x63FE0 here appear code that !=0xFF
| |
+-----------------------------+
| |
+-----------------------------+ 0x6EE40 '=Award Decompression Bios ='
| DecompBlock(4KB??) |
+-----------------------------+ 0x6F950 '*BS1' ???????
| |
+-----------------------------+ 0x6F970 '*BBSS*' --->Bootblock Signature struct...
| |
+-----------------------------+
| |
+-----------------------------+ 0x7E000 'Award BootBlock BIOS v1.0'
| BootBlock(8KB) |
+-----------------------------+ 0x7FFFF
------------------------------------------------------------------------------------------
下面是Awd2MbBIOS_Src中的片断,解释了上面的问题:
(location:/btromseg.equ)
;================== FLASH 64K unit definition ================
ifdef FLASH_64k_unit
Flash_2M_support equ 1
ESCD_Data_Seg = 0ffffh ;assume none
ifdef PNP_BIOS
ESCD_Data_Seg = 00000h ;physical = 00000h
ifdef DMI_ENABLED
ESCD_Data_Seg = 00001h ;physical = 10000h
endif ;DMI_ENABLED
ifdef P6_BIOS_ONLY
ESCD_Data_Seg = 00001h ;physical = 10000h
endif ;P6_BIOS_ONLY
endif ;PNP_BIOS
External_BootRom_Seg = 0e006h ;physical = 6e000h
Decompress_Code_Seg = 0f006h+Extra_MemSizing_Space ;physical = 6f000h+Extra_MemSizing_Space
ROMDrive_Limit_Seg = 0e006h ;physical = 6e000h
WholeBootRomStart_Seg = 0e006h ;physical = 6e000h
endif
;==============================================================
对于不同的Flash有不同的Unit 大小?
64KB Unit
16K-8K-8K Unit
4KB Unit
BIOS镜像的关键信息都包含在BBSS结构中(至少在6.00PG中),对于不同版本的AwdBIOS,
结构不一定一样/存在?
曾在一个Award BIOS 6.0中没有找到BBSS结构,却找到了一个*BBSN*标志,没办法,只能将这个位置
看作BBSS结构来计算BIOS (Decompess Block Cksum)效验和.
至于BBSS结构和 LZH结构,看下文吧...