CN102279763A - 一种bootrom的优化方法 - Google Patents

一种bootrom的优化方法 Download PDF

Info

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
Application number
CN2011102546825A
Other languages
English (en)
Inventor
林学善
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fuzhou Rockchip Electronics Co Ltd
Original Assignee
Fuzhou Rockchip Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fuzhou Rockchip Electronics Co Ltd filed Critical Fuzhou Rockchip Electronics Co Ltd
Priority to CN2011102546825A priority Critical patent/CN102279763A/zh
Publication of CN102279763A publication Critical patent/CN102279763A/zh
Pending legal-status Critical Current

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的优化方法。
【背景技术】
现有的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连接,若无结束标志则表明代码不完整。
CN2011102546825A 2011-08-30 2011-08-30 一种bootrom的优化方法 Pending CN102279763A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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闪存启动的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
《现代电子技术》 20080831 刘裕华等 《基于"Steppingstone"的Bootloader的设计与优化》 第98-99页,第102页 1-3 , 第16期 *
刘裕华等: "《基于"Steppingstone"的Bootloader的设计与优化》", 《现代电子技术》 *

Cited By (14)

* Cited by examiner, † Cited by third party
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