CN104424008A - 安全引导 rom 补丁的***及方法 - Google Patents
安全引导 rom 补丁的***及方法 Download PDFInfo
- Publication number
- CN104424008A CN104424008A CN201410432852.8A CN201410432852A CN104424008A CN 104424008 A CN104424008 A CN 104424008A CN 201410432852 A CN201410432852 A CN 201410432852A CN 104424008 A CN104424008 A CN 104424008A
- Authority
- CN
- China
- Prior art keywords
- rom
- patch
- instruction
- ram
- memory circuit
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Microcomputers (AREA)
Abstract
公开了一种安全引导ROM补丁的***及方法。一种数据处理***(100),包括:被配置成存储引导代码的引导只读存储器(ROM)(104);被配置成存储补丁指令的一次性可编程(OTP)存储电路(116);随机存取存储器(RAM)(110);以及,耦合于所述引导ROM、所述OTP存储电路和所述RAM的处理器。所述处理器被配置成:响应于所述数据处理***的重置,将一个或多个补丁指令从所述OTP存储电路复制到所述RAM中,以及,在所述引导代码的执行期间,执行来自所述RAM的一个或多个所述补丁指令,以替代所述引导代码的指令。
Description
技术领域
本公开通常涉及半导体装置,更具体地说,涉及用于安全修补芯片上***(SoC)装置的引导只读存储器。
背景技术
处于开发中的芯片上***(SoC)包括很多组件,例如处理器、存储器、***装置和总线。一些SoC实现了芯片上引导只读存储器(ROM),而其它的未实现,却实现了芯片上闪存,或使用了芯片外存储器以用于存储引导处理器的指令。当考虑安全性并且芯片上闪存不是一种选择的时候,引导ROM是优选的,因为一旦SoC被制作,ROM不能被改变。引导ROM也可以作为验证在处理器上运行的软件的受信任代码。当处理器在断电或重置之后启动的时候,初始化过程可以包括利用指令和/或数据来修补SoC上ROM的区域,其中,所述指令和/或数据纠正已知问题或添加附加性能。出于安全考虑,现有芯片上ROM补丁机制对于支持安全引导的所有引导ROM是禁用的。根本问题是,如果修补不小心进行,它可以削弱ROM代码的受信任本质。如果保持启用,则由于可能未经认证的潜在问题并且引入未经测试的变化,现有补丁机制可以危害安全引导过程。
在不使用芯片上ROM中的补丁情况下,修复问题需要经过修改的电路掩模,以及利用收缩工艺技术,修改用于ROM修复的一个或多个掩模变得更加昂贵。例如,C40ROM掩模比C65硅晶片掩模贵两倍。这样的ROM修改也需要显著的发展、验证努力和客户整合,这就给产品投放增加了显著推迟,从而推迟了收入。非常期望具有安全芯片上ROM补丁机制来解决问题,并且一旦SoC已经被制作,在无需创建新的硅晶片掩模的情况下不断变化需求。
附图说明
本发明公开通过举例的方式说明并没有被附图所限制,在附图中类似的参考符号指示相同的元素。附图中的元素说明是为了简便以及清晰,不一定按比例绘制。
图1根据本发明公开,说明了芯片上***(SoC)的一个实施例的方框图。
图2说明了可以被用于图1的SoC的只读存储器(ROM)控制器的一个实施例的方框图。
图3说明了用于在制作期间使用安全引导ROM性能配置图1的SoC的方法的流程图。
图4根据本发明公开,说明了用于修补图1的SoC的引导ROM的方法的流程图。
具体实施方式
公开了***及方法的实施例,其提供了安全地修补芯片上***(SoC)半导体装置中的芯片上只读存储器(ROM)的性能。在一些实施例中,ROM补丁代码或指令被安全地编程在一次性可编程(OTP)存储器电路中,例如在驻留于SoC上的电子熔丝中。该ROM补丁代码因而具有与现有引导ROM相同的安全属性,并且一旦SoC由制作商交付,锁定机制防止了ROM补丁代码被修改。新的引导ROM代码问题可以被安全地修补,而不影响安全引导过程的完整性。正如本发明所公开,在不需要开发和准予用于SoC的新硅晶片掩模的情况下修补安全引导ROM代码的能力节省了成本,并提高了效率。
图1根据本发明公开,说明了芯片上***(SoC)处理***100的一个实施例的方框图,该芯片上***(SoC)处理***包括处理器102、具有ROM控制器(ROMC)配置指令106和补丁数据复制指令107的引导ROM 104、具有用于存储ROM锁定比特的寄存器109的ROM控制器108、具有存储器控制器111和补丁数据112的内部存储器110、一次性可编程(OTP)控制器114以及具有引导ROM补丁数据118的OTP存储元件116、ROMC配置数据120、以及用于存储OTP锁定比特122的寄存器或元件。
SoC 100是信息处理***,其可以被设计成给一个或多个用户提供独立计算能力。SoC 100可以用于很多装置,包括但不限于大型机、小型机、服务器、工作站、个人计算机、笔记本、电子阅读器、个人数字助理、电子游戏机、汽车、飞机、机械、嵌入式***、蜂窝电话和各种其它无线装置。SoC包括至少一个处理器102。SoC 100根据程序处理信息,并经由I/O装置产生结果输出信息。程序是一系列指令,例如特定应用程序和/或操作***。计算机程序通常被内部存储在计算机可读存储介质上,或经由计算机可读传输介质传送到计算机***。计算机程序通常包括执行(运行)程序或程序的部分、当前程序值和状态信息,以及由操作***用来管理过程执行的资源。父过程可能产生其它子过程,以帮助执行父过程的整体功能。
SoC 100可以包括任何数量的分离集成电路或彼此互连的分离装置。例如,内部存储器110可以位于与处理器102相同的集成电路上。附加存储器可以位于分离集成电路上,或位于其它***装置或与SoC其它元件离散地分离开的从属装置内。在一些实施例中,补丁数据112只存储在SoC 100内部的存储器中,以减小未经认证的篡改补丁数据112的可能性。
引导ROM 104可以使用任何合适类型的ROM实现,所述ROM可以利用数据一次性编程,并且在需要的时候进行读取。ROMC配置指令106包括读取ROMC配置数据120并编程ROM控制器108中的配置数据的处理器指令。除了其它信息之外,ROMC配置数据120还可以被用于配置内部存储器110中的目标地址,补丁可能会从该目标地址开始。补丁数据复制指令107包括可执行指令,所述可执行指令可以被处理器102使用,以复制引导ROM补丁数据118到内部存储器110的补丁数据112。
ROM控制器108是具有逻辑指令的处理单元,除了其它功能之外,所述逻辑指令还对寄存器109中的ROM锁定比特断言或解除断言。例如,当安全引导ROM补丁是可用的时候,ROM控制器108可以设置ROM锁定比特,以锁定ROM控制器108的配置。
内部存储器110可以是任何合适的随机存取存储器(RAM),其包括存储器控制器111和用于存储补丁数据112的存储元件。除了其它功能,存储器控制器111还控制对补丁数据112的写访问。
OTP控制器114包括处理模块或电路,除了其它功能,其还执行逻辑指令,以为了引导ROM补丁数据118、ROMC配置数据120以及OTP锁定比特122,而访问OTP存储元件116。OTP存储元件116可以使用一次性写入但可以在需要的时候进行读取的任何合适装置被实现。例如,OTP存储元件116可以使用电子熔丝或其它一次性可编程非易失性存储器被实现。
一旦引导ROM补丁数据118和ROMC配置数据120被写入OTP存储元件116,OTP锁定比特122可以被用于防止更改引导ROM补丁数据118和ROMC配置数据120。
图2说明了可以被用于图1的SoC的只读存储器(ROM)控制器108的一个实施例的方框图,该只读存储器(ROM)控制器108包括ROM控制逻辑202、ROM补丁地址比较逻辑204、复用器206以及ROMC寄存器208。ROM控制逻辑202从处理器102接收地址和控制信号、给引导ROM 104提供ROM地址、从引导ROM104接收ROM数据以及给处理器102发送“就绪”信号。一旦ROM控制器提供了指令地址,就绪”信号可以被用于启用处理器102,以开始执行。提供给ROM控制逻辑202的地址是引导ROM指令的起始地址。
ROMC寄存器208存储ROMC配置数据120,其包括与驻留在引导ROM 104中的指令地址相匹配的地址。
ROM补丁地址比较逻辑204从ROMC寄存器208和ROM控制逻辑202接收相应的地址信号,并提供补丁覆写(override)信号,以控制复用器206的操作。例如,当来自ROM控制逻辑202的地址与来自ROMC寄存器208的地址匹配的时候,补丁覆写信号被设置为选择补丁数据作为复用器206的输出。当来自ROM控制逻辑202的地址与来自ROMC寄存器208的地址不匹配的时候,补丁覆写信号被设置为选择ROM数据作为复用器206的输出。
图3说明了用于在制作期间使用安全引导ROM配置图1的SoC100的方法300的流程图。过程302包括接收集成电路或SoC,在该集成电路或SoC中,OTP存储元件没有被编程。
过程304包括确定是否需要引导ROM补丁,并且可以例如通过自动***被实现,其中,该自动***可以访问被制作的IC管芯的版本信息。如果版本信息指示补丁数据可用于特定IC管芯,随后,过程306包括将补丁数据编程到OTP存储元件116(图1)。无论ROM补丁是否是必需的,过程308可以随后设置OTP锁定比特,以防止进一步编程OTP存储元件116中的引导ROM补丁数据118和ROMC配置数据120。过程310包括继续按常规执行的制作工艺。
参照图1和图4,图4根据本发明公开,说明了用于修补图1的SoC 100的引导ROM104的方法400的流程图。过程402包括接收由于重置事件导致的SoC 100中的“重置”信号,例如加电或由用户发起的重置。过程404包括从ROM控制器108接收重置向量。重置向量包括用于处理器或核心102开始执行的指令地址。过程406包括设置堆栈指针并完成运行时间初始化,其提供了处理器102开始启动进程所需的信息。
过程408包括确定用于引导ROM 104的安全补丁数据是否可用。在一些实现中,处理器102可以访问OTP存储元件116,以查看安全补丁数据的一个或多个指定标识符是否已经被编程在OTP存储元件116中。引导ROM补丁数据118可以包括多组补丁数据,并且对于特定补丁,每组补丁数据可以包括唯一标识符、使用补丁的引导ROM 104的地址、补丁类型(例如OPCODE或数据补丁)、补丁大小、以及补丁数据。其它合适的信息可以被包含在补丁数据中。当安全引导ROM补丁数据是可用的时候,过程410包括使用对应补丁数据复制指令107,以将引导ROM补丁数据118从OTP存储元件116复制到内部存储器110中的补丁数据112。
一旦过程410完成,过程412可以使用ROMC配置指令106,以使用ROMC配置数据120来编程ROM控制器108。随后,过程414断言ROM锁定比特,以及过程416继续安全引导过程。
再次参照过程408,如果用于引导ROM的安全补丁数据是不可用的,过程408则过渡到过程418,以禁用修补引导ROM 104。随后,过程418过渡到过程414,以断言ROM锁定比特并且过渡到过程416,以继续安全引导过程。
目前应了解在一个实施例中,提供了一种数据处理***,其可以包括:引导只读存储器ROM,所述引导ROM被配置成存储引导代码;一次性可编程OTP存储电路,所述OTP存储电路被配置成存储补丁指令;随机存取存储器RAM;以及处理器,所述处理器耦合于所述引导ROM、所述OTP存储电路和所述RAM。所述处理器被配置成:响应于所述数据处理***的重置,将一个或多个补丁指令从所述OTP存储电路复制到所述RAM中,以及在所述引导代码的执行期间,执行来自所述RAM的补丁指令,以替代所述引导代码的引导指令。
另一方面,所述数据处理***还可以包括存储电路,所述存储电路被配置成存储ROM锁定比特。所述处理器可以被配置成:在一个或多个补丁指令被从所述OTP存储电路复制到所述RAM中之后,断言所述ROM锁定比特。
另一方面,所述数据处理***还可以包括耦合于所述ROM的ROM控制器。所述OTP被配置成存储ROM控制器配置数据。
另一方面,所述处理器还可以被配置成:响应于所述数据处理***的所述重置,使用所述ROM控制器配置数据来配置所述ROM。所述ROM控制器配置数据可以指示在所述RAM中所述补丁指令的位置。
另一方面,所述引导代码可以包括ROM控制器配置指令。所述处理器可以被配置成:响应于所述数据处理***的所述重置,使用所述ROM控制器配置数据,以响应于执行来自所述ROM的所述ROM控制器配置指令来配置所述ROM控制器。
另一方面,所述处理器可以被配置成:响应于所述数据处理***的所述重置,确定用于所述引导代码的至少一个补丁指令是否是可用的。响应于确定用于所述引导代码的至少一个补丁指令是可用的,执行所述一个或多个补丁指令从所述OTP存储电路到所述RAM中的复制。
另一方面,所述处理器可以被配置成:如果没有补丁指令是可用的,则响应于所述数据处理***的所述重置,禁用ROM补丁。
另一方面,所述引导代码可以包括补丁复制指令。所述处理器可以被配置成:响应于所述数据处理***的所述重置,响应于执行来自所述RAM的所述补丁复制指令来将所述一个或多个补丁指令从所述OTP存储电路复制到所述RAM中。
在另一个实施例中,在具有引导只读存储器ROM、一次性可编程OTP存储电路和随机存取存储器RAM的数据处理***中,一种方法包括:接收***重置信号;响应于所述***重置信号,将至少一个补丁指令从所述OTP存储电路复制到所述RAM中;以及执行来自所述引导ROM的引导代码。在执行所述引导代码期间,可以执行所述RAM中的所述至少一个补丁指令的补丁指令,以替代所述引导代码的引导指令。
另一方面,所述方法还可以包括;响应于所述***重置信号,执行所述引导代码的配置指令,以通过使用存储在所述OTP存储电路中的配置数据来配置耦合于所述ROM的ROM控制器。
另一方面,所述ROM配置数据可以指示在所述RAM中所述补丁指令的位置。
另一方面,所述方法还可以包括:在将所述至少一个补丁指令从所述OTP存储电路复制到所述RAM中之后,断言所述ROM控制器的锁定比特,以指示完成配置所述ROM。
另一方面,所述方法还可以包括:响应于所述***重置信号,接收重置向量,所述重置向量指示在所述引导ROM中所述引导代码的位置。
另一方面,所述方法还可以包括:响应于所述***重置信号,在将所述至少一个补丁指令从所述OTP存储电路复制到所述RAM中之前,确定所述OTP具有一个或多个可用补丁指令。
在另一个实施例中,一种数据处理***可以包括:引导只读存储器ROM,所述引导ROM被配置成存储引导代码,所述引导代码包括补丁复制指令;ROM控制器,所述ROM控制器耦合于所述引导ROM;一次性可编程OTP存储电路,所述OTP存储电路被配置成存储补丁指令;随机存取存储器RAM;以及处理器,所述处理器耦合于所述引导ROM、所述ROM控制器、所述OTP存储电路和所述RAM。所述数据处理***可以被配置成响应于所述数据处理***的重置:开始执行在由从所述ROM控制器接收的重置向量所指示的位置处的所述引导代码;执行所述补丁复制指令,以将至少一个补丁指令从所述OTP存储电路复制到所述RAM中,以及继续执行所述引导代码。在执行所述引导代码期间,可以执行来自所述RAM的所述至少一个补丁指令,以替代所述引导代码的引导指令。
另一方面,所述数据处理***还可以包括存储电路,所述存储电路被配置成存储ROM锁定比特。所述处理器可以被配置成:在所述至少一个补丁指令被从所述OTP存储电路复制到所述RAM中之后,断言所述ROM锁定比特。
另一方面,所述引导代码可以包括ROM控制器配置指令,以及所述OTP可以被配置成:存储ROM控制器配置数据。
另一方面,所述处理器还可以被配置成:执行所述ROM控制器配置指令,以通过使用所述ROM控制器配置数据来配置所述ROM控制器。所述ROM控制器配置数据可以指示在所述RAM中所述补丁指令的位置。
另一方面,所述数据处理***还可以被配置成:响应于所述数据处理***的所述重置,确定用于所述引导代码的任何补丁指令是否是可用的。响应于确定用于所述引导代码的所述一个或多个补丁指令是可用的,执行所述至少一个补丁指令从所述OTP存储电路到所述RAM的复制。
另一方面,所述数据处理***还可以被配置成:响应于所述数据处理***的所述重置,如果所述OTP中没有补丁指令是可用的,则禁用ROM修补。
当将信号、状态比特、或类似的设备分别变为其逻辑真或逻辑假状态时,术语“断言”或“设置”以及“否定”(或“解除断言”或“清除”)在本发明中被使用。如果逻辑真状态是逻辑电平“1”,逻辑假状态是逻辑电平“0”。如果逻辑真状态是逻辑电平“0”,逻辑假状态是逻辑电平“1”。
由于实现本发明公开的设备可能大部分是通过使用本领域所属技术人员所熟知的电子元件和电路被实施,细节不会在比上述所说明的认为具有必要的程度大的任何程度上进行解释。对本发明基本概念的理解以及认识是为了不混淆或偏离本发明所教之内容。
在描述和权利要求中的术语“前面”、“后面”、“顶部”、“底部”、“上面”、“下面”等等,如果有的话,是用于描述性的目的并且不一定用于描述永久性的相对位置。应了解术语的这种用法在适当的情况下是可以互换的以便本发明所描述的实施例例如,能够在其它方向而不是本发明所说明的或在其它方面进行操作。
正如本发明所使用的,术语“程序”被定义为设计用于在计算机***上执行的一系列指令。程序,或计算机程序可能包括子程序、函数、程序、对象方法、对象实现、可执行的应用程序、小程序、小服务程序、源代码、对象代码、共享库/动态装载库和/或设计用于在计算机***上的执行的其它指令序列。
上述一些实施例,如果适用的话,可以通过使用各种不同信息处理***被实现。例如,虽然图1和其中的讨论描述了一个示例信息处理架构,提出该示例架构仅仅是为了提供用于讨论本发明公开各个方面的有用参考。当然,结构的描述是为了便于讨论,并且只是根据本发明公开可以被使用的多种不同类型的适当架构中的其中一个。本领域所属技术人员将认识到逻辑块之间的界限仅仅是说明性的并且替代实施例可能合并逻辑块或电路元素或在各种逻辑块或电路元素上强加替代的分解功能。
因此,应了解本发明描述的架构仅仅是示范的,并且事实上实现相同功能的很多其它架构可以被实现。从抽象的但仍有明确意义上来说,为达到相同功能的任何元件的排列是有效的“关联”,以便实现所需功能。因此,本发明中为实现特定功能的任意两个元件的结合可以被看作彼此“相关联”以便实现所需功能,不论架构或中间元件。同样地,任意两个元件这样的关联也可以被看作是“可运作性连接”或“可运作性耦合”于对方以实现所需功能。
此外,本领域所属技术人员将认识到上述描述的操作功能之间的界限只是说明性的。多个操作的功能可以组合成单一的操作,和/或单一的操作功能可以分布在附加操作中。而且,替代实施例可能包括特定操作的多个实例,并且操作的顺序在各种其它实施例中会改变。
虽然本发明的描述参照具体实施例,正如以下权利要求所陈述的,在不脱离本发明范围的情况下,可以进行各种修改以及变化。因此,说明书以及附图被认为是说明性而不是狭义性的,并且所有这些修改是为了列入本发明范围内。关于具体实施例,本发明所描述的任何好处、优点或解决方案都不旨在被解释为任何或所有权利要求的批评的、必需的、或本质特征或元素。
此外,本发明所用的“a”或“an”被定义为一个或多个。并且,在权利要求中所用词语如“至少一个”以及“一个或多个”不应该被解释以暗示通过不定冠词“a”或“an”引入的其它权利要求元素限定任何其它特定权利要求。所述特定权利要求包括这些所介绍的对发明的权利元素,所述权利元素不仅仅包括这样的元素。即使当同一权利要求中包括介绍性短语“一个或多个”或“至少一个”以及不定冠词,例如“a”或“an”。使用定冠词也是如此。
除非另有说明,使用术语如“第一”以及“第二”是用于任意区分这些术语描述的元素的。因此,这些术语不一定表示时间或这些元素的其它优先次序。
Claims (20)
1.一种数据处理***,包括:
引导只读存储器ROM,所述引导ROM被配置成存储引导代码;
一次性可编程OTP存储电路,所述OTP存储电路被配置成存储补丁指令;
随机存取存储器RAM;以及
处理器,所述处理器耦合于所述引导ROM、所述OTP存储电路和所述RAM,并且被配置成:
响应于所述数据处理***的重置,将一个或多个补丁指令从所述OTP存储电路复制到所述RAM中,以及
在所述引导代码的执行期间,执行来自所述RAM的一个或多个所述补丁指令,以替代所述引导代码的引导指令。
2.根据权利要求1所述的数据处理***,还包括存储电路,所述存储电路被配置成存储ROM锁定比特,其中,所述处理器被配置成:在所述一个或多个补丁指令被从所述OTP存储电路复制到所述RAM中之后,断言所述ROM锁定比特。
3.根据权利要求1所述的数据处理***,还包括耦合于所述ROM的ROM控制器,其中所述OTP被配置成存储ROM控制器配置数据。
4.根据权利要求3所述的数据处理***,其中,所述处理器还被配置成:
响应于所述数据处理***的所述重置,使用所述ROM控制器配置数据来配置所述ROM,其中,所述ROM控制器配置数据指示在所述RAM中所述补丁指令的位置。
5.根据权利要求4所述的数据处理***,其中,所述引导代码包括ROM控制器配置指令,其中,所述处理器被配置成:响应于所述数据处理***的所述重置,使用所述ROM控制器配置数据,来响应于执行来自所述ROM的所述ROM控制器配置指令而配置所述ROM控制器。
6.根据权利要求1所述的数据处理***,其中,所述处理器被配置成:
响应于所述数据处理***的所述重置,确定用于所述引导代码的至少一个补丁指令是否是可用的,其中,响应于确定用于所述引导代码的至少一个补丁指令是可用的,执行所述一个或多个补丁指令从所述OTP存储电路到所述RAM的复制。
7.根据权利要求1所述的数据处理***,其中,所述处理器被配置成:如果没有补丁指令是可用的,则响应于所述数据处理***的所述重置,禁用ROM修补。
8.根据权利要求1所述的数据处理***,其中所述引导代码包括补丁复制指令,其中,所述处理器被配置成:响应于所述数据处理***的所述重置,响应于执行来自所述ROM的所述补丁复制指令来将所述一个或多个补丁指令从所述OTP存储电路复制到所述RAM中。
9.在具有引导只读存储器ROM、一次性可编程OTP存储电路和随机存取存储器RAM的数据处理***中,一种方法包括:
接收***重置信号;
响应于所述***重置信号,将至少一个补丁指令从所述OTP存储电路复制到所述RAM中;
执行来自所述引导ROM的引导代码,其中,在执行所述引导代码期间,执行所述RAM中的所述至少一个补丁指令中的补丁指令,以替代所述引导代码的引导指令。
10.根据权利要求9所述的方法,还包括:
响应于所述***重置信号,执行所述引导代码的配置指令,以通过使用存储在所述OTP存储电路中的配置数据来配置耦合于所述ROM的ROM控制器。
11.根据权利要求10所述的方法,其中所述ROM配置数据指示在所述RAM中所述补丁指令的位置。
12.根据权利要求10所述的方法,还包括:
在将所述至少一个补丁指令从所述OTP存储电路复制到所述RAM中之后,断言所述ROM控制器的锁定比特,以指示完成配置所述ROM。
13.根据权利要求9所述的方法,还包括:
响应于所述***重置信号,接收重置向量,所述重置向量指示在所述引导ROM中所述引导代码的位置。
14.根据权利要求9所述的方法,还包括:
响应于所述***重置信号,在将所述至少一个补丁指令从所述OTP存储电路复制到所述RAM中之前,确定所述OTP具有一个或多个可用补丁指令。
15.一种数据处理***,包括:
引导只读存储器ROM,所述引导ROM被配置成存储引导代码,所述引导代码包括补丁复制指令;
ROM控制器,所述ROM控制器耦合于所述引导ROM;
一次性可编程OTP存储电路,所述OTP存储电路被配置成存储补丁指令;
随机存取存储器RAM;以及
处理器,所述处理器耦合于所述引导ROM、所述ROM控制器、所述OTP存储电路和所述RAM,并且被配置成响应于所述数据处理***的重置:
开始执行在由重置向量所指示的位置处的所述引导代码,所述重置向量是从所述ROM控制器接收的;
执行所述补丁复制指令,以将至少一个补丁指令从所述OTP存储电路复制到所述RAM中,以及
继续执行所述引导代码,其中,在执行所述引导代码期间,执行来自所述RAM的所述至少一个补丁指令,以替代所述引导代码的引导指令。
16.根据权利要求15所述的数据处理***,还包括存储电路,所述存储电路被配置成存储ROM锁定比特,其中所述处理器被配置成:在所述至少一个补丁指令被从所述OTP存储电路复制到所述RAM中之后,断言所述ROM锁定比特。
17.根据权利要求15所述的数据处理***,其中所述引导代码包括ROM控制器配置指令,以及所述OTP被配置成:存储ROM控制器配置数据。
18.根据权利要求17所述的数据处理***,其中所述处理器还被配置成:
执行所述ROM控制器配置指令,以使用所述ROM控制器配置数据来配置所述ROM控制器,其中,所述ROM控制器配置数据指示在所述RAM中所述补丁指令的位置。
19.根据权利要求15所述的数据处理***,其中所述处理器被配置成:
响应于所述数据处理***的所述重置,确定用于所述引导代码的任何补丁指令是否是可用的,其中,响应于确定用于所述引导代码的一个或多个补丁指令是可用的,执行所述至少一个补丁指令从所述OTP存储电路到所述RAM的复制。
20.根据权利要求15所述的数据处理***,其中,所述处理器被配置成:响应于所述数据处理***的所述重置,如果所述OTP中没有补丁指令是可用的,则禁用ROM修补。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/015,429 | 2013-08-30 | ||
US14/015,429 US9471785B2 (en) | 2013-08-30 | 2013-08-30 | Systems and methods for secure boot ROM patch |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104424008A true CN104424008A (zh) | 2015-03-18 |
CN104424008B CN104424008B (zh) | 2019-06-07 |
Family
ID=52584939
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410432852.8A Active CN104424008B (zh) | 2013-08-30 | 2014-08-28 | 安全引导rom补丁的***及方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9471785B2 (zh) |
JP (1) | JP6433198B2 (zh) |
CN (1) | CN104424008B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107391085A (zh) * | 2017-06-20 | 2017-11-24 | 深圳芯邦科技股份有限公司 | 一种rom代码补丁运行方法和*** |
CN108269605A (zh) * | 2016-12-30 | 2018-07-10 | 谷歌有限责任公司 | 安全器件状态设备和方法以及生命周期管理 |
CN108376085A (zh) * | 2017-02-01 | 2018-08-07 | 三星电子株式会社 | 半导体***及操作半导体装置的方法 |
CN110187920A (zh) * | 2019-04-01 | 2019-08-30 | 深圳市德名利电子有限公司 | 基于otp的主控芯片的boot代码扩展方法 |
CN110308953A (zh) * | 2019-04-01 | 2019-10-08 | 深圳市德名利电子有限公司 | 基于32位mcu主控的rom代码函数修改方法 |
CN110333967A (zh) * | 2019-05-09 | 2019-10-15 | 深圳市德名利电子有限公司 | 一种防止u盘数据丢失和***损坏的方法和装置以及设备 |
CN112083961A (zh) * | 2020-08-05 | 2020-12-15 | 北京智芯微电子科技有限公司 | 嵌入式芯片的引导加载方法 |
CN113064638A (zh) * | 2019-12-31 | 2021-07-02 | 意法半导体(鲁塞)公司 | 嵌入式*** |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9269439B1 (en) * | 2012-08-31 | 2016-02-23 | Marvell Israel (M.I.S.L) Ltd. | Method and apparatus for TCAM based look-up |
US10379785B2 (en) * | 2015-05-15 | 2019-08-13 | Cryptography Research, Inc | Virtual one-time programmable memory management |
JP2018028819A (ja) * | 2016-08-18 | 2018-02-22 | 株式会社東芝 | 半導体集積回路 |
KR102617354B1 (ko) | 2017-01-05 | 2023-12-26 | 삼성전자주식회사 | 보안 부트 시퀀서 및 보안 부트 장치 |
US20200004697A1 (en) * | 2018-06-29 | 2020-01-02 | Qualcomm Incorporated | Patchable hardware for access control |
CN111095213B (zh) * | 2018-08-23 | 2024-04-30 | 深圳市汇顶科技股份有限公司 | 嵌入式程序的安全引导方法、装置、设备及存储介质 |
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) |
KR102567097B1 (ko) | 2018-12-05 | 2023-08-14 | 삼성전자주식회사 | 임베디드 시스템의 부트 롬 업데이트 방법 및 부팅 방법 |
WO2020223950A1 (zh) * | 2019-05-09 | 2020-11-12 | 深圳市德明利技术股份有限公司 | 一种防止 u 盘数据丢失和***损坏的方法和装置以及设备 |
KR20210012818A (ko) * | 2019-07-26 | 2021-02-03 | 에스케이하이닉스 주식회사 | 메모리 장치 및 그 동작 방법 |
CN111352764B (zh) * | 2020-03-27 | 2023-09-05 | 上海金卓科技有限公司 | 一种芯片修复的方法、装置、设备及存储介质 |
US11328066B2 (en) | 2020-04-08 | 2022-05-10 | Nxp Usa, Inc. | Method and system for securely patching read-only-memory code |
CN112329373A (zh) * | 2021-01-04 | 2021-02-05 | 南京芯视界微电子科技有限公司 | 用于飞行时间测距芯片的数据处理***及其方法 |
US20240248709A1 (en) * | 2021-05-24 | 2024-07-25 | Google Llc | Memory Patching with Associative and Directly Mapped Patch Data |
US11868276B2 (en) | 2022-06-02 | 2024-01-09 | Hewlett-Packard Development Company, L.P. | Non-volatile memory write access control |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020120810A1 (en) * | 2001-02-28 | 2002-08-29 | Brouwer Roger J. | Method and system for patching ROM code |
US20080294838A1 (en) * | 2007-05-25 | 2008-11-27 | Agere Systems Inc. | Universal boot loader using programmable on-chip non-volatile memory |
CN102929565A (zh) * | 2012-10-24 | 2013-02-13 | 北京华大信安科技有限公司 | 基于SoC的引导装载程序读取、装置及芯片 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5950012A (en) * | 1996-03-08 | 1999-09-07 | Texas Instruments Incorporated | Single chip microprocessor circuits, systems, and methods for self-loading patch micro-operation codes and patch microinstruction codes |
US5938766A (en) * | 1997-03-21 | 1999-08-17 | Apple Computer, Inc. | System for extending functionality of a digital ROM using RAM/ROM jump tables and patch manager for updating the tables |
US6915167B2 (en) * | 2001-01-05 | 2005-07-05 | Medtronic, Inc. | Method and apparatus for hardware/firmware trap |
US7600003B1 (en) * | 2002-04-22 | 2009-10-06 | Cisco Technology, Inc. | Method and apparatus for dynamically configuring customer premises network equipment |
US20060194603A1 (en) * | 2005-02-28 | 2006-08-31 | Rudelic John C | Architecture partitioning of a nonvolatile memory |
US7523299B2 (en) * | 2005-07-29 | 2009-04-21 | Broadcom Corporation | Method and system for modifying operation of ROM based boot code of a network adapter chip |
US8028154B2 (en) * | 2005-07-29 | 2011-09-27 | Broadcom Corporation | Method and system for reducing instruction storage space for a processor integrated in a network adapter chip |
US20070113064A1 (en) * | 2005-11-17 | 2007-05-17 | Longyin Wei | Method and system for secure code patching |
US8185886B2 (en) * | 2007-06-26 | 2012-05-22 | Intel Corporation | Method and apparatus to enable dynamically activated firmware updates |
JP2010140167A (ja) * | 2008-12-10 | 2010-06-24 | Toshiba Corp | 半導体集積回路 |
CN102265263A (zh) * | 2008-12-24 | 2011-11-30 | 松下电器产业株式会社 | 总线控制器及初始引导程序的修补方法 |
-
2013
- 2013-08-30 US US14/015,429 patent/US9471785B2/en active Active
-
2014
- 2014-08-27 JP JP2014172658A patent/JP6433198B2/ja active Active
- 2014-08-28 CN CN201410432852.8A patent/CN104424008B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020120810A1 (en) * | 2001-02-28 | 2002-08-29 | Brouwer Roger J. | Method and system for patching ROM code |
US20080294838A1 (en) * | 2007-05-25 | 2008-11-27 | Agere Systems Inc. | Universal boot loader using programmable on-chip non-volatile memory |
CN102929565A (zh) * | 2012-10-24 | 2013-02-13 | 北京华大信安科技有限公司 | 基于SoC的引导装载程序读取、装置及芯片 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108269605A (zh) * | 2016-12-30 | 2018-07-10 | 谷歌有限责任公司 | 安全器件状态设备和方法以及生命周期管理 |
CN108269605B (zh) * | 2016-12-30 | 2022-05-10 | 谷歌有限责任公司 | 安全器件状态设备和方法 |
CN108376085A (zh) * | 2017-02-01 | 2018-08-07 | 三星电子株式会社 | 半导体***及操作半导体装置的方法 |
CN108376085B (zh) * | 2017-02-01 | 2023-10-20 | 三星电子株式会社 | 半导体***及操作半导体装置的方法 |
CN107391085A (zh) * | 2017-06-20 | 2017-11-24 | 深圳芯邦科技股份有限公司 | 一种rom代码补丁运行方法和*** |
CN110187920A (zh) * | 2019-04-01 | 2019-08-30 | 深圳市德名利电子有限公司 | 基于otp的主控芯片的boot代码扩展方法 |
CN110308953A (zh) * | 2019-04-01 | 2019-10-08 | 深圳市德名利电子有限公司 | 基于32位mcu主控的rom代码函数修改方法 |
CN110333967B (zh) * | 2019-05-09 | 2022-04-19 | 深圳市德明利技术股份有限公司 | 一种防止u盘数据丢失和***损坏的方法和装置以及设备 |
CN110333967A (zh) * | 2019-05-09 | 2019-10-15 | 深圳市德名利电子有限公司 | 一种防止u盘数据丢失和***损坏的方法和装置以及设备 |
CN113064638A (zh) * | 2019-12-31 | 2021-07-02 | 意法半导体(鲁塞)公司 | 嵌入式*** |
CN113064638B (zh) * | 2019-12-31 | 2024-06-11 | 质子世界国际公司 | 嵌入式*** |
CN112083961B (zh) * | 2020-08-05 | 2022-01-14 | 北京智芯微电子科技有限公司 | 嵌入式芯片的引导加载方法 |
CN112083961A (zh) * | 2020-08-05 | 2020-12-15 | 北京智芯微电子科技有限公司 | 嵌入式芯片的引导加载方法 |
Also Published As
Publication number | Publication date |
---|---|
US9471785B2 (en) | 2016-10-18 |
US20150067313A1 (en) | 2015-03-05 |
CN104424008B (zh) | 2019-06-07 |
JP2015049906A (ja) | 2015-03-16 |
JP6433198B2 (ja) | 2018-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104424008A (zh) | 安全引导 rom 补丁的***及方法 | |
EP2734903B1 (en) | Transition between states in a procesor | |
US9600291B1 (en) | Secure boot using a field programmable gate array (FPGA) | |
CN105122259B (zh) | 控制器和用于检索***引导代码的***及方法 | |
US10481901B2 (en) | System and method for performing firmware update by patching | |
CN106575275B (zh) | 用于异构多处理器***中处理器间中断的机制 | |
US9652252B1 (en) | System and method for power based selection of boot images | |
CN105122258B (zh) | 对***进行配置的方法、计算***以及物品 | |
US8296528B2 (en) | Methods and systems for microcode patching | |
CN101276389B (zh) | 单个物理可信平台模块内的多个逻辑可信平台模块的分离 | |
CN106682497A (zh) | 在管理程序模式下安全执行代码的***和方法 | |
CN101573687B (zh) | 重新配置安全*** | |
CN104217139B (zh) | 处理*** | |
US20210149681A1 (en) | Secure Firmware Management with Hierarchical Boot Sequence using Last Known Good Firmware | |
US9202060B2 (en) | Method for secure self-booting of an electronic device | |
US10657265B1 (en) | Outputting internal states of an integrated circuit after initiation of a secure lockdown mode | |
CN103116511A (zh) | 基于单个flash存储芯片的双启动方法 | |
CN110020561B (zh) | 半导体装置和操作半导体装置的方法 | |
CN111694760A (zh) | 服务器***、快闪存储器模块及更新固件映像文件的方法 | |
US11366800B2 (en) | System and method to automate validating media redirection in testing process | |
EP3314416B1 (en) | Firmware block dispatch based on fuses | |
CN114185482A (zh) | 在开放和安全的处理器环境中生成安全分区区域的***和方法 | |
KR20220027965A (ko) | 펌웨어 롤백 방지 | |
KR20230082388A (ko) | 차량 제어기의 부트로더 검증 장치 및 그 방법 | |
US10043027B1 (en) | Generation of mask-value pairs for managing access to memory segments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20180223 Address after: texas Applicant after: NXP America Co Ltd Address before: Texas in the United States Applicant before: Fisical Semiconductor Inc. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |