CN105912332B - 一种bootrom代码的兼容方法及设备 - Google Patents

一种bootrom代码的兼容方法及设备 Download PDF

Info

Publication number
CN105912332B
CN105912332B CN201610220249.2A CN201610220249A CN105912332B CN 105912332 B CN105912332 B CN 105912332B CN 201610220249 A CN201610220249 A CN 201610220249A CN 105912332 B CN105912332 B CN 105912332B
Authority
CN
China
Prior art keywords
value
stepped
chip
module
sampled point
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.)
Active
Application number
CN201610220249.2A
Other languages
English (en)
Other versions
CN105912332A (zh
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.)
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 CN201610220249.2A priority Critical patent/CN105912332B/zh
Publication of CN105912332A publication Critical patent/CN105912332A/zh
Application granted granted Critical
Publication of CN105912332B publication Critical patent/CN105912332B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)

Abstract

本发明提供一种bootrom代码的兼容方法,包括步骤1、bootrom代码初始化存储器,若成功,退出;若失败,进入步骤2;步骤2、逐步增加采样点的数值,每增加一次数值均执行一次初始化,若成功,退出;若遍历所有采样点均失败,进入步骤3;步骤3、逐步降低输出的同步时钟,同步时钟每降低一个粒度均返回执行一次步骤2;若同步时钟降低至最低阈值仍失败,进入步骤4;步骤4、逐步增加电阻的电压值,每增加一次电压值均返回执行一次步骤2至步骤3;若电压值增加至电压上限仍失败,下电判定失败。本发明优点:可以大大提高bootrom代码对外部存储器件进行layout(初始化)的兼容性,从而最大程度上提高存储器件初始化成功的几率。

Description

一种bootrom代码的兼容方法及设备
技术领域
本发明涉及一种bootrom代码的兼容方法及设备。
背景技术
bootrom是一段固化在芯片内部且不可修改的代码,它的作用是初始化芯片的CPU和存储器件,并从存储器件中读取内存初始化代码来引导后续的系统运行。由此可知bootrom代码对整个芯片系统的运行起着至关重要的作用,如果bootrom代码初始化存储器件失败的话,那么整个芯片系统都将无法运行。由于bootrom代码属于固化不可修改的代码,且现有的bootrom代码在运行时,存储器件以及外围电路的兼容性都比较差,因此经常会碰到芯片系统无法运行的情况。
发明内容
本发明要解决的技术问题之一,在于提供一种bootrom代码的兼容方法,通过该方法来提高bootrom代码对外部存储器件进行初始化的兼容性,从而在最大程度上提高存储器件初始化成功的几率。
本发明是这样实现技术问题之一的:一种bootrom代码的兼容方法,所述方法包括如下步骤:
步骤10、bootrom代码初始化芯片的存储器,若初始化成功,则退出;若初始化失败,则进入步骤20;
步骤20、逐步增加配置的采样点的数值,且每增加一次数值均执行一次初始化存储器操作,若初始化成功,则退出;若遍历所有采样点均初始化失败,则进入步骤30;
步骤30、逐步降低输出的同步时钟,且同步时钟每降低一个粒度,均返回执行一次步骤20;若将同步时钟降低至最低阈值仍初始化失败,则进入步骤40;
步骤40、逐步增加电阻的电压值,且每增加一次电压值,均返回执行一次步骤20至步骤30;若将电压值增加至电压上限仍初始化失败,则下电判定初始化失败。
进一步地,所述“逐步增加配置的采样点的数值”具体为:通过芯片的采样点读取和配置单元读取芯片内部默认配置的采样点初始相位值,逐步增加配置的采样点的相位值。
进一步地,所述“逐步降低输出的同步时钟”具体为:通过芯片的时钟降频单元逐步降低存储控制器输出的同步时钟。
进一步地,所述“逐步增加电阻的电压值”具体为:通过芯片的加压升温单元逐步增加采样电路中电阻的电压值。
本发明要解决的技术问题之二,在于提供一种bootrom代码的兼容系统,通过该系统来提高bootrom代码对外部存储器件进行初始化的兼容性,从而在最大程度上提高存储器件初始化成功的几率。
本发明是这样实现技术问题之二的:一种bootrom代码的兼容系统,所述系统包括:初始化模块、采样值增加模块、降频模块以及增压模块;
所述初始化模块,用于bootrom代码初始化芯片的存储器,若初始化成功,则退出;若初始化失败,则进入所述采样值增加模块;
所述采样值增加模块,用于逐步增加配置的采样点的数值,且每增加一次数值均执行一次初始化存储器操作,若初始化成功,则退出;若遍历所有采样点均初始化失败,则进入所述降频模块;
所述降频模块,用于逐步降低输出的同步时钟,且同步时钟每降低一个粒度,均返回执行一次所述采样值增加模块;若将同步时钟降低至最低阈值仍初始化失败,则进入所述增压模块;
所述增压模块,用于逐步增加电阻的电压值,且每增加一次电压值,均返回执行一次所述采样值增加模块至所述降频模块;若将电压值增加至电压上限仍初始化失败,则下电判定初始化失败。
进一步地,所述“逐步增加配置的采样点的数值”具体为:通过芯片的采样点读取和配置单元读取芯片内部默认配置的采样点初始相位值,逐步增加配置的采样点的相位值。
进一步地,所述“逐步降低输出的同步时钟”具体为:通过芯片的时钟降频单元逐步降低存储控制器输出的同步时钟。
进一步地,所述“逐步增加电阻的电压值”具体为:通过芯片的加压升温单元逐步增加采样电路中电阻的电压值。
本发明具有如下优点:通过将本发明应用到bootrom代码对存储器件的初始化中去,可以大大提高bootrom代码对外部存储器件进行layout(初始化)的兼容性,从而最大程度上提高存储器件初始化成功的几率,即可以最大程度上提高芯片系统正常运行的几率。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明中需要使用到的芯片的硬件结构图。
图2为本发明bootrom代码的兼容方法的流程框图。
图3为本发明bootrom代码的兼容系统的结构框图。
具体实施方式
请参照图1所示,本发明一种bootrom代码的兼容方法,该方法需要使用的芯片18的硬件结构包括CPU12、存储控制器13、存储器14、采样点读取和配置单元15、时钟降频单元16以及加压升温单元17;其中,存储控制器13与CPU12相连接,存储器14与存储控制器13相连接,采样点读取和配置单元15、时钟降频单元16以及加压升温单元17均与CPU12相连接。请参照图2所示,所述方法包括如下步骤:
步骤21、在bootrom代码11初始化CPU12后,bootrom代码11利用存储控制器13初始化芯片18的存储器14(在实施时,bootrom代码11会配置存储控制器13,使存储控制器13产生命令序列对存储器14进行配置,以使存储器14进入初始化模式,存储器14初始化完成后,就可以对其进行读写操作),若初始化成功,则退出;若初始化失败,则进入步骤22;
步骤22、逐步增加配置的采样点的数值,且每增加一次数值均执行一次初始化存储器14操作,若初始化成功,则退出;若遍历所有采样点均初始化失败,则进入步骤23;其中,所述“逐步增加配置的采样点的数值”具体为:通过芯片18的采样点读取和配置单元15读取芯片18内部默认配置的采样点初始相位值,逐步增加配置的采样点的相位值。
在实施时,例如,采样点读取和配置单元15读取的芯片18内部默认配置的采样点初始相位值为50,此时就可以将采样点的相位值修改为51,并继续执行对存储器14的初始化操作,若初始化成功,则退出;若初始化失败,则将采样点的相位值修改为52,并接着执行对存储器14的初始化操作;如此一个采样点一个采样点的尝试下去,若有尝试成功,则退出;若遍历所有采样点(256个)均尝试失败,则进入步骤23。
步骤23、逐步降低输出的同步时钟,且同步时钟每降低一个粒度,均返回执行一次步骤22,即每将同步时钟降低一个粒度时,都会返回步骤22遍历所有的采样点和执行初始化操作,且在遍历的过程中,若有遇到初始化成功的采样点,则退出;若没有,则继续降低输出的同步时钟。若将同步时钟降低至最低阈值仍初始化失败,则进入步骤24;其中,所述“逐步降低输出的同步时钟”具体为:通过芯片18的时钟降频单元16逐步降低存储控制器13输出的同步时钟。
步骤24、逐步增加电阻的电压值,且每增加一次电压值(每次增加的数值可以根据实际使用需要进行设置),均返回执行一次步骤22至步骤23;若将电压值增加至电压上限仍初始化失败,则下电判定初始化失败;其中,所述“逐步增加电阻的电压值”具体为:通过芯片18的加压升温单元17逐步增加采样电路中电阻的电压值。
在实施时,例如,在每将采样电路中电阻的电压值增加0.1V后,都会先返回步骤22遍历所有的采样点和执行初始化操作,且在遍历所有采样点的过程中,若有遇到初始化成功的采样点,则退出;若没有,则继续执行步骤23;在执行步骤23时,同样是每将同步时钟降低一个粒度时,都会返回步骤22遍历所有的采样点和执行初始化操作,且在遍历的过程中,若有遇到初始化成功的采样点,则退出;若没有,则继续降低输出的同步时钟,直到将同步时钟降低至最低阈值。如果将采样电路中电阻的电压值增加电压上限(如80V)仍初始化失败,则说明该芯片18存在重大的设计缺陷,此时直接下电并判定初始化失败。
请参照图1所示,本发明一种bootrom代码的兼容系统,该系统需要使用的芯片18的硬件结构包括CPU12、存储控制器13、存储器14、采样点读取和配置单元15、时钟降频单元16以及加压升温单元17;其中,存储控制器13与CPU12相连接,存储器14与存储控制器13相连接,采样点读取和配置单元15、时钟降频单元16以及加压升温单元17均与CPU12相连接。请参照图3所示,所述系统包括:初始化模块31、采样值增加模块32、降频模块33以及增压模块34;
所述初始化模块31,用于在bootrom代码11初始化CPU12后,bootrom代码11利用存储控制器13初始化芯片18的存储器14,若初始化成功,则退出;若初始化失败,则进入所述采样值增加模块32;
所述采样值增加模块32,用于逐步增加配置的采样点的数值,且每增加一次数值均执行一次初始化存储器14操作,若初始化成功,则退出;若遍历所有采样点均初始化失败,则进入所述降频模块33;其中,所述“逐步增加配置的采样点的数值”具体为:通过芯片18的采样点读取和配置单元15读取芯片18内部默认配置的采样点初始相位值,逐步增加配置的采样点的相位值。
在实施时,例如,采样点读取和配置单元15读取的芯片18内部默认配置的采样点初始相位值为15,此时就可以将采样点的相位值修改为16,并继续执行对存储器14的初始化操作,若初始化成功,则退出;若初始化失败,则将采样点的相位值修改为17,并接着执行对存储器14的初始化操作;如此一个采样点一个采样点的尝试下去,若有尝试成功,则退出;若遍历所有采样点(256个)均尝试失败,则进入降频模块33;
所述降频模块33,用于逐步降低输出的同步时钟,且同步时钟每降低一个粒度,均返回执行一次所述采样值增加模块32,即每将同步时钟降低一个粒度时,都会返回所述采样值增加模块32遍历所有的采样点和执行初始化操作,且在遍历的过程中,若有遇到初始化成功的采样点,则退出;若没有,则继续降低输出的同步时钟。若将同步时钟降低至最低阈值仍初始化失败,则进入所述增压模块34;其中,所述“逐步降低输出的同步时钟”具体为:通过芯片18的时钟降频单元16逐步降低存储控制器13输出的同步时钟。
所述增压模块34,用于逐步增加电阻的电压值,且每增加一次电压值,均返回执行一次所述采样值增加模块32至所述降频模块33;若将电压值增加至电压上限仍初始化失败,则下电判定初始化失败;其中,所述“逐步增加电阻的电压值”具体为:通过芯片18的加压升温单元17逐步增加采样电路中电阻的电压值。
在实施时,例如,在每将采样电路中电阻的电压值增加0.2V后,都会先返回所述采样值增加模块32遍历所有的采样点和执行初始化操作,且在遍历所有采样点的过程中,若有遇到初始化成功的采样点,则退出;若没有,则继续执行所述降频模块33;在执行所述降频模块33时,同样是每将同步时钟降低一个粒度时,都会返回所述采样值增加模块32遍历所有的采样点和执行初始化操作,且在遍历的过程中,若有遇到初始化成功的采样点,则退出;若没有,则继续降低输出的同步时钟,直到将同步时钟降低至最低阈值。如果将采样电路中电阻的电压值增加电压上限(如85V)仍初始化失败,则说明该芯片18存在重大的设计缺陷,此时直接下电并判定初始化失败。
综上所述,通过将本发明应用到bootrom代码对存储器件的初始化中去,可以大大提高bootrom代码对外部存储器件进行layout(初始化)的兼容性,从而最大程度上提高存储器件初始化成功的几率,即可以最大程度上提高芯片系统正常运行的几率。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。

