一种芯片启动方法及存储介质与流程

文档序号:23669000发布日期:2021-01-15 14:09阅读:120来源:国知局
一种芯片启动方法及存储介质与流程

本发明涉及芯片设备领域,尤其涉及一种芯片快速启动方法及存储介质。



背景技术:

随着技术的更新升级,spinorflash从1线的数据模式发展到支持2线,4线的数据传输模式,传输速度大大提升。早期的spinorflash1线数据模式,各个spinorflash厂商传输协议是兼容的。但是发展到4线模式后,启用4线传输模式协议各个厂商是不兼容的,甚至同一厂商不同的颗粒型号也不兼容。这给soc芯片的bootrom程序支持4线传输模式实现快速启动带来了极大的困难。bootrom程序是固化在soc芯片上,soc芯片上电启动最早执行的不可更改的一段代码。专利文件201611064399.5公开了单spi闪存的快速启动方法,专利文件201910133756.6公开了一种fpga电路启动控制的方法。他们都无法解决提供4线模式下的便捷启动方法的问题。

不同spinorflash颗粒型号启用4线传输模式主要有两种方式:(1)使用新的读命令来启用4线传输模式,不同颗粒的4线读命令可能不一样;(2)配置状态寄存器中的qe比特。若使用第2方式配置状态寄存器时序就有3种,配置状态寄存器和qe比特位置就有很多种组合。且新的颗粒型号这些信息很可能还会发生变化。由于上述原因决定了不可更改的bootrom程序很难兼容新的颗粒的4线传输模式以及采用探测的方式实现4线传输模式。现有的soc芯片为了保证spinorflash不同厂商不同颗粒型号兼容和支持,bootrom程序就只支持1线数据传输模式。这样在soc芯片启动的最早阶段无法利用到spinorflash4线模式的高速传输。



技术实现要素:

为此,需要提供一种芯片快速启动的方法,能够通过一个默认的流程兼容市面上所有的子闪存设备的效果;

为实现上述目的,发明人提供了一种芯片快速启动方法,在检测到芯片内的闪存需要以四线启动模式启动时,通过单线模式从闪存中读取固件头文件,检测固件头文件中是否存在关于启动模式的配置信息,若存在则加载四线启动模式的配置信息,采用四线模式进行芯片的快速启动;所述四线模式进行芯片的快速启动具体为分别采用第一子模式、第二子模式或第三子模式进行尝试:

所述第一子模式包括时序1.1:bootrom程序发05h命令读配置寄存器0(s7~s0),发35h命令读配置寄存1(s15~s8);时序1.2:bootrom程序发01h命令同时写配置寄存器0和配置寄存器1。

所述第二子模式包括时序2.1:bootrom程序发15h命令同时读配置寄存器0配置寄存1;时序2.2:bootrom发01h命令同时写配置寄存器0和配置寄存器1;

所述第三子模式包括时序3.1:bootrom程序发分别发05h、35h、15h命令分别读配置寄存器0、配置寄存1、配置寄存2;时序3.2:bootrom程序分别发01h、31h、11h命令分别写配置寄存器0、配置寄存器1、配置寄存器2;

具体地,还包括步骤,配置时序信息,配置寄存器信息和配置qe比特位置信息。

进一步地,还包括步骤,将配置时序信息、配置寄存器信息和配置qe比特位置信息预存储在固件头文件中。

具体地,芯片中的闪存类型为spinorflash。

一种芯片快速启动存储介质,所述存储介质在被运行时执行如下步骤:在检测到需要以四线启动模式启动时,通过单线模式从闪存中读取固件头文件,检测固件头文件中是否存在关于启动模式的配置信息,若存在则加载四线启动模式的配置信息,采用四线模式进行芯片的快速启动;所述四线模式进行芯片的快速启动具体为分别采用第一子模式、第二子模式或第三子模式进行尝试:

所述第一子模式包括时序1.1:bootrom程序发05h命令读配置寄存器0(s7~s0),发35h命令读配置寄存1(s15~s8);时序1.2:bootrom程序发01h命令同时写配置寄存器0和配置寄存器1;

所述第二子模式包括时序2.1:bootrom程序发15h命令同时读配置寄存器0配置寄存1;时序2.2:bootrom发01h命令同时写配置寄存器0和配置寄存器1;

所述第三子模式包括时序3.1:bootrom程序发分别发05h、35h、15h命令分别读配置寄存器0、配置寄存1、配置寄存2;时序3.2:bootrom程序分别发01h、31h、11h命令分别写配置寄存器0、配置寄存器1、配置寄存器2。

具体地,所述存储介质在被运行时还执行包括步骤,

配置时序信息,配置寄存器信息和配置qe比特位置信息。

具体地,所述存储介质在被运行时还执行包括步骤,将配置时序信息、配置寄存器信息和配置qe比特位置信息预存储在固件头文件中。

具体地,芯片中的闪存类型为spinorflash。

我们在实际应用过程中,发现市售的芯片在闪存启动的问题上,没有能够通用的兼容四线模式启动的方法,不同厂家之间的启动方式各不相同。在我们的技术方案中,通过寻找市面上的一百多种闪存的特点,设计了三组默认的启动方式,市售的任意闪存都能够通过其中至少一种方式进行四线模式的启动。最终达到了芯片无论匹配何种闪存都能够快速启动的技术效果。

附图说明

图1为本发明一实施方式所述的芯片快速启动方法流程图;

图2a为本发明一实施方式所述的第一子模式时序示意图;

图2b为本发明一实施方式所述的第一子模式时序示意图;

图2c为本发明一实施方式所述的第一子模式时序示意图;

图3为本发明另一实施方式所述的bootrom快速启动流程图;

图4为本发明另一实施方式所述的bootrom程序启用4线模式解析配置软件流程图。

具体实施方式

为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。

这里请看图1,我们的方案介绍一种芯片快速启动方法,可以开始于步骤s102在检测到芯片内的闪存需要以四线启动模式启动时,通过单线模式从闪存中读取固件头文件,再进行s103检测固件头文件中是否存在关于启动模式的配置信息,若存在则s104加载四线启动模式的配置信息,采用四线模式进行芯片的快速启动;在这里,四线模式进行芯片的启动具体为分别采用第一子模式、第二子模式或第三子模式进行尝试。在实际应用中,实验证明市售的若干闪存能够通过上述方式中的至少一种模式自动进行配置。

在具体的实施例中,这里请看图2a-2c,在图2a中所述第一子模式包括时序1.1:bootrom程序发05h命令读配置寄存器0(s7~s0),发35h命令读配置寄存1(s15~s8);时序1.2:bootrom程序发01h命令同时写配置寄存器0和配置寄存器1。

在图2b所示的实施例中,第二子模式包括时序2.1:bootrom程序发15h命令同时读配置寄存器0配置寄存1;时序2.2:bootrom发01h命令同时写配置寄存器0和配置寄存器1。

在图2c所示的实施例中,所述第三子模式包括时序3.1:bootrom程序发分别发05h、35h、15h命令分别读配置寄存器0、配置寄存1、配置寄存2;时序3.2:bootrom程序分别发01h、31h、11h命令分别写配置寄存器0、配置寄存器1、配置寄存器2。

市售的一百多种闪存均能够适应上述四线模式启动的方案,因此,我们的方案通过设计三种子模式进行配置,能够达到配置不同芯片的闪存均得到兼容的技术效果。

在其他一些进一步的实施例中,还包括步骤,s101将配置时序信息、配置寄存器信息和配置qe比特位置信息预存储在固件头文件中。例如可以根据颗粒型号的datasheet,将spinorflash启用4线传输模式的配置时序,配置寄存器,配置比特位置的相关信息在固件打包阶段或固件烧写阶段写入固件头里面。固件和固件头烧写到spinorflash上。通过将配置时序信息、配置寄存器信息和配置qe比特位置信息进行预存储,能够提升配置速度。还包括步骤,配置时序信息,配置寄存器信息和配置qe比特位置信息。小部分norflash颗粒不需要配置寄存器来启用4线模式,只需切换城4线读命令来启用4线模式。bootrom程序则根据步骤103读取的读命令相关信息切换成4线读命令。若需要配置寄存器来切换成4线模式。大部分颗粒需要配置寄存器来启用4线模式。对于需要配置寄存器来切换4线模式的颗粒,bootrom程序根据步骤3读取的配置时序信息选择相应时序的配置程序。bootrom程序配置4线过程需要先读取norflash颗粒相关的配置寄存器,修改相关的比特位后再写入norflash颗粒。

下面请看图3,在bootrom程序完成步骤s103-s104后,检查相关寄存器配置或读命令切换成功后,bootrom程序就能用4线模式快速读取固件,从而实现soc芯片的快速启动。bootrom快速启动流程图参见图3。图4还展示了bootrom程序启用4线模式解析配置软件流程图。在图4所示的实施例中,软件解析配置进行如下步骤:判断是否用新的4线读命令启用4线模式。这里的新的4线读命令指的是区别于图2中所示的默认配置程序的,专用于驱动该特定芯片的读命令。判断为是则获取新的4线读命令,spinorflash驱动使用新的读命令就可以启用4线传输模式。否则判断是否需要配置qe使能4线模式,判断为否则保持1线传输模式,是则获取配置时序信息,配置寄存器和qe比特位置信息,不同的配置时序调用相应的状态写函数,状态写函数根据寄存器和qe比特位置信息,将相应的比特置1,就成功启用4线模式。

一种芯片快速启动存储介质,所述存储介质在被运行时执行如下步骤:在检测到需要以四线启动模式启动时,通过单线模式从闪存中读取固件头文件,检测固件头文件中是否存在关于启动模式的配置信息,若存在则加载四线启动模式的配置信息,采用四线模式进行芯片的快速启动;所述四线模式进行芯片的快速启动具体为分别采用第一子模式、第二子模式或第三子模式进行尝试:

所述第一子模式包括时序1.1:bootrom程序发05h命令读配置寄存器0(s7~s0),发35h命令读配置寄存1(s15~s8);时序1.2:bootrom程序发01h命令同时写配置寄存器0和配置寄存器1。

所述第二子模式包括时序2.1:bootrom程序发15h命令同时读配置寄存器0配置寄存1;时序2.2:bootrom发01h命令同时写配置寄存器0和配置寄存器1。

所述第三子模式包括时序3.1:bootrom程序发分别发05h、35h、15h命令分别读配置寄存器0、配置寄存1、配置寄存2;时序3.2:bootrom程序分别发01h、31h、11h命令分别写配置寄存器0、配置寄存器1、配置寄存器2。

具体地,所述存储介质在被运行时还执行包括步骤,

配置时序信息,配置寄存器信息和配置qe比特位置信息。

具体地,所述存储介质在被运行时还执行包括步骤,将配置时序信息、配置寄存器信息和配置qe比特位置信息预存储在固件头文件中。

具体地,芯片中的闪存类型为spinorflash。

上述存储介质设计了三组默认的启动方式,市售的任意闪存都能够通过其中至少一种方式进行四线模式的启动。最终达到了芯片无论匹配何种闪存都能够快速启动的技术效果。

需要说明的是,尽管在本文中已经对上述各实施例进行了描述,但并非因此限制本发明的专利保护范围。因此,基于本发明的创新理念,对本文所述实施例进行的变更和修改,或利用本发明说明书及附图内容所作的等效结构或等效流程变换,直接或间接地将以上技术方案运用在其他相关的技术领域,均包括在本发明的专利保护范围之内。

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