CN108845834A - 计算机装置 - Google Patents
计算机装置 Download PDFInfo
- Publication number
- CN108845834A CN108845834A CN201810558334.9A CN201810558334A CN108845834A CN 108845834 A CN108845834 A CN 108845834A CN 201810558334 A CN201810558334 A CN 201810558334A CN 108845834 A CN108845834 A CN 108845834A
- Authority
- CN
- China
- Prior art keywords
- configuration
- hardware
- stage
- type
- interface function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Abstract
本发明提供一种计算机装置,包括存储介质及处理器。存储介质存储配置文件,其中配置文件用于对计算机装置中的特定类型硬件进行配置。处理器耦接存储介质并经配置以:运行基本输入输出系统,并在基本输入输出系统的运行过程中执行第一接口函数,并通过第一接口函数读取并解析配置文件;以及依据第一接口函数解析配置文件的结果配置计算机装置中的第一特定类型硬件的第一寄存器。
Description
技术领域
本发明涉及一种计算机装置,且特别涉及一种可在运行BIOS时中断并执行接口函数以配置寄存器的计算机装置。
背景技术
随着中央处理单元(central processing unit,CPU)及其他计算机硬件设备的革新,传统的基本输入输出系统(basic input output system,BIOS)逐渐暴露出其不足之处,例如,开发效率低、性能差、功能扩展性差、升级缓慢、安全性差以及不支持从硬盘2TB以上的地址引导等。传统BIOS的这些不足逐渐成为计算机系统发展的瓶颈。基于此,统一可扩展固件接口(Unified Extensible Firmware Interface,UEFI)BIOS被提出,其弥补了传统BIOS的不足,主要得益于UEFI BIOS系统的以下优点:开发效率更高、可扩展性更强、系统性能更好、安全性更高。
然而,在进行UEFI BIOS的相关研发工作(例如除错)时,若判断需要对UEFI BIOS进行修改的话,需要相关的研发人员在完成UEFI BIOS的修改后重新编译并重新发布。之后,若再次需要对UEFI BIOS进行其他修改的话,则上述流程又必须得重新编译并重新发布,从而降低了工作的效率,更延长了研发的周期和成本。
因此,对于本领域技术人员而言,如何设计一种可提升上述效率的机制实为一项重要议题。
发明内容
为了提高UEFI BIOS的可塑性及利用其对计算机装置中的寄存器进行配置的效率,本发明提供一种计算机装置,包括存储介质及处理器,其中,存储介质存储一配置文件,其中配置文件用于对计算机装置中的至少一特定类型硬件进行配置;处理器耦接存储介质并经配置以:运行一基本输入输出系统,并在基本输入输出系统的一运行过程中执行一第一接口函数,并通过第一接口函数读取并解析配置文件;以及依据第一接口函数解析配置文件的结果配置计算机装置中一第一特定类型硬件的一第一寄存器。通过本发明所提供的配置文件及接口函数,进而实现对计算机装置的硬件(例如中央处理器CPU、芯片组及外部控制器)配置进行更新,本发明提高了UEFI BIOS的可塑性(即,可在BIOS运行过程中对硬件的配置进行更改)及利用其对计算机装置中的寄存器进行配置的效率,也可提高工作效率,更降低了研发的周期和成本。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合附图作详细说明如下。
附图说明
图1是本发明实施例的计算机装置示意图。
图2是依据本发明实施例绘示的在UEFI BIOS运行过程中的不同配置阶段存取配置文件以配置寄存器的示意图。
图3是本发明实施例的由BIOS输出的串口日志提示。
【符号说明】
10:计算机装置
11:存储介质
11a:配置文件
12:处理器
T1、T2、T3、T4、T5:配置阶段
D1、D2、D3、D4、D5:数据串
21a、21b、21c、21d、21e:特定区域
具体实施方式
概略而言,本发明提出一种计算机装置,其处理器可在运行UEFI BIOS的过程中,通过特别设计的接口函数访问存储在存储介质中特定位置的配置文件,并基于配置文件的内容调整计算机装置中的某些硬件的配置。如此一来,若有对计算机装置中的某些硬件进行重新配置的需求时,可不经过例如修改、编译、发布UEFI BIOS等流程,而只需通过修改存储介质中的配置文件,例如可通过编辑配置文件的内容即可达到对计算机装置中的某些硬件进行重新配置的效果。藉此,可提升UEFI BIOS的可塑性,以及研发工作的效率并缩短研发的周期。
请参照图1,其是本发明实施例的计算机装置示意图。在一实施例中,计算机装置10包括存储介质21及处理器12。在不同的实施例中,计算机装置10可以为智能手机、个人计算机(personal computer,PC)、笔记型计算机(notebook PC)、网本型计算机(netbookPC)、平板计算机(tablet PC)、电视机、便携式装置、或便携式多媒体播放器(portablemultimedia player)等。
存储介质11可以是串口周边接口只读内存(Serial Peripheral Interface ReadOnly Memory,SPI ROM)、NAND闪存芯片、U盘或硬盘。处理器12耦接存储介质11,并可以是CPU或其他类似的处理器,但可不限于此。
在本发明的实施例中,存储介质11可用于存储配置文件11a,其中配置文件11a用于对计算机装置10中的至少一特定类型硬件进行配置,特定类型的硬件包括但不限于处理器12、芯片组(未绘示)及外围设备控制器接口(未绘示)等。而处理器12可运行BIOS(例如UEFI BIOS),并在前述BIOS的运行过程中执行第一接口函数,并通过第一接口函数读取并解析配置文件11a,以及依据第一接口函数解析配置文件11a的结果配置计算机装置10中的第一特定类型硬件中的第一寄存器。以下特列举数个实施例来具体说明本发明的精神。
为便于说明,以下暂以UEFI BIOS作为实例,但其并非用以限定本发明的实施方式。
UEFI BIOS的运行过程可大致包括安全启动阶段(简称为SEC阶段)、预可扩展固件接口初始化阶段(简称为PEI阶段)、驱动执行阶段(简称为DXE阶段)及启动设备选择阶段(简称为BDS阶段)四个阶段。在上述阶段中,SEC阶段是机器最早的启动阶段,此段时间很短;在PEI阶段中,CPU工作在保护模式32位状态,启动并初始化内存控制器,完成一些最基本的硬件芯片初始化工作;在DXE阶段中,CPU工作模式转为64位保护模式中的长模式,BIOS装载所有的硬件芯片驱动程序,完成所有硬件的初始化动作。在BDS阶段中,将根据BIOS预先设定好的启动顺序,开始启动操作系统(operating system,OS)。
在本发明的一实施例中,处理器12可在执行上述阶段中的第一阶段时,中断第一阶段中的一正执行的步骤,开始执行第一接口函数以读取并解析配置文件11a,并依据第一接口函数解析配置文件11a的结果配置计算机装置10中的第一特定类型硬件中的第一寄存器。接着,在完成配置第一寄存器后,处理器12可恢复执行第一阶段中剩余的步骤。
具体而言,研发人员可依据需求而在UEFI BIOS中设置点位(checkpoint),使得处理器12在运行至上述点位时即中断第一阶段中的一正执行的步骤,开始执行上述第一接口函数。
在不同的实施例中,第一接口函数可以有不同的实施方式。举例而言,若所考虑的第一阶段为PEI阶段,则第一接口函数可以是PEI模块对PEI模块接口(PEI module to PEImodule interface,PPI)(依据UEFI BIOS的相关规格书,PPI仅对应于PEI阶段)。对另一实施例而言,若所考虑的第一阶段为DXE阶段或BDS阶段,则第一接口函数可以是UEFI BIOS规格书中定义的“Protocol”(依据UEFI BIOS的相关规格书,“Protocol”仅对应于DXE阶段及BDS阶段)。
换句话说,通过第一接口函数的程序代码,处理器12在执行第一接口函数时可在存储介质11中的指定位置找到配置文件11a,并能够解析配置文件11a的内容,再根据解析的结果正确地对所欲配置的硬件(例如第一寄存器)进行配置。
在另一实施例中,处理器12也可在完成第一阶段之后才执行第一接口函数以读取配置文件11a并据以配置第一寄存器,并在完成配置第一寄存器之后,接续执行第二阶段。换句话说,前述点位可设置于连续的第一阶段(例如SEC阶段)及第二阶段(例如PEI阶段)之间,使得处理器12可在点位所对应的配置阶段执行第一接口函数,但可不限于此。
此外,在其他实施例中,处理器12在执行第一接口函数以完成对第一寄存器的配置之后,还可在UEFI BIOS余下的运行过程中另执行第二接口函数,并通过该第二接口函数读取并解析配置文件11a,并依据该第二接口函数解析配置文件11a的结果配置计算机装置10中第二特定类型硬件中的第二寄存器。
举例而言,假设第一寄存器及第二寄存器分别为处理器12(例如,CPU)中的特定模式寄存器(model-specific register,MSR)及芯片组(Chipset)中的寄存器,则处理器12例如可分别在PEI阶段及DXE阶段中的不同点位执行第一接口函数(例如“PPI”)及第二接口函数(例如“Protocol”)来读取存储介质11中的配置文件11a,藉以在上述点位对应的配置阶段分别配置第一寄存器及第二寄存器,但可不限于此。举例而言,除上述特定模式寄存器外,第一寄存器也可以为硬盘寄存器;除芯片组中的寄存器,如图形处理器(GraphicProcessing Unit,GPU)中的寄存器外,第二寄存器也可为计算机外围设备控制器中的寄存器,如USB控制器的寄存器。
在一实施例中,配置文件可存储在存储介质11上设置的多个特定区域中,而这些特定区域可分别对应于处理器12执行接口函数的配置阶段,并可用以存储数据串。前述数据串可包括所欲配置的寄存器的配置信息(例如,地址信息及遮罩值等)。藉此,当处理器12在不同的配置阶段执行接口函数时,即可在对应的特定区域中找到所需的数据串,并解析该数据串,再依据解析后得到的配置信息配置所欲配置的寄存器。以下将辅以图2作进一步说明。
请参照图2,其是依据本发明实施例绘示的在UEFI BIOS运行过程中的不同配置阶段存取配置文件以配置寄存器的示意图。
如图2所示,UEFI BIOS的运行过程包括诸多更具体的阶段,而在本例中可设定为在对应于配置阶段T1、T2、T3、T4及T5的时间点设置点位,藉以让处理器12可分别在配置阶段T1、T2、T3、T4及T5通过执行接口函数(例如PPI或Protocol)来读取存储介质21中的配置文件21a中的数据串D1~D5。在图2中,配置阶段T1可位于启动处理器(Boot-StrapProcessor,BSP)载入补丁(patch)后;配置阶段T2可在处理器12设置CPU特性前;配置阶段T3可在处理器12设置CPU特性后;配置阶段T4可在DXE阶段中;配置阶段T5可在启动OS之前。
在图2中,存储介质21中可包括特定区域21a、21b、21c、21d及21e,其中各特定区域21a、21b、21c、21d及21e的大小可以设定为4K字节,但本发明不限于此。在本实施例中,特定区域21a位于存储介质21中的地址可为0x100000~0x100FFF;特定区域21b位于存储介质21中的地址可为0x101000~0x101FFF;特定区域21c位于存储介质21中的地址可为0x102000~0x102FFF;特定区域21d位于存储介质21中的地址可为0x103000~0x103FFF;特定区域21e位于存储介质21中的地址可为0x104000~0x104FFF。但本发明不限于此,在一些实施例中,特定区域可为存储介质21中任意空闲的区域,例如,特定区域21a的地址可由三部分不连续的地址段共同组成。
特定区域21a、21b、21c、21d及21e可分别对应于配置阶段T1、T2、T3、T4及T5,且可分别用于存储不同的数据串D1、D2、D3、D4及D5。这些数据串D1、D2、D3、D4及D5可协同形成一配置文件,且各数据串D1、D2、D3、D4及D5可包括所欲配置的寄存器的多个配置信息(例如,地址信息及遮罩值等)。图2的实施例以存储介质21为串口周边接口只读内存(SPI ROM)为例,即是说,各数据串D1、D2、D3、D4及D5协同形成如图1所示的配置文件11a,与BIOS码存储于相同的存储介质21,但本发明不限于此,配置文件也可以存储于NAND闪存芯片、U盘或硬盘。
详细而言,当处理器12在配置阶段T1执行第一接口函数(例如PPI)时,第一接口函数可相应地读取配置文件,并访问对应于配置阶段T1的特定区域21a以取得数据串D1,解析数据串D1以取得其中的配置信息。为便于说明,以下假设图2实施例中所欲配置的寄存器皆为MSR,但其并非用以限定本发明的实施方式。
每个MSR的配置信息包括:MSR地址,占用4个字节;内核遮罩(Core mask),占用4个字节;与非遮罩(NAND mask)和或遮罩(OR mask),用于填入MSR要设置的值,其分别占用8个字节;设置顺序、标志位以及为了提高配置效率而采用字节对齐加入的保留位,占用8个字节。由此可见,配置一个MSR共需要32个字节,因此上述特定区域(如21a、21b、21c、21d或21e)可用于配置128个(即,4K/32)MSR。
详细而言,配置一个MSR所需的32个字节的用途如下所示:(1)字节0-3:MSR地址;(2)字节4-7:内核遮罩,其用以指出处理器12中的哪个内核(core)需要设置,其中的比特k对应于第k个内核(k可为0-31之间的整数),比特k为1时表示需要设置第k个内核,比特k为0时表示不需要设置第k个内核;(3)字节8:表示设置顺序,其中的比特0为1时表示从第0个内核开始依序设置内核,比特0为0时表示从最后一个内核反序设置内核,比特1至比特7为保留位;(4)字节9-15:保留字节;(5)字节16-23:NAND遮罩;(6)字节24-31:OR遮罩;其中NAND遮罩及OR遮罩用于填入MSR要设置的值。
举例而言,假设欲将处理器12中第0个内核中位于地址1440的MSR配置为080001028h,则其相应的配置信息可表征为:(1)字节0-3:00001440h(即,MSR的地址);(2)字节4-7:00000001h(即,对第0个内核进行配置);(3)字节8-15:FFFFFFFF(默认值);(4)字节16-23:FFFFFFFFFFFFFFF;(6)字节24-31:0000000080001028。在此情况下,当处理器12在配置阶段T1藉由执行第一接口函数(例如PPI)而取得数据串中的上述配置信息时,处理器12即可相应地将第0个内核中位于地址1440的MSR配置为080001028h。
举另一例而言,假设欲将处理器12中所有内核中位于地址1023的MSR的比特25写1,比特26清0,则其相应的配置信息可表征为:(1)字节0-3:00001023h(即,MSR的地址);(2)字节4-7:FFFFFFFFh(即,所有的内核);(3)字节8-15:FFFFFFFF(默认值);(4)字节16-23:Mask=Lshift64(3,25)(其代表将3的二进位值(即,11)向左移25个比特,即令比特25及26皆为1);(6)字节24-31:Data=Lshift64(1,25)(其代表将1的二进位值向左移25个比特,并与Mask作OR运算以将MSR的比特25写1,比特26清0)。在此情况下,当处理器12在配置阶段T1藉由执行第一接口函数(例如PPI)而解析数据串以取得上述配置信息时,处理器12即可相应地将所有内核中位于地址1023的MSR的比特25写1,比特26清0。
请再次参照图2,在处理器12藉由执行第一接口函数(例如PPI)而在配置阶段T1完成MSR的配置之后,处理器12可在配置阶段T2执行第二接口函数(例如PPI),而第二接口函数可相应地访问对应于配置阶段T2的特定区域21b以取得并解析数据串D2,从而依据解析数据串D2取得的配置信息来配置所欲配置的MSR。在一实施例中,配置文件可为计算机能直接运行的二进制文件,相应地,数据串也为二进制文件。
相似地,处理器12可在配置阶段T3执行第三接口函数(例如PPI),而第三接口函数可相应地访问对应于配置阶段T3的特定区域21c以取得并解析数据串D3,从而依据解析数据串D3取得的配置信息来配置所欲配置的MSR。之后,处理器12可在配置阶段T4执行第四接口函数(例如Protocol),而第四接口函数可相应地访问对应于配置阶段T4的特定区域21d以取得并解析数据串D4,从而依据解析数据串D4取得的配置信息来配置所欲配置的MSR。接着,处理器12可在配置阶段T5执行第五接口函数(例如Protocol),而第五接口函数可相应地访问对应于配置阶段T5的特定区域21e以取得并解析数据串D5,从而依据解析数据串D5取得的配置信息来配置所欲配置的MSR。
在其他实施例中,除了MSR之外,处理器12也可藉由在适当的配置阶段执行接口函数来读取并解析配置文件,并据以配置其他种类的寄存器或其他硬件参数,例如,处理器12中的微码(Microcode)、芯片组的输入输出(IO)空间配置、PCI配置空间设置或内存(memory)设置。相应地,配置文件中也可记载有描述如何配置上述各类型元件的数据串,而此数据串中各配置信息的格式可经过特别的设计,藉以让接口函数可在解析此数据串中的配置信息后对所欲配置的元件进行正确的配置。
在一实施例中,当存储介质21为U盘或硬盘时,可在该存储介质中建立一个名为“Config.cfg”的配置文件,该配置文件可经过加密处理,并可在UEFI BIOS的运行过程中被解密。
在上述配置文件中,可记载有用于配置处理器12中的微码、芯片组的IO空间配置、PCI配置空间设置或内存设置等相应的一种或多种配置信息,其中,各种配置信息的格式可例示如下。
针对MSR,其配置信息可包括:(1)MSR地址;(2)内核遮罩;(3)设置顺序及保留位;(4)数值的AND遮罩;(5)数值的OR遮罩。
针对芯片组的IO空间配置,其配置信息可包括:(1)IO地址;(2)字节宽度(1字节、2字节或4字节);(3)数值的AND遮罩;(4)数值的OR遮罩。
针对内存设置,其配置信息可包括:(1)内存地址;(2)字节宽度(2字节、4字节或8字节);(3)数值的AND遮罩;(4)数值的OR遮罩。
针对PCI配置空间设置,其配置信息可包括:(1)域段地址(segment);(2)总线编号(Bus Number);(3)装置编号(Device Number);(4)功能编号(Function Number);(5)寄存器;(6)位宽(1字节、2字节或4字节);(7)数值的AND遮罩;(8)数值的OR遮罩。
针对处理器12中的微码(MicroCode),其配置信息可包括所欲写入的微码内容。
此外,除配置信息外,数据串中还可记载对应不同配置阶段的阶段起始标记及阶段结束标记,以及对应不同类型元件的类型起始标记及类型结束标记,其中,类型起始标记及类型结束标记可记载于阶段起始标记及阶段结束标记之间,而类型起始标记及类型结束标记之间可记载相应类型元件的配置信息。藉此,当接口函数访问配置文件中的数据串时,即可藉由解析数据串的上述内容而得知应在哪个配置阶段对哪种类型的元件进行配置。
在一实施例中,数据串可表征为如下形式:
[第一阶段起始标记]
[第一类型起始标记]
(第一配置信息)
[第一类型结束标记]
[第二类型起始标记]
(第二配置信息)
[第二类型结束标记]
[第一阶段结束标记]
[第二阶段起始标记]
[第一类型起始标记]
(第三配置信息)
[第一类型结束标记]
[第三类型起始标记]
(第四配置信息)
[第三类型结束标记]
[第二阶段结束标记]
…
在以上数据串中,假设第一阶段起始标记及第一阶段结束标记对应于第一配置阶段,第一类型起始标记及第一类型结束标记对应于第一类型元件(例如MSR),而第二类型起始标记及第二类型结束标记对应于第二类型元件(例如IO空间配置)。在此情况下,当处理器12在第一配置阶段执行第一接口函数(例如PPI)时,第一接口函数可解析上述数据串以得知应在第一配置阶段时分别依据第一配置信息及第二配置信息对第一类型元件及第二类型元件进行配置。
另外,假设第二阶段起始标记及第二阶段结束标记对应于第二配置阶段,第三类型起始标记及第三类型结束标记对应于第三类型元件(例如PCI配置空间设置以及USB控制器寄存器等)。在此情况下,当处理器12在第二配置阶段执行第二接口函数(例如Protocol)时,第二接口函数可解析上述数据串以得知应在第二配置阶段时分别依据第三配置信息及第四配置信息对第一类型元件及第三类型元件进行配置。以下特举一实例以进行更为具体的说明。
在一实施例中,配置文件中的数据串可包括以下内容:
[PEI0]
[MSR]
//将第0个内核中地址为1440的MSR配置为400
[Item]1440 1 0 FFFFFFFFFFFFFFFF 400
//将第0个至第3个内核中地址为1440的MSR配置为400,先配置第3个内核,最后配置第0个内核
[Item]1440F 1 FFFFFFFFFFFFFFFF 400
[MSR-END]
[IO]
//将IO 80写80
[Item]80b FF 80
//将IO 80、81写80
[Item]80w FFFF 8080
//将IO 80、81、82、83写入80
[Item]80d FFFFFFFF 80808080
[IO-END]
[MEM]
//往内存500000的地址处写入80
[Item]500000b FF 80
[MEM-END]
[PCI]
//将域段0、总线0、装置5、功能0、寄存器54的配置空间写入0x40
[Item]0 0 5 0 54 b FF 40
[PCI-END]
[MICRO]
//将以下Microcode文件写进CPU
55 52 41 53 00 00 00 00 E2 07 17 01 B0 07 03 00
[MICRO-END]
[PEI0-END]
[PEI1]
……
[PEI1-END]
在以上数据串中,[PEI0]及[PEI1]皆为阶段起始标记,[PEI0-END]及[PEI1-END]为分别对应于[PEI0]及[PEI1]的阶段结束标记。[MSR]、[IO]、[MEM]、[PCI]及[MICRO]皆为硬件类型起始标记,而[MSR-END]、[IO-END]、[MEM-END]、[PCI-END]及[MICRO-END]分别为对应于[MSR]、[IO]、[MEM]、[PCI]及[MICRO]的硬件类型结束标记。符号“[item]”后方为配置信息,而符号“//”后方为对配置信息的解释说明。
在以上实施例中,假设[PEI0]及[PEI1]分别对应于第一配置阶段及第二配置阶段,而当处理器12在第一配置阶段执行第一接口函数而读取以上数据串时,第一接口函数即可相应地在第一配置阶段中依据记载于[PEI0]及[PEI0-END]之间的各个配置信息来配置MSR、微码、芯片组的IO空间配置、PCI配置空间设置或内存设置。以上数据串中各配置信息的格式含义可参照先前实施例中的说明。
举例而言,第一接口函数可依据记载于[MSR]及[MSR-END]之间的两条配置信息而执行以下操作:(1)将第0个内核中地址为1440的MSR配置为400;(2)将第0个至第3个内核中地址为1440的MSR配置为400,可先配置第3个内核,最后配置第0个内核。
另一举例而言,第一接口函数还可依据记载于[IO]及[IO-END]之间的三条配置信息而执行以下操作:(1)将IO 80写入80;(2)将IO 80、81写入80;(3)将IO 80、81、82、83写入80。
另外,第一接口函数还可依据记载于[MEM]及[MEM-END]之间的配置信息、记载于[PCI]及[PCI-END]之间的配置信息以及记载于[MICRO]及[MICRO-END]之间的配置信息而分别执行以下操作:(1)往内存的地址500000写入80;(2)将域段0、总线0、装置5、功能0、寄存器54的配置空间写入0x40;以及(3)将“55 52 41 53 00 00 00 00 E2 07 17 01 B0 0703 00”等微码写入CPU。
之后,当处理器12在第二配置阶段执行第二接口函数而读取以上数据串时,第二接口函数即可相应地在第二配置阶段中依据记载于[PEI1]及[PEI1-END]之间的各个配置信息(未还提供)来配置MSR、微码、芯片组的IO空间配置、PCI配置空间设置或内存设置。
U盘或硬盘等存储介质通常为文件配置表(file allocation table,FAT)等文件系统,存储空间比较大;而SPI ROM、Flash ROM或NAND闪存芯片等存储介质通常不为文件配置表FAT文件,存储空间比较小。在一实施例中,当存储介质21为SPI ROM或NAND闪存芯片时,由于在BIOS运行过程的初期可能无法解析上述配置文件,可能需要使用额外的工具(tool)将配置文件转化为二进制形式。
在一实施例中,存储于SPI ROM及NAND闪存芯片等存储介质21中的配置文件可包括以下部分:(1)字节0-5:配置阶段;(2)字节6-7:保留;(3)字节8-15:配置类型;(4)字节16-N(N为不小于16的正整数):具体配置信息(各配置信息可占32个字节);(5)字节N-(N+32):结束标记,但本发明不限于此。总之,配置信息越多,配置文件越大,N值越大。
在一实施例中,处理器12可控制BIOS输出串口日志(log)提示,用于查看所欲配置的硬件(例如MSR)是否已被正确地配置。
请参照图3,其是本发明实施例的由BIOS输出的串口日志提示。在图3中,“Core”代表被配置的MSR位于哪个内核;“msr”代表被配置的MSR地址;“AndMask”代表需要配置的AndMask值;“OrMask”代表需要配置的OrMask值;“Value”代表最终写入MSR的值。通过图3所示出的内容,相关人员即可经由“Value”来确认所欲配置的MSR是否已依需求而被配置。
在不同的实施例中,处理器12可在计算机装置10开机时载入BIOS,也可在计算机装置10从S3状态恢复时载入BIOS。当处理器12在开机时载入BIOS时,如先前实施例所提及的,BIOS的运行过程将依序经历SEC阶段、PEI阶段、DXE阶段及BDS阶段,之后将进入OS。当处理器12在S3状态恢复时载入BIOS时,BIOS的运行过程则只需经历SEC阶段及PEI阶段即进入OS,但处理器12仍可依据先前实施例中的教示而在SEC阶段中的某些配置阶段藉由执行接口函数来读取配置文件,藉以配置所欲配置的硬件。
具体而言,当计算机装置10从S3状态回复时,处理器12或芯片组中的某些寄存器可能丢失(例如,当初开机时实施的配置消失了),因此若可在计算机装置10从S3状态恢复时执行接口函数而配置指定的寄存器,将可降低计算机装置10宕机(down)的机率。从另一观点而言,此可视为是一种补丁的机制。
在一实施例中,处理器12须在完成SEC阶段之后才能访问NAND闪存芯片、U盘及硬盘,因此若存储介质21采用这三种方式实施的话,则处理器12执行接口函数的点位需设置于SEC阶段之后,方能顺利地读取存储于存储介质21中的配置文件。
在一实施例中,若所欲配置的寄存器为与CPU或硬盘有关的寄存器,则处理器12可在PEI阶段中执行接口函数以对寄存器进行配置。在另一实施例中,若所欲配置的寄存器为与芯片组、USB控制器或图形处理单元有关的寄存器,则处理器12可在DXE阶段执行接口函数以对寄存器进行配置。
综上所述,本发明实施例提出一种计算机装置,其可在BIOS的运行过程中的一或多个阶段内中断以执行特定的接口函数,并通过接口函数访问存储于存储介质中的配置文件。之后,可依据配置文件中的配置信息来配置特定的硬件(例如MSR)。如此一来,如需要更改某一硬件的配置,可不需进行例如修改、编译、发布UEFI BIOS等流程,只需编辑配置文件的内容即可达到重新配置某一硬件的效果。藉此,可简化相关的研发机制(例如减少修改硬件配置所需要经过的流程等),从而提升工作的效率;另外,提升了BIOS的可塑性,这样,即使BIOS出厂后,也可在BIOS运行过程中对硬件的配置进行更改,例如打补丁(patch)。
虽然本发明已以实施例公开如上,然其并非用以限定本发明,本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视所附权利要求书界定范围为准。
Claims (20)
1.一种计算机装置,包括:
存储介质,存储配置文件,其中该配置文件用于对该计算机装置中的至少一特定类型硬件进行配置;以及
处理器,耦接该存储介质并经配置以:
运行基本输入输出系统,并在该基本输入输出系统的运行过程中执行第一接口函数,并通过该第一接口函数读取并解析该配置文件;以及
依据该第一接口函数解析该配置文件的结果配置该计算机装置中的第一特定类型硬件的第一寄存器。
2.如权利要求1所述的计算机装置,其中该基本输入输出系统的该运行过程包括多个阶段,且该处理器经配置以:
在执行这些阶段中的第一阶段时,中断该第一阶段并执行该第一接口函数以读取并解析该配置文件;
依据该第一接口函数解析该配置文件的结果配置该第一特定类型硬件中的该第一寄存器;以及
在完成配置该第一寄存器后,恢复执行该第一阶段。
3.如权利要求1所述的计算机装置,其中该基本输入输出系统的该运行过程包括多个阶段,且该处理器经配置以:
在完成这些阶段中的第一阶段之后,执行该第一接口函数以读取并解析该配置文件;
依据该第一接口函数解析该配置文件的结果配置该第一特定类型硬件中的该第一寄存器;以及
在完成配置该第一寄存器之后,接续执行这些阶段中的第二阶段。
4.如权利要求1所述的计算机装置,其中该处理器还经配置以:
在该基本输入输出系统的该运行过程中执行第二接口函数,并通过该第二接口函数读取并解析该配置文件,并依据该第二接口函数解析该配置文件的结果配置该计算机装置中第二特定类型硬件中的第二寄存器。
5.如权利要求1所述的计算机装置,其中该配置文件包括数据串,该数据串存储于该存储介质中的特定区域并包括该第一寄存器的第一配置信息,该处理器经配置以:
执行该第一接口函数,并通过该第一接口函数访问该特定区域以读取该数据串;
解析该数据串以取得该第一配置信息;以及
依据该第一配置信息配置该第一寄存器。
6.如权利要求1所述的计算机装置,其中该基本输入输出系统的该运行过程包括多个配置阶段,该配置文件包括数据串,该数据串包括第一阶段起始标记、第一阶段结束标记、第一硬件类型起始标记、第一硬件类型结束标记、相应于该第一寄存器的第一配置信息,其中该第一阶段起始标记及该第一阶段结束标记对应于这些配置阶段中的第一配置阶段,该第一硬件类型起始标记及该第一硬件类型结束标记记载于该第一阶段起始标记及该第一阶段结束标记之间,相应于该第一寄存器的该第一配置信息记载于该第一硬件类型起始标记及该第一硬件类型结束标记之间,而该第一接口函数解析该配置文件的该结果包括该第一阶段起始标记、该第一阶段结束标记、该第一硬件类型起始标记及该第一硬件类型结束标记,该处理器在该第一配置阶段依据该第一配置信息配置属于该第一硬件类型的该第一寄存器。
7.如权利要求6所述的计算机装置,其中该数据串还包括第二硬件类型起始标记、第二硬件类型结束标记、相应于第二寄存器的第二配置信息,其中该第二硬件类型起始标记及该第二硬件类型结束标记记载于该第一硬件类型结束标记及该第一阶段结束标记之间,相应于该第二寄存器的该第二配置信息记载于该第二硬件类型起始标记及该第二硬件类型结束标记之间,而该第一接口函数解析该配置文件的该结果还包括该第二类型起始标记及该第二类型结束标记,该处理器在该第一配置阶段依据该第二配置信息配置属于该第二硬件类型的该第二寄存器。
8.如权利要求6所述的计算机装置,其中该数据串还包括第二阶段起始标记、第二阶段结束标记、第二硬件类型起始标记、第二硬件类型结束标记、相应于第二寄存器的第二配置信息,其中该第二阶段起始标记及该第二阶段结束标记对应于这些配置阶段中的第二配置阶段,该第二硬件类型起始标记及该第二硬件类型结束标记记载于该第二阶段起始标记及该第二阶段结束标记之间,相应于该第二寄存器的该第二配置信息记载于该第二硬件类型起始标记及该第二硬件类型结束标记之间,而该处理器还在该运行过程中执行第二接口函数,并通过该第二接口函数读取并解析该配置文件,以及依据该第二接口函数解析该配置文件的结果配置该第二寄存器,其中该第二接口函数解析该配置文件的该结果包括该第二阶段起始标记、该第二阶段结束标记、该第二硬件类型起始标记及该第二硬件类型结束标记,该处理器在该第二配置阶段依据该第二配置信息配置属于该第二硬件类型的该第二寄存器。
9.如权利要求1所述的计算机装置,其中该存储介质为NAND闪存芯片、U盘、串行外围设备接口只读存储器(SPIROM)或硬盘。
10.如权利要求1所述的计算机装置,其中该基本输入输出系统的该运行过程包括安全启动阶段、预可扩展固件接口初始化阶段、驱动执行阶段或启动设备选择阶段。
11.如权利要求10所述的计算机装置,其中该处理器在该安全启动阶段之后执行该第一接口函数以读取并解析该配置文件。
12.如权利要求10所述的计算机装置,其中若该第一特定类型硬件为该计算机装置的中央处理单元或硬盘,则该处理器在该预可扩展固件接口初始化阶段中执行该第一接口函数以读取并解析该配置文件。
13.如权利要求10所述的计算机装置,其中若该第一特定类型硬件为该计算机装置的芯片组、USB控制器或图形处理单元,则该处理器在该驱动执行阶段中执行该第一接口函数以读取并解析该配置文件。
14.如权利要求10所述的计算机装置,其中该第一接口函数仅对应于该预可扩展固件接口初始化阶段,或是仅对应于该驱动执行阶段及该启动设备选择阶段。
15.如权利要求1所述的计算机装置,其中该处理器还执行该第一接口函数以依据该第一接口函数解析该配置文件的该结果配置该计算机装置的中央处理单元的微码。
16.如权利要求1所述的计算机装置,其中该处理器还执行该第一接口函数以依据该第一接口函数解析该配置文件的该结果配置该计算机装置的芯片组的输入输出空间配置、PCI配置空间设置或内存设置。
17.如权利要求1所述的计算机装置,其中该处理器在该计算机装置开机时运行该基本输入输出系统。
18.如权利要求1所述的计算机装置,其中该处理器在该计算机装置从S3状态恢复至正常状态时运行该基本输入输出系统。
19.如权利要求1所述的计算机装置,其中该处理器依据该第一接口函数解析该配置文件的结果配置该第一特定类型硬件中的该第一寄存器外,该处理器还依据该第一接口函数解析该配置文件的结果配置该第一特定类型硬件中的第二寄存器。
20.如权利要求1所述的计算机装置,其中该第一寄存器为该处理器中的特定模式寄存器。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810558334.9A CN108845834A (zh) | 2018-06-01 | 2018-06-01 | 计算机装置 |
US16/150,289 US10877770B2 (en) | 2018-06-01 | 2018-10-03 | Computing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810558334.9A CN108845834A (zh) | 2018-06-01 | 2018-06-01 | 计算机装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108845834A true CN108845834A (zh) | 2018-11-20 |
Family
ID=64211276
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810558334.9A Pending CN108845834A (zh) | 2018-06-01 | 2018-06-01 | 计算机装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10877770B2 (zh) |
CN (1) | CN108845834A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110928582A (zh) * | 2019-10-08 | 2020-03-27 | 联想企业解决方案(新加坡)有限公司 | 信息处理设备和配置信息处理设备的目标装置的方法 |
WO2021120754A1 (zh) * | 2019-12-16 | 2021-06-24 | 华为技术有限公司 | 一种指令写入方法、装置及网络设备 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11252138B2 (en) * | 2019-01-24 | 2022-02-15 | Dell Products L.P. | Redundant device locking key management system |
US11095445B2 (en) * | 2019-01-30 | 2021-08-17 | Dell Products L.P. | Key management and recovery |
US11003461B2 (en) * | 2019-03-29 | 2021-05-11 | Dell Products L.P. | Boot process security self-check system |
US11106624B2 (en) * | 2019-05-01 | 2021-08-31 | Dell Products L.P. | System and method for generation of configuration descriptors for a chipset |
US20210216328A1 (en) * | 2020-01-09 | 2021-07-15 | Qualcomm Incorporated | Disabling portable computing device features using write-once register |
CN113946377B (zh) * | 2021-10-29 | 2024-02-13 | 苏州浪潮智能科技有限公司 | 一种服务器参数配置方法、装置及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020023237A1 (en) * | 2000-08-18 | 2002-02-21 | Hiroshi Yamada | Information device, control method for the information device, and recording medium storing control program therefor |
US20120260077A1 (en) * | 2009-08-03 | 2012-10-11 | Dell Products L.P. | Bios field mapping |
CN103207797A (zh) * | 2013-03-15 | 2013-07-17 | 南京工业大学 | 基于通用可扩展固件接口固件系统的胶囊式定制更新方法 |
CN103714037A (zh) * | 2012-09-28 | 2014-04-09 | 微盟电子(昆山)有限公司 | 计算器及其硬件参数设定方法 |
CN103718165A (zh) * | 2011-07-07 | 2014-04-09 | 英特尔公司 | Bios闪存攻击保护和通知 |
CN103927153A (zh) * | 2013-01-14 | 2014-07-16 | 华为技术有限公司 | 一种系统配置的方法、设备及系统 |
US20140317247A1 (en) * | 2011-07-11 | 2014-10-23 | Fujitsu Technology Solutions Intellectual Property Gmbh | Computer system, method for starting a server computer, server computer, management station, and use |
CN104156221A (zh) * | 2014-08-29 | 2014-11-19 | 上海艾为电子技术有限公司 | 芯片、修改芯片配置的方法及装置 |
CN104267928A (zh) * | 2013-09-20 | 2015-01-07 | 威盛电子股份有限公司 | 微处理器及用于微处理器的动态重设方法 |
CN106445528A (zh) * | 2016-09-27 | 2017-02-22 | 郑州云海信息技术有限公司 | 一种快速配置bios的setup选项的方法及装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7640426B2 (en) * | 2006-03-31 | 2009-12-29 | Intel Corporation | Methods and apparatus to manage hardware resources for a partitioned platform |
US9146812B2 (en) * | 2012-02-03 | 2015-09-29 | Dell Products Lp | Systems and methods for out-of-band backup and restore of hardware profile information |
WO2015042864A1 (en) * | 2013-09-27 | 2015-04-02 | Intel Corporation | Optimizing boot-time peak power consumption for server/rack systems |
CN106484031A (zh) * | 2015-08-26 | 2017-03-08 | 鸿富锦精密工业(深圳)有限公司 | 服务器管理系统及方法 |
US10055357B2 (en) * | 2016-03-02 | 2018-08-21 | Dell Products Lp | Systems and methods for secure multi-access of system firmware during pre-boot |
US20190004818A1 (en) * | 2017-06-29 | 2019-01-03 | American Megatrends Inc. | Method of UEFI Shell for Supporting Power Saving Mode and Computer System thereof |
-
2018
- 2018-06-01 CN CN201810558334.9A patent/CN108845834A/zh active Pending
- 2018-10-03 US US16/150,289 patent/US10877770B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020023237A1 (en) * | 2000-08-18 | 2002-02-21 | Hiroshi Yamada | Information device, control method for the information device, and recording medium storing control program therefor |
US20120260077A1 (en) * | 2009-08-03 | 2012-10-11 | Dell Products L.P. | Bios field mapping |
CN103718165A (zh) * | 2011-07-07 | 2014-04-09 | 英特尔公司 | Bios闪存攻击保护和通知 |
US20140317247A1 (en) * | 2011-07-11 | 2014-10-23 | Fujitsu Technology Solutions Intellectual Property Gmbh | Computer system, method for starting a server computer, server computer, management station, and use |
CN103714037A (zh) * | 2012-09-28 | 2014-04-09 | 微盟电子(昆山)有限公司 | 计算器及其硬件参数设定方法 |
CN103927153A (zh) * | 2013-01-14 | 2014-07-16 | 华为技术有限公司 | 一种系统配置的方法、设备及系统 |
CN103207797A (zh) * | 2013-03-15 | 2013-07-17 | 南京工业大学 | 基于通用可扩展固件接口固件系统的胶囊式定制更新方法 |
CN104267928A (zh) * | 2013-09-20 | 2015-01-07 | 威盛电子股份有限公司 | 微处理器及用于微处理器的动态重设方法 |
CN104156221A (zh) * | 2014-08-29 | 2014-11-19 | 上海艾为电子技术有限公司 | 芯片、修改芯片配置的方法及装置 |
CN106445528A (zh) * | 2016-09-27 | 2017-02-22 | 郑州云海信息技术有限公司 | 一种快速配置bios的setup选项的方法及装置 |
Non-Patent Citations (2)
Title |
---|
沙占友: "第七章 第五节pentium 4处理器散热控制电路的设计", 《集成传感器应用》 * |
王晓英 等: "第4章 4.4 输入/输出系统 6 文件的结构", 《计算机系统平台》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110928582A (zh) * | 2019-10-08 | 2020-03-27 | 联想企业解决方案(新加坡)有限公司 | 信息处理设备和配置信息处理设备的目标装置的方法 |
CN110928582B (zh) * | 2019-10-08 | 2023-09-29 | 联想企业解决方案(新加坡)有限公司 | 信息处理设备和配置信息处理设备的目标装置的方法 |
WO2021120754A1 (zh) * | 2019-12-16 | 2021-06-24 | 华为技术有限公司 | 一种指令写入方法、装置及网络设备 |
Also Published As
Publication number | Publication date |
---|---|
US10877770B2 (en) | 2020-12-29 |
US20190370011A1 (en) | 2019-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108845834A (zh) | 计算机装置 | |
US9430250B2 (en) | Bootability with multiple logical unit numbers | |
US5794032A (en) | System for the identification and configuration of computer hardware peripherals | |
US10089105B2 (en) | Systems and methods for bios update optimization | |
US20030233534A1 (en) | Enhanced computer start-up methods | |
US20080021693A1 (en) | Storage Device Simulator | |
US11314523B2 (en) | Master boot record (MBR)/global unique identifer (GUID) partition table (GPT) hybrid disk that includes GPT bootstrap code | |
CN104679540A (zh) | 计算机系统与计算机系统启动方法 | |
US6473655B1 (en) | Data processing system and method for creating a virtual partition within an existing partition in a hard disk drive | |
JP2008510221A (ja) | ホスト上での機能ユニットドライバの自動インストールの方法およびシステム | |
US20080052427A1 (en) | Computer backup system at BIOS level | |
TWI475485B (zh) | 韌體更新之方法及其相關電腦系統 | |
US6470446B1 (en) | Method for preparing computer hard disks during installation of a network operating system | |
CN102043638A (zh) | 计算机系统以及计算机启动设定方法 | |
CN104035757A (zh) | 基于MIPS处理器的u-boot移植的实现方法 | |
TWI229793B (en) | Method and apparatus for identifying hardware compatibility and enabling stable software revision selection | |
CN103294578A (zh) | 取得触发功能的指令的方法 | |
CN106909346A (zh) | 一种基于一体计算机的uefi固件实现方法 | |
US6795915B2 (en) | Computer system and method for setting up information on an operating system thereof | |
WO2007032830A2 (en) | Methods and apparatus for providing a virtual flash device | |
CN109408124A (zh) | 存储设备及其制作方法、操作系统双模式引导方法及装置 | |
CN111694580A (zh) | 存储设备升级及初始化的方法、装置、电子设备 | |
CN105204896A (zh) | 一种数字存储示波器的BootLoader设计方法 | |
KR100534613B1 (ko) | 플래쉬 메모리를 이용한 시스템 부팅 장치 및 그 방법 | |
CN109656881B (zh) | 一种基于fat16技术实现文件动态管理的方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: Room 301, 2537 Jinke Road, Zhangjiang High Tech Park, Pudong New Area, Shanghai 201203 Applicant after: Shanghai Zhaoxin Semiconductor Co.,Ltd. Address before: Room 301, 2537 Jinke Road, Zhangjiang hi tech park, Shanghai 201203 Applicant before: VIA ALLIANCE SEMICONDUCTOR Co.,Ltd. |
|
CB02 | Change of applicant information |