迅维网

查看: 3135|回复: 12
打印 上一主题 下一主题

intel bios数据结构分析及修改方法

  [复制链接]
跳转到指定楼层
1#
发表于 2021-11-24 23:25:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: 北京 来自 北京

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x
我分析的是intel image格式的bios文件哈,不是uefi版本的。
事情起源于我2011年的老主板,想着换上e3v2处理器,无赖bios空间只有4MB,没法刷官方最新的bios固件,于是自行网上搜索,发现了一个4MB的版本,刷入后能亮机,但没有网络,说是要添加gbe region,才能解决。网上搜索了一遍,也没找到教程,于是自行分析研究,最终添加成功。补上这篇帖子,希望后面的人员少走弯路。

bios完成的数据结构可以参见intel的桥片手册io-controller-hub-10-family-datasheet.pdf:22.2 Flash Descriptor Registers,里面有完整的数据结构描述。原文档800+页,英文版的,在此我提取了一个简化的版本,14页,需要的可以参考,只提取没翻译哦。
完整的bios数据结构分为5个region:desc、bios、me、gbe、pdr。desc占用0x1000字节长度,gbe占用0x2000字节长度,其他region长度不是固定的。desc部分
对bios的其他部分数据段进行了描述。
desc关键数据结构说明如下:
00000000   FF FF FF FF  FF FF FF FF  FF FF FF FF  FF FF FF FF  ................
00000010   5A A5 F0 0F  03 00 04 03  06 02 10 12  20 01 21 00  Z........... .!.
00000020   25 00 00 00  FF FF FF FF  FF FF FF FF  FF FF FF FF  %...............
00000030   23 00 90 64  00 00 00 00  00 00 00 00  FF FF FF FF  #..d............
00000040   00 00 00 00  80 01 FF 03  03 00 7F 01  01 00 02 00  ................
00000050   FF 1F 00 00  FF FF FF FF  FF FF FF FF  FF FF FF FF  ................
00000060   00 00 FF FF  00 00 FF FF  18 01 FF FF  FF FF FF FF  


0x0-0x0f:reserve 保留;
0x10-0x13: signature  0FF0A55Ah identifies a valid flash descriptor
0x14-0x2F: descriptor map
           0x14-0x17:FLMAP0,03=指定component的描述段地址为0x3<<4;
                                00=1 Component,也就是一片flash;
                             04=指定region描述段的偏移地址为:0x04<<4;
                             03=指定总的Regions的数量为3,从0开始计数,3表示bios中包含desc、bios、me、gbe region
                             (0->desc,1->bios, 2->me, 3->gbe, 4->pdr)
           0x18-0x1B: FLMAP1, 06=define Flash Master location
                              02=master的数量,从0开始计数;
                              10=ICH Strap Base Address
                              12=ICH Strap length
           0x1C-0x1F: FLMAP2, 20=MCH Strap Base Address
                              01=MCH Strap length
0x40-0x53: 32bit一组,指定region占用的空间范围,0-12bit指定base、16-28bit指定limite
        0x44-0x47:80 01 FF 03 就是指定bios占用的空间,从0x0180_000->0x03FF_FFF;
        0x48-0x4B:03 00 7F 01 就是指定me占用的空间, 从 0x0003_000->0x017F_FFF;
        0x4C-0x4F:01 00 02 00 就是指定gbe占用的空间,从 0x0001_000->0x0002_FFF;
        0x50-0x53:FF 1F 00 00 就是指定PDR(platform date record)占用的空间,因为base > limite ,表示无效。一般不使用,刷机是经常会看到提示:no valid pdr region,就是因为这儿没启用;

0x60-0x6B: Flash Master Permissions,指定bios、me、gbe region的访问权限;
           00 00 FF FF  00 00 FF FF  18 01 FF FF(0000表示cpu、me; 0118表示GBE; 0xFFFF表示所有权限,在dos、win下通过fpt刷写需要)
           00 00 1B 1A  00 00 0D 0C  18 01 08 08(默认值,只有部分权限)


有上述数据结构,添加或更改各个region的方法就清楚了:
如果只是修改各个region的位置和大小,那就直接改base和limit的值,然后拼接时把相关数据段放到对应的位置就可以了;
如果是新增加一个gbe region,那就需要修改regions的数量,修改base、limit, 然后把数据放到对应的位置;
如果想要后续刷机方便,那就直接改权限位即可;

bios修改注意事项:
1、ICH Strap、MCH Strap跟板卡强相关,不同板卡不通用,如果升级需要保留原板卡的配置;
2、me有版本,需要跟特定芯片组配合使用,不能乱搭配;
3、南桥上的集成网卡,需要gbe region进行配置,否则不能使用。刷bios后,如果系统找不到网卡设备,很大可能就是跟gbe 、strap有关。
4、板载网卡不需要gbe region哈

5、desc中还有bios使用芯片的容量、速率、ID等参数的描述,如果换芯片类型需要注意修改;


intel-bios_FDR数据结构.pdf

85.89 KB, 下载次数: 39, 下载积分: 下载分 -2 分


2#
发表于 2021-11-25 08:17:37 | 只看该作者 来自: 浙江 来自 浙江
10=ICH Strap Base Address: 地址需要左移4bit, 也就是0x100, 20=MCH Strap Base Address, 对应的地址是0x200

回复 支持 反对

使用道具 举报

3#
发表于 2021-11-25 08:19:22 | 只看该作者 来自: 浙江 来自 浙江
10=ICH Strap Base Address, 对应的地址需要左移4位,即0x100;  20=MCH Strap Base Address, 对应的地址为0x200

回复 支持 反对

使用道具 举报

4#
发表于 2021-11-25 08:29:08 | 只看该作者 来自: 浙江 来自 浙江
网上看到有人说网卡指示灯亮,但进系统找不到网卡,原因是虽然bios中添加了gbe region,但ICH strap配置不对;
还有人说能找到网卡,但驱动无法安装成功,这是跟gbe region配置有关,替换gbe region可以解决;

以上是对相关问题的总结,希望有用。

回复 支持 反对

使用道具 举报

5#
发表于 2021-11-25 11:03:13 | 只看该作者 来自: 甘肃 来自 甘肃
tgdhrb 发表于 2021-11-25 08:29
网上看到有人说网卡指示灯亮,但进系统找不到网卡,原因是虽然bios中添加了gbe region,但ICH strap配置不 ...

这才是会玩的人  有问题可以找我聊聊

回复 支持 反对

使用道具 举报

6#
发表于 2021-11-25 13:20:32 | 只看该作者 来自: 浙江 来自 浙江
virginlulu 发表于 2021-11-25 11:03
这才是会玩的人  有问题可以找我聊聊

好呢,有问题多向你请教。

回复 支持 反对

使用道具 举报

7#
发表于 2022-4-19 14:35:51 | 只看该作者 来自: 北京 来自 北京
有H61H2-AM能上22NM的BIOS吗,谢谢

回复 支持 反对

使用道具 举报

8#
发表于 2022-5-30 19:28:21 | 只看该作者 来自: 陕西 来自 陕西
高手的帖子,看不懂,但我知道对我有用,要顶。

回复 支持 反对

使用道具 举报

9#
发表于 2022-10-17 23:10:14 | 只看该作者 来自: 北京 来自 北京
无敌强哥 发表于 2022-4-19 14:35
有H61H2-AM能上22NM的BIOS吗,谢谢



我acer h61的主板,升级bios后,能用22nm的处理器



回复 支持 反对

使用道具 举报

10#
发表于 2022-10-18 08:01:11 | 只看该作者 来自: 中国 来自 中国
无敌强哥 发表于 2022-4-19 14:35
有H61H2-AM能上22NM的BIOS吗,谢谢

https://www.chinafix.com/forum.p ... Dh8MTI5NDcyOQ%3D%3D

补充内容 (2022-10-19 20:42):
上面这个bios应该不支持h61h2-am,只能h61h2-ad上用,等我再传一个am版本的。

回复 支持 反对

使用道具 举报

11#
发表于 2022-10-19 21:09:14 | 只看该作者 来自: 北京 来自 北京
h61h2_am_22nm_ivb 4MB版本bios来了
--------------------------------------------------
       Select option for update

1 - Intel RST(e) OROM and EFI SataDriver
     OROM IRST RAID for SATA    - 11.0.0.1339
     EFI IRST RAID              - Not present
2 - Intel OROM VBIOS and EFI GOP Driver
     OROM VBIOS SNB-IVB         - 2126
     EFI GOP Driver IvyBridge   - 3.0.1016
     EFI GOP Driver SandyBridge - 2.0.1019
3 - LAN OROM PXE and EFI UNDI - Intel, RTK, BCM, QCA
     OROM Intel Boot Agent GE   - 1.3.98
     EFI Intel PRO/1000 UNDI    - 4.8.01
     OROM Realtek Boot Agent GE - 2.35
7 - Update Intel CPU MicroCode
     Ivy Bridge CPUID 0306A9    - 15
     SandyBridge CPUID 0206A7   - 28
9 - ME Analyzer
     FW ME of scanned BIOS File   8.0.4.1441 1.5MB
i - Versions, HomePages, Donate
0 - Exit
Press ENTER - Re-Scanning ALL EFI modules.
-----------------------------------------------------------

H61H2_AM_ivb.bin

4 MB, 下载次数: 0, 下载积分: 下载分 -2 分


回复 支持 反对

使用道具 举报

12#
发表于 2023-3-28 11:46:11 | 只看该作者 来自: 马来西亚 来自 马来西亚
走过, 路过, 看过, 学过,

回复 支持 反对

使用道具 举报

13#
发表于 2023-9-25 09:23:50 | 只看该作者 来自: 河南洛阳 来自 河南洛阳
刚好能用到,感谢大佬

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长提醒 上一条 /1 下一条

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图


芯片搜索

快速回复