CN115794136A - eFUSE烧录方法、装置和电子设备及存储介质 - Google Patents
eFUSE烧录方法、装置和电子设备及存储介质 Download PDFInfo
- Publication number
- CN115794136A CN115794136A CN202211520352.0A CN202211520352A CN115794136A CN 115794136 A CN115794136 A CN 115794136A CN 202211520352 A CN202211520352 A CN 202211520352A CN 115794136 A CN115794136 A CN 115794136A
- Authority
- CN
- China
- Prior art keywords
- burning
- data
- efuse
- burning data
- efuses
- 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
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明实施例公开了一种eFUSE烧录方法、装置和电子设备及存储介质,本发明提供的技术方案通过使用预置于嵌入式设备中的引导程序对其主控芯片上的eFUSE进行烧录,由于引导程序在主控芯片上电或复位后自动启动,使得eFUSE烧录在引导程序启动过程中可以根据系统配置选择自动完成或者手动完成,烧录过程简单、清晰并且不易出错,从而简化了整个烧录流程,解决了现有技术中因eFUSE烧录流程复杂所导致的未对产品芯片的eFUSE进行烧录的问题,进而提升了产品的安全性能。
Description
技术领域
本发明涉及集成电路及嵌入式开发技术领域,尤指一种eFUSE烧录方法、装置和电子设备及存储介质。
背景技术
随着电子科技的发展,越来越多的嵌入式产品层出不穷。其中,有些嵌入式产品安装于无人值守的开放公共空间,如:基站射频单元等,而且嵌入式产品受制于存储空间的限制,大多采用的是非加密的存储设备,加上市面上有完整的读取整个存储内容的相关配套工具,所以极易被潜在攻击者与竞争对手找到攻击的漏洞并通过产品克隆、破解软件或增加恶意代码等攻击方式盗取后进行利用。
为了应对目前嵌入式产品所存在的安全风险,主流的嵌入式主控芯片一般都采用eFUSE机制。通过在授权的主控芯片中的eFUSE区域烧写特制的安全信息,使存储芯片上的程序与主控芯片上的安全信息互相验证,这样就对存储芯片上的程序进行了签名认证,或者称之为产品授权。由于eFUSE具备一次性可编程特性,即只要将特定密钥烧入到eFUSE中,就无法再使用任何其他密钥对其进行编程,因此只要攻击者不能复制或篡改主控芯片上的安全信息,也就不能对存储芯片上的内容进行克隆,从而防止了存储芯片内容被潜在攻击者篡改。
虽然目前大部分嵌入式产品所使用的主控芯片均带有eFUSE相关功能,但因烧录eFUSE流程的复杂性,还有烧录过程不允许出错的特性,以及后期产品测试的复杂性,导致现存的诸多嵌入式产品并未对主控芯片的eFUSE进行烧录,这给产品的安全带来了风险。
目前芯片厂商主要使用相关芯片的EDA开发工具来进行eFUSE的烧录,整个过程繁琐,容易出错,并且无法做到过程追踪与流程控制。
基于如上现状而言,目前亟待提出一种烧录过程简单、清晰并且不易出错的eFUSE烧录方法,可以简化整个烧录流程,可以进行过程追踪以及流程控制,以解决现有技术中因eFUSE烧录流程复杂所导致的未对产品芯片的eFUSE进行烧录的问题,进而提升产品的安全性能。
发明内容
有鉴于此,本发明实施例提供一种eFUSE烧录方法、装置和电子设备及存储介质,本发明提供的技术方案通过使用预置于嵌入式设备中的引导程序对其主控芯片上的eFUSE进行烧录,由于引导程序在主控芯片上电或复位后自动启动,使得eFUSE烧录在引导程序启动过程中可以根据系统配置选择自动完成或者手动完成,烧录过程简单、清晰并且不易出错,从而简化了整个烧录流程,解决了现有技术中因eFUSE烧录流程复杂所导致的未对产品芯片的eFUSE进行烧录的问题,进而提升了产品的安全性能。另外,通过在烧录过程中添加日志信息,使得用户可以根据该日志信息进行烧录过程追踪,从而进行流程控制。
第一方面,本发明实施例提供了一种eFUSE烧录方法,用于对嵌入式设备主控芯片的eFUSE进行烧录,所述方法包括:
在预置于嵌入式设备中的未签名状态下的引导程序启动过程中,获取烧录数据;
通过所述引导程序将所述烧录数据烧录至所述eFUSE中。
优选地,所述获取烧录数据,具体包括:
获取预设的烧录方式标记,根据所述烧录方式标记确定烧录方式;
若所述烧录方式为自动烧录,通过读取预设于环境变量中的烧录数据获取所述烧录数据。
优选地,其中,
若所述烧录方式为手动烧录,在所述引导程序进入终端模式后,通过从USB或串口读取用户所输入的命令行获取所述烧录数据,其中,所述命令行包括所述烧录数据。
优选地,所述通过所述引导程序将所述烧录数据烧录至所述eFUSE中,具体包括:
当所述引导程序运行于第三异常级别时,直接通过烧录指令将所述烧录数据写入eFUSE寄存器进行烧录;
当所述引导程序运行于第一异常级别或第二异常级别时,通过特权SMC指令中断调用烧录指令将所述烧录数据写入eFUSE寄存器进行烧录。
优选地,所述方法还包括:
根据所述烧录指令的执行结果形成日志信息,以便于用户获取所述日志信息后根据所述日志信息进行烧录过程追踪。
优选地,其中,当所述烧录数据包括第一烧录数据和第二烧录数据时,所述方法还包括:
将所述第一烧录数据烧录至所述eFUSE中后,判断所述第一烧录数据是否烧录成功,如果成功,再将所述第二烧录数据烧录至所述eFUSE中。
优选地,所述判断所述第一烧录数据是否烧录成功,具体包括:
从所述eFUSE中读取所烧录的第一烧录数据,判断所读取的第一烧录数据是否与所述第一烧录数据相等,若相等,则烧录成功。
优选地,其中,所述烧录数据包括:公钥的哈希值。
第二方面,本发明实施例提供了一种eFUSE烧录装置,设置为对嵌入式设备主控芯片的eFUSE进行烧录,所述装置包括:
烧录数据获取模块,设置为在预置于嵌入式设备中的未签名状态下的引导程序启动过程中,获取烧录数据;
eFUSE烧录模块,设置为通过所述引导程序将所述烧录数据烧录至所述eFUSE中。
第三方面,本发明实施例提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现第一方面所述的方法。
第四方面,本发明实施例提供了一种存储介质,所述存储介质用于存储计算机程序,所述计算机程序用于实现第一方面所述的方法。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1是本发明实施例的一种eFUSE烧录方法流程图;
图2是本发明实施例的另一种eFUSE烧录方法流程图;
图3是本发明实施例的一种eFUSE烧录装置的结构示意图;
图4是本发明实施例的电子设备的硬件结构示意图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。
此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
同时,应当理解,在以下的描述中,“电路”是指由至少一个元件或子电路通过电气连接或电磁连接构成的导电回路。当称元件或电路“连接到”另一元件或称元件/电路“连接在”两个节点之间时,它可以是直接耦接或连接到另一元件或者可以存在中间元件,元件之间的连接可以是物理上的、逻辑上的、或者其结合。相反,当称元件“直接耦接到”或“直接连接到”另一元件时,意味着两者不存在中间元件。
除非上下文明确要求,否则在说明书的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
目前,主流的嵌入式主控芯片在启动时一般都采用安全启动(Secure Boot)模式,Secure Boot安全机制的原理,就是将最为核心的安全机制整合到最关键的主CPU中,因此就算攻击者可以监听电路板上的线路,甚至拆装个别芯片单独调试,也无法破坏SecureBoot的安全机制,进而达到保护用户隐私、防止恶意软件修改系统软硬件的安全目的。
随着ARM架构的广泛授权,基于TrustZone的Secure Boot也越来越普遍。TrustZone是ARM的Trusted Execution Environment(TEE)实现。以ARMv8为例,TrustZone将CPU的执行环境划分为了Secure World和Normal World。Secure World拥有更高的权限,可以访问Normal World的内存、eFUSE寄存器、Security Engine寄存器等等。但是NormalWorld中的最高权限却无法访问Secure World的内存。另外,ARMv8系统具有多个特权级别,称为异常级别或EL,级别从高到低分别为EL3,EL2,EL1,EL0,异常级别数越低,它具有的特权就越少。其中,EL3具有最高管理权限,负责安全监测和Secure World和Normal World之间的切换;EL2主要提供了对虚拟化的支持;EL1是一个特权模式,能够执行一些特权指令,用于运行各类操作系统,在Secure World则是secure OS(如TEE);EL0是无特权模式,所有APP应用都在EL0。此外,借助TrustZone技术提供的软件和硬件隔离,ARMv8可以区分“非安全”和“安全”异常级别。
所有支持Secure Boot的CPU都会有eFUSE,它是一块很小的一次性编程储存模块,一般大小是1KB左右,OEM从CPU厂家购买了芯片,组装了产品后,一般都要烧写eFUSE的内容,具体烧写的内容包括设备标识符、产品的运行模式(运行模式包括测试模式、开发模式以及生产模式等)以及根密钥,一般有两种根密钥:一个是加密解密用的对称密钥SecureBoot Key,一般是AES128的,每台设备都是随机生成不一样的;另一个是Secure BootSigning Key公钥,一般用的RSA或ECC,它是由OEM生成的,每台设备的Secure BootSigning Key公钥是一样的。只有Secure World才能访问eFUSE的寄存器。除了读写eFUSE的基础寄存器之外,还有一些控制寄存器可以禁止别的程序访问eFUSE,来保护其中的密钥。另外,所有支持Secure Boot的CPU也都会有一个由芯片厂商写死在CPU中的bootROM程序,bootROM是完全只读的,嵌入式设备上电启动后,执行的第一条指令就在bootROM的入口,bootROM拥有最高的执行权限EL3,它将初始化Secure Boot安全机制,加载SecureBoot Key等密钥、从存储设备中加载并验证First Stage Bootloader(FSBL),最后跳转进FSBL中。FSBL的作用是初始化CPU相关、初始化基本外设(串口输出、存储设备读写等)、初始化PCB板上的其他硬件设备,给外部RAM映射内存空间,从存储设备中加载验证并执行接下来的启动程序等。FSBL的下一阶段一般包含三个程序:Secure Monitor、Trusted OS、Second StageBootloader(SSBL)。FSBL会分别从存储设备中加载验证这些程序,最后跳转到SecureMonitor执行。Secure Monitor会初始化TrustZone环境,设置SMC回调,然后开始执行FSBL已经加载好的Normal World中的SSBL和Secure World中的Trusted OS。Trusted OS会初始化Secure World中的系统内核环境,然后从存储设备中加载各种Trusted Applications(TA),认证它们的数字签名,然后执行它们。SSBL是操作系统在启动过程中的引导程序,比如:Android Bootloader或u-boot,它会加载验证然后执行Normal World中的操作系统内核镜像,如:Linux等。
由此可知,从bootROM到Normal World的Kernel,再到Secure World的TA,每一步的加载都是要经过数字签名认证的,而所有这些签名认证的根证书,是要跟eFUSE中的Signing Key匹配的,这就形成了一个信任链。
图1是本发明实施例的一种eFUSE烧录方法流程图。本发明实施例所提供的eFUSE烧录方法用于对嵌入式设备主控芯片的eFUSE进行烧录,具体如图1所示,该方法包括以下步骤:
步骤S110:在预置于嵌入式设备中的未签名状态下的引导程序启动过程中,获取烧录数据。
如上所述,嵌入式设备在上电启动后,会首先运行内置的bootROM程序,之后依次运行FSBL和SSBL。本发明中涉及到的引导启动eFUSE烧录程序的“引导程序”可以是FSBL,也可以是SSBL。与如上所述FSBL和SSBL不同的是:一方面,基于如上所述安全启动的信任链,为了在启动流程中执行合法性验证,如上所述FSBL和SSBL为签名版本的,并且在FSBL和SSBL中均不涉及eFUSE烧录,而本发明中涉及到的引导启动eFUSE烧录程序的“引导程序”,不论是FSBL还是SSBL,都是未签名状态下的,并且,设备以非安全模式启动,即:并不需要执行合法性验证,这样,在嵌入式设备上电启动后,在未烧录eFUSE的情况下,则可以通过该未签名状态下的引导程序进行烧录;并且,本发明中涉及到的“引导程序”除了引导程序应该包含的通用功能外,还引导启动了eFUSE烧录程序,即可以称之为特殊的引导程序,其基于引导程序在嵌入式设备上电启动后自动加载执行的通用特点,完成eFUSE烧录。
当引导程序引导启动了eFUSE烧录程序时,首先需要获取所要烧录的数据,烧录数据包括但不限于公钥的哈希值以及Secure Boot Key。将公钥的哈希值替代公钥烧录进eFUSE,是为了减少所使用的eFUSE空间。对于不同芯片来说,所支持验证的公钥个数也不同,在一具体示例中,以AMD XILINX zynqMp芯片为例,它支持验证两个公钥,因此,在烧录eFUSE时可以烧录两个公钥的哈希值进去,也可以根据具体安全需求,选择只烧录一个公钥的哈希值。在具体生成公钥的哈希值以及Secure Boot Key时,可以采用现有的算法和方式进行,本发明并不对此进行限定。
在获取烧录数据时,根据系统所预设的烧录方式的不同,对应获取烧录数据的方式也不同。本发明支持两种烧录方式:自动烧录和手动烧录。具体当前烧录eFUSE使用哪种方式,在一具体示例中,可以通过一个烧录方式标记来定义,该烧录方式标记可以通过一个环境变量进行设定。比如:auto_flash_efuse,通过读取该环境变量获取该烧录方式标记的值。如果auto_flash_efuse=1,则表示为自动烧录,反之,如果auto_flash_efuse=0,则表示为手动烧录。除了通过烧录方式标记值来确定烧录方式外,也可以通过其他方式,比如:直接获取预存的烧录数据,如果可以获取到烧录数据的话,则说明为自动烧录,反之为手动烧录。
当烧录方式为自动烧录时,则可以通过读取预设于环境变量中的烧录数据获取该烧录数据。具体地,需预先通过相关接口将烧录数据保存至预设的环境变量中,然后读取所预设的环境变量获取具体的烧录数据。在一具体示例中,若芯片支持Secure Boot Key和两个公钥的哈希值的话,则可以定义三个环境变量,分别为:ppk0_hash、ppk1_hash和aes_key。其中,ppk0_hash和ppk1_hash保存两个公钥的哈希值,aes_key保存Secure Boot Key。若还需要烧录其他数据,可以设置对应的其他环境变量,具体可以根据芯片的支持情况以及设备商的安全要求而设定。
当烧录方式为手动烧录时,由于引导程序为未签名状态,eFUSE也未烧录,则引导程序最终会进入终端模式,比如:USB/UART命令行模式,等待接收并处理USB/UART命令行,此时,可以通过从USB/UART读取用户所输入的命令行获取烧录数据,其中,该命令行中包括烧录数据。在一具体示例中,以AMD XILINX zynqMp芯片为例,在终端模式下可输入如下命令行:
1、efuse_zboot upgrade efuse<ppkx_hash_num><ppkx_hash>
2、efuse_zboot upgrade efuse_aes_key<aes_key>
其中,命令行1为烧录公钥的哈希值的命令行。由于XILINX系列芯片烧录到eFUSE中的哈希值为主公钥的哈希值,因此参数ppkx_hash_num为要烧录的主公钥的哈希值的序列号,取值为0或者1,0表示参数ppkx_hash为第一个主公钥的哈希值,1表示参数ppkx_hash为第二个主公钥的哈希值;参数ppkx_hash为参数ppkx_hash_num对应的主公钥的哈希值。其中,主公钥的哈希值可以直接通过命令行直接进行输入。
命令行2为烧录Secure Boot Key的命令行,参数aes_key为具体的Secure BootKey字符串。
通过上述两个命令行,即可获取手动烧录方式下的eFUSE烧录数据。
需要说明的是:在量产的时候对于同一批型号的产品,因为所使用的密钥一样,则可以烧录相同的密钥数据,而对于不同型号的产品,可通过将环境变量配置成其他相应的不同烧录数据,或在终端模式下通过命令行输入其他相应的不同烧录数据即可,由此实现了不同厂家的不同芯片,以及多个产品可以共用同一个eFUSE烧录方案的技术目的。
步骤S120:通过所述引导程序将所述烧录数据烧录至所述eFUSE中。
由步骤S110可知,引导启动eFUSE烧录程序的功能可以在FSBL中实现,也可以在SSBL(如:u-boot)中实现。针对运行于不同异常级别的引导程序,具体烧录时调用烧录指令的方式也不同,具体为:若在FSBL中实现,由于FSBL运行于特权指令级别EL3即第三异常级别,能够直接读写相应的eFuse寄存器,因此,在实现eFUSE烧录时,可以直接通过烧录指令将所获取的烧录数据写入eFUSE寄存器进行烧录;若在SSBL中实现,由于SSBL运行于非特权指令级别EL1或EL2即第一或第二异常级别,则不能直接读写相应的eFuse寄存器,但是可以通过特权SMC(Self-Modifying Code,意为:代码自修改)指令中断调用烧录指令将所获取的烧录数据写入eFUSE寄存器进行烧录。SMC是ARMv8等芯片支持的异常跳转指令,它用于程序从EL1或EL2跳转到EL3异常级别,以此来调用EL3相关特权指令。
对于烧录指令,针对自动烧录时,在获取环境变量所保存的烧录数据的同时,也根据所要获取的环境变量确定了具体烧录数据的类型,从而确定了具体的烧录指令;针对手动烧录时,在通过用户所输入的命令行获取烧录数据的同时,也根据该命令行确定了具体的烧录指令,举例来讲:根据命令行“efuse_zboot upgrade efuse_aes_key<aes_key>”中的“efuse_aes_key”确定了具体是执行烧录Secure Boot Key,则使用写入Secure BootKey的eFUSE寄存器的烧录指令来将参数aes_key所示的内容烧录至eFUSE中。
另外,在一具体示例中,还可以根据烧录指令的执行结果形成日志信息,以便于用户获取该日志信息后根据该日志信息进行烧录过程追踪,从而进行流程控制。
另外,当所述烧录数据包括第一烧录数据和第二烧录数据时,本发明实施例中的eFUSE烧录方法还包括:将所述第一烧录数据烧录至所述eFUSE中后,判断所述第一烧录数据是否烧录成功,如果成功,再将所述第二烧录数据烧录至所述eFUSE中。
其中,在判断该第一烧录数据是否烧录成功时,具体为:从eFUSE中读取所烧录的第一烧录数据,判断所读取的第一烧录数据是否与所烧录的第一烧录数据相等,若相等,则烧录成功,若不相等,则烧录失败。
具体地,在读取所烧录的第一烧录数据时,可通过读取相应的eFUSE寄存器中的值来实现。
在一具体示例中,在将所有的烧录数据写入eFUSE之后,不论是自动烧录,还是手动烧录,由于最终都会进入终端模式,因此用户可以在终端模式下通过命令行efuse_zbootinfo来查看所有烧录至eFUSE的数据情况,以便对烧录数据做精确校验,防止出错导致整个芯片无法工作。
在通过未签名状态下的引导程序进行eFUSE烧录之前,需要提前将编译好的使用公钥签名后的引导程序刷入系统,当完成eFUSE烧录后,使用签名后的引导程序启动系统,则可以完成安全启动(Secure Boot)。
图2是本发明实施例的另一种eFUSE烧录方法流程图。本发明实施例结合图1及其每个步骤的详细内容对eFUSE烧录方法进行描述,具体如图2所示,该方法包括以下步骤:
步骤S210:嵌入式设备上电后,预置于所述嵌入式设备中的引导程序启动。
步骤S220:在所述引导程序启动过程中,获取预设的烧录方式标记,根据所述烧录方式标记确定烧录方式。
步骤S230:判断所述烧录方式是否是自动烧录,若所述烧录方式为自动烧录,执行步骤S240;若所述烧录方式为手动烧录,执行步骤S250。
步骤S240:通过读取预设于环境变量中的烧录数据获取所述烧录数据。
步骤S250:在所述引导程序进入终端模式后,通过从USB或串口读取用户所输入的命令行获取所述烧录数据,其中,所述命令行包括所述烧录数据。
步骤S260:判断所述引导程序运行的异常级别,当所述引导程序运行于第三异常级别时,执行步骤S270;当所述引导程序运行于第一异常级别或第二异常级别时,执行步骤S280。
步骤S270:直接通过烧录指令将所述烧录数据写入eFUSE寄存器进行烧录。
步骤S280:通过特权SMC指令中断调用烧录指令将所述烧录数据写入eFUSE寄存器进行烧录。
步骤S290:根据所述烧录指令的执行结果形成日志信息,以便于用户获取所述日志信息后根据所述日志信息进行烧录过程追踪。
步骤S2A0:当所述烧录数据包括第一烧录数据和第二烧录数据时,将所述第一烧录数据烧录至所述eFUSE中后,判断所述第一烧录数据是否烧录成功,如果成功,再将所述第二烧录数据烧录至所述eFUSE中。
由上述步骤可知,本发明实施例通过使用预置于嵌入式设备中的引导程序对其主控芯片上的eFUSE进行烧录,由于引导程序在主控芯片上电或复位后自动启动,使得eFUSE烧录在引导程序启动过程中可以根据系统配置选择自动完成或者手动完成,烧录过程简单、清晰并且不易出错,从而简化了整个烧录流程,解决了现有技术中因eFUSE烧录流程复杂所导致的未对产品芯片的eFUSE进行烧录的问题,进而提升了产品的安全性能。另外,通过在烧录过程中添加日志信息,使得用户可以根据该日志信息进行烧录过程追踪,从而进行流程控制。
图3是本发明实施例的一种eFUSE烧录装置的结构示意图,设置于嵌入式设备,所述嵌入式设备的主控芯片上包含eFUSE,如图3所示,本发明实施例的eFUSE烧录装置3包括:烧录数据获取模块310,设置为在预置于嵌入式设备中的未签名状态下的引导程序启动过程中,获取烧录数据;eFUSE烧录模块320,设置为通过所述引导程序将所述烧录数据烧录至所述eFUSE中。
图4为本发明实施例的电子设备的硬件结构示意图。如图4所示,该电子设备包括:存储器410和处理器420,其中,存储器410和处理器420通信;示例性的,存储器410和处理器420通过通信总线430通信,所述存储器410用于存储计算机程序,所述处理器420执行所述计算机程序实现上述实施例所示的eFUSE烧录方法。
可选地,该电子设备还可以包括发送器和/或接收器。
可选地,上述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、PLC(Programmable Logic Controller,可编程逻辑控制器)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、DSP(Digital SignalProcessor,数字信号处理器)或ASIC(Application Specific Integrated Circuit,专用集成电路)来实现。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
本发明实施例提供一种存储介质,所述存储介质用于存储计算机程序,所述计算机程序用于实现上述任意方法实施例所述的eFUSE烧录方法。
本发明实施例提供一种芯片,该芯片用于支持接收设备(例如终端设备、网络设备等)实现本发明实施例所示的功能,该芯片具体用于芯片系统,该芯片系统可以由芯片构成,也可以包括芯片和其他分立器件。当实现上述方法的为接收设备内的芯片时,芯片包括处理单元,进一步的,芯片还可以包括通信单元,所述处理单元例如可以是处理器,当芯片包括通信单元时,所述通信单元例如可以是输入/输出接口、管脚或电路等。处理单元执行本发明实施例中各个处理模块所执行的全部或部分动作,通信单元可执行相应的接收或发送动作。在另一个具体的实施例中,本发明实施例中的接收设备的处理模块可以是芯片的处理单元,控制设备的接收模块或发送模块是芯片的通信单元。
本领域的技术人员应明白,本申请的实施例可提供为方法、装置(设备)或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品。
本申请是参照根据本申请实施例的方法、装置(设备)和计算机程序产品的流程图来描述的。应理解可由计算机程序指令实现流程图中的每一流程。
这些计算机程序指令可以存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现流程图一个流程或多个流程中指定的功能。
也可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程中指定的功能的装置。
本发明的另一实施例涉及一种非易失性存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行上述部分或全部的方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指定相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (11)
1.一种eFUSE烧录方法,用于对嵌入式设备主控芯片的eFUSE进行烧录,其特征在于,所述方法包括:
在预置于嵌入式设备中的未签名状态下的引导程序启动过程中,获取烧录数据;
通过所述引导程序将所述烧录数据烧录至所述eFUSE中。
2.根据权利要求1所述的方法,其特征在于,所述获取烧录数据,具体包括:
获取预设的烧录方式标记,根据所述烧录方式标记确定烧录方式;
若所述烧录方式为自动烧录,通过读取预设于环境变量中的烧录数据获取所述烧录数据。
3.根据权利要求2所述的方法,其特征在于,其中,
若所述烧录方式为手动烧录,在所述引导程序进入终端模式后,通过从USB或串口读取用户所输入的命令行获取所述烧录数据,其中,所述命令行包括所述烧录数据。
4.根据权利要求1所述的方法,其特征在于,所述通过所述引导程序将所述烧录数据烧录至所述eFUSE中,具体包括:
当所述引导程序运行于第三异常级别时,直接通过烧录指令将所述烧录数据写入eFUSE寄存器进行烧录;
当所述引导程序运行于第一异常级别或第二异常级别时,通过特权SMC指令中断调用烧录指令将所述烧录数据写入eFUSE寄存器进行烧录。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
根据所述烧录指令的执行结果形成日志信息,以便于用户获取所述日志信息后根据所述日志信息进行烧录过程追踪。
6.根据权利要求1所述的方法,其特征在于,其中,当所述烧录数据包括第一烧录数据和第二烧录数据时,所述方法还包括:
将所述第一烧录数据烧录至所述eFUSE中后,判断所述第一烧录数据是否烧录成功,如果成功,再将所述第二烧录数据烧录至所述eFUSE中。
7.根据权利要求6所述的方法,其特征在于,所述判断所述第一烧录数据是否烧录成功,具体包括:
从所述eFUSE中读取所烧录的第一烧录数据,判断所读取的第一烧录数据是否与所述第一烧录数据相等,若相等,则烧录成功。
8.根据权利要求1~7任一所述的方法,其特征在于,其中,所述烧录数据包括:公钥的哈希值。
9.一种eFUSE烧录装置,设置为对嵌入式设备主控芯片的eFUSE进行烧录,其特征在于,所述装置包括:
烧录数据获取模块,设置为在预置于嵌入式设备中的未签名状态下的引导程序启动过程中,获取烧录数据;
eFUSE烧录模块,设置为通过所述引导程序将所述烧录数据烧录至所述eFUSE中。
10.一种电子设备,其特征在于,包括存储器和处理器,所述存储器用于存储一条或多条计算机程序指令,其中,所述一条或多条计算机程序指令被所述处理器执行以实现如权利要求1~8中任一项所述的方法。
11.一种存储介质,其特征在于,所述存储介质用于存储计算机程序,所述计算机程序用于实现权利要求1~8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211520352.0A CN115794136A (zh) | 2022-11-30 | 2022-11-30 | eFUSE烧录方法、装置和电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211520352.0A CN115794136A (zh) | 2022-11-30 | 2022-11-30 | eFUSE烧录方法、装置和电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115794136A true CN115794136A (zh) | 2023-03-14 |
Family
ID=85443772
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211520352.0A Pending CN115794136A (zh) | 2022-11-30 | 2022-11-30 | eFUSE烧录方法、装置和电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115794136A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117272317A (zh) * | 2023-09-25 | 2023-12-22 | 中汽智联技术有限公司 | 一种系统安全启动方法、电子设备及存储介质 |
-
2022
- 2022-11-30 CN CN202211520352.0A patent/CN115794136A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117272317A (zh) * | 2023-09-25 | 2023-12-22 | 中汽智联技术有限公司 | 一种系统安全启动方法、电子设备及存储介质 |
CN117272317B (zh) * | 2023-09-25 | 2024-02-23 | 中汽智联技术有限公司 | 一种系统安全启动方法、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7937575B2 (en) | Information processing system, program product, and information processing method | |
JP6433198B2 (ja) | 安全なブートromパッチのためのシステム及び方法 | |
US7849315B2 (en) | Method for managing operability of on-chip debug capability | |
JP4769608B2 (ja) | 起動検証機能を有する情報処理装置 | |
EP2854066B1 (en) | System and method for firmware integrity verification using multiple keys and OTP memory | |
TWI607376B (zh) | 用於處理改變依照統一可延伸韌體介面計算裝置中之系統安全資料庫及韌體儲存區請求的系統及方法 | |
US20230020278A1 (en) | Secure boot assist for devices, and related systems, methods and devices | |
US8694761B2 (en) | System and method to secure boot both UEFI and legacy option ROM's with common policy engine | |
KR101229148B1 (ko) | 소프트웨어 신뢰성 검증 방법, 장치 및 컴퓨터 판독가능 매체 | |
US8156317B2 (en) | Integrated circuit with secure boot from a debug access port and method therefor | |
JP4521269B2 (ja) | セル電話などの電子デバイスのセキュリティに使用する方法およびデバイス | |
US20060242406A1 (en) | Protected computing environment | |
JP7425797B2 (ja) | ファームウェアのセキュアな検証 | |
Khattri et al. | Hsdl: A security development lifecycle for hardware technologies | |
US11755739B2 (en) | Update signals | |
CN109901793B (zh) | 存储器安全装置及其方法 | |
CN115794136A (zh) | eFUSE烧录方法、装置和电子设备及存储介质 | |
CN115329321A (zh) | 一种固件的启动方法、芯片及计算设备 | |
US9779242B2 (en) | Programmable secure bios mechanism in a trusted computing system | |
CN111967016B (zh) | 基板管理控制器的动态监控方法及基板管理控制器 | |
US9779243B2 (en) | Fuse-enabled secure BIOS mechanism in a trusted computing system | |
TWI756156B (zh) | 監控系統開機之安全裝置及其方法 | |
CA3164128A1 (en) | Method and apparatus for preventing rollback of firmware of data processing device, and data processing device | |
CN114003915A (zh) | 基于芯片的安全启动方法及装置 | |
US9767288B2 (en) | JTAG-based secure BIOS mechanism in a trusted computing system |
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 |