CN115454469A - 镜像更新方法、装置、芯片、电子设备及存储介质 - Google Patents
镜像更新方法、装置、芯片、电子设备及存储介质 Download PDFInfo
- Publication number
- CN115454469A CN115454469A CN202211058614.6A CN202211058614A CN115454469A CN 115454469 A CN115454469 A CN 115454469A CN 202211058614 A CN202211058614 A CN 202211058614A CN 115454469 A CN115454469 A CN 115454469A
- Authority
- CN
- China
- Prior art keywords
- update
- file
- flash
- image file
- updating
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供的镜像更新方法、装置、芯片、电子设备及存储介质,属于无线通信技术领域,包括:接收更新镜像请求;响应于更新镜像请求,根据更新参数,控制FLASH对初始镜像文件进行更新配置,生成第一镜像文件和FLASH的配置文件;基于配置文件,对第一镜像文件中的目标文件进行校验,以将目标文件写入FLASH的更新分区,生成更新完成提示。本发明提供的镜像更新方法、装置、芯片、电子设备及存储介质,通过对更新的镜像文件进行校验,能够保证升级镜像的正确性,从而在不受外产品环境的限制和不影响ZYNQ原有的设计工作的情况下,并且不依赖JTAG工具,保证ZYNQ的镜像文件安全可靠地更新升级。
Description
技术领域
本发明涉及无线通信技术领域,尤其涉及镜像更新方法、装置、芯片、电子设备及存储介质。
背景技术
在5G小基站产品中,前传加速卡是重要的组成部分,前传加速卡多使用ZYNQ芯片作为解决方案。
由于版本的更新迭代以及需要增加新的功能,ZYNQ的镜像文件时常需要更新。
在对ZYNQ的镜像文件升级的过程中,受到产品环境的限制,如安装地点,系统影响等因素的影响,会导致镜像文件升级失败,甚至会出现宕机等问题。
发明内容
本发明提供的镜像更新方法、装置、芯片、电子设备及存储介质,用以解决现有技术中镜像文件升级失败的缺陷,实现镜像文件安全可靠地更新升级。
本发明提供一种镜像更新方法,包括:
接收更新镜像请求;所述更新镜像请求是由主机发出的;
响应于所述更新镜像请求,根据更新参数,控制FLASH对初始镜像文件进行更新配置,生成第一镜像文件和FLASH的配置文件;
基于所述配置文件,对所述第一镜像文件中的目标文件进行校验,以将所述目标文件写入FLASH的更新分区,生成更新完成提示。
根据本发明提供的一种镜像更新方法,所述第一镜像文件还包括:FSBL、header信息,所述基于所述配置文件,对所述第一镜像文件中的目标文件进行校验,以将所述目标文件写入FLASH的更新分区,生成更新完成提示,包括:
根据所述配置文件,控制FLASH擦除所述更新分区中的原有文件,以控制BootROM启动,加载FSBL;
利用FSBL对所述目标文件进行校验,生成校验结果;
在所述校验结果为所述目标文件正确的情况下,根据header信息,控制FLASH将所述目标文件写入至所述更新分区,以配置所述第一镜像文件;
在所述第一镜像文件配置完成的情况下,生成所述更新完成提示并发送至所述主机。
根据本发明提供的一种镜像更新方法,所述根据所述配置文件,控制FLASH擦除所述更新分区中的原有文件,以控制BootROM启动,加载FSBL,还包括:
根据所述配置文件,控制FLASH擦除所述更新分区中的原有文件,生成配置完成提示;
将所述配置完成提示发送至所述主机;
接收第一指令,所述第一指令由所述主机根据所述配置完成提示生成的;
响应于所述第一指令,控制BootROM启动,加载FSBL。
根据本发明提供的一种镜像更新方法,所述FLASH还包括保险分区和备份分区,所述响应于所述更新镜像请求,根据更新参数,控制FLASH对初始镜像文件进行更新配置,生成第一镜像文件和FLASH的配置文件,包括:
响应于所述更新镜像请求,并建立与所述主机之间的通信连接;
接收所述更新参数,所述更新参数是由所述主机配置的;
预读FLASH的预留信息,确定FLASH的类型,以根据FLASH的类型配置FLASH的接口模式;
基于所述接口模式,根据所述更新参数,控制FLASH对初始镜像文件进行更新配置,生成第一镜像文件和所述配置文件,并将所述第一镜像文件备份至所述保险分区和所述备份分区。
根据本发明提供的一种镜像更新方法,在所述生成更新完成提示之后,还包括:
接收第二指令;所述第二指令由所述主机根据所述更新完成提示发出的;
响应于所述第二指令,控制FLASH加载所述第一镜像文件,生成更新加载结果;
在根据所述更新加载结果,确定所述第一镜像文件加载成功的情况下,将所述更新加载结果发送至所述主机;
在根据所述更新加载结果,确定所述第一镜像文件加载失败的情况下,在所述保险分区中调取所述初始镜像文件,并执行以下步骤:
步骤11,建立与所述主机之间的通信连接;
步骤12,接收新的更新参数,所述新的更新参数是由所述主机配置的;
步骤13,根据所述新的更新参数,控制FLASH对初始镜像文件进行更新配置,生成新的第一镜像文件和新的配置文件,以基于所述新的配置文件,将所述新的第一镜像文件中的目标文件写入FLASH的更新分区,生成新的更新完成提示;
步骤14,接收新的第二指令;所述新的第二指令由所述主机根据所述新的更新完成提示发出的;
步骤15,响应于所述新的第二指令,控制FLASH加载所述新的第一镜像文件,生成新的更新加载结果;
迭代执行步骤11至步骤15,直至根据所述新的更新加载结果,确定所述新的第一镜像文件加载成功,将所述新的更新加载结果发送至所述主机。
根据本发明提供的一种镜像更新方法,在所述生成更新完成提示之后,还包括:
接收退回请求,并执行以下操作:
步骤21,响应于所述退回请求,控制所述FLASH擦除所述更新分区中的所述目标文件;
步骤22,控制FLASH将所述备份分区中的所述初始镜像文件复制到所述更新分区,以所述初始镜像文件;
步骤23,在所述初始镜像文件配置完成的情况下,接收第三指令;
步骤24,响应于所述第三指令,控制FLASH加载所述初始镜像文件,生成退回加载结果;
在根据所述退回加载结果,确定所述初始镜像文件加载成功的情况下,将所述退回加载结果发送至所述主机;
在根据所述退回加载结果,确定所述初始镜像文件加载失败的情况下,迭代执行步骤21至步骤24,直至能够根据所述退回加载结果,确定所述初始镜像文件加载成功,并将所述退回加载结果发送至所述主机。
本发明还提供一种镜像更新装置,包括:
接收模块,用于接收更新镜像请求;所述更新镜像请求是由主机发出的;
更新模块,用于响应于所述更新镜像请求,根据更新参数,控制FLASH对初始镜像文件进行更新配置,生成第一镜像文件和FLASH的配置文件;
校验模块,用于基于所述配置文件,对所述第一镜像文件中的目标文件进行校验,以将所述目标文件写入FLASH的更新分区,生成更新完成提示。
本发明还提供一种芯片,用于执行如上述任一种所述镜像更新方法。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述镜像更新方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述镜像更新方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述镜像更新方法。
本发明提供的镜像更新方法、装置、芯片、电子设备及存储介质,通过对更新的镜像文件进行校验,能够保证升级镜像的正确性,从而在不受外产品环境的限制和不影响ZYNQ原有的设计工作的情况下,并且不依赖JTAG工具,保证ZYNQ的镜像文件安全可靠地更新升级。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的镜像更新方法的流程示意图;
图2是本发明提供的FLASH的分区的结构示意图;
图3是本发明提供的镜像文件的结构示意图;
图4是本发明提供的镜像重组的结构示意图;
图5是本发明提供的镜像更新的时序示意图;
图6是本发明提供的ZYNQ镜像重配置的流程示意图;
图7是本发明提供的回退的时序示意图;
图8是本发明提供的镜像更新装置的结构示意图;
图9是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1至图9描述本发明的实施例所提供的镜像更新方法、装置、芯片、电子设备及存储介质。
本发明实施例提供的镜像更新方法,执行主体可以为电子设备或者电子设备中能够实现该镜像更新方法的软件或功能模块或功能实体,本发明实施例中电子设备包括但不限于基站的ZYNQ芯片。需要说明的是,上述执行主体并不构成对本发明的限制。
图1是本发明提供的镜像更新方法的流程示意图,如图1所示,包括但不限于以下步骤:
首先,在步骤S1中,接收更新镜像请求;所述更新镜像请求是由主机发出的。
基站系统包括主机、ZYNQ和FLASH,ZYNQ可以是作为主机的从机。
在有更新镜像的需求的情况下,主机向对应的ZYNQ发送更新镜像请求。
进一步地,在步骤S2中,响应于所述更新镜像请求,根据更新参数,控制FLASH对初始镜像文件进行更新配置,生成第一镜像文件和FLASH的配置文件。
更新参数是主机根据镜像更新的需求,明确要更新的镜像文件涉及的芯片和FLASH所配置的,更新参数可以包括:芯片类型、FLASH类型和镜像大小。
初始镜像文件为待更新的镜像文件,第一镜像文件为对初始镜像文件更新后形成的。
配置文件包括镜像文件的分区放置以及重组信息,控制FLASH擦除配置文件中的更新分区中的原有文件。然后通知主机配置完成。
图2是本发明提供的FLASH的分区的结构示意图,如图2所示,FLASH可以划分为多个扇区,包括更新分区(update image)、保险分区(golden image)和备份分区(bakeupimage),每个分区都有对应的起始地址和结束地址。
其中,备份分区用于备份更新分区和保险分区的文件。
ZYNQ在接收到更新镜像请求后,响应于更新镜像请求,并设置ZYNQ与主机之间基于握手协议的通信连接,以安全的方式实现网络数据传输。基于该通信连接,ZYNQ接收主机配置的更新参数,并预读FLASH的身份证标识号(Identity Document,ID)等预留信息,确定FLASH的类型,进而根据FLASH的类型,确定网线协议,以确定FLASH的接口模式,并根据该接口模式,对FLASH进行接口配置。
在接口配置完成后,利用更新参数,控制FLASH对初始镜像文件进行更新配置,得到更新后的第一镜像文件和FLASH的配置文件。
初始镜像文件备份在FLASH的备份分区和保险分区中,第一镜像文件备份在FLASH的保险分区。
进一步地,在步骤S3中,基于所述配置文件,对所述第一镜像文件中的目标文件进行校验,以将所述目标文件写入FLASH的更新分区,生成更新完成提示。
目标文件包括bit文件和elf文件。
图3是本发明提供的镜像文件的结构示意图,如图3所示,镜像文件包括多个镜像分区,镜像分区中的文件包括:BootROM Header、Image Header table、Image Header,Partition Header,bit文件和elf文件。
其中,bit文件可以包括ZYNQ.bit和MD5 for ZYNQ.bit,elf文件可以包括fsbl.elf、ZYNQ.elf和MD5 for ZYNQ.elf。
主机向ZYNQ发送第一指令,ZYNQ响应于第一指令,控制BootROM启动,引导加载fsbl.elf,利用fsbl.elf对bit文件和elf文件进行校验,若确定bit文件和elf文件正确,则根据header信息,控制FLASH将bit文件和elf文件写入至更新分区,写入完成后通知主机更新完成。
多镜像安全升级的场景给工程人员带来了巨大的困扰,通过使用Multiboot技术,在存放bit文件的分区可以存放多个bit文件,能够实现多镜像安全升级。
在更新完成或加载成功之后还可以对第一镜像文件进行重组操作。
图4是本发明提供的镜像重组的结构示意图,如图4所示,包括:将BootROM Header文件和fsbl.elf文件从第一镜像文件中提取出来,放置在FLASH起始位置的地址空间内,需要保证该地址空间的范围为FLASH扇区大小的整数倍,在更新其他扇区的过程中,可以避免BootROM Header文件和fsbl.elf文件被删除,进而保证fsbl.elf文件在更新过程中的完整性。镜像升级不会更新fsbl.elf文件,这样在升级过程中无论出现任何故障,fsbl.elf文件都不会被改写,保证Multiboot镜像的功能。
将Image Header Table,Image Header,Partition Header,ZYNQ.bit文件及其MD5 for ZYNQ.bit,ZYNQ.elf文件及其MD5 for ZYNQ.elf各自提取出来,并前后排列组合到一起,放到BootROM Header和fsbl.elf文件之后的地址空间内。
根据镜像的大小,将BootROM Header,Image Header Table,Image Header,Partition Header等文件涉及的部分字段值重新计算并对应修改文件信息。
本发明提供的镜像更新方法,通过对更新的镜像文件进行校验,能够保证升级镜像的正确性,从而在不受外产品环境的限制和不影响ZYNQ原有的设计工作的情况下,并且不依赖JTAG工具,保证ZYNQ的镜像文件安全可靠地更新升级。
可选地,所述FLASH还包括保险分区和备份分区,所述响应于所述更新镜像请求,根据更新参数,控制FLASH对初始镜像文件进行更新配置,生成第一镜像文件和FLASH的配置文件,包括:
响应于所述更新镜像请求,并建立与所述主机之间的通信连接;
接收所述更新参数,所述更新参数是由所述主机配置的;
预读FLASH的预留信息,确定FLASH的类型,以根据FLASH的类型配置FLASH的接口模式;
基于所述接口模式,根据所述更新参数,控制FLASH对初始镜像文件进行更新配置,获取生成第一镜像文件和所述配置文件,并将所述第一镜像文件备份至所述保险分区和所述备份分区。
预留信息可以为自定义的信息段。
ZYNQ响应于新镜像请求,并建立与所述主机之间基于握手协议的通信连接;基于该通信连接,ZYNQ接收主机发送的更新参数。
ZYNQ预读FLASH的预留信息,确定lash的类型,进而根据FLASH的类型,确定网线协议。
根据网线协议配置FLASH的接口模式,并根据该接口模式,对FLASH进行接口配置。
在接口配置完成后,利用更新参数,控制FLASH对初始镜像文件进行更新配置,得到更新后的第一镜像文件和配置文件。
将第一镜像文件备份至FLASH的保险分区和备份分区,在ZYNQ突发断电等原因,导致的更新失败的情况下,可以通过Multiboot功能使ZYNQ从这两个分区启动重新更新操作,无需返厂维修或者工作人员赶往现场维护。节约了产品的维护成本以及缩短了故障维护时间,保证产品使用的高可靠性和实效性。
根据本发明提供的镜像更新方法,通过建立ZYNQ与主机之间的安全通信连接,进而对镜像文件进行更新,保证镜像升级的安全可靠。
可选地,所述第一镜像文件还包括:FSBL、header信息,所述基于所述配置文件,对所述第一镜像文件中的目标文件进行校验,以将所述目标文件写入FLASH的更新分区,生成更新完成提示,包括:
根据所述配置文件,控制FLASH擦除所述更新分区中的原有文件,以控制BootROM启动,加载FSBL;
利用FSBL对所述目标文件进行校验,生成校验结果;
在所述校验结果为所述目标文件正确的情况下,根据header信息,控制FLASH将所述目标文件写入至所述更新分区,以配置所述第一镜像文件;
在所述第一镜像文件配置完成的情况下,生成所述更新完成提示并发送至所述主机。
可选地,所述根据所述配置文件,控制FLASH擦除所述更新分区中的原有文件,以控制BootROM启动,加载FSBL,还包括:
根据所述配置文件,控制FLASH擦除所述更新分区中的原有文件,生成配置完成提示;
将所述配置完成提示发送至所述主机;
接收第一指令,所述第一指令由所述主机根据所述配置完成提示生成的;
响应于所述第一指令,控制BootROM启动,加载FSBL。
FSBL可以为fsbl.elf文件,header信息可以包括Image Header信息和PartitionHeader信息。
获取FLASH的配置文件,配置文件包括镜像文件的分区放置以及重组信息,控制FLASH擦除配置文件中的更新分区中的原有文件。然后通知主机配置完成。
在ZYNQ向主机反馈镜像文件更新配置完成之后,主机向ZYNQ发送第一指令,用以触发校验第一镜像文件的流程。
ZYNQ响应于第一指令,控制BootROM启动,引导加载fsbl.elf文件。
基于MD5信息摘要算法(Message-Digest Algorithm MD5),利用fsbl.elf对bit文件和elf文件的正确性进行校验,若确定bit文件和elf文件正确,则根据header信息,控制FLASH将bit文件和elf文件写入至更新分区,写入完成后通知主机更新完成。
根据本发明提供的镜像更新方法,通过对bit文件和elf文件进行正确性校验,能够保证升级镜像的正确性。
可选地,在所述生成更新完成提示之后,还包括:
接收第二指令;所述第二指令由所述主机根据所述更新完成提示发出的;
响应于所述第二指令,控制FLASH加载所述第一镜像文件,生成更新加载结果;
在根据所述更新加载结果,确定所述第一镜像文件加载成功的情况下,将所述更新加载结果发送至所述主机;
在根据所述更新加载结果,确定所述第一镜像文件加载失败的情况下,在所述保险分区中调取所述初始镜像文件,并执行以下步骤:
步骤11,建立与所述主机之间的通信连接;
步骤12,接收新的更新参数,所述新的更新参数是由所述主机配置的;
步骤13,根据所述新的更新参数,控制FLASH对初始镜像文件进行更新配置,生成新的第一镜像文件和新的配置文件,以基于所述新的配置文件,将所述新的第一镜像文件中的目标文件写入FLASH的更新分区,生成新的更新完成提示;
步骤14,接收新的第二指令;所述新的第二指令由所述主机根据所述新的更新完成提示发出的;
步骤15,响应于所述新的第二指令,控制FLASH加载所述新的第一镜像文件,生成新的更新加载结果;
迭代执行步骤11至步骤15,直至根据所述新的更新加载结果,确定所述新的第一镜像文件加载成功,将所述新的更新加载结果发送至所述主机。
第二指令用户激活触发重配置。
对更新镜像的加载,并且加载失败后,迭代执行步骤11至步骤15,不影响基站的功能,ZYNQ可以正常工作,以便于重新操作升级。
图5是本发明提供的镜像更新的时序示意图,如图5所示,包括握手阶段、更新阶段、校验阶段和重配置阶段。
在步骤501中,主机向ZYNQ发送更新镜像文件的请求;
在步骤502中,ZYNQ应答该请求,并建立与主机之间的基于握手协议的通信连接,完成通道设置,提示远程主机(以下简称:主机)可以更新;
在步骤503中,ZYNQ接收主机配置的更新参数;
在步骤504中,ZYNQ确定FLASH的配置类型,以根据FLASH类型配置FLASH的接口模式;
在步骤505中,ZYNQ根据所述更新镜像请求和更新参数,操作FLASH对初始镜像文件进行更新配置,生成第一镜像文件和FLASH的配置信息;
在步骤506中,ZYNQ控制FLASH备份第一镜像文件,并校验备份的第一镜像文件,保证备份的第一镜像文件的正确性;
在步骤507中,ZYNQ向主机应答配置完成,并提示主机准备接收;
在步骤508中,主机向ZYNQ发送第一指令,第一指令用于指示BootROM启动,引导加载fsbl.elf;
在步骤509中,ZYNQ根据第一指令,控制BootROM启动,并加载FSBL;此外,还利用FLASH的配置信息对FLASH的更新分区的原有文件进行擦除;
在步骤510中,ZYNQ利用FSBL校验第一镜像文件中的bit文件和elf文件,在确定bit和elf文件正确的情况下,根据header信息将bit文件和elf文件写入FLASH的更新分区,以配置第一镜像文件直至配置完成;
在步骤511中,在第一镜像文件配置完成的情况下,ZYNQ向主机反馈更新完成;
在步骤512中,主机向ZYNQ发送第二指令,以触发重配置操作;
在步骤513中,ZYNQ响应于第二指令,加载FLASH中的第一镜像文件;
若在步骤514A中,第一镜像文件加载失败,执行步骤515,回滚golden image,跳转至步骤502,并迭代执行502至513,直至第一镜像文件加载成功,执行步骤514B;若在步骤514B中,加载成功,执行步骤516;
在步骤516中,ZYNQ向主机反馈加载成功,以通知主机结束操作。
根据本发明提供的镜像更新方法,在加载失败后可以进行回滚,重新进行升级,保证升级的安全性。
图6是本发明提供的ZYNQ镜像重配置的流程示意图,如图6所示,首先,芯片上电后,启动BootROM,加载FSBL,利用FSBL读取bit文件,以配置可编程逻辑(ProgarmmableLogic,PL),还利用FSBL读物elf文件,并配置双倍速率同步动态随机存储器(Double DataRate,DDR),配置完成后启动操作系统。
可选地,在所述生成更新完成提示之后,还包括:
接收退回请求,并执行以下操作:
步骤21,响应于所述退回请求,控制所述FLASH擦除所述更新分区中的所述目标文件;
步骤22,控制FLASH将所述备份分区中的所述初始镜像文件复制到所述更新分区,以所述初始镜像文件;
步骤23,在所述初始镜像文件配置完成的情况下,接收第三指令;
步骤24,响应于所述第三指令,控制FLASH加载所述初始镜像文件,生成退回加载结果;
在根据所述退回加载结果,确定所述初始镜像文件加载成功的情况下,将所述退回加载结果发送至所述主机;
在根据所述退回加载结果,确定所述初始镜像文件加载失败的情况下,迭代执行步骤21至步骤24,直至能够根据所述退回加载结果,确定所述初始镜像文件加载成功,并将所述退回加载结果发送至所述主机。
图7是本发明提供的回退的时序示意图,如图7所示,包括握手阶段、更新阶段和重配置阶段,具体地:
在步骤701中,主机向ZYNQ发送回退请求,以退回更新前的版本;
在步骤702中,ZYNQ应答回退请求,并通知主机开始配置;
在步骤703中,ZYNQ根据退回请求,擦除FLASH中update image中的文件;
在步骤704中,ZYNQ确定擦除完成;
在步骤705中,ZYNQ将FLASH中bakeup image中的初始镜像文件复制到updateimage中;
在步骤706中,ZYNQ确定复制完成;
在步骤707中,ZYNQ向主机提示更新完成,等待重配置;
在步骤708中,主机向ZYNQ发送第三指令,第三指令用于指示触发重配置操作;
在步骤709中,ZYNQ控制FLASH加载update image中的初始镜像文件;
若在步骤710A中,初始镜像文件加载失败,执行步骤711,回滚bakeup image,跳转至步骤702,并迭代执行702至709,直至初始镜像文件加载成功,执行步骤710B;若在步骤710B中,加载成功,执行步骤712;
在步骤712中,ZYNQ向主机反馈加载成功,以通知主机结束操作。
根据本发明提供的镜像更新方法,只需主机发送相关的消息命令,不需要传输镜像文件,提高了远程通信链路的使用效率。
下面对本发明提供的镜像更新装置进行描述,下文描述的镜像更新装置与上文描述的镜像更新方法可相互对应参照。
图8是本发明提供的镜像更新装置的结构示意图,如图8所示,
接收模块801,用于接收更新镜像请求;所述更新镜像请求是由主机发出的;
更新模块802,用于响应于所述更新镜像请求,根据更新参数,控制FLASH对初始镜像文件进行更新配置,生成第一镜像文件和FLASH的配置文件;
校验模块803,用于基于所述配置文件,对所述第一镜像文件中的目标文件进行校验,以将所述目标文件写入FLASH的更新分区,生成更新完成提示。
首先,接收模块801接收更新镜像请求;所述更新镜像请求是由主机发出的。
基站系统包括主机、ZYNQ和FLASH,ZYNQ可以是作为前传加速卡的芯片,主机的从机。
在有更新镜像的需求的情况下,主机向对应的ZYNQ发送更新镜像请求。
进一步地,更新模块802响应于所述更新镜像请求,根据更新参数,控制FLASH对初始镜像文件进行更新配置,生成第一镜像文件和FLASH的配置文件。
更新参数是主机根据镜像更新的需求,明确要更新的镜像文件涉及的芯片和FLASH所配置的,更新参数可以包括:芯片类型、FLASH类型和镜像大小。
初始镜像文件为待更新的镜像文件,第一镜像文件为对初始镜像文件更新后形成的。
配置文件包括镜像文件的分区放置以及重组信息,控制FLASH擦除配置文件中的更新分区中的原有文件。然后通知主机配置完成。
如图2所示,FLASH可以划分为多个扇区,包括更新分区(update image)、保险分区(golden image)和备份分区(bakeup image),每个分区都有对应的起始地址和结束地址。
其中,备份分区用于备份更新分区和保险分区的文件。
ZYNQ在接收到更新镜像请求后,响应于更新镜像请求,并设置ZYNQ与主机之间基于握手协议的通信连接,以安全的方式实现网络数据传输。基于该通信连接,ZYNQ接收主机配置的更新参数,并预读FLASH的身份证标识号(Identity Document,ID)等预留信息,确定FLASH的类型,进而根据FLASH的类型,确定网线协议,以确定FLASH的接口模式,并根据该接口模式,对FLASH进行接口配置。
在接口配置完成后,利用更新参数,控制FLASH对初始镜像文件进行更新配置,得到更新后的第一镜像文件和FLASH的配置文件。
初始镜像文件备份在FLASH的备份分区和保险分区中,第一镜像文件备份在FLASH的保险分区。
进一步地,校验模块803基于所述配置文件,对所述第一镜像文件中的目标文件进行校验,以将所述目标文件写入FLASH的更新分区,生成更新完成提示。
目标文件包括bit文件和elf文件。
如图3所示,镜像文件包括多个镜像分区,镜像分区中的文件包括:BootROMHeader、Image Header table、Image Header,Partition Header,bit文件和elf文件。
其中,bit文件可以包括ZYNQ.bit和MD5 for ZYNQ.bit,elf文件可以包括fsbl.elf、ZYNQ.elf和MD5 for ZYNQ.elf。
主机向ZYNQ发送第一指令,ZYNQ响应于第一指令,控制BootROM启动,引导加载fsbl.elf,利用fsbl.elf对bit文件和elf文件进行校验,若确定bit文件和elf文件正确,则根据header信息,控制FLASH将bit文件和elf文件写入至更新分区,写入完成后通知主机更新完成。
多镜像安全升级的场景给工程人员带来了巨大的困扰,通过使用Multiboot技术,在存放bit文件的分区可以存放多个bit文件,能够实现多镜像安全升级。
在更新完成或加载成功之后还可以对第一镜像文件进行重组操作。
如图4所示,包括:将BootROM Header文件和fsbl.elf文件从第一镜像文件中提取出来,放置在FLASH起始位置的地址空间内,需要保证该地址空间的范围为FLASH扇区大小的整数倍,在更新其他扇区的过程中,可以避免BootROM Header文件和fsbl.elf文件被删除,进而保证fsbl.elf文件在更新过程中的完整性。镜像升级不会更新fsbl.elf文件,这样在升级过程中无论出现任何故障,fsbl.elf文件都不会被改写,保证Multiboot镜像的功能。
将Image Header Table,Image Header,Partition Header,ZYNQ.bit文件及其MD5 for ZYNQ.bit,ZYNQ.elf文件及其MD5 for ZYNQ.elf各自提取出来,并前后排列组合到一起,放到BootROM Header和fsbl.elf文件之后的地址空间内。
根据镜像的大小,将BootROM Header,Image Header Table,Image Header,Partition Header等文件涉及的部分字段值重新计算并对应修改文件信息。
本发明提供的镜像更新装置,通过对更新的镜像文件进行校验,能够保证升级镜像的正确性,从而在不受外产品环境的限制和不影响ZYNQ原有的设计工作的情况下,并且不依赖JTAG工具,保证ZYNQ的镜像文件安全可靠地更新升级。
本发明还提供一种芯片,该芯片可以是ZYNQ,能够执行上述各方法提供的镜像更新方法,该方法包括:接收更新镜像请求;所述更新镜像请求是由主机发出的;响应于所述更新镜像请求,根据更新参数,控制FLASH对初始镜像文件进行更新配置,生成第一镜像文件和FLASH的配置文件;基于所述配置文件,对所述第一镜像文件中的目标文件进行校验,以将所述目标文件写入FLASH的更新分区,生成更新完成提示。
图9是本发明提供的电子设备的结构示意图,如图9所示,该电子设备可以包括:处理器(processor)910、通信接口(Communications Interface)920、存储器(memory)930和通信总线940,其中,处理器910,通信接口920,存储器930通过通信总线940完成相互间的通信。处理器910可以调用存储器930中的逻辑指令,以执行镜像更新方法,该方法包括:接收更新镜像请求;所述更新镜像请求是由主机发出的;响应于所述更新镜像请求,根据更新参数,控制FLASH对初始镜像文件进行更新配置,生成第一镜像文件和FLASH的配置文件;基于所述配置文件,对所述第一镜像文件中的目标文件进行校验,以将所述目标文件写入FLASH的更新分区,生成更新完成提示。
此外,上述的存储器930中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的镜像更新方法,该方法包括:接收更新镜像请求;所述更新镜像请求是由主机发出的;响应于所述更新镜像请求,根据更新参数,控制FLASH对初始镜像文件进行更新配置,生成第一镜像文件和FLASH的配置文件;基于所述配置文件,对所述第一镜像文件中的目标文件进行校验,以将所述目标文件写入FLASH的更新分区,生成更新完成提示。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的镜像更新方法,该方法包括:接收更新镜像请求;所述更新镜像请求是由主机发出的;响应于所述更新镜像请求,根据更新参数,控制FLASH对初始镜像文件进行更新配置,生成第一镜像文件和FLASH的配置文件;基于所述配置文件,对所述第一镜像文件中的目标文件进行校验,以将所述目标文件写入FLASH的更新分区,生成更新完成提示。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种镜像更新方法,其特征在于,包括:
接收更新镜像请求;所述更新镜像请求是由主机发出的;
响应于所述更新镜像请求,根据更新参数,控制FLASH对初始镜像文件进行更新配置,生成第一镜像文件和所述FLASH的配置文件;
基于所述配置文件,对所述第一镜像文件中的目标文件进行校验,以将所述目标文件写入所述FLASH的更新分区,生成更新完成提示。
2.根据权利要求1所述的镜像更新方法,其特征在于,所述第一镜像文件还包括:FSBL、header信息,所述基于所述配置文件,对所述第一镜像文件中的目标文件进行校验,以将所述目标文件写入所述FLASH的更新分区,生成更新完成提示,包括:
根据所述配置文件,控制所述FLASH擦除所述更新分区中的原有文件,以控制BootROM启动,加载所述FSBL;
利用所述FSBL对所述目标文件进行校验,生成校验结果;
在所述校验结果为所述目标文件正确的情况下,根据header信息,控制所述FLASH将所述目标文件写入至所述更新分区,以配置所述第一镜像文件;
在所述第一镜像文件配置完成的情况下,生成所述更新完成提示并发送至所述主机。
3.根据权利要求2所述的镜像更新方法,其特征在于,所述根据所述配置文件,控制所述FLASH擦除所述更新分区中的原有文件,以控制BootROM启动,加载所述FSBL,还包括:
根据所述配置文件,控制所述FLASH擦除所述更新分区中的原有文件,生成配置完成提示;
将所述配置完成提示发送至所述主机;
接收第一指令,所述第一指令由所述主机根据所述配置完成提示生成的;
响应于所述第一指令,控制所述BootROM启动,加载所述FSBL。
4.根据权利要求1所述的镜像更新方法,其特征在于,所述FLASH还包括保险分区和备份分区,所述响应于所述更新镜像请求,根据更新参数,控制FLASH对初始镜像文件进行更新配置,生成第一镜像文件和所述FLASH的配置文件,包括:
响应于所述更新镜像请求,建立与所述主机之间的通信连接;
接收所述更新参数,所述更新参数是由所述主机配置的;
预读所述FLASH的预留信息,确定所述FLASH的类型,以根据所述FLASH的类型配置所述FLASH的接口模式;
基于所述接口模式,根据所述更新参数,控制所述FLASH对初始镜像文件进行更新配置,生成第一镜像文件和所述配置文件,并将所述第一镜像文件备份至所述保险分区和所述备份分区。
5.根据权利要求4所述的镜像更新方法,其特征在于,在所述生成更新完成提示之后,还包括:
接收第二指令;所述第二指令由所述主机根据所述更新完成提示发出的;
响应于所述第二指令,控制所述FLASH加载所述第一镜像文件,生成更新加载结果;
在根据所述更新加载结果,确定所述第一镜像文件加载成功的情况下,将所述更新加载结果发送至所述主机;
在根据所述更新加载结果,确定所述第一镜像文件加载失败的情况下,在所述保险分区中调取所述初始镜像文件,并执行以下步骤:
步骤11,建立与所述主机之间的通信连接;
步骤12,接收新的更新参数,所述新的更新参数是由所述主机配置的;
步骤13,根据所述新的更新参数,控制所述FLASH对初始镜像文件进行更新配置,生成新的第一镜像文件和新的配置文件,以基于所述新的配置文件,将所述新的第一镜像文件中的目标文件写入所述FLASH的更新分区,生成新的更新完成提示;
步骤14,接收新的第二指令;所述新的第二指令由所述主机根据所述新的更新完成提示发出的;
步骤15,响应于所述新的第二指令,控制所述FLASH加载所述新的第一镜像文件,生成新的更新加载结果;
迭代执行步骤11至步骤15,直至根据所述新的更新加载结果,确定所述新的第一镜像文件加载成功,将所述新的更新加载结果发送至所述主机。
6.根据权利要求5所述的镜像更新方法,其特征在于,在所述生成更新完成提示之后,还包括:
接收退回请求,并执行以下操作:
步骤21,响应于所述退回请求,控制所述FLASH擦除所述更新分区中的所述目标文件;
步骤22,控制FLASH将所述备份分区中的所述初始镜像文件复制到所述更新分区,以所述初始镜像文件;
步骤23,在所述初始镜像文件配置完成的情况下,接收第三指令;
步骤24,响应于所述第三指令,控制所述FLASH加载所述初始镜像文件,生成退回加载结果;
在根据所述退回加载结果,确定所述初始镜像文件加载成功的情况下,将所述退回加载结果发送至所述主机;
在根据所述退回加载结果,确定所述初始镜像文件加载失败的情况下,迭代执行步骤21至步骤24,直至能够根据所述退回加载结果,确定所述初始镜像文件加载成功,并将所述退回加载结果发送至所述主机。
7.一种镜像更新装置,其特征在于,包括:
接收模块,用于接收更新镜像请求;所述更新镜像请求是由主机发出的;
更新模块,用于响应于所述更新镜像请求,根据更新参数,控制FLASH对初始镜像文件进行更新配置,生成第一镜像文件和所述FLASH的配置文件;
校验模块,用于基于所述配置文件,对所述第一镜像文件中的目标文件进行校验,以将所述目标文件写入所述FLASH的更新分区,生成更新完成提示。
8.一种芯片,其特征在于,用于执行如权利要求1-6任一项所述镜像更新方法。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-6任一项所述镜像更新方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6任一项所述镜像更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211058614.6A CN115454469A (zh) | 2022-08-30 | 2022-08-30 | 镜像更新方法、装置、芯片、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211058614.6A CN115454469A (zh) | 2022-08-30 | 2022-08-30 | 镜像更新方法、装置、芯片、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115454469A true CN115454469A (zh) | 2022-12-09 |
Family
ID=84300123
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211058614.6A Pending CN115454469A (zh) | 2022-08-30 | 2022-08-30 | 镜像更新方法、装置、芯片、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115454469A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116107516A (zh) * | 2023-04-10 | 2023-05-12 | 苏州浪潮智能科技有限公司 | 数据写入方法、装置、固态硬盘、电子设备及存储介质 |
CN116992431A (zh) * | 2023-09-28 | 2023-11-03 | 飞腾信息技术有限公司 | 一种镜像文件的版本验证方法及相关装置 |
-
2022
- 2022-08-30 CN CN202211058614.6A patent/CN115454469A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116107516A (zh) * | 2023-04-10 | 2023-05-12 | 苏州浪潮智能科技有限公司 | 数据写入方法、装置、固态硬盘、电子设备及存储介质 |
CN116107516B (zh) * | 2023-04-10 | 2023-07-11 | 苏州浪潮智能科技有限公司 | 数据写入方法、装置、固态硬盘、电子设备及存储介质 |
CN116992431A (zh) * | 2023-09-28 | 2023-11-03 | 飞腾信息技术有限公司 | 一种镜像文件的版本验证方法及相关装置 |
CN116992431B (zh) * | 2023-09-28 | 2023-12-22 | 飞腾信息技术有限公司 | 一种镜像文件的版本验证方法及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115454469A (zh) | 镜像更新方法、装置、芯片、电子设备及存储介质 | |
CN107179909B (zh) | 软件升级方法、装置及计算机可读存储介质 | |
US11314665B2 (en) | Information processing system, information processing device, BIOS updating method for information processing device, and BIOS updating program for information processing device | |
CN106598654B (zh) | 一种在线更新PowerPC主板引导芯片的方法 | |
CN107102871A (zh) | 嵌入式系统升级的方法和装置 | |
WO2011088701A1 (zh) | 一种跨平台版本在线升级的方法及装置 | |
CN111309354A (zh) | 联网设备的ota升级方法及装置 | |
CN108345464A (zh) | 一种安卓系统的启动方法及安卓车机 | |
WO2018049798A1 (zh) | 一种缓存分区重构的方法和装置 | |
CN112685068B (zh) | 远程升级boot镜像文件的方法及计算机可读介质 | |
CN111273928B (zh) | 一种自升级的bootloader设计方法 | |
CN116302020A (zh) | Fpga的逻辑程序升级方法、装置、设备及介质 | |
CN102169445B (zh) | 一种BootRom的安全升级方法 | |
CN117215656A (zh) | 基于Linux系统自适配车机芯片方法、装置、电子设备及车辆 | |
CN114995852A (zh) | 一种设备升级方法、设备及计算机可读存储介质 | |
CN113377425A (zh) | Bmc固件生成方法和装置、bmc启动方法和装置及存储介质 | |
CN110968852B (zh) | 一种虚拟机密码管理方法、系统、设备及计算机存储介质 | |
US9529581B2 (en) | Circuit and method for writing program codes of basic input/output system | |
CN112667444A (zh) | 一种系统升级方法、存储介质及终端设备 | |
US20190079829A1 (en) | Information processing apparatus and method, and storage medium | |
CN113938238B (zh) | 一种时间同步方法及系统 | |
CN114327535A (zh) | 一种bmc固件更新保护方法及相关组件 | |
CN118295713A (zh) | 系统启动方法、系统更新方法、直放站系统、设备和介质 | |
CN117112001A (zh) | 一种板卡中软件升级方法及装置 | |
CN118276958A (zh) | 一种穿戴类设备软件系统安全启动引导方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |