intel平台检测Flash Rom中参数的方法技术

技术编号:14355331 阅读:176 留言:0更新日期:2017-01-08 22:37
本发明专利技术公开intel平台检测Flash Rom中参数的方法,涉及服务器技术领域,通过在PEI阶段OPMENU和OPTYPE寄存器被lock之前,先把SFDP table中的数据保存在HOB中,到DXE阶段再把数据存到EfiACPIMemoryNVS类型的内存中,通过调用驱动在应用层即可获取这些数据;本发明专利技术极大方便了获取FLASH ROM的各项参数,以便查看和程序中填写的参数是否一致;增加产品功能,减少BUG出现率,增加了产品稳定性。

【技术实现步骤摘要】

本专利技术涉及服务器
,具体的说是intel平台检测FlashRom中参数的方法。
技术介绍
在PC和服务器的设计中,通常BIOS程序存放在FLASHROM中,而且FlashRom的参数需要加入到sourcecode(源代码)中,其中涉及到很多项的具体参数。目前通常是对照ROM厂商给的SPEC,从中检索出需要的参数加入到项目中,这些参数如果有差错,有可能导致系统post过程宕机,或者产生几率性的宕机,而且通常很难发现是由于FLASHROM参数配置错误造成的问题。为了方便查看FLASHROM的参数,有必要设计一些方法来读取这些参数。FlashRom详细的参数存在于其中的SFDPTable中,需要的各种详细参数都可以在其中找到。仅仅读取FLASHRom的ID或者size是不需要访问SFDPtable的,要想得到FLASHROM详细的参数和支持的功能,就必须要通过读取SFDPTable来获得。但是intel平台对于FlashRom访问有一些限制,就是各种访问的命令需要先放在OPMENU和OPTYPE寄存器中,对应的命令才可以使用。比方说读取SFDPtable的命令是0x5A,如果OPMEUN中没有这个命令,那么就无法读取SFDP,事实是OPMENU默认确实没有0x5A,而且这两个寄存器在PEI阶段就被LOCK了,所以在进系统之后无法读到SFDPtable。
技术实现思路
本专利技术针对目前技术发展的需求和不足之处,提供一种ARM平台intel平台检测FlashRom中参数的方法。本专利技术所述intel平台检测FlashRom中参数的方法,解决上述技术问题采用的技术方案如下:所述intel平台检测FlashRom中参数的方法,其主要步骤包括:1)系统开机时在PEI阶段,OPMENU和OPTYPE寄存器被LOCK之前,保存OPMENU和OPTYPE寄存器的值,2)OPMENU和OPTYPE寄存器填入SFDPtable读命令0x5A,3)把SFDPtable数据存入自建HOB中,4)在DXE阶段把HOB中数据存入申请的一块EfiACPIMemoryNVS内存中,5)在系统中通过调用驱动,从EfiACPIMemoryNVS内存中读取数据。优选的,把SFDPtable数据存入自建HOB中,之后恢复OPMENU和OPTYPE寄存器的值,并LOCKOPMENU和OPTYPE寄存器。优选的,通过在OS端撰写软件程序和驱动,调用驱动在应用层获取SFDPtable数据。本专利技术所述intel平台检测FlashRom中参数的方法与现有技术相比具有的有益效果是:本专利技术通过在PEI阶段OPMENU和OPTYPE寄存器被lock之前,先把SFDPtable中的数据保存在HOB(handoffblock)中,到DXE阶段再把数据存到EfiACPIMemoryNVS类型的内存中,通过调用驱动在应用层即可获取这些数据;极大方便了获取FLASHROM的各项参数,以便查看和程序中填写的参数是否一致;增加产品功能,减少BUG出现率,增加产品稳定性;不增加硬件线路,完全由BIOS和OS上层软件代码配合完成,所有服务器或存储均可实现。说明书附图附图1为所述intel平台检测FlashRom中参数的方法的实施流程图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,对本专利技术所述intel平台检测FlashRom中参数的方法进一步详细说明。为了方便获取FLASHROM的各项参数,本专利技术提供了一种intel平台检测FlashRom中参数的方法,通过添加一些bioscode(bios代码)去实现,在OPMENU和OPTYPE寄存器被lock之前,先把SFDPtable中的数据保存在HOB(handoffblock)中,到DXE阶段再把数据存到EfiACPIMemoryNVS类型的内存中,这样在系统中能够通过调用驱动,在应用层获取这些数据。实施例:系统开机时,UEFIBIOS开机阶段大概分为SEC,PEI,DXE,BDS,本实施例所述intel平台检测FlashRom中参数的方法,主要包括如下步骤:1)系统开机时在PEI阶段,OPMENU和OPTYPE寄存器被LOCK之前,保存OPMENU和OPTYPE寄存器的值,2)OPMENU和OPTYPE寄存器填入SFDPtable读命令0x5A,3)把SFDPtable数据存入自建HOB中,4)在DXE阶段把HOB中数据存入申请的一块EfiACPIMemoryNVS内存中,5)在系统中通过调用驱动,从EfiACPIMemoryNVS内存中读取数据,以便查看和程序中填写的参数是否一致。附图1为所述intel平台检测FlashRom中参数的方法的流程图,如附图1所示,其具体实现过程如下:步骤一,开机在PEI阶段,OPMENU和OPTYPE寄存器被LOCK之前,保存OPMENU和OPTYPE寄存器的值;步骤二,OPMENU和OPTYPE寄存器填入SFDPtable读命令0x5A;步骤三,把SFDPtable数据存入自建HOB中;步骤四,恢复OPMENU和OPTYPE寄存器的值,并LOCKOPMENU和OPTYPE寄存器;步骤五,DXE阶段把HOB中数据存入申请的一块EfiACPIMemoryNVS内存中;步骤六,撰写软件程序和驱动在OS端,从EfiACPIMemoryNVS内存中读取SFDPtable数据。在系统开机后的PEI阶段,PCH(即南桥)的OPMENU和OPTYPE寄存器中被填入默认的值,寄存器被LOCK之前保存这两个寄存器中的值;然后在OPMENU和OPTYPE寄存器填入SFDPtable读命令0x5A,读取到SFDPtable数据后,把数据存放在一个自建的HOB中;之后恢复OPMENU和OPTYPE寄存器之前的值,在随后的BIOS程序中,OPMENU和OPTYPE寄存器会被LOCK,目的是为了防止BIOS后续程序以及OS的程序改动这两个寄存器。最后,在DXE阶段把HOB中数据(SFDPtable数据)存到EfiACPIMemoryNVS类型的内存中,这样在系统中就能够通过调用驱动,在应用层获取这些数据,以便查看和程序中填写的参数是否一致。上述具体实施方式仅是本专利技术的具体个案,本专利技术的专利保护范围包括但不限于上述具体实施方式,任何符合本专利技术的权利要求书的且任何所属
的普通技术人员对其所做的适当变化或替换,皆应落入本专利技术的专利保护范围。本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/201610645910.html" title="intel平台检测Flash Rom中参数的方法原文来自X技术">intel平台检测Flash Rom中参数的方法</a>

【技术保护点】
intel平台检测Flash Rom中参数的方法,其特征在于, 其主要步骤包括:1)系统开机时在PEI阶段,OPMENU和OPTYPE寄存器被LOCK之前,保存OPMENU和OPTYPE寄存器的值,2) OPMENU和OPTYPE寄存器填入SFDP table读命令0x5A,3)把SFDP table数据存入自建HOB中,4)在DXE阶段把HOB中数据存入申请的一块EfiACPIMemoryNVS内存中,5)在系统中通过调用驱动,从EfiACPIMemoryNVS内存中读取数据。

【技术特征摘要】
1.intel平台检测FlashRom中参数的方法,其特征在于,其主要步骤包括:1)系统开机时在PEI阶段,OPMENU和OPTYPE寄存器被LOCK之前,保存OPMENU和OPTYPE寄存器的值,2)OPMENU和OPTYPE寄存器填入SFDPtable读命令0x5A,3)把SFDPtable数据存入自建HOB中,4)在DXE阶段把HOB中数据存入申请的一块EfiACPIMemoryNVS内存中,5)在系统中通过调用驱...

【专利技术属性】
技术研发人员:郭章平
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1