Claims (8)

1.一种bootrom代码的兼容方法,其特征在于:包括如下步骤:
步骤10、bootrom代码初始化芯片的存储器,若初始化成功,则退出;若初始化失败,则进入步骤20;
步骤20、逐步增加芯片内部默认配置的采样点的数值,且每增加一次数值均执行一次初始化存储器操作,若初始化成功,则退出;若遍历所有采样点均初始化失败,则进入步骤30;
步骤30、逐步降低存储控制器输出的同步时钟,且同步时钟每降低一个粒度,均返回执行一次步骤20;若将同步时钟降低至最低阈值仍初始化失败,则进入步骤40;
步骤40、逐步增加采样电路中电阻的电压值,且每增加一次电压值,均返回执行一次步骤20至步骤30;若将电压值增加至电压上限仍初始化失败,则下电判定初始化失败。
2.根据权利要求1所述的一种bootrom代码的兼容方法,其特征在于:所述“逐步增加芯片内部默认配置的采样点的数值”具体为:通过芯片的采样点读取和配置单元读取芯片内部默认配置的采样点初始相位值,逐步增加配置的采样点的相位值。
3.根据权利要求1所述的一种bootrom代码的兼容方法,其特征在于:所述“逐步降低存储控制器输出的同步时钟”具体为:通过芯片的时钟降频单元逐步降低存储控制器输出的同步时钟。
4.根据权利要求1所述的一种bootrom代码的兼容方法,其特征在于:所述“逐步增加采样电路中电阻的电压值”具体为:通过芯片的加压升温单元逐步增加采样电路中电阻的电压值。
5.一种bootrom代码的兼容系统,其特征在于:包括初始化模块、采样值增加模块、降频模块以及增压模块;
所述初始化模块,用于bootrom代码初始化芯片的存储器,若初始化成功,则退出;若初始化失败,则进入所述采样值增加模块;
所述采样值增加模块,用于逐步增加芯片内部默认配置的采样点的数值,且每增加一次数值均执行一次初始化存储器操作,若初始化成功,则退出;若遍历所有采样点均初始化失败,则进入所述降频模块;
所述降频模块,用于逐步降低存储控制器输出的同步时钟,且同步时钟每降低一个粒度,均返回执行一次所述采样值增加模块;若将同步时钟降低至最低阈值仍初始化失败,则进入所述增压模块;
所述增压模块,用于逐步增加采样电路中电阻的电压值,且每增加一次电压值,均返回执行一次所述采样值增加模块至所述降频模块;若将电压值增加至电压上限仍初始化失败,则下电判定初始化失败。
6.根据权利要求5所述的一种bootrom代码的兼容系统,其特征在于:所述“逐步增加芯片内部默认配置的采样点的数值”具体为:通过芯片的采样点读取和配置单元读取芯片内部默认配置的采样点初始相位值,逐步增加配置的采样点的相位值。
7.根据权利要求5所述的一种bootrom代码的兼容系统,其特征在于:所述“逐步降低存储控制器输出的同步时钟”具体为:通过芯片的时钟降频单元逐步降低存储控制器输出的同步时钟。
8.根据权利要求5所述的一种bootrom代码的兼容系统,其特征在于:所述“逐步增加采样电路中电阻的电压值”具体为:通过芯片的加压升温单元逐步增加采样电路中电阻的电压值。
CN201610220249.2A 2016-04-11 2016-04-11 一种bootrom代码的兼容方法及设备 Active CN105912332B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610220249.2A CN105912332B (zh) 2016-04-11 2016-04-11 一种bootrom代码的兼容方法及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610220249.2A CN105912332B (zh) 2016-04-11 2016-04-11 一种bootrom代码的兼容方法及设备

Publications (2)

Publication Number Publication Date
CN105912332A CN105912332A (zh) 2016-08-31
CN105912332B true CN105912332B (zh) 2018-12-18

Family

ID=56744955

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610220249.2A Active CN105912332B (zh) 2016-04-11 2016-04-11 一种bootrom代码的兼容方法及设备

Country Status (1)

Country Link
CN (1) CN105912332B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109857469B (zh) * 2019-01-15 2022-07-08 Oppo广东移动通信有限公司 显示屏控制方法及相关产品
CN111145699A (zh) * 2019-12-26 2020-05-12 深圳市华星光电半导体显示技术有限公司 代码读取方法、时序控制器和计算机可读存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9870233B2 (en) * 2010-05-28 2018-01-16 Hewlett Packard Enterprise Development Lp Initializing a memory subsystem of a management controller
US8601248B2 (en) * 2011-03-28 2013-12-03 Western Digital Technologies, Inc. Disk drive booting from volatile semiconductor memory when exiting power save mode
CN105159716B (zh) * 2015-09-02 2019-05-21 福州瑞芯微电子股份有限公司 一种存储器件初始化方法和电子设备

Also Published As

Publication number Publication date
CN105912332A (zh) 2016-08-31

Similar Documents

Publication Publication Date Title
CN105404538B (zh) 一种fpga的加载和升级目标代码的装置及方法
CN105912332B (zh) 一种bootrom代码的兼容方法及设备
CN109783434A (zh) 低代价高可靠的星载单机多片sram型fpga在轨重构系统及方法
CN109388813A (zh) 一种构建用于集成电路设计的时钟树的方法及装置
CN106598564A (zh) 一种自适应不同主板的bios实现方法、bios及主板
CN109033540B (zh) 一种芯片随机验证过程中的激励管理方法及系统
CN104102600B (zh) 存储器控制器
CN106201605B (zh) 基于FPGA和PowerPC的FPGA启动加载FLASH升级系统及方法
CN109271178A (zh) 一种基于Whitley平台实现CPLD升级的方法和系统
CN106716840A (zh) 利用微译码定序器的模/数转换
CN108062267A (zh) 一种可配置寄存器文件自测试方法及生成装置
CN105069256A (zh) 一种基于tmr的实现和故障注入仿真平台及仿真方法
CN105095040A (zh) 一种芯片调试方法与装置
CN104216829B (zh) 一种嵌入式模块并发测试的方法及系统
CN109273039A (zh) 一种闪存器的擦除验证设备和方法
CN117079700A (zh) 基于ufs存储设备的多状态性能测试方法和装置
CN106384605B (zh) 一种低功耗非易失性电子可编程存储器
CN103870617A (zh) 低频芯片自动布局布线方法
CN105513636B (zh) 一种编程监控的装置
CN106205722A (zh) 一种非易失性存储器的恢复方法和装置
CN110308953A (zh) 基于32位mcu主控的rom代码函数修改方法
CN106571156B (zh) 一种高速读写ram的接口电路及方法
CN109753384A (zh) 云主机的快照备份方法、装置、计算机设备和存储介质
CN109390016A (zh) Nor型闪存的擦除方法及装置
CN103419201B (zh) 基于fpga的多指节机器人控制系统及其控制方法

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
CP01 Change in the name or title of a patent holder

Address after: 350000 building, No. 89, software Avenue, Gulou District, Fujian, Fuzhou 18, China

Patentee after: Ruixin Microelectronics Co., Ltd

Address before: 350000 building, No. 89, software Avenue, Gulou District, Fujian, Fuzhou 18, China

Patentee before: Fuzhou Rockchips Electronics Co.,Ltd.

CP01 Change in the name or title of a patent holder