一种处理器CPU初始化方法技术

技术编号:30901466 阅读:17 留言:0更新日期:2021-11-22 23:45
本申请公开了一种处理器CPU初始化方法及装置,用以降低维护成本、提高生产和维修效率。该方法包括:通过寄存器读取CPU的型号;确定CPU型号所属的CPU类型;其中,不同类型的CPU的双倍速率DDR颗粒的类型、DDR布线和DDR颗粒的个数中的至少一个是不相同的;根据确定的CPU类型,获取CPU类型对应的基础初始化序列;基础初始化序列用于初始化寄存器的配置;加载基础初始化序列。基于上述方案,DDR颗粒的类型、DDR布线和DDR颗粒的个数等特征,将CPU进行分类,为每个类型CPU分别生成一套基础初始化序列,从而实现一套Bootloader程序兼容多个CPU的需求,可以降低维护成本,提高生产和维修效率。提高生产和维修效率。提高生产和维修效率。

【技术实现步骤摘要】
一种处理器CPU初始化方法


[0001]本申请涉及计算机领域,特别涉及一种处理器CPU初始化方法。

技术介绍

[0002]在嵌入式系统(Linux)领域,根据设备运行的不同阶段,可以将设备的系统程序分为:引导程序、Linux内核、文件系统及应用程序等四个部分。其中,引导程序可以包括只读存储器程序(Rom code)和引导加载程序(Bootloader),而Rom code为固化在中央处理器(Central Processing Unit,CPU)内部程序,用户不可更改,Bootloader程序可以认为是设备上电后运行的第一个程序。Bootloader程序主要负责完成双倍速率同步动态随机存储器(Double Data Rate Synchronous Dynamic Random Access Memory,DDR)、闪存(Flash)、串口和网络等基础硬件模块初始化,系统运行环境的准备和Linux内核加载的引导。
[0003]Bootloader程序和硬件平台强相关,不同处理器架构有着不同的Bootloader程序。即使是相同硬件平台处理器,如果板级硬件存在差异,对应的Bootloader程序也不一样。因此对于开发来说需要移植和维护多套Bootloader程序,一旦出现问题需要分别对多套Bootloader程序进行同步。对于测试来说需要针对不同硬件方案的多套Bootloader程序进行多次相同的功能测试;对于产线和维修来说需要对不同Bootloader程序的设备进行区分烧录和升级,会增加维护成本,降低生产和维修效率。

技术实现思路

[0004]本申请实施例提供了一种处理器(Central Processing Unit,CPU)初始化方法,用以达到一套Bootloader程序可以兼容多CPU或多种硬件设备的目的。
[0005]第一方面,本申请实施例提供了一种处理器CPU初始化方法,包括:
[0006]通过寄存器读取CPU的型号;所述型号为第一型号;
[0007]确定所述第一型号所属的CPU类型;不同类型的CPU的DDR颗粒的类型、DDR颗粒的个数和DDR布线中的至少一个是不相同的;
[0008]根据确定的所述CPU类型,获取所述CPU类型对应的基础初始化序列;所述基础初始化序列用于初始化所述寄存器的配置;
[0009]加载所述基础初始化序列。
[0010]目前相关技术,对于不同的处理器架构有着不同的Bootloader,即使是相同处理器,如果板级硬件存在差异,对应的Bootloader程序也不一样。基于上述方案,根据DDR颗粒的类型、DDR颗粒的个数和DDR布线中的至少一个等特征,将CPU进行分类,为每种类型CPU分别生成一种基础初始化序列,从而实现一套Bootloader程序兼容多个CPU的需求,可以降低维护成本,提高生产和维修效率。
[0011]在一种可能的实现方式中,在确定的所述CPU类型中包含两个或两个以上CPU的型号时,根据确定的所述CPU类型,获取所述类型对应的基础初始化序列之后,还包括:
[0012]通过寄存器读取所述CPU的型号;所述型号为第二型号;
[0013]获取所述第二型号对应的配置信息;
[0014]根据所述配置信息,更新所述寄存器的配置。
[0015]基于上述方案,通过运行对应的基础初始化序列完成DDR控制器、系统时钟、时钟分频和DDR PHY等模块初始化后,再根据CPU型号进行寄存器配置的动态更新,可以实现同一套Bootloader程序兼容多CPU。满足项目开发中多CPU多硬件方案的实际需求,可以降低代码开发和维护、测试、生产及返修的复杂度和工作量,还可以降低相关成本。
[0016]在一种可能的实现方式中,获取所述第二型号对应的配置信息,包括:
[0017]获取管理头;所述管理头包括管理头标识;所述管理头中存储有各CPU型号对应的配置信息;
[0018]在所述管理头标识与预设管理头标识相同的情况下,对所述管理头标识进行循环冗余校验CRC;
[0019]在CRC校验成功后,从所述管理头中获取所述第二型号对应的配置信息。
[0020]基于上述方案,通过校验管理头标识来确定配置信息的管理头,从而可以准确获取需要的CPU的配置信息。
[0021]在一种可能的实现方式中,所述管理头还包括更新状态,获取所述第二型号对应的配置信息之前,还包括:
[0022]确定所述更新状态为未更新。
[0023]基于上述方案,通过对管理头内的更新状态的查询,在更新状态为未更新时获取对应的配置信息,可以防止多次重复更新配置的操作。
[0024]在一种可能的实现方式中,确定所述更新状态为未更新之后,获取所述第二型号对应的配置信息之前,还包括:
[0025]对所述配置信息进行校验;
[0026]确定所述配置信息校验通过;在所述配置信息未缺失数据时,确定所述配置信息校验通过。
[0027]基于上述方案,通过对基础初始化序列的校验,可以保证基础初始化序列数据的完整性和准确性可以确保设备初始化的正常进行。
[0028]在一种可能的实现方式中,根据所述配置信息,更新所述寄存器的配置之后,还包括:
[0029]将所述管理头中的所述更新状态设置为已更新。
[0030]基于上述方案,将管理头中的更新状态进行更新,以便用于下次启动时查询更新状态,防止多次重复更新寄存器的配置。
[0031]在一种可能的实现方式中,所述寄存器的配置包括以下中的至少一个:
[0032]DDR控制器、系统时钟、时钟分频和DDR端口物理层PHY。
[0033]第二方面,本申请实施例提供了一种处理器CPU初始化装置,包括:处理单元和存储单元;
[0034]所述存储单元,用于存储计算机程序或指令,以及CPU类型和基础初始化序列的对应关系;
[0035]所述处理单元,用于执行存储单元中的计算机程序或指令,并执行下述操作:
[0036]通过寄存器读取CPU的型号;所述型号为第一型号;
[0037]确定所述第一型号所属的CPU类型;不同类型的CPU的双倍速率DDR颗粒的类型、DDR颗粒的个数和DDR布线中的至少一个是不相同的;
[0038]根据确定的所述CPU类型,从所述存储单元中获取所述CPU类型对应的基础初始化序列;所述基础初始化序列用于初始化所述寄存器的配置;
[0039]加载所述基础初始化序列。
[0040]在一种可能的实现方式中,所述存储单元,还用于存储配置信息;
[0041]所述处理单元在确定的所述CPU类型中包含两个或两个以上CPU的型号时,根据确定的所述CPU类型,获取所述类型对应的基础初始化序列之后,还用于:
[0042]通过寄存器读取所述CPU的型号;所述型号为第二型号;
[0043]从所述存储单元获取所述第二型号对应的配置信息;
[0044]根据所本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种处理器CPU初始化方法,其特征在于,包括:通过寄存器读取CPU的型号;所述型号为第一型号;确定所述第一型号所属的CPU类型;其中,不同类型的CPU的双倍速率DDR颗粒的类型、DDR颗粒的个数和DDR布线中的至少一个是不相同的;根据确定的所述CPU类型,获取所述CPU类型对应的基础初始化序列;所述基础初始化序列用于初始化所述寄存器的配置;加载所述基础初始化序列。2.根据权利要求1所述的方法,其特征在于,在确定的所述CPU类型中包含两个或两个以上CPU的型号时,根据确定的所述CPU类型,获取所述类型对应的基础初始化序列之后,还包括:通过寄存器读取所述CPU的型号;所述型号为第二型号;获取所述第二型号对应的配置信息;根据所述配置信息,更新所述寄存器的配置。3.根据权利要求2所述的方法,其特征在于,获取所述第二型号对应的配置信息,包括:获取管理头;所述管理头包括管理头标识;所述管理头中存储有各CPU型号对应的配置信息;在所述管理头标识与预设管理头标识相同的情况下,对所述管理头标识进行循环冗余校验CRC;在CRC校验成功后,从所述管理头中获取所述第二型号对应的配置信息。4.根据权利要求2或3所述的方法,其特征在于,所述管理头还包括更新状态,获取所述第二型号对应的配置信息之前,还包括:确定所述更新状态为未更新。5.根据权利要求4所述的方法,其特征在于,确定所述更新状态为未更新之后,获取所述第二型号对应的配置信息之前,还包括:对所述配置信息进行校验;确定所述配置信息校验通过;在所述配置信息未缺失数据时,确定所述配置信息校验通过。6.根据权利要求2~3或5任一所述的方法,其特征在于,根据所述配置信息,更新所述寄存器的配置之后,还包括:将所述管理头中的所述更新状态设置为已更新。7.根据权利要求1~3或5任一所述的方法,其特征在于,所述寄存器的配置包括以下中的至少一个:DDR控制器、系统时钟、时钟分频和DDR端口物理层PHY。8.一种处理器CPU初始化装置,其特征在于,包括:处理单元和存储单元;所述存储单元,用于存储计算机程序或指令,以及CPU类型和基础初始化序列的对应关系;所述处理单元,用于执行存储单元中的计算机程序或指令,并执行下述操作:通过寄存器读取CPU的型号;所述型号为第一型号;确定所述第一型号所属的CPU类型;不同类型的CPU的双倍速率DDR颗粒的类型、DDR颗
...

【专利技术属性】
技术研发人员:方奇品
申请(专利权)人:浙江大华技术股份有限公司
类型:发明
国别省市:

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

1