CN114721493A - 芯片启动方法、计算机设备及可读存储介质 - Google Patents
芯片启动方法、计算机设备及可读存储介质 Download PDFInfo
- Publication number
- CN114721493A CN114721493A CN202210650098.XA CN202210650098A CN114721493A CN 114721493 A CN114721493 A CN 114721493A CN 202210650098 A CN202210650098 A CN 202210650098A CN 114721493 A CN114721493 A CN 114721493A
- Authority
- CN
- China
- Prior art keywords
- core
- chip
- starting
- program
- preset
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/24—Resetting means
-
- 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/4403—Processor initialisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种芯片启动方法、计算机设备及可读存储介质,所述芯片启动方法包括对目标芯片进行复位;获取复位后目标芯片对应的选项字,并加载所述选项字;根据所述选项字对应的译码,在所述目标芯片中确定第一核心;检测总线访问编号与所述第一核心对应的编号是否一致;当所述总线访问编号与所述第一核心对应的编号一致时,则根据所述第一核心对应的程序信息,启动第二核心。因此,能够提高芯片启动的安全性。
Description
技术领域
本申请涉及芯片技术领域,具体涉及一种芯片启动方法、计算机设备及可读存储介质。
背景技术
随着物联网应用的发展,各种应用对存储保护单元(Memory Protection Unit,MPU)性能的要求越来越高,同时芯片制造工艺技术也在不断进步,在单位面积上可以集成的晶体管数量越来越高,这样在成本可控的前提下可以在MCU里面集成多中央处理器(Central Processing Unit,CPU)核来提高性能。
其中,MCU作为主控芯片承担着保护信息安全的核心任务,安全启动是实现信息安全的一个必须环节,因此,如何提高芯片启动的安全性成为了本领域技术人员亟需解决的技术问题。
发明内容
针对上述技术问题,本申请提供一种芯片启动方法、计算机设备及可读存储介质,能够提高芯片启动的安全性。
为解决上述技术问题,本申请提供一种芯片启动方法,包括:
对目标芯片进行复位;
获取复位后目标芯片对应的选项字,并加载所述选项字;
根据所述选项字对应的译码,在所述目标芯片中确定第一核心;
检测总线访问编号与所述第一核心对应的编号是否一致;
当所述总线访问编号与所述第一核心对应的编号一致时,则根据所述第一核心对应的程序信息,启动第二核心。
可选的,在本申请的一些实施例中,所述根据所述第一核心对应的程序信息,启动第二核心,包括:
基于所述程序信息对所述目标芯片进行初始化;
检测初始化芯片中第二核心的核心参数;
当所述核心参数满足预设条件时,则启动所述第二核心。
可选的,在本申请的一些实施例中,所述当所述核心参数满足预设条件时,则启动所述第二核心,包括:
当所述核心参数满足预设条件时,触发所述第一核心发送总线请求至时钟复位控制模块;
接收所述时钟复位控制模块根据所述总线请求返回的控制信号;
根据所述控制信号,更改所述第二核心对应的时钟信号。
可选的,在本申请的一些实施例中,还包括:
确定所述总线请求的请求类型;
当所述请求类型为预设类型时,检测所述总线请求的源端;
当检测到所述总线请求的源端为所述第一核心时,则检测指令地址的地址长度是否小于或等于预设地址长度;
当所述指令地址的地址长度小于或等于预设地址长度时,则控制所述第一核心访问芯片启动程序。
可选的,在本申请的一些实施例中,还包括:
当所述请求类型不为预设类型时,则中断所述总线请求的流转。
可选的,在本申请的一些实施例中,还包括:
当检测到所述总线请求的源端为所述第一核心,且所述指令地址的地址长度大于预设地址长度时,则中断所述第一核心访问芯片启动程序。
可选的,在本申请的一些实施例中,所述检测初始化芯片中第二核心的核心参数,包括:
检测所述第二核心的硬件参数和程序参数;
所述当所述核心参数满足预设条件时,则启动所述第二核心,包括:当所述硬件参数为预设硬件参数,且所述程序参数为预设程序参数时,则启动所述第二核心。
可选的,在本申请的一些实施例中,所述检测总线访问编号与所述第一核心对应的编号是否一致之前,还包括:
根据所述译码,确定所述第一核心对应的编号,以及;
从总线访问数据信息中提取总线访问编号。
本申请还提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上述方法的步骤。
本申请还提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述方法的步骤。
如上所述,本申请的芯片启动方法、计算机设备以及计算机存储介质,在对目标芯片进行复位后,获取复位后目标芯片对应的选项字,并加载所述选项字,然后,根据所述选项字对应的译码,在所述目标芯片中确定第一核心,接着,检测总线访问编号与所述第一核心对应的编号是否一致,当所述总线访问编号与所述第一核心对应的编号一致时,则根据所述第一核心对应的程序信息,启动第二核心。在本申请提供的芯片启动方案中,通过校验总线访问编号与第一核心对应的编号,在校验通过后,利用第一核心启动第二核心,确保第二核心在安全性较高的环境下启动,因此,有效地提高了芯片启动的安全性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的芯片启动方法的流程示意图;
图2是本申请提供的多核MCU的结构示意图;
图3是本申请提供的多核MCU中时钟复位控制模块的结构示意图;
图4是本申请提供的多核MCU中访问管理模块的结构示意图;
图5是本申请提供的芯片启动装置的结构示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素,此外,本申请不同实施例中具有同样命名的部件、特征、要素可能具有相同含义,也可能具有不同含义,其具体含义需以其在该具体实施例中的解释或者进一步结合该具体实施例中上下文进行确定。
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或者“单元”的后缀仅为了有利于本申请的说明,其本身没有特定的意义。因此,“模块”、“部件”或者“单元”可以混合地使用。
以下对本申请涉及的实施例进行具体描述,需要说明的是,在本申请中对实施例的描述顺序不作为对实施例优先顺序的限定。
MCU又称单片微型计算机(Single Chip Microcomputer )或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。
多核微控制器拥有多个处理核心(又称处理内核),采用两种常用的配置:对称和非对称处理。对称内核配置包含两个或多个完全相同的处理内核。例如,这些内核可能都是Arm Cortex-M4处理器。另一方面,非对称内核可能包含Arm Cortex-M7处理器和ArmCortex-M4处理器,也可能包含Arm Cortex-M4和Arm Cortex-M0 处理器。这类组合的示例有很多,具体取决于应用和设计要求。例如,一个处理核心可用于通过高分辨率显示屏和触摸面板的用户交互,而另一个处理核心则用于管理系统的实时要求,例如控制电机、继电器和采样传感器。
目前的多核MCU安全启动方案中,通常是将其中一个处理核心作为主核,主核先启动,然后按照固定顺序检测片内存储器是否正常,在这种方案中,仅仅是顺序检测了存储器,因此,可能会出现异常启动处理核心的情况,如通过恶意程序异常启动处理核心,导致芯片启动的安全性不佳。
基于此,本申请实施例提供一种芯片启动装置,该装置可以执行如下步骤:对目标芯片进行复位,获取复位后目标芯片对应的选项字,并加载选项字,根据选项字对应的译码,在目标芯片中确定第一核心,检测总线访问编号与第一核心对应的编号是否一致,当总线访问编号与第一核心对应的编号一致时,则根据第一核心对应的程序信息,启动第二核心,在本申请提供的芯片启动方案中,通过校验总线访问编号与第一核心对应的编号,在校验通过后,利用第一核心启动第二核心,确保第二核心在安全性较高的环境下启动,因此,有效地提高了芯片启动的安全性。
以下分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优先顺序的限定。
一种芯片启动方法,包括:对目标芯片进行复位,获取复位后目标芯片对应的选项字,并加载选项字,根据选项字对应的译码,在目标芯片中确定第一核心,检测总线访问编号与第一核心对应的编号是否一致,当总线访问编号与第一核心对应的编号一致时,则根据第一核心对应的程序信息,启动第二核心。
请参阅图1,图1为本申请实施例提供的芯片启动方法的流程示意图。该数芯片启动方法的具体流程可以如下:
101、对目标芯片进行复位。
对目标芯片(MCU)复位是使MCU内部的所有寄存器及I/O(输入/输出)口都恢复到初始设置状态的一种操作。如若MCU不能完全复位的话,就会出现部分MCU内部寄存器恢复到初始状态,而其它部分MCU寄存器则维持复位前的状态,或者I/O也维持原来的状态,即没有完全达到复位状态。MCU不能完全复位会造成MCU不能正常的工作,使控制板或者镇流器无法实现所要求的功能,从而影响系统整体的功能及性能。因此,使MCU可靠复位是非常有必要的。根据MCU复位的方式可以分为:上电复位、低电压检测复位、看门狗(watchdog)复位及软件复位。其中,以上电复位为例,在MCU不供电的情况下,当MCU供电电源电压由0伏上升至某个MCU的工作电压值并维持一定时间时,MCU自动进行复位,使MCU所有寄存器及I/O口的状态维持在缺省(default)模式下,具体的复位方式可以根据实际情况进行选择,在此不作赘述。
102、获取复位后目标芯片对应的选项字,并加载选项字。
选项字为存储在MCU中非易失性存储器上的一段数据,可选地,该非易失性存储器可以为OTP(One-Time-Program)存储器,OTP寄存器和FLASH数据区域很类似,1能被改写为0,但0永远也不能写成1.如果有一个32位的OTP寄存器,出产的值是0xFFFFFFFF,如果用户通过编程,将OTP寄存器的值写为0xFFFFFFFE后,那OTP寄存器再也不能在改写为0xFFFFFFFF了;当然,这个OTP寄存器的值还可以改写为0xFFFFFFFD。
为了给OTP寄存器提供保护,一般这类FLASH芯片还会提供一个LOCK寄存器。LOCK寄存器也是ONE TIME PROGRAMMABLE的。LOCK寄存器的每一位对应于一个OTP寄存器。如果与OTP寄存器对应LOCK寄存器的位(BIT)被从1写为0,就意味着这个被锁住的OTP寄存器在也不能进行写操作了。即使OTP的当前值为0XFFFFFFFF,它的值也永远不可以被改写了。
可以理解的是,将选项字存储至OTP存储器中,只允许用户发行时写入一次,之后不能再被改写,这样保证用户芯片每次boot入口固定,在芯片复位时自动加载选项字。
103、根据选项字对应的译码,在目标芯片中确定第一核心。
可选地,在本申请的一些实施例中,第一核心为安全核心(又称受信任核心),选项字用于指示目标芯片中哪个处理核心是安全核心,因此,在目标芯片复位后,所有处理黑心都被置于复位状态,且所有处理核心的时钟信号也处于关断状态,当选项字加载完成后,根据选项字对应的译码,在目标芯片中确定第一核心,然后,释放第一核心的复位信号,并打开其时钟信号,从而启动第一核心。需要说明的是,第一核心不能通过配置寄存器的方式复位,由此,防止第一核心异常发起复位请求,将自身进行复位。
104、检测总线访问编号与第一核心对应的编号是否一致。
例如,具体的,确定触发访问请求对应的处理核心的编号,当检测到触发访问请求对应的处理核心的编号与第一核心对应的编号一致时,则确定该访问请求由第一核心触发,即,该访问为受信任访问,随后,执行步骤105;当检测到触发访问请求对应的处理核心的编号与第一核心对应的编号不一致时,则确定该访问请求由其他核心触发,在本申请实施例中,则拒绝该次访问。
可选地,在一些实施例中,步骤“检测总线访问编号与第一核心对应的编号是否一致”,具体还可以包括:根据译码,确定第一核心对应的编号,以及从总线访问数据信息中提取总线访问编号。
105、当总线访问编号与第一核心对应的编号一致时,则根据第一核心对应的程序信息,启动第二核心。
该程序信息为第一核心对应的芯片启动程序对应的信息,该芯片启动程序一般用来检查芯片的环境和完成一些初始配置,即,基于该程序信息对目标芯片进行初始化操作,也即,可选地,在一些实施例中,步骤“根据第一核心对应的程序信息,启动第二核心”,具体可以包括:
(11)基于程序信息对目标芯片进行初始化;
(12)检测初始化芯片中第二核心的核心参数;
(13)当核心参数满足预设条件时,则启动第二核心。
其中,第二核心的核心参数可以包括硬件参数和程序参数,即,在一些实施例中,检测第二核心的硬件参数和程序参数,当硬件参数为预设硬件参数,且程序参数为预设程序参数时,则启动第二核心。
比如,第二核心的硬件参数指示:初始状态正确,第二核心的程序参数为版本正确、checksum正确,此时,该第二核心的硬件参数为预设硬件参数,且程序参数为预设程序参数,故,启动第二核心。
进一步的,当第二核心的核心参数满足预设条件时,则触发第一核心发送总线请求至时钟复位控制模块,根据时钟复位控制模块返回的控制信号,启动第二核心,即,步骤“当核心参数满足预设条件时,则启动第二核心”,具体可以包括:
(21)当核心参数满足预设条件时,触发第一核心发送总线请求至时钟复位控制模块;
(22)接收时钟复位控制模块根据总线请求返回的控制信号;
(23)根据控制信号,更改第二核心对应的时钟信号。
例如,具体的,在第一核心启动后,执行芯片启动程序和第一核心对应的应用程序,根据程序执行结果确定是否让第二核心启动。当程序执行结果满足预设程序执行条件时,则确定第二核心的核心参数满足预设条件,此时,则触发第一核心发送总线请求至时钟复位控制模块,随后,接收时钟复位控制模块根据总线请求返回的控制信号,并根据该控制信号,更改第二核心对应的时钟信号,以启动第二核心。
进一步的,为了进一步提高芯片启动的安全性,本申请仅允许对第一核心进行读操作,即,需要确定总线请求的请求类型,基于该请求类型,启动第二核心,也即,可选地,在一些实施例中,具体还可以包括:
(31)确定总线请求的请求类型;
(32)当请求类型为预设类型时,检测总线请求的源端;
(33)当检测到总线请求的源端为所述第一核心时,则检测指令地址的地址长度是否小于或等于预设地址长度;
(34)当指令地址的地址长度小于或等于预设地址长度时,则控制第一核心访问芯片启动程序。
比如,在接收到总线请求时,确定该总线请求的请求类型,若该总线请求的请求类型为写类型,则拒绝访问;若该总线其你去的请求类型为度类型,且该总线请求的源端(即发起端)为第一核心时,则检测指令地址的地址长度是否小于或等于预设地址长度,该预设地址长度为芯片启动程序对应的程序地址长度最大值,当指令地址的地址长度小于或等于预设地址长度时,则控制第一核心访问芯片启动程序。
可以理解的是,可选地,在一些实施例中,当请求类型不为预设类型时,则中断总线请求的流转;当检测到总线请求的源端为第一核心,且指令地址的地址长度大于预设地址长度时,则中断第一核心访问芯片启动程序。
可选地,当检测到总线请求的源端不为第一核心时,则拒绝访问芯片启动程序。
为了进一步理解本申请提供的芯片启动方案,以下以多核MCU为例进行进一步说明,请参阅图2,图2是本申请提供的多核MCU的结构示意图,该多核MCU包括选项字加载模块A、时钟复位控制模块B以及访问管理模块C,多核MCU安全启动需要实现如下功能:
1)启动入口固定,不能被黑客修改启动入口。
2)非安全核能被安全核控制。
3)芯片启动程序不能被修改。
4)芯片启动程序只能在芯片每次系统复位后执行一次,执行完成过后不允许用户程序调用和读取。用于控制每个处理核心的时钟信号和复位信号,在芯片自动加载选项字时,所有处理核心都处于复位态,时钟复位控制模块B根据选项字确定释放处理核心对应的复位信号的次序,时钟复位控制模块B里有每个处理核心的时钟复位控制寄存器,所有处理核心的时钟复位控制寄存器只能被安全核心改写,即,安全核心通过时钟复位控制模块复位非安全核心。
芯片启动程序可以接收处理核心的访问信息,若该访问信息指示该访问请求为二次访问或者是通过数据总线读取芯片启动程序,则拒绝访问。
请参阅图3和图4,在选项字加载模块A中,MCU每次系统复位后都会自动加载选项字,电路从存储选项字的存储器读出所有选项字,并且记录其值。在芯片自动加载选项字时所有处理核心都处于复位态。
本方案需要两个选项字的内容,一个是启动核(安全核心)对应的选项字,以下称为“option word”,另一个是芯片启动程序对应的选项字,以下称为“bootloader sizeoption word”,“option word”用于定义哪一个核心是安全核心,安全核心先启动。“bootloader size option word”定义芯片启动程序占用的存储空间大小。
安全核心启动后,执行芯片启动程序和安全核的应用程序,根据程序判断结果决定是否可以让其余的处理核心(非安全核心),如果启动某个非安全核心,则安全核心发送总线请求到时钟复位控制模块B,改写这个非安全核心的时钟和复位控制寄存器,此时该非安全核心启动成功。如果安全核心判断某个非安全核心不允许启动,比如发现CPU核x的程序状态异常,则不释放CPU核x的复位信号也不打开CPU核x的时钟信号。
MCU内部每一个处理核心都有可能用户当成安全核使用(由用户的option word配置),因此时钟复位控制模块B在电路设计时可能接收到任意处理核心的访问请求。其中,总线访问数据信息包括改写时钟复位控制寄存器值,处理核心发送到时钟复位控制模块B的总线访问信号里包含有该处理核心的编号信息,时钟复位控制模块B接收到总线访问请求后先判断该总线访问请求是否和安全核心的编号相同,如果相同表示是安全核心在请求改写控制寄存器,于是能成功改写控制寄存器的值;如果不同表示非安全核心在请求改写控制寄存器,则拒绝该次访问请求。
芯片启动程序实现如下功能:1)不能被修改;2)只能在芯片每次系统复位后执行一次,执行完成过后不允许用户程序调用和读取。
芯片启动程序接收到CPU总线访问请求后,确定该总线访问请求对应的操作类型;当该操作类型为写操作类型时,则拒绝访问;当该操作类型为读操作类型时,则将发起该总线访问请求的处理核心编号与安全核的编号进行比较,当两者一致时,才会传到下一级操作。
在芯片系统复位后,将芯片启动程序对应的读操作控制寄存器的状态调整我允许安全核心访问芯片启动程序,一旦检测到安全核心的指令总线读请求的目标地址超出了芯片启动程序的程序地址范围,则立即清除该控制寄存器,在控制寄存器被清除后总线请求就再也不能读存储器上的芯片启动程序了,也就不能再执行芯片启动程序里面的程序函数了。控制寄存器被清除后要直到下次芯片系统复位后才会再次被置位为允许安全核心访问芯片启动程序。
由上可知,本申请提供一种芯片启动方法,在在对目标芯片进行复位后,获取复位后目标芯片对应的选项字,并加载选项字,然后,根据选项字对应的译码,在目标芯片中确定第一核心,接着,检测总线访问编号与第一核心对应的编号是否一致,当总线访问编号与第一核心对应的编号一致时,则根据第一核心对应的程序信息,启动第二核心。在本申请提供的芯片启动方案中,通过校验总线访问编号与第一核心对应的编号,在校验通过后,利用第一核心启动第二核心,确保第二核心在安全性较高的环境下启动,因此,有效地提高了芯片启动的安全性。
为便于更好的实施本申请的芯片启动方法,本申请还提供一种基于上述芯片启动装置(简称启动装置)。其中名词的含义与上述芯片启动方法中相同,具体实现细节可以参考方法实施例中的说明。
请参阅图5,图5为本申请提供的芯片启动装置的结构示意图,其中该处理装置可以包括复位模块201、获取模块202、确定模块203、检测模块204以及启动模块205,具体可以如下:
复位模块201,用于对目标芯片进行复位。
对目标芯片(MCU)复位是使MCU内部的所有寄存器及I/O(输入/输出)口都恢复到初始设置状态的一种操作。如若MCU不能完全复位的话,就会出现部分MCU内部寄存器恢复到初始状态,而其它部分MCU寄存器则维持复位前的状态,或者I/O也维持原来的状态,即没有完全达到复位状态。MCU不能完全复位会造成MCU不能正常的工作,使控制板或者镇流器无法实现所要求的功能,从而影响系统整体的功能及性能。
获取模块202,用于获取复位后目标芯片对应的选项字,并加载选项字。
选项字为存储在MCU中非易失性存储器上的一段数据,可选地,该非易失性存储器可以为OTP(One-Time-Program)存储器,OTP寄存器和FLASH数据区域很类似,1能被改写为0,但0永远也不能写成1.如果有一个32位的OTP寄存器,出产的值是0xFFFFFFFF,如果用户通过编程,将OTP寄存器的值写为0xFFFFFFFE后,那OTP寄存器再也不能在改写为0xFFFFFFFF了;当然,这个OTP寄存器的值还可以改写为0xFFFFFFFD。
确定模块203,用于根据选项字对应的译码,在目标芯片中确定第一核心。
检测模块204,用于检测总线访问编号与第一核心对应的编号是否一致。
启动模块205,用于当总线访问编号与第一核心对应的编号一致时,则根据第一核心对应的程序信息,启动第二核心。
程序信息为第一核心对应的芯片启动程序对应的信息,该芯片启动程序一般用来检查芯片的环境和完成一些初始配置,即,基于该程序信息对目标芯片进行初始化操作,也即,可选地,在一些实施例中,启动模块205具体可以包括:
初始化单元,用于基于程序信息对目标芯片进行初始化;
检测单元,用于检测初始化芯片中第二核心的核心参数;
启动单元,用于当核心参数满足预设条件时,则启动第二核心。
可选地,在一些实施例中,启动单元具体可以用于:当核心参数满足预设条件时,触发第一核心发送总线请求至时钟复位控制模块;接收时钟复位控制模块根据总线请求返回的控制信号;根据控制信号,更改第二核心对应的时钟信号。
可选地,在一些实施例中,启动单元具体可以用于:确定总线请求的请求类型;当请求类型为预设类型时,检测总线请求的源端;当检测到总线请求的源端为所述第一核心时,则检测指令地址的地址长度是否小于或等于预设地址长度;当指令地址的地址长度小于或等于预设地址长度时,则控制第一核心访问芯片启动程序。
由上可知,本申请提供一种芯片启动装置,在复位模块201对目标芯片进行复位后,获取模块202获取复位后目标芯片对应的选项字,并加载选项字,然后,确定模块203根据选项字对应的译码,在目标芯片中确定第一核心,接着,检测模块204检测总线访问编号与第一核心对应的编号是否一致,启动模块205当总线访问编号与第一核心对应的编号一致时,则根据第一核心对应的程序信息,启动第二核心。在本申请提供的芯片启动方案中,通过校验总线访问编号与第一核心对应的编号,在校验通过后,利用第一核心启动第二核心,确保第二核心在安全性较高的环境下启动,因此,有效地提高了芯片启动的安全性。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种芯片启动方法中的步骤。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本申请实施例所提供的任一种数据检测方法中的步骤,因此,可以实现本申请实施例所提供的任一种芯片启动方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
本申请实施例还提供一种芯片,包括存储器和处理器,存储器用于存储计算机程序,处理器用于从存储器中调用并运行计算机程序,使得安装有芯片的设备执行如上各种可能的实施方式中的方法。
可以理解,上述场景仅是作为示例,并不构成对于本申请实施例提供的技术方案的应用场景的限定,本申请的技术方案还可应用于其他场景。例如,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例设备中的单元可以根据实际需要进行合并、划分和删减。
在本申请中,对于相同或相似的术语概念、技术方案和/或应用场景描述,一般只在第一次出现时进行详细描述,后面再重复出现时,为了简洁,一般未再重复阐述,在理解本申请技术方案等内容时,对于在后未详细描述的相同或相似的术语概念、技术方案和/或应用场景描述等,可以参考其之前的相关详细描述。
在本申请中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本申请技术方案的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本申请记载的范围。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络,或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、存储盘、磁带)、光介质(例如,DVD),或者半导体介质(例如固态存储盘Solid State Disk (SSD))等。
以上对本申请实施例所提供的一种芯片启动方法、芯片启动设备以及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种芯片启动方法,其特征在于,包括:
对目标芯片进行复位;
获取复位后目标芯片对应的选项字,并加载所述选项字;
根据所述选项字对应的译码,在所述目标芯片中确定第一核心;
检测总线访问编号与所述第一核心对应的编号是否一致;
当所述总线访问编号与所述第一核心对应的编号一致时,则根据所述第一核心对应的程序信息,启动第二核心。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一核心对应的程序信息,启动第二核心,包括:
基于所述程序信息对所述目标芯片进行初始化;
检测初始化芯片中第二核心的核心参数;
当所述核心参数满足预设条件时,则启动所述第二核心。
3.根据权利要求2所述的方法,其特征在于,所述当所述核心参数满足预设条件时,则启动所述第二核心,包括:
当所述核心参数满足预设条件时,触发所述第一核心发送总线请求至时钟复位控制模块;
接收所述时钟复位控制模块根据所述总线请求返回的控制信号;
根据所述控制信号,更改所述第二核心对应的时钟信号。
4.根据权利要求3所述的方法,其特征在于,还包括:
确定所述总线请求的请求类型;
当所述请求类型为预设类型时,检测所述总线请求的源端;
当检测到所述总线请求的源端为所述第一核心时,则检测指令地址的地址长度是否小于或等于预设地址长度;
当所述指令地址的地址长度小于或等于预设地址长度时,则控制所述第一核心访问芯片启动程序。
5.根据权利要求4所述的方法,其特征在于,所述根据所述控制信号,更改所述第二核心对应的时钟信号,还包括:
当所述请求类型不为预设类型时,则中断所述总线请求的流转。
6.根据权利要求4所述的方法,其特征在于,还包括:
当检测到所述总线请求的源端为所述第一核心,且所述指令地址的地址长度大于预设地址长度时,则中断所述第一核心访问芯片启动程序。
7.根据权利要求2所述的方法,其特征在于,所述检测初始化芯片中第二核心的核心参数,包括:
检测所述第二核心的硬件参数和程序参数;
所述当所述核心参数满足预设条件时,则启动所述第二核心,包括:当所述硬件参数为预设硬件参数,且所述程序参数为预设程序参数时,则启动所述第二核心。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述检测总线访问编号与所述第一核心对应的编号是否一致之前,还包括:
根据所述译码,确定所述第一核心对应的编号,以及;
从总线访问数据信息中提取总线访问编号。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述芯片启动方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述芯片启动方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210650098.XA CN114721493B (zh) | 2022-06-10 | 2022-06-10 | 芯片启动方法、计算机设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210650098.XA CN114721493B (zh) | 2022-06-10 | 2022-06-10 | 芯片启动方法、计算机设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114721493A true CN114721493A (zh) | 2022-07-08 |
CN114721493B CN114721493B (zh) | 2022-09-27 |
Family
ID=82232753
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210650098.XA Active CN114721493B (zh) | 2022-06-10 | 2022-06-10 | 芯片启动方法、计算机设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114721493B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114967889A (zh) * | 2022-07-25 | 2022-08-30 | 南京芯驰半导体科技有限公司 | 一种芯片启动方法、芯片、部件及交通设备 |
CN115658183A (zh) * | 2022-12-26 | 2023-01-31 | 北京紫光芯能科技有限公司 | 用于控制mcu的方法及装置、电子设备、存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6625731B1 (en) * | 1999-02-19 | 2003-09-23 | Stmicroelectronics Sa | Method of configuring a microcontroller during reset mode by generating auxiliary oscillator signal as supply voltage ramps up to read option word from central memory |
US20060056406A1 (en) * | 2004-09-10 | 2006-03-16 | Cavium Networks | Packet queuing, scheduling and ordering |
JP2006293516A (ja) * | 2005-04-07 | 2006-10-26 | Matsushita Electric Ind Co Ltd | バスアクセス制御装置 |
CN104199699A (zh) * | 2014-08-29 | 2014-12-10 | 北京经纬恒润科技有限公司 | 程序加载方法、芯片启动方法、装置及主控设备 |
CN104636275A (zh) * | 2014-12-30 | 2015-05-20 | 北京兆易创新科技股份有限公司 | 一种mcu芯片的信息保护方法和装置 |
-
2022
- 2022-06-10 CN CN202210650098.XA patent/CN114721493B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6625731B1 (en) * | 1999-02-19 | 2003-09-23 | Stmicroelectronics Sa | Method of configuring a microcontroller during reset mode by generating auxiliary oscillator signal as supply voltage ramps up to read option word from central memory |
US20060056406A1 (en) * | 2004-09-10 | 2006-03-16 | Cavium Networks | Packet queuing, scheduling and ordering |
JP2006293516A (ja) * | 2005-04-07 | 2006-10-26 | Matsushita Electric Ind Co Ltd | バスアクセス制御装置 |
CN104199699A (zh) * | 2014-08-29 | 2014-12-10 | 北京经纬恒润科技有限公司 | 程序加载方法、芯片启动方法、装置及主控设备 |
CN104636275A (zh) * | 2014-12-30 | 2015-05-20 | 北京兆易创新科技股份有限公司 | 一种mcu芯片的信息保护方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114967889A (zh) * | 2022-07-25 | 2022-08-30 | 南京芯驰半导体科技有限公司 | 一种芯片启动方法、芯片、部件及交通设备 |
CN115658183A (zh) * | 2022-12-26 | 2023-01-31 | 北京紫光芯能科技有限公司 | 用于控制mcu的方法及装置、电子设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114721493B (zh) | 2022-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1209563B1 (en) | Method and system for allowing code to be securely initialized in a computer | |
CN114721493B (zh) | 芯片启动方法、计算机设备及可读存储介质 | |
CN103718165B (zh) | Bios闪存攻击保护和通知 | |
US9880856B2 (en) | Patching boot code of read-only memory | |
US7305668B2 (en) | Secure method to perform computer system firmware updates | |
JP4708414B2 (ja) | ランタイム・セキュリティ保証用の自律型メモリ・チェッカ | |
US7039779B2 (en) | Access monitor and access monitoring method for monitoring access between programs | |
JP4960364B2 (ja) | ハードウェア支援されたデバイス設定検出 | |
US7953913B2 (en) | Peripheral device locking mechanism | |
CN111552434B (zh) | 保护计算系统的存储器设备的方法、计算系统及存储介质 | |
US9886408B2 (en) | Data access protection for computer systems | |
US8843742B2 (en) | Hypervisor security using SMM | |
CN107567629A (zh) | 在可信执行环境容器中的动态固件模块加载器 | |
US9542113B2 (en) | Apparatuses for securing program code stored in a non-volatile memory | |
US6405311B1 (en) | Method for storing board revision | |
US20230342476A1 (en) | Bootloaders | |
US10846421B2 (en) | Method for protecting unauthorized data access from a memory | |
CN115827522A (zh) | Bios的设置方法、bios芯片和电子设备 | |
US11847227B2 (en) | Firmware version corruption attack prevention | |
US20060129744A1 (en) | Method and apparatus for enabling non-volatile content filtering | |
CN113064663A (zh) | 电脑装置及基于信任链的权限管理方法 | |
US20010049794A1 (en) | Write protection software for programmable chip | |
US20240004804A1 (en) | Method for managing access rights of memory regions and corresponding system on chip | |
KR20240022969A (ko) | 동적으로 스택 카나리를 업데이트하는 방법 및 시스템 | |
JP2000207235A (ja) | 情報処理装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |