CN115129384A - 一种电子设备的启动程序的运行方法和电子设备 - Google Patents

一种电子设备的启动程序的运行方法和电子设备 Download PDF

Info

Publication number
CN115129384A
CN115129384A CN202110322576.XA CN202110322576A CN115129384A CN 115129384 A CN115129384 A CN 115129384A CN 202110322576 A CN202110322576 A CN 202110322576A CN 115129384 A CN115129384 A CN 115129384A
Authority
CN
China
Prior art keywords
block
program
program block
memory
processor
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
Application number
CN202110322576.XA
Other languages
English (en)
Inventor
董德远
周飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202110322576.XA priority Critical patent/CN115129384A/zh
Priority to PCT/CN2022/082533 priority patent/WO2022199622A1/zh
Priority to EP22774278.0A priority patent/EP4296860A1/en
Priority to US18/552,142 priority patent/US20240176887A1/en
Publication of CN115129384A publication Critical patent/CN115129384A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44536Selecting among different versions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例提供了一种电子设备的启动程序的运行方法和电子设备。在该方法中,本申请实施例中的启动程序可以包括两个BIOS,其中一个是主BIOS,另一个是备BIOS。电子设备将主BIOS全部保存在第一存储器中。将备BIOS中的一些程序块保存在第二存储器中。当主BIOS有损坏时,电子设备可以确定备BIOS中的程序块在第二存储器中的存储位置,并将这些程序块加载到电子设备的内存中,然后运行该备BIOS中的程序块,使得电子设备正常开机,在不增加硬件成本的基础上,提升电子设备正常开机的成功率。电子设备还可以获取该启动程序的升级包,对主备启动程序进行择一升级。

Description

一种电子设备的启动程序的运行方法和电子设备
技术领域
本申请涉及终端及通信技术领域,尤其涉及一种电子设备的启动程序的运行方法和电子设备。
背景技术
启动程序是电子设备启动时加载的第一个程序,是连接电子设备的硬件与软件之间的桥梁。通常情况下,该启动程序是一组固化到电子设备内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。如果启动程序损坏,则可能会导致电子设备无法正常开机。
启动程序可以是支持统一可扩展固件接口(unified extensible firmwareinterface,UEFI)规范的基本输入输出系统(basic input output system,BIOS)也被称为UEFI BIOS。在UEFI BIOS架构中,下文中简称BIOS。
目前,为了防止启动程序损坏后导致电子设备无法开机,一种方式是在启动程序中内置一个修复程序块,在启动程序损坏的情况下,可以利用该修复程序块启动程序进行修复,尽可能保证电子设备可以正常开机。
采用这种方式时,在修复程序块损坏的情况下,不能修复损坏的启动程序,则电子设备无法正常开机。
发明内容
本申请提供了一种电子设备的启动程序的运行方法和电子设备,在不增加硬件成本的基础上,当启动程序损坏时,可以提升电子设备正常开机的成功率。
第一方面,本申请提供了一种电子设备的启动程序的运行方法,该电子设备包括处理器、第一存储器和第二存储器,该第一存储器为该处理器能够直接读取其数据的只读存储器,该第二存储器为该处理器通过内存读取其数据的辅助存储器,该方法包括:该处理器从该第一存储器中获取第一程序块并运行该第一程序块,其中,该第一程序块属于该启动程序的第一部分,用于实现该启动程序运行前的安全认证;该处理器从第二程序块和第三程序块中选择之一作为下一步的目标程序块,其中,该第二程序块存储在该第一存储器,该第三程序块存储在该第二存储器,该第二程序块和该第三程序块均属于该启动程序的第二部分,均用于运行该启动程序;在该第一程序块运行完毕之后,该处理器运行该目标程序块。
在上述实施例中,启动程序包括两部分,第一部分用于实现该启动程序运行前的安全认证,第一部分中的第一程序块作为主BIOS和备BIOS的共享程序块。第二部分用于实现该启动程序的运行。第二部分进行主备分开存储,例如以启动程序为BIOS为例,可以分为主BIOS和备BIOS。其中,第二部分中的第二程序块是主BIOS中的程序块,保存在第一存储器中,第三程序块是备BIOS中的程序块,保存在第二存储器中。第二存储器的成本较低,将启动程序中备BIOS的一部分程序块存储在第二存储器中可以节约硬件成本。当处理器完成了启动程序运行前的安全认证之后,该处理器就可以在主BIOS的程序块中和备BIOS中的程序块中选择之一运行,直到电子设备正常开机。所以,即使其中一个BIOS损坏或者不完整,处理器可以运行另外一个BIOS。这样,可以使启动程序更可能正常运行,以提升电子设备正常开机的成功率。
结合第一方面的一些实施例,在一些实施例中,还包括:该处理器检查该第二程序块是否损坏或者是否完整;则,在该第二程序块损坏或者不完整的情况下,选择该第三程序块作为下一步的目标程序块,在该第二程序块未损坏或完整的情况下,选择该第二程序块作为下一步的目标程序块。
上述实施例中,由于主BIOS存储在第一存储器中,可以被处理器直接读取并且运行,所以处理器运行主BIOS中的程序块的速度更快。因此,当处理器确定主BIOS中的程序块完整或者未损坏时,就可以判断运行该主BIOS。这样,还可以节约处理器判断运行哪一个BIOS的时间。再这样的情况下,即使主BIOS中的程序块不完整或者损坏,处理器还可以快速确定运行备BIOS中的程序块,使得电子设备可以正常开机。
结合第一方面的一些实施例,在一些实施例中,还包括:该处理器检查该第二程序块和该第三程序块是否损坏或者是否完整;则,在该第二程序块和该第三程序块任意之一损坏或者不完整的情况下,选择未损坏或者完整的程序块作为下一步的目标程序块;在该第二程序块和该第三程序块均未损坏或者均完整的情况下,选择版本号较优的程序块作为下一步的目标程序块。
上述实施例中,处理器结合两个程序块是否完整或未损坏,以及该程序块的版本号选择其中之一。则若有程序块不完整或者损坏,可以快速选择其中未损坏或者完整的程序块运行,节约电子设备开机的时间。若程序块都完整或者未损坏,处理器则结合主BIOS的版本号与备BIOS的版本号,选择版本号较好的BIOS运行。这样,如果定义版本号更高的BIOS为版本号较好的BIOS,则处理器选择版本号更高的BIOS运行。版本号更高,意味着启动程序的性能更好,可以更好的连接电子设备的硬件与软件,使得电子设备更加顺利的开机。可以理解的是,定义版本号较好的方式不同,则可以带来的有益效果不同,此处不再赘述。
结合第一方面的一些实施例,在一些实施例中,该处理器具体从第二程序块和第三程序块中选择版本较优的作为下一步的目标程序块。
上述实施例中,如果处理器只根据程序块的版本号选择之一运行,这样,可以快速选择其中性能较好的程序块进行运行,使得电子设备更加顺利的开机。
结合第一方面的一些实施例,在一些实施例中,在该处理器选择该第三程序块作为下一步的目标程序块的情况下,该方法还包括:该处理器从该第一存储器获取该第三程序块的引导程序块并运行该第三程序块的引导程序块,该第三程序块的引导程序块用于确定该第三程序块的存储位置,并将该第三程序块加载到该电子设备的内存中。
上述实施例中,因为第三程序块存储在第二存储器中,处理器无法直接读取并运行。则只需将第三程序块的引导程序块存储在第一存储器中,这样,可以节约硬件成本。处理器可以直接读取并运行该第三程序块的引导程序块,将第二存储器中备BIOS的程序块加载到处理器可以直接读取并运行的内存,使得处理器可以运行第二存储器中备BIOS中的程序块。
结合第一方面的一些实施例,在一些实施例中,还包括:该处理器修复损坏的或不完整的程序块,或者,该处理器发出修复通知。
上述实施例中,处理器可以修复不完整或者损坏的程序块,保障了启动程序的完整性。
结合第一方面的一些实施例,在一些实施例中,还包括:该处理器获取该启动程序的升级包;该处理器选择从该第二程序块和该第三程序块中选择之一作为升级目标,采用该升级包对所选择的程序块进行升级。
上述实施例中,处理器可以对启动程序进行升级,这样,可以通过升级来提升启动程序的性能,使得启动程序可以更好的运行。
结合第一方面的一些实施例,在一些实施例中,还包括:该启动程序是支持统一可扩展固件接口规范的UEFI BIOS。
第二方面,本申请提供了一种电子设备的启动程序的升级方法,该电子设备包括:处理器、第一存储器和第二存储器,该第一存储器为该处理器能够直接读取其数据的只读存储器,该第二存储器为该处理器通过内存读取其数据的辅助存储器,该方法包括:该处理器获取该启动程序的升级包,其中,该启动程序的第一部分所对应的第一程序块保存在该第一存储器,该第一程序块用于实现该启动程序运行前的安全认证;该处理器从第二程序块和第三程序块中选择之一作为待升级的目标程序块,其中,该第二程序块存储在该第一存储器,该第三程序块存储在该第二存储器,该第二程序块和该第三程序块均属于该启动程序的第二部分,均用于运行该启动程序;该处理器根据该启动程序的升级包,升级该目标程序块。
上述实施例中,处理器只选择主BIOS和备BIOS中的一个进行升级,另外一个不升级。这样,即时升级失败了,没有升级的那个BIOS仍然是完整或者未损坏的。处理器仍然可以选择运行这个没有升级的BIOS,使得电子设备正常开机。如果升级成功了,则在下一次就可以升级那个没有升级的BIOS,这样,可以保证两个BIOS都会性能更好。
第三方面,本申请提供了一种电子设备,该电子设备包括:处理器和第一存储器和第二存储器;该第一存储器为该处理器能够直接读取其数据的只读存储器,该第一存储器中存储第一程序块和第二程序块,该第一程序块属于该启动程序的第一部分,用于实现该启动程序运行前的安全认证,该第二程序块属于该启动程序的第二部分,用于运行该启动程序;该第二存储器为该处理器通过内存读取其数据的辅助存储器,该第二存储器中存储第三数据块,该第三程序块属于该启动程序的第二部分,用于运行该启动程序;该处理器用于从该第一存储器中获取该第一程序,运行该第一程序块以实现该启动程序运行前的安全认证;该处理器还用于从该第二程序块和该第三程序块中选择之一作为下一步的目标程序块;在该第一程序块运行完毕之后,该处理器用于运行该目标程序块以运行该启动程序。
在上述实施例中,启动程序包括两部分,第一部分用于实现该启动程序运行前的安全认证,第一部分中的第一程序块作为主BIOS和备BIOS的共享程序块。第二部分用于实现该启动程序的运行。第二部分进行主备分开存储,例如以启动程序为BIOS为例,可以分为主BIOS和备BIOS。其中,第二部分中的第二程序块是主BIOS中的程序块,保存在第一存储器中,第三程序块是备BIOS中的程序块,保存在第二存储器中。第二存储器的成本较低,将启动程序中备BIOS的一部分程序块存储在第二存储器中可以节约硬件成本。当处理器完成了启动程序运行前的安全认证之后,该处理器就可以在主BIOS的程序块中和备BIOS中的程序块中选择之一运行,直到电子设备正常开机。所以,即使其中一个BIOS损坏或者不完整,处理器可以运行另外一个BIOS。这样,可以使启动程序更可能正常运行,以提升电子设备正常开机的成功率。
结合第三方面的一些实施例,在一些实施例中,该处理器还用于检查该第二程序块是否损坏或者是否完整;则,在该第二程序块损坏或者不完整的情况下,该处理器选择该第三程序块作为下一步的目标程序块,在该第二程序块未损坏或完整的情况下,该处理器选择该第二程序块作为下一步的目标程序块。
结合第三方面的一些实施例,在一些实施例中,该处理器还用于检查该第二程序块和该第三程序块是否损坏或者是否完整;则,在该第二程序块和该第三程序块任意之一损坏或者不完整的情况下,该处理器选择未损坏或者完整的程序块作为下一步的目标程序块;在该第二程序块和该第三程序块均未损坏或者均完整的情况下,该处理器选择版本号较优的程序块作为下一步的目标程序块。
结合第三方面的一些实施例,在一些实施例中,该处理器具体用于从第二程序块和第三程序块中选择版本较优的作为下一步的目标程序块。
结合第三方面的一些实施例,在一些实施例中,在选择该第三程序块作为下一步的目标程序块的情况下,该处理器还用于从该第一存储器获取该第三程序块的引导程序块并运行该第三程序块的引导程序块,该第三程序块的引导程序块用于确定该第三程序块的存储位置,并将该第三程序块加载到该电子设备的内存中。
结合第三方面的一些实施例,在一些实施例中,该处理器还用于修复损坏的或不完整的程序块,或者,发出修复通知。
结合第三方面的一些实施例,在一些实施例中,该处理器还用于获取该启动程序的升级包;该处理器用于选择从该第二程序块和该第三程序块中选择之一作为升级目标,采用该升级包对所选择的程序块进行升级。
附图说明
图1是本申请实施例提供的一种BIOS的示意性结构框图;
图2是本申请实施例提供的一种BIOS的示意性运行流程图;
图3是本申请实施例提供的一种主BIOS和备BIOS的示意性结构框图;
图4是本申请实施例提供的启动程序的运行时的示意性流程图;
图5是本申请实施例提供的电子设备100的结构示意图;
图6是本申请实施例提供的另一种启动程序的运行的示例性流程图;
图7是本申请实施例提供的启动程序的示意性结构框图;
图8是本申请实施例提供的启动程序的运行方法的一个示例性流程图。
具体实施方式
本申请以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“所述”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,本申请中使用的术语“和/或”是指并包含一个或多个所列出项目的任何或所有可能组合。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
为了便于理解,下面先对本申请实施例涉及的相关术语及概念进行介绍。
(1)第一存储器
在本申请实施例中,第一存储器包括固化在电子设备的主板上用来保存BIOS的存储芯片。该第一存储器上保存的数据可以由中央处理器(central processing unit,CPU)直接随机存取。该第一存储器是非易失性的,即在断电情况下,该第一存储器上保存的数据信息不会丢失。
可以理解的是,主存储器不仅仅包括第一存储器,也可以包括其他能与电子设备的CPU直接交换信息的存储器,例如随机存取存储器(random access memory,RAM)等。主存储器可以作为内存。可以理解的是,可以直接将第一存储器焊接在主板上。也可以是采取其他的方式放置在主板上,例如,通过插入主板上的卡槽以放置在主板上,本申请实施例对此作限制。该第一存储器可以用于存储电子设备的一些关键程序,例如启动程序,BIOS,电子设备可以读写该第一存储器上保存的BIOS。存储在第一存储器上的程序一般称为固件。
具体的,电子设备可以读取该第一存储器上保存的程序,例如电子设备可以读取BIOS,然后电子设备可以通过运行该BIOS完成硬件设置和控制,还可以排除系统故障或者诊断系统问题,从而正常开机。
保存在第一存储器上的程序或内容一般情况下不允许电子设备进行擦除或变更,但是在特定情况下,电子设备可以擦除该第一存储器上保存的内容,然后写入新内容。因此,在一些情况中,当BIOS中的某个程序块损坏时,电子设备可以擦除该损坏的程序块上的内容,然后写入正确的内容,保证该BIOS可以正常运行。在另一些情况中,当BIOS需要更新升级时,电子设备可以擦除原来的BIOS然后写入更新升级后BIOS到该第一存储器上。
本申请实施例中涉及的第一存储器可以是可擦写的快速只读存储器(flashread-only memory,flash ROM)芯片,也可以是其他类型的ROM芯片,例如电可擦可编程只读存储器(electrically erasable programmable ROM,EEP ROM)等,此处不做限定。本申请实施例的第一存储器的数量并不做限定。
(2)第二存储器
在本申请实施例中,第二存储器可以包括没有固化在电子设备的主板上的辅助存储器。可以是一些扩展的外部存储器,例如固态硬盘(solid state disk,SSD)、硬盘驱动器(hard disk drive,HDD)等。
该第二存储器相对于固化在电子设备的主板上的第一存储器来说,需要与一些主存储器交换数据信息,例如第一存储器,随机读取存储器等。即电子设备中的其他部件不能直接读取该第二存储器中保存的数据信息。例如,电子设备的CPU不能直接从该第二存储器中存取数据信息,要先将该第二存储器中保存的数据信息加载到可以作为内存的主存储器中,从主存储器中获取。所以,电子设备要运行保存在该存储器中的BIOS的内容,需要先将其读取到可以作为内存的主存储器中,例如RAM。
该第二存储器的单位容量价格相比于第一存储器来说更低。使用该第一存储器来保存BIOS中的内容可以节约电子设备的开发成本。
(3)BIOS运行环境
对于采用UEFI BIOS架构的BIOS,可以将该BIOS分成若干个程序块,具体的,可以包括以下几个程序块:安全启动(security)程序块(SEC程序块)、前EFI初始化(Pre-EFIInitilization,PEI)程序块、驱动执行环境(driver execution environment,DXE)程序块、启动设备选择(boot device selection,BDS)程序块、临时系统加载(transientsystem load,TLS)程序块、运行时(run time,RT)程序块等。电子设备运行完上述程序块,即可正常开机。
SEC程序块用于实现BIOS运行前的安全认证。电子设备首先运行SEC程序块进入BIOS运行环境中的安全认证阶段。
PEI程序块用于初始化部分硬件,例如可以用于初始化CPU、芯片组、主板,还可以用于初始化部分主存储器与辅助存储器等。电子设备运行PEI程序块,进入前EFI初始化阶段。为下一阶段准备执行环境。
DXE程序块用于完成所有硬件的初始化,电子设备运行DEX程序块,进入驱动执行环境阶段。进入此阶段时,内存已可以完全被使用,因而此阶段可以进行复杂工作。
BDS程序块用于启动操作系统,电子设备运行BDS程序块,进入启动设备选择阶段,该阶段主要执行启动策略,主要功能包括:初始化控制台设备;加载设备驱动;根据系统设置加载和执行启动项。
然后,然后电子设备运行TLS程序块,RT程序块等,直到电子设备正常开机。
当启动程序是BIOS时,为了避免BIOS损坏后,电子设备无法正常开机,一种方案是在BIOS中内置一个修复程序块,在BIOS损坏时,电子设备可以利用该修复程序块对该BIOS进行修复。
图1示出了该方案涉及的一种BIOS的示意性结构框图。该BIOS包含SEC程序块和PEI程序块以及其他程序块。该BIOS可以保存在flash ROM上,在BIOS的PEI程序块中包含一个修复程序块。
图2示出了该BIOS的示意性运行流程图。响应于用户在电子设备上的开机操作,电子设备首先运行该BIOS中的SEC程序块。然后,检查PEI程序块是否有损坏,没有损坏,则运行该PEI程序块。然后,可以检查该BIOS中的其他程序块是否有损坏。若有损坏,则运行该PEI程序块中的修复程序块对该BIOS进行修复。修复过程是电子设备从光盘等外部存储设备上寻找BIOS中的其他程序块,例如驱动执行环境(driver execution environment,DXE)程序块和启动设备选择(boot device selection,BDS)程序块等,然后利用外部存储器上的其他程序块对该BIOS进行修复。若无损坏,则可以运行该BIOS中的其他程序块。
但是,采取该方案时。修复程序块需要依赖PEI程序块才可以运行,即该修复程序块需要在PEI程序块没有损坏的情况下才能运行。如果该BIOS中的修复程序块损坏了或者该修复程序块依赖的PEI程序块损坏了,则无法对有损坏的BIOS进行修复。但是,在升级BIOS时,由于该PEI程序块也需要升级,可能会出现升级失败导致该启动程序块损坏的情况。若此时该BIOS损坏,则电子设备可能无法正常开机。
本申请实施例提供的启动程序的运行方法,仍然以启动程序为BIOS为例,将主备BIOS拆分存储在不同的存储器上,将主BIOS全部保存在第一存储器中。将备BIOS中的一些程序块保存在第二存储器中。当主BIOS有损坏时,电子设备可以确定备BIOS中的程序块在第二存储器中的存储位置,并将这些程序块加载到电子设备的内存中,然后运行该备BIOS中的程序块,使得电子设备正常开机,在不增加硬件成本的基础上,提升电子设备正常开机的成功率。电子设备还可以获取该启动程序的升级包,对主备启动程序进行择一升级。
图3示出了本申请实施例中,主BIOS和备BIOS的示意性结构框图。
在一些实施例中,主BIOS的SEC程序块与备BIOS的SEC程序块可以是同一个SEC程序块,该SEC程序块即为共享SEC程序块。
如图3所示,电子设备可以在第一存储器中存储主BIOS和备BIOS的共享SEC程序块,该第一存储器中还用于保存主BIOS的PEI程序块、备BIOS的PEI程序块及主BIOS的其他程序块。电子设备将备BIOS的其他程序块存储在第二存储器中。
其中备BIOS的PEI程序块用于确定备BIOS中的其他区块程序块在第二存储器中的存储位置,并将这些程序块加载到电子设备的内存中。
图4示出了本申请实施例中,启动程序运行时的示意性流程图。
如图4所示,电子设备首先运行第一存储器中的主BIOS和备BIOS的共享SEC程序块,确定主BIOS的PEI程序块及备BIOS的PEI程序块中的一个为目标PEI程序块,并运行该目标PEI程序块。如果主BIOS的PEI程序块是目标PEI程序块,则运行该主BIOS的其他程序块,以使得电子设备正常开机。如果主BIOS的PEI程序块不是目标PEI程序块,即备BIOS的PEI程序块才是目标PEI程序块。则电子设备可以通过运行该目标PEI程序块,读取第二存储器的备BIOS的其他程序块,然后运行该备BIOS的其他程序块,以使得电子设备正常开机。
这样,在不增加硬件成本的基础上,只要共享SEC程序块没有损坏,完成了启动程序运行前的安全认证后,即可以开始运行启动程序。即使第一存储器中的主BIOS的PEI程序块或者其他程序块有损坏,电子设备不能通过运行主BIOS使电子设备成功开机时,电子设备也可以运行备BIOS的PEI程序块及其他程序块,使得电子设备可以正常开机,提升电子设备正常开机的成功率。
电子设备可以利用启动程序的升级包,对共享SEC程序块进行升级,以及在主BIOS中除共享SEC程序块以外的其他程序块和备BIOS中除共享SEC程序块以外的其他程序块中选择其中之一,进行升级。这样,在SEC升级成功的情况下,即使其中一个BIOS中的其他程序块升级失败,另一个BIOS仍然可以被运行,使得电子设备正常开机。
下面首先介绍本申请实施例提供的示例性电子设备100。
图5是本申请实施例提供的电子设备100的结构示意图。
下面以电子设备100为例对实施例进行具体说明。应该理解的是,电子设备100可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
电子设备100可以包括:处理器171、主存储器172、辅助存储器173、芯片组174、电源开关175、输入输出设备176、USB通信处理模块177、无线通信处理模块178、蜂鸣器179。
处理器171可用于读取和运行计算机可读指令。具体实现中,处理器171可主要包括控制器、运算器和寄存器。其中,控制器主要负责指令译码,并为指令对应的操作发出控制信号。运算器主要负责执行定点或浮点算数运算操作、移位操作以及逻辑操作等,也可以执行地址运算和转换。寄存器主要负责保存指令执行过程中临时存放的寄存器操作数和中间操作结果等。
在本申请实施例中,处理器171还可用于读取和运行BIOS涉及的指令,使电子设备100可以正常开机。
主存储器172与处理器171耦合,用于存储各种软件程序和/或多组指令,该主存储器172中的软件程序和/或多组指令可以被处理器171直接读取。具体实现中,主存储器172可以包括内存,例如RAM芯片。主存储器172还可包括非易失性存储器芯片,例如一个或多个闪存设备。主存储器172可以存储操作系统,例如实时多任务操作系统(real time multi-tasking operation system,uCOS)等嵌入式操作系统、Microsoft Windows操作系统等。
在本申请实施例中,主存储器172还可以包括第一存储器,例如flash ROM芯片或者其他类型的ROM芯片,例如EEP ROM芯片。可以用于保存共享SEC程序块、主BIOS的PEI程序块及其他程序块、备BIOS的PEI程序块。
辅助存储器173用于存储各种资源,例如图片,音视频等。具体实现中,辅助存储器173可以是外存,可以包括大容量存储设备,例如磁盘存储设备等。辅助存储器173可以主存储器172交换信息。
在本申请实施例中,辅助存储器173还可以包括第二存储器,例如SSD,HDD等,用于保存备BIOS中的一些程序块。
芯片组174可以包括北桥芯片174A和南桥芯片174B中的一项或者多项。用于将微处理器(未示出)与电子设备100的其他部分相连接。
北桥芯片174A可用于提供处理器171与电子设备100的其他部分的接口,例如,可以用于提供对主存储器172的接口。此外,北桥芯片174A还可以用于通过千兆以太网适配器(gigabit ethernet adapter,GEA)(未示出)提供网络通信功能。
南桥芯片174B可用于控制电子设备100的输入/输出功能。具体实现中,可提供一个或多个通用串行总线(Universal Serial Bus,USB)端口、声音适配器、以太网控制器,以及一个或多个通用输入/输出引脚。
在本申请实施例中,南桥芯片174B还可以提供用于连接周边设备的总线,例如符合BIOS引导规范(BIOS boot specification,BBS)标准的SCSI主机总线适配器(未示出)。
在另一些实施例中,南桥芯片174B还可以提供一个或多个接口,这些接口可用于将辅助存储器173连接到电子设备100,使辅助存储器173可以和主存储器172交换信息。这样,电子设备100可以将辅助存储器173中存储的备BIOS的一些程序块读取到主存储器172中,使得处理器171可以从主存储器172中读取并运行该备BIOS的一些程序块。
电源开关175可用于控制电源向电子设备100的供电。当电源开关开启后,电子设备100可以开始运行BIOS,当BIOS正常运行结束之后,电子设备100可以正常开机。
输入输出设备176用于提供若干个输入/输出端口,例如键盘端口、鼠标端口、串行接口、并行端口等。其中,输入设备包括键盘、鼠标、摄像头。输出设备可以包括显示屏、打印机、绘图仪。
在本申请实施例中,当电子设备100将BIOS正常运行结束之后,电子设备100的显示屏上可以显示开机的用户界面。
USB通信处理模块177可用于通过USB接口(未示出)与其他设备进行通信。
无线通信处理模块178可以包括蓝牙(bluetooth,BT)通信处理模块178A、WLAN通信处理模块178B中的一项或多项,用于和其他电子设备建立无线通信连接。
蜂鸣器179用于作发声器件。
在本申请实施例中,当电子设备运行BIOS的过程中,验证硬件是否出现问题时,如果某个硬件出现了问题,蜂鸣器179就会发出BIOS报警声。声音类型不同则表示出现问题的硬件不同。例如在有些电子设备中,出现一长一短的BIOS报警声则表示RAM或主板出现问题。
可以理解的是,本申请实施例涉及的电子设备100还可以是移动端设备,此处不作限制。
下面结合上述图5中示出的电子设备100的结构示意图,对本申请实施例中的启动程序的运行方法进行介绍:
图6是本申请实施例中的启动程序的运行的一个示例性流程图。
本申请实施例中的启动程序可以包括两个部分。第一部分以及第二部分。其中,第一部分可以用于实现该启动程序运行前的安全认证,即验证CPU、芯片组、主板等是否可以安全,正常地工作。在完成启动程序的安全认证之后,电子设备才可以运行该启动程序。可选的,第一部分还可以用于检查第二部分中的程序块的是否完整或者是否损坏,以及版本号。当第一部分中的程序块正常运行完之后,才可以运行第二部分中的程序块,第二部分可以用于运行该启动程序。电子设备可以将该第二部分进行主备分开存储,例如以启动程序为BIOS为例,可以分为主BIOS和备BIOS。
其中,第一部分中可以包括第一程序块,第二部分中可以包括第二程序块、第三程序块。这些程序块具体的运行过程可以参考下述步骤S601-步骤S603。
S601.电子设备获取第一程序块并运行该第一程序块;
该第一程序块保存在第一存储器中,可以被电子设备的处理器直接读取。该第一程序块属于启动程序的第一部分,用于实现该启动程序运行前的安全认证。该第一程序块既属于主BIOS,也属于备BIOS,是两个BIOS的共享程序块。例如,该第一程序块中可以包括SEC程序块。则该SEC程序块是共享SEC程序块。
S602.电子设备从第二程序块和第三程序块中选择之一作为下一步的目标程序块;
第二程序块和第三程序块均属于启动程序的第二部分,均用于运行该启动程序。其中,第二程序块是主BIOS中的程序块,存储在第一存储器中。第三程序块是备BIOS中的程序块,存储在第二存储器中。
对于第二程序块和第三程序块,在一次开机过程中,电子设备只能选择其中之一作为下一步的目标程序块。
可选的,在一些实施例中,电子设备可以只检查该第二程序块是否损坏或者是否完整;如果该第二程序块未损坏或者完整,则选择该第二程序块作为下一步的目标程序块;如果该第二程序块损坏或者不完整,则选择该第三程序块作为下一步的目标程序块。
可选的,在一些实施例中,第一电子设备可以既检查第二程序块是否损坏或者是否完整,也可以检查第三程序块是否损坏或者是否完整;如果该第二程序块和该第三程序块中有任意之一损坏或者不完整,则选择未损坏或者完整的程序块作为下一步的目标程序块;如果这两个程序块都完整,则检查这两个程序块的版本号,选择其中版本号较好的一个作为目标程序块。例如,可以定义版本号高的程序块的版本号较好,也可以定义版本号更稳定的版本号较好,还可以有其他定义版本号较好的方式,本申请实施例对此不作限定。
可选的,在另一些实施例中,电子设备可以只检查第二程序块和第三程序块的版本号,选择其中版本号较好的一个作为目标程序块。
上述实施例中,对于损坏或者不完整的程序块,电子设备可以发出修复通知,对该程序块进行修复。具体的,根据修复通知,电子设备可以利用未损坏或者完整的BIOS对对有损坏或者不完整的BIOS进行修复。
上述实施例中,电子设备可以通过第一程序块对该第二程序块和第三程序块是否完整或者损坏以及版本号进行检查。具体的,第一程序块可以通过检查程序块对第二程序块和第三程序块进行检查。在一些实施例中,该检查程序块可以置于第一程序块中。在另一些实施例中,该检查程序块也可以置于第一程序块之外,只要通过第一程序块可找到该检查程序块即可,例如将该检查程序块的路径置于第一程序块,该第一程序块可以通过该路径找到该检查程序块。
在上述实施例中,由于第三程序块被存储在第二存储器中,所以可以在第一存储器中添加一个第三程序块的引导程序块,用于确定该第三程序块的存储位置,并将该第三程序块加载到电子设备的内存中。电子设备可以通过该检查程序块对第三程序块进行检查,具体是通过该检查程序块找到该第三程序块的引导程序块,然后通过该第三程序块的引导程序块对第三程序块进行检查。
其中,第二程序块可以包括主BIOS中除第一程序块以外的其他全部程序块。例如,当第一程序块只包括SEC程序块时,则第二程序块包括主BIOS中除SEC程序块以外的其他所有程序块。
第三程序块的引导程序块至少包括备BIOS的PEI程序块中用于确定该第三程序块的存储位置,并将该第三程序块加载到电子设备的内存中的那部分程序块。第三程序块可以包括备BIOS的中除第三程序块的引导程序块与第一程序块以外的其他全部程序块。例如,当第三程序块的引导程序块只包括PEI程序块时,第一程序块包括SEC区块时,则第三程序块可以包括DEX程序块、BDS程序块等。当第三程序块的引导程序块包括PEI程序块、DEX程序块时,第一程序块包括SEC区块时,则第三程序块可以包括BDS程序块等。
S603.在该第一程序块运行完毕之后,电子设备运行该目标程序块;
可以理解的是,本申请实施例中涉及的程序块可以是一组代码、一组函数、包括一个或多个信号处理和/或专用集成电路在内的硬件,也可以是其中的一个或者多个的组合。本申请实施例对此不作限定。
电子设备除采取上述步骤S601-步骤S603运行启动程序时,还可以对该启动程序进行升级。
具体的,电子设备获取该启动程序的升级包,采用该升级包对程序块进行升级。电子设备从第一存储器中获取第一程序块并升级该第一程序块。
电子设备从第二程序块和第三程序块中选择之一作为下一步升级的目标程序块。
在该第一程序块升级完毕之后,该电子设备升级该目标程序块。
下面结合上述图6中对本申请实施例中的启动程序的运行方法的介绍,提供一个详细的示例性介绍。
图7是本申请实施例提供的启动程序的示意性结构框图。
应该理解的是,图7中的BIOS可以具有比图中所示的更多的程序块,可以组合两个或多个的程序块。图中所示出的各个程序块可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
其中,第一程序块为共享SEC程序块;第二程序块为主BIOS中除去SEC程序块以外的其他程序块;第三程序块的引导程序块为备BIOS中的PEI程序块;第三程序块为备BIOS中除PEI程序块、共享SEC程序块以外的其他程序块。
下面结合上述图6中示出的电子设备100的结构示意图、图7中示出启动程序的示意性结构框图,对本申请实施例中的方法进行具体描述:
图8为本申请实施例中启动程序的运行方法的一个示例性流程图。
在第一存储器中保存了两个PEI程序块,主BIOS的PEI程序块及备BIOS的PEI程序块。但在启动程序的运行过程中,只需要运行这两个PEI程序块中的一个,所以电子设备可以确定其中一个PEI程序块为目标PEI程序块。并运行该目标PEI程序块。如果电子设备选择了第二程序块作为目标程序块,则运行主BIOS的PEI程序块。如果电子设备选择了第三程序块作为目标程序块,则运行备BIOS的PEI程序块。
电子设备选择目标PEI程序块的过程可以参考下述对步骤S901-步骤S904的描述。
S901、电子设备确定主BIOS的PEI程序块及备BIOS的PEI程序块是否都完整。
电子设备可以通过运行检查程序块,确定主BIOS的PEI程序块及备BIOS的PEI程序块的完整性。
在一些实施例中,该检查程序块可以置于共享SEC程序块中。
在另一些实施例中,该检查程序块可以不置于共享SEC程序块中,可以设置在运行共享SEC程序块时,电子设备可以读取的其他位置。此处不作限定。
在一些实施例中,如果电子设备确定主BIOS的PEI程序块及备BIOS的PEI程序块都完整,则执行步骤S902-步骤S903。
如果电子设备确定主BIOS的PEI程序块完整,备BIOS的PEI程序块不完整。或者,电子设备确定主BIOS的PEI程序块不完整,备BIOS的PEI程序块完整,则执行步骤S904。
可以理解的是,如果电子设备确定主BIOS的PEI程序块和备BIOS的PEI程序块都不完整,则电子设备结束运行BIOS。
S902、电子设备确定主BIOS的PEI程序块及备BIOS的PEI程序块的版本号。
电子设备可以通过运行检查程序块,确定主BIOS的PEI程序块及备BIOS的PEI程序块的版本号。
S903、电子设备根据该版本号确定并运行主BIOS的PEI程序块或备BIOS的PEI程序块。
电子设备通过运行SEC程序块确定目标PEI程序块,并运行该目标PEI程序块。
在一些实施例中,电子设备可以确定主BIOS的PEI程序块及备BIOS的PEI程序块中,版本号更高的PEI程序块为目标PEI程序块。例如,如果主BIOS的PEI程序块的版本号比备BIOS的PEI程序块的版本号更高,则电子设备确定主BIOS的PEI程序块为目标PEI程序块。
在一些实施例中,电子设备可以根据两个PEI程序块的版本号,确定本版号更稳定的PEI程序块为目标PEI程序块。例如,电子设备根据备BIOS的PEI程序块的版本号,可以确定该版本号对应的备BIOS为测试版本,根据主BIOS的PEI程序块的版本号,可以确定该版本号对应的主BIOS为稳定版本,则电子设备确定主BIOS的PEI程序块为目标PEI程序块。
在另一些实施例中,由于电子设备运行主BIOS上的PEI程序块的速度更快。所以,如果两个PEI程序块的版本号相同,则电子设备可以确定主BIOS的PEI程序块为目标PEI程序块。
S904、电子设备确定主BIOS的PEI程序块及备BIOS的PEI程序块中完整的PEI程序块为目标PEI程序块,并运行该目标PEI程序块。
如果主BIOS的PEI程序块不完整,备BIOS的PEI程序块完整,则电子设备可以确定备BIOS的PEI程序块为目标PEI程序块,并运行该目标PEI程序块。
如果主BIOS的PEI程序块完整,备BIOS的PEI程序块不完整,则电子设备可以确定主BIOS的PEI程序块为目标PEI程序块,并运行该目标PEI程序块。
电子设备执行完步骤S901-S904,确定并运行目标PEI程序块后,可以确定该目标PEI程序块对应的BIOS的其他程序块是保存在第一存储器,还是第二存储器。如果在第一存储器,则电子设备将第二程序块作为目标程序块;如果在第二存储器,则电子设备将第三程序块作为目标程序块;
该过程可以参考下述对步骤S905的描述。
S905、电子设备确定该目标PEI程序块对应的BIOS的其他程序块是否保存在第一存储器。
如果电子设备运行的是主BIOS的PEI程序块,则可以确定该目标PEI程序块对应的BIOS的其他程序块保存在第一存储器。则执行步骤S911-步骤S913。
如果电子设备运行的是备BIOS的PEI程序块,则可以确定该目标PEI程序块对应的BIOS的其他程序块保存在第二存储器。则执行步骤S906-步骤S909。
可以理解的是,在一些实施例中,当电子设备确定主BIOS的PEI程序块为目标PEI程序块时,可以不执行步骤S905,可以直接执行步骤S911-步骤S912。
当电子设备确定备BIOS的PEI程序块为目标PEI程序块时,可以不执行步骤S905,可以直接执行步骤S906-步骤S910。
在本申请实施例中,电子设备对保存在第二存储器与第一存储器的BIOS的程序块的读取方式不同。
具体的,电子设备的处理器可以直接从第一存储器读取BIOS的程序块。
电子设备的处理器不可以直接从第二存储器读取备BIOS的程序块。
由于备BIOS除共享SEC程序块、PEI程序块以外的其他程序块都保存在第二存储器,所以电子设备读取保存在第二存储器中的程序块时,需要先将先将这些程序块读取到主存储器中,电子设备才可以运行这些程序块。
电子设备读取并运行保存在第二存储器中的备BIOS的其他程序块的过程可以参考下述对步骤S906-S909的描述。
S906、加载第二存储器的存储驱动和文件系统驱动,确定备BIOS的其他程序块在第二存储器中的存储地址。
在该步骤中,电子设备可以通过运行备BIOS的PEI程序块,确定备BIOS的其他程序块在第二存储器中的存储位置,即找到该备BIOS的其他程序块。其中,该备BIOS的PEI程序块中包含该备BIOS的其他程序块在第二存储器中的存储地址。
S907、按照该存储地址,读取第二存储器中保存的备BIOS的其他程序块。
电子设备可以读取第二存储器中保存的BIOS的其他程序块。
具体的,电子设备可以通过运行备BIOS的PEI程序块,按照该备BIOS的PEI程序块中的该备BIOS的其他程序块在该第二存储器中的存储地址,将该第二存储器中保存的备BIOS的其他程序块加载到内存中,然后电子设备可以从主存储器中读取该备BIOS的其他程序块。
S908、电子设备检查该备BIOS的其他程序块是否完整。
电子设备在运行该备BIOS的其他程序块之前,要先检查这些程序块的完整性,完整才可以运行。
具体的,该备BIOS的其他程序块中可以包含备BIOS的DXE程序块,备BIOS的BDS程序块等。电子设备在运行下一个程序块之前,会利用当前运行的程序块去检查下一个程序块的完整性。例如,电子设备在运行备BIOS的PEI程序块时,可以利用该PEI程序块检查备BIOS的DXE程序块的完整性。在运行该DXE程序块时,可以利用该DXE程序块检查备BIOS的BDS程序块的完整性。
如果该备BIOS的其他程序块是完整的,则执行步骤S909。
如果该备BIOS的其他程序块不是完整的,则执行步骤S910。
S909、电子设备运行该备BIOS的其他程序块。
电子设备运行该备BIOS的其他程序块,直到运行结束,正常开机。
S910、电子设备修复并运行该备BIOS的其他程序块。
可选的,在一些实施例中,当备BIOS的其他程序块不完整时,电子设备可以修复该备BIOS的其他程序块,然后,再继续运行该备BIOS的其他程序块以使得电子设备可以正常开机。
S911、电子设备检查该主BIOS的其他程序块是否完整。
电子设备检查该主BIOS的其他程序块是否完整的过程,可以参考前述步骤S908中,对电子设备检查备BIOS的其他程序块是否完整的描述,此处不再赘述。
如果该主BIOS的其他程序块是完整的,则执行步骤S912。
如果该主BIOS的其他程序块不是完整的,则执行步骤S913。
S912、电子设备运行该主BIOS的其他程序块。
电子设备运行该主BIOS的其他程序块,直到运行结束,正常开机。
S913、电子设备修复并运行该主BIOS的其他程序块。
电子设备修复并运行该主BIOS的其他程序块的过程,可以参考前述步骤S910中,对电子设备修复并运行该备BIOS的其他程序块的描述,此处不再赘述。
在一些实施例中,当电子设备确定主BIOS的PEI程序块完整时,则可以不用确定备BIOS的PEI程序块的完整性,直接确定主BIOS的PEI程序块为目标PEI程序块。然后,直接执行步骤S911-步骤S913。当电子设备确定主BIOS的PEI程序块不完整时,则可以不用确定备BIOS的PEI程序块的完整性,直接确定备BIOS的PEI程序块为目标PEI程序块。然后,直接执行步骤S906-步骤S9010。
在另一些实施例中,电子设备可以只通过版本号确定目标PEI程序块,当电子设备确定主BIOS的PEI程序块版本号较好,则可以不用确定备BIOS的PEI程序块的版本号,直接确定主BIOS的PEI程序块为目标PEI程序块。然后,直接执行步骤S911-步骤S913。当电子设备确定备BIOS的PEI程序块的版本号较好,则可以不用确定备BIOS的PEI程序块的版本号,直接确定备BIOS的PEI程序块为目标PEI程序块。然后,直接执行步骤S906-步骤S9010。
由此可见,采用本申请实施例提供的启动程序的运行方法。电子设备可以通过运行该共享SEC程序块确定主BIOS的PEI程序块为目标PEI程序块或者备BIOS的PEI程序块为目标PEI程序块。然后运行该目标PEI程序块及该目标PEI程序块对应的BIOS中的其他程序块,以使得电子设备可以正常开机。
所以,当共享SEC程序块没有损坏时,即使主BIOS或者备BIOS其中一个有损坏,电子设备也可以运行另外BIOS的PEI程序块及其他程序块,可以提升电子设备正常开机的成功率。
可以理解的是,本申请实施例涉及的电子设备所做的步骤,也可以理解为是电子设备的处理器所做的步骤。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
上述实施例中所用,根据上下文,术语“当…时”可以被解释为意思是“如果…”或“在…后”或“响应于确定…”或“响应于检测到…”。类似地,根据上下文,短语“在确定…时”或“如果检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定…”或“响应于确定…”或“在检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘)等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
总之,以上所述仅为本申请技术方案的实施例而已,并非用于限定本申请的保护范围。凡根据本申请的揭露,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (16)

