基于主控芯片的NANDBOOT启动方法和装置与流程

文档序号:17441361发布日期:2019-04-17 04:48阅读:241来源:国知局
基于主控芯片的NAND BOOT启动方法和装置与流程

本发明涉及计算机设备技术领域,特别是涉及一种基于主控芯片的nandboot启动方法、装置、计算机设备和存储介质。



背景技术:

目前,主控芯片在使用nandboot方法启动过程中,主控芯片默认只能支持一种类型的nandflash颗粒启动,这种只适配一种颗粒的方法,严重影响了主控芯片的兼容性,特别是,当后期nandflash颗粒的参数发生变化时,主控芯片将无法兼容新的颗粒而面临淘汰。

在传统技术中,如图1所示,主控芯片启动时,直接运行主控芯片中固化好的nandflash参数,由于参数已经固定,所以当更改nandflash颗粒时,由于主控芯片无法适配nandflash颗粒,造成了主控芯片将无法使用nandboot功能。这种固定参数的nandboot方式使得主控芯片的兼容性大大降低。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种可以实现提高主控芯片nandboot的兼容性的基于主控芯片的nandboot启动方法、装置、计算机设备和存储介质。

一种基于主控芯片的nandboot启动方法,所述方法包括:

获取基于主控芯片的nandboot启动请求;

根据所述请求读取内部nandflash参数;

若所述内部nandflash参数不匹配,则根据所述主控芯片的gpio管脚选择与nandflash颗粒匹配的协议以及操作模式,并从外部读取nandflash参数;

运行所述从外部读取的nandflash参数;

若所述从外部读取的nandflash参数运行失败,则所述主控芯片重新training出匹配的nandflash参数,保存匹配的nandflash参数并加载boot文件运行。

在其中一个实施例中,在所述运行所述从外部读取的nandflash参数的步骤之后还包括:

判断所述从外部读取的nandflash参数运行成功是否成功;

若所述从外部读取的nandflash参数运行成功,则所述主控芯片加载boot文件运行。

在其中一个实施例中,在所述根据所述请求读取内部nandflash参数的步骤之后还包括:

判断所述内部nandflash参数是否匹配;

若所述内部nandflash参数匹配,则直接加载boot文件运行。

在其中一个实施例中,在所述判断所述内部nandflash参数是否匹配的步骤之后还包括:

若所述内部nandflash参数不匹配,则通过gpio管脚选择与nandflash颗粒适配的toggle或者onfi协议以及同步或者异步操作模式;

从外部读取nandflash参数。

一种基于主控芯片的nandboot启动装置,所述装置包括:

获取模块,所述获取模块用于获取基于主控芯片的nandboot启动请求;

第一读取模块,所述第一读取模块用于根据所述请求读取内部nandflash参数;

第二读取模块,所述第二读取模块用于若所述内部nandflash参数不匹配,则根据所述主控芯片的gpio管脚选择与nandflash颗粒匹配的协议以及操作模式,并从外部读取nandflash参数;

参数运行模块,所述参数运行模块用于运行所述从外部读取的nandflash参数;

参数匹配模块,所述参数匹配模块用于若所述从外部读取的nandflash参数运行失败,则所述主控芯片重新training出匹配的nandflash参数,保存匹配的nandflash参数并加载boot文件运行。

在其中一个实施例中,所述装置还包括第一判断模块,所述第一判断模块用于:

判断所述从外部读取的nandflash参数运行成功是否成功;

若所述从外部读取的nandflash参数运行成功,则所述主控芯片加载boot文件运行。

在其中一个实施例中,所述装置还包括第二判断模块,所述第二判断模块用于:

判断所述内部nandflash参数是否匹配;

若所述内部nandflash参数匹配,则直接加载boot文件运行。

在其中一个实施例中,所述第二判断模块还用于:

若所述内部nandflash参数不匹配,则通过gpio管脚选择与nandflash颗粒适配的toggle或者onfi协议以及同步或者异步操作模式;

从外部读取nandflash参数。

一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。

上述基于主控芯片的nandboot启动方法、装置、计算机设备和存储介质,首先获取基于主控芯片的nandboot启动请求;根据所述请求读取内部nandflash参数;若所述内部nandflash参数不匹配,则根据所述主控芯片的gpio管脚选择与nandflash颗粒匹配的协议以及操作模式,并从外部读取nandflash参数;运行所述从外部读取的nandflash参数;若所述从外部读取的nandflash参数运行失败,则所述主控芯片重新training出匹配的nandflash参数,保存匹配的nandflash参数并加载boot文件运行。本发明通过自动trainingnandflash参数的方法使得主控芯片的兼容性大大提高,能够适配多种类型和参数的nandflash颗粒,让主控芯片nandboot成功率更高。

附图说明

图1为传统技术中基于主控芯片的nandboot启动的应用环境图;

图2为一个实施例中基于主控芯片的nandboot启动方法的应用环境图;

图3为一个实施例中基于主控芯片的nandboot启动方法的流程示意图;

图4为另一个实施例中基于主控芯片的nandboot启动方法的流程示意图;

图5为一个实施例中在根据请求读取内部nandflash参数之后的步骤的流程示意图;

图6为一个实施例中主控芯片nandboot启动的工作流程图;

图7为一个实施例中基于主控芯片的nandboot启动装置的结构框图;

图8为另一个实施例中基于主控芯片的nandboot启动装置的结构框图;

图9为再一个实施例中基于主控芯片的nandboot启动装置的结构框图;

图10为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

如图2所示,本专利提出的基于主控芯片的nandboot启动方法的应用环境图。具体包括:主控芯片cpu,主控芯片可通过gpio管脚选择与nandflash颗粒适配的toggle或者onfi协议,同步或者异步操作模式;然后从外部读取nandflash参数以实现基于主控芯片的nandboot启动方法。

在一个实施例中,如图3所示,提供了一种基于主控芯片的nandboot启动方法应用于图2中的应用环境中,该方法包括:

步骤302,获取基于主控芯片的nandboot启动请求;

步骤304,根据请求读取内部nandflash参数;

步骤306,若内部nandflash参数不匹配,则根据主控芯片的gpio管脚选择与nandflash颗粒匹配的协议以及操作模式,并从外部读取nandflash参数;

步骤308,运行从外部读取的nandflash参数;

步骤310,若从外部读取的nandflash参数运行失败,则主控芯片重新training出匹配的nandflash参数,保存匹配的nandflash参数并加载boot文件运行。

具体地,当主控芯片启动时,主控芯片会读取固化好的nandflash参数,然后运行,如果失败则通过gpio管脚选择与nandflash颗粒适配的toggle或者onfi协议,同步或者异步操作模式;然后从外部读取nandflash参数,如果外部参数不匹配,则主控芯片自动training不同的参数去适配nandflash。当training出适当的参数时,将数据保存下来,当主控芯片下一次启动时,主控芯片能够根据gpio和从外部读取出的参数来快速适配nandflash颗粒。

在本实施例中,首先获取基于主控芯片的nandboot启动请求;根据请求读取内部nandflash参数;若内部nandflash参数不匹配,则根据主控芯片的gpio管脚选择与nandflash颗粒匹配的协议以及操作模式,并从外部读取nandflash参数;运行从外部读取的nandflash参数;若从外部读取的nandflash参数运行失败,则主控芯片重新training出匹配的nandflash参数,保存匹配的nandflash参数并加载boot文件运行。本实施例通过自动trainingnandflash参数的方法使得主控芯片的兼容性大大提高,能够适配多种类型和参数的nandflash颗粒,让主控芯片nandboot成功率更高。

在一个实施例中,参考图4,提供了一种基于主控芯片的nandboot启动方法,包括:

步骤402,获取基于主控芯片的nandboot启动请求;

步骤404,根据请求读取内部nandflash参数;

步骤406,若内部nandflash参数不匹配,则根据主控芯片的gpio管脚选择与nandflash颗粒匹配的协议以及操作模式,并从外部读取nandflash参数;

步骤408,运行从外部读取的nandflash参数;

步骤410,判断从外部读取的nandflash参数运行成功是否成功;若从外部读取的nandflash参数运行成功,则执行步骤412;若从外部读取的nandflash参数运行失败,则执行步骤414;

步骤412,主控芯片加载boot文件运行;

步骤414,主控芯片重新training出匹配的nandflash参数,保存匹配的nandflash参数并加载boot文件运行。

在本实施例中,当training出适当的参数时,将数据保存下来,当主控芯片下一次启动时,主控芯片能够根据gpio和从外部读取出的参数来快速适配nandflash颗粒。

在一个实施例中,参考图5,提供了一种基于主控芯片的nandboot启动方法,其中在根据请求读取内部nandflash参数的步骤之后还包括:

步骤502,判断内部nandflash参数是否匹配;若内部nandflash参数匹配,则执行步骤504;若内部nandflash参数不匹配,则执行步骤506;

步骤504,直接加载boot文件运行;

步骤506,通过gpio管脚选择与nandflash颗粒适配的toggle或者onfi协议以及同步或者异步操作模式,从外部读取nandflash参数。

具体地,参考图6,图6为一个完整的基于主控芯片的nandboot启动流程图,包括:主控芯片启动,读取内部的nandflash参数。参数匹配成功,则运行加载boot文件。参数匹配失败,则根据主控芯片的gpio管脚选择toggle/onfi,同步/异步协议。然后,读取外部保存的nandflash颗粒的参数。运行,看能否成功运行。若运行成功,主控芯片读取boot文件运行。若运行失败,则主控芯片重新training出新的nandflash的参数,保存参数,并加载boot文件运行。

在本实施例中,实现了多种nandflash颗粒的适配,这种方式使得主控芯片的能够兼容性更强。

应该理解的是,虽然图3-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3-6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图7所示,提供了一种基于主控芯片的nandboot启动装置700,该装置包括:

获取模块701,用于获取基于主控芯片的nandboot启动请求;

第一读取模块702,用于根据请求读取内部nandflash参数;

第二读取模块703,用于若内部nandflash参数不匹配,则根据主控芯片的gpio管脚选择与nandflash颗粒匹配的协议以及操作模式,并从外部读取nandflash参数;

参数运行模块704,用于运行从外部读取的nandflash参数;

参数匹配模块705,用于若从外部读取的nandflash参数运行失败,则主控芯片重新training出匹配的nandflash参数,保存匹配的nandflash参数并加载boot文件运行。

在一个实施例中,如图8所示,提供了一种基于主控芯片的nandboot启动装置700,该装置还包括:第一判断模块706用于:

判断从外部读取的nandflash参数运行成功是否成功;

若从外部读取的nandflash参数运行成功,则主控芯片加载boot文件运行。

在一个实施例中,如图9所示,提供了一种基于主控芯片的nandboot启动装置700,该装置还包括:第二判断模块707用于:

判断内部nandflash参数是否匹配;

若内部nandflash参数匹配,则直接加载boot文件运行。

在一个实施例中,第二判断模块707还用于:

若内部nandflash参数不匹配,则通过gpio管脚选择与nandflash颗粒适配的toggle或者onfi协议以及同步或者异步操作模式;

从外部读取nandflash参数。

关于基于主控芯片的nandboot启动装置700的具体限定可以参见上文中对于基于主控芯片的nandboot启动方法的限定,在此不再赘述。

在一个实施例中,提供了一种计算机设备,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于主控芯片的nandboot启动方法。

本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1