[go: up one dir, main page]

CN115408204A - 芯片双固件备份启动方法、装置、电子设备及存储介质 - Google Patents

芯片双固件备份启动方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN115408204A
CN115408204A CN202211069001.2A CN202211069001A CN115408204A CN 115408204 A CN115408204 A CN 115408204A CN 202211069001 A CN202211069001 A CN 202211069001A CN 115408204 A CN115408204 A CN 115408204A
Authority
CN
China
Prior art keywords
firmware
chip
startup
value
field
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
CN202211069001.2A
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.)
Shenzhen Netforward Microelectronic Co ltd
Original Assignee
Shenzhen Netforward Microelectronic 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 Shenzhen Netforward Microelectronic Co ltd filed Critical Shenzhen Netforward Microelectronic Co ltd
Priority to CN202211069001.2A priority Critical patent/CN115408204A/zh
Publication of CN115408204A publication Critical patent/CN115408204A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请属于集成电路技术领域,公开了一种芯片双固件备份启动的方法、装置、电子设备及存储介质。本申请实施例提供的芯片双固件备份启动的方法包括:步骤S1:运行启动程序;步骤S2:根据所述启动程序读取指示寄存器的值,并根据所述指示寄存器的值决定出所述芯片应选择的启动模式,以及根据所述芯片的启动模式更新所述指示寄存器的值,所述启动模式包括主固件启动和从固件启动;步骤S3:读取更新后的所述指示寄存器的值,根据更新后的所述指示寄存器的值确定所述芯片的启动模式。本申请实施例提供的芯片双固件备份启动的方法只需要一个FLASH芯片就能实现主从固件备份切换启动,大幅度节省了设置主从固件所占用的资源,降低了产品的成本和研发周期。

Description

芯片双固件备份启动方法、装置、电子设备及存储介质
技术领域
本申请属于集成电路技术领域,涉及一种芯片双固件备份启动的方法、装置、电子设备及存储介质。
背景技术
常见的如计算机设备、嵌入式设备等核心为各种芯片的设备,通过芯片控制设备的运行以及数据的读写,固件(firmware)是直接控制芯片执行行为的指令集,因此固件版本的正确性和可靠性关系到设备能否正常启动和正常工作,通常会设置主从固件以保证设备的正常启动和正常工作,主固件启动失败,则切换为从固件启动,以此实现了1:1的冗余备份。
然而传统的使用双固件备份的设备,如嵌入式设备,如果想要实现主从固件备份切换,需要额外设置一个FPGA或CPLD作为辅助器件,以及额外设置两个FLASH存储芯片存储主固件和从固件,如此才能实现双固件备份启动设备,并且额外设置的FPGA或CPLD还需要单独开发逻辑代码,增加了成本和研发周期,并且占用了更多的资源。
发明内容
本申请的目的在于提供一种芯片双固件备份启动的方法、装置、电子设备及存储介质,以解决传统的双固件备份启动的设备成本高且占用资源多的技术问题。
为解决上述技术问题,本申请的技术方案如下:
本申请实施例提供一种芯片双固件备份启动的方法,所述方法包括:
步骤S1:运行启动程序;
步骤S2:根据所述启动程序读取指示寄存器的值,并根据所述指示寄存器的值决定出所述芯片应选择的启动模式,以及根据所述芯片选择的启动模式更新所述指示寄存器的值,所述启动模式包括主固件启动和从固件启动;
步骤S3:读取更新后的所述指示寄存器的值,根据更新后的所述指示寄存器的值确定所述芯片的启动模式。
进一步地,所述指示寄存器的值包括:
第一字段,所述第一字段为第一值时,表示所述芯片的启动模式为主固件启动,所述第一字段为第二值时,表示所述芯片的启动模式为从固件启动;
第二字段,所述第二字段用于表示所述芯片的启动状态,所述第二字段为第三值时,表示所述芯片启动成功或复位成功,所述第二字段为第四值时,表示校验所述芯片启动是否有效,所述第二字段为第五值时,表示所述芯片正在启动。
进一步地,所述步骤S2包括:
当所述指示寄存器的第一字段为第一值,且所述指示寄存器的第二字段为第三值时,所述芯片选择主固件启动;否则,所述芯片选择从固件启动。
进一步地,所述步骤S3包括:
当更新后的所述指示寄存器的第一字段为第一值时,所述芯片使用主固件启动;当更新后的所述第一字段为第二值时,所述芯片使用从固件启动。
进一步地,所述步骤S3中,当所述启动模式为主固件启动时,包括:
步骤S31:更新所述指示寄存器的第二字段为第四值,并校验所述主固件的版本是否有效,若所述主固件的版本有效,则转至步骤S32,若所述主固件的版本无效,则复位所述芯片,并转至步骤S1;
步骤S32:更新所述指示寄存器的第二字段为第五值,并使所述主固件在静态随机存取存储器中运行;
步骤S33:根据所述静态随机存取存储器中运行的主固件判断所述芯片启动是否成功,若所述芯片启动成功,则更新所述指示寄存器的第二字段为第三值,若所述芯片启动失败,则复位所述芯片,并转至所述步骤S1。
进一步地,所述步骤S3中,当所述启动模式为从固件启动时,包括:
步骤S34:更新所述指示寄存器的第二字段为第四值,并校验所述从固件的版本是否有效,若所述从固件的版本有效,则转至步骤S32,若所述从固件的版本无效,则复位所述芯片,并转至步骤S1;
步骤S35:更新所述指示寄存器的第二字段为第五值,并使所述从固件在静态随机存取存储器中运行;
步骤S36:根据所述静态随机存取存储器中运行的从固件判断所述芯片启动是否成功,若所述芯片启动成功,则更新所述指示寄存器的第二字段为第三值,若所述芯片启动失败,则复位所述芯片,并转至所述步骤S1。
基于上述任一芯片双固件备份启动的方法,本申请实施例还提供一种芯片双固件备份启动的装置,所述装置包括:
固件存储模块,所述固件存储模块用于存储主固件和从固件,所述主固件和从固件均用于启动所述装置;
指示模块,所述指示模块包括指示寄存器,用于表示所述装置的启动模式和启动状态;
控制模块,所述控制模块包括非易失性存储器,用于根据启动程序控制所述装置的启动模式;
启动模块,所述启动模块包括静态随机存取存储器,用于根据所述启动程序获取所述主固件并运行所述主固件程序,或获取所述从固件并运行所述从固件程序;
其中,所述固件存储模块设于第一芯片,所述指示模块、控制模块和启动模块设于第二芯片。
进一步地,所述装置还包括:
执行模块,所述执行模块包括内核,用于实施所述控制模块、所述启动模块、所述指示模块发出的程序指令;所述执行模块设于所述第二芯片。
基于上述任一芯片双固件备份启动的方法,本申请实施例还提供一种电子设备,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行上述任一项所述的芯片双固件备份启动的方法的步骤。
基于上述任一芯片双固件备份启动的方法,本申请实施例还提供一种计算机可读存储介质,用于存储计算机指令,当所述计算机指令被运行时,执行时实现上述任一项所述的芯片双固件备份启动的方法的步骤。
相比于现有技术,本申请的有益效果在于:
本申请实施例提供的芯片双固件备份启动的方法和装置,只需要额外提供一个FLASH芯片就能实现使用主从固件备份切换启动设备,大幅度节省了设置主从固件所占用的资源,降低了产品的成本和研发周期。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的双固件备份启动方法的流程图。
图2为本申请实施例提供的双固件备份启动装置的结构示意图。
图3为本申请实施例提供的双固件备份启动装置的结构框图。
图4为本申请实施例提供的装置可以设置于集成电路系统中的结构框图。
具体实施方式
下面结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整的描述。应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
本申请实施例提供一种芯片双固件备份启动的方法,图1为本申请实施例提供的双固件备份启动方法的流程图,如图1所示,该方法包括:
步骤S1:使芯片上电,运行启动程序;启动程序存储于芯片的非易失性存储器(boot read-only memory),该启动程序会在芯片流片时被固化,不能修改,本申请提供的方法的逻辑处理代码便固化在非易失性存储器(boot read-only memory)中。
步骤S2:根据启动程序读取指示寄存器的值,并根据指示寄存器的值仲裁出所述芯片应选择的启动模式,更新指示寄存器的值,启动模式包括主固件启动和从固件启动;指示寄存器是用于表示芯片的启动模式和启动状态的,设置指示寄存器的第一字段的值表示芯片的启动模式,设置指示寄存器的第二字段的值表示芯片的启动状态,启动程序运行后,将读取指示寄存器的值进行主从仲裁,主从仲裁的目的是仲裁出本次芯片启动使使用主固件启动还是使用从固件启动,并在仲裁出启动模式后,将仲裁结果写入指示寄存器的第一字段,主固件和从固件均存储在一个FLASH芯片中,该FLASH芯片区别于本申请所述的芯片,仅用于存储主固件和从固件,芯片的启动状态包括有重置状态、校验状态、运行状态以及无效状态,其中重置状态表示芯片已经被重置或芯片已经启动成功,校验状态表示正在校验固件(主固件或从固件)的有效性,运行状态表示正在使用固件启动芯片,无效状态表示未被定义,此时用户可以自定义功能使无效状态表示该功能。
步骤S3:读取更新后的第一字段,根据更新后的第一字段确定启动模式,启动程序在仲裁出本次芯片启动使用的固件后,此时启动程序将更新第一字段,如若仲裁出本次芯片启动使用主固件启动,将更新第一字段,使第一字段表示的启动模式为主固件启动,若仲裁出本次芯片启动使用从固件启动,将更新第一字段,使第一字段表示的启动模式为从固件启动,更新完指示寄存器的第一字段后,启动程序将再一次读取第一字段以进一步确定芯片的启动模式。
在一些实施例中,本申请实施例的指示寄存器的设置如下表所示:
Figure 208462DEST_PATH_IMAGE002
其中,Bit位表示指示寄存器的值,分为第一字段和第二字段,第一字段表示为Boot_src,Bit[0]=0时,表示第一字段boot_src的值为第一值0,此时使用主固件启动芯片,Bit[0]=1时,表示第一字段boot_src的值为第二值1,此时使用从固件启动芯片,Defaultvaule is 0表示第一字段boot_src的默认值为第一值0;第二字段表示为boot_status,Bit[2:1]=00时,表示第二字段boot_status的值为第三值00,此时芯片已经被重置或者芯片已经启动成功,Bit[2:1]=01时,表示第二字段boot_status的值为第四值01,此时在校验固件的有效性,Bit[2:1]=10时,表示第二字段boot_status的值为第五值10,此时正在使用固件启动芯片,Bit[2:1]=11为预留值,可以由用户自定义Bit[2:1]=11时所表示的功能。
应当明确的是,指示寄存器的设置并不唯一,用户完全可以根据需求设置不同Bit为所表示的功能,如用户可以设置为Bit[0]表示使用从固件启动芯片,或Bit[1]表示为使用主固件启动芯片,或第一字段的默认值也可以设置为1,甚至用户还可以设置Bit[00]表示使用主固件启动芯片,总而言之,指示寄存器的各Bit位所表示的功能完全可以自定义设置,只要将设置结果与启动程序对应即可,此外,指示寄存器的Bit位也并不仅包括三个,本申请实施例只是因为三个Bit位足够表示,因此使用了寄存器的三个Bit位。
在一些实施例中,使用如上表所述的指示寄存器,步骤S2中启动程序所执行的主从仲裁逻辑为:if(boot_src==master && boot_status=00),表示只有满足第一字段boot_src的值为0,且第二字段boot_status的值为00时,芯片使用主固件启动;否则,芯片都将使用从固件启动,如第一字段boot_src的值为0,但是第二字段boot_status的值为01或10或11时,芯片也会使用从固件启动,第二字段boot_status的值不是00时,则表示已经发生过启动的动作,且启动失败,因此,仲裁结果若出现了第二字段boot_status的值不是00时,会将主固件启动切换为从固件启动;仲裁出新的启动模式后,启动程序将更新第一字段boot_src的值,如更新前第一字段boot_src的值为0,但仲裁结果为从固件启动,此时启动程序将会更新第一字段boot_src的值为1,表示本次芯片启动使用从固件启动。
在一些实施例中,使用如上表所述的指示寄存器,步骤S3中启动程序根据if(boot_src==master)确定本次芯片使用的启动固件,若本次芯片使用主固件启动时,包括:
步骤S31:更新指示寄存器的第二字段boot_status的值为01,表示此时正在校验主固件的版本是否有效,若主固件的版本有效,则转至步骤S32,若主固件的版本无效,则复位芯片,并转至步骤S1重新运行启动程序。
步骤S32:更新指示寄存器的第二字段boot_status为10,表示此时正在使用主固件启动芯片,具体地,将主固件复制到静态随机存取存储器中运行。
步骤S33:根据静态随机存取存储器中运行的主固件判断所述芯片启动是否成功,若芯片启动成功,则更新指示寄存器的第二字段boot_status为00,若芯片启动失败,则复位芯片,并转至所述步骤S1重新运行启动程序,主固件能够根据状态判断出本次芯片启动是否成功,如主固件运行至某一阶段,串口输出正常,则判断芯片启动成功,主固件在一定时间无法运行到预期的阶段,则判断芯片启动失败。
在一些实施例中,使用如上表所述的指示寄存器,步骤S3中启动程序根据if(boot_src==master)确定本次芯片启动使用的固件,若本次芯片使用从固件启动时,包括:
步骤S34:更新指示寄存器的第二字段boot_status的值为01,表示此时正在校验从固件的版本是否有效,若从固件的版本有效,则转至步骤S32,若从固件的版本无效,则复位芯片,并转至步骤S1重新运行启动程序。
步骤S35:更新指示寄存器的第二字段boot_status为10,表示此时正在使用从固件启动芯片,具体地,将从固件复制到静态随机存取存储器中运行。
步骤S36:根据静态随机存取存储器中运行的从固件判断芯片启动是否成功,若芯片启动成功,则更新指示寄存器的第二字段boot_status为00,若芯片启动失败,则复位芯片,并转至所述步骤S1重新运行启动程序,从固件能够根据状态判断出本次芯片启动是否成功,如从固件运行至某一阶段,串口输出正常,则判断芯片启动成功,从固件在一定时间无法运行到预期的阶段,则判断芯片启动失败。
在一些实施例中,当芯片启动成功时,还可以设置启动信息提示,以方便用户了解到信息,如本次芯片使用主固件启动,则显示出“系统使用主固件启动成功”或其他自定义的提示信息,若本次芯片使用从固件启动,则显示出“系统使用从固件启动成功”或其他自定义的提示信息。
本申请实施例提供的芯片双固件备份启动的方法,可以应用于集成电路系统中,控制该集成电路系统的启动,或控制该集成电路系统的某一功能模块的启动,如将该方法应用于嵌入式系统的启动、或应用于微控制器系统、或应用于可编程逻辑器件系统的启动,上述实施例所述的芯片可以是集成电路系统的CPU,控制整个集成电路系统的运行,还可以是集成电路系统实现某一个功能的芯片。
本申请实施例提供的芯片双固件备份启动的方法,主固件和从固件存储在一个芯片中,通过在非易失性存储器(boot read-only memory)中设置的固化程序以及指示寄存器的设置,使所述芯片在启动时实现了主从固件的切换启动,当主固件启动失败时,切换至从固件启动,当从固件启动失败时,切换为主固件启动,相比于传统的主从固件切换启动的芯片需要额外提供一个FPGA或CPLD以及两个FLASH存储芯片分别存储主固件和从固件,本申请实施例提供的芯片双固件备份启动的装置如图3所示,只需要额外提供一个FLASH芯片就能实现主从固件备份切换启动,大幅度节省了设置主从固件所占用的资源,降低了产品的成本和研发周期。
基于上述芯片双固件备份启动的方法,本申请实施例还提供一种芯片双固件备份启动的装置,本申请实施例提供的芯片双固件备份启动的方法的所有实施例均适用于芯片双固件备份启动的装置,且均能达到相同或相似的有益效果。
本申请实施例提供的芯片双固件备份启动的装置,如图2所示,包括:
固件存储模块110,固件存储模块用于存储主固件和从固件,其中主固件和从固件均能用于启动该装置,固件存储模块设置在第一芯片100中,第一芯片100通常使用为FLASH存储芯片。
指示模块210,指示模块包括指示寄存器,用于表示装置的启动模式和启动状态。
在一些实施例中,指示寄存器的设置如下表所示:
Figure 328865DEST_PATH_IMAGE004
其中,Bit位表示指示寄存器的值,分为第一字段和第二字段,第一字段表示为Boot_src,Bit[0]=0时,表示第一字段boot_src的值为第一值0,此时使用主固件启动芯片,Bit[0]=1时,表示第一字段boot_src的值为第二值1,此时使用从固件启动芯片,Defaultvaule is 0表示第一字段boot_src的默认值为第一值0;第二字段表示为boot_status,Bit[2:1]=00时,表示第二字段boot_status的值为第三值00,此时芯片已经被重置或者芯片已经启动成功,Bit[2:1]=01时,表示第二字段boot_status的值为第四值01,此时在校验固件的有效性,Bit[2:1]=10时,表示第二字段boot_status的值为第五值10,此时正在使用固件启动芯片,Bit[2:1]=11为预留值,可以由用户自定义Bit[2:1]=11时所表示的功能。
控制模块220,控制模块包括非易失性存储器(boot read-only memory),用于根据启动程序控制所述装置的启动模式;非易失性存储器(boot read-only memory)中存储有启动程序,该启动程序会在芯片流片时被固化,不能修改,本申请提供的装置的逻辑处理代码便固化在非易失性存储器(boot read-only memory)中。
在一些实施例中,当指示寄存器的第一字段boot_src的值为0,且指示寄存器的第二字段的值为00时,控制模块控制所述装置使用主固件启动,否则,所述装置使用从固件启动,控制模块确定所述装置的启动模式后,还应将相应的值写入指示寄存器的第一字段,此外控制模块确定了装置的启动模式后,还将对校验固件的有效性,此时,也应将指示寄存器的第二字段值更新为01。
启动模块230,启动模块包括静态随机存取存储器(SRAM),用于根据所述启动程序获取所述主固件并运行所述主固件程序,或获取所述从固件并运行所述从固件程序,此时,应将指示寄存器的第二字段值更新为10,并且在启动模块启动成功后,将指示寄存器的第二字段值更新00;控制模块中,若启动程序控制所述装置使用主固件启动,则启动模块根据启动程序获取所述主固件并运行所述主固件程序,若启动程序控制所述装置使用从固件启动,则启动模块根据启动程序获取所述从固件并运行所述从固件程序。
其中,指示模块、控制模块和启动模块均设于第二芯片200中。
在一些实施例中,上述装置还包括:
执行模块240,所述执行模块包括内核(Core),用于实施所述控制模块、启动模块、指示模块发出的程序指令;所述执行模块设于第二芯片200中;即第二芯片200包括寄存器、非易失性存储器(boot read-only memory)、静态随机存取存储器(SRAM)以及内核(Core),其中,寄存器、非易失性存储器(boot read-only memory)、静态随机存取存储器(SRAM)以及内核(Core)均通过第二芯片的内部总线传输数据,应当明确,对于芯片而言,各个模块的程序或者指令都是由内核(Core)进行读取、解析并执行的。
如图4所示,本申请实施例提供的装置可以设置于集成电路系统300中,用于启动该集成电路系统300,如本申请实施例提供的装置可以设置于计算机系统中、或设置于嵌入式系统中、或设置于微控制器系统、或设置于可编程逻辑器件系统等集成电路系统,其中,第二芯片200读取第一芯片100中的主固件或从固件,进而启动集成电路系统300,第二芯片200可以设为该集成电路系统300的CPU(Central Processing Unit,中央处理单元),控制整个集成电路系统300的运行,或第二芯片200可以设为该集成电路系统300的其他功能芯片,控制某一功能模块的运行,第一芯片100与第二芯片200内的总线耦接,并集成在该集成电路系统300中,第一芯片100为存储芯片,存储主固件和从固件,第一芯片通常使用FLASH存储芯片。
本申请实施例提供的芯片双固件备份启动的装置,如图3所示,主固件和从固件存储与第一芯片100中,第一芯片100的预留区域为自定义区域,用户可自行配置该区域,通过非易失性存储器(boot read-only memory)中设置的固化程序以及指示寄存器的设置,使所述芯片双固件备份启动装置在启动时实现主从固件的切换启动,当主固件启动失败时,切换至从固件启动,当从固件启动失败时,切换为主固件启动,相比于传统的主从固件切换启动的设备需要额外提供一个FPGA或CPLD以及两个FLASH存储芯片分别存储主固件和从固件,本申请实施例提供的芯片双固件备份启动的装置只需要额外提供一个FLASH芯片就能实现主从固件备份切换启动,大幅度节省了设置主从固件所占用的资源,降低了产品的成本和研发周期。
基于上述芯片双固件备份启动的方法,本申请实施例还提供一种电子设备,包括:
处理器;以及存储器,存储器用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行上述实施例中提供的芯片双固件备份启动的方法的步骤。
其中,处理器还可以称为CPU(CentralProcessingUnit,中央处理单元),处理器可能是一种集成电路芯片,具有信号的处理能力;处理器还可以是通用处理器、DSP(DigitalSignal Process,数字信号处理器)、ASIC(Application Specific Integrated Circuit,专用集成电路)、FPGA(Field Programmable Gata Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,其中通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
基于上述芯片双固件备份启动的方法,本申请实施例还提供一种计算机可读存储介质,用于存储计算机指令,当所述计算机指令被运行时,执行上述实施例中提供的实现所述的芯片双固件备份启动的方法的步骤。
其中,该计算机程序可以以软件产品的形式存储在上述存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、磁碟或者光盘、ROM(Read-Only Memory,只读存储器)、RAM(RandomAccess Memory,随机存取存储器)等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
以上内容是结合具体的实施方式对本申请所作的进一步详细说明,不能认定本申请的具体实施只局限于这些说明。对于本申请所属技术领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干简单推演或替换,都应视为本申请的保护范围。

Claims (10)

1.一种芯片双固件备份启动的方法,其特征在于,所述方法包括:
步骤S1:运行启动程序;
步骤S2:根据所述启动程序读取指示寄存器的值,并根据所述指示寄存器的值决定出所述芯片应选择的启动模式,以及根据所述芯片选择的启动模式更新所述指示寄存器的值,所述启动模式包括主固件启动和从固件启动;
步骤S3:读取更新后的所述指示寄存器的值,根据更新后的所述指示寄存器的值确定所述芯片的启动模式。
2.如权利要求1所述的芯片双固件备份启动的方法,其特征在于,所述指示寄存器的值包括:
第一字段,所述第一字段为第一值时,表示所述芯片的启动模式为主固件启动,所述第一字段为第二值时,表示所述芯片的启动模式为从固件启动;
第二字段,所述第二字段用于表示所述芯片的启动状态,所述第二字段为第三值时,表示所述芯片启动成功或复位成功,所述第二字段为第四值时,表示校验所述芯片启动是否有效,所述第二字段为第五值时,表示所述芯片正在启动。
3.如权利要求2所述的芯片双固件备份启动的方法,其特征在于,所述步骤S2包括:
当所述指示寄存器的第一字段为第一值,且所述指示寄存器的第二字段为第三值时,所述芯片选择主固件启动;否则,所述芯片选择从固件启动。
4.如权利要求2所述的芯片双固件备份启动的方法,其特征在于,所述步骤S3包括:
当更新后的所述指示寄存器的第一字段为第一值时,所述芯片使用主固件启动;当更新后的所述第一字段为第二值时,所述芯片使用从固件启动。
5.如权利要求2所述的芯片双固件备份启动的方法,其特征在于,所述步骤S3中,当所述启动模式为主固件启动时,包括:
步骤S31:更新所述指示寄存器的第二字段为第四值,并校验所述主固件的版本是否有效,若所述主固件的版本有效,则转至步骤S32,若所述主固件的版本无效,则复位所述芯片,并转至步骤S1;
步骤S32:更新所述指示寄存器的第二字段为第五值,并使所述主固件在静态随机存取存储器中运行;
步骤S33:根据所述静态随机存取存储器中运行的主固件判断所述芯片启动是否成功,若所述芯片启动成功,则更新所述指示寄存器的第二字段为第三值,若所述芯片启动失败,则复位所述芯片,并转至所述步骤S1。
6.权利要求2所述的芯片双固件备份启动的方法,其特征在于,所述步骤S3中,当所述启动模式为从固件启动时,包括:
步骤S34:更新所述指示寄存器的第二字段为第四值,并校验所述从固件的版本是否有效,若所述从固件的版本有效,则转至步骤S32,若所述从固件的版本无效,则复位所述芯片,并转至步骤S1;
步骤S35:更新所述指示寄存器的第二字段为第五值,并使所述从固件在静态随机存取存储器中运行;
步骤S36:根据所述静态随机存取存储器中运行的从固件判断所述芯片启动是否成功,若所述芯片启动成功,则更新所述指示寄存器的第二字段为第三值,若所述芯片启动失败,则复位所述芯片,并转至所述步骤S1。
7.一种芯片双固件备份启动的装置,其特征在于,所述装置包括:
固件存储模块,所述固件存储模块用于存储主固件和从固件,所述主固件和从固件均用于启动所述装置;
指示模块,所述指示模块包括指示寄存器,用于表示所述装置的启动模式和启动状态;
控制模块,所述控制模块包括非易失性存储器,用于根据启动程序控制所述装置的启动模式;
启动模块,所述启动模块包括静态随机存取存储器,用于根据所述启动程序获取所述主固件并运行所述主固件程序,或获取所述从固件并运行所述从固件程序;
其中,所述固件存储模块设于第一芯片,所述指示模块、控制模块和启动模块设于第二芯片。
8.如权利要求7所述的芯片双固件备份启动的装置,其特征在于,所述装置还包括:
执行模块,所述执行模块包括内核,用于实施所述控制模块、所述启动模块、所述指示模块发出的程序指令;所述执行模块设于所述第二芯片。
9.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1~6任一项所述的芯片双固件备份启动的方法的步骤。
10.一种计算机可读存储介质,其特征在于,用于存储计算机指令,当所述计算机指令被运行时,执行时实现权利要求1~6任一项所述的芯片双固件备份启动的方法的步骤。
CN202211069001.2A 2022-09-02 2022-09-02 芯片双固件备份启动方法、装置、电子设备及存储介质 Pending CN115408204A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211069001.2A CN115408204A (zh) 2022-09-02 2022-09-02 芯片双固件备份启动方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211069001.2A CN115408204A (zh) 2022-09-02 2022-09-02 芯片双固件备份启动方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN115408204A true CN115408204A (zh) 2022-11-29

Family

ID=84163351

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211069001.2A Pending CN115408204A (zh) 2022-09-02 2022-09-02 芯片双固件备份启动方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN115408204A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116244701A (zh) * 2023-02-13 2023-06-09 南京芯驰半导体科技有限公司 一种数模异构冗余启动模式配置系统及方法
CN119356749A (zh) * 2024-08-28 2025-01-24 山东云海国创云计算装备产业创新中心有限公司 芯片的通信模式配置系统和方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116244701A (zh) * 2023-02-13 2023-06-09 南京芯驰半导体科技有限公司 一种数模异构冗余启动模式配置系统及方法
CN119356749A (zh) * 2024-08-28 2025-01-24 山东云海国创云计算装备产业创新中心有限公司 芯片的通信模式配置系统和方法

Similar Documents

Publication Publication Date Title
CN110032405B (zh) 系统开机码存储器管理方法、存储器装置与应用其的电子系统
TWI335536B (en) Information handling system (ihs) method and for updating a non-volatile memory (nvm) included in an information handling system
CN113254286B (zh) 一种服务器的日志输出方法、系统及相关装置
CN110096314B (zh) 一种接口初始化方法、装置、设备及计算机可读存储介质
KR20130133902A (ko) 공유된 비휘발성 메모리 아키텍쳐
US9395919B1 (en) Memory configuration operations for a computing device
US11106457B1 (en) Updating firmware runtime components
JP2015512535A (ja) システム変更後におけるコンピューティング装置の適切な動作を確認するための方法及びシステム
TWI839101B (zh) 韌體的更新方法
CN115408204A (zh) 芯片双固件备份启动方法、装置、电子设备及存储介质
CN114721493B (zh) 芯片启动方法、计算机设备及可读存储介质
JPH07271711A (ja) コンピュータシステム
CN113867812B (zh) 一种bmc获取链路信息的方法、系统、设备以及介质
JP2005531085A (ja) ハードウェア互換性の特定及び安定的なソフトウェア画像の実現方法及び装置
CN114995852A (zh) 一种设备升级方法、设备及计算机可读存储介质
US9778936B1 (en) Booting a computing system into a manufacturing mode
CN102043670A (zh) 计算机切换不同操作系统的方法
CN112667544A (zh) 一种控制主板插槽使能的方法、装置、系统及介质
CN118796288A (zh) 执行硬件初始化操作的方法、装置、计算机设备及存储介质
CN118860758A (zh) 一种基于基板管理控制器系统的上电启动方法、装置、电子设备以及计算机可读存储介质
US10614251B1 (en) Restricting the use of a firmware tool to a specific platform
CN103902301A (zh) 读取bios的方法、装置以及处理器
CN114594975B (zh) 固件管理方法、装置、存储介质及电子设备
WO2022199622A1 (zh) 一种电子设备的启动程序的运行方法和电子设备
CN113157301B (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
CB02 Change of applicant information

Country or region after: China

Address after: Jiangsu Province Nanjing City Nanshan District Xili Street Songpingshan Community Gaoxin North 6th Road No. 25 Fengyun Building 2nd Floor

Applicant after: Shenzhen Nanfei Microelectronics Co., Ltd.

Address before: 518000 Guangdong Province Shenzhen City Nanshan District Xili Street Songping Community No. 25, Gaoxinbei Liu Dao Fengyun Building, 2nd Floor

Applicant before: SHENZHEN NETFORWARD MICROELECTRONIC CO.,LTD.

Country or region before: China

CB02 Change of applicant information
CB02 Change of applicant information

Country or region after: China

Address after: 518000 Guangdong Province Shenzhen City Nanshan District Xili Street Songpingshan Community Gaoxinbei 6th Road 25 Fengyun Building 2nd Floor

Applicant after: Shenzhen Nanfei Microelectronics Co.,Ltd.

Address before: 2nd Floor, Fengyun Building, No. 25 Gaoxin North 6th Road, Songpingshan Community, Xili Street, Nanshan District, Nanjing City, Jiangsu Province

Applicant before: Shenzhen Nanfei Microelectronics Co.,Ltd.

Country or region before: China