一种芯片boot运行方法、装置及相关组件与流程

文档序号:23260455发布日期:2020-12-11 18:49阅读:361来源:国知局
一种芯片boot运行方法、装置及相关组件与流程

本申请涉及芯片开发领域,特别涉及一种芯片boot运行方法、装置及相关组件。



背景技术:

在soc芯片设计中,必须要充分考虑soc芯片的boot方案,boot是soc芯片上电后的第一个运行阶段,其主要功能是初始化soc芯片的一些模块,为soc芯片上电boot之后阶段的运行做好准备,另外,soc芯片的安全机制也由boot方案来决定。因此boot的成功运行与否决定了soc芯片后续阶段能否顺利进行。

目前业界的主流做法是在soc芯片中专门设计一块片上rom,此片上rom空间专门用于储存soc芯片的boot映像,也被称为bootrom。但是芯片流片之后,bootrom就不能再被修改,而芯片流片的资金成本和时间成本相当昂贵。所以在芯片流片之前,必须要对bootrom进行充分全面的验证,以确保其正确性。如果在流片之后,其出现错误,导致芯片不能成功boot,会带来巨大的资金和时间的损失,从而甚至会导致此芯片项目失败。

因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。



技术实现要素:

本申请的目的是提供一种芯片boot运行方法、装置、电子设备及计算机可读存储介质,不需要在芯片中专门规划一块片上rom储存芯片boot映像,从而节省了芯片的面积,降低了成本,boot映像可以根据芯片在不同的实际应用场景,随时进行针对性的修改,灵活性强。

为解决上述技术问题,本申请提供了一种芯片boot运行方法,包括:

将片内ram在总线上的地址空间和片内寄存器分别对应映射到主机系统的地址空间,所述片内寄存器用于指示所述主机系统通过所述地址空间下载到所述片内ram中的boot映像的下载状态;

当所述下载状态为完成,触发片内cpu复位,以便所述片内cpu读取并执行所述片内ram中的boot映像。

优选的,所述将片内ram在总线上的地址空间和片内寄存器分别对应映射到主机系统的地址空间的过程具体包括:

当芯片处于复位状态,通过pcie接口将片内ram在总线上的地址空间和片内寄存器分别对应映射到主机系统的地址空间。

优选的,该芯片boot运行方法还包括:

对所述片内cpu写入所述片内ram中的数据进行加密;

对所述片内cpu读取的所述片内ram中的数据进行解密。

优选的,该芯片boot运行方法还包括:

设置密钥,其中,所述密钥用于所述主机系统对写入到ram上的boot映像执行加密操作,所述密钥还用于所述芯片对接收到的boot映像执行解密操作。

优选的,该芯片boot运行方法还包括:

通过efuse存储所述密钥。

优选的,所述片内cpu读取并执行所述片内ram中的boot映像的过程具体包括:

当所述片内cpu读取的所述片内ram中的boot映像合法,所述片内cpu执行所述片内ram中的boot映像。

优选的,所述芯片为soc芯片。

为解决上述技术问题,本申请还提供了一种芯片,包括:

映射装置,用于将所述片内ram在总线上的地址空间及所述片内寄存器分别对应映射到所述主机系统的地址空间;

片内ram,用于存储所述主机系统下载的boot映像,所述片内ram在总线上的地址空间的首地址为芯片的片内cpu复位后读取首条指令的地址;

片内寄存器,用于指示所述boot映像的下载状态;

所述片内cpu,用于当所述下载状态为完成,触发复位操作,从所述片内ram读取并执行所述boot映象。

优选的,该芯片还包括:

设于所述片内ram和所述片内cpu之间的安全装置,用于对所述片内cpu和所述片内ram之间的传输数据进行加密操作或解密操作。

为解决上述技术问题,本申请还提供了一种芯片boot运行装置,包括:

映射模块,用于将片内ram在总线上的地址空间和片内寄存器分别对应映射到主机系统的地址空间,所述片内寄存器用于指示所述主机系统通过所述地址空间下载到所述片内ram中的boot映像的下载状态;

执行模块,用于当所述下载状态为完成,触发片内cpu复位,以便所述片内cpu读取并执行所述片内ram中的boot映像。

本申请提供了一种芯片boot运行方法,不需要在芯片中专门规划一块片上rom储存芯片boot映像,从而节省了芯片的面积,降低了成本,把芯片中的片内ram和寄存器映射到主机系统的地址空间,使主机系统能够直接对soc芯片的片内ram和寄存器进行读写操作,以便boot映像可以根据芯片在不同的实际应用场景,随时进行针对性的修改,灵活性强,由主机系统直接把芯片的boot映像通过映射的地址空间下载到其片内ram中,下载完成后,芯片的cpu从片内ram中开始读取指令执行,从而达到芯片boot的目的。本申请还提供了一种芯片boot运行装置、电子设备及计算机可读存储介质,具有和上述芯片boot运行方法相同的有益效果。

附图说明

为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请所提供的一种芯片boot运行方法的步骤流程图;

图2为本申请所提供的一种芯片boot运行系统的结构示意图;

