一种基于国产处理器平台的UEFI固件启动模式切换方法技术

技术编号:34841010 阅读:17 留言:0更新日期:2022-09-08 07:37
本发明专利技术涉及一种基于国产处理器平台的UEFI固件启动模式切换方法,属于计算机领域。本发明专利技术利用设置在Flash上固定地址的标志位来判断用户需要的启动模式,正常使用时串口不输出打印信息,出现异常情况时进入BIOS设置界面,将串口输出打开,并将此时的设定通过SPI填写回Flash上的位置,记录后续的串口打印输出模式。最终实现只烧录一次固件,就可以动态地控制固件启动时两种串口打印模式之间的切换。本发明专利技术针对国产计算机启动时的不稳定性,设计了能够由操作人员设置的启动时串口打印模式切换方法,使得无论是在产品交付前的开发测试阶段,还是产品交货后的使用维护阶段,使用者可以通过简单的设置,获取计算机固件的启动日志信息。志信息。志信息。

【技术实现步骤摘要】
一种基于国产处理器平台的UEFI固件启动模式切换方法


[0001]本专利技术属于计算机领域,具体涉及一种基于国产处理器平台的UEFI固件启动模式切换方法。

技术介绍

[0002]计算机基本输入输出系统固件(BIOS)承担着启动主板和初始化硬件设备的任务。随着国产计算平台的飞速发展,主板上的设备日益丰富,整机启动时会遇到多种与处理器、内存、外设等相关的问题。此时需要固件提供串口等打印信息来进行诊断定位。带有详细串口打印信息的版本可称为Debug版固件;但是出于整机启动速度和客户体验的考虑,产品级固件都会关闭串口打印,称为release版。
[0003]主板上的串口,可以将固件启动过程中,各硬件设备的初始化情况和一些突发异常信息打印并记录下来。现有的固件启动模式,其串口打印在启动时的输出模式是固定的,只能在输出打印信息(Debug)模式和不输出打印信息(Release)模式,两者取其一。前者能够输出有效的打印信息,方便开发人员分析问题,后者不输出打印信息,能够节省启动时间。
[0004]这样非此即彼的串口打印输出模式,存在两个问题。一是在研发阶段,如果为了节省时间烧录了Release模式,一旦出现问题还需要重新烧录Debug模式的固件,操作耗时且容易丢失之前的异常现象,降低了开发效率。二是作为产品出货时,往往选择串口不输出打印信息以提高启动速度,因此当产品在生产现场或客户现场出现问题或发生故障时,此时的串口无法输出打印信息,开发人员也获取不了日志。

技术实现思路