1.一种电子设备的启动程序的运行方法,其特征在于,所述电子设备包括处理器、第一存储器和第二存储器,所述第一存储器为所述处理器能够直接读取其数据的只读存储器,所述第二存储器为所述处理器通过内存读取其数据的辅助存储器,所述方法包括:
所述处理器从所述第一存储器中获取第一程序块并运行所述第一程序块,其中,所述第一程序块属于所述启动程序的第一部分,用于实现所述启动程序运行前的安全认证;
所述处理器从第二程序块和第三程序块中选择之一作为下一步的目标程序块,其中,所述第二程序块存储在所述第一存储器,所述第三程序块存储在所述第二存储器,所述第二程序块和所述第三程序块均属于所述启动程序的第二部分,均用于运行所述启动程序;
在所述第一程序块运行完毕之后,所述处理器运行所述目标程序块。
2.根据权利要求1所述的方法,其特征在于,还包括:
所述处理器检查所述第二程序块是否损坏或者是否完整;
则,在所述第二程序块损坏或者不完整的情况下,选择所述第三程序块作为下一步的目标程序块,在所述第二程序块未损坏或完整的情况下,选择所述第二程序块作为下一步的目标程序块。
3.根据权利要求1所述的方法,其特征在于,还包括:
所述处理器检查所述第二程序块和所述第三程序块是否损坏或者是否完整;
则,在所述第二程序块和所述第三程序块任意之一损坏或者不完整的情况下,选择未损坏或者完整的程序块作为下一步的目标程序块;
在所述第二程序块和所述第三程序块均未损坏或者均完整的情况下,选择版本号较优的程序块作为下一步的目标程序块。
4.根据权利要求1所述的方法,其特征在于,所述处理器具体从第二程序块和第三程序块中选择版本较优的作为下一步的目标程序块。
5.根据权利要求2-4任一项所述的方法,其特征在于,在所述处理器选择所述第三程序块作为下一步的目标程序块的情况下,所述方法还包括:
所述处理器从所述第一存储器获取所述第三程序块的引导程序块并运行所述第三程序块的引导程序块,所述第三程序块的引导程序块用于确定所述第三程序块的存储位置,并将所述第三程序块加载到所述电子设备的内存中。
6.根据权利要求2或3所述的方法,其特征在于,还包括:
所述处理器修复损坏的或不完整的程序块,或者,所述处理器发出修复通知。
7.根据权利要求1-5任一项所述的方法,其特征在于,还包括:
所述处理器获取所述启动程序的升级包;
所述处理器选择从所述第二程序块和所述第三程序块中选择之一作为升级目标,采用所述升级包对所选择的程序块进行升级。
8.根据权利要求1-7任一项所述的方法,其特征在于,还包括:
所述启动程序是支持统一可扩展固件接口规范的UEFIBIOS。
9.一种电子设备的启动程序的升级方法,其特征在于,所述电子设备包括处理器、第一存储器和第二存储器,所述第一存储器为所述处理器能够直接读取其数据的只读存储器,所述第二存储器为所述处理器通过内存读取其数据的辅助存储器,所述方法包括:
所述处理器获取所述启动程序的升级包,其中,所述启动程序的第一部分所对应的第一程序块保存在所述第一存储器,所述第一程序块用于实现所述启动程序运行前的安全认证;
所述处理器从第二程序块和第三程序块中选择之一作为待升级的目标程序块,其中,所述第二程序块存储在所述第一存储器,所述第三程序块存储在所述第二存储器,所述第二程序块和所述第三程序块均属于所述启动程序的第二部分,均用于运行所述启动程序;
所述处理器根据所述启动程序的升级包,升级所述目标程序块。
10.一种电子设备,其特征在于,所述电子设备包括:处理器、第一存储器和第二存储器;
所述第一存储器为所述处理器能够直接读取其数据的只读存储器,所述第一存储器中存储第一程序块和第二程序块,所述第一程序块属于所述启动程序的第一部分,用于实现所述启动程序运行前的安全认证,所述第二程序块属于所述启动程序的第二部分,用于运行所述启动程序;
所述第二存储器为所述处理器通过内存读取其数据的辅助存储器,所述第二存储器中存储第三数据块,所述第三程序块属于所述启动程序的第二部分,用于运行所述启动程序;
所述处理器用于从所述第一存储器中获取所述第一程序,运行所述第一程序块以实现所述启动程序运行前的安全认证;
所述处理器还用于从所述第二程序块和所述第三程序块中选择之一作为下一步的目标程序块;
在所述第一程序块运行完毕之后,所述处理器用于运行所述目标程序块以运行所述启动程序。
11.根据权利要求10所述的电子设备,其特征在于,
所述处理器还用于检查所述第二程序块是否损坏或者是否完整;
则,在所述第二程序块损坏或者不完整的情况下,所述处理器选择所述第三程序块作为下一步的目标程序块,在所述第二程序块未损坏或完整的情况下,选择所述第二程序块作为下一步的目标程序块。
12.根据权利要求10所述的电子设备,其特征在于,
所述处理器还用于检查所述第二程序块和所述第三程序块是否损坏或者是否完整;
则,在所述第二程序块和所述第三程序块任意之一损坏或者不完整的情况下,所述处理器选择未损坏或者完整的程序块作为下一步的目标程序块;
在所述第二程序块和所述第三程序块均未损坏或者均完整的情况下,所述处理器选择版本号较优的程序块作为下一步的目标程序块。
13.根据权利要求10所述的电子设备,其特征在于,所述处理器具体用于从第二程序块和第三程序块中选择版本较优的作为下一步的目标程序块。
14.根据权利要求11-13任一项所述的电子设备,其特征在于,
在选择所述第三程序块作为下一步的目标程序块的情况下,所述处理器还用于从所述第一存储器获取所述第三程序块的引导程序块并运行所述第三程序块的引导程序块,所述第三程序块的引导程序块用于确定所述第三程序块的存储位置,并将所述第三程序块加载到所述电子设备的内存中。
15.根据权利要求11或12所述的电子设备,其特征在于,
所述处理器还用于修复损坏的或不完整的程序块,或者,发出修复通知。
16.根据权利要求10-14任一项所述的电子设备,其特征在于,
所述处理器还用于获取所述启动程序的升级包,选择从所述第二程序块和所述第三程序块中选择之一作为升级目标,采用所述升级包对所选择的程序块进行升级。
CN202110322576.XA 2021-03-25 2021-03-25 一种电子设备的启动程序的运行方法和电子设备 Pending CN115129384A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202110322576.XA CN115129384A (zh) 2021-03-25 2021-03-25 一种电子设备的启动程序的运行方法和电子设备
PCT/CN2022/082533 WO2022199622A1 (zh) 2021-03-25 2022-03-23 一种电子设备的启动程序的运行方法和电子设备
EP22774278.0A EP4296860A1 (en) 2021-03-25 2022-03-23 Method for running startup program of electronic device, and electronic device
US18/552,142 US20240176887A1 (en) 2021-03-25 2022-03-23 Method for Running Startup Program of Electronic Device, and Electronic Device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110322576.XA CN115129384A (zh) 2021-03-25 2021-03-25 一种电子设备的启动程序的运行方法和电子设备

