一种基于UEFI标准的计算机系统上电自检时的快速显示状态信息方法及系统与流程

文档序号:11729266阅读:412来源:国知局
一种基于UEFI标准的计算机系统上电自检时的快速显示状态信息方法及系统与流程

本发明涉及基于uefi标准的计算机系统领域,具体涉及一种基于uefi标准的计算机系统上电自检时的快速显示状态信息方法及系统。



背景技术:

服务器是在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等要求非常高的提供计算服务的设备。

目前服务器的开发商都是采用uefibios对服务器系统硬件及相关功能进行初始化,并引导进入操作系统。基于uefi标准,uefi总共有sec,pei,dxe,bds四个阶段及组成部分,而到了bds阶段uefi才开始打开显示控制器进行有效输出至显示器。其中,新型uefi,全称“统一的可扩展固件接口”(unifiedextensiblefirmwareinterface),是一种详细描述类型接口的标准。这种接口用于操作系统自动从预启动的操作环境,加载到一种操作系统上。

其中sec阶段主要初始化包括设置保护模式、mtrr的初始化、mp的初始化、cacheasram的初始化;pei阶段主要初始化包括基本chipset初始化、cpu与cpu之间的桥接初始化、cpu的初始化、内存的初始化、board的初始化;dxe阶段主要初始化提供各种dxe驱动和efi驱动,以供dxe和bds阶段加载运行,这些驱动主要包括chipset驱动、cpu驱动、smm驱动、设备驱动、bus驱动和相关的服务驱动;bds阶段主要初始化是通过dxe提供的efi驱动去建立挂载输入输出设备(显示器、键盘、鼠标、网络等等)和加载可启动设备引导操作系统。

基于服务器组件的复杂性和强大的功能性能需求,服务器大部分的最重要的硬件和功能初始化都必须在pei,dxe阶段完成。

特别是在pei阶段,uefi要完成服务器上的核心组成部分,比如内存、cpu、管理模块,以及系统上其它的芯片组的初始化,同时系统要在dxe阶段完成所有相关功能模块和输入/输出设备的驱动加载以及系统资源的分配。pei和dxe阶段占用了非常长的时间,在整个启动服务过程中占用超过约85%的时间。恰恰在这两个非常重要的初始化阶段,uefibios并没有实现系统的显示功能。

由于系统在pei和dxe阶段占用非常长的时间,用户不能直接的看到各个模块、各个设备的检测是否正常,资源分配是否正确。如果系统在pei,dxe阶段出错死机,由于没有显示,用户不能简单快速的发现问题,解决问题,如果将服务器搬回开发商解决问题,增加成本开支。

如果服务器配置相对比较高时,所要检测的设备会更多,仅cpu和内存部分的training检测时间就需要好几分钟,再加上其它i/o设备的training检测,开机时间开过3分钟都可以成为常态。由于常规的服务器设备检测显示设备是等所有的其它设备全部检测完成,才会去初始化和检测。所以前期硬件设备检测阶段,显示接口不会有任何输出。常规的开机过程中为了辨别一些常规性的错误提示,通常会在内存异常位置加入蜂鸣器鸣叫的提示,提示内存异常,由于蜂鸣器标识异常的方法单一所以无法标识更多的异常信息。进而导致在系统开机上电到系统自检完成过程中这漫长的几分钟时间用户只能等,而不知道系统是否在正常的运行。一旦遇到蜂鸣器不能给出提示的不显示问题,用户也无法了解系统到底停在了哪个阶段。这些问题严重影响服务器给到用户的体验。

随着信息技术,互联网和云计算的发展,对服务器需求越来越多,性能越来越强大,功能越来越完善,基于上述问题,如何让服务器开机上电后,马上就有显示输出并可以显示出当前的状态信息是非常重要的。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种基于uefi标准的计算机系统上电自检时的快速显示状态信息方法,在基于uefi标准的计算机系统的上电自检过程中,将当前关键位置及其对应的状态信息完整的显示出来。

本发明要解决的技术问题在于,针对现有技术的上述缺陷,提供一种基于uefi标准的计算机系统上电自检时的快速显示状态信息系统,在基于uefi标准的计算机系统的上电自检过程中,将当前关键位置及其对应的状态信息完整的显示出来。

本发明解决其技术问题所采用的技术方案是:提供一种基于uefi标准的计算机系统上电自检时的快速显示状态信息方法,该基于uefi标准的计算机系统在上电自检时依次进入pei阶段和dxe阶段,该快速显示状态信息方法包括步骤:建立第一显示程序和对应的显示模块接口;在pei阶段的各模块通过显示模块接口,调用第一显示程序,用于显示各模块的状态信息;建立第二显示程序和对应的显示驱动接口;在dxe阶段的各驱动通过显示驱动接口,调用第二显示程序,用于显示各驱动的状态信息。

其中,较佳方案是:该基于uefi标准的计算机系统包括一显示控制器,并通过显示控制器与显示器连接;其中,在pei阶段的各模块通过显示模块接口,调用第一显示程序,在显示器上显示各模块的状态信息;在dxe阶段的各驱动通过显示驱动接口,调用第二显示程序,在显示器上显示各驱动的状态信息。

其中,较佳方案是,建立第一显示程序或第二显示程序的步骤包括:挂载显示控制器;根据显示控制器的桥接量,分配对应级数的bus号码;根据显示控制器的内存地址寄存器,分配内存资源;根据显示控制器的i/o地址寄存器,分配输入/输出资源。

其中,较佳方案是,建立第一显示程序或第二显示程序的步骤还包括:初始化显卡硬件的配置;设置显示模式;装填字符到显存中。

其中,较佳方案是:该显示模块接口为ppi接口,该显示驱动接口为protocol接口。

其中,较佳方案是:根据工业标准pcie协议,分配对应级数的bus号码,以及分配内存资源和分配输入/输出资源。

其中,较佳方案是:该基于uefi标准的计算机系统在dxe阶段后进入bds阶段,再次初始化显卡并进行引导操作系统。

其中,较佳方案是:该基于uefi标准的计算机系统为基于uefi标准的服务器系统。

本发明解决其技术问题所采用的技术方案是:提供一种基于uefi标准的计算机系统上电自检时的快速显示状态信息系统,该基于uefi标准的计算机系统在上电自检时依次进入pei阶段和dxe阶段,该基于uefi标准的计算机系统在pei阶段包括若干模块,该基于uefi标准的计算机系统在dxe阶段包括若干驱动,该快速显示状态信息系统包括:第一显示程序,用于显示各模块的状态信息;显示模块接口,该显示模块接口与第一显示程序连接,在pei阶段的各模块通过显示模块接口,调用第一显示程序;第二显示程序,用于显示各驱动的状态信息;显示驱动接口,该显示驱动接口与第二显示程序连接,在dxe阶段的各驱动通过显示驱动接口,调用第二显示程序。

其中,较佳方案是:该基于uefi标准的计算机系统包括一显示控制器,并通过显示控制器与显示器连接;其中,在pei阶段的各模块通过显示模块接口,调用第一显示程序,在显示器上显示各模块的状态信息;在dxe阶段的各驱动通过显示驱动接口,调用第二显示程序,在显示器上显示各驱动的状态信息。

本发明的有益效果在于,与现有技术相比,本发明通过设计一种基于uefi标准的计算机系统上电自检时的快速显示状态信息方法及系统,在不需要额外增加硬件的情况下,基于uefi标准的计算机系统在上电自检时,用户就可以看到基于uefi标准的计算机系统的各关键模块或驱动状态及信息,增强和提升了用户体验;同时,可以智能显示基于uefi标准的计算机系统的电源、风扇、温度等等的基本健康信息,也可以显示管理网口的mac/ip地址,便于用户对基于uefi标准的计算机系统的管理;以及,基于uefi标准的计算机系统在上电自检过程中,如果有错误产生,可以通过错误信息迅速排错,减少成本开支。

附图说明

下面将结合附图及实施例对本发明作进一步说明,附图中:

图1是本发明快速显示状态信息方法的流程示意图;

图2是本发明建立第一显示程序和第二显示程序的流程示意图;

图3是本发明pei阶段快速显示状态信息方法的流程示意图;

图4是本发明dxe阶段快速显示状态信息方法的流程示意图;

图5是本发明快速显示状态信息系统的第一实施例的结构框图;

图6是本发明快速显示状态信息系统的第二实施例的结构框图。

具体实施方式

现结合附图,对本发明的较佳实施例作详细说明。

如图1所示,本发明提供一种基于uefi标准的计算机系统上电自检时的快速显示状态信息方法的优选实施例。其中,图1是本发明快速显示状态信息方法的流程示意图。

一种基于uefi标准的计算机系统上电自检时的快速显示状态信息方法,该基于uefi标准的计算机系统在上电自检时依次进入pei阶段和dxe阶段,该快速显示状态信息方法包括步骤:

建立第一显示程序和对应的显示模块接口;在pei阶段的各模块通过显示模块接口,调用第一显示程序,用于显示各模块的状态信息;

建立第二显示程序和对应的显示驱动接口;在dxe阶段的各驱动通过显示驱动接口,调用第二显示程序,用于显示各驱动的状态信息。

根据实际需要,在基于uefi标准的计算机系统的biospost过程中,对各关键节点的状态和信息进行定义,并将显示输出指令嵌入到基于uefi标准的计算机系统的biospost过程中的各关键位置;进而,在基于uefi标准的计算机系统开机过程中可以将当前biospost过程的位置以及状态信息完整的显示出来。

快速显示状态信息方法的具体步骤如下:

s11、进入pei阶段;

s12、建立第一显示程序和对应的显示模块接口;

s13、在pei阶段的各模块通过显示模块接口,调用第一显示程序,用于显示各模块的状态信息。

s21、进入dxe阶段;

s22、建立第二显示程序和对应的显示驱动接口;

s23、在dxe阶段的各驱动通过显示驱动接口,调用第二显示程序,用于显示各驱动的状态信息。

其中,该pei阶段中的模块主要包括cpu2cpu桥模块、cpu模块、内存模块、系统管理模块、系统安全模块、计算机系统上其它的芯片组模块和pei服务模块;该dxe阶段中的驱动主要包括chipset驱动、cpu驱动、smm驱动、设备驱动、bus驱动和dxe服务驱动。

进一步地,该基于uefi标准的计算机系统进入bds阶段,uefibios本身按照bios启动过程再次初始化显卡并进行引导操作系统。具体地,直到biospost过程的最后阶段bds阶段,再将此前初始化配置信息去除(即pei阶段和dxe阶段),进行常规的加载vbiosrom并对显示卡重新初始化,后进入bds常规的引导操作系统的阶段。其中post为poweronselftest,也就是上电自检。bios为baseinput/outputsystem,指的就是uefi。

进一步地,该基于uefi标准的计算机系统包括一显示控制器,并通过显示控制器与显示器连接。在pei阶段的各模块通过显示模块接口,调用第一显示程序,在显示器上显示各模块的状态信息;在dxe阶段的各驱动通过显示驱动接口,调用第二显示程序,在显示器上显示各驱动的状态信息。

在本实施例中,该基于uefi标准的计算机系统优选为基于uefi标准的服务器系统。

在本实施例中,该显示模块接口为ppi接口,该显示驱动接口为protocol接口。

如图2所示,本发明提供建立第一显示程序和第二显示程序的方法的较佳实施例。其中,图2是本发明建立第一显示程序和第二显示程序的流程示意图。

通过第一显示程序或第二显示程序的步骤包括:

s31、挂载显示控制器;

s32、根据显示控制器的桥接量,分配对应级数的bus号码;

