CN105117652A - 一种基于NAND Flash的SOC启动方法 - Google Patents
一种基于NAND Flash的SOC启动方法 Download PDFInfo
- Publication number
- CN105117652A CN105117652A CN201510648742.XA CN201510648742A CN105117652A CN 105117652 A CN105117652 A CN 105117652A CN 201510648742 A CN201510648742 A CN 201510648742A CN 105117652 A CN105117652 A CN 105117652A
- Authority
- CN
- China
- Prior art keywords
- program
- rom
- nandflash
- chip
- soc
- 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/575—Secure boot
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)
- Storage Device Security (AREA)
- Read Only Memory (AREA)
Abstract
本发明提供了一种基于NAND?Flash的SOC启动方法,芯片有两种启动方式,根据SOC芯片预定义PIN脚电平决定是从NAND?Flash启动还是从程序ROM启动,如果是程序ROM启动,根据预定义PIN脚电平决定ROM程序是通过CAN接口还是LIN接口与外部通信,通信时需要外部输入公钥,如果输入的公钥与存储在NAND?Flash里面的私钥匹配,则继续通信,从外部下载程序到片内SRAM,执行下载程序,私钥不匹配,处理器进入低功耗状态,无法下载程序。本发明可以保护此SOC中NAND?Flash里面的程序、数据,保护Flash里面程序、数据的升级,提高了Flash中保存的数据的安全性。
Description
技术领域
本发明属于通信技术领域,尤其是涉及一种基于NANDFlash的SOC启动方法。
背景技术
随着半导体工艺技术和设计工具的发展,愈来愈复杂的功能集成到单硅片上,SOC(片上系统)正是在集成电路(IC)向集成系统(IS)转变的大方向下产生的。SOC就是将微处理器、模拟IP核、数字IP核和存储器集成在单一芯片上。
NANDFlash由于其容量和可靠性较高,使用寿命较长的优点,广泛应用于很多SOC中,作为存储启动代码、系统数据、用户数据内存。
某些应用领域中,如汽车电子领域。一方面,需要对Flash中指令、数据进行定时更新、升级;另一方面,需要保护Flash中的内容,未经授权的客户不能轻易得到应用代码,所以需要一种方式,保护Flash里面的内容的安全。
发明内容
有鉴于此,本发明旨在提出一种基于NANDFlash的SOC启动方法,以保护闪存里面的内容。
为达到上述目的,本发明的技术方案是这样实现的:
一种基于NANDFlash的SOC启动方法,包括如下步骤:
(1)根据预定义PIN脚电平决定是从NANDFlash启动或者从ROM启动;
(2)从NANDFlash启动时,在代码段中寻找特征有效字,进而执行程序,如果没找到特征有效字,系统从ROM启动;
(3)从ROM启动时,通过接口与外部设备通信,并判断输入公钥与存储在Flash中的私钥是否匹配,如果不匹配,则整个系统进入低功耗模式;
(4)如果需要通过外部调试工具与芯片连接、调试,调试工具需要输入公钥并与Flash内部的私钥匹配。
进一步的,所述步骤(3)中当从ROM启动时,根据预定义两个PIN脚电平决定是通过CAN接口或者LIN接口与外部设备通信。
进一步的,所述步骤(3)具体包括如下步骤:
(a)外部设备以预定的波特率与芯片通信,通信过程中,外部设备按照字节、小端顺序,依次输入64比特公钥、程序起始地址、程序代码尺寸、所有程序代码;
(b)ROM程序判断输入64比特公钥是否与存储在Flash特定区域的私钥匹配;
(c)如果匹配,ROM程序记录输入的程序起始地址、程序代码尺寸,将外部输入的代码依次放到片内SRAM中以程序起始地址为开始的地址所指示的地址里面,搬移代码的尺寸为外部数据的程序代码尺寸,搬移代码结束后,程序跳转到片内SRAM中程序的起始地址开始执行;
(d)如果不匹配,ROM程序控制整个系统进入低功耗状态。
进一步的,所述步骤(4)中私钥和LIN或CAN通信的私钥不一样。
相对于现有技术,本发明所述的一种基于NANDFlash的SOC启动方法具有以下优势:
(1)本发明所述的一种NANDFlash的SOC启动方法,通过设置密钥,进行密钥匹配,保证只有授权的用户才能升级Flash内部程序,才可以知道知道Flash里面的程序内容,才能进行程序调试,本发明可以保护此SOC中NANDFlash里面的程序、数据,保护Flash里面程序、数据的升级,提高了Flash中保存的数据的安全性;
(2)通过PIN脚设置程序启动入口,简化了工作流程,提高了程序执行效率,加快了系统的响应速度,可靠性高。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例所述的一种基于NANDFlash的SOC启动方法流程图;
图2为从Flash启动流程图;
图3为从ROM启动流程图。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面将参考附图并结合实施例来详细说明本发明。
如图1所示,本发明提出的一种基于NANDFlash的SOC启动方法,工作过程如下,系统启动时,设预定芯片PIN脚为PIN脚2,PIN脚3,且PIN脚2决定是从Flash启动还是从ROM启动,PIN脚3决定是通过LIN接口与外部通信还是CAN接口与外部通信,否则系统进入低功耗模式,从NANDFlash启动用于正常工作模式,从ROM启动主要用于升级NANDFlash里面的程序、数据。指令Flash分为四个段,指令空间分别为0x0000_0000~0x0000_FFFF、0x0001_0000~0x0001_FFFF、0x0002_0000~0x0003_FFFF、0x0004_0000~0x0005_FFFF,特征有效字为0x005a_ffa5。
如图2所示,芯片启动后,当PIN脚2连接到“地”时,则芯片从NANDFlash启动,从第一个段的起始地址0x0000_0000开始取数,如果此地址存放的数据为0x005a_ffa5,则继续从0x0000_0004开始取数,取到的数据作为程序执行的起始地址,从那个地址开始执行程序,那个地址要在这个段的地址空间范围之内;如果从0x0000_0000取到的数据不是0x005a_ffa5,则继续从第二段(0x0001_0000)的起始地址开始取数,判断是否存在特征有效字,如果所有段的第一个数据都不是特征有效字,则程序从ROM启动。
如果PIN脚2连接到“电源”,且PIN脚3连接到“地”,芯片通过LIN接口与外围设备通信,如果PIN脚3连接到“电源”,芯片通过CAN接口与外围设备通信,如图3所示,与外部通信时,外部输入数据是以小端顺序按照细节输入的。ROM程序判断第一个输入64比特公钥是否与存储在Flash特定区域的私钥匹配,如果匹配则继续后面的输入,如果不匹配,则系统进入低功耗模式;ROM程序记录第三个输入的32比特为“程序起始地址”,第四个输入的32比特为程序代码尺寸,将后面输入的数据依次搬移到片内SRAM地址空间中以程序起始地址为开始的地址中,搬移代码的大小为程序代码尺寸。搬移代码结束后,程序跳转到程序的起始地址开始执行。一般地,在此执行的程序用于完成NANDFlash里面程序、数据的更新。
如果通过外部调试工具与芯片连接、调试。调试工具需要输入一个64比特公钥,如果公钥与Flash内部的私钥匹配,外部调试工具可以与芯片连接、调试,否则调试工具无法连接到芯片。这里的私钥和LIN或CAN通信的私钥不一样。这样保证了只有授权的用户才能进行程序调试,才可以知道Flash里面的程序内容。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种基于NANDFlash的SOC启动方法,其特征在于:包括如下步骤:(1)根据预定义PIN脚电平决定是从NANDFlash启动或者从ROM启动;
(2)从NANDFlash启动时,在代码段中寻找特征有效字,进而执行程序,如果没找到特征有效字,系统从ROM启动;
(3)从ROM启动时,通过接口与外部设备通信,并判断输入公钥与存储在Flash中的私钥是否匹配,如果不匹配,则整个系统进入低功耗模式;
(4)如果需要通过外部调试工具与芯片连接、调试,调试工具需要输入公钥并与Flash内部的私钥匹配。
2.根据权利要求1所述的一种基于NANDFlash的SOC启动方法,其特征在于:所述步骤(3)中当从ROM启动时,根据预定义两个PIN脚电平决定是通过CAN接口或者LIN接口与外部设备通信。
3.根据权利要求1或2所述的一种基于NANDFlash的SOC启动方法,其特征在于:所述步骤(3)具体包括如下步骤:
(a)外部设备以预定的波特率与芯片通信,通信过程中,外部设备按照字节、小端顺序,依次输入64比特公钥、程序起始地址、程序代码尺寸、所有程序代码;
(b)ROM程序判断输入64比特公钥是否与存储在Flash特定区域的私钥匹配;
(c)如果匹配,ROM程序记录输入的程序起始地址、程序代码尺寸,将外部输入的代码依次放到片内SRAM中以程序起始地址为开始的地址所指示的地址里面,搬移代码的尺寸为外部数据的程序代码尺寸,搬移代码结束后,程序跳转到片内SRAM中程序的起始地址开始执行;
(d)如果不匹配,ROM程序控制整个系统进入低功耗状态。
4.根据权利要求1所述的一种基于NANDFlash的SOC启动方法,其特征在于:所述步骤(4)中私钥和LIN或CAN通信的私钥不一样。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510648742.XA CN105117652B (zh) | 2015-10-09 | 2015-10-09 | 一种基于NAND Flash的SOC启动方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510648742.XA CN105117652B (zh) | 2015-10-09 | 2015-10-09 | 一种基于NAND Flash的SOC启动方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105117652A true CN105117652A (zh) | 2015-12-02 |
CN105117652B CN105117652B (zh) | 2018-12-04 |
Family
ID=54665637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510648742.XA Active CN105117652B (zh) | 2015-10-09 | 2015-10-09 | 一种基于NAND Flash的SOC启动方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105117652B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1083294A (ja) * | 1996-06-10 | 1998-03-31 | Robert Bosch Gmbh | プログラミング装置を介してプログラミング可能な記憶装置を備えた制御装置の作動方法 |
WO2003019337A2 (de) * | 2001-08-27 | 2003-03-06 | Bayerische Motoren Werke Aktiengesellschaft | Verfahren zur bereitstellung von software zur verwendung durch ein steuergerät eines fahrzeugs |
CN101196819A (zh) * | 2006-12-06 | 2008-06-11 | 深圳安凯微电子技术有限公司 | 一种片上系统芯片自适应启动设备的方法 |
WO2009004757A1 (ja) * | 2007-07-05 | 2009-01-08 | Panasonic Corporation | データ処理装置、データ処理方法、データ処理プログラム、記録媒体及び集積回路 |
CN101379506A (zh) * | 2006-02-10 | 2009-03-04 | 高通股份有限公司 | 用于从外部存储装置进行安全引导的方法和设备 |
CN104573528A (zh) * | 2014-12-31 | 2015-04-29 | 湖南国科微电子有限公司 | 一种防拷贝Soc启动方法及芯片 |
-
2015
- 2015-10-09 CN CN201510648742.XA patent/CN105117652B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1083294A (ja) * | 1996-06-10 | 1998-03-31 | Robert Bosch Gmbh | プログラミング装置を介してプログラミング可能な記憶装置を備えた制御装置の作動方法 |
WO2003019337A2 (de) * | 2001-08-27 | 2003-03-06 | Bayerische Motoren Werke Aktiengesellschaft | Verfahren zur bereitstellung von software zur verwendung durch ein steuergerät eines fahrzeugs |
CN101379506A (zh) * | 2006-02-10 | 2009-03-04 | 高通股份有限公司 | 用于从外部存储装置进行安全引导的方法和设备 |
CN101196819A (zh) * | 2006-12-06 | 2008-06-11 | 深圳安凯微电子技术有限公司 | 一种片上系统芯片自适应启动设备的方法 |
WO2009004757A1 (ja) * | 2007-07-05 | 2009-01-08 | Panasonic Corporation | データ処理装置、データ処理方法、データ処理プログラム、記録媒体及び集積回路 |
CN104573528A (zh) * | 2014-12-31 | 2015-04-29 | 湖南国科微电子有限公司 | 一种防拷贝Soc启动方法及芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN105117652B (zh) | 2018-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101561857B (zh) | 多模式启动的安全嵌入式系统 | |
CN103067392B (zh) | 一种基于Android终端的安全访问控制方法 | |
CN106776308B (zh) | 一种基于Uboot的电子产品故障调试方法及系统 | |
CN107479913A (zh) | 一种fpga配置多启动低资源占用更新方法及实施系统 | |
CN105930186B (zh) | 多cpu的软件加载方法及基于多cpu的软件加载装置 | |
CN103268284B (zh) | 一种星敏感器在轨维护方法 | |
CN102129592B (zh) | 接触式智能卡 | |
US20020129195A1 (en) | Microcomputer with built-in programmable nonvolatile memory | |
CN102236621A (zh) | 计算机接口信息配置系统及方法 | |
CN103744713A (zh) | 基于fpga的嵌入式双核系统的自主配置方法 | |
CN103745167B (zh) | 单片机的iap方法及装置 | |
US20180129604A1 (en) | Storage device and data processing system including the same | |
CN106093659A (zh) | 智能卡断电保护测试装置、系统及方法 | |
CN203338067U (zh) | 嵌入式系统中otp存储元件编程控制的电路结构 | |
CN105117652A (zh) | 一种基于NAND Flash的SOC启动方法 | |
CN104750532A (zh) | 一种基于Android的双系统土地核查PAD及启动方法 | |
CN101398874A (zh) | 利用散列函数装入程序到微处理器内部sram并运行的方法 | |
CN205809211U (zh) | 智能卡断电保护测试装置及系统 | |
CN203909780U (zh) | 车辆远程升级装置 | |
CN115827347A (zh) | 一种嵌入式设备的控制方法及嵌入式设备 | |
CN105138379A (zh) | 一种基于Ymodem协议的在线升级方法 | |
CN108039984A (zh) | 一种汽车发动机通讯协议的自动化识别方法 | |
CN104572180B (zh) | 一种嵌入式设备的固件升级方法及嵌入式系统 | |
CN202748777U (zh) | 一种在线调试单片机的系统 | |
US20070192645A1 (en) | Battery management system chip and data-accessing method of the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |