一种BIOSPOST的常规模式和诊断模式切换方法与流程

文档序号:18524749发布日期:2019-08-24 10:07阅读:1426来源:国知局
一种BIOS POST的常规模式和诊断模式切换方法与流程

本发明属于计算机的技术领域,尤其涉及一种biospost的常规模式和诊断模式切换方法。



背景技术:

接通微机的电源,系统将执行一个自我检查的例行程序。这是bios(basicinputoutputsystem,基本输入输出系统)功能的一部分,通常称为post——上电自检(poweronselftest)。

在biospost的早期过程中,特别是内存初始化之前和初始化过程中,系统bios能够提供的诊断手段和诊断信息非常有限,业界常用的做法是硬件点灯,通过bmc(基板管理控制器baseboardmanagementcontroller)提供bios相关的诊断信息等。这些做法的可以提供简单的诊断信息,无法提供比较完整和全面的post过程上下文信息供诊断和定位。

对于异常问题和缺陷的定位和维护,特别是还在线上运行的产品上曝出来的问题,定位分析和诊断都存在很大的难度。带串口诊断信息的版本跟正式发布的版本,编译参数是互斥的,同一个版本无法在带内自由切换。



技术实现要素:

本发明的目的在于提供一种在线诊断、有效降低运维时间成本、二合一模式的biospost的常规模式和诊断模式切换方法。

本发明提供一种biospost的常规模式和诊断模式切换方法,包括如下步骤:

s1:biospost是否需要切换诊断模式;

s2:如果需要诊断模式,通过外切换为诊断模式;当切换完成后,系统上电,中央处理器从指定的地址执行诊断模式的bootblock代码;在诊断模式下,bootblock代码从串口打印post诊断上下文信息;

s3:如果不需要诊断模式post,系统默认是常规模式post,常规模式下系统不会输出串口诊断信息;

s4:经过步骤s2或s3后,统一执行mainblock代码,直到post流程结束。

优选地,针对步骤s1,biospost的biosbin文件结构按照post阶段,分成两个部分bootblock部分和mainblock部分,上述步骤针对bootblock部分是否需要切换诊断模式。

优选地,所述bootblock部分和mainblock部分放在flash上固定的位置,共同形成一个完整的bios。

优选地,步骤s2的通过外切换为诊断模式,具有两种方法:第一种是硬件上南桥切换成跳帽,用跳帽切换南桥状态;第二种是硬件上将南桥的gpio拉到bmc控制器的gpio上,通过bmc控制器进行控制。

优选地,步骤s3的常规模式post,cpu从默认地址执行常规模式bootblock代码。

优选地,bootblock部分的文件大小采用64kbyte大小的二进制文件。

优选地,bootblock部分的文件大小采用128kbyte或256kbyte大小的二进制文件。

优选地,两份功能不同的bootblock代码可以同时储存在一块flash上,并且在不同的条件下,可以分别被执行

本发明一种biospost的常规模式和诊断模式切换方法,当需要biospost比较完整的诊断信息的时候,带外切换南桥状态使系统运行诊断模式的bios,通过串口打印出完整的上下文信息;本发明带外(out-of-band)开关切换,诊断版本和常规版本在编译创建时是互斥的编译参数下编译生成;本发明在线诊断,有效降低运维时间成本,二合一的模式,不用额外增加硬件用料,丰富的诊断信息,为问题定位提供有价值的信息。

附图说明

下面将以明确易懂的方式,结合附图说明优选实施方式,对本发明予以进一步说明。

图1所示为本发明biospost的biosbin文件结构按照post阶段分成两部分的示意图;

图2所示为本发明biospost的常规模式和诊断模式切换方法的示意图。

具体实施方式

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。

为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。

下面以具体实施例详细介绍本发明的技术方案。

如图1所示,本发明一种biospost的常规模式和诊断模式切换方法,biospost的biosbin文件结构按照post阶段,分成两个部分bootblock部分和mainblock部分。其中,bootblock部分负责从上电到内存初始化和内存空间建立这段post过程;mainblock部分负责从内存空间建立完成到整个post结束。

bootblock部分和mainblock部分放在flash上固定的位置,共同形成一个完整的bios。

常规的bootblock部分和带串口诊断信息的bootblock部分,这两份是互斥的编译参数下编译生成的,所以需要准备两份bootblock部分二进制文件;一份常规不带串口诊断信息的bootblock二进制文件,一份是带串口诊断信息的bootblock二进制文件。

bootblock部分的文件大小的考虑,本发明bootblock部分的文件大小采用64kbyte大小的二进制文件,在其他实施例中bootblock部分的文件大小采用128kbyte或256kbyte大小的二进制文件。

过硬件切换的机制,使得这两份功能不同的bootblock代码可以同时储存在一块flash上,并且在不同的条件下,可以分别被执行。

如图1所示,本发明biospost的常规模式和诊断模式切换方法,包括如下步骤:

s1:biospost是否需要切换诊断模式;

s2:如果需要诊断模式,通过外切换为诊断模式;当切换完成后,系统上电,中央处理器(cpu)从指定的地址(本实施例的指定的地址为0xfffe_fff0)执行诊断模式的bootblock代码;在诊断模式下,bootblock代码从串口打印post诊断上下文信息;

s3:如果不需要诊断模式post,系统默认是常规模式post,常规模式下系统不会输出串口诊断信息;

s4:经过步骤s2或s3后,统一执行mainblock代码,直到post流程结束。

针对步骤s1,biospost的biosbin文件结构按照post阶段,分成两个部分bootblock部分和mainblock部分,上述步骤针对bootblock部分是否需要切换诊断模式。

其中步骤s2的通过外切换为诊断模式,具有两种方法:第一种是硬件上南桥(是基于个人计算机主板芯片组架构中的其中一枚芯片,南桥设计用来处理低速信号,通过北桥与中央处理器联系)切换成跳帽,用跳帽切换南桥状态;第二种是硬件上将南桥的gpio拉到bmc控制器的gpio上,通过bmc控制器进行控制。

步骤s3的常规模式post,cpu从默认的0xffff_fff0地址执行常规模式bootblock代码。

本发明一种biospost的常规模式和诊断模式切换方法,当需要biospost比较完整的诊断信息的时候,带外切换南桥状态使系统运行诊断模式的bios,通过串口打印出完整的上下文信息;本发明带外(out-of-band)开关切换,诊断版本和常规版本在编译创建时是互斥的编译参数下编译生成;本发明在线诊断,有效降低运维时间成本,二合一的模式,不用额外增加硬件用料,丰富的诊断信息,为问题定位提供有价值的信息。

应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,但是本发明并不限于上述实施方式中的具体细节,应当指出,对于本技术领域的普通技术人员来说,在本发明的技术构思范围内,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,对本发明的技术方案进行多种等同变换,这些改进、润饰和等同变换也应视为本发明的保护范围。

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