图3为本申请所提供的一种芯片boot运行装置的结构示意图。

具体实施方式

本申请的核心是提供一种芯片boot运行方法、装置、电子设备及计算机可读存储介质,不需要在芯片中专门规划一块片上rom储存芯片boot映像,从而节省了芯片的面积,降低了成本,boot映像可以根据芯片在不同的实际应用场景,随时进行针对性的修改,灵活性强。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参照图1,图1为本申请所提供的一种芯片boot运行方法的步骤流程图,该芯片boot运行方法包括:

s101:将片内ram在总线上的地址空间和片内寄存器分别对应映射到主机系统的地址空间,片内寄存器用于指示主机系统通过地址空间下载到片内ram中的boot映像的下载状态;

具体的,本实施例中的芯片可以为soc(systemonchip,片上系统)芯片,当然,也可以为其他与主机系统进行交互的芯片。为便于理解,下文以soc芯片为例进行说明。

在执行s101之前,通过soc芯片所选用的cpu的类型来确定片内ram(randomaccessmemory,随机存储器)在总线上所需要分配的地址空间,以armcpu来举例,其默认复位地址为0,所以片内ram在总线上分配的起始地址为0,结束地址即为片内ram大小的数值。

进一步的,在soc芯片设计中,需要设计一个专用的片内寄存器,其缺省初始值用于表示由主机下载到片内ram中的boot映像未下载完成的状态,而在主机系统下载到片内ram中的boot映像下载完成后,主机系统会在此片内寄存器中写入一个值,此值用于表示boot映像下载完成。而在soc芯片的上电复位逻辑中,soc芯片会根据此值触发cpu复位开始从片内ram读取boot映像,并执行。

可以理解的是,在某些芯片应用场景中,具备pcie(peripheralcomponentinterconnectexpress,高速串行计算机扩展总线标准)接口的soc芯片,会作为一个子系统通过pcie接口(例如pcie板卡插槽)与主机系统连接。而pcie接口技术具备地址空间映射功能。在soc芯片设计中,需要把pcie模块的复位缺省状态设置为一种特定的状态,在此状态下,当soc芯片上电复位的过程中,当pcie复位进行时,pcie模块通过与主机系统的pcie接口连接,把上述ram地址空间和寄存器分别映射到主机系统地址空间中的某两段地址空间,通过此地址空间,主机系统可以在主机端直接对片内ram和片内寄存器进行读写操作,以便boot映像可以根据芯片在不同的实际应用场景随时进行针对性的修改,灵活性强。

s102:当下载状态为完成,触发片内cpu复位,以便片内cpu读取并执行片内ram中的boot映像。

具体的,当s101的映射操作完成后,主机系统通过映射的地址空间将soc芯片的boot映像下载到片内ram中,下载完成后,更新片内寄存器的值,当soc芯片检测到该片内寄存器的值为下载完成对应的值,则触发soc芯片的cpu复位,从片内ram中开始读取boot映像并执行,从而达到soc芯片boot的目的。

可见,本实施例不需要在芯片中专门规划一块片上rom储存芯片boot映像,从而节省了芯片的面积,降低了成本,把芯片中的片内ram和寄存器映射到主机系统的地址空间,使主机系统能够直接对soc芯片的片内ram和寄存器进行读写操作,以便boot映像可以根据芯片在不同的实际应用场景,随时进行针对性的修改,灵活性强,由主机系统直接把芯片的boot映像通过映射的地址空间下载到其片内ram中,下载完成后,芯片的cpu从片内ram中开始读取指令执行,从而达到芯片boot的目的。

在上述实施例的基础上:

作为一种优选的实施例,该芯片boot运行方法还包括:

对片内cpu写入片内ram中的数据进行加密;

对片内cpu读取的片内ram中的数据进行解密。

具体的,参照图2所示,在soc芯片的cpu与总线之间本申请设置了一个安全模块,此安全模块的作用对象为片内ram。cpu从片内ram中读取数据后,数据在到达cpu之前,此数据会被安全模块先解密,然后再送达cpu,而cpu在写数据到片内ram中时,此数据会先由安全模块加密后,再写入片内ram。采用本实施例的方案,一方面可以防止非法的boot映像入侵此soc芯片,另一方面可以防止boot映像被窃取后,被破解,为了提高芯片的运行效率,作为一种优选的实施例,安全模块可使用streamcipher算法ip,blockcipher算法ip等。

作为一种优选的实施例,该芯片boot运行方法还包括:

设置密钥,其中,密钥用于主机系统对写入到ram上的boot映像执行加密操作,密钥还用于芯片对接收到的boot映像执行解密操作。

作为一种优选的实施例,该芯片boot运行方法还包括:

通过efuse存储密钥。

具体的,在上述实施例的基础上,soc芯片还包括一组电子熔断器efuse,此efuse用来储存安全模块的密钥,在主机系统中,由此密钥来加密用于soc芯片的boot映像,而在soc芯片中,安全模块用此密钥来解密加密过的boot映像。密钥在soc芯片生产阶段由机台写入efuse,密钥则是由此安全模块的密钥生成工具来生成。

作为一种优选的实施例,片内cpu读取并执行片内ram中的boot映像的过程具体包括:

当片内cpu读取的片内ram中的boot映像合法,片内cpu执行片内ram中的boot映像。

具体的,本实施例中的数据合法具体指片内ram的数据可以通过密钥正常解密。

具体的,在主机系统中,将用于下载的soc芯片的boot映像由安全模块的密钥进行加密,在soc芯片上电之后,soc芯片的片内ram和片内寄存器由pcie接口直接映射到主机的地址空间,主机系统直接把加密后的boot映像由此地址空间下载到片内ram中,并更新寄存器的值为映像下载完成状态。soc芯片上电复位逻辑在检测到寄存器的值为映像下载完成后,触发cpu复位开始执行,从片内ram读取数据,也就是cpu指令,而这些数据在达到cpu之前,会经过安全模块先解密,反之,cpu在写数据到片内ram之前,此数据同样会由安全模块先加密后,再写入片内ram中。在此原理之上,此芯片的boot映像执行完成后,芯片的控制权将传递给下一阶段的映像程序,至此,boot流程完成。

综上所述,本申请相对于现有技术,未使用片上rom存储boot映像,减少了芯片的面积,降低了成本,boot映像在芯片流片后,依然可被修改,其提高了芯片使用的灵活性,此外,由于ram速度比rom速度快,采用此技术的soc芯片boot速度会有所提升。

请参照图3,图3为本申请还提供了一种芯片boot运行装置的结构示意图,该芯片boot运行装置包括:

映射模块1,用于将片内ram在总线上的地址空间和片内寄存器分别对应映射到主机系统的地址空间,片内寄存器用于指示主机系统通过地址空间下载到片内ram中的boot映像的下载状态;

执行模块2,用于当下载状态为完成,触发片内cpu复位,以便片内cpu读取并执行片内ram中的boot映像。

可见,本实施例不需要在芯片中专门规划一块片上rom储存芯片boot映像,从而节省了芯片的面积,降低了成本,把芯片中的片内ram和寄存器映射到主机系统的地址空间,使主机系统能够直接对soc芯片的片内ram和寄存器进行读写操作,以便boot映像可以根据芯片在不同的实际应用场景,随时进行针对性的修改,灵活性强,由主机系统直接把芯片的boot映像通过映射的地址空间下载到其片内ram中,下载完成后,芯片的cpu从片内ram中开始读取指令执行,从而达到芯片boot的目的。

作为一种优选的实施例,映射模块1具体用于:

当芯片处于复位状态,通过pcie接口将片内ram在总线上的地址空间和片内寄存器分别对应映射到主机系统的地址空间。

作为一种优选的实施例,该芯片boot运行装置还包括:

保护模块,用于对片内cpu写入片内ram中的数据进行加密,还用于对片内cpu读取的片内ram中的数据进行解密。

作为一种优选的实施例,该芯片boot运行装置还包括:

设置模块,用于设置密钥,其中,密钥用于主机系统对写入到ram上的boot映像执行加密操作,密钥还用于芯片对接收到的boot映像执行解密操作。

作为一种优选的实施例,该芯片boot运行装置还包括:

存储模块,用于通过efuse存储密钥。

作为一种优选的实施例,片内cpu读取并执行片内ram中的boot映像的过程具体包括:

当片内cpu读取的片内ram中的boot映像合法,片内cpu执行片内ram中的boot映像。

作为一种优选的实施例,芯片为soc芯片。

另一方面,本申请还提供了一种芯片,包括:

映射装置,用于将片内ram在总线上的地址空间及片内寄存器分别对应映射到主机系统的地址空间;

片内ram,用于存储主机系统下载的boot映像,片内ram在总线上的地址空间的首地址为芯片的片内cpu复位后读取首条指令的地址;

片内寄存器,用于指示boot映像的下载状态;

片内cpu,用于当下载状态为完成,触发复位操作,从片内ram读取并执行boot映象。

可见,本实施例不需要在芯片中专门规划一块片上rom储存芯片boot映像,从而节省了芯片的面积,降低了成本,把芯片中的片内ram和寄存器映射到主机系统的地址空间,使主机系统能够直接对soc芯片的片内ram和寄存器进行读写操作,以便boot映像可以根据芯片在不同的实际应用场景,随时进行针对性的修改,灵活性强,由主机系统直接把芯片的boot映像通过映射的地址空间下载到其片内ram中,下载完成后,芯片的cpu从片内ram中开始读取指令执行,从而达到芯片boot的目的。

作为一种优选的实施例,该芯片还包括:

设于片内ram和片内cpu之间的安全装置,用于对片内cpu和片内ram之间的传输数据进行加密操作或解密操作。

作为一种优选的实施例,映射装置为pcie接口。

作为一种优选的实施例,该芯片还包括:

efuse,用于存储密钥,密钥用于主机系统对写入到ram上的boot映像执行加密操作,密钥还用于芯片对接收到的boot映像执行解密操作。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其他实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1