posliu
驱动牛犊
驱动牛犊
  • 注册日期2007-04-03
  • 最后登录2007-04-12
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
阅读:3113回复:11

求助:关于BIOS的几个菜鸟级问题

楼主#
更多 发布于:2007-04-03 16:23
求助:怎么样把自己机子上的BIOS程序给弄出来啊? 请高手指教!
BIOS不是从内存的F000:FFF0处开始执行的吗?那么它POST自检的时候检测内存条怎么检测啊?
能否详细讲解一下BIOS一开始的工作过程一直到初始化中断向量表和BIOS数据区域。
小弟不懂,还望各位大侠指教一二
谢谢!
deedbox
驱动牛犊
驱动牛犊
  • 注册日期2005-09-20
  • 最后登录2010-08-16
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望89点
  • 贡献值0点
  • 好评度38点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-04-05 08:43
1.可以使用工具AMIFLASH或AWDFLASH他本身是烧写程序同时也支持读取.
2.南桥会有个机制把F000H段的地址应射到FLASH上去,这样BIOS在FLASH上就可以运行了!
3.至于检测内存就是写55AA在读出的方法,但是他还有一个容量的测试方法,比较有意思,不过打字太多就不说了!
4.工作流程!怎么说!AMI是出过CORE7的流程图的一看就知道!CORE8的时候看ELINK就什么都明白!
5.中断向量和BDA是随着使用随着填写的
posliu
驱动牛犊
驱动牛犊
  • 注册日期2007-04-03
  • 最后登录2007-04-12
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-04-11 09:51
谢谢!学习学习!
还有个问题: 我用那个程序读取出来的BIOS程序有256K,而F000H段的的大小只有64K,那这两者之间有什么联系吗?也就是说映射机制是怎样的?
大侠 有什么这方面的书推荐一下吗? 谢谢
 
deedbox
驱动牛犊
驱动牛犊
  • 注册日期2005-09-20
  • 最后登录2010-08-16
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望89点
  • 贡献值0点
  • 好评度38点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-04-18 08:29
着和南桥的影射有关系,启动的时候只影射了着64K过来!当进入保护模式的时候BIOS是在4G的高端的,AMIBIOS的FLASH工具是借助SMI访问4GB空间完成读写的!不知道这样说你能理解多少!

至于书可以说没有,介绍!!不如去看南北桥的DATASHEET把!
hunbalo
驱动牛犊
驱动牛犊
  • 注册日期2004-04-21
  • 最后登录2020-10-20
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望124点
  • 贡献值0点
  • 好评度85点
  • 原创分1分
  • 专家分0分
  • 社区居民
地下室#
发布于:2007-05-05 00:03
bios是译码到4gb空间最高的1MB的,386以后的cpu设计时也是从fffffff0开始执行第一条指令,但是主板刚上电时从硬件上保证了4gb的最高1mb和最低1mb重叠,切换到保护模式后,译码就在4gb高端的1mb地址了,此时给bios芯片加12V的电,直接对高1mb的地址进行操作即可实现flash擦写了,那本bios研发圣经里有介绍。
xcxin
驱动牛犊
驱动牛犊
  • 注册日期2006-06-25
  • 最后登录2009-08-03
  • 粉丝0
  • 关注0
  • 积分102分
  • 威望21点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-05-16 12:49
楼上的,写bios可不是这么简单.

首先要看你是spi还是fwh的芯片.一般台湾的公司大都喜欢fwh,intel自己喜欢spi....而intel的crb板一般两者都有.

然后要有相应chip的spec,不同的chip是不一样的.

然后按照相应chip的写方法来操作.很复杂的.

一般有些是再SMI里写,有些是直接写.看需求了.
hunbalo
驱动牛犊
驱动牛犊
  • 注册日期2004-04-21
  • 最后登录2020-10-20
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望124点
  • 贡献值0点
  • 好评度85点
  • 原创分1分
  • 专家分0分
  • 社区居民
6楼#
发布于:2007-05-19 23:24
引用第5楼xcxin于2007-05-16 12:49发表的  :
楼上的,写bios可不是这么简单.