Publications (1)

Publication Number Publication Date
CN115129384A true CN115129384A (zh) 2022-09-30

Family

ID=83374462

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110322576.XA Pending CN115129384A (zh) 2021-03-25 2021-03-25 一种电子设备的启动程序的运行方法和电子设备

Country Status (4)

Country Link
US (1) US20240176887A1 (zh)
EP (1) EP4296860A1 (zh)
CN (1) CN115129384A (zh)
WO (1) WO2022199622A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117112308A (zh) * 2023-09-14 2023-11-24 上海合芯数字科技有限公司 智能网卡的双基本输入输出系统切换方法、系统、终端、介质及网卡

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102419719A (zh) * 2010-09-27 2012-04-18 鸿富锦精密工业(深圳)有限公司 电脑系统及电脑系统的开机方法
CN103729220A (zh) * 2013-12-25 2014-04-16 合肥联宝信息技术有限公司 一种利用ec rom恢复bios rom的方法及装置
CN110908847A (zh) * 2019-11-22 2020-03-24 苏州浪潮智能科技有限公司 一种异常恢复方法、系统、电子设备及存储介质

Also Published As

Publication number Publication date
EP4296860A1 (en) 2023-12-27
WO2022199622A1 (zh) 2022-09-29
US20240176887A1 (en) 2024-05-30

