CN104981778A - 修补只读存储器的引导代码 - Google Patents
修补只读存储器的引导代码 Download PDFInfo
- Publication number
- CN104981778A CN104981778A CN201480008317.8A CN201480008317A CN104981778A CN 104981778 A CN104981778 A CN 104981778A CN 201480008317 A CN201480008317 A CN 201480008317A CN 104981778 A CN104981778 A CN 104981778A
- Authority
- CN
- China
- Prior art keywords
- guidance code
- rom
- execution
- code
- address
- 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
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/66—Updates of program code stored in read-only memory [ROM]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本公开描述用于修补只读存储器(ROM)的引导代码的装置和技术。在一些方面中,发起来自ROM的引导代码的执行,以开始设备的引导过程。然后中断来自ROM的引导代码的执行,以使得能够执行来自另一存储器的诸如校正引导代码或附加引导代码之类的其它引导代码。一旦执行其它引导代码,恢复来自ROM的引导代码的执行,以继续引导计算设备。通过这样做,可以在引导过程期间执行校正引导代码或附加引导代码,有效修补存储在ROM中的引导代码。
Description
相关申请
本公开要求2013年2月22日提交的美国临时专利申请序列号61/768,097的优先权,其公开内容通过引用方式整体并入于此。
背景技术
在此处提供对背景技术的描述是用于从整体上给出本公开上下文的目的。就在此背景技术部分中描述的工作而言的、本发明发明人的工作,以及在递交时不以其他方式作为现有技术的描述的方面,并不显式或隐式承认其是本公开的现有技术。
计算和电子设备通常在通电时执行引导代码,以配置设备的资源或部件。一旦资源和部件被配置,操作系统便由引导代码加载并被执行。然后,对设备的控制被传递到执行操作系统,其实现设备的功能或应用。
为了阻止未授权软件在设备上的执行,引导代码可以验证操作系统和在引导代码上方的软件层的真实性。因为引导代码是在通电时执行的最低级别的代码,因此引导代码通常被硬编码到设备的硬件中,以确保引导代码的真实性。尽管硬编码引导代码阻止了对引导代码的恶意修改,但是硬编码还阻止为了校正错误而对引导代码的修改。因而,为了校正引导代码中的错误,设备的硬件通常需要重新设计和重新构造,这会消耗相当多的时间、金钱和资源。
发明内容
在附图和下面的描述中阐述一个或多个实施方式的细节。其它特征和优点将从描述和附图中显而易见。因此,本发明内容不应该被视为描述必要特征,也不应该用于限制所要求保护的主题的范围。
描述了用于从只读存储器(ROM)发起第一引导代码的执行以开始计算设备的引导过程的方法。方法然后中断第一引导代码的执行,以使得能够执行来自另一存储器的第二引导代码。在执行第二引导代码之后,恢复第一引导代码的执行,以继续计算设备的引导过程。
描述了用于发起来自ROM的引导代码的执行的另一方法,引导代码的执行经由程序计数器推进。响应于程序计数器到达引导代码中的预定地址,中断引导代码的执行。方法然后执行来自一次性可编程(OTP)存储器的替代引导代码,代替ROM中的引导代码中的一些引导代码。响应于替代引导代码的执行,程序计数器返回到引导代码中的一个地址,用于从ROM恢复执行引导代码。
描述了片上系统(SoC),其包括处理器、ROM、OTP存储器和中断管理器,中断管理器被配置为响应于处理器的程序计数器遇到引导代码中的预定地址,中断处理器对来自ROM的引导代码的执行。中断管理器进一步配置为使得处理器执行来自OTP存储器的附加引导代码,并且然后使程序计数器返回到引导代码中的一个地址,用于使得处理器从ROM恢复执行引导代码。
一个或多个实施方式的细节被阐述在附图和下面的描述中。其它特征和优点将从描述和附图中容易理解。
附图说明
在图中,附图标记的最左侧数字标识其中附图标记首次出现的图。在描述中的不同实例中和图中的相同附图标记的使用指示同样的元件。
图1图示依照一个或多个方面的具有计算设备的操作环境。
图2图示依照一个或多个方面的计算设备的示例引导架构。
图3图示用于中断来自只读存储器的引导代码的执行的方法。
图4图示用于执行来自一次性可编程存储器的替代引导代码的方法。
图5图示依照一个或多个方面的引导代码和引导代码补丁的示例。
图6图示用于将引导代码烧录(burn)到一次性可编程存储器的熔断器(fuse)中的方法。
图7图示用于实现本文中描述的技术方面的片上系统(SoC)环境。
具体实施方式
用于修补只读存储器(ROM)的引导代码的常规技术通常要求重新构造引导代码写(例如,烧录)在其中的ROM硬件。ROM硬件的这一重新构造常常包括另一轮的预硅验证、硅流片或掩模、ROM移植、ROM硬件的制造、以及后硅验证。因此,ROM硬件的重新构造以修补引导代码会消耗相当大量的时间、金钱和资源。
本公开描述用于修补ROM中的引导代码的装置和技术,这使得其它引导代码(例如,替代或附加引导代码)能够在引导过程期间从另一存储器执行。在一些方面中,该另一存储器是一次性可编程(OTP)存储器,其它引导代码在包括ROM的硬件的构造之后被烧录到一次性可编程(OTP)存储器中。当引导代码体现在片上系统(SoC)中时,SoC可以提供用于其它代码的闭锁机制(例如,修补代码)。例如,如果在引导代码体现在其中的产品出货前、在引导代码(例如,BootROM)的验证之后没有修补被确定为必要的,则SoC可以提供禁用该特征的能力,以确保引导代码贯穿产品寿命的安全性。相似地,如果引导代码的修补必要,则SoC可以提供用于一旦修补(但在硬件出货前)就闭锁OTP存储器的剩余块的另一能力,以确保其它引导代码的安全性。
以下讨论描述操作环境、操作环境中可以采用的技术、以及其中可以体现操作环境的部件的片上系统(SoC)。在下面的讨论中,仅通过示例的方式参照操作环境。
操作环境
图1图示具有计算设备102的操作环境100的示例,计算设备102中的每个均能够传达、访问、呈现或处理各种数据。计算设备102包括智能电话104、平板计算机106、附接网络的存储驱动器108(NAS驱动器108)、数字相机110、以及因特网协议使能的电视112(IP TV112)。虽然未示出,还设想计算设备102的其它配置,诸如台式计算机、服务器、移动因特网设备(MID)、传真机、打印机、数字摄像机、上网本、超级本、游戏控制台、家庭自动化终端、移动热点、联网的媒体播放器等。
通常,计算设备102具有范围从“关”状态到“开”状态的操作状态。这些操作状态可以包括完全关状态(机械关)、冬眠状态、睡眠状态、悬挂状态、空闲状态、活跃状态等。当从较低操作状态转变至较高操作状态(例如,从关状态至活跃状态)时,计算设备102被引导。引导计算设备102包括执行低级别的代码(例如,引导代码或二进制),低级别的代码配置计算设备102的部件或资源,以用于由操作系统或较高级别的应用访问。
每个计算设备102包括处理器核114(例如应用处理器核)和计算机可读存储介质116(CRM 116)。虽然示出为单核,但是处理器核114可以是其可以以任何适合方式配置的任何适合数目和/或类型的处理核之一(例如,异构多核应用处理器)。在一些情况下,处理器核114被实现为微控制器、嵌入式控制器或数字信号处理器的核。
CRM 116包括易失性存储器118和非易失性存储器120,其可以包括任何适合类型、组合或数目的内部和/或外部存储器设备。CRM116的每个存储器可以被实现为硬件的片上存储器区域或者经由数据接口或总线与处理器核114传达数据的片外存储器设备。在这一特定示例中,易失性存储器118包括静态随机存取存储器122(SRAM 122)和同步动态随机存取存储器124(DRAM 124)。替代地或附加地,易失性存储器118可以包括其它适合类型的存储器,诸如随机存取存储器(RAM)、异步动态RAM、双数据速率RAM(DDR)等。
非易失性存储器120包括串行外围接口(SPI)闪存126、NAND闪存128、只读存储器130和一次性可编程(OTP)存储器132。设想的其它非易失性存储器包括非易失性RAM(NVRAM)、电可擦除可编程ROM、嵌入式多媒体卡(eMMC)设备、NOR闪存、单级单元(SLC)闪存、多级单元(MLC)闪存等。在这一特定示例中,ROM130和OTP存储器132被实现为其被制造成芯片的各种金属和半导体层的片上存储器区域。
当断电或悬挂时,非易失性存储器120持久地存储计算设备102的数据。计算设备102的引导代码存储在诸如SPI闪存126、NAND闪存128和ROM 130之类的一个或多个非易失性存储器部件中。例如,在制造包括ROM 130的芯片期间,最低级别或安全引导代码被写或烧录到ROM 130中。通过这样做,ROM 130中的引导代码(还称为boot-ROM)在芯片被制造之后不能被修改。ROM 130的不可修改性质确保了ROM 130中存储的引导代码的真实性和安全性。计算设备102的较高级别引导代码被实现为分别存储在SPI闪存126和NAND闪存128中的引导加载器。因为SPI闪存126和NAND闪存128的内容是可修改的或用户可访问的,所以存储在这些设备中的较高级别引导代码是不安全的。
在一些方面中,引导代码被写至OTP存储器132,OTP存储器132能够被写入一次。OTP存储器132包括熔断器的块,熔断器中的每个熔断器表示可设置二进制值。更具体地,OTP存储器132被制造有全部设置为原始或默认状态的熔断器,诸如全部1或全部0的块。为了将数据写到OTP存储器132中,适当的熔断器从它们的默认状态被烧录为非默认状态,以指示期望的二进制值。据此,一旦OTP存储器132的熔断器被烧录为非默认状态,熔断器就不再对将其它数据写到OTP存储器132有用。替代地或附加地,OTP存储器132的内容可以通过烧录未使用熔断器块中的熔断器和错误校正与未使用熔断器块相关联的代码比特而永久地锁定。
计算设备102的操作系统、应用或用户数据(未示出)可以由易失性存储器118、非易失性存储器120或者任何其它适合类型的CRM116存储,或者从易失性存储器118、非易失性存储器120或者任何其它适合类型的CRM 116执行。替代地或附加地,计算设备102的操作系统和/或应用可以体现为固件或其它处理器可执行指令、二进制数或代码。设备102的操作系统和应用可由处理器核114执行,以提供计算设备102的用户接口、各种功能和/或服务。
CRM 116还包括中断管理器134,中断管理器134在这一特定示例中体现为可由处理器核114执行以实现各种功能的处理器可执行指令。替代地或附加地,中断管理器134可以部分地或整体地经由固件或硬件(未示出)或其任何适合组合来实现。在一些情况下,在ROM130或者ROM 130驻留在其中的芯片的构造(例如,制造)期间,中断管理器134硬编码成ROM 130的引导代码。中断管理器134可以中断来自ROM 130的引导代码的执行,以使得能够从其它存储器执行引导代码。中断管理器134的实施方式和使用会变化并且在下面进行描述。
计算设备102还可以包括I/O端口136、显示器138或者(多个)网络接口140。I/O端口136允许计算设备102与其它设备或用户交互。I/O端口136可以包括诸如USB端口、音频端口、串行ATA(SATA)端口、基于PCI-express的端口或卡槽、安全数字输入/输出(SDIO)槽和/或其它旧有端口之类的内部或外部端口的任何组合。各种外围装置可以操作上与I/O端口136耦合,诸如人为输入设备(HID)、外部计算机可读存储介质、或其它外围装置。
显示器138可以表示与计算设备102的操作系统或应用相关联的用户接口或渲染图形。显示器138可以包括诸如触摸屏或触敏覆层之类的触摸输入传感器(未示出)。(多个)网络接口140提供到一个或多个网络以及与其连接的其它设备的连接性。依赖于计算设备102通过其通信的通信协议或标准,通过网络接口140传达的数据可以被分组或帧化。网络接口140可以包括有线接口,诸如用于通过局部网络、内联网或因特网通信的以太网或光纤接口。网络接口140还可以包括便于通过诸如无线LAN、蜂窝网络或无线个人区域网络(例如,BluetoothTM)之类的无线网络通信的无线接口。
图2以200图示依照一个或多个方面的计算设备的示例引导架构。引导代码在引导过程期间的执行发生在计算设备的硬件202和软件204中。硬件202包括ROM 130,在ROM 130的制造期间引导代码(boot-ROM 206)的二进制数被烧录到ROM 130中。Boot-ROM 206被执行以发起计算设备的引导过程。因为boot-ROM 206被烧录到ROM 130并且不可修改,所以boot-ROM 206的执行可以实现受信任的引导过程,其中boot-ROM 206作为“信任根”起作用。更具体地,一旦boot-ROM 206被写到ROM 130,ROM 130的只读性质确保boot-ROM 206的真实性和安全性。
硬件202还包括其被配置作为能够存储二进制值的熔断器块的OTP存储器132。在这一特定示例中,OTP存储器132存储其包括在计算设备的引导序列期间执行的二进制代码的boot-ROM补丁208。在一些情况下,boot-ROM补丁208包括代替boot-ROM 206的一部分执行(诸如当boot-ROM 206的该部分包括错误或漏洞)的替代引导代码。在其它情况下,boot-ROM补丁208包括与boot-ROM 206结合执行的附加引导代码。在这样的情况下,在引导序列期间,附加引导代码的执行可以实现计算设备的附加或功能。写到OTP存储器的代码的实施方式和使用会变化并且在下面进行描述。
在引导序列期间,boot-ROM 206的执行将较高级别引导加载器加载到软件204中,较高级别引导加载器转而加载另一较高级别引导加载器,并且引导序列继续进行直到操作系统被加载。在这一特定示例中,boot-ROM 206的执行加载来自SPI闪存126的级别2引导加载器210。在向级别2引导加载器210传送资源控制之前,通过验证密码签名或哈希,boot-ROM 206确认引导加载器的代码的真实性有效。通过这样做,boot-ROM 206确保:下一级别的引导加载器是安全的(例如,没有被篡改),并且从“信任根”向引导序列的下一步骤建立信任链。
一旦资源控制从boot-ROM 206传递到级别2引导加载器210,引导加载器的执行进一步配置计算设备的资源,并且加载来自NAND闪存128的级别3引导加载器212。此处,为了继续信任链,在向3引导加载器212传送资源控制之前,级别2引导加载器210确认3引导加载器212的真实性有效。如图2所示,引导序列继续进行,直到随着引导序列前进通过任何数目的中间引导加载器,级别N引导加载器214被加载、确认有效和执行。为了实现受信任的引导过程,每个级别的引导代码或引导加载器的真实性由先前的引导加载器确认有效。
为了结束引导序列,级别N引导加载器214的执行加载来自非易失性120的操作系统216,并且通过验证与操作系统216相关联的密码签名或哈希值,确认操作系统的真实性有效。通过这样做,实现受信任的引导过程,以确保计算设备上执行的软件是可靠和授权的。受信任的引导过程的“信任根”是boot-ROM 206,其因一旦存储器被制造就不能更改ROM 130而保证是安全的。
修补只读存储器的引导代码的技术
以下讨论描述修补只读存储器的引导代码的技术。这些技术可以使用先前描述的环境或实体(诸如图1中体现在计算设备102上的中断管理器134)来实现。这些技术包括图3、图4和图6中图示的方法,这些图中的每幅图被示出为由一个或多个实体执行的操作集。这些方法不必要限于用于执行操作的所示顺序。进一步地,不论由相同实体、分立实体或其任何组合执行,这些方法可以整体地或部分地彼此结合使用。在以下讨论的部分中,将通过示例的方式参照图1的操作环境100以及图2和图5的实体。这样的参照不要被视为限于操作环境100,而是更确切地说,视为说明各种示例之一。
图3描绘用于中断来自只读存储器的引导代码的执行的方法300,包括由图1的中断管理器134执行的操作。
在302处,发起来自只读存储器(ROM)的第一引导代码的执行。发起第一引导代码的执行开始计算设备的引导过程。在一些情况下,第一引导代码是在ROM的制造期间被烧录到硬件中的安全boot-ROM。发起第一引导代码的执行可以响应于计算设备的通电事件。例如,当智能电话或平板计算机通电时,微控制器或硬件逻辑电路可以发起boot-ROM二进制数的执行。
在304处,中断第一引导代码的执行,以使得能够执行来自另一存储器的第二引导代码。在有效停止第一引导代码的执行的预定点处中断第一引导代码的执行。预定点可以是第一引导代码中触发中断、打断、跳跃等的地址或指令。当第一引导代码不执行时,可以从计算设备的另一存储器执行第二引导代码。在一些情况下,代替第一引导代码的一部分(诸如包含漏洞或错误的部分),执行第二引导代码。在其它情况下,在设备的引导过程期间,第二引导代码的执行提供附加的功能或特征。
在306处,在执行第二引导代码之后,恢复来自ROM的第一引导代码的执行。恢复来自ROM的第一引导代码的执行使设备的引导过程继续。在一些情况下,在诸如返回地址之类的预定返回点处恢复第一引导代码的执行。继续的第一引导代码的执行可以加载设备的高级别引导加载器或操作系统。在一些情况下,在从第一引导代码传递设备资源控制之前,验证较高级别引导加载器或操作系统的真实性。这可以有效实现受信任的引导过程,其中在从较低级别引导加载器传送设备控制之前,确认每个级别或层的引导过程有效。通过执行来自ROM和OTP存储器的根级别引导代码,由于这些存储器的不可修改性质,确保了最低级别引导代码的安全性。
图4描绘用于执行来自一次性可编程存储器的替代引导代码的方法400,包括由图1的中断管理器134执行的操作。
在402处,发起来自只读存储器(ROM)的引导代码的执行。存储在ROM中的引导代码可以包括其被执行以引导计算设备的boot-ROM二进制数。在一些情况下,boot-ROM被烧录到ROM的物理导体或半导体层中,并且不可修改。在这样的情况下,boot-ROM是安全boot-ROM,并且可以作为用于受信任引导过程的“信任根”起作用。引导代码的执行由程序计数器推进,程序计数器递增通过引导的地址,以造成与每个地址相关联的指令的执行。
作为示例,考虑用户使图1的智能电话104通电。此处假设智能电话104从“关”状态引导至“开”状态,在“关”状态中,智能电话104的部件和资源断电。为了引导至“开”状态,响应于用户使智能电话104通电,boot-ROM 206开始执行。如图5所示,boot-ROM 206包括地址502和二进制数504,当执行时,二进制数504从二进制被转换为机器代码指令(指令506)。随着程序计数器508前进通过地址502,智能电话104的处理器核114执行二进制数504或者对应指令506的线。
在404处,中断来自ROM的引导代码的执行。这可以响应于程序计数器到达引导代码中的预定地址。预定地址可以存储在不同存储器中,诸如一次性可编程存储器以确保预定地址不能被修改。在一些情况下,中断服务例程(例如,基于硬件的中断逻辑)被配置为当程序计数器到达引导代码中的预定地址时引发中断。在这样的情况下,引发的中断可以用于使得中断处理机执行其它代码。预定地址可以指示其包括错误或漏洞(要阻止其执行)的引导代码线。替代地或附加地,预定地址可以是包括错误或漏洞的引导代码区段的第一地址。
在本示例的上下文中,假设boot-ROM区段510包括响应于执行阻止智能电话104通电的错误。据此,选择地址512(0x5E0123FC)来发起中断过程,以阻止“BNE”指令的执行。被选择为引发中断的地址被写到boot-ROM补丁208中作为中断地址514。当程序计数器508到达中断地址514时,中断管理器134引发有效阻止处理器核114执行“BNE”指令的中断。
在406处,从一次性可编程(OTP)存储器执行替代引导代码。代替存储在ROM中的引导代码的一部分,执行这一替代引导代码。在一些情况下,替代引导代码的执行是响应于在执行来自ROM的引导代码期间引发的中断。在这样的情况下,中断可以由配置为执行替代引导代码的中断处理机清除。可以在引导代码的较早执行期间实现或配置这一中断处理机。
继续前述示例,中断处理机516清除由中断管理器134引发的中断。在暂停boot-ROM 206的执行的同时,中断处理机516执行存储在OTP存储器132中的boot-ROM补丁208的补丁二进制数518。此处,代替boot-ROM区段510执行补丁二进制数518,并且阻止boot-ROM区段510中的错误代码的执行。通过这样做,boot-ROM区段510的代码可以被修补,而不更改或修改ROM 130的内容。附加地,因为补丁二进制数518被烧录到OTP存储器132中,保持引导代码的“信任根”,因为OTP存储器的内容一旦烧录就不能被修改。
在408处,程序计数器返回到引导代码中的一个地址,用于从ROM恢复执行引导代码。引导代码中的返回地址可以被配置为使得引导代码的一个或多个指令被跳过。可选地,方法400可以返回到操作404,以中断来自ROM的引导代码的执行。例如,在一些情况下,可以修补引导代码的多个区段。因此,方法400的操作404至408的迭代可以执行任何适合次数,以执行附加二进制数,以修补存储在ROM中的引导代码。
总结前述示例,假设其跟随boot-ROM区段510的地址520(0x5E01241C)被烧录到boot-ROM补丁208中作为返回地址522。此处,在执行补丁二进制数518之后,中断处理机516将程序计数器508设置为返回地址522。这会用于使得处理器核114跳过boot-ROM区段510,并且在地址520处恢复boot-ROM 206的执行。一旦boot-ROM 206的执行加载智能电话104的引导加载器,boot-ROM 206将引导加载器验证为可靠的,并且向引导加载器传递控制,以继续引导智能电话104。
图6描绘用于将引导代码烧录到一次性可编程存储器的熔断器中的方法600。
在602处,引导代码被烧录到一次性可编程(OTP)存储器的熔断器中。引导代码可以是替代引导代码或附加引导代码,其补充诸如boot-ROM二进制数之类的存储在只读存储器(ROM)中的其它引导代码。通过示例的方式,考虑包括多个代码区段(其中之一包含错误)的受信任boot-ROM二进制数。被设计为代替boot-ROM的错误区段执行的补丁二进制数被烧录到OTP存储器的熔断器中。因此,在引导序列期间被烧录到熔断器中的引导代码的执行可以有效修补boot-ROM中的错误(或漏洞)。
在604处,用于中断服务的第一地址被烧录到OTP的熔断器中。在OTP存储器中包括这一第一地址可以用于使得中断服务当程序计数器遇到第一地址时引发中断。替代地或附加地,第一地址用于使得来自OTP存储器的引导代码在引导序列期间执行。在上面示例的上下文中,位于boot-ROM中的错误前方的地址被烧录到OTP存储器的熔断器中。通过选择在错误前方的地址,boot-ROM的执行在遇到错误之前由中断服务中断。附加地,当程序计数器到达这一地址时,可以使得中断处理机执行补丁二进制数,而不是包括错误的boot-ROM区段。
在606处,用于中断服务的第二地址被烧录到OTP的熔断器中。在OTP存储器中包括这一第二地址可以用于使得中断服务在中断被服务之后将程序计数器设置为第二地址。在一些情况下,第二地址位于诸如boot-ROM之类的从ROM执行的引导代码内。通过将程序计数器设置为boot-ROM中的地址,可以从程序计数器设置在的地址恢复boot-ROM的执行。
在一些情况下,第二地址不会紧接地跟随从其发起中断的地址。在这样的情况下,这可以有效阻止引导代码的特定部分或区段的执行。继续前述示例,位于boot-ROM中的错误之后的地址被烧录到OTP存储器的熔断器中。因此,不执行位于烧录到OTP存储器的熔断器中的地址之间的boot-ROM二进制数。
可选地在608处,OTP存储器的附加熔断器被烧录,以使先前烧录到OTP存储器中的数据安全。附加熔断器是OTP存储器的未使用块的熔断器以及与未使用块相关联的错误校正码比特的熔断器。通过这样做,不能修改OTP存储器,这有效使诸如引导代码补丁之类的OTP存储器内容安全。替代地或附加地,可以更新或更改与OTP存储器相关联的库存单元(SKU)号,以反映由烧录到OTP存储器中的引导代码提供的功能。例如,包括存储boot-ROM补丁的OTP存储器的芯片的SKU号可以被修正,以反映在芯片内包括boot-ROM补丁。
片上系统
图7图示片上系统(SoC)700,其可以实现加载来自多个存储器的引导代码的各个方面。SoC可以实现在任何适合的设备中,诸如视频游戏控制台、IP使能的电视、智能电话、膝上型计算机、个人导航设备、接入点、无线路由器、蜂窝宽带路由器、平板计算机、服务器、网络使能的打印机、机顶盒、打印机、扫描仪、相机、相框、家用电器、恒温器、家用自动化设备和/或任何其它类型的电子设备。
SoC 700可以集成有提供设备(诸如上面列出的设备中的任何设备)功能所需要的电子电路、微处理器、存储器、输入输出(I/O)逻辑控制、通信接口、其它硬件,固件和/或软件。SoC 700还可以包括将SoC的各种部件耦合以用于部件之间的数据通信的集成数据总线(未示出)。包括SoC 700的电子或计算设备还可以实现有不同部件的许多组合。在一些情况下,这些不同的部件可被配置为通过各种内部或外部数据接口来实现本文中描述的概念。
在这一示例中,SoC 700包括诸如输入输出(I/O)逻辑控制702(例如,以包括电子电路)和微处理器704之类的各种部件。SoC 700还包括存储器706,存储器706可以是任何类型和/或组合的RAM、SRAM、DRAM、闪存、低延迟非易失性存储器、ROM、和/或其它适合的电子数据存储。在至少一些方面中,SoC 700的引导代码存储在其实现为ROM的存储器706的一部分中。
SoC 700还包括其中存储附加或替代引导代码的一次性可编程存储器132(OTP存储器132)。这一替代或附加引导代码可以如本文中描述的用于实现修补ROM的引导代码的一个或多个方面。通过示例的方式并且在SoC 700的上下文中,陷于期望补丁地址的能力是由片上系统基于OTP 132的一次性可编程熔断器实现的特征。一旦响应于遇到期望补丁地址而执行其它引导代码(例如,补丁代码),从ROM恢复执行引导代码,以继续引导其中体现SoC 700的计算设备。
替代地或附加地,SoC 700可包括用于访问诸如外部SRAM、DRAM或闪存存储器之类的附加或外部片外存储器的数据接口(未示出)。虽然未示出,外部存储器(或存储器706)可以包括存储引导代码的多个相应引导加载器和/或部分的多个非易失性存储器设备,如参照图1描述的。SoC 700还可以包括诸如(多个)操作系统708之类的各种固件和/或软件,其可以是由存储器706保持并且由微处理器704执行的计算机可执行指令。SoC 700还可以包括体现为硬件、固件、软件或其任何适合组合的其它各种通信接口和部件。
SoC 700还包括中断管理器134,其可以体现为不相干的或组合的部件、逻辑、例程或服务。这些各种部件、功能和/或实体的示例以及它们的对应功能性参照环境100的相应部件以及如由图2和图5图示的各种配置进行描述。独立地或与其它实体(例如,中断服务例程)组合,中断管理器134可以实现为由存储器706保持的并且由微处理器704执行的计算机可执行指令,以实现本文中描述的各种实施例和/或特征。中断管理器134还可以被提供为与SoC的其它实体集成,诸如与SoC 700内的微处理器704或者另一适合软件、固件或硬件部件相关联的硬件中断逻辑。替代地或附加地,中断管理器134和其它部件可以实现为其与SoC 700的I/O逻辑控制702和/或其它信号处理和控制电路结合实现的硬件、固件、固定逻辑电路、或其任何组合。
虽然已经以特定于结构特征和/或方法操作的语言描述了主题,但是要理解的是,所附权利要求书中限定的主题不必要限于上面描述的具体特征或操作(包括它们执行的顺序)。
Claims (20)
1.一种方法,包括:
从只读存储器(ROM),发起第一引导代码的执行以开始计算设备的引导过程;
在所述计算设备的所述引导过程期间,中断所述第一引导代码的所述执行以使得能够从另一存储器执行第二引导代码;以及
在执行所述第二引导代码之后,恢复所述第一引导代码的所述执行以继续所述计算设备的所述引导过程。
2.根据权利要求1所述的方法,其中所述另一存储器是所述第二引导代码被烧录到的一次性可编程存储器。
3.根据权利要求1所述的方法,进一步包括响应于所述第一引导代码的所述执行的所述中断,从所述另一存储器执行所述第二引导代码。
4.根据权利要求1所述的方法,其中中断所述第一引导代码的所述执行响应于在执行所述第一引导代码期间引发的基于硬件的中断。
5.根据权利要求4所述的方法,进一步包括响应于所述基于硬件的中断引发,清除引发的所述基于硬件的中断,使得所述第二引导代码执行,并且返回到所述第一引导代码的执行的预定义点。
6.根据权利要求5所述的方法,其中所述第一引导代码的执行返回到的所述预定义点不同于所述第一引导代码的执行被中断的点。
7.根据权利要求1所述的方法,其中在所述ROM体现在其中的设备或芯片的制造期间,所述第一引导代码被写入所述ROM。
8.一种方法,包括:
从只读存储器(ROM)发起第一引导代码的执行,所述第一引导代码的所述执行经由程序计数器推进;
响应于所述程序计数器到达所述第一引导代码中的预定地址,中断所述第一引导代码的所述执行;
代替所述第一引导代码中的至少一些第一引导代码,从一次性可编程(OTP)存储器执行第二引导代码;以及
响应于执行所述第二引导代码的完成,使所述程序计数器返回到所述第一引导代码中的一个地址,用于从所述ROM恢复执行所述第一引导代码。
9.根据权利要求8所述的方法,其中在所述OTP存储器中存储所述第一引导代码的执行被中断的所述预定地址或者所述程序计数器返回到的所述地址。
10.根据权利要求8所述的方法,其中所述第一引导代码和所述第二引导代码的执行用于加载引导加载器,并且所述方法进一步包括在传送所述引导加载器的控制之前,验证所述引导加载器的密码签名或密码哈希,以确保所述引导加载器的真实性。
11.根据权利要求8所述的方法,其中中断所述第一引导代码的所述执行包括引发中断,并且所述方法进一步包括在执行所述第二引导代码之前,清除引发的所述中断。
12.根据权利要求8所述的方法,其中所述第一引导代码中的所述至少一些第一引导代码包括编码错误,并且所述程序计数器返回到的所述地址位于所述第一引导代码中的所述编码错误后,使得所述编码错误不被执行。
13.根据权利要求8所述的方法,其中所述第一引导代码被烧录到所述ROM中并且所述第二引导代码被烧录到所述OTP存储器中,使得所述第一引导代码和所述第二引导代码的执行实现至少部分的受信任引导过程。
14.一种片上系统,包括:
处理器,被配置为经由程序计数器执行代码,以引导所述片上系统体现在其中的设备;
只读存储器(ROM),存储用于所述设备的第一引导代码;
一次性可编程(OTP)存储器,存储第二引导代码;以及
中断管理器,被配置为:
响应于所述程序计数器遇到所述第一引导代码中的预定地址,中断来自所述ROM的所述第一引导代码的执行;
使得所述处理器执行来自所述OTP存储器的所述第二引导代码;以及
在执行所述第二引导代码之后,使所述程序计数器返回到所述第一引导代码中的一个地址,用于从所述ROM恢复执行所述第一引导代码。
15.根据权利要求14所述的片上系统,其中所述OTP存储器包括用于存储数据的熔断器的一个或多个块,并且所述第二引导代码被烧录到所述熔断器的一个或多个块中。
16.根据权利要求15所述的片上系统,其中所述熔断器的未使用块以及与所述熔断器的所述未使用块相关联的错误校正码比特被烧录,使得所述OTP存储器的内容不能被修改。
17.根据权利要求14所述的片上系统,其中所述片上系统包括地址链接寄存器,所述地址链接寄存器被配置为存储在执行所述第二引导代码之后所述程序计数器返回到的所述地址。
18.根据权利要求17所述的片上系统,其中所述中断管理器进一步被配置为将所述地址链接寄存器设置为紧接在所述第一引导代码的执行被中断的所述预定地址后的地址。
19.根据权利要求17所述的片上系统,其中所述中断管理器进一步被配置为将所述地址链接寄存器设置为不是紧接在所述预定地址后的地址,用于使得所述处理器不执行存储在所述ROM中的所述第一引导代码的一部分。
20.根据权利要求14所述的片上系统,其中所述片上系统体现在其中的所述设备包括计算设备、电子设备或通信设备之一。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361768097P | 2013-02-22 | 2013-02-22 | |
US61/768,097 | 2013-02-22 | ||
PCT/US2014/016259 WO2014130338A1 (en) | 2013-02-22 | 2014-02-13 | Patching boot code of read-only memory |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104981778A true CN104981778A (zh) | 2015-10-14 |
Family
ID=50236280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480008317.8A Pending CN104981778A (zh) | 2013-02-22 | 2014-02-13 | 修补只读存储器的引导代码 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9880856B2 (zh) |
EP (1) | EP2959378A1 (zh) |
JP (1) | JP6318425B2 (zh) |
KR (1) | KR102026393B1 (zh) |
CN (1) | CN104981778A (zh) |
TW (1) | TWI664574B (zh) |
WO (1) | WO2014130338A1 (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335200A (zh) * | 2015-11-24 | 2016-02-17 | 小米科技有限责任公司 | 系统升级方法及装置 |
CN105468410A (zh) * | 2015-11-24 | 2016-04-06 | 小米科技有限责任公司 | 系统升级方法及装置 |
CN106445662A (zh) * | 2016-09-13 | 2017-02-22 | 广东欧珀移动通信有限公司 | 一种移植应用程序的方法及终端设备 |
CN108376085A (zh) * | 2017-02-01 | 2018-08-07 | 三星电子株式会社 | 半导体系统及操作半导体装置的方法 |
CN109739565A (zh) * | 2019-01-07 | 2019-05-10 | 深圳忆联信息系统有限公司 | 一种保证Bootrom正常运行的方法、装置、计算机设备及存储介质 |
CN111694594A (zh) * | 2020-05-18 | 2020-09-22 | 成都盛芯微科技有限公司 | 补丁程序的控制方法和系统 |
WO2020223950A1 (zh) * | 2019-05-09 | 2020-11-12 | 深圳市德明利技术股份有限公司 | 一种防止 u 盘数据丢失和系统损坏的方法和装置以及设备 |
CN112083961A (zh) * | 2020-08-05 | 2020-12-15 | 北京智芯微电子科技有限公司 | 嵌入式芯片的引导加载方法 |
CN113377565A (zh) * | 2021-06-10 | 2021-09-10 | 博流智能科技(南京)有限公司 | Bootrom修正系统及方法以及芯片 |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9703950B2 (en) * | 2012-03-30 | 2017-07-11 | Irdeto B.V. | Method and system for preventing and detecting security threats |
EP2778910B1 (en) * | 2013-03-15 | 2021-02-24 | Maxim Integrated Products, Inc. | Systems and methods to extend rom functionality |
US20150286823A1 (en) * | 2014-04-07 | 2015-10-08 | Qualcomm Incorporated | System and method for boot sequence modification using chip-restricted instructions residing on an external memory device |
US9753874B2 (en) * | 2015-02-20 | 2017-09-05 | Qualcomm Incorporated | Multi-step programming of heat-sensitive non-volatile memory (NVM) in processor-based systems |
US11354117B2 (en) | 2016-07-13 | 2022-06-07 | Oracle International Corporation | Adaptable patching mechanism for mixed memory systems |
US10382436B2 (en) * | 2016-11-22 | 2019-08-13 | Daniel Chien | Network security based on device identifiers and network addresses |
US10530617B2 (en) | 2017-08-07 | 2020-01-07 | Micron Technology, Inc. | Programmable channel equalization for multi-level signaling |
US10447512B2 (en) | 2017-08-07 | 2019-10-15 | Micron Technology, Inc. | Channel equalization for multi-level signaling |
US10277435B2 (en) | 2017-08-07 | 2019-04-30 | Micron Technology, Inc. | Method to vertically align multi-level cells |
US10853309B2 (en) | 2018-08-13 | 2020-12-01 | Micron Technology, Inc. | Fuseload architecture for system-on-chip reconfiguration and repurposing |
US10990384B2 (en) * | 2018-09-27 | 2021-04-27 | Intel Corporation | System, apparatus and method for dynamic update to code stored in a read-only memory (ROM) |
US11188622B2 (en) | 2018-09-28 | 2021-11-30 | Daniel Chien | Systems and methods for computer security |
KR102567097B1 (ko) | 2018-12-05 | 2023-08-14 | 삼성전자주식회사 | 임베디드 시스템의 부트 롬 업데이트 방법 및 부팅 방법 |
US10848489B2 (en) | 2018-12-14 | 2020-11-24 | Daniel Chien | Timestamp-based authentication with redirection |
US10826912B2 (en) | 2018-12-14 | 2020-11-03 | Daniel Chien | Timestamp-based authentication |
TWI738135B (zh) * | 2019-04-07 | 2021-09-01 | 新唐科技股份有限公司 | 監控系統開機之安全裝置及其方法 |
KR20210046418A (ko) | 2019-10-18 | 2021-04-28 | 삼성전자주식회사 | 보안 패치가 가능한 롬을 갖는 반도체 장치 및 그것의 패치 방법 |
US11677754B2 (en) | 2019-12-09 | 2023-06-13 | Daniel Chien | Access control systems and methods |
TWI707350B (zh) * | 2020-02-13 | 2020-10-11 | 大陸商北京集創北方科技股份有限公司 | 一次性編程唯讀記憶體之操作方法、處理器晶片及資訊處理裝置 |
US11037647B1 (en) * | 2020-02-19 | 2021-06-15 | Semiconductor Components Industries, Llc | Systems and methods for updating memory circuitry |
US11438145B2 (en) | 2020-05-31 | 2022-09-06 | Daniel Chien | Shared key generation based on dual clocks |
US11509463B2 (en) | 2020-05-31 | 2022-11-22 | Daniel Chien | Timestamp-based shared key generation |
CN111752588A (zh) * | 2020-06-02 | 2020-10-09 | 深圳麦格米特电气股份有限公司 | 一种应用程序的更新方法和电子设备 |
EP3989478B1 (en) * | 2020-10-22 | 2023-10-18 | Moxa Inc. | Computing system and device for handling a chain of trust |
US11604655B2 (en) * | 2020-11-12 | 2023-03-14 | Ati Technologies Ulc | Sync point mechanism between master and slave nodes |
US11392450B1 (en) * | 2020-12-07 | 2022-07-19 | Amazon Technologies, Inc. | Data integrity check for one-time programmable memory |
WO2022250653A1 (en) * | 2021-05-24 | 2022-12-01 | Google Llc | Memory patching with associative and directly mapped patch data |
US11775284B2 (en) | 2022-01-27 | 2023-10-03 | Realtek Singapore Private Limited | Electronic device and code patching method |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0514806B1 (en) * | 1991-05-23 | 1999-01-27 | Sony Corporation | Micro-controller with correction of defective information |
US20020062479A1 (en) * | 2000-11-21 | 2002-05-23 | Toshio Takata | Microcontroller with modifiable program |
US20020120810A1 (en) * | 2001-02-28 | 2002-08-29 | Brouwer Roger J. | Method and system for patching ROM code |
CN1430141A (zh) * | 2001-12-26 | 2003-07-16 | 株式会社东芝 | 微处理器以及微处理器的处理方法 |
US20070028083A1 (en) * | 2005-07-29 | 2007-02-01 | Kelly Yu | Method and system for modifying operation of ROM based boot code |
US20080263533A1 (en) * | 2007-04-19 | 2008-10-23 | Proton World International N.V. | Implementation of patches by a processing unit |
CN100466265C (zh) * | 2005-12-08 | 2009-03-04 | 旺宏电子股份有限公司 | 用于单次可程序化内存的无二极管的阵列 |
US20100106953A1 (en) * | 2008-10-23 | 2010-04-29 | Horizon Semiconductors Ltd. | Method for patching rom boot code |
US7739469B2 (en) * | 2005-11-08 | 2010-06-15 | Freescale Semiconductor, Inc. | Patching ROM code |
CN101916348A (zh) * | 2010-08-16 | 2010-12-15 | 武汉天喻信息产业股份有限公司 | 一种用户操作系统的安全引导方法及引导系统 |
CN102163143A (zh) * | 2011-04-28 | 2011-08-24 | 北京北大众志微系统科技有限责任公司 | 一种实现值关联间接跳转预测的方法 |
CN102243587A (zh) * | 2010-05-14 | 2011-11-16 | 康佳集团股份有限公司 | 嵌入式系统中对rom程序的升级方法 |
CN102265263A (zh) * | 2008-12-24 | 2011-11-30 | 松下电器产业株式会社 | 总线控制器及初始引导程序的修补方法 |
US20120216028A1 (en) * | 2011-02-18 | 2012-08-23 | Combined Iq, Llc | Method and system of modifying system configuration data of a native operating system |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4831517A (en) * | 1986-10-10 | 1989-05-16 | International Business Machines Corporation | Branch and return on address instruction and methods and apparatus for implementing same in a digital data processing system |
US5901225A (en) * | 1996-12-05 | 1999-05-04 | Advanced Micro Devices, Inc. | System and method for performing software patches in embedded systems |
JPH10232772A (ja) | 1997-02-20 | 1998-09-02 | Nec Corp | プログラム変更装置 |
JP3727485B2 (ja) * | 1999-04-02 | 2005-12-14 | シャープ株式会社 | 不揮発性メモリ内蔵マイクロコンピュータ |
JP2001256044A (ja) | 2000-03-14 | 2001-09-21 | Sony Corp | データ処理装置 |
US6925521B2 (en) * | 2001-09-10 | 2005-08-02 | Texas Instruments Incorporated | Scheme for implementing breakpoints for on-chip ROM code patching |
US7039776B2 (en) * | 2003-04-17 | 2006-05-02 | Broadcom Corporation | Patch memory system for a ROM-based processor |
GB0424424D0 (en) * | 2004-11-04 | 2004-12-08 | St Microelectronics Belgium Nv | A code patching device |
US20060265692A1 (en) * | 2005-05-20 | 2006-11-23 | Mengjin Su | Method, apparatus, and computer program product for code patching |
WO2007041501A2 (en) | 2005-09-30 | 2007-04-12 | Phoenix Technologies Ltd. | Secure execution environment by preventing execution of unauthorized boot loaders |
US7644223B2 (en) * | 2006-10-30 | 2010-01-05 | Via Telecom Co., Ltd. | Circuit and method for patching for program ROM |
US9348597B2 (en) * | 2008-06-30 | 2016-05-24 | Infineon Technologies Ag | Device and method for bypassing a first program code portion with a replacement program code portion |
US20100180104A1 (en) * | 2009-01-15 | 2010-07-15 | Via Technologies, Inc. | Apparatus and method for patching microcode in a microprocessor using private ram of the microprocessor |
-
2014
- 2014-02-13 EP EP14708381.0A patent/EP2959378A1/en not_active Ceased
- 2014-02-13 CN CN201480008317.8A patent/CN104981778A/zh active Pending
- 2014-02-13 WO PCT/US2014/016259 patent/WO2014130338A1/en active Application Filing
- 2014-02-13 US US14/180,030 patent/US9880856B2/en active Active
- 2014-02-13 KR KR1020157025232A patent/KR102026393B1/ko active IP Right Grant
- 2014-02-13 JP JP2015558880A patent/JP6318425B2/ja active Active
- 2014-02-14 TW TW103104936A patent/TWI664574B/zh not_active IP Right Cessation
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0514806B1 (en) * | 1991-05-23 | 1999-01-27 | Sony Corporation | Micro-controller with correction of defective information |
US20020062479A1 (en) * | 2000-11-21 | 2002-05-23 | Toshio Takata | Microcontroller with modifiable program |
US20020120810A1 (en) * | 2001-02-28 | 2002-08-29 | Brouwer Roger J. | Method and system for patching ROM code |
CN1430141A (zh) * | 2001-12-26 | 2003-07-16 | 株式会社东芝 | 微处理器以及微处理器的处理方法 |
US20070028083A1 (en) * | 2005-07-29 | 2007-02-01 | Kelly Yu | Method and system for modifying operation of ROM based boot code |
US7739469B2 (en) * | 2005-11-08 | 2010-06-15 | Freescale Semiconductor, Inc. | Patching ROM code |
CN100466265C (zh) * | 2005-12-08 | 2009-03-04 | 旺宏电子股份有限公司 | 用于单次可程序化内存的无二极管的阵列 |
US20080263533A1 (en) * | 2007-04-19 | 2008-10-23 | Proton World International N.V. | Implementation of patches by a processing unit |
US20100106953A1 (en) * | 2008-10-23 | 2010-04-29 | Horizon Semiconductors Ltd. | Method for patching rom boot code |
CN102265263A (zh) * | 2008-12-24 | 2011-11-30 | 松下电器产业株式会社 | 总线控制器及初始引导程序的修补方法 |
CN102243587A (zh) * | 2010-05-14 | 2011-11-16 | 康佳集团股份有限公司 | 嵌入式系统中对rom程序的升级方法 |
CN101916348A (zh) * | 2010-08-16 | 2010-12-15 | 武汉天喻信息产业股份有限公司 | 一种用户操作系统的安全引导方法及引导系统 |
US20120216028A1 (en) * | 2011-02-18 | 2012-08-23 | Combined Iq, Llc | Method and system of modifying system configuration data of a native operating system |
CN102163143A (zh) * | 2011-04-28 | 2011-08-24 | 北京北大众志微系统科技有限责任公司 | 一种实现值关联间接跳转预测的方法 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105468410A (zh) * | 2015-11-24 | 2016-04-06 | 小米科技有限责任公司 | 系统升级方法及装置 |
CN105468410B (zh) * | 2015-11-24 | 2019-02-12 | 小米科技有限责任公司 | 系统升级方法及装置 |
CN105335200B (zh) * | 2015-11-24 | 2019-05-07 | 小米科技有限责任公司 | 系统升级方法及装置 |
CN105335200A (zh) * | 2015-11-24 | 2016-02-17 | 小米科技有限责任公司 | 系统升级方法及装置 |
CN106445662A (zh) * | 2016-09-13 | 2017-02-22 | 广东欧珀移动通信有限公司 | 一种移植应用程序的方法及终端设备 |
CN106445662B (zh) * | 2016-09-13 | 2019-09-10 | 广东欧珀移动通信有限公司 | 一种移植应用程序的方法及终端设备 |
CN108376085A (zh) * | 2017-02-01 | 2018-08-07 | 三星电子株式会社 | 半导体系统及操作半导体装置的方法 |
CN108376085B (zh) * | 2017-02-01 | 2023-10-20 | 三星电子株式会社 | 半导体系统及操作半导体装置的方法 |
CN109739565B (zh) * | 2019-01-07 | 2022-03-29 | 深圳忆联信息系统有限公司 | 一种保证Bootrom正常运行的方法、装置、计算机设备及存储介质 |
CN109739565A (zh) * | 2019-01-07 | 2019-05-10 | 深圳忆联信息系统有限公司 | 一种保证Bootrom正常运行的方法、装置、计算机设备及存储介质 |
WO2020223950A1 (zh) * | 2019-05-09 | 2020-11-12 | 深圳市德明利技术股份有限公司 | 一种防止 u 盘数据丢失和系统损坏的方法和装置以及设备 |
CN111694594A (zh) * | 2020-05-18 | 2020-09-22 | 成都盛芯微科技有限公司 | 补丁程序的控制方法和系统 |
CN111694594B (zh) * | 2020-05-18 | 2023-03-03 | 成都盛芯微科技有限公司 | 补丁程序的控制方法和系统 |
CN112083961B (zh) * | 2020-08-05 | 2022-01-14 | 北京智芯微电子科技有限公司 | 嵌入式芯片的引导加载方法 |
CN112083961A (zh) * | 2020-08-05 | 2020-12-15 | 北京智芯微电子科技有限公司 | 嵌入式芯片的引导加载方法 |
CN113377565A (zh) * | 2021-06-10 | 2021-09-10 | 博流智能科技(南京)有限公司 | Bootrom修正系统及方法以及芯片 |
CN113377565B (zh) * | 2021-06-10 | 2024-05-28 | 博流智能科技(南京)有限公司 | Bootrom修正系统及方法以及芯片 |
Also Published As
Publication number | Publication date |
---|---|
EP2959378A1 (en) | 2015-12-30 |
JP2016507848A (ja) | 2016-03-10 |
KR102026393B1 (ko) | 2019-11-04 |
KR20150120429A (ko) | 2015-10-27 |
US20140244991A1 (en) | 2014-08-28 |
WO2014130338A1 (en) | 2014-08-28 |
TW201502990A (zh) | 2015-01-16 |
JP6318425B2 (ja) | 2018-05-09 |
US9880856B2 (en) | 2018-01-30 |
TWI664574B (zh) | 2019-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104981778A (zh) | 修补只读存储器的引导代码 | |
US10509568B2 (en) | Efficient secure boot carried out in information processing apparatus | |
US8281229B2 (en) | Firmware verification using system memory error check logic | |
WO2017058577A1 (en) | Nand-based verified boot | |
US20210149681A1 (en) | Secure Firmware Management with Hierarchical Boot Sequence using Last Known Good Firmware | |
CN112789574B (zh) | 经由系统及电源管理微控制器的安全启动 | |
US11281768B1 (en) | Firmware security vulnerability verification service | |
CN105518621A (zh) | 将引导操作并行化 | |
KR102227263B1 (ko) | 보안 부트 변경 변경시스템, 방법 및 이 변경시스템을 구비한 전자장치 | |
CN109814934B (zh) | 数据处理方法、装置、可读介质和系统 | |
CN109445705B (zh) | 固件认证方法及固态硬盘 | |
JP6622360B2 (ja) | 情報処理装置 | |
CN115454517A (zh) | 多介质安全启动的方法、系统、存储介质、设备及芯片 | |
CN110781527B (zh) | 一种控制寄存器保护方法与装置 | |
KR20230082388A (ko) | 차량 제어기의 부트로더 검증 장치 및 그 방법 | |
TWI738020B (zh) | 電子機器及其控制方法 | |
CN113935011A (zh) | 用于执行控制设备的安全启动序列的方法 | |
US11068276B2 (en) | Controlled customization of silicon initialization | |
US20230129942A1 (en) | Method for locking a rewritable non-volatile memory and electronic device implementing said method | |
CN112817619A (zh) | 电脑系统及其安全管理方法以及电脑软件产品 | |
JP2020195134A (ja) | メモリエラーを訂正するためのシステム及び方法 | |
JP2016157163A (ja) | 制御回路及び制御回路における制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151014 |