支持多种闪存加密存储的启动固件的执行方法_4

文档序号:9564823阅读:来源:国知局
,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺 序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明 的实施例所属技术领域的技术人员所理解。
[0086] 在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是 用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以 供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指 令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置 或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传 播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使 用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个 布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读 存储器(R0M),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光 盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其 他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必 要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器 中。
[0087] 应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述 实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件 或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下 列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路 的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场 可编程门阵列(FPGA)等。
[0088] 本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步 骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介 质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0089] 此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以 是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模 块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如 果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机 可读取存储介质中。
[0090] 上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0091] 在本说明书的描述中,参考术语"一个实施例"、"一些实施例"、"示例"、"具体示 例"、或"一些示例"等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特 点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不 一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何 的一个或多个实施例或示例中以合适的方式结合。
[0092] 尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例 性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨 的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
【主权项】
1. 一种支持多种闪存加密存储的启动固件的执行方法,其特征在于,包括以下步骤: 对闪存设定硬件基本操作功能参数; 调整设定存储访问预设参数; 根据硬件连接读取所述闪存的硬件ID; 根据所述硬件连接及所述闪存的硬件ID判断是否为Nand闪存; 如果是Nand闪存,则读取所述闪存的ONFI协议参数及所述闪存中的加密的参数信 息; 如果不是Nand闪存,则读取所述闪存中的加密的参数信息; 对读取的参数信息进行解密,并对解密后的数据进行验证; 根据所述硬件ID、所述闪存的ONFI协议参数、所述解密后的数据和验证结果判断所述 存储访问预设参数情况下闪存通讯和存储访问的正确性; 如果正确,则判断解密后的数据为所述存储访问预设参数设定之后的可靠数据信息, 所述存储访问预设参数为可靠硬件操作参数;以及 对于保存在闪存中加密的启动代码进行解密并加载。2. 如权利要求1所述的支持多种闪存加密存储的启动固件的执行方法,其特征在于, 其中, 对于Nor闪存,所述基本操作功能参数包括实现硬件通讯和控制协议必要的控制器设 置内容;以及 对于Nand闪存,除包含对硬件控制器实现硬件通讯和控制协议必要的设置外,还对闪 存协议要求的硬件时序参数进行缺省配置。3. 如权利要求1所述的支持多种闪存加密存储的启动固件的执行方法,其特征在于, 对于Nand闪存,所述存储访问预设参数包括地址长度; 对于Nor闪存,所述存储访问预设参数包括数据总线宽度。4. 如权利要求1所述的支持多种闪存加密存储的启动固件的执行方法,其特征在于, 所述读取所述闪存的硬件ID具体包括: 根据所述硬件连接向所述闪存发送0x90及0x9F命令对所述闪存的硬件ID进行预读。5. 如权利要求1所述的支持多种闪存加密存储的启动固件的执行方法,其特征在于, 所述参数信息包括闪存存储属性,容量信息;还包括加密的启动代码数据分段信息,该分段 信息除包含数据读取的段数据长度外,还包含一组包含随机有限个数据段读取关系的映射 表,这个映射表数据将用于启动代码数据读取,其中,所述参数信息长度最后2字节为对整 个参数信息进行CRC32后的校验码。6. 如权利要求1所述的支持多种闪存加密存储的启动固件的执行方法,其特征在于, 所述验证使用CRC32验证算法。7. 如权利要求5所述的支持多种闪存加密存储的启动固件的执行方法,其特征在于, 所述对于保存在闪存中加密的启动代码进行解密并加载具体包括: 读取所述S0C内置fuse上密码子用于数据解密; 读取配置参数中对闪存上的数据分段信息; 读取所述分段信息指定位置数据,将数据保存在片内高速缓存中; 使用AES算法和所述密码子将所述数据解密至S0C内置高速缓存中,并进行校验。
【专利摘要】本发明公开了一种支持多种闪存加密存储的启动固件的执行方法,包括以下步骤:设定和调整参数;根据硬件连接读取闪存的硬件ID,以判断是否为Nand闪存,从而读取ONFI协议参数及加密的参数信息或只读取加密的参数信息;解密与验证参数信息;判断闪存通讯和存储访问的正确性;如果正确,则判断解密后的数据为可靠数据信息,存储访问预设参数为可靠硬件操作参数;解密并加载加密的启动代码。本发明实施例的方法不但支持多种闪存,而且支持在闪存上加密存储,具有实现过程简单,运行时解密系统消耗低的特点。
【IPC分类】G06F21/78
【公开号】CN105320901
【申请号】CN201510133772
【发明人】李相斌
【申请人】北京国睿中数科技股份有限公司
【公开日】2016年2月10日
【申请日】2015年3月25日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1