CN117369841A - 固件激活方法、装置、相关设备及计算机可读存储介质 - Google Patents
固件激活方法、装置、相关设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN117369841A CN117369841A CN202210751459.XA CN202210751459A CN117369841A CN 117369841 A CN117369841 A CN 117369841A CN 202210751459 A CN202210751459 A CN 202210751459A CN 117369841 A CN117369841 A CN 117369841A
- Authority
- CN
- China
- Prior art keywords
- firmware
- activation
- modules
- module
- information
- 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
- 230000004913 activation Effects 0.000 title claims abstract description 763
- 238000000034 method Methods 0.000 title claims abstract description 122
- 230000002093 peripheral effect Effects 0.000 claims abstract description 493
- 230000003213 activating effect Effects 0.000 claims abstract description 94
- 230000004048 modification Effects 0.000 claims description 83
- 238000012986 modification Methods 0.000 claims description 83
- 238000012217 deletion Methods 0.000 claims description 12
- 230000037430 deletion Effects 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004891 communication Methods 0.000 claims description 10
- 238000007726 management method Methods 0.000 description 160
- 230000006870 function Effects 0.000 description 24
- 230000008859 change Effects 0.000 description 17
- 238000012795 verification Methods 0.000 description 15
- 238000010586 diagram Methods 0.000 description 13
- 238000012423 maintenance Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- CQIZBIFTOGBKDB-UHFFFAOYSA-N 4-cyclohexyl-1-methyl-3,6-dihydro-2h-pyridine Chemical compound C1N(C)CCC(C2CCCCC2)=C1 CQIZBIFTOGBKDB-UHFFFAOYSA-N 0.000 description 8
- 101100076239 Drosophila melanogaster Mctp gene Proteins 0.000 description 8
- 230000003993 interaction Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000012512 characterization method Methods 0.000 description 3
- 238000005111 flow chemistry technique Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000013499 data model Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
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
Abstract
本申请实施例公开一种固件激活方法、装置、相关设备及计算机可读存储介质,该方法应用于固件激活系统,该固件激活系统包括固件激活模块和外围设备,该方法包括:外围设备根据自身待升级固件(即第一固件)的信息和正在使用的固件(即第二固件)的信息,确定第一固件的激活方式,之后,外围设备可以将确定的第一固件的激活方式通知给固件激活模块。之后,固件激活模块可以根据该激活方式激活第一固件。本申请实施例,外围设备可以根据第一固件的信息和第二固件的信息确定第一固件的激活方式,而不是采用固定的激活方式,从而可以提高固件激活的灵活性。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种固件激活方法、装置、相关设备及计算机可读存储介质。
背景技术
固件(firmware)是指运行于电子设备(如服务器的外围设备)芯片上的代码或程序,用于实现电子设备的功能。例如,网卡的固件用于实现网卡的网络连接、报文收发等功能。
随着服务器的功能和性能不断提升和完善,服务器的外围设备的固件也需要不断进行升级和激活(即更新固件代码)。目前,服务器的外围设备将待升级固件写入存储介质中之后(即固件升级完成之后),服务器直接采用主机复位或者主机下电再上电的方式激活外围设备的待升级固件,灵活性较低。
发明内容
本申请实施例公开了一种固件激活方法、装置、相关设备及计算机可读存储介质,用于提高固件激活的灵活性。
第一方面公开一种固件激活方法,该固件激活方法可以应用于固件激活系统(如服务器),该固件激活系统可以包括固件激活模块和外围设备。该固件激活方法可以包括:该外围设备获取第一固件的信息,根据第一固件的信息和第二固件的信息,确定该第一固件的激活方式,该第一固件为该外围设备的待升级固件,该第二固件为该外围设备正在使用的固件;该外围设备向该固件激活模块发送第一指示信息,该第一指示信息指示该第一固件的激活方式;该固件激活模块根据该激活方式激活该第一固件。
本申请实施例中,第一固件和/或第二固件不同,第一固件相较于第二固件变更的内容不同,外围设备根据第一固件的信息和第二固件的信息确定的第一固件的激活方式可能不同,因此,外围设备可以根据自身当前正在使用的固件的信息和待升级固件的信息确定合适的激活方式,然后可以向固件激活模块发送第一指示信息通知第一固件的激活方式。之后,固件激活模块可以根据该激活方式对待升级固件进行激活,而不是直接采用主机复位或者主机下电再上电的方式对第一固件进行激活,可以提高固件激活的灵活性。
作为一种可能的实施方式,该第一固件包括N个模块,该第一固件的信息包括该N个模块的标识、版本号和激活方式,N为大于或等于1的正整数。
作为一种可能的实施方式,该第一固件的信息还包括该N个模块的特征描述。
作为一种可能的实施方式,该第二固件包括M个模块,M为大于或等于1的正整数;该外围设备根据该第一固件的信息和第二固件的信息,确定该第一固件的激活方式,包括:该外围设备根据该N个模块的信息和该M个模块的信息,确定K个模块,该K个模块包括该N个模块相对该M个模块的删除模块、新增模块和修改模块,K为大于或等于1的正整数;该外围设备根据该K个模块确定该第一固件的激活方式。
本申请实施例中,在第一固件与第二固件相比存在变更的模块的情况下,需要对变更的模块进行激活,因此,可以先根据第一固件包括的N个模块的信息和第二固件包括的M个模块的信息确定变更的模块,再确定变更模块对应的激活方式,从而可以根据变更模块对应的激活方式确定最终的激活方式,不需要确定所有模块对应的激活方式,可以减少不必要的处理过程。
作为一种可能的实施方式,该外围设备根据该N个模块的信息和M个模块的信息,确定K个模块,包括:该外围设备根据该N个模块的标识和该M个模块的标识,确定该N个模块相对该M个模块的删除模块和新增模块;该外围设备根据该N个模块的标识和版本号以及该M个模块的标识和版本号确定该N个模块相对该M个模块的修改模块;该外围设备根据该N个模块相对该M个模块的删除模块和新增模块,以及该N个模块相对该M个模块的修改模块,确定该K个模块。
本申请实施例中,外围设备根据模块的标识和版本号,可以准确地确定发生了变更的K个模块,从而可以根据K个模块对应的激活方式确定合适的激活方式,进而可以提高激活方式的合理性。
作为一种可能的实施方式,该外围设备根据该K个模块确定该第一固件的激活方式包括:该外围设备确定该K个模块中每个模块对应的激活方式,得到L个激活方式,L为小于或等于K且大于0的整数,不同激活方式对应不同优先级;该外围设备将该L个激活方式中优先级最高的激活方式确定为该第一固件的激活方式。
本申请实施例中,变更模块中不同模块对应的激活方式可能不同,也可能相同,而不同激活方式对应的优先级不同,将变更模块对应的激活方式中优先级最高的激活方式确定为待升级固件的激活方式,可以保证变更模块中所有模块均能被激活,进而可以保证外围设备能够使用升级后的固件进行相应的处理。此外,由于每个模块对应的激活方式为能够激活该模块的优先级最低的激活方式,因此,确定的第一固件的激活方式为能够激活第一固件的激活方式中优先级最低的激活方式,而激活方式的优先级越低,对业务的影响越低,从而可以尽可能的减轻第一固件的激活对业务的影响。
作为一种可能的实施方式,该外围设备确定该K个模块中每个模块对应的激活方式,得到L个激活方式包括:该外围设备获取该K个模块中新增模块和删除模块的激活方式,得到L1个激活方式,L1为大于或等于0的整数;该外围设备根据该K个模块中修改模块的特征描述确定该修改模块的激活方式,得到L2个激活方式,L2为大于或等于0的整数;该外围设备根据该L1个激活方式和该L2个激活方式确定该L个激活方式,L为小于或等于L1+L2的整数。
本申请实施例中,变更模块中新增模块和删除模块的激活方式是固定的,因此,可以直接从模块的信息中获取新增模块和删除模块的激活方式。修改模块的修改内容不同对应的激活方式可以不同,由于特征描述包括模块的特性细节说明(如支持的功能、配置参数等),因此,可以根据修改模块的特征描述准确地确定激活方式。可见,外围设备可以根据模块变更的类型,采用不同的方式确定激活方式,可以提高激活方式确定的灵活性和合理性。此外,通过修改模块的特征描述确定的激活方式的优先级低于或等于从该修改模块的信息中直接获取的激活方式的优先级,从而可以避免最后根据该L个激活方式确定的第一固件的激活方式的优先级偏高,可以降低对业务的影响。
作为一种可能的实施方式,该方法还可以包括:该外围设备对该第一固件进行校验;该外围设备根据该第一固件的信息和第二固件的信息,确定该第一固件的激活方式包括:在该第一固件校验成功的情况下,该外围设备根据第一固件的信息和第二固件的信息,确定该第一固件的激活方式。
本申请实施例中,外围设备在第一固件校验成功的情况下,才根据该第一固件的信息和第二固件的信息确定该第一固件的激活方式,可以避免在第一固件校验失败的情况下确定第一固件的激活方式,可以避免不必要处理过程,从而可以节约计算资源。
作为一种可能的实施方式,该方法还可以包括:该外围设备将该外围设备的固件由该第二固件升级为该第一固件;该固件激活模块根据该激活方式激活该第一固件包括:在该外围设备的固件升级成功的情况下,该固件激活模块根据该激活方式激活该第一固件。
作为一种可能的实施方式,该方法还可以包括:该外围设备接收来自该固件激活模块的第三指示信息,该第三指示信息用于指示该外围设备进行固件升级;该外围设备将该外围设备的固件由该第二固件升级为该第一固件包括:该外围设备根据该第三指示信息将该外围设备的固件由该第二固件升级为该第一固件。
作为一种可能的实施方式,该方法还可以包括:在该外围设备的固件升级成功的情况下,该外围设备向该固件激活模块发送第四指示信息,该第四指示信息用于指示该外围设备的固件升级成功。
作为一种可能的实施方式,该方法还可以包括:该固件激活模块确定该服务器的升级策略,不同升级策略对应不同激活时间;该固件激活模块根据该激活方式激活该第一固件包括:该固件激活模块根据该升级策略和该激活方式激活该第一固件。
本申请实施例中,可以根据服务器的升级策略确定激活第一固件的时间,灵活的采用不同的升级策略可以减轻第一固件的激活对服务器上业务的影响,可以提高固件激活的灵活性。
作为一种可能的实施方式,该升级策略为静默升级或立即升级;该固件激活模块根据该升级策略和该激活方式激活该第一固件包括:在该升级策略为静默升级的情况下,该固件激活模块在下一次运维窗口通过该激活方式激活该第一固件;在该升级策略为立即升级的情况下,该固件激活模块立即通过该激活方式激活该第一固件。
作为一种可能的实施方式,该外围设备位于服务器,该服务器设置有主机,该激活方式为主机上下电、主机复位、软复位和立即生效中的一项。
作为一种可能的实施方式,该固件激活模块为处理器,或者,该固件激活模块为设备管理模块,或者,该固件激活模块为管理工具。
作为一种可能的实施方式,当该固件激活模块为设备管理模块时,在该外围设备的固件升级成功的情况下,该外围设备向该固件激活模块发送应用完成消息,该应用完成消息用于指示该外围设备的固件升级成功。
本发明实施例中,外围设备固件升级成功之后,可以向固件激活模块发送应用完成(Apply Complete)消息,以便通知固件激活模块自身的固件升级成功。
作为一种可能的实施方式,该管理工具位于第一设备或该服务器。
第二方面公开一种固件激活方法,该固件激活方法可以应用于服务器的外围设备,也可以应用于该外围设备中的模块(例如,芯片),还可以应用于能实现全部或部分该外围设备功能的逻辑模块或软件,下面以应用于服务器的外围设备为例进行描述。该固件激活方法可以包括:接收第一固件的信息,该第一固件为该外围设备的待升级固件;根据该第一固件的信息和第二固件的信息,确定该第一固件的激活方式,该第二固件为该外围设备正在使用的固件;发送第一指示信息,该第一指示信息指示该第一固件的激活方式。
本申请实施例中,第一固件和/或第二固件不同,第一固件相较于第二固件变更的内容不同,外围设备根据第一固件的信息和第二固件的信息确定的第一固件的激活方式可能不同,因此,外围设备可以根据自身当前正在使用的固件的信息和待升级固件的信息确定合适的激活方式,之后可以发送第一指示信息把该激活方式提供给固件激活模块,以便固件激活模块可以根据该激活方式激活第一固件,而不是直接采用主机复位或者主机下电再上电的方式对第一固件进行激活,可以提高固件激活的灵活性。
作为一种可能的实施方式,该第一固件包括N个模块,该第二固件包括M个模块,N和M为大于或等于1的正整数;该根据该第一固件的信息和第二固件的信息,确定该第一固件的激活方式,包括:根据该N个模块的信息和该M个模块的信息,确定K个模块,该K个模块包括该N个模块相对该M个模块的删除模块、新增模块和修改模块,K为大于或等于1的正整数;根据该K个模块确定该第一固件的激活方式。
作为一种可能的实施方式,该模块的信息包括该模块的标识和版本号,该根据该N个模块的信息和M个模块的信息,确定K个模块,包括:根据该N个模块的标识和该M个模块的标识,确定该N个模块相对该M个模块的删除模块和新增模块;根据该N个模块的标识和版本号以及该M个模块的标识和版本号确定该N个模块相对该M个模块的修改模块;根据该N个模块相对该M个模块的删除模块和新增模块,以及该N个模块相对该M个模块的修改模块,确定为该K个模块。
作为一种可能的实施方式,该根据该K个模块确定该第一固件的激活方式包括:确定该K个模块中每个模块对应的激活方式,得到L个激活方式,L为小于或等于K且大于0的整数,不同激活方式对应不同优先级;将该L个激活方式中优先级最高的激活方式确定为该第一固件的激活方式。
作为一种可能的实施方式,该模块的信息还包括该模块的特征描述和激活方式,该确定该K个模块中每个模块对应的激活方式,得到L个激活方式包括:获取该K个模块中新增模块和删除模块的激活方式,得到L1个激活方式,L1为大于或等于0的整数;根据该K个模块中修改模块的特征描述确定该修改模块的激活方式,得到L2个激活方式,L2为大于或等于0的整数;根据该L1个激活方式和该L2个激活方式确定该L个激活方式,L为小于或等于L1+L2的整数。
作为一种可能的实施方式,该方法还可以包括:接收第三指示信息,该第三指示信息用于指示该外围设备进行固件升级;根据该第三指示信息将该外围设备的固件由该第二固件升级为该第一固件。
本申请实施例中,外围设备可以接收第三指示信息,以便外围设备可以根据该第三指示信息将自身的固件由该第二固件升级为该第一固件。
作为一种可能的实施方式,该方法还可以包括:在该外围设备的固件升级成功的情况下,发送第四指示信息,该第四指示信息用于指示该外围设备的固件升级成功。
本申请实施例中,外围设备的固件升级成功之后,可以发送第四指示信息,以便可以指示自身的固件升级成功(即成功将第一固件写入自身的存储介质中)。
作为一种可能的实施方式,该方法还可以包括:该外围设备对该第一固件进行校验;该根据该第一固件的信息和第二固件的信息,确定该第一固件的激活方式包括:在该第一固件校验成功的情况下,根据该第一固件的信息和第二固件的信息,确定该第一固件的激活方式。
作为一种可能的实施方式,该服务器设置有主机,该激活方式为主机上下电、主机复位、软复位和立即生效中的一项。
第三方面公开一种固件激活方法,该固件激活方法可以应用于固件激活模块,该固件激活模块可以为管理工具或服务器的主机或设备管理模块,该管理工具可以设置或安装在服务器中,也可以设置或安装在第一设备中,该服务器设置有外围设备,下面以应用于服务器的主机为例进行描述。该固件激活方法可以包括:向服务器的外围设备发送第一固件的信息,该第一固件为待升级固件;接收来自该外围设备的第一指示信息,该第一指示信息指示该第一固件的激活方式;根据该激活方式激活该第一固件。
本申请实施例中,主机可以先向外围设备发送待升级固件的信息,之后可以接收到来自外围设备的第一指示信息,再之后可以根据第一指示信息指示的激活方式激活第一固件,而不是直接采用主机复位或者主机下电再上电的方式对第一固件进行激活,可以提高固件激活的灵活性。
作为一种可能的实施方式,该方法还可以包括:确定该服务器的升级策略,不同升级策略对应不同激活时间;该根据该激活方式激活该第一固件包括:根据该升级策略和该激活方式激活该第一固件。
作为一种可能的实施方式,该升级策略为静默升级或立即升级;该根据该升级策略和该激活方式激活该第一固件包括:在该升级策略为静默升级的情况下,在下一次运维窗口通过该激活方式激活该第一固件;在该升级策略为立即升级的情况下,立即通过该激活方式激活该第一固件。
作为一种可能的实施方式,该方法还可以包括:向该外围设备发送第三指示信息,该第三指示信息用于指示该外围设备进行固件升级。
本申请实施例中,在主机需要对外围设备的固件进行升级的情况下,主机可以向该外围设备发送第三指示信息,以便外围设备可以根据该第三指示信息将自身的固件由该第二固件升级为该第一固件。
作为一种可能的实施方式,该方法还可以包括:接收来自该外围设备的第四指示信息,该第四指示信息用于指示该外围设备的固件升级成功;该根据该激活方式激活该第一固件包括:在接收到该第四指示信息的情况下,根据该激活方式激活该第一固件。
本申请实施例中,外围设备可能第一固件升级失败,在第一固件升级失败的情况下,主机无法激活第一固件。因此,主机可以仅在接收到来自外围设备的第四指示信息的情况下,根据该激活方式激活第一固件,可以确保能够成功激活该第一固件,并且还可以避免无效的激活。
第四方面公开一种固件激活系统,该固件激活系统包括固件激活模块和外围设备,其中:
该外围设备,用于获取第一固件的信息;
该外围设备,还用于根据该第一固件的信息和第二固件的信息,确定该第一固件的激活方式,该第一固件为该外围设备的待升级固件,该第二固件为该外围设备正在使用的固件;
该外围设备,还用于向该固件激活模块发送第一指示信息,该第一指示信息指示该第一固件的激活方式;
该固件激活模块,用于根据该激活方式激活该第一固件。
作为一种可能的实施方式,该第一固件包括N个模块,该第一固件的信息包括该N个模块的标识、版本号和激活方式,N为大于或等于1的正整数。
作为一种可能的实施方式,该第一固件的信息还包括该N个模块的特征描述。
作为一种可能的实施方式,该第二固件包括M个模块,M为大于或等于1的正整数;该外围设备根据该第一固件的信息和第二固件的信息,确定该第一固件的激活方式,包括:
该外围设备根据该N个模块的信息和该M个模块的信息,确定K个模块,该K个模块包括该N个模块相对该M个模块的删除模块、新增模块和修改模块,K为大于或等于1的正整数;
该外围设备根据该K个模块确定该第一固件的激活方式。
作为一种可能的实施方式,该外围设备根据该N个模块的信息和M个模块的信息,确定K个模块,包括:
该外围设备根据该N个模块的标识和该M个模块的标识,确定该N个模块相对该M个模块的删除模块和新增模块;
该外围设备根据该N个模块的标识和版本号以及该M个模块的标识和版本号确定该N个模块相对该M个模块的修改模块;
该外围设备根据该N个模块相对该M个模块的删除模块和新增模块,以及该N个模块相对该M个模块的修改模块,确定该K个模块。
作为一种可能的实施方式,该外围设备根据该K个模块确定该第一固件的激活方式包括:
该外围设备确定该K个模块中每个模块对应的激活方式,得到L个激活方式,L为小于或等于K且大于0的整数,不同激活方式对应不同优先级;
该外围设备将该L个激活方式中优先级最高的激活方式确定为该第一固件的激活方式。
作为一种可能的实施方式,该外围设备确定该K个模块中每个模块对应的激活方式,得到L个激活方式包括:
该外围设备获取该K个模块中新增模块和删除模块的激活方式,得到L1个激活方式,L1为大于或等于0的整数;
该外围设备根据该K个模块中修改模块的特征描述确定该修改模块的激活方式,得到L2个激活方式,L2为大于或等于0的整数;
该外围设备根据该L1个激活方式和该L2个激活方式确定该L个激活方式,L为小于或等于L1+L2的整数。
作为一种可能的实施方式,该外围设备,还用于对该第一固件进行校验;
该外围设备根据第一固件的信息和第二固件的信息,确定该第一固件的激活方式包括:
在该第一固件校验成功的情况下,该外围设备根据该第一固件的信息和第二固件的信息,确定该第一固件的激活方式。
作为一种可能的实施方式,该外围设备,还用于向固件激活模块发送第一指示信息,该第一指示信息指示该第一固件的激活方式。
作为一种可能的实施方式,该外围设备,还用于将该外围设备的固件由该第二固件升级为该第一固件;
该固件激活模块根据该激活方式激活该第一固件包括:
在该外围设备的固件升级成功的情况下,该固件激活模块根据该激活方式激活该第一固件。
作为一种可能的实施方式,该外围设备还用于接收来自该固件激活模块的第三指示信息,该第三指示信息用于指示该外围设备进行固件升级;
该外围设备将该外围设备的固件由该第二固件升级为该第一固件包括:
该外围设备根据该第三指示信息将该外围设备的固件由该第二固件升级为该第一固件。
作为一种可能的实施方式,该外围设备还用于在该外围设备的固件升级成功的情况下,向该固件激活模块发送第四指示信息,该第四指示信息用于指示该外围设备的固件升级成功。
作为一种可能的实施方式,该固件激活模块,还用于确定该服务器的升级策略,不同升级策略对应不同激活时间;
该固件激活模块根据该激活方式激活该第一固件包括:
该固件激活模块根据该升级策略和该激活方式激活该第一固件。
作为一种可能的实施方式,该升级策略为静默升级或立即升级;该固件激活模块根据该升级策略和该激活方式激活该第一固件包括:
在该升级策略为静默升级的情况下,该固件激活模块在下一次运维窗口通过该激活方式激活该第一固件;
在该升级策略为立即升级的情况下,该固件激活模块立即通过该激活方式激活该第一固件。
作为一种可能的实施方式,该外围设备位于服务器,该服务器设置有主机,该激活方式为主机上下电、主机复位、软复位和立即生效中的一项。
作为一种可能的实施方式,该固件激活模块为处理器,或者,该固件激活模块为设备管理模块,或者,该固件激活模块为管理工具。
作为一种可能的实施方式,当该固件激活模块为设备管理模块时,该外围设备还用于在该外围设备的固件升级成功的情况下,向该固件激活模块发送应用完成消息,该应用完成消息用于指示该外围设备的固件升级成功。
作为一种可能的实施方式,该管理工具位于第一设备或该服务器。
第五方面公开一种固件激活装置,该固件激活装置可以为服务器的外围设备,也可以为服务器的外围设备中的模块(例如,芯片)。该固件激活装置可以包括:
接收单元,用于接收第一固件的信息,该第一固件为该外围设备的待升级固件;
确定单元,用于根据该第一固件的信息和第二固件的信息,确定该第一固件的激活方式,该第二固件为该外围设备正在使用的固件;
发送单元,用于发送第一指示信息,该第一指示信息指示该第一固件的激活方式。
作为一种可能的实施方式,该第一固件包括N个模块,该第二固件包括M个模块,N和M为大于或等于1的正整数;该确定单元根据该第一固件的信息和第二固件的信息,确定该第一固件的激活方式,包括:
根据该N个模块的信息和该M个模块的信息,确定K个模块,该K个模块包括该N个模块相对该M个模块的删除模块、新增模块和修改模块,K为大于或等于1的正整数;
根据该K个模块确定该第一固件的激活方式。
作为一种可能的实施方式,该模块的信息包括该模块的标识和版本号,该确定单元根据该N个模块的信息和M个模块的信息,确定K个模块,包括:
根据该N个模块的标识和该M个模块的标识,确定该N个模块相对该M个模块的删除模块和新增模块;
根据该N个模块的标识和版本号以及该M个模块的标识和版本号确定该N个模块相对该M个模块的修改模块;
根据该N个模块相对该M个模块的删除模块和新增模块,以及该N个模块相对该M个模块的修改模块,确定该K个模块。
作为一种可能的实施方式,该确定单元根据该K个模块确定该第一固件的激活方式包括:
确定该K个模块中每个模块对应的激活方式,得到L个激活方式,L为小于或等于K且大于0的整数,不同激活方式对应不同优先级;
将该L个激活方式中优先级最高的激活方式确定为该第一固件的激活方式。
作为一种可能的实施方式,该模块的信息还包括该模块的特征描述和激活方式,该确定单元确定该K个模块中每个模块对应的激活方式,得到L个激活方式包括:
获取该K个模块中新增模块和删除模块的激活方式,得到L1个激活方式,L1为大于或等于0的整数;
根据该K个模块中修改模块的特征描述确定该修改模块的激活方式,得到L2个激活方式,L2为大于或等于0的整数;
根据该L1个激活方式和该L2个激活方式确定该L个激活方式,L为小于或等于L1+L2的整数。
作为一种可能的实施方式,该接收单元,还用于接收第三指示信息,该第三指示信息用于指示该外围设备进行固件升级;
该装置还可以包括:
升级单元,用于根据该第三指示信息将该外围设备的固件由该第二固件升级为该第一固件。
作为一种可能的实施方式,该发送单元,还用于在该外围设备的固件升级成功的情况下,发送第四指示信息,该第四指示信息用于指示该外围设备的固件升级成功。
作为一种可能的实施方式,该装置还可以包括:
校验单元,用于对该第一固件进行校验;
该确定单元根据该第一固件的信息和第二固件的信息,确定该第一固件的激活方式包括:
在该第一固件校验成功的情况下,根据该第一固件的信息和第二固件的信息,确定该第一固件的激活方式。
作为一种可能的实施方式,该服务器设置有主机,该激活方式为主机上下电、主机复位、软复位和立即生效中的一项。
第六方面公开一种固件激活装置,该固件激活装置可以应用于固件激活模块,该固件激活模块可以为管理工具或服务器的主机或设备管理模块,该管理工具可以设置或安装在服务器中,也可以设置或安装在第一设备中,该服务器设置有外围设备。该固件激活装置可以包括:
发送单元,用于向服务器的外围设备发送第一固件的信息,该第一固件为待升级固件;
接收单元,用于接收来自该外围设备的第一指示信息,该第一指示信息指示该第一固件的激活方式;
激活单元,用于根据该激活方式激活该第一固件。
作为一种可能的实施方式,该装置还包括:
确定单元,用于确定该服务器的升级策略,不同升级策略对应不同激活时间;
该激活单元根据该激活方式激活该第一固件包括:
根据该升级策略和该激活方式激活该第一固件。
作为一种可能的实施方式,该升级策略为静默升级或立即升级;该激活单元根据该升级策略和该激活方式激活该第一固件包括:
在该升级策略为静默升级的情况下,在下一次运维窗口通过该激活方式激活该第一固件;
在该升级策略为立即升级的情况下,立即通过该激活方式激活该第一固件。
作为一种可能的实施方式,该发送单元,还用于向该外围设备发送第三指示信息,该第三指示信息用于指示该外围设备进行固件升级。
作为一种可能的实施方式,该接收单元,还用于接收来自该外围设备的第四指示信息,该第四指示信息用于指示该外围设备的固件升级成功;
该激活单元根据该激活方式激活该第一固件包括:
在接收到该第四指示信息的情况下,根据该激活方式激活该第一固件。
第七方面公开一种服务器,该服务器可以包括处理器、存储器和通信接口,该通信接口用于接收来自该服务器之外的其它电子设备的信息,以及向该服务器之外的其它电子设备输出信息,当该处理器执行该存储器存储的计算机程序时,使得该处理器执行第一方面或第一方面的任一实施方式公开的固件激活方法。
第八方面公开一种服务器的外围设备,该外围设备可以包括处理器、存储器和通信接口,该通信接口用于接收来自该外围设备之外的其它电子设备的信息,以及向该外围设备之外的其它电子设备输出信息,当该处理器执行该存储器存储的计算机程序时,使得该处理器执行第二方面或第二方面的任一实施方式公开的固件激活方法。
第九方面公开一种电子设备,该电子设备可以为第一设备或服务器的主机或设备管理模块。该电子设备可以包括处理器、存储器和通信接口,该通信接口用于接收来自该电子设备之外的其它电子设备的信息,以及向该电子设备之外的其它电子设备输出信息,当该处理器执行该存储器存储的计算机程序时,使得该处理器执行第三方面或第三方面的任一实施方式公开的固件激活方法。
第十方面公开一种服务器,该服务器可以包括第八方面的外围设备和第九方面的电子设备。
第十一方面公开一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序或计算机指令,当该计算机程序或计算机指令运行时,实现如上述各方面公开的固件激活方法。
第十二方面公开一种芯片,包括处理器,用于执行存储器中存储的程序,当程序被执行时,使得芯片执行上述各方面公开的固件激活方法。
作为一种可能的实施方式,存储器位于芯片之外。
第十三方面公开一种计算机程序产品,该计算机程序产品包括计算机程序代码,当该计算机程序代码被运行时,使得上述各方面公开的固件激活方法被执行。
可以理解地,上述第五方面提供的固件激活装置、第六方面提供的固件激活装置、第七方面提供的服务器、第八方面提供的外围设备、第九方面提供的电子设备、第十一方面提供的计算机可读存储介质、第十二方面提供的芯片和第十三方面提供的计算机程序产品均用于执行本申请第一方面以及第一方面中任一可能的实现方式,或第二方面以及第二方面中任一种可能的实现方式,或第三方面以及第三方面中任一种可能的实现方式所提供的固件激活方法。因此,其所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。
附图说明
附图为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1是本申请实施例公开的一种系统架构示意图;
图2是本申请实施例公开的另一种系统架构示意图;
图3是本申请实施例公开的一种固件激活方法的流程示意图;
图4是本申请实施例公开的另一种固件激活方法的流程示意图;
图5是本申请实施例公开的又一种固件激活方法的流程示意图;
图6是本申请实施例公开的一种应用完成(Apply Complete)消息的数据格式示意图;
图7是本申请实施例公开的又一种固件激活方法的流程示意图;
图8是本申请实施例公开的一种固件激活装置的结构示意图;
图9是本申请实施例公开的另一种固件激活装置的结构示意图;
图10是本申请实施例公开的一种电子设备的结构示意图;
图11是本申请实施例公开的一种固件激活系统的结构示意图。
具体实施方式
本申请实施例公开了一种固件激活方法、装置、相关设备及计算机可读存储介质,用于提高固件激活的灵活性。下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
为了更好地理解本申请实施例,下面先对本申请实施例使用的系统架构进行描述。
请参阅图1,图1是本申请实施例公开的一种系统架构示意图。如图1所示,该系统架构可以为服务器100的系统架构,服务器100可以包括主机(host)101、设备管理模块102和外围设备103。其中,主机101可以包括处理器系统1012和运行在处理器系统1012之上的操作系统(operating system,OS)1011。处理器系统1012可以为中央处理器(centralprocessing unit,CPU)系统。操作系统1011可以包括Linux操作系统、Windows操作系统、Unix操作系统等中的一个或多个。服务器100是具有数据处理能力、数据收发能力和数据存储能力的电子设备,可以是实体设备如机架式服务器、刀片式服务器等。
设备管理模块102是用于在计算机系统里面执行部件管理、资产管理等功能的模块。例如,设备管理模块102可以用于上下电控制、风扇调速、电子标签管理等。设备管理模块102也可以称为基板管理控制器(baseboard management controller,BMC)。
外围设备103是指与主机101的处理器系统1012相连接的各种设备,可以用于扩充服务器的功能。外围设备103可以包括但不限于网卡、独立磁盘冗余阵列(redundant arrayof independent disks,RAID)卡、显卡、固态硬盘(solid state disk,SSD)卡、加速卡等。网卡可以包括网络接口卡(network interface card,NIC)、光纤通道(fibre channel,FC)主机总线适配器(host bus adapter,HBA)、融合网络适配器(converged networkadapter,CNA)、无限宽带(infiniband,IB)主机通道适配器(host channel adapter,HCA)等。外围设备103的存储介质中存储有固件1031,固件1031可以运行于外围设备103的芯片上,用于实现外围设备的各种功能。外围设备103的存储介质可以为闪存(flash memory),或者非易失性随机访问存储器(non-volatile random access memory,NVRAM),或者电可擦编程只读存储器(electrically erasable programmable read-only memory,EEPROM)。
服务器100上还可以安装有管理工具104,管理工具104可以为管理客户端(即计算机程序软件),管理工具104可以安装并运行在服务器100上,管理工具104可以通过设备管理模块102进行部件管理、资产管理等。
在图1所示的系统架构中,主机101和设备管理模块102可以对外围设备103的固件1031进行升级(即更新固件代码)和激活。管理工具104也可以通过设备管理模块102对外围设备103的固件1031进行升级和激活。
需要说明的是,主机101或处理器系统1012与外围设备103之间可以采用快速外设组件互联(peripheral component interconnect express,PCIE)协议进行通信,相应地,主机101与外围设备103进行通信的接口可以称为PCIE接口,外围设备也可以称为PCIE设备。设备管理模块102与外围设备103之间可以采用管理组件传输(management componenttransport protocol,MCTP)over PCIE协议进行通信。
应理解,处理器系统1012和设备管理模块102可以是独立的,也可以集成在一起。例如,处理器系统1012(如CPU系统)和设备管理模块102可以设置在服务器的主板上。还应理解,服务器100不限于仅包括图1中所示的主机101、设备管理模块102、外围设备103和管理工具104,服务器100还可以包括基本输入输出系统(basic input output system,BIOS)以及其他硬件单元。BIOS保存有基本输入输出的程序,包括开机后自检程序和系统自启动程序,可以为服务器100提供最底层的、最直接的硬件设置和控制。
请参阅图2,图2是本申请实施例公开的另一种系统架构示意图。如图2所示,该系统架构可以包括服务器300和第一设备200。第一设备200中可以安装有管理工具201,第一设备200通过管理工具201可以控制设备管理模块302进行部件管理、资产管理等。第一设备200可以是具有数据处理能力和数据收发能力的电子设备,例如,第一设备200可以为网管服务器。第一设备200与服务器300可以是分布在不同地理位置的设备,第一设备200与服务器300之间可以进行通信。
在图2所示的系统架构中,第一设备200可以通过管理工具201对外围设备303的固件3031进行升级和激活。其中,第一设备200可以通过管理工具201把固件文件传递给设备管理模块302,设备管理模块302可以再将固件文件传递给外围设备303,以便外围设备303进行固件升级。相应地,设备管理模块302接收到来自外围设备303的信息之后(如指示固件升级完成的信息,激活方式等指示信息),可以将这些信息发送给管理工具201,管理工具201可以基于这些信息执行下一步的操作(如进行待升级固件的激活)。
需要说明的是,图2所示的系统架构中不限于仅包括图中所示的服务器300和第一设备200。应理解,图1和图2所示的系统架构只是示例性说明,并不对其构成限定。本申请实施例提供的固件激活方法也可以应用于数据中心、笔记本电脑、台式电脑、智能汽车、超级移动个人计算机(ultra-mobile personal computer,UMPC)等等,在此不作限定。
为了更好地理解本申请实施例,下面先对本申请实施例的相关技术进行描述。
随着计算机技术的进步,服务器的外围设备的功能和性能不断提升和完善,外围设备的架构也越来越复杂。与此同时,外围设备基于功能升级或问题解决的固件升级也越来越频繁。
外围设备进行固件升级的步骤通常为:服务器的主机先向服务器的外围设备发起固件升级命令,之后还可以向外围设备发送固件文件,固件文件包括待升级固件。外围设备接收到固件升级命令以及固件文件之后,可以进行固件升级,即将待升级固件写入自身的存储介质中。当外围设备的固件升级完成(即成功将待升级固件写入自身的存储介质)之后,外围设备可以向主机发送固件升级完成消息。相应地,主机可以接收到来自外围设备的固件升级完成消息,之后主机可以通过复位或者下电再上电来激活待升级固件。
可见,为了激活待升级固件,当外围设备的固件升级完成之后,主机一般需要进行复位或者下电再上电。主机复位或主机下电再上电的激活方式对主机系统的影响较大,耗时较长,对业务和运维的影响较大,尤其是对于大型服务器局点。
为了减轻对业务的影响,主机可以采用“静默”升级的方式激活待升级固件。在采用静默升级的方式的情况下,外围设备的固件升级完成之后,主机不会立即复位或者下电再上电,而是继续运行当前的进程和业务,等到下一次运维窗口再进行复位或者下电再上电。
虽然采用静默升级的方式主机不会立即复位或下电而中断当前业务和进程,但最后还是依赖于主机复位或下电再上电来激活外围设备的待升级固件。此外,如果是较为紧急情况下的固件升级,例如,急需部署新功能或者急需解决固件问题(如网卡不能正常进行收发的问题),此时,无法等待到下一次运维窗口,而是必须立即通过复位或者下电再上电来激活待升级固件,从而还是会对当前的业务造成较大的影响。但其实,针对于某些场景下的固件升级(如仅涉及固件配置参数的小改动)可能不需要采用主机复位或主机下电再上电的激活方式,仅采用软复位的激活方式,就可以激活待升级固件。软复位是指单独对外围设备进行软复位,主机不会感知外围设备的离线,软复位的方式较主机复位和主机下电再上电的激活方式影响小,需要的时间也较短,可以减轻对当前业务的影响。
在采用软复位的激活方式的情况下,当外围设备的固件升级完成之后,主机可以向外围设备发送软复位命令(即运行于主机操作系统中的外围设备驱动发送软复位命令给外围设备)。当外围设备接收到软复位命令之后,外围设备可以执行软复位,以便激活待升级固件。
需要说明的是,外围设备的软复位,是指外围设备局部的复位,而不是整个外围设备全局的复位,主机不会感知外围设备离线。但外围设备软复位时,外围设备会中断流量处理,以便可以重新加载待升级固件或待升级固件中的部分模块,或者刷新固件配置参数。软复位也可以称为固件复位(firmware reset)、局部复位、热复位、热补丁等。对于外围设备来说,软复位所需的时间,比主机复位和主机上下电短很多,相应地,外围设备进行软复位时中断流量处理的时间也会短很多。
外围设备的固件升级成功之后,因为无法确定最合适或最优的激活方式(即为了激活待升级固件所需的优先级最低的激活方式),为了成功激活外围设备的待升级固件,均是直接进行主机复位或主机上下电,从而导致固件激活的灵活性较低。
为了解决上述问题,本申请实施例提出了一种固件激活方法,该方法包括:外围设备根据待升级固件的信息和正在使用的固件的信息确定待升级固件的激活方式,之后可以向固件激活模块发送待升级固件的激活方式。然后,固件激活模块可以根据该激活方式激活待升级固件。通过上述固件激活方法,在第一固件相较于第二固件变更的内容不同的情况下,外围设备确定的待升级固件的激活方式可以不同。因此,在不同的升级情况下,外围设备固件升级完成之后,固件激活模块可能采用不同的激活方式激活待升级固件,可以提高固件激活的灵活性。
基于上述系统架构,请参阅图3,图3是本申请实施例公开的一种固件激活方法的流程示意图。其中,由于主机、设备管理模块和管理工具均可以触发对外围设备的固件的升级和激活,因此,为了方便描述,下面将主机、设备管理模块和管理工具统称为固件激活模块进行说明。应理解,当固件激活模块为主机或设备管理模块时,固件激活模块可以设置或安装在服务器中。当固件激活模块为管理工具时,固件激活模块既可以设置或安装在服务器中,也可以设置或安装在第一设备中。如图3所示,该固件激活方法可以包括但不限于如下步骤:
301.固件激活模块向外围设备发送第三指示信息,第三指示信息用于指示外围设备进行固件升级。
在服务器的外围设备有待升级固件可以升级的情况下,固件激活模块可以向外围设备发送第三指示信息。相应地,外围设备可以接收来自固件激活模块的第三指示信息,之后可以根据第三指示信息将外围设备的固件由第二固件升级为第一固件。
302.外围设备向固件激活模块发送固件请求命令,固件请求命令用于请求待升级固件文件。
外围设备接收到来自固件激活模块的第三指示信息之后,可以根据第三指示信息确定有待升级固件可以升级,之后可以向固件激活模块发送固件请求命令。固件请求命令用于请求待升级固件文件(即第一固件文件)。相应地,固件激活模块可以接收到来自外围设备的固件请求命令。
303.固件激活模块向外围设备发送第一固件文件,第一固件文件包括第一固件和第一固件的信息,第一固件为外围设备的待升级固件。
固件激活模块接收到来自外围设备的固件请求命令之后,可以根据固件请求命令向外围设备发送第一固件文件。相应地,外围设备可以接收到来自固件激活模块的第一固件文件。
第一固件可以包括N个模块。第一固件的信息可以包括这N个模块的信息,N为大于或等于1的正整数。模块的信息可以包括模块的标识、版本号和激活方式,还可以包括模块的特征描述。
需要说明的是,固件的模块可以理解为固件的功能模块,用于支持或实现外围设备的功能。其中,不同模块可以具有或支持不同功能。以网卡为例,网卡的固件可以包括融合网络承载远程直接内存访问(remote direct memory access over convergedethernet,RoCE)模块、虚拟可扩展局域网(virtual eXtensible local area network,VxLAN)模块和单根输入输出虚拟化(single root-input output virtualization,SR-IOV)模块。RoCE模块可以具有网卡的融合网络承载远程直接内存访问功能,VxLAN模块可以具有网卡的虚拟可扩展局域网功能,SR-IOV可以具有网卡的虚拟化功能。应理解,一个模块可以仅具有或支持一种功能,也可以具有或支持多种功能。
模块的标识可以为模块的名称、索引等唯一可以标识一个模块的信息。模块的版本号用于指示该模块的版本,例如一个模块的版本号为1.3,则表示该模块的版本为1.3版本。
模块的特征描述包括该模块的特性细节的说明(如模块的功能、规格、性能、配置参数等)。例如,网卡的SR-IOV模块的特征描述可以包括支持的虚拟网卡(virtualfunction,VF)数量(如支持64个VF)。模块的激活方式为在外围设备上新增或者删除该模块所需的最低优先级的激活方式,即在外围设备上新增或者删除该模块时,为了使该模块的新增或者删除生效,需要的优先级最低的激活方式。不同模块的激活方式可以相同,也可以不同。
激活方式可以包括主机上下电、主机复位、软复位和立即生效。模块的激活方式可以为上述四种激活方式中的一项。其中,主机上下电(power cycle)也即是主机下电再上电,此时主机会先下电(即掉电)再上电,外围设备也会先下电,然后再上电初始化,重新加载自身的固件。主机复位可以理解为CPU系统和OS的复位,主机复位的激活方式不会下电(即主机、设备管理模块、外围设备等不会下电)。主机复位时,外围设备也会复位,外围设备的硬件(如芯片)会进行复位,重新加载自身的固件。主机复位也可以称为系统复位。立即生效是指外围设备直接就可以加载和激活待升级固件,不需要进行任何复位,服务器的外围设备中断流量的时间相较于软复位的时间更短,如果待升级固件和正在使用的固件变更不大,甚至可以不中断自身的流量处理。软复位的相关说明可以参考上述的相关描述。
在一些实施例中,固件激活模块向外围设备发送第三指示信息之后,可以继续向外围设备发送第一固件文件,即固件激活模块可以在执行步骤301之后,直接执行步骤303,外围设备可以不用执行步骤302。在另一些实施例中,固件激活模块可以直接向外围设备发送第一固件文件,即可以仅执行步骤303,不必执行步骤301和步骤302。在又一些实施例中,外围设备可以直接向固件激活模块发送固件请求命令,然后接收来自固件激活模块的第一固件文件,即可以仅执行上述步骤302和步骤303,不必执行上述步骤301。
304.外围设备对第一固件文件进行校验。
外围设备在接收到第一固件文件之后,可以先对第一固件文件进行校验。在第一固件文件校验成功的情况下,表明第一固件文件没有错误,外围设备可以执行步骤305。在第一固件文件校验失败的情况下,表明第一固件文件存在错误,外围设备确定第一固件的激活方式没有意义,可以向固件激活模块重新请求第一固件文件。
在一种可能的实现方式中,外围设备可以根据循环冗余校验(cyclic redundancycheck,CRC)对第一固件或第一固件文件进行校验,此时,第一固件的信息还可以包括第一固件文件的CRC码。外围设备也可以根据奇偶校验、纵向冗余校验(longitudinalredundancy check,LRC)、格雷码校验、和校验、异或校验等校验方式对第一固件文件进行校验,相应地,第一固件的信息可以包括这些校验方式对应的校验码。
305.在第一固件文件校验成功的情况下,外围设备根据第一固件的信息和第二固件的信息确定K个变更的模块,第二固件为外围设备的外围设备正在使用的固件。
第二固件可以包括M个模块。第二固件的信息可以包括这M个模块的信息,M为大于或等于1的正整数。
由于第一固件相较于第二固件未发生变更的模块可以不用重新激活,因此,外围设备可以先确定第一固件相对第二固件发生变更的模块,之后可以根据这些发生变更的模块确定第一固件的激活方式(即步骤306)。
具体地,外围设备可以根据上述N个模块的信息和上述M个模块的信息确定K个模块(即K个变更的模块),之后可以根据该K个模块确定第一固件的激活方式。该K个模块可以包括第一固件的N个模块相对第二固件的M个模块的删除模块、新增模块和修改模块。K为大于或等于1的正整数。上述N个模块相对上述M个模块的删除模块,即第一固件相对于第二固件的删除模块,是指第二固件包括的模块但第一固件不包括的模块,即属于第二固件但不属于第一固件的模块。上述N个模块相对上述M个模块的新增模块,即第一固件相对于第二固件的新增模块,是指第一固件包括的模块但第二固件不包括的模块,即属于第一固件但不属于第二固件的模块。上述N个模块相对上述M个模块的修改模块,即第一固件相对于第二固件的修改模块,是指第一固件和第二固件均包括但在第一固件和第二固件中功能或作用存在区别的模块(如模块本身功能代码之间存在不同),即既属于第一固件也属于第二固件但作用或功能存在不同的模块。
在一种可能的实现方式中,外围设备可以根据第一固件包括的N个模块的标识和第二固件包括的M个模块的标识,确定这N个模块相对这M个模块的删除模块和新增模块,可以根据这N个模块的标识和版本号以及这M个模块的标识和版本号,确定这N个模块相对这M个模块的修改模块,之后可以根据这N个模块相对这M个模块的删除模块和新增模块,以及这N个模块相对这M个模块的修改模块,确定K个模块。应理解,在第一固件中的一个模块与第二固件中的一个模块的标识和版本号相同的情况下,表明这两个模块为同一模块且没有进行修改。在第一固件中的一个模块与第二固件中的一个模块的标识相同但版本号不同的情况下,表明这两个模块为同一模块但进行了修改。
在一些实施例中,外围设备在接收到固件激活模块发送的第一固件文件之后,可以直接根据第一固件的信息和第二固件的信息确定K个变更的模块,即接收到第一固件文件之后,直接执行步骤305,可以不用执行步骤304。
306.外围设备根据K个变更的模块确定第一固件的激活方式。
外围设备确定K个变更的模块之后,可以确定这K个变更的模块中每个模块对应的激活方式,得到L个激活方式,之后可以将这L个激活方式中优先级最高的激活方式确定为第一固件的激活方式。L为小于或等于K且大于0的整数。不同激活方式对应不同优先级。模块对应的激活方式,可以理解为激活该模块所需的优先级最低的激活方式,相应地,外围设备确定的第一固件的激活方式可以为激活第一固件所需的优先级最低的激活方式。第一固件的激活方式可以为上述四种激活方式中的一项。
在一些实施例中,可以按照对主机的影响程度确定上述激活方式的优先级,影响越大优先级越高。上述四种激活方式的优先级从高到低可以依次为主机上下电、主机复位、软复位、立即生效。
可以理解的是,对于任意一个变更模块,优先级比该模块对应的激活方式的优先级高的激活方式可以激活该模块,但优先级比该模块对应的激活方式的优先级低的激活方式无法激活该模块。例如,针对模块A,如果在新增或者删除模块A的情况下,需要的最低优先级的激活方式为软复位,那么在新增或者删除模块A时,采用比软复位优先级更高的激活方式(如主机复位或者主机下电再上电)也可以成功激活模块A,但是采用比软复位优先级更低的激活方式(如立即生效)则不能成功激活。应理解,上述激活方式的相关描述只是示例性说明,并不对其构成限定。
外围设备可以获取K个模块中新增模块和删除模块对应的激活方式,即直接从K个模块中新增模块和删除模块的信息中获取激活方式,得到L1个激活方式。L1为大于或等于0,且小于或等于L的整数。由于不同模块的激活方式可能相同,因此,针对激活方式相同的模块可以仅保留一个激活方式。例如,新增模块包括模块1、模块2和模块3;删除模块包括模块4和模块5;第一固件的信息中模块1、模块2、模块3的激活方式可以分别为软复位、主机复位、软复位;第二固件的信息中模块4和模块5的激活方式均为软复位;外围设备最终可以确定两个激活方式,即主机复位和软复位。
在一种可能的实现方式中,外围设备可以根据该K个模块中修改模块的特征描述确定修改模块的激活方式,得到L2个激活方式。L小于或等于L1+L2。L2为大于或等于0,且小于或等于L的整数。
外围设备可以比较K个模块中修改模块在第一固件的信息和第二固件的信息中的特征描述,确定修改模块具体的变更内容,之后可以根据该变更内容确定修改模块的激活方式。变更内容不同,确定的修改模块的激活方式可能不同。示例性的,在一个修改模块的变更内容涉及软件架构或者接口的变更的情况下,修改模块需要通过优先级较高的激活方式(如主机复位)才能激活,在变更内容仅涉及配置参数等较小的修改的情况下,修改模块通过优先级较低的激活方式(如立即生效)就能激活。
可以理解的是,外围设备通过修改模块的特征描述确定的修改模块的激活方式的优先级,小于或等于第一固件的信息中该修改模块的激活方式的优先级。例如,第二固件中模块B的1.1版本的特征描述包括B1、B2、B3三项内容,激活方式是系统复位(即新增或者删除1.1版本的模块B所需的优先级最低的激活方式),第一固件中模块B的1.3版本的特征描述包括B1、B2、B3、B4、B5五项内容,激活方式也是系统复位。但如果将模块B从版本1.1升级到1.3,发生变更的仅有B4、B5两项内容,此时外围设备只需要根据B4、B5这两项内容确定激活方式,可以确定需要的优先级最低的激活方式为软复位。
外围设备得到上述L1个激活方式和上述L2个激活方式之后,可以将上述L1个激活方式和上述L2个激活方式中优先级最高的激活方式确定为第一固件的激活方式。在一些实施例中,外围设备可以先根据上述L1个激活方式和上述L2个激活方式确定上述L个激活方式,之后可以将上述L个激活方式中优先级最高的激活方式确定为第一固件的激活方式。在另一些实施例中,外围设备可以确定上述L1个激活方式中优先级最高的激活方式,得到第一激活方式,以及可以确定上述L2个激活方式中优先级最高的激活方式,得到第二激活方式,之后可以将第一激活方式和第二激活方式中优先级高的激活方式确定为第一固件的激活方式。
在另一种可能的实现方式中,外围设备可以根据该K个模块中修改模块在第一固件的信息和第二固件的信息中的激活方式,确定修改模块的激活方式(即直接获取第一固件的信息或第二固件的信息中修改模块的激活方式),得到L3个激活方式。在一个修改模块在第一固件的信息和第二固件的信息中的激活方式不同的情况下,可以将这两个激活方式中优先级较高的激活方式确定为这个修改模块的激活方式。L3为大于或等于0的整数。
之后外围设备可以将上述L1个激活方式和上述L3个激活方式中优先级最高的激活方式确定为第一固件的激活方式。一种可能的方式中,外围设备可以先根据上述L1个激活方式和上述L3个激活方式确定L’个激活方式,之后可以将上述L’个激活方式中优先级最高的激活方式确定为第一固件的激活方式。L’小于或等于L1+L3。另一种可能的方式中,外围设备可以确定上述L1个激活方式中优先级最高的激活方式,得到第一激活方式,以及可以确定上述L3个激活方式中优先级最高的激活方式,得到第三激活方式,之后可以将第一激活方式和第三激活方式中优先级高的激活方式确定为第一固件的激活方式。可见,通过上述方式确定第一固件的激活方式时,外围设备不需要根据该K个模块中修改模块的特征描述确定修改模块的激活方式,实现较为简单。
在又一种可能的实现方式中,外围设备可以先根据该K个模块中修改模块在第一固件的信息和第二固件的信息中的激活方式,确定修改模块的激活方式,得到L3个激活方式。之后外围设备可以确定上述L1个激活方式中优先级最高的激活方式,得到第一激活方式,以及可以确定上述L3个激活方式中优先级最高的激活方式,得到第三激活方式,在第一激活方式的优先级低于第三激活方式的优先级的情况下,外围设备可以根据该K个模块中修改模块的特征描述确定修改模块的激活方式,得到L2个激活方式。之后外围设备可以将上述L1个激活方式和上述L2个激活方式中优先级最高的激活方式确定为第一固件的激活方式,详细描述可以参考上面相关内容,在此不再赘述。在第一激活方式的优先级高于或等于第三激活方式的优先级的情况下,外围设备可以将第一激活方式确定为第一固件的激活方式。
可见,通过上述方式确定第一固件的激活方式时,外围设备可以仅在第一激活方式的优先级低于第三激活方式的优先级的情况下,再根据该K个模块中修改模块的特征描述确定修改模块的激活方式,可以减少外围设备根据特征描述确定激活方式的次数,从而可以节约计算资源。
在一些实施例中,在第一激活方式的优先级低于第三激活方式的优先级的情况下,外围设备根据该K个模块中修改模块的特征描述确定修改模块的激活方式时,可以先确定所有修改模块中激活方式(即根据修改模块在第一固件的信息和第二固件的信息中的激活方式确定的激活方式)的优先级高于第一激活方式的优先级的修改模块,得到V个修改模块。之后外围设备可以根据该V个修改模块的特征描述确定该V个修改模块对应的激活方式,得到L4个激活方式。之后外围设备可以将上述L1个激活方式和上述L4个激活方式中优先级最高的激活方式确定为第一固件的激活方式。V为大于0的整数。L4为小于或等于V,且小于或等于L3的整数。可见,上述方式中仅需要确定V个修改模块的激活方式,在一些情况下可以减少需要确定激活方式的修改模块的数量,从而可以节约计算资源。
可选地,当修改模块的版本号差值较大(也即是版本跨度较大)时,一般都会是较大的变更,相当于新增该模块。因此,在外围设备根据一个修改模块的特征描述确定该修改模块对应的激活方式之前,外围设备可以先比较该修改模块在第一固件和第二固件中的版本号,如果该修改模块的版本号差值大于版本号阈值(如1),可以直接将该修改模块在第一固件的信息和第二固件的信息中优先级最高的激活方式,确定为该修改模块对应的激活方式;如果该修改模块的版本号差值小于或等于版本号阈值,可以再根据该修改模块的特征描述确定该修改模块对应的激活方式。例如,第一固件中模块C的版本号为2.6,第一固件的信息中模块C的激活方式为主机复位,第二固件中模块C的版本号为1.4,第二固件的信息中模块C的激活方式为软复位。外围设备可以确定版本号差值1.2大于版本号阈值(如1),之后可以直接将模块C在第一固件的信息和第二固件的信息中优先级最高的激活方式(即主机复位)确定为模块C对应的激活方式,不需要根据模块C的特征描述确定激活方式。
需要说明的是,由于一个修改模块在第一固件的信息中的激活方式的优先级一般高于在第二固件的信息中的激活方式的优先级,因此,在一些实施例中,外围设备也可以直接将修改模块在第一固件的信息中的激活方式确定为该修改模块对应的激活方式,而不需要将该修改模块在第一固件的信息和第二固件的信息中优先级最高的激活方式,确定为该修改模块对应的激活方式。
下面以外围设备为网卡为例,对确定第一固件的激活方式的步骤进行说明。
第二固件可以包括SR-IOV模块、VxLAN模块、统一扩展固件接口(unifiedextensible firmware interface,UEFI)模块、链路层发现协议(link layer discoveryprotocol,LLDP)模块和数据中心桥接(data center bridge,DCB)模块。第二固件的信息可以如下表1所示:
表1
第一固件的信息可以如下表2所示。
模块的标识 | 版本号 | 特征描述 | 激活方式 |
RoCE | 1.0 | 支持v1版本RoCE协议 | 主机复位 |
SR-IOV | 1.6 | 支持128个VF | 主机复位 |
VxLAN | 2.2 | 支持内层报文散列 | 主机复位 |
UEFI | 3.0 | 支持PXE vlan | 主机复位 |
DCB | 2.0 | 支持PFC和ETS | 软复位 |
表2
外围设备根据第一固件的信息和第二固件的信息可以确定发生变更的模块包括RoCE模块、SR-IOV模块、LLDP模块,变更模块的信息可以如下表3所示:
模块的标识 | 版本号 | 特征描述 | 变更类别 | 激活方式 |
RoCE | 1.0 | 支持v1版本RoCE协议 | 新增 | 主机复位 |
SR-IOV | 1.6 | 支持128个VF | 修改 | 主机复位 |
LLDP | 1.0 | 支持Tx和Rx | 删除 | 软复位 |
表3
表3与表1和表2相比增加了变更类别,即变更模块的变更类别。变更类别可以为新增,也可以为修改,还可以为删除。如表3所示,RoCE模块的变更类别为新增,即RoCE模块为新增模块,SR-IOV模块的变更类别为修改,即SR-IOV模块为修改模块,LLDP模块的变更类别为删除,即LLDP模块为删除模块。
上述表3中RoCE模块、LLDP模块对应的激活方式可以是外围设备直接从第一固件的信息或第二固件的信息中获取得到的(即上述表1和表2中对应的激活方式),SR-IOV模块对应的激活方式可以是外围设备根据第一固件的信息和第二固件的信息中SR-IOV模块的特征描述得到的。外围设备可以根据第一固件和第二固件的信息中SR-IOV模块的特征描述,确定第一固件中的SR-IOV模块相对于第二固件中的SR-IOV模块增加了支持的VF数量。由于增加的VF涉及到数据结构和资源的变更,因此,外围设备可以确定SR-IOV模块对应的激活方式为主机复位。假设第一固件的信息中1.6版本的SR-IOV模块的特征描述为“支持64个VF,默认使能32个”,网卡的SR-IOV模块从1.3版本升级为1.6版本时,未涉及VF数量变更,仅限定默认使能32个,因此,外围设备根据SR-IOV模块的特征描述可以确定激活SR-IOV模块需要的优先级最低的激活方式可以为软复位。
通过表3可知,RoCE模块、LLDP模块和SR-IOV模块对应的激活方式分别为主机复位、软复位和主机复位,因此可以将其中优先级最高的激活方式(即主机复位)确定为第一固件的激活方式。
应理解,上述表1和表2仅是为了方便理解,才以表格方式呈现。固件的信息在实际存储时可以以二进制、十六进制、美国信息交换标准代码(american standard code forinformation interchange,ASCII)、寄存器等任一方式进行存储。
需要说明的是,第一固件的信息和第二固件的信息还可以包括参数配置信息。参数配置信息用于配置外围设备的参数。参数配置信息可以理解为固件包括的参数配置模块的信息,但参数配置模块可以没有版本号。
例如,上述网卡的第二固件的信息中包括的参数配置模块的特征描述可以为PXE使能、PFC关闭、网络唤醒(wake-on-LAN,WOL)关闭,激活方式可以为立即生效。第一固件的信息中包括的参数配置模块的特征描述可以为PXE使能、PFC使能、WOL关闭,激活方式可以为立即生效。相应地,外围设备根据第一固件的信息和第二固件的信息还可以确定发生变更的模块包括参数配置模块,变更的内容为(由PFC关闭变更为PCF使能),根据该变更的内容可以确定参数配置模块需要的优先级最低的激活方式为立即生效。
应理解,上述外围设备根据变更的模块(即上述K个模块)确定第一固件的激活方式的相关描述,只是示例性说明,并不对其构成限定。
307.外围设备向固件激活模块发送第一指示信息,第一指示信息用于指示第一固件的激活方式。
在外围设备根据第一固件的信息和第二固件的信息确定了第一固件的激活方式之后,外围设备可以向固件激活模块发送第一指示信息。相应地,固件激活模块可以接收到来自外围设备的第一指示信息。
308.外围设备执行固件升级,将第一固件写入存储介质。
在外围设备根据第一固件的信息和第二固件的信息确定了第一固件的激活方式之后,外围设备可以执行固件升级,即将外围设备的固件由第二固件升级为第一固件,也即将第一固件写入外围设备的存储介质中。
应理解,在外围设备的存储介质(如flash)的容量仅能够存放一个固件文件的情况下,外围设备在将第一固件文件写入自身的存储介质中时,可以直接覆盖第二固件文件(即删除存储介质中的第二固件文件)。在外围设备的存储介质的容量可以存放两个或两个以上的固件文件,以及外围设备支持双区备份的情况下,外围设备可以先将第一固件文件写入到自身的存储介质中的备份区,在激活第一固件之后,可以将该备份区切换为主区。并且,外围设备还可以将第一固件文件同步到原主区(即当前的备份区),以覆盖第二固件文件。
309.在外围设备的固件升级成功的情况下,外围设备向固件激活模块发送第四指示信息,第四指示信息用于指示外围设备的固件升级成功。
在外围设备的固件升级成功的情况下,外围设备可以向固件激活模块发送第四指示信息。相应地,固件激活模块可以接收到来自外围设备的第四指示信息。
在一些实施例中,外围设备可以先执行步骤308,之后可以在外围设备的固件升级成功的情况下,再执行步骤307,或者可以同时执行(即并行执行)步骤307和步骤308。在另一些实施例中,外围设备可以在外围设备的固件升级成功的情况下,将第一指示信息和第四指示信息一起发送给固件激活模块,即可以先执行步骤308,再同时执行步骤307和步骤309。在又一些实施例中,外围设备可以不用向固件激活模块发送第四指示信息,即可以不用执行步骤309。
310.固件激活模块根据第一固件的激活方式激活第一固件。
固件激活模块接收到来自外围设备的第四指示信息之后,可以确定外围设备固件升级成功,之后可以根据第一指示信息指示的激活方式激活第一固件。激活第一固件可以理解为使外围设备的芯片上运行的固件由第二固件切换为第一固件。
在一些实施例中,固件激活模块在激活第一固件之前,可以先确定服务器的升级策略,之后可以根据服务器的升级策略和第一固件的激活方式激活第一固件。不同升级策略对应不同激活时间。服务器的升级策略,可以理解为服务器计算机系统的升级策略,指服务器整机包括所有外围设备的升级策略,可以是预先设置的,也可以由服务器管理人员等根据实际情况设置。
上述服务器的升级策略可以为静默升级,也可以为立即升级。在升级策略为静默升级的情况下,固件激活模块可以在下一次运维窗口通过第一固件的激活方式激活第一固件;在升级策略为立即升级的情况下,固件激活模块可以立即通过第一固件的激活方式激活第一固件(也即是可以在接收到第一指示信息之后,立即激活第一固件)。
不同升级策略和不同第一固件的激活方式对应的第一固件的激活操作可以如表4所示:
表4
如表4所示,升级策略决定了激活操作是立即执行,还是在下一次运维窗口执行。例如,在升级策略为立即升级,激活方式为主机复位的情况下,固件激活模块可以立即复位主机。在升级策略为静默升级,激活方式为主机复位的情况下,固件激活模块可以等待下一次运维窗口,在下一次运维窗口复位主机。可以理解的是,由于在每一次运维窗口期间,一般会复位主机,因此,在升级策略为静默升级,以及激活方式为软复位的情况下,可以直接跟随主机进行复位,不需要单独再进行一次外围设备的软复位。在激活方式为立即生效的情况下,第一固件可以直接激活,不需要任何复位,对业务影响较小,因此,在两种升级策略下,固件激活模块均可以不用进行操作。
上述固件激活方法中,外围设备可以通过比较第一固件与第二固件确定第一固件最优的激活方式,然后可以将该激活方式提供给固件激活模块。之后,固件激活模块可以通过该激活方式激活第一固件,可以避免每次外围设备的固件升级成功之后都采用主机复位或者主机下电再上电的激活方式激活待升级固件,可以提高固件激活的灵活性。此外,在一些情况下外围设备确定的第一固件的激活方式可以为软复位等优先级较低的激活方式,从而可以充分利用软复位等激活方式的优势,可以降低对业务的影响。
基于上述系统架构,请参阅图4,图4是本申请实施例公开的另一种固件激活方法的流程示意图。其中,该固件激活方法中以主机和外围设备作为该交互示意的执行主体。主机作为固件激活模块,对外围设备进行固件升级和激活。如图4所示,该固件激活方法可以包括但不限于如下步骤:
401.主机向外围设备发送固件升级命令。
在主机需要对外围设备的固件进行升级的情况下,主机可以向外围设备发送固件升级命令。相应地,外围设备可以接收来自主机的固件升级命令,以及可以确定有待升级固件可以进行升级,可以准备接收待升级固件或待升级固件文件。固件升级命令和上述步骤301中的第三指示信息相同,可以参考上述第三指示信息的相关描述。
402.主机向外围设备发送第一固件文件,第一固件文件包括第一固件的信息,第一固件为待升级固件。
主机向外围设备发送固件升级命令之后,可以继续向外围设备发送第一固件文件。相应地,外围设备可以接收来自主机的第一固件文件。第一固件文件可以包括第一固件和第一固件的信息。关于第一固件的信息更详细的描述可以参考上述步骤303中第一固件的信息的相关描述,在此不再赘述。
403.外围设备根据第一固件的信息和第二固件的信息,确定第一固件的激活方式,第二固件为正在使用的固件。
外围设备根据第一固件的信息和第二固件的信息确定第一固件的激活方式的详细步骤与上述步骤305和步骤306中外围设备确定第一固件的激活方式的步骤相同,可以参考上述步骤305和步骤306中的相关描述,在此不再赘述。
404.外围设备执行固件升级,将第一固件写入存储介质。
外围设备执行固件升级的相关描述可以参考步骤308中的相关描述。
405.外围设备向主机发送第一指示信息,第一指示信息指示第一固件的激活方式。
外围设备向主机发送第一指示信息的相关描述可以参考上述步骤307中的相关描述,在此不再赘述。
可选地,外围设备还可以向主机发送固件升级完成消息,以便通知主机自身固件升级完成(即成功将第一固件写入自身的存储介质中)。固件升级完成消息与第四指示信息类似,可以参考上述步骤309中第四指示信息的相关描述。
406.主机根据第一固件的激活方式激活第一固件。
主机接收到外围设备发送的第一指示信息之后,可以根据第一指示信息指示的激活方式对第一固件进行激活。主机根据第一固件的激活方式激活第一固件的步骤与步骤310中固件激活模块根据第一固件的激活方式激活第一固件的步骤相似,可以参考上述步骤310中的相关描述。
需要说明的是,上述方法实施例中主机执行的操作也可以理解为处理器执行的操作。
基于上述系统架构,请参阅图5,图5是本申请实施例公开的又一种固件激活方法的流程示意图。其中,该固件激活方法中以设备管理模块和外围设备作为该交互示意的执行主体。设备管理模块作为固件激活模块,对外围设备进行固件升级和激活。设备管理模块对外围设备进行固件升级时可以采用平台级数据模型(platform level data model,PLDM)over MCTP over PCIE的协议结构。应理解,PLDM over MCTP over PCIE协议结构是指PCIE协议承载MCTP协议,再承载PLDM协议的结构,从报文结构看,PLDM报文可以作为MCTP报文的有效载荷(payload),封装在MCTP报文内部,MCTP报文可以作为PCIE报文的payload,封装在PCIE报文内部。PLDM协议(规范)定义了固件升级的过程及相关命令。如图5所示,该固件激活方法可以包括但不限于如下步骤:
501.设备管理模块向外围设备发送固件升级命令。
在设备管理模块需要对外围设备的固件进行升级的情况下,设备管理模块可以向外围设备发送固件升级命令(Request Update)。相应地,外围设备可以接收到来自设备管理模块的固件升级命令。固件升级命令和上述步骤301中的第三指示信息相同,可以参考上述第三指示信息的相关描述。
502.外围设备向主机发送固件请求命令。
外围设备接收到来自设备管理模块的固件升级命令之后,可以确定有待升级固件可以进行升级,可以向设备管理模块发送固件请求命令(Request Firmware Data)。相应地,设备管理模块可以接收到来自外围设备的固件请求命令。
503.设备管理模块向外围设备发送第一固件文件,第一固件文件包括第一固件的信息,第一固件为待升级固件。
当设备管理模块接收到来自外围设备的固件请求命令之后,可以向外围设备发送第一固件文件。相应地,外围设备可以接收来自设备管理模块的第一固件文件。第一固件文件可以包括第一固件和待升级固件的信息。关于第一固件的信息更详细的描述可以参考上述步骤303中第一固件的信息的相关描述,在此不再赘述。
504.外围设备对第一固件文件进行校验。
当外围设备接收到设备管理模块发送的第一固件文件之后,可以对第一固件文件进行校验(Verify Image)。在第一固件文件校验成功的情况下,外围设备可以继续执行后面的步骤(即执行步骤505)。在第一固件文件校验失败的情况下,外围设备可以重新发送固件请求命令,可以参考图3所对应的实施例中的相关描述。
505.外围设备根据第一固件的信息和第二固件的信息,确定第一固件的激活方式,第二固件为正在使用的固件。
外围设备根据第一固件的信息和第二固件的信息确定第一固件的激活方式的详细步骤与上述步骤305和步骤306中外围设备确定第一固件的激活方式的步骤相同,可以参考上述步骤305和步骤306中的相关描述,在此不再赘述。
506.外围设备执行固件升级,将第一固件写入存储介质。
外围设备接收到第一固件文件之后,可以执行固件升级(Apply Image)。其中,外围设备执行固件升级的详细描述可以参考上述步骤308中的相关描述。
507.外围设备向设备管理模块发送固件升级完成消息,包括第一指示信息,第一指示信息指示第一固件的激活方式。
外围设备的固件升级完成(即成功将第一固件写入自身的存储介质)之后,可以向设备管理模块发送固件升级完成消息,固件升级完成消息中可以携带第一指示信息。
固件升级完成消息可以为应用完成(Apply Complete)消息。Apply Complete消息为PLDM协议定义的消息,用于外围设备升级完成(即固件升级成功)之后,发送给设备管理模块,以便设备管理模块可以知道外围设备的固件升级完成。Apply Complete消息的数据格式可以如图6所示。其中,Apply Complete消息可以包括12个字节(bytes)的PCIE厂商定义(Vender defined mechanism,VDM)消息报文头(header),4个字节的MCTP header,1个比特(bit)的完整性校验(integrity check,IC),7个比特的消息类型(Message Type),4个字节的PLDM Header,1个字节的应用结果(Apply Result),2个字节的组件激活方式修改(Component Activation Methods Modification)。
Apply Complete消息中包括可扩展的字段,因此,可以对Apply Complete消息进行扩展,定义固件激活方式要求(Activation Method Requirement),以便外围设备可以将第一固件的激活方式传递给设备管理模块。在Apply Complete消息中,可以对组件激活方式修改字段中的保留(Reserved)字段进行扩展定义,定义固件激活方式要求,可以定义0x0-0x7等8个不同的激活方式,如下所示:
Component Activation Methods Modification
[15:11]-Reserved
[10:8]-Activation Method Requirement(用于定义固件激活方式要求)
0x0-Automatic
0x1-Self-Contained
0x2-Medium-specific reset
0x3-System reboot
0x4-DC power cycle
0x5-AC power cycle
0x6-Supports ActivatePendingImage
0x7-Supports ActivatePendingComponentImageset
[7:0]-Component Activation Capability(Specification Definition)(指[7:0]这8bit的字段是指示组件激活方式能力(Component Activation Capability),即组件所支持的激活方式,包括PLDM规范定义(Specification Definition)的8种激活方式能力(对应上述0x1-0x7的激活方式)。其中,这8个bit中的每一个bit对应一种激活方式能力,bit值为“1”表示组件(即外围设备)支持该激活方式,为“0”表示组件不支持该激活方式。组件可以支持多种激活方式,即可以多bit置“1”。)
上述激活方式自动(automatic)指外围设备可以自行激活待升级固件;激活方式独立(Self-Contained)指外围设备在接收到设备管理模块发送的激活命令后,可以自行激活待升级固件;媒介复位(Medium-specific reset)指接口媒质的复位;系统重启(Systemreboot)指主机复位。直流(direct current,DC)power cycle指直流电源下电再上电,即主机系统下电再上电,也即服务器的CPU系统下电再上电,但设备管理模块不掉电。交流(alternating current,AC)power cycle指交流电源下电再上电,即服务器整机下电再上电,包括CPU系统和设备管理模块。支持激活等待固件(Support ActivatePendingImage)指延迟激活单个固件(Image),此种激活方式需要固件激活模块(即设备管理模块)向外围设备发送一条特定的激活命令,外围设备接收到该激活命令后可以执行单个固件的激活操作。支持激活等待固件套件(Support ActivatePendingComponentImageSet)指延迟激活多个固件(ImageSet),此种激活方式需要固件激活模块向外围设备发送一条特定的激活命令,外围设备接收到该激活命令之后可以执行多个固件激活的操作;此种激活方式可以用于包括多个功能模块(如包括多个芯片),每个功能模块都有自己独立的固件的外围设备,可以提高激活效率。
508.设备管理模块根据第一固件的激活方式激活第一固件。
设备管理模块接收到外围设备发送的第一指示信息之后,可以根据第一指示信息指示的激活方式对第一固件进行激活。其中,设备管理模块可以从Apply Complete消息中的固件激活方式要求字段得到第一固件的激活方式。例如,Apply Complete消息中固件激活方式要求字段为0x2,设备管理模块可以确定对应的激活方式为主机复位。设备管理模块根据第一固件的激活方式激活第一固件的步骤与步骤310中固件激活模块根据第一固件的激活方式激活第一固件的步骤相似,可以参考上述步骤310中的相关描述。
应理解,在PLDM协议定义的固件升级过程的基础上,外围设备可以根据第一固件的信息和第二固件的信息确定第一固件的激活方式,以及利用PLDM协议提供的扩展字段在发送Apply Complete消息时携带第一固件的激活方式,将第一固件的激活方式提供给外围设备,从而可以提高固件激活的灵活性,并且具有较好的规范遵从性和可实现性。
基于上述系统架构,请参阅图7,图7是本申请实施例公开的又一种固件激活方法的流程示意图。其中,该固件激活方法中以管理工具、设备管理模块和外围设备作为该交互示意的执行主体。管理工具作为固件激活模块,对外围设备进行固件升级和激活。应理解,管理工具触发外围设备的固件升级和激活主要是通过设备管理模块实现的。管理工具可以通过设备管理模块向外围设备发送待升级固件文件,对外围设备的固件进行升级,之后,当设备管理模块接收到外围设备返回的消息(如固件升级完成消息),设备管理模块可以将该消息发送给管理工具,再之后,管理工具可以通过设备管理模块对外围设备的待升级固件进行激活。
如图7所示,该固件激活方法可以包括但不限于如下步骤:
701.管理工具向设备管理模块发送固件升级命令。
在管理工具需要对外围设备的固件进行升级的情况下,管理工具可以向设备管理模块发送固件升级命令,该固件升级命令可以用于指示设备管理模块对外围设备的固件进行升级。相应地,设备管理模块可以接收来自管理工具的固件升级命令。
702.管理工具向设备管理模块发送第一固件文件,第一固件文件包括第一固件的信息,第一固件为待升级固件。
管理工具向设备管理模块发送固件升级命令之后,可以继续向设备管理模块发送第一固件文件。相应地,设备管理模块接收到来自管理工具的固件升级命令之后,可以继续接收来自管理工具的第一固件文件,之后,设备管理模块可以对外围设备的固件进行升级,可以执行步骤703。
703.设备管理模块向外围设备发送固件升级命令。
704.外围设备向主机发送固件请求命令。
705.设备管理模块向外围设备发送第一固件文件,第一固件文件包括第一固件的信息,第一固件为待升级固件。
706.外围设备对第一固件文件进行校验。
707.外围设备根据第一固件的信息和第二固件的信息,确定第一固件的激活方式,第二固件为正在使用的固件。
708.外围设备执行固件升级,将第一固件写入存储介质。
709.外围设备向设备管理模块发送固件升级完成消息,包括第一指示信息,第一指示信息指示第一固件的激活方式。
上述步骤703-709与图5中的步骤501-507相同,可以参考上述步骤501-507的相关描述。
710.设备管理模块向管理工具发送第一指示信息,第一指示信息用于指示第一固件的激活方式。
设备管理模块接收到外围设备发送的固件升级完成消息之后,可以将固件完成消息中包括的第一指示信息发送给管理工具。相应地,管理工具可以接收到来自设备管理模块的第一指示信息。在一些实施例中,管理工具可以通过第一设备或服务器的显示模块输出第一指示信息指示的激活方式,以便可以将第一固件的激活方式提供给服务器管理人员。
711.管理工具向设备管理模块发送第二指示信息,第二指示信息用于指示设备管理模块通过第一固件的激活方式激活第一固件。
在管理工具需要对第一固件进行激活时,可以向设备管理模块发送第二指示信息。相应地,设备管理模块可以接收到来自管理工具的第二指示信息。在一些实施例中,管理工具可以接收服务器管理人员的输入,响应于该输入,管理工具向设备管理模块发送第二指示信息。
712.设备管理模块根据第一固件的激活方式激活第一固件。
设备管理模块接收到管理工具发送的第二指示信息之后,可以根据第一固件的激活方式对第一固件进行激活。设备管理模块根据第一固件的激活方式激活第一固件的详细步骤可以参考上述步骤508。
需要说明的是,上述不同实施例中的相关信息(即相同信息或相似信息)和相关描述可以相互参考。
应理解,除了上述主机、设备管理模块、管理工具之外,固件激活模块还可以为其它可以向外围设备发起固件升级请求或者指示的设备,本申请实施例在此不作限定。还应理解,上述图3、图4、图5和图7中以固件激活模块、主机、设备管理模块、外围设备作为交互示意的执行主体为例来示意上述固件激活方法,但本申请并不限制该交互示意的执行主体。例如,图3中的固件激活模块也可以是支持该固件激活模块实现该方法的芯片、芯片系统、或处理器,还可以是能实现全部或部分固件激活模块功能的逻辑模块或软件。
基于上述系统架构,请参阅图8,图8是本申请实施例公开的一种固件激活装置的结构示意图。其中,该固件激活装置可以为服务器的外围设备,也可以为服务器的外围设备中的模块(例如,芯片)。如图8所示,该固件激活装置可以包括:
接收单元801,用于接收第一固件的信息,该第一固件为该外围设备的待升级固件;
确定单元802,用于根据该第一固件的信息和第二固件的信息,确定该第一固件的激活方式,该第二固件为该外围设备正在使用的固件;
发送单元803,用于发送第一指示信息,该第一指示信息指示该第一固件的激活方式。
在一个实施例中,该第一固件包括N个模块,该第二固件包括M个模块,N和M为大于或等于1的正整数;该确定单元802根据该第一固件的信息和第二固件的信息,确定该第一固件的激活方式,包括:
根据该N个模块的信息和该M个模块的信息,确定K个模块,该K个模块包括该N个模块相对该M个模块的删除模块、新增模块和修改模块,K为大于或等于1的正整数;
根据该K个模块确定该第一固件的激活方式。
在一个实施例中,该模块的信息包括该模块的标识和版本号,该确定单元802根据该N个模块的信息和M个模块的信息,确定K个模块,包括:
根据该N个模块的标识和该M个模块的标识,确定该N个模块相对该M个模块的删除模块和新增模块;
根据该N个模块的标识和版本号以及该M个模块的标识和版本号确定该N个模块相对该M个模块的修改模块;
根据该N个模块相对该M个模块的删除模块和新增模块,以及该N个模块相对该M个模块的修改模块,确定该K个模块。
在一个实施例中,该确定单元802根据该K个模块确定该第一固件的激活方式包括:
确定该K个模块中每个模块对应的激活方式,得到L个激活方式,L为小于或等于K且大于0的整数,不同激活方式对应不同优先级;
将该L个激活方式中优先级最高的激活方式确定为该第一固件的激活方式。
在一个实施例中,该模块的信息还包括该模块的特征描述和激活方式,该确定单元802确定该K个模块中每个模块对应的激活方式,得到L个激活方式包括:
获取该K个模块中新增模块和删除模块的激活方式,得到L1个激活方式,L1为大于或等于0的整数;
根据该K个模块中修改模块的特征描述确定该修改模块的激活方式,得到L2个激活方式,L2为大于或等于0的整数;
根据该L1个激活方式和该L2个激活方式确定该L个激活方式,L为小于或等于L1+L2的整数。
在一个实施例中,该接收单元801,还用于接收第三指示信息,该第三指示信息用于指示该外围设备进行固件升级;
该装置还可以包括:
升级单元804,用于根据该第三指示信息将该外围设备的固件由该第二固件升级为该第一固件。
在一个实施例中,该发送单元803,还用于在该外围设备的固件升级成功的情况下,发送第四指示信息,该第四指示信息用于指示该外围设备的固件升级成功。
在一个实施例中,该装置还可以包括:
校验单元805,用于对该第一固件进行校验;
该确定单元802根据该第一固件的信息和第二固件的信息,确定该第一固件的激活方式包括:
在该第一固件校验成功的情况下,根据该第一固件的信息和第二固件的信息,确定该第一固件的激活方式。
在一个实施例中,该服务器设置有主机,该激活方式为主机上下电、主机复位、软复位和立即生效中的一项。
有关上述接收单元801、确定单元802、发送单元803、升级单元804和校验单元805更详细的描述可以直接参考上述图3、图4、图5和图7所示的方法实施例中外围设备的相关描述直接得到,这里不加赘述。
基于上述系统架构,请参阅图9,图9是本申请实施例公开的另一种固件激活装置的结构示意图。其中,该固件激活装置可以应用于固件激活模块,该固件激活模块可以为管理工具或服务器的主机或设备管理模块,该管理工具可以设置或安装在服务器中,也可以设置或安装在第一设备中,该服务器设置有外围设备。如图9所示,该固件激活装置可以包括:
发送单元901,用于向服务器的外围设备发送第一固件的信息,该第一固件为待升级固件;
接收单元902,用于接收来自该外围设备的第一指示信息,该第一指示信息指示该第一固件的激活方式;
激活单元903,用于根据该激活方式激活该第一固件。
在一个实施例中,该装置还包括:
确定单元904,用于确定该服务器的升级策略,不同升级策略对应不同激活时间;
该激活单元903根据该激活方式激活该第一固件包括:
根据该升级策略和该激活方式激活该第一固件。
在一个实施例中,该升级策略为静默升级或立即升级;该激活单元903根据该升级策略和该激活方式激活该第一固件包括:
在该升级策略为静默升级的情况下,在下一次运维窗口通过该激活方式激活该第一固件;
在该升级策略为立即升级的情况下,立即通过该激活方式激活该第一固件。
在一个实施例中,该发送单元901,还用于向该外围设备发送第三指示信息,该第三指示信息用于指示该外围设备进行固件升级。
在一个实施例中,该接收单元902,还用于接收来自该外围设备的第四指示信息,该第四指示信息用于指示该外围设备的固件升级成功;
该激活单元903根据该激活方式激活该第一固件包括:
在接收到该第四指示信息的情况下,根据该激活方式激活该第一固件。
有关上述发送单元901、接收单元902、激活单元903以及确定单元904更详细的描述可以直接参考上述图3所示的方法实施例中固件激活模块的相关描述直接得到,这里不加赘述。
基于上述系统架构,请参阅图10,图10是本申请实施例公开的一种电子设备的结构示意图。其中,该电子设备1000可以包括:处理器1001、通信接口1002和存储器1003。处理器1001、通信接口1002以及存储器1003可以相互连接或者通过总线1004相互连接。
示例性的,存储器1003用于存储电子设备1000的计算机程序和数据,存储器1003可以包括但不限于是随机存储记忆体(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmable read onlymemory,EPROM)或便携式只读存储器(compact disc read-only memory,CD-ROM)等。通信接口1002用于支持电子设备1000进行通信,例如接收或发送数据。
示例性的,处理器1001可以是CPU、复杂可编程逻辑器件、通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。
在一个实施例中,该电子设备1000可以为固件激活模块,处理器1001可以用于读取上述存储器1003中存储的程序,执行上述图3所示的方法实施例中固件激活模块执行的操作,可以参考上述相关描述,在此不再详细赘述。
在一个实施例中,该电子设备1000可以为外围设备,处理器1001可以用于读取上述存储器1003中存储的程序,执行上述图3、图4、图5、以及图7等方法实施例中外围设备执行的操作,可以参考上述相关描述,在此不再详细赘述。
在一个实施例中,该电子设备1000可以为第一设备,也可以为服务器的主机或设备管理模块,处理器1001可以用于读取上述存储器1003中存储的程序,执行上述图4、图5、以及图7等方法实施例中主机或设备管理模块或管理工具执行的操作,可以参考上述相关描述,在此不再详细赘述。
需要说明的是,图10所示的电子设备1000仅仅是本申请实施例的一种实现方式,实际应用中,电子设备1000还可以包括更多或更少的部件,这里不作限制。
基于上述系统架构,请参阅图11,图11是本申请实施例公开的一种固件激活系统的结构示意图。如图11所示,该固件激活系统可以包括固件激活模块1101和外围设备1102。固件激活模块1101可以为管理工具、主机、设备管理模块等。当固件激活模块为管理工具时,固件激活模块可以位于第一设备或服务器中,此时,管理工具触发对外围设备的固件升级和激活可以理解为第一设备或服务器触发对外围设备的固件升级和激活。其中:
该外围设备1102,用于获取第一固件的信息;
该外围设备1102,还用于根据该第一固件的信息和第二固件的信息,确定该第一固件的激活方式,该第一固件为该外围设备1102的待升级固件,该第二固件为该外围设备1102正在使用的固件;
该外围设备1102,还用于向该固件激活模块1101发送第一指示信息,该第一指示信息指示该第一固件的激活方式;
该固件激活模块1101,用于根据该激活方式激活该第一固件。
在一个实施例中,该第一固件包括N个模块,该第一固件的信息包括该N个模块的标识、版本号和激活方式,N为大于或等于1的正整数。
作为一种可能的实施方式,该第一固件的信息还包括该N个模块的特征描述。
作为一种可能的实施方式,该第二固件包括M个模块,M为大于或等于1的正整数;该外围设备1102根据该第一固件的信息和第二固件的信息,确定该第一固件的激活方式,包括:
该外围设备1102根据该N个模块的信息和该M个模块的信息,确定K个模块,该K个模块包括该N个模块相对该M个模块的删除模块、新增模块和修改模块,K为大于或等于1的正整数;
该外围设备1102根据该K个模块确定该第一固件的激活方式。
作为一种可能的实施方式,该外围设备1102根据该N个模块的信息和M个模块的信息,确定K个模块,包括:
该外围设备1102根据该N个模块的标识和该M个模块的标识,确定该N个模块相对该M个模块的删除模块和新增模块;
该外围设备1102根据该N个模块的标识和版本号以及该M个模块的标识和版本号确定该N个模块相对该M个模块的修改模块;
该外围设备1102根据该N个模块相对该M个模块的删除模块和新增模块,以及该N个模块相对该M个模块的修改模块,确定该K个模块。
作为一种可能的实施方式,该外围设备1102根据该K个模块确定该第一固件的激活方式包括:
该外围设备1102确定该K个模块中每个模块对应的激活方式,得到L个激活方式,L为小于或等于K且大于0的整数,不同激活方式对应不同优先级;
该外围设备1102将该L个激活方式中优先级最高的激活方式确定为该第一固件的激活方式。
作为一种可能的实施方式,该外围设备1102确定该K个模块中每个模块对应的激活方式,得到L个激活方式包括:
该外围设备1102获取该K个模块中新增模块和删除模块的激活方式,得到L1个激活方式,L1为大于或等于0的整数;
该外围设备1102根据该K个模块中修改模块的特征描述确定该修改模块的激活方式,得到L2个激活方式,L2为大于或等于0的整数;
该外围设备1102根据该L1个激活方式和该L2个激活方式确定该L个激活方式,L为小于或等于L1+L2的整数。
作为一种可能的实施方式,该外围设备1102,还用于对该第一固件进行校验;
该外围设备1102根据第一固件的信息和第二固件的信息,确定该第一固件的激活方式包括:
在该第一固件校验成功的情况下,该外围设备1102根据该第一固件的信息和第二固件的信息,确定该第一固件的激活方式。
作为一种可能的实施方式,该外围设备1102,还用于向固件激活模块1101发送第一指示信息,该第一指示信息指示该第一固件的激活方式。
作为一种可能的实施方式,该外围设备1102,还用于将该外围设备1102的固件由该第二固件升级为该第一固件;
该固件激活模块1101根据该激活方式激活该第一固件包括:
在该外围设备1102的固件升级成功的情况下,该固件激活模块1101根根据该激活方式激活该第一固件。
作为一种可能的实施方式,该外围设备1102还用于接收来自该固件激活模块1101的第三指示信息,该第三指示信息用于指示该外围设备1102进行固件升级;
该外围设备1102将该外围设备1102的固件由该第二固件升级为该第一固件包括:
该外围设备1102根据该第三指示信息将该外围设备1102的固件由该第二固件升级为该第一固件。
作为一种可能的实施方式,该外围设备1102还用于在该外围设备1102的固件升级成功的情况下,向该固件激活模块1101发送第四指示信息,该第四指示信息用于指示该外围设备1102的固件升级成功。
作为一种可能的实施方式,该固件激活模块1101,还用于确定该服务器的升级策略,不同升级策略对应不同激活时间;
该固件激活模块1101根据该激活方式激活该第一固件包括:
该固件激活模块1101根据该升级策略和该激活方式激活该第一固件。
作为一种可能的实施方式,该升级策略为静默升级或立即升级;该固件激活模块1101根据该升级策略和该激活方式激活该第一固件包括:
在该升级策略为静默升级的情况下,该固件激活模块1101在下一次运维窗口通过该激活方式激活该第一固件;
在该升级策略为立即升级的情况下,该固件激活模块1101立即通过该激活方式激活该第一固件。
作为一种可能的实施方式,该外围设备1102位于服务器,该服务器设置有主机,该激活方式为主机上下电、主机复位、软复位和立即生效中的一项。
作为一种可能的实施方式,该固件激活模块1101为处理器,或者,该固件激活模块1101为设备管理模块,或者,该固件激活模块1101为管理工具。
作为一种可能的实施方式,当该固件激活模块1101为设备管理模块时,该外围设备1102还用于在该外围设备1102的固件升级成功的情况下,向该固件激活模块1101发送应用完成消息,该应用完成消息用于指示该外围设备1102的固件升级成功。
作为一种可能的实施方式,该管理工具位于第一设备或该服务器。
有关上述固件激活模块1101和外围设备1102更详细的描述可以直接参考上述图3所示的方法实施例中固件激活模块和外围设备的相关描述直接得到,这里不加赘述。
本申请实施例还公开一种计算机可读存储介质,其上存储有指令,该指令被执行时执行上述方法实施例中的方法。
本申请实施例还公开一种包括指令的计算机程序产品,该指令被执行时执行上述方法实施例中的方法。
显然,上述所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或者特性可以包含在本实施例申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是相同的实施例,也不是与其它实施例互斥的独立的或是备选的实施例。本领域技术人员可以显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请的说明书和权利要求书及所述附图中术语“第一”、“第二”、“第三”等是区别于不同的对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元,或者可选地,还包括没有列出的步骤或单元,或者可选地还包括这些过程、方法、产品或设备固有的其它步骤或单元。
可以理解的是,附图中仅示出了与本申请相关的部分而非全部内容。应当理解的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
在本说明书中使用的术语“部件”、“模块”、“系统”、“单元”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件或执行中的软件。例如,单元可以是但不限于在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或分布在两个或多个计算机之间。此外,这些单元可从在上面存储有各种数据结构的各种计算机可读介质执行。单元可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一单元交互的第二单元数据。例如,通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。
Claims (19)
1.一种固件激活方法,其特征在于,所述方法应用于固件激活系统,所述固件激活系统包括固件激活模块和外围设备,所述方法包括:
所述外围设备获取第一固件的信息;
所述外围设备根据所述第一固件的信息和第二固件的信息,确定所述第一固件的激活方式,所述第一固件为所述外围设备的待升级固件,所述第二固件为所述外围设备正在使用的固件;
所述外围设备向所述固件激活模块发送第一指示信息,所述第一指示信息指示所述第一固件的激活方式;
所述固件激活模块根据所述激活方式激活所述第一固件。
2.根据权利要求1所述的方法,其特征在于,所述第一固件包括N个模块,所述第一固件的信息包括所述N个模块的标识、版本号和激活方式,N为大于或等于1的正整数。
3.根据权利要求2所述的方法,其特征在于,所述第二固件包括M个模块,M为大于或等于1的正整数;所述外围设备根据所述第一固件的信息和第二固件的信息,确定所述第一固件的激活方式,包括:
所述外围设备根据所述N个模块的信息和所述M个模块的信息,确定K个模块,所述K个模块包括所述N个模块相对所述M个模块的删除模块、新增模块和修改模块,K为大于或等于1的正整数;
所述外围设备根据所述K个模块确定所述第一固件的激活方式。
4.根据权利要求3所述的方法,其特征在于,所述外围设备根据所述K个模块确定所述第一固件的激活方式包括:
所述外围设备确定所述K个模块中每个模块对应的激活方式,得到L个激活方式,L为小于或等于K且大于0的整数,不同激活方式对应不同优先级;
所述外围设备将所述L个激活方式中优先级最高的激活方式确定为所述第一固件的激活方式。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
所述外围设备将所述外围设备的固件由所述第二固件升级为所述第一固件;
所述固件激活模块根据所述激活方式激活所述第一固件包括:
在所述外围设备的固件升级成功的情况下,所述固件激活模块根据所述激活方式激活所述第一固件。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述固件激活模块为处理器,或者,所述固件激活模块为设备管理模块,或者,所述固件激活模块为管理工具。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当所述固件激活模块为所述设备管理模块时,在所述外围设备的固件升级成功的情况下,所述外围设备向所述固件激活模块发送应用完成消息,所述应用完成消息用于指示所述外围设备的固件升级成功。
8.一种固件激活方法,其特征在于,所述方法应用于服务器的外围设备,所述方法包括:
接收第一固件的信息,所述第一固件为所述外围设备的待升级固件;
根据所述第一固件的信息和第二固件的信息,确定所述第一固件的激活方式,所述第二固件为所述外围设备正在使用的固件;
发送第一指示信息,所述第一指示信息指示所述第一固件的激活方式。
9.根据权利要求8所述的方法,其特征在于,所述第一固件包括N个模块,所述第二固件包括M个模块,N和M为大于或等于1的正整数;所述根据所述第一固件的信息和第二固件的信息,确定所述第一固件的激活方式,包括:
根据所述N个模块的信息和所述M个模块的信息,确定K个模块,所述K个模块包括所述N个模块相对所述M个模块的删除模块、新增模块和修改模块,K为大于或等于1的正整数;
根据所述K个模块确定所述第一固件的激活方式。
10.根据权利要求9所述的方法,其特征在于,所述模块的信息包括所述模块的标识和版本号,所述根据所述N个模块的信息和所述M个模块的信息,确定K个模块,包括:
根据所述N个模块的标识和所述M个模块的标识,确定所述N个模块相对所述M个模块的删除模块和新增模块;
根据所述N个模块的标识和版本号以及所述M个模块的标识和版本号,确定所述N个模块相对所述M个模块的修改模块;
根据所述N个模块相对所述M个模块的删除模块和新增模块,以及所述N个模块相对所述M个模块的修改模块,确定所述K个模块。
11.根据权利要求9或10所述的方法,其特征在于,所述根据所述K个模块确定所述第一固件的激活方式包括:
确定所述K个模块中每个模块对应的激活方式,得到L个激活方式,L为小于或等于K且大于0的整数,不同激活方式对应不同优先级;
将所述L个激活方式中优先级最高的激活方式确定为所述第一固件的激活方式。
12.根据权利要求11所述的方法,其特征在于,所述模块的信息还包括所述模块的特征描述和激活方式,所述确定所述K个模块中每个模块对应的激活方式,得到L个激活方式包括:
获取所述K个模块中新增模块和删除模块的激活方式,得到L1个激活方式,L1为大于或等于0的整数;
根据所述K个模块中修改模块的特征描述确定所述修改模块的激活方式,得到L2个激活方式,L2为大于或等于0的整数;
根据所述L1个激活方式和所述L2个激活方式确定所述L个激活方式,L小于或等于L1+L2。
13.一种固件激活方法,其特征在于,包括:
向服务器的外围设备发送第一固件的信息,所述第一固件为待升级固件;
接收来自所述外围设备的第一指示信息,所述第一指示信息指示所述第一固件的激活方式;
根据所述激活方式激活所述第一固件。
14.根据权利要求13所述的方法,其特征在于,所述方法还包括:
向所述外围设备发送第三指示信息,所述第三指示信息用于指示所述外围设备进行固件升级。
15.根据权利要求13或14所述的方法,其特征在于,所述方法还包括:
接收来自所述外围设备的第四指示信息,所述第四指示信息用于指示所述外围设备的固件升级成功;
所述根据所述激活方式激活所述第一固件包括:
在接收到所述第四指示信息的情况下,根据所述激活方式激活所述第一固件。
16.一种服务器的外围设备,其特征在于,所述外围设备包括处理器、存储器和通信接口,所述通信接口用于接收来自所述外围设备之外的其它电子设备的信息,以及向所述外围设备之外的其它电子设备输出信息,所述处理器调用所述存储器中存储的计算机程序实现如权利要求8-12任一项所述的方法。
17.一种电子设备,其特征在于,所述电子设备包括处理器、存储器和通信接口,所述通信接口用于接收来自所述电子设备之外的其它电子设备的信息,以及向所述电子设备之外的其它电子设备输出信息,所述处理器调用所述存储器中存储的计算机程序实现如权利要求13-15任一项所述的方法。
18.一种芯片,其特征在于,包括处理器,用于执行存储器中存储的程序,当程序被执行时,使得所述芯片执行如权利要求13-15任一项所述的方法。
19.一种服务器,其特征在于,所述服务器包括如权利要求16所述的外围设备;以及所述服务器包括如权利要求17所述的电子设备,或者,如权利要求18所述的芯片中的至少一种。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210751459.XA CN117369841A (zh) | 2022-06-29 | 2022-06-29 | 固件激活方法、装置、相关设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210751459.XA CN117369841A (zh) | 2022-06-29 | 2022-06-29 | 固件激活方法、装置、相关设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117369841A true CN117369841A (zh) | 2024-01-09 |
Family
ID=89393327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210751459.XA Pending CN117369841A (zh) | 2022-06-29 | 2022-06-29 | 固件激活方法、装置、相关设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117369841A (zh) |
-
2022
- 2022-06-29 CN CN202210751459.XA patent/CN117369841A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105745617B (zh) | 用于预启动固件更新的选择性功率管理 | |
US10754955B2 (en) | Authenticating a boot path update | |
US9128878B2 (en) | System and method for auto-failover and version matching of bootloader in an access controller | |
US7373551B2 (en) | Method to provide autonomic boot recovery | |
EP1727625B1 (en) | Cooperative embedded agents | |
EP2831722B1 (en) | Method and system for verifying proper operation of a computing device after a system change | |
US20170228228A1 (en) | Remote launch of deploy utility | |
CN107408090B (zh) | 输入/输出控制器访问通道的动态配置 | |
EP3663913B1 (en) | Techniques for processor boot-up | |
CN107567629B (zh) | 在可信执行环境容器中的动态固件模块加载器 | |
US11194588B2 (en) | Information handling systems and method to provide secure shared memory access at OS runtime | |
KR20130058058A (ko) | 서비스 프로세서 컴플렉스 내의 데이터 저장을 위한 요구 기반 usb 프록시 | |
US20130080754A1 (en) | Service Profile Based Peripheral Component Interconnect Device Enumeration And Option ROM Loading | |
US8275982B2 (en) | System and method for a managed BIOS | |
EP3319283B1 (en) | Server data port learning at data switch | |
US20190228157A1 (en) | Computing device having two trusted platform modules | |
CN110688235A (zh) | Uefi固件与os间共享无线连接信息的系统及方法 | |
CN116881929B (zh) | 安全防护方法、装置、电子设备以及基板控制器芯片 | |
US10996942B1 (en) | System and method for graphics processing unit firmware updates | |
US20140095859A1 (en) | Apparatus and method for managing register information in a processing system | |
US20240028729A1 (en) | Bmc ras offload driver update via a bios update release | |
CN117369841A (zh) | 固件激活方法、装置、相关设备及计算机可读存储介质 | |
US11960337B2 (en) | Customized thermal and power policies in computers | |
TWI812521B (zh) | 基於硬碟類型的開機方法 | |
US20240134631A1 (en) | Information handling system with a dynamic basic input/output system configuration map |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |