CN117093399A - 系统启动方法、片上系统、计算机设备及存储介质 - Google Patents

系统启动方法、片上系统、计算机设备及存储介质 Download PDF

Info

Publication number
CN117093399A
CN117093399A CN202311099572.5A CN202311099572A CN117093399A CN 117093399 A CN117093399 A CN 117093399A CN 202311099572 A CN202311099572 A CN 202311099572A CN 117093399 A CN117093399 A CN 117093399A
Authority
CN
China
Prior art keywords
chip
firmware
error information
running
error
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
CN202311099572.5A
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.)
Phytium Technology Co Ltd
Original Assignee
Phytium Technology 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 Phytium Technology Co Ltd filed Critical Phytium Technology Co Ltd
Priority to CN202311099572.5A priority Critical patent/CN117093399A/zh
Publication of CN117093399A publication Critical patent/CN117093399A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package

Abstract

本申请提供一种系统启动方法、片上系统、计算机设备及存储介质,应用于计算机技术领域,该方法应用于片上系统,片上系统包括处理器以及用于存储片上系统运行过程中的错误信息的RAS寄存器,处理器响应于重启信号,运行片上系统搭载的启动固件,在运行启动固件中的BL33固件的过程中,对RAS寄存器中的错误信息进行分析,并将所得的分析结果存储至预设存储区之后,继续运行启动固件,直至重启片上系统。通过本方法,可以实现在RAS检验机制发现的错误重启片上系统后恢复系统运行,满足实际运行需求,而且,仅需要在BL33阶段进行错误分析,降低片上系统内各软件栈的负担。

Description

系统启动方法、片上系统、计算机设备及存储介质
技术领域
本申请涉及计算机技术领域,具体涉及一种系统启动方法、片上系统、计算机设备及存储介质。
背景技术
当前,各计算机厂商为了提高片上系统的容错能力及可用性,提出RAS(Reliability Availability Serviceability,可靠性、可用性和可维护性)检验机制,通过RAS检验机制可以及时发现片上系统在实际运行中出现的错误,对于提高系统稳定性和可靠性具有重要意义。
在有些情况下,RAS检验机制发现的错误需要重启片上系统才能恢复系统运行,因此,如何提供一种系统启动方法以满足实际应用需求,成为本领域技术人员亟待解决的技术问题之一。
发明内容
有鉴于此,本申请致力于提供一种系统启动方法、片上系统、计算机设备及存储介质,该方法能够实现片上系统的重启,满足实际应用需求。
第一方面,本申请提供一种系统启动方法,应用于片上系统,所述片上系统包括处理器以及RAS寄存器,所述RAS寄存器用于存储所述片上系统运行过程中的错误信息,所述方法包括如下由所述处理器执行的步骤:响应于重启信号,运行所述片上系统搭载的启动固件;在运行所述启动固件中的BL33固件的过程中,获取所述RAS寄存器中的错误信息;对所述错误信息进行分析,并将所得的分析结果存储至预设存储区,所述分析结果用于所述处理器处理所述错误信息指示的错误;继续运行所述启动固件,直至重启所述片上系统。
基于上述内容,本申请提供的系统启动方法,应用于片上系统,片上系统包括处理器以及用于存储片上系统运行过程中的错误信息的RAS寄存器,处理器响应于重启信号,运行片上系统搭载的启动固件,在运行启动固件中的BL33固件的过程中,对RAS寄存器中的错误信息进行分析,并将所得的分析结果存储至预设存储区之后,继续运行启动固件,直至重启片上系统。通过本方法,可以实现在RAS检验机制发现的错误重启片上系统后恢复系统运行,满足实际运行需求,而且,仅需要在BL33阶段进行错误分析,降低片上系统内各软件栈的负担。
进一步的,由于BL33固件可以由用户自己根据实际需要设计,因此相当于将错误处理权限开放给用户使用,满足不同用户的个性化需求,有助于改善用户的使用感受。
再进一步的,片上系统中的操作系统可以根据分析结果处理错误信息对应的错误,有助于简化操作系统启动过程,进而提高系统稳定性。
在一种可能的实施方式中,在运行所述BL33固件之前,所述方法还包括:运行所述启动固件中的BL1固件;在所述BL1固件运行阶段,跳转至所述BL33固件,以第一次运行所述BL33固件;在运行所述启动固件中的BL33固件的过程中,获取所述RAS寄存器中错误信息,包括:在第一次运行所述BL33固件过程中,获取所述RAS寄存器中的错误信息。
在本申请中,将BL33固件的运行阶段提前,在BL1固件运行阶段即跳转至BL33固件,第一次执行BL33固件,在此过程中获取RAS寄存器中的错误信息,并进一步对所得错误信息进行分析,通过将分析错误信息的过程提前,可以有效缩短将操作权限开放给用户的时长,进而确保系统启动过程的安全性。
在一种可能的实施方式中,所述继续运行所述启动固件,包括:从所述BL33固件跳转回所述BL1固件,并继续运行所述BL1固件;在所述BL1固件运行结束之后,依次运行所述启动固件中的BL2固件以及BL31固件;在运行所述BL31固件之后,第二次运行所述BL33固件。
在本申请中,在BL33运行阶段对错误信息进行分析并得到分析结果之后,跳转回BL1固件,继续运行BL1固件,并在此之后一次运行BL2固件、BL31固件以及BL33固件,第一次运行BL33固件中获取并分析错误信息,可以实现片上系统的检测识别,之后跳转并按照上述顺序运行启动固件,可以实现错误的有效处理,实现错误故障的恢复,有助于提高片上系统运行的稳定性。
在一种可能的实施方式中,所述在第一次运行所述BL33固件过程中获取所述RAS寄存器中的错误信息,包括:在第一次运行所述BL33固件过程中,获取所述片上系统的复位原因;若所述复位原因为所述错误信息触发的主动复位,获取所述RAS寄存器中的错误信息。
在本申请中,首先确定片上系统的复位原因,在因为错误信息触发主动复位的情况下,才会获取RAS寄存器中的错误信息并执行后续操作,可以有效避免错误信息的分析处理过程影响片上系统的正常启动,降低系统启动流程负担,有助于提高片上系统的启动效率以及启动过程的稳定性。
在一种可能的实施方式中,对所述错误信息进行分析,包括:根据预设分析策略对所述错误信息进行分析,确定是否需要访问输出所述错误信息的功能模块,所述功能模块用于实现所述片上系统的预设功能;若是,访问所述功能模块,并根据所述功能模块的运行状态以及所述错误信息确定所述分析结果。
在本申请中,首先根据预设分析策略对错误信息进行初步分析,只有在需要访问功能模块对错误信息进行进一步分析的情况下才会访问功能模块,基于此,可以有效减少访问功能模块的次数,进而降低因为功能模块存在不可恢复的故障而导致系统宕机、重启失败的可能性,有助于提高片上系统重启成功的概率。
在一种可能的实施方式中,在运行所述片上系统搭载的启动固件之前,还包括:获取所述RAS寄存器中的错误信息;若所述错误信息表征需要重启所述片上系统,将所述片上系统中当前运行任务的目标任务信息存储至所述预设存储区;控制所述片上系统重启。
在本申请中,处理器可以根据错误信息的具体情况主动控制片上系统重启,进而及时处理相应的错误,恢复片上系统的正常运行,将错误对片上系统的影响降至最低,有助于提高片上系统运行的稳定性。
在一种可能的实施方式中,所述片上系统还包括电源管理模块,控制所述片上系统重启,包括:控制所述电源管理模块复位所述片上系统,并在复位完成后输出重启信号。
在本申请中,基于片上系统的具体构成,提供一种通过电源管理模块复位片上系统的实现方式,可以在不增加硬件成本的情况下完成系统的复位和重启。
在一种可能的实施方式中,所述预设存储区包括设置于所述片上系统内部的片内存储区;控制所述电源管理模块复位所述片上系统,包括:控制所述电源管理模块复位所述片上系统中所述片内存储区以及所述RAS寄存器以外的其他模块。
在本申请中,为避免片上系统在复位时将全部信息清空,处理器控制电源管理模块不对片内存储区以及RAS寄存器进行复位,从而保证片内存储区中的目标任务信息以及RAS寄存器中的错误信息不会被清空,进而确保重启过程顺利执行,确保重要数据的安全。
在一种可能的实施方式中,在所述片上系统重启后,所述方法还包括:基于所述目标任务信息恢复所述当前运行任务;以及,根据所述分析结果处理所述错误信息对应的错误。
在本申请中,片上系统重启即可根据片内存储区中存储的目标任务信息尽快恢复重启前所执行的运行任务,同时根据最终所得分析结果处理错误信息对应的错误,尽快恢复运行任务,可以确保用户操作不会因为重启而中断,有效改善用户的使用感受,根据分析结果处理错误信息对应的错误,片上系统在重启后不需要再次对错误信息进行分析,只需基于分析结果处理错误,有助于降低系统重启后的系统负担,对于提高系统运行的稳定性具有重要作用。
在一种可能的实施方式中,本发明第一方面提供的方法,还包括:在重启所述片上系统过程中,禁止对所述片内存储区以及所述RAS寄存器进行初始化操作。
在本申请中,在系统重启过程中,禁止对片内存储区以及RAS寄存器进行初始化操作,从而避免初始化过程清空片内存储区以及RAS寄存器中存储的信息,确保后续操作的可靠执行,进而实现片上系统重启。
在一种可能的实施方式中,所述BL33固件包括UBOOT、UEFI以及OPTEE中的任意一种。
在本申请中,BL33固件可以是UBOOT、UEFI以及OPTEE中的任意一种,本方法可以适用于多种系统引导程序,适用范围更广。
第二方面,本发明提供一种片上系统,包括:处理器和RAS寄存器,所述处理器执行如本发明第一方面任一项所述的系统启动方法。
第三方面,本发明提供一种计算机设备,包括如本发明第二方面所述的片上系统。
第四方面,本发明提供一种计算机可读存储介质,包括:存储有计算机程序,所述计算机程序被执行时实现如本发明第一方面任一项所述的系统启动方法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种片上系统的结构框图。
图2是本发明实施例提供的一种系统启动方法的流程图。
图3是本发明实施例提供的另一种系统启动方法的流程图。
图4是本发明实施例提供的另一种片上系统的结构框图。
图5是本发明实施例提供的再一种系统启动方法的流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
当前,各计算机厂商为了提高片上系统的容错能力及可用性,提出RAS(Reliability Availability Serviceability,可靠性、可用性和可维护性)验证机制。通过RAS检验机制可以及时发现片上系统在实际运行中出现的错误,对于提高系统稳定性和可靠性具有重要意义。
在实际应用中,片上系统内通常设置多个功能模块,各功能模块用于实现片上系统的预设功能,基于所实现预设功能的不同可以定义不同的功能模块,比如外设类控制器、片上存储单元以及存储类控制器等。
在RAS机制中,各功能模块设置有适配于自身运行特定的错误检测模块,通过错误检测模块能够检测自身可能出现的错误,并按照预设的错误上报路径将相应错误上报给处理器,在有些情况下,RAS检验机制发现的错误需要重启片上系统才能恢复系统运行,因此,如何提供一种系统启动方法以满足实际应用需求,成为本领域技术人员亟待解决的技术问题之一。
为解决上述问题,本发明提供一种片上系统,参见图1所示,本发明提供的片上系统包括处理器10以及RAS寄存器20,处理器10与RAS寄存器20通信连接。进一步的,本实施例提供的片上系统中,还包括设置于片上系统内部的片内存储区30,片内存储区30同样与处理器10通信连接。
如前所述,片上系统内部的各功能模块能够检测自身可能出现的错误,并在检测到错误后,将相应的错误信息按照预设的上报路径上报,RAS寄存器20即用于存储片上系统运行过程中的错误信息,亦即存储任一功能模块上报的错误信息。处理器10通过访问RAS寄存器20即可获取其所存储的错误信息。在实际应用中,RAS寄存器20可以包括至少一个寄存器组,当然,还可以采用其他实现方式,此处不再详述。
片内存储区30主要用于存储重要数据,对于片内存储区30的具体作用,将在后续内容中展开,此处暂不详述。处理器10可以向片内存储区30中写入数据,也可以读取片内存储区30中所存储的数据。在具体实现上,片内存储区30可以是片上系统中片内内存空间的一部分,当然也可以是单独设置的用于实现本方案的片上系统内部的存储空间,在未超出本发明核心思想范围的前提下,同样属于本发明保护的范围内。
处理器响应于重启信号,运行片上系统搭载的启动固件,在运行启动固件中的BL33固件的过程中,对RAS寄存器中的错误信息进行分析,并将所得的分析结果存储至预设存储区之后,继续运行启动固件,直至重启片上系统。通过本方法,可以实现在RAS检验机制发现的错误重启片上系统后恢复系统运行,满足实际运行需求,而且,仅需要在BL33阶段进行错误分析,降低片上系统内各软件栈的负担。
基于上述片上系统构成,本发明提供一种系统启动方法,应用于片上系统中的处理器,参见图2,本发明提供的系统启动方法的可以包括如下步骤。
S100、响应于重启信号,运行片上系统搭载的启动固件。
基于现有计算机技术,片上系统的重启过程可以由重启信号触发。在一种可能的实施方式中,该重启信号由片上系统的供电模块发出,因此,重启信号一般为供电模块发出的上电信号。当然,本发明述及的重启信号,还可以是在其他系统应用场景下,由其他模块以相应形式发出的能够触发片上系统启动的信号,具体可参照相关技术实现,此处不再详述。
固件是负责电子产品最基础、最底层工作的软件,通常存储于电子产品的只读存储器中,基于此,本申请述及的启动固件主要指用于实现启动片上系统,实现片上系统的操作系统顺利加载,进而确保片上系统正常运行的固件。
在一种可能的实施方式中,片上系统所搭载的启动固件包括多个子固件,比如BL(Boot Loader 1)1固件、BL2固件、BL31固件以及BL33固件等,在实际应用中,各个固件按照预设的运行顺序依次运行,实现各自对应的功能,并最终完成操作系统的加载,实现片上系统的启动。至于各个固件的启动顺序以及功能,将在本申请后续内容中详细展开,此处暂不详述。
可以理解的是,本步骤述及的运行片上系统搭载的启动固件,主要指开始运行该启动固件,并非在本步骤中即完成上述所有子固件的运行过程,本发明提供的启动方法,需要在BL33固件运行阶段中,进一步本方法的后续步骤。
S110、在运行启动固件中的BL33固件的过程中,获取RAS寄存器中的错误信息。
如前所述,在RAS机制中,片上系统内部的各个功能模块均能够检测自身可能出现的错误,并在检测到错误后将相应的错误信息按照预设的上报路径上报,在此过程中,片上系统运行过程中的错误信息将存储于RAS寄存器中。基于此,处理器在运行BL33固件过程中,即可读取RAS寄存器中所存储的错误信息。
在一种可能的实施方式中,获取RAS寄存器中存储的错误信息之前,处理器首先获取片上系统的复位原因,如果片上系统发生复位的原因是由RAS寄存器所存储的错误信息触发的主动复位,处理器则进一步获取RAS寄存器中存储的错误信息,并执行后续的S120步骤,相反的,如果片上系统发生复位的原因并非错误信息触发的主动复位,处理器则执行S130,正常重启片上系统。
可以理解的是,首先确定片上系统的复位原因,在因为错误信息触发主动复位的情况下,才会获取RAS寄存器中的错误信息并执行后续操作,而在并未因为错误信息触发主动复位的情况下则正常重启片上系统,可以有效避免错误信息的分析处理过程影响片上系统的正常启动,降低系统启动流程负担,有助于提高片上系统的启动效率以及启动过程的稳定性。
在一种可能的实施方式中,片上系统中设置有安全控制处理器(SecurityControl Processor,SCP),SCP用于记录片上系统的运行信息,其中即包括片上系统的复位原因,处理器与SCP进行信息交互,即可获得片上系统的复位原因。
S120、对错误信息进行分析,并将所得的分析结果存储至预设存储区。
处理器得到RAS寄存器存储的错误信息之后,即可展开对错误信息的分析。
在一种可能的实施方式中,处理器首先根据预设分析策略对错误信息进行分析,得到初步分析结果,根据初步分析结果确定是否需要访问输出错误信息的功能模块,如果确定需要访问相应的功能模块,则处理器进一步访问该功能模块,并根据功能模块的运行状态以及错误信息确定分析结果。
对于预设分析策略,可以基于片上系统中各功能模块常见的错误类型、片上系统的运行需求以及片上系统的性能参数等因素实现,此处不再详述。在实际应用中,只要能够基于错误信息确定是否需要访问功能模块进行进一步分析的方法都是可选的,在未超出本发明核心思想范围的前提下,同样属于本发明保护的范围内。
对错误信息进行初步分析,确定是否访问输出错误信息的功能模块的原因在于:功能模块中可能存在不可恢复的错误,如果访问功能模块则可能导致访问出错、程序卡死,进而造成重启失败,在访问之前进行判断,只有在需要访问功能模块对错误信息进行进一步分析的情况下才会访问功能模块,基于此,可以有效减少访问功能模块的次数,进而降低因为功能模块存在不可恢复的故障而导致系统宕机、重启失败的可能性,有助于提高片上系统重启成功的概率。
根据功能模块的运行状态以及错误信息确定分析结果的具体实现,主要需要结合片上系统中功能模块的具体的运行状态以及错误信息的具体内容实现。比如,功能部件检测的错误为与地址相关的错误时,在本步骤中即需要首先分析出错地址是否被使用,或者需要被使用,如果不需要被使用,可以忽略该错误。进一步的,如果该地址已经被使用,则该地址的数据已经不可用,需要丢弃,并重新加载相关数据,如果该地址将要被使用,则应该避免使用该地址,换做其他地址空间。在实际应用中,需要结合具体的实际情况确定分析结果。
进一步的,处理器可以基于所得分析结果处理错误信息指示的错误,至于处理错误的具体实现过程,可参照相关技术,本发明对此不做限定。
需要说明的是,结合图1所示实施例提供的片上系统,片上系统内部设置有片内存储区,基于此,可将所得分析结果存储于片内存储区中,即将片内存储区作为本实施例以及后续各个实施例中述及的预设存储区。在另一种可能的实施方式中,还可以设置位于片上系统外部的片外存储区,片上系统与该片外存储区通信连接,处理器在确定分析结果之后,可以将分析结果存储于片外存储区,当然,在需要时,处理器还可以访问片外存储区,获取片外存储区中的相关信息。
S130、继续运行启动固件,直至重启片上系统。
在得到错误信息的分析结果之后,处理器继续运行启动固件,直至完成操作系统加载,重启片上系统。
综上所述,本实施例提供的系统启动方法,在运行启动固件中的BL33固件的过程中,对RAS寄存器中的错误信息进行分析,并将所得的分析结果存储至预设存储区之后,继续运行启动固件,直至重启片上系统。通过本方法,可以实现在RAS检验机制发现的错误重启片上系统后恢复系统运行,满足实际运行需求,而且,仅需要在BL33阶段进行错误分析,降低片上系统内各软件栈的负担。
进一步的,由于BL33固件可以由用户自己根据实际需要设计,因此相当于将错误处理权限开放给用户使用,满足不同用户的个性化需求,有助于改善用户的使用感受。
再进一步的,片上系统中的操作系统可以根据分析结果处理错误信息对应的错误,有助于简化操作系统启动过程,进而提高系统稳定性。
在图2所示实施例的基础上,本发明提供另一种系统启动方法,参见图3所示,本实施例提供的系统启动方法的流程可以包括如下步骤。
S200、响应于重启信号,运行片上系统搭载的启动固件。
在一种可能的实施方式中,S200可参照图2所示实施例中S100的相关内容实现,此处不再复述。
S210、运行启动固件中的BL1固件。
结合相关技术,BL1固件可以称为可信启动ROM(Trusted Boot ROM),是启动过程中运行最早的固件,也是存储于只读存储器(read only memory,ROM)中的固件。BL1固件与计算设备的BIOS(Basic Input Output System,基本输入输出系统)并不在一起,在一些类型的可信固件技术中,BL1固件是一切的信任根。BL1固件可以用于初始化计算设备的核心硬件(例如可信静态随机存取存储器(Trusted SRAM)、串口等),并找到BL2固件,一些情况下,BL1固件会对BL2固件进行验签。BL1固件运行在EL3特权级上。至于BL1固件的其他相关信息,以及运行BL1固件的具体过程,均可参照相关技术,此处不再详述。
S220、在BL1固件运行阶段,跳转至BL33固件,以第一次运行BL33固件。
现有技术中,在BL1固件运行阶段后期,处理器会从对应的启动设备中加载BL2固件,并放到对应的内存中,最后跳转到执行BL2固件。与现有技术不同的是,本实施例中,处理器在运行BL1固件完成系统的部分初始化之后,跳转至BL33固件,第一次运行BL33固件。
BL33固件可以包括运行在普通世界的固件,比如面向桌面、服务器等领域的UEFI(Unified Extensible Firmware Interface,可扩展固件接口)固件或者UBOOT(面向嵌入式领域的引导加载程序)固件,也可以包括Linux Kernel(Linux内核),当然,还可以包括OPTEE(Open Portable Trusted Execution Environment,开放可移植可信执行环境)固件。
将BL33固件的运行阶段提前,在BL1固件运行阶段即跳转至BL33固件,第一次执行BL33固件,在此过程中获取RAS寄存器中的错误信息,并进一步对所得错误信息进行分析,通过将分析错误信息的过程提前,可以有效缩短将操作权限开放给用户的时长,进而确保系统启动过程的安全性。
S230、在第一次运行BL33固件过程中,获取RAS寄存器中的错误信息。
在一种可能的实施方式中,S230可参照图2所示实施例中S110的相关内容实现,此处不再复述。
在另一种可能的实施方式中,在第一次运行BL33固件过程中,处理器首先获取片上系统的复位原因,如果复位原因为错误信息触发的主动复位,则处理器进一步获取RAS寄存器中的错误信息。对于此实施方式的具体实现,同样可以参照前述内容实现,此处不再详述。
S240、对错误信息进行分析,并将所得的分析结果存储至预设存储区。
在一种可能的实施方式中,S240可参照图2所示实施例中S120的相关内容实现,此处不再复述。
如前所述,BL33固件主要包括运行在普通世界的固件,是用户可以直接参与更新升级的,基于此,在BL33固件运行阶段对错误信息进行分析并将所得分析结果存储至预设存储区,相当于将错误处理权限开放给用户使用,从而能够满足不同用户的个性化需求,有助于改善用户的使用感受。
S250、从BL33固件跳转回BL1固件,并继续运行BL1固件。
在将所得分析结果存储至预设存储区之后,处理器从BL33固件跳转回BL1固件,并继续运行BL1固件。
S260、在BL1固件运行结束之后,依次运行启动固件中的BL2固件以及BL31固件。
BL2固件可以称为可信启动固件(Trusted Boot Firmware),BL2固件同样运行在EL3特权级上,BL2固件和BL1固件的显著不同是BL2固件可以存储在外置的可信存储设备上,它的可信可以是建立在BL1固件对它的验证上。BL2固件会初始化一些关键安全硬件和软件框架,比如初始化DDR、MMU、串口等,进一步的,BL2固件在初始化完成之后,会找到BL31固件,将BL31固件加载到指定的内存中,进而可以执行后续的启动步骤。在一些实施例中,通过BL2固件还可以签名认证BL31固件。
BL31固件可以称为EL3运行固件(EL3 Runtime Firmware)。BL31固件也运行在EL3特权级上,是EL3特权级最后的安全堡垒。BL31固件不像BL1固件和BL2固件是一次性运行的,它通过安全监视调用(Secure Monitor Call,SMC)为普通世界(Non-Secure)持续提供涉及安全的服务。
S270、在运行BL31固件之后,第二次运行BL33固件,直至启动片上系统。
第二次运行BL33固件的具体实现,可参照相关技术实现,本发明对此不做限定。在运行BL33固件之后,处理器会进一步加载片上系统的操作系统直至最终完成片上系统的重启,加载操作系统以及相关步骤的具体实现,同样可以参照相关技术实现,此处不再详述。
综上所述,在图2所示实施例的基础上,通过本实施例提供的系统启动方法,在BL33运行阶段对错误信息进行分析并得到分析结果之后,跳转回BL1固件,继续运行BL1固件,并在此之后一次运行BL2固件、BL31固件以及BL33固件,第一次运行BL33固件中获取并分析错误信息,可以实现片上系统的检测识别,之后跳转并按照上述顺序运行启动固件,可以实现错误的有效处理,实现错误故障的恢复,有助于提高片上系统运行的稳定性。
进一步的,参见图4,图4是本发明实施例提供的另一种片上系统的结构框图,在图3所示实施例的基础上,本实施例提供的片上系统还包括电源管理模块40。
电源管理模块40与处理器10相连,为处理器10提供工作电压,更为重要的是,电源管理模块40还可以控制片上系统复位以及重启,对于这一功能将在后续实施例中具体展开。至于电源管理模块40在片上系统中的其他功能,均可参照相关技术,此处不再详述。
基于图4所示实施例提供的片上系统,本发明还提供另一种系统启动方法,其执行流程可参见图5所示。
S300、获取RAS寄存器中的错误信息。
结合上述内容,处理器与RAS寄存器通信连接,处理器可以获取RAS寄存器中存储的错误信息。至于处理器访问RAS寄存器以及RAS寄存器存储错误信息等内容的具体实现,均可以参照前述内容以及相关技术实现,本发明对此不做限定。
在一种可能的实施方式中,如果片上系统出现较为严重的错误,比如某一错误需要片上系统主动复位才能将错误修复,此种情况下,RAS寄存器也可以采用中断的方式向处理器传输错误信息。
S310、判断错误信息是否表征需要重启片上系统,若错误信息表征需要重启片上系统,执行S320。
处理器得到错误信息后,根据错误信息判断是否需要重启片上系统,如果错误信息表征需要重启片上系统,则执行S320,相反的,如果错误信息表征不需要重启片上系统,则退出当前的控制过程。
可以理解的是,对于确定的片上系统而言,其运行过程中可能出现的错误往往是可以预知的,相应的,哪些错误的修复需要重启片上系统或者在具体在何种情况下需要重启片上系统都是可预知的,基于此,在一种可能的实施方式中,可以对错误进行分类,确定需要重启片上系统才能修复的错误,并记录各错误对应的错误信息,处理器在得到错误信息之后,通过查询记录结果即可确定是否需要重启片上系统。当然,还可以基于错误信息以其他方式确定是否需要重启片上系统,在未超出本发明核心思想范围的前提下,同样属于本发明保护的范围内。
S320、将片上系统中当前运行任务的目标任务信息存储至预设存储区。
在确定需要重启片上系统的情况下,处理器将片上系统中当前运行任务的目标任务信息存储至预设存储区,其中,目标任务信息主要指能够用于在片上系统重启后恢复该当前运行任务所需的信息。可以理解的是,对于不同的运行任务,其中断执行后恢复执行所需要的任务信息是不同的,因此,在实际应用中,目标任务信息的具体选取需要结合当前运行任务的具体情况确定,本发明对此不做限定。
结合前述内容可知,目标任务信息可以存储于片内存储区,也可以存储于片外存储区,但是,由于将目标任务信息存储于片外存储区会在系统重启时增加数据访问的难度,降低片上系统重启的效率,因此,将目标任务信息存储于片内存储区是更好的选择。
S330、控制片上系统重启。
完成目标任务信息的存储后,处理器即控制片上系统重启。结合前述内容,片上系统内部的电源管理模块实现片上系统的复位和重启,基于此,处理器向电源管理模块发送第一控制指令,通过第一控制指令控制电源管理模块复位片上系统,并在复位后输出重启信号。对于电源管理模块而言,其在接收第一控制指令之后,对所得指令进行解析,如果所得指令表征需要复位并重启片上系统,则会对片上系统进行复位和重启。
结合上述内容可知,本发明提供的系统启动方法,重启片上系统的过程需要依赖于RAS寄存器中存储的错误信息,同时,恢复因重启而中断的运行任务还需要目标任务信息,片上系统复位有可能导致这两类信息的丢失(特别是在目标任务信息存储于片内存储区的情况下),因此,在控制电源管理模块复位片上系统的具体实现过程中,应控制电源管理模块复位片上系统中片内存储区以及RAS寄存器以外的其他模块,保留片内存储区以及RAS寄存器中的内容。处理器控制电源管理模块不对片内存储区以及RAS寄存器进行复位,从而保证片内存储区中的目标任务信息以及RAS寄存器中的错误信息不会被清空,进而确保重启过程顺利执行,确保重要数据的安全。
可以理解的是,与片上系统的复位过程类似,片上系统在重启过程中所进行的初始化操作同样会造成RAS寄存器中的错误信息以及片内存储区中的目标任务信息被清空,因此,在重启片上系统的过程中,还应禁止对片内存储区以及RAS寄存器进行初始化操作。在系统重启过程中,禁止对片内存储区以及RAS寄存器进行初始化操作,从而避免初始化过程清空片内存储区以及RAS寄存器中存储的信息,确保后续操作的可靠执行,进而实现片上系统重启。
在另一种可能的实施方式中,处理器还可能因为其他原因需要重启片上系统,当然,此处的其他原因主要指因为错误信息而主动复位片上系统以外的原因,此种情况下,片内存储区以及RAS寄存器中的信息并不会影响片上系统的重启,处理器向电源管理模块发送第二控制指令,电源管理模块响应于该第二控制指令,对片上系统全部模块进行复位。
电源管理模块在按照上述方法完成片上系统的复位后,即输出重启信号。处理器响应于重启信号,执行后续S340至S370步骤。至于S340至S370的具体实现方式,可参照图2所示实施例提供的系统启动方法实现,此处不再复述。
需要说明的是,图5所示实施例提供的系统启动方法中,S300至S330对应的重启片上系统的方法,同样可以和图3所示实施例提供的方法相结合,实现片上系统的复位和重启。
综上所述,通过本实施例提供的系统启动方法,处理器可以根据错误信息的具体情况主动控制片上系统重启,进而及时处理相应的错误,恢复片上系统的正常运行,将错误对片上系统的影响降至最低,有助于提高片上系统运行的稳定性。
进一步的,在按照上述任一实施例提供的系统启动方法重启片上系统之后,处理器还可以进一步范围片内存储区,获取片内存储区中存储的目标任务信息以及错误信息的分析结果,并基于目标任务信息恢复片上系统重启前的当前运行任务,同时,根据所得分析结果处理错误信息对应的错误,恢复片上系统的正常运行。
在本申请中,片上系统重启即可根据片内存储区中存储的目标任务信息尽快恢复重启前所执行的运行任务,同时根据最终所得分析结果处理错误信息对应的错误,尽快恢复运行任务,可以确保用户操作不会因为重启而中断,有效改善用户的使用感受,根据分析结果处理错误信息对应的错误,片上系统在重启后不需要再次对错误信息进行分析,只需基于分析结果处理错误,有助于降低系统重启后的系统负担,对于提高系统运行的稳定性具有重要作用。
进一步的,本发明还提供一种计算机设备,包括前述任一实施例提供的片上系统。
在一些实施例中,本实施例还提供了一种计算机可读存储介质,如软盘、光盘、硬盘、闪存、U盘、SD(Secure Digital Memory Card,安全数码卡)卡、MMC(Multimedia Card,多媒体卡)卡等,在该计算机可读存储介质中存储有实现上述各个步骤的一个或者多个指令,这一个或者多个指令被一个或者多个处理器执行时,使得所述处理器执行前文描述的系统启动方法。相关具体实现请参考前述描述,此处不过多赘述。
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行本说明书上述内容中描述的根据本申请各种实施例的系统启动方法中的步骤。
计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
本领域技术人员能够理解,本公开所披露的内容可以出现多种变型和改进。例如,以上所描述的各种设备或组件可以通过硬件实现,也可以通过软件、固件、或者三者中的一些或全部的组合实现。
此外,虽然本公开对根据本公开的实施例的系统中的某些单元做出了各种引用,然而,任何数量的不同单元可以被使用并运行在客户端和/或服务器上。单元仅是说明性的,并且系统和方法的不同方面可以使用不同单元。
本公开中使用了流程图用来说明根据本公开的实施例的方法的步骤。应当理解的是,前面或后面的步骤不一定按照顺序来精确的进行。相反,可以按照倒序或同时处理各种步骤。同时,也可以将其他操作添加到这些过程中。
本领域普通技术人员可以理解上述方法中的全部或部分的步骤可通过计算机程序来指令相关硬件完成,程序可以存储于计算机可读存储介质中,如只读存储器等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本公开并不限制于任何特定形式的硬件和软件的结合。
除非另有定义,这里使用的所有术语具有与本公开所属领域的普通技术人员共同理解的相同含义。还应当理解,诸如在通常字典里定义的那些术语应当被解释为具有与它们在相关技术的上下文中的含义相一致的含义,而不应用理想化或极度形式化的意义来解释,除非这里明确地这样定义。
以上是对本公开的说明,而不应被认为是对其的限制。尽管描述了本公开的若干示例性实施例,但本领域技术人员将容易地理解,在不背离本公开的新颖教学和优点的前提下可以对示例性实施例进行许多修改。因此,所有这些修改都意图包含在权利要求书所限定的本公开范围内。应当理解,上面是对本公开的说明,而不应被认为是限于所公开的特定实施例,并且对所公开的实施例以及其他实施例的修改意图包含在所附权利要求书的范围内。本公开由权利要求书及其等效物限定。

Claims (14)

1.一种系统启动方法,其特征在于,应用于片上系统,所述片上系统包括处理器以及RAS寄存器,所述RAS寄存器用于存储所述片上系统运行过程中的错误信息,所述方法包括如下由所述处理器执行的步骤:
响应于重启信号,运行所述片上系统搭载的启动固件;
在运行所述启动固件中的BL33固件的过程中,获取所述RAS寄存器中的错误信息;
对所述错误信息进行分析,并将所得的分析结果存储至预设存储区,所述分析结果用于所述处理器处理所述错误信息指示的错误;
继续运行所述启动固件,直至重启所述片上系统。
2.根据权利要求1所述的方法,其特征在于,在运行所述BL33固件之前,所述方法还包括:
运行所述启动固件中的BL1固件;
在所述BL1固件运行阶段,跳转至所述BL33固件,以第一次运行所述BL33固件;
在运行所述启动固件中的BL33固件的过程中,获取所述RAS寄存器中错误信息,包括:
在第一次运行所述BL33固件过程中,获取所述RAS寄存器中的错误信息。
3.根据权利要求2所述的方法,其特征在于,所述继续运行所述启动固件,包括:
从所述BL33固件跳转回所述BL1固件,并继续运行所述BL1固件;
在所述BL1固件运行结束之后,依次运行所述启动固件中的BL2固件以及BL31固件;
在运行所述BL31固件之后,第二次运行所述BL33固件。
4.根据权利要求2所述的方法,其特征在于,所述在第一次运行所述BL33固件过程中获取所述RAS寄存器中的错误信息,包括:
在第一次运行所述BL33固件过程中,获取所述片上系统的复位原因;
若所述复位原因为所述错误信息触发的主动复位,获取所述RAS寄存器中的错误信息。
5.根据权利要求1所述的方法,其特征在于,对所述错误信息进行分析,包括:
根据预设分析策略对所述错误信息进行分析,确定是否需要访问输出所述错误信息的功能模块,所述功能模块用于实现所述片上系统的预设功能;
若是,访问所述功能模块,并根据所述功能模块的运行状态以及所述错误信息确定所述分析结果。
6.根据权利要求1所述的方法,其特征在于,在运行所述片上系统搭载的启动固件之前,还包括:
获取所述RAS寄存器中的错误信息;
若所述错误信息表征需要重启所述片上系统,将所述片上系统中当前运行任务的目标任务信息存储至所述预设存储区;
控制所述片上系统重启。
7.根据权利要求6所述的方法,其特征在于,所述片上系统还包括电源管理模块,控制所述片上系统重启,包括:
控制所述电源管理模块复位所述片上系统,并在复位完成后输出重启信号。
8.根据权利要求7所述的方法,其特征在于,所述预设存储区包括设置于所述片上系统内部的片内存储区;
控制所述电源管理模块复位所述片上系统,包括:
控制所述电源管理模块复位所述片上系统中所述片内存储区以及所述RAS寄存器以外的其他模块。
9.根据权利要求6所述的方法,其特征在于,在所述片上系统重启后,所述方法还包括:基于所述目标任务信息恢复所述当前运行任务;
以及,根据所述分析结果处理所述错误信息对应的错误。
10.根据权利要求8所述的方法,其特征在于,还包括:在重启所述片上系统过程中,禁止对所述片内存储区以及所述RAS寄存器进行初始化操作。
11.根据权利要求1至10任一项所述的方法,其特征在于,所述BL33固件包括UBOOT、UEFI以及OPTEE中的任意一种。
12.一种片上系统,其特征在于,包括:处理器和RAS寄存器,所述处理器执行如权利要求1至11任一项所述的系统启动方法。
13.一种计算机设备,其特征在于,包括如权利要求12所述的片上系统。
14.一种计算机可读存储介质,其特征在于,包括:存储有计算机程序,所述计算机程序被执行时实现如权利要求1至11任一项所述的系统启动方法。
CN202311099572.5A 2023-08-29 2023-08-29 系统启动方法、片上系统、计算机设备及存储介质 Pending CN117093399A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311099572.5A CN117093399A (zh) 2023-08-29 2023-08-29 系统启动方法、片上系统、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311099572.5A CN117093399A (zh) 2023-08-29 2023-08-29 系统启动方法、片上系统、计算机设备及存储介质

Publications (1)

Publication Number Publication Date
CN117093399A true CN117093399A (zh) 2023-11-21

Family

ID=88773090

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311099572.5A Pending CN117093399A (zh) 2023-08-29 2023-08-29 系统启动方法、片上系统、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN117093399A (zh)

Similar Documents

Publication Publication Date Title
US6711675B1 (en) Protected boot flow
CN103718165B (zh) Bios闪存攻击保护和通知
US8468342B2 (en) Computer system and method for performing integrity detection on the same
US20150378846A1 (en) Method, computer program, and computer for restoring set of variables
CN109670319B (zh) 一种服务器flash安全管理方法及其系统
US8595552B2 (en) Reset method and monitoring apparatus
US20070174704A1 (en) Computer program automatic recovery activation control method and system
US20190286436A1 (en) System and Method for Automated BIOS Recovery After BIOS Corruption
WO2016206514A1 (zh) 启动处理方法及装置
US10909247B2 (en) Computing device having two trusted platform modules
CN107766102B (zh) 双基本输出入系统(bios)的开机方法及具有其的电子装置
US11704198B2 (en) Method and apparatus for providing recovery from a computing device boot up error
CN107567629A (zh) 在可信执行环境容器中的动态固件模块加载器
US9448888B2 (en) Preventing a rollback attack in a computing system that includes a primary memory bank and a backup memory bank
CN101697132A (zh) 一种操作系统快速重启的方法、装置和网络设备
US11163643B2 (en) Boot data validity
CN117093399A (zh) 系统启动方法、片上系统、计算机设备及存储介质
CN114356658A (zh) 固件升级异常的处理方法、计算机设备以及可读存储介质
WO2008048581A1 (en) A processing device operation initialization system
US9804932B2 (en) Method and device for processing data and electronic apparatus
US10768940B2 (en) Restoring a processing unit that has become hung during execution of an option ROM
US8281117B2 (en) Method and a memory unit for booting a server by copying boot data from an exchangeable memory unit to primary hard disk of the server
US20220206823A1 (en) Information processing method and electronic apparatus
CN117130672A (zh) 服务器启动流程控制方法、系统、终端及存储介质
TW201327139A (zh) 節點置換處理方法與使用其之伺服器系統

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