欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

BIOS实践:关注研发细节

最编程 2024-01-10 22:37:27
...

要说BIOS研发,就从一个新产品研发开始吧,一个项目确定立项后,还没进入初板打板前,硬件工程师已经在画PCB原理图,BIOS工程师也已经提前拿到了芯片相关文档,并从供应商那拿到了sourcecode,作为BIOS工程师,需要先看看这个新的芯片的datasheet文档,同时也会有一份BIOS porting guide,这个比较重要,多看看。另外就是要先熟悉原理图第一张,PC的配置,soc外围都有什么设备。了解了这些,就开始修改sourcecode了。

第一步:打通第一条指令

初版主板在工厂调试的时候是需要上电开机的,当然要跑BIOS前提是EC和硬件工程师先调试成功,他们主要是调上电时序,上电时序对了,就看BIOS了,这时候第一版要debug版的,不要release版,我们要看是否有输出debug信息(不是乱码的),输出信息了说明进入了BIOS。AMI的sourcecode据说不用怎么改就可以进OS了,不过phoenix和insyde的sourcecode就要慢慢来了,他俩我觉得主要是性价比高吧,所以很多厂商都在用,小批量的小厂商好像很多都是AMI,包括工控的。

怎么打通第一条指令呢,首先得去配ME,ME一般有两种工作模式,一种是NM模式,可以调控电源,功能比较多,一种是SiEn模式,只是支持基本的上电功能,调试的时候,常用SiEn模式,第二点PCIE Express这个也得配好,X4还是X几看文档,第三点,添加BIOS ROM芯片型号,不止ME里面需要添加,代码里面也要添加,具体看BIOS ROM芯片文档,第四点,输入输出模式没什么大的硬件改动,一般改为single模式就行。还有一点,硬件工程师会给一份GPIO表,对照着填入相应值就行,这一块一般不会改动太大。

第二步:点亮

打通第一条指令,这只是刚开始,初版打板,你的BIOS能点亮主板最好点亮,打通第一条指令后就是配置memory,memory看用哪个厂家的,看文档,需要写代码,一开始最好先写死,有时候一个项目要用到好几个厂家的memory,初版用的什么,就先写什么。代码写完了,还需要修改一个内存配置文件,这个配置文件很重要,怎么修改看原理图和文档,你还要根据原理图填写一系列的值。同时BIOS工程师还需要的修改的有:Gop配置文件,不配置不能显示。USB port要打开,不然键盘都用不了,无法操作。

第三步:完善功能

点亮了之后就是完善功能了,什么不能用就修改什么,让它能用,需要什么功能就添加什么功能,测试部门会不断的测试,有什么问题解决什么问题,这部分涉及的东西很多,后续再细说。

DEBUG方法

  1. 最简单的,接debug卡,看停在什么地方。
  2. 复现问题,确认是BIOS的问题不,是的话先有个思路,怎么debug好,编译一版debug的BIOS,接串口线看日志,看挂在哪,找出问题,有时候你可以自己写一些debug信息,如果你能确定是哪出了问题,可以给cmos写值,看有没有变化。
  3. 与其他机型对比,一家公司总不可能只有一个项目吧,总有很多成功的案例,看有没有相似的。
  4. 与别家机器对比,这个圈子不大,能帮助可以相互帮助下,当然,让上层去沟通是不可能的,只能自己找熟人问,别人说是情谊,不说也是本分,所以别抱太大希望,要是别人已经量产了,可以弄台机子瞧瞧。
  5. 不同条件下对比,缩小问题的范围,尽量不要打补丁,找到rootcause
  6. 找供应商,这点很重要,很多问题其实对于BIOS工程师真不好解,最好让供应商派人support。

第四步:后期维护

一个项目SS了,但是代码还是得维护,偶尔还有点小问题,或者有漏洞需要修补,或者更新个ME啥的,亦或者客制化一下,后期维护虽然事情少,但是一样很重要。