首先要看你是spi还是fwh的芯片.一般台湾的公司大都喜欢fwh,intel自己喜欢spi....而intel的crb板一般两者都有.

然后要有相应chip的spec,不同的chip是不一样的.
.......

现在想来是越来越复杂了,呵呵,我也没做过,我看有的flash芯片是lpc接口的,fwh也是一种接口么?
但从读的方面想来是上电肯定得译码到x86的程序入口了.(0xfffffff0)啥的.
xcxin
驱动牛犊
驱动牛犊
  • 注册日期2006-06-25
  • 最后登录2009-08-03
  • 粉丝0
  • 关注0
  • 积分102分
  • 威望21点
  • 贡献值0点
  • 好评度10点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-05-20 19:57
fwh = Firmware Hub  是一种flash芯片的接口. 主流的chipsets们都会提供对fwh接口的支持. 而从FW这个名字上也能看出主要用于外接flash芯片,主要是system bios chip.常用的fwh芯片包括Intel 82802AC等.

而SPI则是另一种流行的用于接bios的标准,spi的管脚少很多,速度也不慢.Intel自己很是喜欢.大量再Intel original的主板上采用.Intel自己很喜欢用SST25LF040A这个SPI芯片.
bini
驱动牛犊
驱动牛犊
  • 注册日期2002-05-12
  • 最后登录2009-05-13
  • 粉丝0
  • 关注0
  • 积分221分
  • 威望32点
  • 贡献值0点
  • 好评度22点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2007-05-25 15:56
想看BIOS代码容易,找个行内的人就行,dump BIOS代码太麻烦.
现在的计算机启动是 F000:FFF0,启动时这行代码是经过Intel X86特殊处理的.实际是它基本上会去读4GB FFFFFFF0 地址,这个地址送给Host桥,Host桥再解码这个地址,看是送给LPC还是SPI还是FWH还是PCI总线上去.(这个一般Chipset产商会有硬件Pin给你下拉或下拉做选择).一般跟据现行的BIOS架构,
第一个跳转,一般是跑到BBLock,就是check你BIOS的内容,看是否正确,如不正确被破坏,也可以从软盘之类的启动恢复BIOS....

==========================
学BIOS,不如看Spec,CPU执行第一条指令,各位看过过IA32 Arch第三本没有?那可是免费的,有价值的资料.
http://www.ufoit.com 计匠网
beervista
驱动牛犊
驱动牛犊
  • 注册日期2007-06-19
  • 最后登录2008-04-23
  • 粉丝0
  • 关注0
  • 积分60分
  • 威望7点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2007-10-16 08:39
想读到真正的原始BIOS最直接的方法就是将BIOS芯片取下放到编程器上去读 因为你从内存里读到的BIOS代码可能是已经被加解密过的,并非原始的代码。
chunbee
驱动牛犊
驱动牛犊
  • 注册日期2004-09-01
  • 最后登录2009-12-22
  • 粉丝0
  • 关注0
  • 积分130分
  • 威望13点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2007-12-19 09:05
引用第5楼xcxin于2007-05-16 12:49发表的  :
楼上的,写bios可不是这么简单.

首先要看你是spi还是fwh的芯片.一般台湾的公司大都喜欢fwh,intel自己喜欢spi....而intel的crb板一般两者都有.

然后要有相应chip的spec,不同的chip是不一样的.
.......


不管什么芯片,是FWH还是SPI接口,只要你能操作高端内存(4G下面2M),剩下的仅仅是每种芯片读写的时序不一样。貌似没那么复杂,不要吓着别人了哈
原来BIOS就那么几行代码啊
keronzy
驱动牛犊
驱动牛犊
  • 注册日期2005-02-01
  • 最后登录2009-10-14
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2007-12-25 10:42
如果在dos下 面 ,先打开4g,进入保护模式,然后 参看南桥datasheet,在lpc桥里,看bios enable位,看bios被影射到那个地址 ,一般intel的是0xffffffff,看看的的bios是几M的,如果是2M的(256K)从0xFFFFFFFF读256k到你要保存的文件。
游客

返回顶部