CN102279763A - 一种bootrom的优化方法 - Google Patents
一种bootrom的优化方法 Download PDFInfo
- Publication number
- CN102279763A CN102279763A CN2011102546825A CN201110254682A CN102279763A CN 102279763 A CN102279763 A CN 102279763A CN 2011102546825 A CN2011102546825 A CN 2011102546825A CN 201110254682 A CN201110254682 A CN 201110254682A CN 102279763 A CN102279763 A CN 102279763A
- Authority
- CN
- China
- Prior art keywords
- code
- read
- reading
- header information
- information data
- 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.)
- Pending
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明提供一种BOOTROM的优化方法,包括步骤:10、读取FLASH的ID,若没有接FLASH转步骤50,若可识别ID转步骤20,若不可识别ID转步骤30;20、使用ID的物理参数读取第一个BLOCK的头信息数据,校验,若是所需的引导代码则进行读取,若不是则读取下一个BLOCK;30、探测ID的物理参数,再按步骤20的方法读取;40、根据头信息数据结构读取loader的第一部分代码和第二部分代码,完成引导,若不能引导转步骤50;50、从SPI FLASH读取引导代码,若无效则转步骤60;60、从emmc接口的存储器读取引导代码,如果无效则转到步骤70;70、从UART端口和USB端口任意一个有合法有效的升级请求的端口进行引导模式。本发明能够克服FLASH的兼容性差,多种引导方式需采用跳线选择的问题。
Description
【技术领域】
本发明涉及一种BOOTROM的优化方法。
【背景技术】
现有的BOOTROM(掩膜在芯片内部的引导程序)在有多种引导方式时,大多采用跳线选择方式,采用跳线选择方式烦琐而且会增加跳线选择成本;而且在NAND FLASH(flash闪存的一种)兼容性方面是按照现有的FLASH种类去编写驱动代码,因此存在以下的问题:
缺点一:采用跳线选择方式需要跳线选择从哪里引导;缺点二:新推出的NAND FLASH可能无法兼容。缺点三:片内需要较大SRAM(静态随机存储器)来存放loader(系统装载软件)或者将loader存放在SDRAM(同步动态随机存储器),但BOOTROM初始化各种SDRAM存在一定的风险。
【发明内容】
本发明要解决的技术问题,在于提供一种BOOTROM的优化方法,它能够克服NAND FLASH的兼容性差,多种引导方式需采用跳线选择的问题。
本发明是这样实现的:一种BOOTROM的优化方法,具体包括如下步骤:
步骤10、芯片复位后用低频宽时序读取NAND FLASH的ID,如果读取到的NAND FLASH的厂商ID和器件ID都是0x00或0xff,则没有接NAND FLASH,直接转到步骤50,如果读取到可以识别的ID则转入步骤20,如果读取到不可以识别的ID则转入步骤30;
步骤20、使用读取到的ID的物理参数读取第一个BLOCK(块,NANDFLASH的擦除单位)的头信息数据,对读取到头信息数据进行校验,判断是否是所需的引导代码数据组织结构,若是则在该BLOCK的后续PAGE(页,NAND FLASH的编程单位)中读取引导代码,转步骤40,若不是则读取下一个BLOCK的头信息数据;
步骤30、探测所述ID的物理参数,再使用探测到的ID的物理参数读取第一个BLOCK的头信息数据,对读取到头信息数据进行校验,判断是否是所需的引导代码数据组织结构,若是则在该BLOCK的后续PAGE种读取引导代码,转步骤40,若不是则读取下一个BLOCK的头信息数据;
步骤40、按如下引导方法读取引导代码:读取到头信息数据后,根据数据结构读取loader(系统装载软件)的第一部分代码并存放在芯片内部SRAM中,经验证有效后执行这份代码,完成系统频率提升及必要SDRAM初始化;读取loader的第二部分代码,验证有效后,提交CPU控制权,完成引导,若没有读到头信息数据或loader第一部分代码和第二部分代码不完整有效,则不能从NAND FLASH引导,转到步骤50;
步骤50、按照步骤40的引导方法从SPI FLASH(一种通用flash,它采用串行外设接口)读取引导代码,如果引导代码有效则完成引导,若引导代码无效则转到步骤60;
步骤60、按照步骤40的引导方法从emmc(嵌入式的MMC卡接口的存储器,它是一颗芯片而不是卡)接口的存储器读取引导代码,如果引导代码有效则完成引导,如果引导代码无效则转到步骤70;
步骤70、初始化UART(通用异步接收/发送装置)端口和USB端口,等待和PC建立连接,任意一个端口有合法有效的升级请求,则转入该端口的引导模式。
进一步的,所述步骤20中,所述ID的物理参数包括I/O宽度、PAGE大小、BLOCK大小、命令及地址、ECC(错误检查和纠正),利用ID的物理参数去读取第一个BLOCK的512B或1KB头信息数据,若ECC有错,则切换ECC位数后再读取直到正确。
进一步的,所述步骤40中,整份loader代码在NAND FLASH中按PAGE连接,若无结束标志则表明代码不完整。
本发明具有如下优点:
本发明不用跳线方式就可以从多种引导选择中进行引导,可以去掉跳线选择成本,而且简单易用;
本发明严格判断loader的完整性,避免异常情况导致开不了机,loader代码采用两部分组成,第一部分很小在片内SRAM中运行,完成提升系统频率及必要的SDRAM初始化,第二部分在SDRAM中运行,是负责引导操作系统的loader;既保证芯片稳定可靠,不需要在BOOTROM里跑高频、去初始化各种SDRAM/DDR SDRAM,也不需要更大的片内SRAM来存放loader代码,又能增加各种灵活性及引导速度;
本发明对NAND FLASH作各种物理参数的探测,大大提高兼容性,新推出的NAND FLASH可以不用修改BOOTROM里的驱动代码,不用修改芯片的成本及加快芯片上市的时间。
【附图说明】
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明方法流程示意图。
图2为本发明的模块示意框图。
【具体实施方式】
请参阅图1、图2所示,对本发明的实施例进行详细的说明。
如图1、图2,本发明方法具体包括如下步骤:步骤10、芯片复位后用低频宽时序读取NAND FLASH的ID,因为低频保证了芯片的稳定性,宽时序满足所有NAND FLASH时序的要求。如果读取到的NAND FLASH的厂商ID和器件ID都是0x00或0xff,则没有接NAND FLASH,直接转到步骤50,如果读取到可以识别的ID则转入步骤20,如果读取到不可以识别的ID则转入步骤30(因为NAND FLASH的读ID命令是0x90(命令)、0x00(地址),如果没有外接NAND FLASH,那读到的数据是数据总线最后发出的数据即0x00,由于NAND FLASH的厂商ID和器件ID都不会是0x00或0xff,所以判断当读到的厂商ID及器件ID都是0x00或0xff时,即可确定没有外接NAND FLASH)。
步骤20、使用读取到的ID的物理参数读取第一个BLOCK的头信息数据,所述ID的物理参数包括I/O宽度、PAGE大小、BLOCK大小、命令及地址、ECC(small page的用8bit/528B、large page的用16bit/1056B),利用ID的物理参数去读取第一个BLOCK的512B或1KB头信息数据,若ECC有错,则切换ECC位数后再读取直到正确,如16bit/1056B——>24bit/1070B——>40bit/1096B——>关闭(所述关闭ECC可以支持内嵌ECC的FLASH,如TOSHIBA的PBA(一种名称,内嵌ECC的FLASH)、MICRON(美光半导体公司)的clear NAND等以及有些内嵌控制器的FLASH,如TOSHIBA(东芝)的LBA(也是一种名称,内嵌控制器的FLASH)等)。对读取到头信息数据进行校验,判断是否是所需的引导代码数据组织结构,若是则在该BLOCK的后续PAGE中读取引导代码,若不是则读取下一个BLOCK的头信息数据。
步骤30、探测所述ID的物理参数,一般是以下六种:a.大PAGE/5个地址/8位数据宽度b.大PAGE、5个地址/16位数据宽度c.小PAGE/4个地址/8位数据宽度d.小PAGE/4个地址/16位数据宽度e.大PAGE/4个地址/8位数据宽度f.大PAGE/4个地址/16位数据宽度,通过以上六种物理参数组合读取第一个BLOCK的头信息数据,对读取到头信息数据进行校验,判断是否是所需的引导代码数据组织结构,若是则在该BLOCK的后续PAGE种读取引导代码,若不是则读取下一个BLOCK的头信息数据。
步骤40、按如下引导方法读取引导代码:读取到头信息数据后,根据数据结构读取loader的第一部分代码并存放在芯片内部SRAM中,经验证有效后执行这份代码,完成系统频率提升及必要SDRAM初始化;读取loader的第二部分代码,验证有效后,提交CPU控制权,完成引导;整份loader代码在NAND FLASH中按PAGE连接,比如PAGE1指向的是PAGE2,最后一个PAGE指向的是全0xff表示结束,若无结束标志表明代码不完整,可能是在升级过程中异常中断等原因,这保证了loader的完整性;若没有读到头信息数据或loader第一部分代码和第二部分代码不完整有效,则不能从NAND FLASH引导,转到步骤50。
步骤50、从SPI FLASH读取引导代码,引导方法同步骤40,如果引导代码有效则完成引导,若引导代码无效则转到步骤60。
步骤60、从emmc接口的存储器读取引导代码,引导方法同步骤40,如果引导代码有效则完成引导,如果引导代码无效则转到步骤70。
步骤70、初始化UART端口和USB端口,等待和PC建立连接,任意一个端口有合法有效的升级请求,则转入该端口的引导模式。
以上所述,仅为本发明较佳实施例而已,故不能依此限定本发明实施的范围,即依本发明专利范围及说明书内容所作的等效变化与修饰,皆应仍属本发明涵盖的范围内。
Claims (3)
1.一种BOOTROM的优化方法,其特征在于,具体包括如下步骤:
步骤10、芯片复位后用低频宽时序读取NAND FLASH的ID,如果读取到的NAND FLASH的厂商ID和器件ID都是0x00或0xff,则没有接NAND FLASH,直接转到步骤50,如果读取到可以识别的ID则转入步骤20,如果读取到不可以识别的ID则转入步骤30;
步骤20、使用读取到的ID的物理参数读取第一个BLOCK的头信息数据,对读取到头信息数据进行校验,判断是否是所需的引导代码数据组织结构,若是则在该BLOCK的后续PAGE中读取引导代码,转步骤40,若不是则读取下一个BLOCK的头信息数据;
步骤30、探测所述ID的物理参数,再使用探测到的ID的物理参数读取第一个BLOCK的头信息数据,对读取到头信息数据进行校验,判断是否是所需的引导代码数据组织结构,若是则在该BLOCK的后续PAGE种读取引导代码,转步骤40,若不是则读取下一个BLOCK的头信息数据;
步骤40、按如下引导方法读取引导代码:读取到头信息数据后,根据数据结构读取loader的第一部分代码并存放在芯片内部SRAM中,经验证有效后执行这份代码,完成系统频率提升及必要SDRAM初始化;读取loader的第二部分代码,验证有效后,提交CPU控制权,完成引导,若没有读到头信息数据或loader第一部分代码和第二部分代码不完整有效,则不能从NAND FLASH引导,转到步骤50;
步骤50、从SPI FLASH按照步骤40的引导方法读取引导代码,如果引导代码有效则完成引导,若引导代码无效则转到步骤60;
步骤60、从emmc接口的存储器按照步骤40的引导方法读取引导代码,如果引导代码有效则完成引导,如果引导代码无效则转到步骤70;
步骤70、初始化UART端口和USB端口,等待和PC建立连接,任意一个端口有合法有效的升级请求,则转入该端口的引导模式。
2.根据权利要求1所述的一种BOOTROM的优化方法,其特征在于:所述步骤20中,所述ID的物理参数包括I/O宽度、PAGE大小、BLOCK大小、命令及地址、ECC,利用ID的物理参数去读取第一个BLOCK的512B或1KB头信息数据,若ECC有错,则切换ECC位数后再读取直到正确。
3.根据权利要求1所述的一种BOOTROM的优化方法,其特征在于:所述步骤40中,整份loader代码在NAND FLASH中按PAGE连接,若无结束标志则表明代码不完整。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102546825A CN102279763A (zh) | 2011-08-30 | 2011-08-30 | 一种bootrom的优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011102546825A CN102279763A (zh) | 2011-08-30 | 2011-08-30 | 一种bootrom的优化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102279763A true CN102279763A (zh) | 2011-12-14 |
Family
ID=45105227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011102546825A Pending CN102279763A (zh) | 2011-08-30 | 2011-08-30 | 一种bootrom的优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102279763A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077056A (zh) * | 2012-12-31 | 2013-05-01 | 中国电子科技集团公司第十五研究所 | 使用少量ROM资源的Bootlorder实现方法 |
CN103823664A (zh) * | 2012-11-19 | 2014-05-28 | 中兴通讯股份有限公司 | 一种二进制合一Boot程序及内核程序的设计方法 |
CN106158038A (zh) * | 2015-04-14 | 2016-11-23 | 飞思卡尔半导体公司 | 从非易失性存储器读取数据的方法 |
CN106897623A (zh) * | 2015-12-21 | 2017-06-27 | 深圳市中兴微电子技术有限公司 | 一种支持多安全引导的芯片及其启动方法 |
CN108196869A (zh) * | 2017-12-21 | 2018-06-22 | 北京京存技术有限公司 | 一种emmc固件启动方法和装置 |
CN109725939A (zh) * | 2017-10-27 | 2019-05-07 | 深圳市中兴微电子技术有限公司 | 一种芯片启动方法、芯片和计算机可读存储介质 |
CN109739565A (zh) * | 2019-01-07 | 2019-05-10 | 深圳忆联信息系统有限公司 | 一种保证Bootrom正常运行的方法、装置、计算机设备及存储介质 |
WO2021036404A1 (zh) * | 2019-08-31 | 2021-03-04 | 安徽寒武纪信息科技有限公司 | 数据传输方法及相关设备 |
US11934337B2 (en) | 2019-08-31 | 2024-03-19 | Anhui Cambricon Information Technology Co., Ltd. | Chip and multi-chip system as well as electronic device and data transmission method |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040017708A1 (en) * | 2002-07-29 | 2004-01-29 | Choi Young-Joon | Computer system with NAND flash memory for booting and storage |
CN1996251A (zh) * | 2007-01-04 | 2007-07-11 | 炬力集成电路设计有限公司 | 一种嵌入式系统的引导方法及装置 |
CN101021794A (zh) * | 2006-05-25 | 2007-08-22 | 杭州晟元芯片技术有限公司 | 一种芯片上电后的程序引导方法 |
CN102081538A (zh) * | 2011-01-11 | 2011-06-01 | 上海华勤通讯技术有限公司 | 手机处理器兼容多种芯片的方法 |
CN102163158A (zh) * | 2011-04-29 | 2011-08-24 | 北京凡达讯科技有限公司 | 一种系统级芯片利用nand闪存启动的方法 |
-
2011
- 2011-08-30 CN CN2011102546825A patent/CN102279763A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040017708A1 (en) * | 2002-07-29 | 2004-01-29 | Choi Young-Joon | Computer system with NAND flash memory for booting and storage |
CN101021794A (zh) * | 2006-05-25 | 2007-08-22 | 杭州晟元芯片技术有限公司 | 一种芯片上电后的程序引导方法 |
CN1996251A (zh) * | 2007-01-04 | 2007-07-11 | 炬力集成电路设计有限公司 | 一种嵌入式系统的引导方法及装置 |
CN102081538A (zh) * | 2011-01-11 | 2011-06-01 | 上海华勤通讯技术有限公司 | 手机处理器兼容多种芯片的方法 |
CN102163158A (zh) * | 2011-04-29 | 2011-08-24 | 北京凡达讯科技有限公司 | 一种系统级芯片利用nand闪存启动的方法 |
Non-Patent Citations (2)
Title |
---|
《现代电子技术》 20080831 刘裕华等 《基于"Steppingstone"的Bootloader的设计与优化》 第98-99页,第102页 1-3 , 第16期 * |
刘裕华等: "《基于"Steppingstone"的Bootloader的设计与优化》", 《现代电子技术》 * |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103823664B (zh) * | 2012-11-19 | 2017-12-15 | 中兴通讯股份有限公司 | 一种二进制合一Boot程序及内核程序的设计方法 |
CN103823664A (zh) * | 2012-11-19 | 2014-05-28 | 中兴通讯股份有限公司 | 一种二进制合一Boot程序及内核程序的设计方法 |
US10318268B2 (en) | 2012-11-19 | 2019-06-11 | Zte Corporation | Setting method for binary integration of boot program and kernel program |
CN103077056B (zh) * | 2012-12-31 | 2015-12-23 | 中国电子科技集团公司第十五研究所 | 使用少量ROM资源的Bootlorder实现方法 |
CN103077056A (zh) * | 2012-12-31 | 2013-05-01 | 中国电子科技集团公司第十五研究所 | 使用少量ROM资源的Bootlorder实现方法 |
CN106158038A (zh) * | 2015-04-14 | 2016-11-23 | 飞思卡尔半导体公司 | 从非易失性存储器读取数据的方法 |
CN106158038B (zh) * | 2015-04-14 | 2021-03-09 | 恩智浦美国有限公司 | 从非易失性存储器读取数据的方法 |
CN106897623A (zh) * | 2015-12-21 | 2017-06-27 | 深圳市中兴微电子技术有限公司 | 一种支持多安全引导的芯片及其启动方法 |
CN109725939A (zh) * | 2017-10-27 | 2019-05-07 | 深圳市中兴微电子技术有限公司 | 一种芯片启动方法、芯片和计算机可读存储介质 |
CN108196869A (zh) * | 2017-12-21 | 2018-06-22 | 北京京存技术有限公司 | 一种emmc固件启动方法和装置 |
CN109739565A (zh) * | 2019-01-07 | 2019-05-10 | 深圳忆联信息系统有限公司 | 一种保证Bootrom正常运行的方法、装置、计算机设备及存储介质 |
CN109739565B (zh) * | 2019-01-07 | 2022-03-29 | 深圳忆联信息系统有限公司 | 一种保证Bootrom正常运行的方法、装置、计算机设备及存储介质 |
WO2021036404A1 (zh) * | 2019-08-31 | 2021-03-04 | 安徽寒武纪信息科技有限公司 | 数据传输方法及相关设备 |
US11934337B2 (en) | 2019-08-31 | 2024-03-19 | Anhui Cambricon Information Technology Co., Ltd. | Chip and multi-chip system as well as electronic device and data transmission method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102279763A (zh) | 一种bootrom的优化方法 | |
CN101650662B (zh) | 一种嵌入式系统的存储器件的固件启动及升级方法 | |
CN102945173B (zh) | 用户程序在线升级系统和升级方法 | |
CN101853692B (zh) | 具闪存测试功能的控制器及其储存系统与测试方法 | |
CN105760191A (zh) | 嵌入式系统设备程序烧写量产方法 | |
US9158476B2 (en) | Method for switching operation mode, memory controller and memory storage apparatus | |
CN106062882B (zh) | 用于数据储存装置的功率降保护 | |
CN101295255B (zh) | 固件更新系统及方法 | |
CN102446141B (zh) | 用于实现写保护控制的装置和方法 | |
CN101634960A (zh) | 一种修改bios参数及重新生成校验和的方法 | |
US7793004B2 (en) | Computer peripheral device implemented as optic storage device or/and removable disk by software emulation and implementing method thereof | |
US9552287B2 (en) | Data management method, memory controller and embedded memory storage apparatus using the same | |
CN102163155A (zh) | 存储设备的升级方法及升级控制装置 | |
WO2013096589A1 (en) | Auxiliary card initialization routine | |
CN101477838B (zh) | 一种与非快闪记忆体状态检测装置、系统及电子设备 | |
CN113377408A (zh) | 一种高可靠sram型fpga在线升级方法及系统 | |
CN101901158A (zh) | 固件更新方法和装置 | |
CN105468390A (zh) | Boot在线升级装置及方法 | |
US8595420B2 (en) | Method for dispatching and transmitting data streams between host system and memory storage apparatus having non-volatile memory and smart card chip, memory controller, and memory storage apparatus | |
CN101527161B (zh) | 一种快速烧写NAND flash的方法和装置 | |
CN102629212A (zh) | 一种基于j-link间接烧写程序到nandflash的方法 | |
CN107894899A (zh) | Rom程序升级系统及升级方法 | |
US20140059274A1 (en) | Flash memory controller, flash memory system, and flash memory control method | |
US20070162699A1 (en) | Apparatus for expanding storage capacity of memory card and operating method of memory card with the same | |
CN108052337A (zh) | 一种eMMC量产工具的固件升级方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20111214 |