显示设备的固件升级方法、装置、电子设备及存储介质转让专利

申请号 : CN202210914085.9

文献号 : CN114968314B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张精义罗建洪赵斐然乐一栋张钰勃杨上山余德军

申请人 : 摩尔线程智能科技(北京)有限责任公司

摘要 :

本申请提供一种显示设备的固件升级方法、装置、电子设备及存储介质,显示设备和控制设备之间基于IPC建立的连接关系实现对显示设备的固件升级,能够减少对显示设备的固件升级时的计算量和复杂度。

权利要求 :

1.一种显示设备的固件升级方法,其特征在于,包括:在所述显示设备启动阶段,通过RTOS操作系统与控制设备的VBIOS操作系统之间建立IPC通道;

接收来自控制设备的指示信息;其中,所述指示信息指示升级文件的存储信息,所述升级文件存储在所述控制设备或者所述显示设备的第一存储空间中;

根据所述指示信息,从第一存储空间中获取所述升级文件;

根据所述升级文件对所述显示设备的目标固件进行升级。

2.根据权利要求1所述的方法,其特征在于,所述升级文件包括:头文件、标识信息、第一签名信息、镜像的大小和镜像。

3.根据权利要求2所述的方法,其特征在于,所述根据所述升级文件对所述显示设备的固件进行升级,包括:解析所述升级文件,得到所述头文件、所述标识信息、所述第一签名信息、所述镜像的大小和所述镜像;

使用第二签名信息对所述第一签名信息进行验证;

当验证通过,根据所述标识信息从所述显示设备中,与所述目标固件对应的第二存储空间中获取所述目标固件的属性信息;

根据所述属性信息,将所述镜像写入所述第二存储空间中。

4.根据权利要求3所述的方法,其特征在于,所述使用第二签名信息对所述第一签名信息进行解析和验证,包括:根据非对称加密算法,使用第二签名信息对所述第一签名信息进行解析和验证。

5.根据权利要求3所述的方法,其特征在于,所述将所述镜像写入所述第二存储空间之前,还包括:将所述第二存储空间中所存储的所述目标固件更新前的镜像,存入第三存储空间备份。

6.根据权利要求5所述的方法,其特征在于,所述将所述镜像写入所述第二存储空间之后,还包括:当确定所述目标固件升级失败,控制所述显示设备重新启动,并从所述第三存储空间加载所述目标固件;

将所述第三存储空间中存储的所述目标固件更新前的镜像存入所述第二存储空间。

7.根据权利要求1‑6任一项所述的方法,其特征在于,所述目标固件包括以下的至少一个:所述显示设备的选择只读内存OPROM、实时操作系统RTOS和启动装载Bootloader。

8.根据权利要求1‑6任一项所述的方法,其特征在于,还包括:当接收到来自所述控制设备的查询信息,向所述控制设备发送所述目标固件进行升级的进度信息;

或者,当确定所述目标固件升级成功,向所述控制设备发送升级成功信息;

或者,当确定所述目标固件升级失败,向所述控制设备发送升级失败信息。

9.根据权利要求6所述的方法,其特征在于,所述第一存储空间在所述控制设备的内存中,或者在所述显示设备的显存中;

所述第二存储空间和所述第三存储空间在所述显示设备的闪存Flash中。

10.一种显示设备的固件升级方法,其特征在于,包括:在所述显示设备启动阶段,通过VBIOS操作系统与所述显示设备的RTOS操作系统之间建立IPC通道;

获取所述显示设备的升级文件;

将所述升级文件存入控制设备或者所述显示设备的第一存储空间;

向所述显示设备发送指示信息,以使所述显示设备根据所述指示信息,从第一存储空间中获取所述升级文件,并根据所述升级文件对所述显示设备的目标固件进行升级;其中,所述指示信息指示所述升级文件的存储信息。

11.根据权利要求10所述的方法,其特征在于,所述升级文件包括:头文件、标识信息、第一签名信息、镜像的大小和镜像。

12.根据权利要求11所述的方法,其特征在于,所述显示设备根据所述升级文件对所述显示设备的固件进行升级,包括:解析所述升级文件,得到所述头文件、所述标识信息、所述第一签名信息、所述镜像的大小和所述镜像;

使用第二签名信息对所述第一签名信息进行验证;

当验证通过,根据所述标识信息从所述显示设备中,与所述目标固件对应的第二存储空间中获取所述目标固件的属性信息;

根据所述属性信息,将所述镜像写入所述第二存储空间中。

13.根据权利要求12所述的方法,其特征在于,所述显示设备使用第二签名信息对所述第一签名信息进行解析和验证,包括:所述显示设备根据非对称加密算法,使用第二签名信息对所述第一签名信息进行解析和验证。