[0005](一)要解决的技术问题
[0006]本专利技术要解决的技术问题是如何提供一种基于国产处理器平台的UEFI固件启动模式切换方法,以解决现有的固件启动模式,其串口打印在启动时的输出模式是固定的,只能选择输出打印信息(Debug)模式或不输出打印信息(Release)模式,无法动态切换所带来的问题。
[0007](二)技术方案
[0008]为了解决上述技术问题,本专利技术提出一种基于国产处理器平台的UEFI固件启动模式切换方法,该方法包括如下步骤:
[0009]S101、在定义固件大小的文件.fdf中声明出一处地址,作为判断固件启动时是否需要串口打印的标记;
[0010]S102、对S101中定义的地址赋予DATA类型初值,该DATA内容的值在固件编译时被静态确定,在系统启动时,在固件设置界面通过擦写Flash对应位置动态修改;该初值作用是为串口是否输出打印信息提供默认值,以确定在启动至进入BIOS设置界面前,这个未进行人为修改设置前阶段的默认输出模式;
[0011]S103、指定固件调用的串口输出库文件DualDebugPrintLib;
[0012]S104、在DualDebugPrintLib中的具体的串口打印相关函数DualDebugPrintMarker中声明指针,指向S102中DATA类型初值对应Flash的地址,读取十六进制数值内容;十六进制数值对应不同的串口打印操作模式D和R;
[0013]S105、在固件启动过程中,当某处调用打印时,若S104中的指针内容解析为D模式则将打印信息从串口正常输出;在固件启动过程中,当某处调用打印时,若S104中的指针内容解析为R模式,则串口无打印输出;
[0014]S106、对于所有需要调用串口打印的文件,以及所有需要添加到串口打印的信息,修改其在.inf中的串口打印库文件调用,用库文件DualDebugPrintLib替换原有的库文件;
[0015]S107、当需要修改串口打印输出模式时,进入BIOS设置界面,通过选项修改S102所描述启动默认值;
[0016]S108、当选择保存BIOS设置时,选项被记录的同时,在与选项设置关联的回调函数中,通过SPI执行Flash写操作,将选项对应的打印信息输出模式写到S101中定义的地址上。
[0017]进一步地,.fdf文件决定参加编译的文件或数据内容,经过编译生成二进制固件,最终烧录到Flash中。
[0018]进一步地,.fdf定义的固件Layout一定,从而能确定声明出的地址所对应Flash的地址。
[0019]进一步地,.fdf可定义DATA类型包括固件卷类型FV、十六进制数据类型DATA、UEFI驱动类型INF和编译后的二进制文件FILE FREEFORM。
[0020]进一步地,所述步骤S102中的DATA类型初值为十六进制数据类型。
[0021]进一步地,所述步骤S103中,Debug和Release两种串口打印输出模式调用同一串口输出库文件DualDebugPrintLib。
[0022]进一步地,所述步骤S104中,十六进制数值为“0x44”和“0x52”,“0x44”对应D模式,“0x52”对应R模式,根据其值为“0x44”或“0x52”,分别执行对应的串口打印操作:当为D时正常调用串口进行打印输出,当为R时不做操作跳出执行。
[0023]进一步地,所述步骤S106中,用库文件DualDebugPrintLib替换原有的库文件DebugPrintLib或DebugPrintNullLib。
[0024]进一步地,所述步骤S107中的选项能够改变编译时填写在S101中定义文件中地址上的内容,并随着改动即时生效。
[0025]进一步地,该方法应用于国产处理器平台飞腾S2500、D2000或FT2000plus。
[0026](三)有益效果
[0027]本专利技术提出一种基于国产处理器平台的UEFI固件启动模式切换方法,结合
技术介绍
,本专利技术针对国产计算机启动时的不稳定性,设计了能够由操作人员设置的启动时串口打印模式切换方法。使得无论是在产品交付前的开发测试阶段,还是产品交货后的使用维护阶段,使用者可以通过简单的设置,获取计算机固件的启动日志信息,对于现场故障诊断和远程支持而言,都有重要意义。
附图说明
[0028]图1为本专利技术的基于国产处理器平台的UEFI固件启动模式切换方法流程图。
具体实施方式
[0029]为使本专利技术的目的、内容和优点更加清楚,下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。
[0030]本专利技术利用设置在Flash上固定地址的标志位来判断用户需要的启动模式,正常使用时串口不输出打印信息,出现异常情况时进入BIOS设置界面,将串口输出打开,并将此时的设定通过SPI填写回Flash上的位置,记录后续的串口打印输出模式。最终实现只烧录一次固件,就可以动态地控制固件启动时两种串口打印模式之间的切换。
[0031]本专利技术针对国产处理器平台,利用Flash可读可写且在启动后被映射到固定内存地址的特点,将判断串口输出模式的标志位存在其上某一固定地址。当选择设置是/否输出打印信息时,将对应模式的标志位写到Flash上。在串口输出的库文件中,在每次调用打印函数里的串口输出前,先利用指向上述标志位地址的指针读出标志位的内容,判断当前本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于国产处理器平台的UEFI固件启动模式切换方法,其特征在于,该方法包括如下步骤:S101、在定义固件大小的文件.fdf中声明出一处地址,作为判断固件启动时是否需要串口打印的标记;S102、对S101中定义的地址赋予DATA类型初值,该DATA内容的值在固件编译时被静态确定,在系统启动时,在固件设置界面通过擦写Flash对应位置动态修改;该初值作用是为串口是否输出打印信息提供默认值,以确定在启动至进入BIOS设置界面前,这个未进行人为修改设置前阶段的默认输出模式;S103、指定固件调用的串口输出库文件DualDebugPrintLib;S104、在DualDebugPrintLib中的具体的串口打印相关函数DualDebugPrintMarker中声明指针,指向S102中DATA类型初值对应Flash的地址,读取十六进制数值内容;十六进制数值对应不同的串口打印操作模式D和R;S105、在固件启动过程中,当某处调用打印时,若S104中的指针内容解析为D模式则将打印信息从串口正常输出;在固件启动过程中,当某处调用打印时,若S104中的指针内容解析为R模式,则串口无打印输出;S106、对于所有需要调用串口打印的文件,以及所有需要添加到串口打印的信息,修改其在.inf中的串口打印库文件调用,用库文件DualDebugPrintLib替换原有的库文件;S107、当需要修改串口打印输出模式时,进入BIOS设置界面,通过选项修改S102所描述启动默认值;S108、当选择保存BIOS设置时,选项被记录的同时,在与选项设置关联的回调函数中,通过SPI执行Flash写操作,将选项对应的打印信息输出模式写到S101中定义的地址上。2.如权利要求1所述的基于国产处理器平台的UEFI固件启动模式切换方法,其特征在于,.fdf文件决定参加编译的文件或数据内容,经过编译生成二进制固件,最终烧录到Flash中。3.如权利要求1所述的基于国产处理器平台...

【专利技术属性】
技术研发人员:王站王浩然尹宁宁濮约刚张明庆袁晓光
申请(专利权)人:北京计算机技术及应用研究所
类型:发明
国别省市:

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

1