CN104579719B - 一种固件的升级方法和系统、上位机和光模块 - Google Patents
一种固件的升级方法和系统、上位机和光模块 Download PDFInfo
- Publication number
- CN104579719B CN104579719B CN201310469841.2A CN201310469841A CN104579719B CN 104579719 B CN104579719 B CN 104579719B CN 201310469841 A CN201310469841 A CN 201310469841A CN 104579719 B CN104579719 B CN 104579719B
- Authority
- CN
- China
- Prior art keywords
- firmware
- type
- optical module
- upgrade
- register
- 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
Links
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
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种固件的升级方法,光模块中配置有固件升级类型标识寄存器,所述固件升级类型标识寄存器中保存有所述光模块支持升级的固件类型标识,方法包括:向所述光模块对应的固件升级类型标识寄存器中写入待升级固件的类型标识,并通过读取所述光模块的固件升级状态寄存器,判断所述光模块是否支持待升级的固件类型;在确定所述光模块支持所述待升级的固件类型时,对所述光模块执行相应类型的固件升级处理。另一种固件的升级方法包括:在收到上位机的下载指令时,根据所述上位机在所述固件升级类型标识寄存器中写入的升级固件类型,执行相应类型的固件升级处理。本发明还公开了一种固件的升级系统、上位机和光模块。通过本发明,实现了同时适应多类型固件的在线升级。
Description
技术领域
本发明涉及远程在线升级技术领域,尤其涉及一种固件的升级方法和系统、上位机和光模块。
背景技术
随着光网络设备对可维护性要求的提高,远程在线升级功能成为光模块产品的关键需求之一。目前MDIO(Management Data Input/Output,管理数据输入/输出)MSA(MultiSource Agreement,多源协议)只定义了软件在线升级的实现方式,并未涵盖其他类型固件升级的处理方式,也即MDIO MSA并未定义适用于不同文件类型升级的途径和方法。
如图1所示,图1为现有技术中软件在线升级的时序图,MDIO MSA所规定的软件映像在线升级过程如下:
软件映像被上位机分割为若干个数据块,每个数据块应包含数据部分和循环冗余校验码(CRC,Cyclic Redundancy Checks)校验和;上位机向光模块发送一个下载映像的请求来启动软件升级过程,光模块接受此请求,设置“升级数据块准备”标志,一旦当前数据块接收过程中发生了任何错误,光模块都会通知上位机,上位机重新传送该数据块;如果同一个数据块发生多次CRC校验错误,上位机强制终止升级过程。当所有的软件映像数据包传送完成后,上位机下发下载完成命令来结束传送过程;光模块会通过成功完成状态命令来确认完整的映像已经被下载成功。下载过程中的错误通过设置错误状态寄存器来反馈。软件映像数据传输完成后,上位机下发运行下载映像请求,光模块将试运行下载的软件映像。试运行成功后,上位机下发映像默认版本指定(commit)命令。
以上软件升级过程中所用的MSA定义的寄存器如下表1所示:
表1
由于光模块设计复杂度的提高导致器件越来越多样,因此在线升级对象类型的单一性已经无法满足远程维护的需求。目前采用MDIO MSA的光模块所涉及的在线升级固件类型包括:微控制单元(MCU,Micro Control Unit)软件映像、现场可编程门阵列(FPGA,FieldProgrammable Gate Array)逻辑映像和核心集成电路(IC,Integrated Circuit)映像等。不同类型的固件升级过程存在差异,若每种类型都单独采用一种自定义的升级方式,将会增加协议的复杂性和冗余度。因此,怎样提供一种光模块的统一在线升级方法,使其能够同时适应不同类型的固件升级,是目前亟待解决的问题。
发明内容
有鉴于此,本发明的主要目的在于提供一种固件的升级方法和系统、上位机和光模块,以至少实现能够同时适应多种类型固件的在线升级。
为达到上述目的,本发明的技术方案是这样实现的:
一种固件的升级方法,光模块中配置有固件升级类型标识寄存器,所述固件升级类型标识寄存器中保存有所述光模块支持升级的固件类型标识,该方法包括:
向所述光模块对应的固件升级类型标识寄存器中写入待升级固件的类型标识,并通过读取所述光模块的固件升级状态寄存器,判断所述光模块是否支持待升级的固件类型;在确定所述光模块支持所述待升级的固件类型时,对所述光模块执行相应类型的固件升级处理。
优选的,所述通过读取光模块的固件升级状态寄存器,判断所述光模块是否支持待升级的固件类型,包括:
读取所述光模块的固件升级状态寄存器中升级命令执行状态比特位,若所读比特位指示命令执行成功,则确定所述光模块支持写入的固件类型标识所对应类型的固件升级;如果命令执行失败,则读所述光模块的固件升级状态寄存器中升级命令执行失败原因寄存器,若原因寄存器指示固件类型不支持,则确定所述光模块不支持写入的固件类型标识所对应类型的固件升级。
优选的,所述对光模块执行相应类型的固件升级处理,包括:
向所述光模块发送下载指令,并传输待升级的固件的映像数据;
在所述映像数据传输成功后,向所述光模块发送试运行新固件命令,指示所述光模块执行新固件的试运行;
在所述光模块试运行新固件成功后,向所述光模块发送映像数据指定命令,指定升级后的所述映像数据为所述光模块默认的启动相应固件的映像数据。
一种固件的升级方法,光模块中配置有固件升级类型标识寄存器,所述固件升级类型标识寄存器中保存有所述光模块支持升级的固件类型标识,该方法包括:
在收到上位机的下载指令时,根据所述上位机在所述固件升级类型标识寄存器中写入的升级固件类型,执行相应类型的固件升级处理。
优选的,所述执行相应类型的固件升级处理,包括:
在收到所述上位机发送的下载指令后,接收所述上位机传输的待升级的固件的映像数据,并在所述映像数据下载成功后,向所述上位机发送下载完成消息;
在收到所述上位机发送的试运行新固件命令后,根据所述命令中的固件类型标识,通过统一接口调用相应类型的固件激活策略执行所述新固件的试运行,并在试运行成功后,向所述上位机发送固件试运行成功消息;
在收到所述上位机发送的映像数据指定命令后,根据所述指定命令将升级后的所述映像数据设定为默认的启动相应固件的映像数据。
优选的,所述固件升级类型标识寄存器为管理数据输入/输出多源协议MDIO MSA的保留寄存器。
一种上位机,光模块中配置有固件升级类型标识寄存器,所述固件升级类型标识寄存器中保存有所述光模块支持升级的固件类型标识,所述上位机包括:
类型判断单元,用于向所述光模块对应的固件升级类型标识寄存器中写入待升级固件的类型标识,并通过读取所述光模块的固件升级状态寄存器,判断所述光模块是否支持待升级的固件类型;
固件升级单元,用于在所述类型判断单元的判断结果表征所述光模块支持所述待升级的固件类型时,对所述光模块执行相应类型的固件升级处理。
优选的,所述类型判断单元进一步用于,读取所述光模块的固件升级状态寄存器中升级命令执行状态比特位,若所读比特位指示命令执行成功,则确定所述光模块支持写入的固件类型标识所对应类型的固件升级;如果命令执行失败,则读所述光模块的固件升级状态寄存器中升级命令执行失败原因寄存器,若原因寄存器指示固件类型不支持,则确定所述光模块不支持写入的固件类型标识所对应类型的固件升级。
优选的,所述固件升级单元包括:
数据传输子单元,用于向所述光模块发送下载指令,并传输待升级的固件的映像数据;
固件试运行指示子单元,用于在所述映像数据传输成功后,向所述光模块发送试运行新固件命令,指示所述光模块执行新固件的试运行;
数据指示子单元,用于在所述光模块试运行新固件成功后,向所述光模块发送映像数据指定命令,指定升级后的所述映像数据为所述光模块默认的启动相应固件的映像数据。
一种光模块,所述光模块中配置有固件升级类型标识寄存器,所述固件升级类型标识寄存器中保存有所述光模块支持升级的固件类型标识,所述光模块还包括:
升级处理单元,用于在收到上位机的下载指令时,根据所述上位机在所述固件升级类型标识寄存器中写入的升级固件类型,执行相应类型的固件升级处理。
优选的,所述升级处理单元包括:
数据下载子单元,用于在收到所述上位机发送的下载指令后,接收所述上位机传输的待升级的固件的映像数据,并在所述映像数据下载成功后,向所述上位机发送下载完成消息;
固件试运行子单元,用于在收到所述上位机发送的试运行新固件命令后,根据所述命令中的固件类型标识,通过统一接口调用相应类型的固件激活策略执行所述新固件的试运行,并在试运行成功后,向所述上位机发送固件试运行成功消息;
数据指定子单元,在收到所述上位机发送的映像数据指定命令后,根据所述指定命令将升级后的所述映像数据设定为默认的启动相应固件的映像数据。
优选的,所述固件升级类型标识寄存器为管理数据输入/输出多源协议MDIO MSA的保留寄存器。
一种固件的升级系统,所述系统包括上述的上位机、以及光模块;
所述光模块中配置有固件升级类型标识寄存器,所述固件升级类型标识寄存器中保存有所述光模块支持升级的固件类型标识;
所述上位机,用于向所述光模块对应的固件升级类型标识寄存器中写入待升级固件的类型标识,并通过读取所述光模块的固件升级状态寄存器,判断所述光模块是否支持待升级的固件类型;在确定所述光模块支持所述待升级的固件类型时,对所述光模块执行相应类型的固件升级处理;
所述光模块,用于在在收到上位机的下载指令时,根据所述上位机在所述固件升级类型标识寄存器中写入的升级固件类型,执行相应类型的固件升级处理。
本发明所提供的一种固件的升级方法和系统、上位机和光模块,采用MDIOMSA中的一个保留寄存器作为升级固件类型标识寄存器,并复用MDIO MSA中的在线升级控制和状态寄存器,将不同固件类型升级过程中状态指示和控制方式统一起来;改进固件升级控制时序,实现控制过程的通用性、固件类型的可扩展性,以及寄存器的可复用性。
附图说明
图1为现有技术中软件在线升级的时序图;
图2为本发明实施例的一种固件升级的时序图;
图3为本发明实施例的固件激活示意图;
图4为本发明实施例的一种光模块的内部在线升级寄存器组的示意图;
图5为本发明实施例的一种固件升级系统的组成结构示意图。
具体实施方式
下面结合附图和具体实施例对本发明的技术方案进一步详细阐述。
本发明实施例提供的一种固件的升级方法,在光模块中配置有固件升级类型标识寄存器,所述固件升级类型标识寄存器中保存有所述光模块支持升级的固件类型标识,该方法主要包括:向光模块对应的固件升级类型标识寄存器中写入待升级固件的类型标识,并通过读取所述光模块的固件升级状态寄存器,判断所述光模块是否支持待升级的固件类型;在确定所述光模块支持所述待升级的固件类型时,对所述光模块执行相应类型的固件升级处理。
该方法的执行主体可以是上位机,因此,该升级方法也可描述为:上位机向光模块对应的固件升级类型标识寄存器中写入待升级固件的类型标识,并通过读取所述光模块的固件升级状态寄存器,判断所述光模块是否支持待升级的固件类型;在确定所述光模块支持所述待升级的固件类型时,对所述光模块执行相应类型的固件升级处理。
本发明实施例中,可以启用MDIO MSA中的一个保留寄存器,作为固件升级类型标识寄存器;优选的,可以将MDIO MSA中的保留寄存器B052设定为固件升级类型标识寄存器,使用该寄存器的15~12比特位作为固件升级类型标识,具体类型对应值如下表2所示。表2中列举了三种固件类型:MCU软件映像、FPGA逻辑映像、数字信号处理(DSP,Digital SignalProcessor)芯片映像,当然,本发明实施例并非仅限于这些固件类型,其他类型固件可在此基础上进行扩展。另外,本发明实施例中,在MDIO MSA原有寄存器B051的升级命令失败原因比特信息中增加固件类型不支持一项。其对应值如表3所示。
表2
表3
由于B052寄存器为非易失性的,因此掉电或复位重启后会恢复为最后一次的设置值。
作为本发明的一种优选实施方式,所述通过读取光模块的固件升级状态寄存器,判断所述光模块是否支持待升级的固件类型,包括:
读取所述光模块的固件升级状态寄存器中升级命令执行状态比特位,若所读比特位指示命令执行成功,则确定所述光模块支持写入的固件类型标识所对应类型的固件升级;如果命令执行失败,则读所述光模块的固件升级状态寄存器中升级命令执行失败原因寄存器,若原因寄存器指示固件类型不支持,则确定所述光模块不支持写入的固件类型标识所对应类型的固件升级。
在确定光模块支持待升级的固件类型时,对光模块执行相应类型的固件升级处理,包括:
向光模块发送下载指令,并传输待升级的固件的映像数据;
在映像数据传输成功后,向光模块发送试运行新固件命令,指示光模块执行新固件的试运行;
在光模块试运行新固件成功后,向光模块发送映像数据指定命令,指定升级后的映像数据为光模块默认的启动相应固件的映像数据。
本发明实施例还提供了一种固件的升级方法,在光模块中配置有固件升级类型标识寄存器,所述固件升级类型标识寄存器中保存有所述光模块支持升级的固件类型标识,该方法主要包括:在收到上位机的下载指令时,根据上位机在固件升级类型标识寄存器中写入的升级固件类型,执行相应类型的固件升级处理。
该方法的执行主体是光模块,因此,该升级方法也描述为:光模块在收到上位机的下载指令时,根据上位机在固件升级类型标识寄存器中写入的升级固件类型,执行相应类型的固件升级处理。
本发明实施例中,可以启用MDIO MSA中的一个保留寄存器,作为固件升级类型标识寄存器;优选的,可以将MDIO MSA中的保留寄存器B052设定为固件升级类型标识寄存器,使用该寄存器的15~12比特位作为固件升级类型标识,具体类型对应值如上表2所示。由于B052寄存器为非易失性的,因此掉电或复位重启后会恢复为最后一次的设置值。
作为本发明的一种优选实施方式,所述光模块执行相应类型的固件升级处理,包括:
在收到所述上位机发送的下载指令后,接收所述上位机传输的待升级的固件的映像数据,并在所述映像数据下载成功后,向所述上位机发送下载完成消息;
在收到所述上位机发送的试运行新固件命令后,根据所述命令中的固件类型标识,通过统一接口调用相应类型的固件激活策略执行所述新固件的试运行,并在试运行成功后,向所述上位机发送固件试运行成功消息;
在收到所述上位机发送的映像数据指定命令后,根据所述指定命令将升级后的所述映像数据设定为默认的启动相应固件的映像数据。
下面再结合图2所示的时序图,对上位机和光模块之间执行的固件升级过程进一步详细说明。固件升级过程主要包括:
步骤201,上位机向光模块设置升级固件类型。
具体的,上位机向光模块的固件升级类型标识寄存器中写入待升级固件的类型标识。
步骤202,上位机查询升级固件类型的设置是否成功。
具体的,上位机读取所述光模块的固件升级状态寄存器中升级命令执行状态比特位,若所读比特位指示命令执行成功,则确定所述光模块支持写入的固件类型标识所对应类型的固件升级;如果命令执行失败,则读所述光模块的固件升级状态寄存器中升级命令执行失败原因寄存器,若原因寄存器指示固件类型不支持,则确定所述光模块不支持写入的固件类型标识所对应类型的固件升级。在升级固件类型设置成功后,继续执行后续步骤;在升级固件类型设置失败后,终止操作。
步骤203~205,上位机向光模块发送下载指令,并传输待升级的固件的映像数据。
一种可行的数据传输过程为:上位机将待升级的固件的映像数据分割为若干个数据块,每个数据块应包含数据部分和循环冗余校验码(CRC,Cyclic Redundancy Checks)校验和;一旦当前数据块接收过程中发生了任何错误,光模块都会通知上位机,上位机重新传送该数据块;如果同一个数据块发生多次CRC校验错误,上位机强制终止升级过程。当所有的映像数据包传送完成后,上位机下发数据传输完成命令来结束传送过程;光模块会通过发送在线下载完成消息来确认完整的映像已经被下载成功。下载过程中的错误通过光模块的状态寄存器来记录并反馈。
步骤206,在映像数据传输成功后,上位机向光模块发送试运行新固件命令,指示光模块执行新固件的试运行。
步骤207,在收到上位机发送的试运行新固件命令后,光模块根据所述命令中的固件类型标识,通过统一接口调用相应类型的固件激活策略执行新固件的试运行,并在试运行成功后,向所述上位机发送固件试运行成功消息。
由于不同映像数据的激活方式会不同,因此,本发明实施例通过光模块利用命令中的固件类型标识,采用统一的动态接口调用相应类型的固件激活策略执行新固件的试运行。以MCU映像和FPGA映像的激活为例,如图3所示,当执行MCU映像数据的试运行时,光模块通过调用统一的激活固件接口,执行相应的MCU固件激活步骤,包括:置MCU固件运行标识位;MCU软件重启;boot或管理进程根据标识位启动新的MCU固件。当执行FPGA映像数据的试运行时,光模块通过调用统一的激活固件接口,执行相应的FPGA固件激活步骤,包括:保存当前FPGA重要数据;加载新的FPGA固件;根据重要数据回复FPGA激活前的状态。
步骤208,在光模块试运行新固件成功后,上位机向光模块发送映像数据指定命令,指定升级后的映像数据为光模块默认的启动相应固件的映像数据。
步骤209,光模块在收到上位机发送的映像数据指定命令后,根据所述指定命令将升级后的映像数据设定为默认的启动相应固件的映像数据。
再如图4所示,图4为本发明实施例一种光模块的内部在线升级寄存器组的示意图。图4中,在线升级寄存器组包括:升级控制寄存器B051、状态寄存器B04D、数据传输控制寄存器B04C、数据块存储寄存器组(BC00~BFFF)、以及固件升级类型标识寄存器B052。其中,升级控制寄存器B051负责控制光模块的固件在线升级过程;状态寄存器B04D负责固件在线升级过程中的状态存储;数据传输控制寄存器B04C负责与上位机之间的数据交互;数据块存储寄存器组BC00~BFFF负责在线升级过程中的数据存储;固件升级类型标识寄存器B052负责保存光模块支持升级的固件类型标识,例如:图4中标识0代表MCU映像类型,标识1代表FPGA映像类型,标识2代表DSP芯片映像类型。上位机可执行对光模块的固件升级类型标识寄存器B052的读/写操作,对数据块存储寄存器组的写操作等等。
对应上述固件升级的方法,本发明实施例还提供一种固件升级的系统,如图5所示,该系统包括:上位机10和光模块20;
其中,光模块20中配置有固件升级类型标识寄存器,所述固件升级类型标识寄存器中保存有所述光模块支持升级的固件类型标识;
上位机10,用于向光模块20对应的固件升级类型标识寄存器中写入待升级固件的类型标识,并通过读取光模块20的固件升级状态寄存器,判断光模块20是否支持待升级的固件类型;在确定光模块20支持待升级的固件类型时,对光模块20执行相应类型的固件升级处理;
光模块20,用于在在收到上位机10的下载指令时,根据上位机10在固件升级类型标识寄存器中写入的升级固件类型,执行相应类型的固件升级处理。
优选的,上位机10包括:
类型判断单元11,用于向光模块20对应的固件升级类型标识寄存器中写入待升级固件的类型标识,并通过读取光模块20的固件升级状态寄存器,判断光模块20是否支持待升级的固件类型;
固件升级单元12,用于在类型判断单元11的判断结果表征光模块20支持待升级的固件类型时,对光模块20执行相应类型的固件升级处理。
优选的,类型判断单元11进一步用于,读取光模块20的固件升级状态寄存器中升级命令执行状态比特位,若所读比特位指示命令执行成功,则确定光模块20支持写入的固件类型标识所对应类型的固件升级;如果命令执行失败,则读光模块20的固件升级状态寄存器中升级命令执行失败原因寄存器,若原因寄存器指示固件类型不支持,则确定光模块20不支持写入的固件类型标识所对应类型的固件升级。优选的,固件升级单元12包括:
数据传输子单元121,用于向光模块20发送下载指令,并传输待升级的固件的映像数据;
固件试运行指示子单元122,用于在映像数据传输成功后,向光模块20发送试运行新固件命令,指示光模块20执行新固件的试运行;
数据指示子单元123,用于在光模块试运行新固件成功后,向光模块20发送映像数据指定命令,指定升级后的所述映像数据为光模块20默认的启动相应固件的映像数据。
优选的,光模块20还包括:升级处理单元21,用于在收到上位机10的下载指令时,根据上位机10在固件升级类型标识寄存器中写入的升级固件类型,执行相应类型的固件升级处理。
优选的,升级处理单元21包括:
数据下载子单元211,用于在收到上位机10发送的下载指令后,接收上位机10传输的待升级的固件的映像数据,并在所述映像数据下载成功后,向上位机10发送下载完成消息;
固件试运行子单元212,用于在收到上位机10发送的试运行新固件命令后,根据所述命令中的固件类型标识,通过统一接口调用相应类型的固件激活策略执行所述新固件的试运行,并在试运行成功后,向上位机10发送固件试运行成功消息;
数据指定子单元213,在收到上位机10发送的映像数据指定命令后,根据所述指定命令将升级后的所述映像数据设定为默认的启动相应固件的映像数据。
综上所述,本发明实施例采用MDIO MSA中的一个保留寄存器作为升级固件状态寄存器,用来反映当前光模块所支持的在线升级的固件类型,并控制在线升级的固件类型;复用MDIO MSA中的在线升级控制和状态寄存器,在已有的在线升级状态寄存器中添加在线升级命令执行失败原因信息,将不同固件类型升级过程中状态指示和控制方式统一起来;在升级控制时序中增加对固件类型判断环节,依据不同类型的升级固件对其进行差异化处理,改进固件升级控制时序,实现控制过程的通用性、固件类型的可扩展性,以及寄存器的可复用性,有利于将来新增固件类型时的扩展,有利于扩大MDIO MSA的适用范围。添加在线升级固件类型标识寄存器,节省了MDIO MSA中保留寄存器的资源,使可扩展性得到极大保证;使得在线升级控制时序的可复用性得到提高,降低了实现复杂度。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (11)
1.一种固件的升级方法,其特征在于,光模块中配置有固件升级类型标识寄存器,所述固件升级类型标识寄存器中保存有所述光模块支持升级的固件类型标识,该方法包括:
向所述光模块对应的固件升级类型标识寄存器中写入待升级固件的类型标识;
通过读取所述光模块的固件升级状态寄存器中升级命令执行状态比特位,来判断所述光模块是否支持待升级的固件类型;
若所读比特位指示命令执行成功,则确定所述光模块支持写入的固件类型标识所对应类型的固件升级,对所述光模块执行相应类型的固件升级处理;
如果命令执行失败,则读所述光模块的固件升级状态寄存器中升级命令执行失败原因寄存器,若原因寄存器指示固件类型不支持,则确定所述光模块不支持写入的固件类型标识所对应类型的固件升级。
2.根据权利要求1所述固件的升级方法,其特征在于,所述对光模块执行相应类型的固件升级处理,包括:
向所述光模块发送下载指令,并传输待升级的固件的映像数据;
在所述映像数据传输成功后,向所述光模块发送试运行新固件命令,指示所述光模块执行新固件的试运行;
在所述光模块试运行新固件成功后,向所述光模块发送映像数据指定命令,指定升级后的所述映像数据为所述光模块默认的启动相应固件的映像数据。
3.一种固件的升级方法,其特征在于,光模块中配置有固件升级类型标识寄存器和固件升级状态寄存器,所述固件升级类型标识寄存器中保存有所述光模块支持升级的固件类型标识,所述固件升级状态寄存器中保存有升级命令执行状态比特位;当所述升级命令执行状态比特位指示命令执行成功,则支持写入的固件类型标识所对应类型的固件升级;当升级命令执行状态比特位指示命令执行失败,且所述固件升级状态寄存器中升级命令执行失败原因寄存器指示固件类型不支持,则不支持写入的固件类型标识所对应类型的固件升级;
该方法包括:
在收到上位机的下载指令时,根据所述上位机在所述固件升级类型标识寄存器中写入的升级固件类型,执行相应类型的固件升级处理;其中,所述下载指令为所述上位机从所述光模块读取的所述升级命令执行状态比特位指示命令执行成功时发送。
4.根据权利要求3所述固件的升级方法,其特征在于,所述执行相应类型的固件升级处理,包括:
在收到所述上位机发送的下载指令后,接收所述上位机传输的待升级的固件的映像数据,并在所述映像数据下载成功后,向所述上位机发送下载完成消息;
在收到所述上位机发送的试运行新固件命令后,根据所述命令中的固件类型标识,通过统一接口调用相应类型的固件激活策略执行所述新固件的试运行,并在试运行成功后,向所述上位机发送固件试运行成功消息;
在收到所述上位机发送的映像数据指定命令后,根据所述指定命令将升级后的所述映像数据设定为默认的启动相应固件的映像数据。
5.根据权利要求3或4所述固件的升级方法,其特征在于,所述固件升级类型标识寄存器为管理数据输入/输出多源协议MDIO MSA的保留寄存器。
6.一种上位机,其特征在于,光模块中配置有固件升级类型标识寄存器,所述固件升级类型标识寄存器中保存有所述光模块支持升级的固件类型标识,所述上位机包括:
类型判断单元,用于向所述光模块对应的固件升级类型标识寄存器中写入待升级固件的类型标识,通过读取所述光模块的固件升级状态寄存器中升级命令执行状态比特位,来判断所述光模块是否支持待升级的固件类型;
若所读比特位指示命令执行成功,则确定所述光模块支持写入的固件类型标识所对应类型的固件升级,对所述光模块执行相应类型的固件升级处理;
如果命令执行失败,则读所述光模块的固件升级状态寄存器中升级命令执行失败原因寄存器,若原因寄存器指示固件类型不支持,则确定所述光模块不支持写入的固件类型标识所对应类型的固件升级;
固件升级单元,用于在所述类型判断单元的判断结果表征所述光模块支持所述待升级的固件类型时,对所述光模块执行相应类型的固件升级处理。
7.根据权利要求6所述上位机,其特征在于,所述固件升级单元包括:
数据传输子单元,用于向所述光模块发送下载指令,并传输待升级的固件的映像数据;
固件试运行指示子单元,用于在所述映像数据传输成功后,向所述光模块发送试运行新固件命令,指示所述光模块执行新固件的试运行;
数据指示子单元,用于在所述光模块试运行新固件成功后,向所述光模块发送映像数据指定命令,指定升级后的所述映像数据为所述光模块默认的启动相应固件的映像数据。
8.一种光模块,其特征在于,所述光模块中配置有固件升级类型标识寄存器和固件升级状态寄存器,所述固件升级类型标识寄存器中保存有所述光模块支持升级的固件类型标识,所述固件升级状态寄存器中保存有升级命令执行状态比特位;当所述升级命令执行状态比特位指示命令执行成功,则支持写入的固件类型标识所对应类型的固件升级;当升级命令执行状态比特位指示命令执行失败,且所述固件升级状态寄存器中升级命令执行失败原因寄存器指示固件类型不支持,则不支持写入的固件类型标识所对应类型的固件升级;所述光模块还包括:
升级处理单元,用于在收到上位机的下载指令时,根据所述上位机在所述固件升级类型标识寄存器中写入的升级固件类型,执行相应类型的固件升级处理;其中,所述下载指令为所述上位机从所述光模块读取的所述升级命令执行状态比特位指示命令执行成功时发送。
9.根据权利要求8所述光模块,其特征在于,所述升级处理单元包括:
数据下载子单元,用于在收到所述上位机发送的下载指令后,接收所述上位机传输的待升级的固件的映像数据,并在所述映像数据下载成功后,向所述上位机发送下载完成消息;
固件试运行子单元,用于在收到所述上位机发送的试运行新固件命令后,根据所述命令中的固件类型标识,通过统一接口调用相应类型的固件激活策略执行所述新固件的试运行,并在试运行成功后,向所述上位机发送固件试运行成功消息;
数据指定子单元,在收到所述上位机发送的映像数据指定命令后,根据所述指定命令将升级后的所述映像数据设定为默认的启动相应固件的映像数据。
10.根据权利要求8或9所述光模块,其特征在于,所述固件升级类型标识寄存器为管理数据输入/输出多源协议MDIO MSA的保留寄存器。
11.一种固件的升级系统,其特征在于,所述系统包括权利要求6和7任一项所述的上位机、以及权利要求8-10任一项所述的光模块;
所述光模块中配置有固件升级类型标识寄存器,所述固件升级类型标识寄存器中保存有所述光模块支持升级的固件类型标识;
所述上位机,用于向所述光模块对应的固件升级类型标识寄存器中写入待升级固件的类型标识,通过读取所述光模块的固件升级状态寄存器中升级命令执行状态比特位,来判断所述光模块是否支持待升级的固件类型;
若所读比特位指示命令执行成功,则确定所述光模块支持写入的固件类型标识所对应类型的固件升级,对所述光模块执行相应类型的固件升级处理;
如果命令执行失败,则读所述光模块的固件升级状态寄存器中升级命令执行失败原因寄存器,若原因寄存器指示固件类型不支持,则确定所述光模块不支持写入的固件类型标识所对应类型的固件升级;
所述光模块,用于在收到上位机的下载指令时,根据所述上位机在所述固件升级类型标识寄存器中写入的升级固件类型,执行相应类型的固件升级处理。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310469841.2A CN104579719B (zh) | 2013-10-10 | 2013-10-10 | 一种固件的升级方法和系统、上位机和光模块 |
EP14852023.2A EP3043512B1 (en) | 2013-10-10 | 2014-06-18 | Firmware upgrade method and system, upper computer and optical module |
PCT/CN2014/080222 WO2015051647A1 (zh) | 2013-10-10 | 2014-06-18 | 一种固件的升级方法和系统、上位机和光模块 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310469841.2A CN104579719B (zh) | 2013-10-10 | 2013-10-10 | 一种固件的升级方法和系统、上位机和光模块 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104579719A CN104579719A (zh) | 2015-04-29 |
CN104579719B true CN104579719B (zh) | 2019-07-19 |
Family
ID=52812500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310469841.2A Active CN104579719B (zh) | 2013-10-10 | 2013-10-10 | 一种固件的升级方法和系统、上位机和光模块 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP3043512B1 (zh) |
CN (1) | CN104579719B (zh) |
WO (1) | WO2015051647A1 (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106528186A (zh) * | 2015-09-09 | 2017-03-22 | 阿里巴巴集团控股有限公司 | 资源文件的更新方法和装置 |
CN106598632B (zh) * | 2015-10-15 | 2022-02-18 | 中兴通讯股份有限公司 | 一种光模块的固件升级方法及装置 |
CN105847067A (zh) * | 2016-05-25 | 2016-08-10 | 北京小米移动软件有限公司 | Zigbee设备的升级方法和装置 |
CN106681766B (zh) * | 2016-12-26 | 2021-04-27 | 广东芬尼克兹节能设备有限公司 | 远程固件升级控制方法及系统 |
CN106843932B (zh) * | 2016-12-26 | 2020-07-24 | 歌尔科技有限公司 | 虚拟现实设备固件的升级方法及系统 |
CN108694054A (zh) * | 2017-04-10 | 2018-10-23 | 南昌欧菲生物识别技术有限公司 | 微处理器固件的升级方法及智能终端 |
CN107220091B (zh) * | 2017-06-08 | 2020-06-26 | 成都欧飞凌通讯技术有限公司 | 一种100g cfp主备映象文件的升级与切换方法 |
CN109144532B (zh) * | 2017-06-13 | 2023-04-11 | 中兴通讯股份有限公司 | 升级方法及装置 |
CN109388413A (zh) * | 2017-08-03 | 2019-02-26 | 中车株洲电力机车研究所有限公司 | 一种fpga程序更新方法及系统 |
CN109901866A (zh) * | 2017-12-07 | 2019-06-18 | 航天科工惯性技术有限公司 | 用于多模块系统的在线升级方法及旋转导向系统 |
CN108958765B (zh) * | 2018-06-12 | 2022-12-09 | 新华三技术有限公司 | 升级光模块固件的方法及装置 |
CN108984200A (zh) * | 2018-07-17 | 2018-12-11 | 郑州云海信息技术有限公司 | 一种定时更新固件的方法及装置 |
CN108599861B (zh) * | 2018-07-27 | 2024-09-20 | 深圳市极致兴通科技有限公司 | 一种通用的有源光模块写码装置及设备 |
CN109189434A (zh) * | 2018-09-20 | 2019-01-11 | 安徽南瑞中天电力电子有限公司 | 一种电能表的在线升级方法 |
JP7281275B2 (ja) * | 2018-12-20 | 2023-05-25 | Nttエレクトロニクス株式会社 | モジュール及びこれを備える情報処理装置、並びにモジュールのプログラムデータを更新するプログラムデータ更新方法 |
CN111367539A (zh) * | 2018-12-25 | 2020-07-03 | 北京兆易创新科技股份有限公司 | 一种eMMC在线升级方法和装置 |
CN110018854B (zh) * | 2019-03-26 | 2021-10-22 | 联想(北京)有限公司 | 一种固件匹配方法、设备和计算机可读存储介质 |
CN110442356A (zh) * | 2019-08-06 | 2019-11-12 | 东莞铭普光磁股份有限公司 | Dsp固件的升级方法及装置 |
CN111045703B (zh) * | 2019-11-07 | 2023-08-11 | 许继集团有限公司 | 一种电池管理单元软件升级方法及系统 |
CN111273930A (zh) * | 2020-01-21 | 2020-06-12 | 深圳市雷赛软件技术有限公司 | 固件升级控制方法、上位机及固件升级系统 |
CN111309359A (zh) * | 2020-03-16 | 2020-06-19 | 深圳益邦物联科技有限公司 | 固件远程控制自动升级方法、电子设备及存储介质 |
CN111880817B (zh) * | 2020-07-27 | 2023-04-07 | 北京环境特性研究所 | 一种用于光电监控系统的远程烧写方法 |
CN112181467B (zh) * | 2020-10-10 | 2023-11-14 | 北京字节跳动网络技术有限公司 | 终端的存储器固件升级方法、装置、终端和存储介质 |
CN112540785B (zh) * | 2020-11-17 | 2025-01-10 | 中山市江波龙电子有限公司 | 一种存储装置的固件升级方法、控制设备及存储装置 |
CN112230967B (zh) * | 2020-11-19 | 2024-03-29 | 成都新易盛通信技术股份有限公司 | 一种基于传统分区的光模块固件可回退在线升级方法 |
CN114915345B (zh) * | 2021-01-29 | 2023-12-01 | 青岛海信宽带多媒体技术有限公司 | 一种光模块 |
CN112783531A (zh) * | 2021-01-29 | 2021-05-11 | 湖北三江航天红峰控制有限公司 | 一种fpga与dsp架构下以太网升级dsp程序方法 |
CN113821240B (zh) * | 2021-09-03 | 2023-11-17 | 锐捷网络股份有限公司 | 固件升级方法、电子设备、存储介质及信号锁存电路 |
CN118245092B (zh) * | 2024-05-28 | 2024-08-09 | 浙江正泰中自控制工程有限公司 | 一种安全控制平台多模块在线升级的方法 |
CN119202858A (zh) * | 2024-11-27 | 2024-12-27 | 威胜集团有限公司 | 一种智能计量设备升级包的辨识方法、介质及终端 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1584822A (zh) * | 2003-08-19 | 2005-02-23 | 联想(北京)有限公司 | 一种升级计算机固件程序的方法 |
GB2449193A (en) * | 2004-07-07 | 2008-11-12 | Dell Products Lp | Embedding optical drive compatibility information in optical media |
CN102098590A (zh) * | 2009-12-15 | 2011-06-15 | 中兴通讯股份有限公司 | 光网络单元固件版本自动升级方法及系统 |
CN102195798A (zh) * | 2010-03-16 | 2011-09-21 | 中兴通讯股份有限公司 | 一种升级光网络单元的方法和系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101950253B (zh) * | 2010-08-12 | 2013-03-13 | 深圳市共进电子股份有限公司 | 借助web网页接口升级光网络单元中光模块固件的方法 |
CN103248424A (zh) * | 2012-02-14 | 2013-08-14 | 深圳市卓翼科技股份有限公司 | 光模块固件升级方法及系统 |
-
2013
- 2013-10-10 CN CN201310469841.2A patent/CN104579719B/zh active Active
-
2014
- 2014-06-18 WO PCT/CN2014/080222 patent/WO2015051647A1/zh active Application Filing
- 2014-06-18 EP EP14852023.2A patent/EP3043512B1/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1584822A (zh) * | 2003-08-19 | 2005-02-23 | 联想(北京)有限公司 | 一种升级计算机固件程序的方法 |
GB2449193A (en) * | 2004-07-07 | 2008-11-12 | Dell Products Lp | Embedding optical drive compatibility information in optical media |
CN102098590A (zh) * | 2009-12-15 | 2011-06-15 | 中兴通讯股份有限公司 | 光网络单元固件版本自动升级方法及系统 |
CN102195798A (zh) * | 2010-03-16 | 2011-09-21 | 中兴通讯股份有限公司 | 一种升级光网络单元的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2015051647A1 (zh) | 2015-04-16 |
EP3043512A4 (en) | 2017-01-04 |
CN104579719A (zh) | 2015-04-29 |
EP3043512B1 (en) | 2020-01-01 |
EP3043512A1 (en) | 2016-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104579719B (zh) | 一种固件的升级方法和系统、上位机和光模块 | |
CN106598632B (zh) | 一种光模块的固件升级方法及装置 | |
CN105354070B (zh) | 一种通过i2c升级设备固件的方法 | |
US20180074828A1 (en) | Setting a startup parameter and controlling startup of a mainboard | |
CN102945173B (zh) | 用户程序在线升级系统和升级方法 | |
CN105373404A (zh) | 软件镜像烧录方法及设备 | |
CN103777972A (zh) | 基于现场可编程门阵列的系统、配置方法以及升级方法 | |
CN112068896B (zh) | Dts修改的方法、装置及计算机可读存储介质 | |
WO2016033941A1 (zh) | Boot在线升级装置及方法 | |
CN103336701B (zh) | 智能型引导升级方法 | |
CN105094877A (zh) | 一种固件升级的方法和主机端装置及系统 | |
CN101944033A (zh) | 一种嵌入式系统中动态支持多种协议的装置及方法 | |
CN103761131A (zh) | 一种基于内存共享的多板卡部件自动更新方法及系统 | |
CN107807869A (zh) | 一种测试系统和测试方法 | |
CN107315607B (zh) | 一种驱动自适应加载系统 | |
CN101515834B (zh) | 一种主控卡、基于多备份主控卡的切换系统及其切换方法 | |
CN111756858A (zh) | 嵌入式设备的远程开发处理系统、方法及装置 | |
CN108984216B (zh) | 一种自动进入与配置bios的方法与装置 | |
CN107977206A (zh) | 一种批量业务数据文件处理方法及装置 | |
CN110888689B (zh) | 一种触摸屏驱动的加载方法、存储介质及终端设备 | |
CN107168756A (zh) | 射频驱动编译调试的方法、客户端、服务端和存储装置 | |
CN110286933A (zh) | 一种跨系统串口升级方法 | |
CN103176822B (zh) | 一种下载数据的控制方法及控制装置 | |
CN110096047B (zh) | 一种机器人运动控制系统的升级方法及系统 | |
CN118069175A (zh) | 一种基于eol系统的软件升级方法、装置及系统 |
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 |