14.根据权利要求12所述的方法,其特征在于,所述显示设备将所述镜像写入所述第二存储空间之前,还包括:所述显示设备将所述第二存储空间中所存储的所述目标固件更新前的镜像,存入第三存储空间备份。

15.根据权利要求14所述的方法,其特征在于,所述显示设备将所述镜像写入所述第二存储空间之后,还包括:当确定所述目标固件升级失败,所述显示设备控制所述显示设备重新启动,并从所述第三存储空间加载所述目标固件;

所述显示设备将所述第三存储空间中存储的所述目标固件更新前的镜像存入所述第二存储空间。

16.根据权利要求10‑15任一项所述的方法,其特征在于,所述目标固件包括以下的至少一个:所述显示设备的选择只读内存OPROM、实时操作系统RTOS和启动装载Bootloader。

17.根据权利要求10‑15任一项所述的方法,其特征在于,还包括:向所述显示设备发送查询信息,接收所述控制设备发送的所述目标固件升级的进度信息;

或者,接收所述显示设备发送的升级成功信息,所述升级成功信息是所述显示设备确定所述目标固件升级成功后发送的;

或者,接收所述显示设备发送的升级失败信息,所述升级失败信息是所述显示设备确定所述目标固件升级失败后发送的。

18.根据权利要求15所述的方法,其特征在于,所述第一存储空间在所述控制设备的内存中,或者在所述显示设备的显存中;

所述第二存储空间和所述第三存储空间在所述显示设备的闪存Flash中。

19.一种显示设备的固件升级装置,其特征在于,执行如权利要求1‑18任一项所述的方法。

20.一种电子设备,其特征在于,包括:通信连接的处理器以及存储器;其中,所述存储器中存储有计算机程序,当所述处理器执行所述计算机程序时,所述处理器执行如权利要求1‑18任一项所述的方法。

21.一种计算机可读存储介质,其特征在于,存储有计算机指令,所述计算机指令被执行时,使所述计算机执行如权利要求1‑18任一项所述的方法。

说明书 :

显示设备的固件升级方法、装置、电子设备及存储介质

技术领域

[0001] 本申请涉及显示技术领域,尤其涉及一种显示设备的固件升级方法、装置、电子设备及存储介质。

背景技术

[0002] 在具有显示功能的电子设备中,控制设备用于向显示设备提供待显示的数据,由显示设备根据接收到的数据驱动显示器显示画面。固件是一种写入设备的驱动程序,设备的操作系统通过固件驱动设备的硬件实现相关的功能,一些情况下,电子设备需要对其显示设备的固件进行升级,来保证显示设备的正常显示。
[0003] 相关技术中,控制设备和显示设备之间建立FMP连接关系,显示设备通过所建立的FMP连接关系获取到控制设备发送的升级文件,进而通过升级文件对其的固件进行升级。
[0004] 采用相关技术进行固件升级时,显示设备和控制设备之间建立的FMP连接关系的计算量较大,使得对显示设备的固件升级的复杂度较高。

发明内容

[0005] 本申请提供一种显示设备的固件升级方法、装置、电子设备及存储介质,用于解决相关技术中对显示设备的固件进行升级时计算量较大、复杂度较高的技术问题。
[0006] 本申请第一方面提供一种显示设备的固件升级方法,可应用于显示设备,包括:基于进程间通信IPC建立与控制设备的连接;接收来自控制设备的指示信息;其中,所述指示信息指示升级文件的存储信息,所述升级文件存储在所述控制设备或者所述显示设备的第一存储空间中;根据所述指示信息,从第一存储空间中获取所述升级文件;根据所述升级文件对所述显示设备的目标固件进行升级。
[0007] 在本申请第一方面一实施例中,所述基于进程间通信IPC建立与控制设备的连接,包括:通过RTOS操作系统与所述控制设备的VBIOS操作系统之间建立IPC通道。
[0008] 在本申请第一方面一实施例中,所述升级文件包括:头文件、标识信息、第一签名信息、镜像的大小和镜像。
[0009] 在本申请第一方面一实施例中,所述根据所述升级文件对所述显示设备的固件进行升级,包括:解析所述升级文件,得到所述头文件、所述标识信息、所述第一签名信息、所述镜像的大小和所述镜像;使用第二签名信息对所述第一签名信息进行验证;当验证通过,根据所述标识信息从所述显示设备中,与所述目标固件对应的第二存储空间中获取所述目标固件的属性信息;根据所述属性信息,将所述镜像写入所述第二存储空间中。
[0010] 在本申请第一方面一实施例中,所述使用第二签名信息对所述第一签名信息进行解析和验证,包括:根据非对称加密算法,使用第二签名信息对所述第一签名信息进行解析和验证。
[0011] 在本申请第一方面一实施例中,所述将所述镜像写入所述第二存储空间之前,还包括:将所述第二存储空间中所存储的所述目标固件更新前的镜像,存入第三存储空间备份。
[0012] 在本申请第一方面一实施例中,所述将所述镜像写入所述第二存储空间之后,还包括:当确定所述目标固件升级失败,控制所述显示设备重新启动,并从所述第三存储空间加载所述目标固件;将所述第三存储空间中存储的所述目标固件更新前的镜像存入所述第二存储空间。
[0013] 在本申请第一方面一实施例中,所述目标固件包括以下的至少一个:所述显示设备的选择只读内存OPROM、实时操作系统RTOS和启动装载Bootloader。
[0014] 在本申请第一方面一实施例中,还包括:当接收到来自所述控制设备的查询信息,向所述控制设备发送所述目标固件进行升级的进度信息;或者,当确定所述目标固件升级成功,向所述控制设备发送升级成功信息;或者,当确定所述目标固件升级失败,向所述控制设备发送升级失败信息。
[0015] 在本申请第一方面一实施例中,所述第一存储空间在所述控制设备的内存中,或者在所述显示设备的显存中;所述第二存储空间和所述第三存储空间在所述显示设备的闪存Flash中。
[0016] 本申请第二方面提供一种显示设备的固件升级方法,可应用于控制设备,包括:基于进程间通信IPC建立与显示设备的连接;获取所述显示设备的升级文件;将所述升级文件存入所述控制设备或者所述显示设备的第一存储空间;向所述显示设备发送指示信息,以使所述显示设备根据所述指示信息,从第一存储空间中获取所述升级文件,并根据所述升级文件对所述显示设备的目标固件进行升级;其中,所述指示信息指示所述升级文件的存储信息。
[0017] 在本申请第二方面一实施例中,所述基于进程间通信IPC建立与显示设备的连接,包括:通过VBIOS操作系统与所述显示设备的RTOS操作系统之间建立IPC通道。
[0018] 在本申请第二方面一实施例中,所述升级文件包括:头文件、标识信息、第一签名信息、镜像的大小和镜像。
[0019] 在本申请第二方面一实施例中,所述显示设备根据所述升级文件对所述显示设备的固件进行升级,包括:解析所述升级文件,得到所述头文件、所述标识信息、所述第一签名信息、所述镜像的大小和所述镜像;使用第二签名信息对所述第一签名信息进行验证;当验证通过,根据所述标识信息从所述显示设备中,与所述目标固件对应的第二存储空间中获取所述目标固件的属性信息;根据所述属性信息,将所述镜像写入所述第二存储空间中。
[0020] 在本申请第二方面一实施例中,所述显示设备使用第二签名信息对所述第一签名信息进行解析和验证,包括:所述显示设备根据非对称加密算法,使用第二签名信息对所述第一签名信息进行解析和验证。
[0021] 在本申请第二方面一实施例中,所述显示设备将所述镜像写入所述第二存储空间之前,还包括:所述显示设备将所述第二存储空间中所存储的所述目标固件更新前的镜像,存入第三存储空间备份。
[0022] 在本申请第二方面一实施例中,所述显示设备将所述镜像写入所述第二存储空间之后,还包括:当确定所述目标固件升级失败,所述显示设备控制所述显示设备重新启动,并从所述第三存储空间加载所述目标固件;所述显示设备将所述第三存储空间中存储的所述目标固件更新前的镜像存入所述第二存储空间。
[0023] 在本申请第二方面一实施例中,所述目标固件包括以下的至少一个:所述显示设备的选择只读内存OPROM、实时操作系统RTOS和启动装载Bootloader。
[0024] 在本申请第二方面一实施例中,还包括:向所述显示设备发送查询信息,接收所述控制设备发送的所述目标固件升级的进度信息;或者,接收所述显示设备发送的升级成功信息,所述升级成功信息是所述显示设备确定所述目标固件升级成功后发送的;或者,接收所述显示设备发送的升级失败信息,所述升级失败信息是所述显示设备确定所述目标固件升级失败后发送的。
[0025] 在本申请第二方面一实施例中,所述第一存储空间在所述控制设备的内存中,或者在所述显示设备的显存中;所述第二存储空间和所述第三存储空间在所述显示设备的闪存Flash中。
[0026] 本申请第三方面提供一种显示设备的固件升级装置,用于执行如本申请第一方面任一项所述的方法。
[0027] 本申请第四方面提供一种显示设备的固件升级装置,用于执行如本申请第二方面任一项所述的方法。
[0028] 本申请第五方面提供一种电子设备,具体可以是显示设备,包括:通信连接的处理器以及存储器;其中,所述存储器中存储有计算机程序,当所述处理器执行所述计算机程序时,所述处理器执行如本申请第一方面任一项所述的方法。
[0029] 本申请第六方面提供一种电子设备,具体可以是控制设备,包括:通信连接的处理器以及存储器;其中,所述存储器中存储有计算机程序,当所述处理器执行所述计算机程序时,所述处理器执行如本申请第二方面任一项所述的方法。
[0030] 本申请第七方面提供一种显示设备的固件升级系统,包括如本申请第五方面所述的显示设备和如本申请第六方面所述的控制设备。
[0031] 本申请第八方面提供一种计算机可读存储介质,存储有计算机指令,所述计算机指令被执行时,使所述计算机执行如本申请第一方面任一项所述的方法。
[0032] 本申请第九方面提供一种计算机可读存储介质,存储有计算机指令,所述计算机指令被执行时,使所述计算机执行如本申请第二方面任一项所述的方法。
[0033] 本申请第十方面提供一种计算机程序产品,包括计算机程序,该计算机程序被执行时,实现如本申请第一方面中任一项所述的方法。
[0034] 本申请第十一方面提供一种计算机程序产品,包括计算机程序,该计算机程序被执行时,实现如本申请第二方面中任一项所述的方法。
[0035] 综上,本申请实施例提供的显示设备的固件升级方法、装置、电子设备及存储介质,能够使显示设备和控制设备之间基于IPC建立的连接关系实现对显示设备的固件升级。在这个过程中,控制设备通过运行VBIOS操作系统,就可以与显示设备中的RTOS操作系统建立IPC连接,使得对显示设备进行固件升级时不需使用控制设备的SBIOS实现,将显示设备的固件升级与控制设备的SBIOS解耦合,因此计算量更小、操作系统更轻量化,从而减少了对显示设备的固件升级时的计算量、进而降低了整个升级过程的复杂度。

附图说明

[0036] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0037] 图1为本申请应用场景的示意图;
[0038] 图2为相关技术中对显示设备的固件进行升级的流程示意图;
[0039] 图3为显示设备的系统运行的阶段示意图;
[0040] 图4为本申请提供的一种显示设备的固件升级系统的示意图;
[0041] 图5为本申请提供的固件系统的层次结构示意图;
[0042] 图6为本申请提供的显示设备的固件升级方法一实施例的流程示意图;
[0043] 图7为本申请提供的一种升级文件的数据结构示意图;
[0044] 图8为本申请提供的显示设备的固件升级方法另一实施例的流程示意图;
[0045] 图9为本申请提供的显示设备的固件升级方法又一实施例的流程示意图;
[0046] 图10为本申请提供的一种显示设备的固件升级装置的结构示意图;
[0047] 图11为本申请提供的电子设备一实施例的示意图。

具体实施方式

[0048] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0049] 本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0050] 图1为本申请应用场景的示意图,如图1所示,本申请可以应用在具有显示功能的电子设备1中,电子设备1可以是手机、平板电脑、笔记本电脑、台式电脑、服务器等。电子设备1包括用于呈现画面的显示器40,以及显示设备10和控制设备20,显示设备10和控制设备20之间通过连接线30连接,控制设备20可用于将待显示数据通过连接线30发送至显示设备
10,由显示设备10根据接收到的数据驱动显示器40显示画面。
[0051] 在一种具体的实现方式中,控制设备20可以是电子设备1的主板,显示设备10可以是图形处理器(Graphics processing unit,简称:GPU、显示芯片或者显卡等),控制设备20和显示设备10之间可以通过高速串行计算机扩展总线标准(Peripheral component interconnect express,简称:PCIE)接口连接。
[0052] 固件是一种写入设备的驱动程序,可应用于如图1所示场景中的显示设备10和控制设备20中,设备的操作系统通过固件驱动设备的硬件实现相关的功能。而在一些情况下,电子设备1需要对其显示设备10的固件进行升级,来保证显示设备10的正常显示,进而保证电子设备1整体的正常运行。
[0053] 图2为相关技术中对显示设备的固件进行升级的流程示意图,如图2所示,控制设备和显示设备之间可以在S10中基于连接线建立FMP连接关系,随后S20中显示设备通过所建立的FMP连接关系获取到控制设备发送的升级文件,最终在S30中由显示设备对其的固件进行升级。
[0054] 图3为显示设备的系统运行的阶段示意图,如图3所示,以显示设备具有的可扩展固件接口(Unified Extensible Firmware Interface,简称:UEFI)系统作为示例,该系统运行的过程中依次经过的阶段包括:安全验证SED阶段、前期初始化PEI阶段、驱动执行环境DXE阶段、启动设备选择BDS阶段、操作系统加载前期阶段TSL、Run Time(RT)阶段和灾难恢复AL阶段。如图3所示的系统实现图2所示的S20时,可以在PEI阶段通过调用函数等方式确定控制设备中升级文件的存储位置,并将确定的升级文件存储到显示设备的存储空间中。如图3所示的系统实现图2所示的S30时,显示设备可以在如图3所示的BDS阶段通过调用函数等方式对固件进行升级。
[0055] 在上述图2所示的方法中,显示设备虽然可以通过其与控制设备之间的FMP连接关系完成对固件进行的升级,但是显示设备和控制设备之间的FMP连接关系,需依赖于控制设备中运行的系统基本输入输出系统(System basic input output system,简称:SBIOS)实现,而使用SBIOS对固件进行升级时增加了控制设备的计算量,提高了对显示设备的固件升级的整个过程的复杂度。
[0056] 此外,为了保证固件升级的安全,控制设备还可以对升级文件进行签名,显示设备接收到升级文件对签名进行验证后,再根据升级文件对固件进行升级处理。相关技术的标准中,规定了使用PKCS7等方式对升级文件进行签名与验证。但是,经过处理后的升级文件的数据量较大,降低了在固件升级过程中对升级文件的处理速度和效率。
[0057] 因此,本申请提供一种显示设备的固件升级方法,显示设备和控制设备之间基于进程间通信(Inter‑process communication,简称:IPC)建立的连接关系实现升级文件的传输以及对显示设备的固件升级,来减少显示设备的固件升级过程的复杂度。下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
[0058] 图4为本申请提供的一种显示设备的固件升级系统的示意图,如图4所示的系统可应用于如图1所示的场景中,该系统包括显示设备10和控制设备20,显示设备10和控制设备20之间通过连接线30连接。具体地,显示设备10包括:第一处理单元101、第一存储单元102和第一接口103,控制设备20包括:第二处理单元201、第二存储单元202和第二接口203,第一接口103和第二接口203分别于连接线30的一端连接。
[0059] 在一些实施例中,第一处理单元101可以是显示设备10的处理器(例如GPU core)等,第二处理单元201可以是控制设备20的处理器(例如CPU core)等。当连接线30是PCIE总线(PCIE bus)时,第一接口103和第二接口203均为PCIE接口。第一存储单元102可以是显示设备10的闪存(Flash),第二存储单元202可以是控制设备20的闪存(Flash)。
[0060] 图5为本申请提供的固件系统的层次结构示意图,如图5所示,基于图4所示的显示设备10和控制设备20,可以依次包括的层次结构为:硬件层、中间层和应用层。
[0061] 显示设备10的硬件层包括第一处理单元101、第一存储单元102和第一接口103;在硬件层上的中间层运行有第一操作系统104,第一操作系统104可以是实时操作系统(Real time operating system,简称:RTOS)等;在第一操作系统104上的应用层运行有第一应用程序105以及其他应用程序。
[0062] 控制设备20的硬件层包括第二处理单元201、第二存储单元202和第二接口203;在硬件层上的中间层运行有第二操作系统204,在第二操作系统204上可以运行有第二应用程序205以及其他应用程序。本申请各实施例的第二操作系统204可以是视频基本输入输出系统(Video basic input output system,简称:VBIOS),则控制设备20通过其VBIOS操作系统可以与显示设备10的RTOS操作系统之间建立IPC通道,使得显示设备10和控制设备20可以通过所建立的IPC通道进行通信。
[0063] 图6为本申请提供的显示设备的固件升级方法一实施例的流程示意图,如图6所示的方法可应用于如图4和图5所示的系统中,由显示设备10和控制设备20执行。在一些具体的实现方式中,如图6所示的方法可以是显示设备10的第一操作系统104上运行的第一应用程序105控制硬件层,以及控制设备20的第二操作系统204上运行的第二应用程序205控制硬件层所实现的方法。具体地,如图6所示的显示设备的固件升级方法包括:
[0064] S100:控制设备和显示设备之间基于IPC建立连接。
[0065] 具体地,S100中所建立的基于IPC的连接关系是后续控制设备和显示设备之间进行通信的基础,控制设备和显示设备之间可以通过所建立的连接关系传输信息、升级文件等。本申请实施例对显示设备和控制设备之间建立IPC通信连接的具体实现方式以及建立连接的时机不做限定。例如,当显示设备通过连接线与控制设备连接后,控制设备和显示设备之间可以建立基于IPC的通信连接;或者,控制设备从第二应用程序接收到的用户的指示,并在接收到指示后建立控制设备与显示设备之间基于IPC的通信连接。
[0066] S101、控制设备获取显示设备进行固件升级时所需的升级文件,随后将升级文件存入控制设备或者显示设备中。
[0067] 在一些实施例中,将控制设备或者显示设备存储升级文件的位置记为第一存储空间,则第一存储空间可以是控制设备中的内存(Host memory),或者可以是显示设备中的显存(例如DDR等)。
[0068] 在一些实施例中,控制设备可以通过其第二操作系统(VBIOS)获取到升级文件,并存入第一存储空间中,使得后续显示设备可以从第一存储空间中得到升级目标固件所需的升级文件。
[0069] 图7为本申请提供的一种升级文件的数据结构示意图,如图7所示,本申请实施例中提供的升级文件(Capsule)采用的数据格式包括:头文件(Capsule Header)和镜像文件(MT Image),镜像文件进一步包括标识信息、第一签名信息、镜像的大小和镜像(Image)。其中,标识信息可用于对当前待升级的目标固件进行标识,使得接收到升级文件的显示设备能够确定待升级的目标固件,例如可以是镜像的通用唯一识别码(Universally unique identifier,简称:UUID)等。
[0070] 在一些实施例中,第一签名信息可以是基于RSA2048算法等非对称加密算法的私钥,控制设备使用该私钥对升级文件进行加密,使得后续显示设备可以使用公钥对升级文件的私钥进行验证。并且RSA2048算法与相关技术中使用的PKCS7等加密算法相比更加简单,能够使显示设备得到的升级文件的数据量更小,具有更高的灵活性,进而能够在保证升级文件安全的前提下,提高整个固件升级的过程中控制设备和显示设备对升级文件进行处理的速度和处理效率。
[0071] 目标固件可以是显示设备中任一能够进行固件升级的固件,在一些实施例中,控制设备可以通过第二应用程序获取用户指定的升级文件以及确定显示设备待更新的目标固件的信息等,从而根据用户指定的信息确定显示设备中的目标固件需要更新;或者,控制设备还可以通过互联网等形式连接显示设备的运营商的服务器,当确定服务器中存在对显示设备的目标固件进行升级的升级文件,则通过互联网获取服务器中存储的升级文件,并确定该升级文件用于显示设备中的目标固件进行更新。
[0072] S102:控制设备向显示设备发送指示信息,相应地,显示设备接收来自控制设备的指示信息。其中,指示信息用于指示控制设备在存储升级文件时的存储信息,存储信息具体可以是第一存储空间的位置。在一些实施例中,控制设备可以通过S100中所建立的IPC通道向显示设备发送指示信息,显示设备也通过IPC通道接收指示信息。
[0073] S103:显示设备根据指示信息,确定第一存储空间,进而可以对第一存储空间中存储的升级文件进行后续处理。
[0074] S104:显示设备根据S103中所确定的第一存储空间中存储的升级文件,对目标固件进行升级。
[0075] 例如,当第一存储空间是控制设备中的内存时,显示设备可以根据指示信息,通过显示设备和控制设备之间的IPC通道,获取到控制设备的内存中所存储的升级文件。又例如,当第一存储空间是显示设备中的显存时,显示设备可以根据指示信息,直接使用显示设备的显存中的升级文件对目标固件进行升级。
[0076] 在一些实施例中,当第一存储空间是控制设备中的内存时,显示设备可以通过IPC通道直接使用控制设备的内存中存储的升级文件进行后续的升级处理;或者,当第一存储空间是控制设备中的内存时,显示设备还可以将控制设备的内存中存储的升级文件通过IPC通道存入显示设备内的其他存储空间后,使用显示设备的其他存储空间中存储的升级文件进行后续的升级处理。
[0077] 图8为本申请提供的显示设备的固件升级方法另一实施例的流程示意图,如图8示出了图6所示的S104一种具体的实现方式,如图8所示,显示设备根据升级文件对目标固件进行升级具体包括:
[0078] S1041:按照如图7所示的数据格式,解析升级文件,得到升级文件中的头文件、标识信息、第一签名信息、镜像的大小和镜像等内容。
[0079] S1042:使用第二签名信息,对升级文件中的第一签名信息进行验证。例如,当第一签名信息是控制设备的私钥时,第二签名信息可以是该私钥对应的公钥。
[0080] S1043:则当显示设备通过公钥对私钥验证通过后,显示设备进一步再根据标识信息,从显示设备内与目标固件对应的第二存储空间中,获取目标固件的属性信息,使得显示设备根据这些属性信息确定当前待更新的目标固件。例如,显示设备可以根据UUID从第二存储空间中得到目标固件的镜像的分区表(Partition table)等,并从分区表中解析出目标固件的属性信息,包括:固件种类、固件校验和(Checksum)、固件版本信息、固件的flash layout分部、固件备份信息等。
[0081] S1044:显示设备根据S1043获取的属性信息,将升级文件中的镜像(Image)写入显示设备中与目标固件对应的第二存储空间中,实现目标固件的镜像进行的升级。在一些实施例中,第二存储空间可以是显示设备的闪存(Flash)中的存储空间,则显示设备可以由RTOS操作系统的SPI接口,根据分区表中的信息,通过调用Opcode erase等等Flash命令的方式,对第二存储空间中的镜像进行写入(Write)更新。
[0082] 在一些实施例中,显示设备可以根据属性信息中的固件种类,确定当前待更新的模板固件的类别为内存、RTOS或者Bootloader等;可以根据固件校验和对升级文件进行校验,校验成功则确定升级文件数据完整、校验失败则确定升级文件的数据可能发生了损坏等异常;可以根据固件版本信息确定当前的升级文件的升级版本,从而可以更加准确地对目标固件进行升级或者回溯到之前的版本;可以根据固件的flash layout分部确定第二存储空间的存储位置,从而可以更加准确地将镜像写入第二存储空间中;可以根据固件备份信息对第二存储空间中更新前的镜像进行备份等。
[0083] 在一些实施例中,上述S1044的过程中,需要将升级文件中的镜像复制到第二存储空间中,而为了防止升级失败,在S1044之前,显示设备可以将第二存储空间中存储的目标固件升级前的镜像存入第三存储空间中进行备份。第三存储空间可以是显示设备的闪存(Flash)中的存储空间。
[0084] 在一些实施例中,当显示设备确定对目标固件升级失败,由于升级前的镜像仍然存储在第三存储空间中,因此显示设备可以将目标固件对应的第二存储空间标记为失活区域、将第三存储空间标记为活动区域,并控制显示设备重新启动,使得显示设备从第三存储空间中加载升级之前的目标固件的镜像。而当重新启动完成后,还可以将第三存储空间中的镜像重新复制到第二存储空间中,并重新将第二存储空间标记为活动区域、将第三存储空间标记为失活区域等,保证对目标固件升级失败后,不会影响显示设备的正常运行。
[0085] 在一些实施例中,当显示设备确定对目标固件升级成功,此时升级后的镜像已经存储到第二存储空间中,因此显示设备可以将第三存储空间中存储的升级前的镜像删除,或者仍然保留在第三存储空间中作为备份等。
[0086] 在一些实施例中,当显示设备确定对目标固件升级成功,可以通过IPC通道向控制设备发送升级成功信息,使得控制设备根据该信息确定对显示设备的目标固件升级成功,从而可以进行后续的处理。
[0087] 在一些实施例中,当显示设备确定对目标固件升级失败,显示设备可以通过IPC通道向控制设备发送升级失败信息。
[0088] 在一些实施例中,控制设备还可以通过IPC通道向显示设备发送查询信息,则当显示设备接收到查询信息后,向控制设备通过IPC通道发送其目标固件进行升级的进度信息。例如,显示设备可以在对目标固件进行升级的过程中,每间隔一段时间得到一个进度信息,当显示设备接收到控制设备发送的查询信息后,将最新得到的进度信息发送给控制设备。
控制设备可以每间隔一段时间发送一次查询信息,或者,控制设备还可以根据第二应用程序接收到用户的查询指示后,向显示设备发送查询信息等。
[0089] 综上,本申请实施例提供的显示设备的固件升级方法,能够使显示设备和控制设备之间基于IPC建立的连接关系实现对显示设备的固件升级。在这个过程中,控制设备通过运行VBIOS操作系统,就可以与显示设备中的RTOS操作系统建立IPC连接。对显示设备进行固件升级时不需使用控制设备的SBIOS,将显示设备的固件升级与控制设备的SBIOS解耦合。由于VBIOS比SBIOS相比计算量更小、操作系统更轻量化,从而减少了对显示设备的固件升级时的计算量、进而降低了整个升级过程的复杂度。
[0090] 同时,本申请实施例提供的显示设备的固件升级方法,可以应用在如图3所示的显示设备运行的TSL阶段,具体在TSL阶段的UEFI Shell中实现。因此,使用本申请的方法进行固件升级时,可以支持对显示设备所有启动阶段的固件的更新,例如可以升级的目标固件包括:显示设备的选择只读内存(Option read‑only memory,简称:OPROM)、RTOS或者启动装载(Bootloader)等,与相关技术中使用FMP接口进行升级的方式相比,可升级的固件更加多样化且更加灵活。
[0091] 图9为本申请提供的显示设备的固件升级方法又一实施例的流程示意图,如图9示出了本申请提供的显示设备的固件升级方法一种具体的实现方式,如图9所示,以控制设备为主板、显示设备为GPU(或称为GPU系统管理单元)作为示例,主板和GPU之间以PCIe连接线连接。则主板运行的VBIOS操作系统后,VBIOS操作系统可以通过PCIe连接线构建与GPU的IPC通道,并加载驱动程序FMP driver,随后通过FMP加载capsule升级文件,并解析升级文件并构造升级消息后,通过IPC通道向GPU发送升级消息(例如,用于指示固件升级、并且包括升级文件存储信息的指示信息)。同时,对于GPU系统管理单元,可以在启动RTOS并初始化GPU资源后,通过PCIe连接线构建与VBIOS操作系统的IPC通道,并等待主板的VBIOS操作系统从IPC通道发送的IPC消息。则当主板向GPU发送升级消息,GPU接收到升级消息后,GPU解析IPC消息并从主板的内存或者GPU的显存中获得升级文件。在对升级文件中的签名进行验签成功后,从GPU的Flash存储空间获取分区表,并根据分区表中的信息将升级文件的镜像存入GPU的Flash的对应区域内。GPU还可以在升级成功后向主板发送升级成功的IPC消息、在升级失败后向主板发送升级失败的IPC消息。以及,主板还可以向GPU发送查询升级进度的IPC消息,当GPU接收IPC消息,并判断当前IPC消息是用于查询升级进度时,GPU可以向主板回复IPC消息回复升级进度。主板接收到回复升级进度的IPC消息后,最终主板确定升级完成或者升级失败后结束整个升级流程。在一些实施例中,GPU接收到IPC消息后,会对IPC消息是否是指示固件升级、是否用于查询进度进行判断,并在判断IPC消息是指示固件升级后进行固件升级、判断IPC消息是查询进度时回复升级进度。可以理解的是IPC消息还可以用于指示其他信息,例如,IPC消息可用于查询是否验签成功等,则GPU确定验签失败后向主板返回升级失败消息等。
[0092] 在前述实施例中,对本申请实施例提供的显示设备的固件升级方法进行了介绍,而为了实现上述本申请实施例提供的方法中的各功能,作为执行主体的显示设备和控制设备可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
[0093] 例如,图10为本申请提供的一种显示设备的固件升级装置的结构示意图,如图10所示的装置1000包括:处理模块1001和通信模块1002。
[0094] 当如图10所示的装置1000为显示设备时,通信模块1002可用于基于进程间通信IPC,建立与控制设备的连接、接收来自控制设备的指示信息等,处理模块1001可用于根据指示信息,获取升级文件;根据升级文件对显示设备的目标固件进行升级等。
[0095] 当如图10所示的装置1000为控制设备时,通信模块1002可用于基于进程间通信IPC,建立与显示设备的连接;处理模块1001可用于获取显示设备的升级文件,将升级文件存入第一存储空间;处理模块1001还可以通过通信模块1002向显示设备发送指示信息等。
[0096] 本申请提供的显示设备的固件升级装置各实施例中的具体实现及原理可以参照本申请前述实施例中提供的显示设备的固件升级方法,其具体实现方式及原理相同,不再赘述。
[0097] 需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上确定模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
[0098] 例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,ASIC),或,一个或多个微处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system‑on‑a‑chip,SOC)的形式实现。
[0099] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘solid state disk (SSD))等。
[0100] 例如,图11为本申请提供的电子设备一实施例的示意图,如图11所示的电子设备200包括:处理器201以及存储器202;其中,存储器201中存储有计算机程序,当处理器202执行计算机程序时,处理器201可用于执行如本申请前述实施例中任一的显示设备的固件升级方法。电子设备200还包括通信接口203,处理器201可以通过通信接口203与其他设备通信。
[0101] 例如,当电子设备200为显示设备时,可以用于执行如本申请前述实施例中任一显示设备的固件升级方法中由显示设备执行的步骤;当电子设备200为控制设备时,可以用于执行如本申请前述实施例中任一显示设备的固件升级方法中由控制设备执行的步骤。
[0102] 本申请还提供一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令被执行时可用于执行如本申请前述实施例中任一的显示设备的固件升级方法。
[0103] 本申请实施例还提供一种运行指令的芯片,所述芯片用于执行如本申请前述任一的显示设备的固件升级方法。
[0104] 本申请实施例还提供一种计算机程序产品,所述程序产品包括计算机程序,所述计算机程序存储在存储介质中,至少一个处理器可以从所述存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序时可实现如本申请前述任一的显示设备的固件升级方法。
[0105] 本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0106] 最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。