一种BOOTROM的优化方法技术

技术编号:6952901 阅读:698 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种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的兼容性差,多种引导方式需采用跳线选择的问题。

【技术实现步骤摘要】
一种B00TR0M的优化方法
本专利技术涉及一种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或OxfT,则没有接NAND FLASH,直接转到步骤50,如果读取到可以识别的ID则转入步骤20,如果读取到不可以识别的ID则转入步骤30 ;步骤20、使用读取到的ID的物理参数读取第一个BLOCK(块,NAND FLASH的擦除单位)的头信息数据,对读取到头信息数据进行校验,判断是否是所需的引导代码数据组织结构,若是则在该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 ;既保证芯片稳定可靠,不需要在B00TR0M里跑高频、去初始化各种SDRAM/DDR SDRAM,也不需要更大的片内SRAM来存放 loader代码,又能增加各种灵活性及引导速度;本专利技术对NAND FLASH作各种物理参数的探测,大大提高兼容性,新推出的NAND FLASH可以不用修改B00TR0M里的驱动代码,不用修改芯片的成本及加快芯片上市的时间。附图说明下面参照附图结合实施例对本专利技术作进一步的说明。图1为本专利技术方法流程示意图。图2为本专利技术的模块示意框图。具体实施方式请参阅图1、图2所示,对本专利技术的实施例进行详细的说明。如图1、图2,本专利技术方法具体包括如下步骤步骤10、芯片复位后用低频宽时序读取NAND FLASH的ID,因为低频保证了芯片的稳定性,宽时序满足所有NAND FLASH时序的要求。如果读取到的NAND FLASH的厂商ID和器件ID都是0x00或Oxff,则没有接NAND FLASH,直接转到步骤50,如果读取到可以识别的ID则转入步骤20,如果读取到不可以识别的ID则转入步骤30 (因为NAND FLASH的读ID命令是0x90 (命令),0x00 (地址),如果没有外接NAND FLASH,那读到的数据是数据总线最后发出的数据即0x00,由于NAND FLASH的厂商ID和器件ID都不会是0x00或Oxff,所以判断当读到的厂商ID及器件ID都是0x00 或Oxff时,即可确定没有外接NAND FLASH)。步骤20、使用读取到的ID的物理参数读取第一个BLOCK的头信息数据,所述ID的物理参数包括1/0宽度、PAGE大小、BLOCK大小、命令及地址、ECC(small page 的用8bit/5^B、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、按如下本文档来自技高网...

【技术保护点】
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建立连接,任意一个端口有合法有效的升级请求,则转入该端口的引导模式。...

【技术特征摘要】
1.一种B00TR0M的优化方法,其特征在于,具体包括如下步骤步骤10、芯片复位后用低频宽时序读取NAND FLASH的ID,如果读取到的NAND FLASH 的厂商ID和器件ID都是0x00或OxfT,则没有接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...

【专利技术属性】
技术研发人员:林学善
申请(专利权)人:福州瑞芯微电子有限公司
类型:发明
国别省市:35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1