Similar Documents

Publication Publication Date Title
US10613773B2 (en) Backing up firmware during initialization of device
US7430662B2 (en) Techniques for initializing a device on an expansion card
JP5540155B2 (ja) プラットフォーム独立メモリ論理の提供
TWI335536B (en) Information handling system (ihs) method and for updating a non-volatile memory (nvm) included in an information handling system
TWI382346B (zh) 保護雙基本輸出入系統程式之電腦系統及其控制方法
US9448889B2 (en) BIOS failover update with service processor
US10909247B2 (en) Computing device having two trusted platform modules
WO2016074127A1 (zh) 计算机设备及计算机设备内存启动的方法
US9448808B2 (en) BIOS update with service processor without serial peripheral interface (SPI) access
US10606677B2 (en) Method of retrieving debugging data in UEFI and computer system thereof
US20200250313A1 (en) Bios recovery and update
JP3629517B2 (ja) 情報処理装置のブートデバイス切替方法。
WO2022199622A1 (zh) 一种电子设备的启动程序的运行方法和电子设备
CN116627472A (zh) 高速外围组件设备的固件程序升级方法及服务器
US11354109B1 (en) Firmware updates using updated firmware files in a dedicated firmware volume
CN112667544A (zh) 一种控制主板插槽使能的方法、装置、系统及介质
JP4735765B2 (ja) Linuxプログラム起動システム
CN111176735B (zh) 一种心电图机启动加速方法
US20230069169A1 (en) Information processing apparatus and control method of the same
US10691444B1 (en) Launching updated firmware files stored in a dedicated firmware volume
CN117112520A (zh) 一种日志处理方法和电子设备
CN115408204A (zh) 芯片双固件备份启动方法、装置、电子设备及存储介质
CN116795437A (zh) 计算系统、计算机实施方法及计算机程序产品
CN117827304A (zh) 设备可执行固件的加载方法、装置、存储介质及电子设备
CN112068888A (zh) Linux系统设备启动方法、装置及终端设备

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