s33、根据显示控制器的内存地址寄存器,分配内存资源;

s34、根据显示控制器的i/o地址寄存器,分配输入/输出资源。

进一步地,该快速显示状态信息方法还包括步骤:

s35、初始化显卡硬件的配置;

s36、设置显示模式;

s37、装填字符到显存中。

在步骤s31中,对要挂载显示控制器的pcierootport,进行设置正确的带宽,设置的带宽由显示控制器的带宽来决定。

在步骤s32中,根据工业标准pcie协议,通过显示控制器的headertype寄存器判断显示控制器是否有桥接。如果有桥接,先在pcierootport上分配第一级bus号码;再进一步基于第一级的分配原则,对第二个桥接进行bus号码的分配。如此类推,有多少桥接,就需要进行多少级的bus号码分配,并根据工业标准pcie协议,分配对应级数的bus号码。

在步骤s33中,根据工业标准pcie协议,通过显示控制器的内存地址寄存器,通过写0ffffffffh到这个寄存器,然后将读回来的值决定所需要的内存大小,然后依据所计算出来的所需要的内存大小分配内存,将此内存的基址写到这个寄存器中,然后将命令寄存器的内存位置1允许内存读写有效。

在步骤s34中,根据工业标准pcie协议,通过显示控制器的i/o地址寄存器,通过写0ffffffffh到这个寄存器,然后将读回来的值决定所需要的i/o空间大小,然后依据所计算出来的所需的i/o大小分配i/o空间,将此i/o的基址写到这个寄存器中,然后将命令寄存器的i/o位置1允许i/o读写有效。

在步骤s35中,包括步骤:1、首先通过i/o地址使能vga;2、水平和垂直扫描的同步极性选择;3、显卡内部选通i/o和内存的解码;4、然后通过扩展寄存器对vga,比如pci控制模式进行i/o、内存的访问模式进行配置;5、进行显卡解锁;6、最后初始化显卡内存。

在步骤s36中,包括步骤:1、在设置模式前,进行关闭显示功能设置,目的让以下的设置生效;2、通过vgamisc.寄存器对i/o地址(3bx或者3dx)选择、使能显存、显卡时钟频率选择、屏幕水平/垂直扫描的极性设置;3、通过vgasequential寄存器对时钟模式、字符映射选择参数进行设置;4、通过vgacrt寄存器对行,列,光标显示模式进行设置;5、通过vgaattribute/graphicscontrol寄存器对调色,像素,图形模式等进行设置;6、通过ramdac寄存器进行数模转换设置;7、加载文本模式字库,将ascii码表中的0x00-0xff放入到显存0xa0000里面去;8、清空显存0xb0000h;9、上面的设置完成之后,打开显示功能。

在步骤s37中,往显存0xb8000h里面放入所需要显示的字符,以便实现字符显示在屏幕上。

如图3和图4所示,本发明提供一种快速显示状态信息方法的较佳实施例。其中,图3是本发明pei阶段快速显示状态信息方法的流程示意图;图4是本发明dxe阶段快速显示状态信息方法的流程示意图。

建立第一显示程序对应的显示模块接口或第而显示程序对应的显示驱动接口,通过显示模块接口调用第一显示程序,以及通过显示驱动接口调用第二显示程序。

参考图3,如果用户想知道pei阶段的各模块初始化状态,用户就可以通过在各模块中对应的ppi接口调用第一显示程序,从而实现对应功能初始化状态的动态显示,即如步骤s131,实现定义及调用,在步骤s132中,根据调用显示状态信息。参考图4,如果用户想知道dxe阶段的各个驱动初始化状态,用户就可以通过在各驱动中对应的protocol接口调用第二显示程序,从而实现对应功能初始化状态的动态显示,即如步骤s231,实现定义及调用,在步骤s232中,根据调用显示状态信息。

具体地,首先根据pi和uefi规范,pei和dxe这两个阶段的功能ppi和protocol,协议接口是不可以互相调用的,所以分两步对显卡做同样的初始化工作,在pei阶段建立第一显示程序,并查找定位对应的模块,定位成功之后就该模块可以调用第一显示程序进行显示;在dxe阶段建立第二显示程序,并查找定位对应的驱动,定位成功之后就该驱动可以调用第二显示程序进行显示。

在pei阶段,设置3个入口参数,其中两个为“**peiservices”和“*this”,是uefi/pi在创建pei模块时规定需要的;另一一个入口参数参数“*string”,就是显示在屏幕上的字符,这个字符的内容是由不同的模块、不同的模块设置结果状态和根据客户/用户的需求来设定的。

另外定义六个必不可少的变量,其中“rp_bus”、“rp_dev”、“rp_fun”这三个变量确定在基于uefi标准的计算机系统系统上的显卡,是挂在芯片上哪一个pcie根端口上的,通过上述步骤s31至s34实现;其中,“displaymode”变量决定以什么样的模式显示字符。本发明支持文本和图形两种模式显示字符,其中在文本模式下的设计为,中屏幕中间通过“#”字符的集合显示开发商或者客户所需要的项目名称或者公司名称,在屏幕的底部显示pei阶段各个功能模块的状态信息,在这种模式下,还可以控制字体的颜色和字体的闪烁属性设置;如果以图形模式显示字符,本发明只支持pei状态信息,这个状态信息的显示通过“x”和“y”这两个变量确定字符显示在屏幕上的任意位置。

在dxe阶段,设置1个入口参数“*string”,就是显示在屏幕上的字符,就是显示在屏幕上的字符,这个字符的内容是由不同的驱动、不同的驱动设置结果状态和根据客户/用户的需求来设定的。

另外定义六个必不可少的变量,其中“rp_bus”、“rp_dev”、“rp_fun”这三个变量确定在基于uefi标准的计算机系统上的显卡,是挂在芯片上哪一个pcie根端口上的,通过上述步骤s31至s34实现;其中,“displaymode”变量决定以什么样的模式显示字符。显示字符的方式与pei阶段的显示字符方式一致,再次就不一一描述。

通过步骤s31至s34,系统必须先把显卡挂载上去,分配好内存,输入/输出资源之后,系统才可以和显卡做设置、数据等的传输交流;然后通过步骤s35至s36,初始化配置显卡本身的显示属性参数了;最后通过变量“x”和“y”将参数“*string”的字符显示在vga控制台上面去。

如图5和图6所示,本发明提供一种基于uefi标准的计算机系统上电自检时的快速显示状态信息系统的优选实施例。

一种基于uefi标准的计算机系统上电自检时的快速显示状态信息系统,该基于uefi标准的计算机系统在上电自检时依次进入pei阶段和dxe阶段,该基于uefi标准的计算机系统在pei阶段包括若干模块11,该基于uefi标准的计算机系统在dxe阶段包括若干驱动12,该快速显示状态信息系统包括:

第一显示程序31,用于显示各模块11的状态信息;显示模块接口21,该显示模块接口21与第一显示程序31连接,在pei阶段的各模块11通过显示模块接口21,调用第一显示程序31;第二显示程序32,用于显示各驱动12的状态信息;显示驱动接口22,该显示驱动接口22与第二显示程序32连接,在dxe阶段的各驱动12通过显示驱动接口22,调用第二显示程序32。

进一步的,该基于uefi标准的计算机系统包括一显示控制器41,并通过显示控制器41与显示器42连接;其中,

在pei阶段的各模块11通过显示模块接口21,调用第一显示程序31,在显示器42上显示各模块11的状态信息;在dxe阶段的各驱动12通过显示驱动接口22,调用第二显示程序32,在显示器42上显示各驱动12的状态信息。

以以上所述者,仅为本发明最佳实施例而已,并非用于限制本发明的范围,凡依本发明申请专利范围所作的等效变化或修饰,皆为本发明所涵盖。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1