CN115904452A - 一种fpga固件升级方法、装置及系统 - Google Patents

一种fpga固件升级方法、装置及系统 Download PDF

Info

Publication number
CN115904452A
CN115904452A CN202211727904.5A CN202211727904A CN115904452A CN 115904452 A CN115904452 A CN 115904452A CN 202211727904 A CN202211727904 A CN 202211727904A CN 115904452 A CN115904452 A CN 115904452A
Authority
CN
China
Prior art keywords
firmware
fpga
upgrading
random access
access memory
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
Application number
CN202211727904.5A
Other languages
English (en)
Inventor
赵方亮
姚毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Luster LightTech Co Ltd
Original Assignee
Luster LightTech Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Luster LightTech Co Ltd filed Critical Luster LightTech Co Ltd
Priority to CN202211727904.5A priority Critical patent/CN115904452A/zh
Publication of CN115904452A publication Critical patent/CN115904452A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Stored Programmes (AREA)

Abstract

本申请涉及固件升级技术领域,具体而言,涉及一种FPGA固件升级方法、装置及系统,一定程度上可以解决现有技术在切断电源以使主板和PCle板卡掉电所导致主板上其他器件进度丢失或者中断其他PCle设备的运行的问题。所述FPGA固件升级方法,由主机执行,包括:接收固件升级指令;将固件升级指令和升级固件发送至FPGA,其中,FPGA在收到升级指令和升级固件后,向非易失性随机存储器写入升级固件;在确定完成向非易失性随机存储器写入升级固件后,进行重启,并在重启之前或之后,触发FPGA重新读取非易失性随机存储器中的升级固件;在进行重启之后,如果确定PCle插槽上有PCle设备时,建立PCle链路。

Description

一种FPGA固件升级方法、装置及系统
技术领域
本申请涉及固件升级技术领域,具体而言,涉及一种FPGA固件升级方法、装置及系统。
背景技术
FPGA(Field Programmable Gate Array,现场可编程门阵列)是半定制集成电路,FPGA的基本工作原理是通过加载一个配置文件来改变FPGA内部的配置主存的内容,从而改变FPGA内部各种逻辑资源的配置,以实现不同的电路功能,并且,配置文件可以多次加载,从而使得FPGA能够通过加载不同的配置数据来实现不同的功能,具有很好的灵活性。因此,对于FPGA进行升级时,也仅需加入新的升级固件即可。
在FPGA升级时,通过PCle发送新的升级固件到FPGA,FPGA将该升级固件烧写在非易失性随机存储器里,烧写完成后必须进行先切断电源、再接通电源的动作,其中,切断电源能够使主机和PCle设备掉电,先切断电源、再接通电源的这种掉电后重新上电的动作会刺激FPGA重新从非易失性随机存储器读取升级固件的配置文件,从而完成FPGA芯片内部的电路更新。
但是在切断电源以使主机和PCIe设备掉电的同时,切断电源的动作还可能导致主板上其他器件进度丢失或者中断其他PCle设备的运行,对其他正在运行的业务造成影响。
发明内容
为了解决现有技术在切断电源以使主板和PCIe板卡掉电所导致主板上其他器件进度丢失或者中断其他PCle设备的运行的问题,本申请提供了一种FPGA固件升级方法、装置及系统。
本申请的实施例是这样实现的:
本申请实施例提供一种FPGA固件升级方法,其特征在于,由主机执行,所述主机与FPGA通过PCle链路相连接,所述FPGA与非易失性随机存储器连接,所述方法包括:
接收固件升级指令,所述固件升级指令对应的升级固件从所述主机的硬盘中调取;
将所述固件升级指令和所述升级固件发送至所述FPGA,其中,所述FPGA在收到升级指令和所述升级固件后,向所述非易失性随机存储器写入所述升级固件;
在确定完成向所述非易失性随机存储器写入所述升级固件后,进行重启,并在重启之前或之后,触发所述FPGA重新读取所述非易失性随机存储器中的所述升级固件;
在进行重启之后,如果确定PCle插槽上有PCle设备时,建立所述主机与PCle设备之间的PCle链路,所述PCle设备包括所述FPGA。
在一些实施例中,所述触发所述FPGA重新读取所述非易失性随机存储器中的所述升级固件,包括:
激活所述FPGA的ICAP模块,以便通过所述FPGA的ICAP模块触发所述FPGA重新读取所述非易失性随机存储器中的所述升级固件。
在一些实施例中,在进行重启之后确定PCle插槽上有PCle设备时,建立所述主机与PCle设备之间的PCle链路,包括:
在进行重启之后,进入基本输入输出系统,使所述基本输入输出系统设置在初始化状态下;
利用所述基本输入输出系统检测所述PCle插槽上是否存在在位信号,所述在位信号用于表征PCle插槽上连接有PCle设备;
在检测所述PCle插槽上存在在位信号时,建立与所述PCle设备之间的PCIe链路。
在一些实施例中,向所述非易失性随机存储器写入所述升级固件,包括:
在向所述非易失性随机存储器写入所述升级固件的过程中,所述主机获取所述FPGA的脉冲信号并判断所述脉冲信号的电平值与预设值的大小,其中,当所述脉冲信号的电平值低于所述预设值时,则未完成向所述非易失性随机存储器写入所述升级固件;当所述脉冲信号的电平值高于所述预设值时,则完成向所述非易失性随机存储器写入所述升级固件。
在一些实施例中,所述FPGA通过PCle插卡安装在主机主板的PCle插槽上。
本申请又一实施例还提供一种FPGA固件升级方法,由FPGA执行,所述主机与FPGA通过PCle链路相连接,所述FPGA与非易失性随机存储器连接,所述方法包括:
接收固件升级指令和升级固件并向所述非易失性随机存储器写入所述升级固件,所述固件升级指令是由所述主机获取并发送给所述FPGA的,所述固件升级指令对应的所述升级固件是由所述主机从所述主机的硬盘中调取并发送给所述FPGA的;
在完成向所述非易失性随机存储器写入所述升级固件后,重新读取所述非易失性随机存储器中的所述升级固件;
根据重新读取的所述升级固件进行升级,且在所述主机进行重启之后,与所述主机建立PCle链路。
在一些实施例中,所述重新读取所述非易失性随机存储器中的所述升级固件,包括:
在所述主机激活所述FPGA的lCAP模块之后,所述FPGA的所述ICAP模块对所述FPGA进行逻辑复位;
在所述lCAP模块对FPGA完成逻辑复位后,所述FPGA重新读取非易失性随机存储器中的升级固件。
本申请又一实施例还提供一种FPGA固件升级装置,由主机执行,所述主机与FPGA通过PCle链路相连接,所述FPGA与非易失性随机存储器连接,包括:
第一接收模块,用于接收固件升级指令,所述固件升级指令对应的升级固件从所述主机的硬盘中调取;
第一发送模块,用于将所述固件升级指令和所述升级固件发送至所述FPGA,其中,所述FPGA在收到升级指令和所述升级固件后,向所述非易失性随机存储器写入所述升级固件;
重启模块,用于在确定完成向所述非易失性随机存储器写入所述升级固件后,进行重启,并在重启之前或之后,触发所述FPGA重新读取所述非易失性随机存储器中的所述升级固件;
建立模块,用于在进行重启之后,如果确定PCIe插槽上有PCle设备时,建立所述主机与PCle设备之间的PCle链路,所述PCle设备包括所述FPGA,其中,在进行重启的步骤之前或之后,所述FPGA重新读取所述非易失性随机存储器中的所述升级固件。
本申请又一实施例还提供一种FPGA固件升级装置,由FPGA执行,所述主机与FPGA通过PCle链路相连接,所述FPGA与非易失性随机存储器连接,包括:
第二接收模块,用于接收固件升级指令和升级固件并向所述非易失性随机存储器写入所述升级固件,所述固件升级指令是由所述主机获取并发送给所述FPGA的,所述固件升级指令对应的所述升级固件是由所述主机从计算机硬盘中调取并发送给所述FPGA的;
读取模块,用于在完成向所述非易失性随机存储器写入所述升级固件后,重新读取所述非易失性随机存储器中的所述升级固件;
升级模块,用于根据重新读取的所述升级固件进行升级,且在所述主机进行重启之后,与所述主机建立PCle链路。
本申请又一实施例还提供一种FPGA固件升级系统,包括主机和FPGA,所述主机用于执行所述的FPGA固件升级方法,所述FPGA用于执行所述的FPGA固件升级方法。
本申请的有益效果:在完成向非易失性随机存储器写入升级固件后,不需要切断电源以使主板和PCIe板卡掉电,而是通过重启主机实现FPGA固件升级,并且重启主机时主机上的其他器件不会掉电,能保留原有的进度。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1示例性示出了本申请一实施例提供的一种FPGA固件升级方法的流程示意图;
图2示例性示出了本申请又一实施例提供的FPGA与主机之间的硬件连接示意图;
图3示例性示出了本申请又一实施例提供的建立主机与PCIe设备之间的PCIe链路的流程示意图;
图4示例性示出了本申请又一实施例提供一种FPGA固件升级方法的流程示意图;
图5示例性示出了本申请又一实施例提供一种FPGA固件升级系统中主机和FPGA执行FPGA固件升级方法的流程图;
图6示例性示出了本申请又一实施例提供的一种应用于主机的FPGA固件升级装置的结构框图;
图7示例性示出了本申请又一实施例提供的一种应用于FPGA的FPGA固件升级装置的结构框图。
具体实施方式
为使本申请的目的、实施方式和优点更加清楚,下面将结合本申请示例性实施例中的附图,对本申请示例性实施方式进行清楚、完整地描述,显然,所描述的示例性实施例仅是本申请一部分实施例,而不是全部的实施例。
需要说明的是,本申请中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本申请的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。
本申请中说明书和权利要求书及上述附图中的术语″第一″、″第二″、″第三″等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明。应该理解这样使用的用语在适当情况下可以互换。
术语″包括″和″具有″以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的所有组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
术语″设置″、″连接″应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
图1示例性示出了本申请一实施例提供的一种FPGA固件升级方法的流程示意图。
如图1所示,本申请实施例提供的一种FPGA固件升级方法,由主机执行,主机与FPGA通过PCle链路相连接,FPGA与非易失性随机存储器连接,在一些实施例中,在硬件连接方面,主机的主板包括连接的CPU和桥接芯片,桥接芯片连接PCle插槽,PCle设备包括FPGA,FPGA通过PCle插卡安装在主机主板的PCle插槽上。如图2所示,为本申请实施例提供的FPGA与主机之间的硬件连接示意图。
本申请实施例提供的由主机执行的FPGA固件升级方法通过以下步骤实现:
步骤110,接收固件升级指令,固件升级指令对应的升级固件从主机的硬盘中调取;
其中的升级固件是指区别于旧版本固件的新版本固件。
步骤120,将固件升级指令和升级固件发送至FPGA,其中,FPGA在收到升级指令和升级固件后,向非易失性随机存储器写入升级固件;
步骤130,在确定完成向非易失性随机存储器写入升级固件后,进行重启,并在重启之前或之后,触发FPGA重新读取非易失性随机存储器中的升级固件;相应的,FPGA可在接收到触发之后,重新读取非易失性随机存储器中的升级固件,并根据重新读取的升级固件实现升级。
触发FPGA重新读取非易失性随机存储器中的升级固件的步骤可在主机重启之前进行,也可在主机重启之后进行。
在一些实施例中,向非易失性随机存储器写入升级固件,包括:
在向非易失性随机存储器写入升级固件的过程中,主机获取FPGA的脉冲信号并判断脉冲信号的电平值与预设值的大小,其中,当脉冲信号的电平值低于预设值时,则未完成向非易失性随机存储器写入升级固件;当脉冲信号的电平值高于或等于预设值时,则完成向非易失性随机存储器写入升级固件。
也就是说,主机通过FPGA的脉冲信号与预设值的比较结果,可以确定FPGA向非易失性随机存储器写入升级固件的操作是否完成。其中,该操作中的预设值可预先通过针对不同规格的FPGA的多次试验获取。
在一些实施例中,触发FPGA重新读取非易失性随机存储器中的升级固件,包括:
激活FPGA的ICAP(Internal Configuration Access Port,内部配置访问端口)模块,以便通过FPGA的ICAP模块触发FPGA重新读取非易失性随机存储器中的升级固件。
在一些实施例中,通过内部配置访问端口(ICAP)可以在FPGA逻辑代码中直接读写非易失性随机存储器中的升级固件,从而实现FPGA升级。
在一些实施例中,在主机重启之前,由于已向非易失性随机存储器写入升级固件,因此非易失性随机存储器中的配置信息虽已被更新,但是此时因主机未被重启使得FPGA还未重新读取非易失性随机存储器中的升级固件,因此FPGA还可以运行旧版本固件的功能。
步骤140,在进行重启之后,如果确定PCIe插槽上有PCle设备时,建立主机与PCle设备之间的PCle链路,FPGA固件升级成功,PCle设备包括FPGA。
PCle,即PCl-express,是一种总线和接口标准,通过PCle与主机相连接的设备可称为PCle设备。通过建立主机与PCle设备之间的PCIe链路实现主机与FPGA之间的通讯连接。PCle的主要优势在于其减少延迟的能力。
在完成向非易失性随机存储器写入升级固件后,不需要切断电源以使主板和PCIe板卡掉电,而是通过重启主机即可建立主机与PCle设备之间的PCle链路,且FPGA重新读取非易失性随机存储器中的升级固件,进而达到FPGA固件升级的目的,并且重启主机时主机上的其他器件不会掉电,能保留原有的进度。
图3示例性示出了本申请又一实施例提供的建立主机与PCIe设备之间的PCIe链路的流程示意图,如图3所示,在进行重启之后确定PCle插槽上有PCIe设备时,建立主机与PCle设备之间的PCle链路,包括以下步骤:
步骤310,在进行重启之后,进入基本输入输出系统,使基本输入输出系统设置在初始化状态下;
其中的基本输入输出系统为BIOS(Basic Input Output System,基本输入输出系统)设置,基本输入输出系统用于进行自检和初始化、程序服务处理以及硬件中断处理。对于FPGA升级过程来说,基本输入输出系统用于检测PCle卡槽上是否存在在位信号,一旦识别到此在位信号,主机会认为PCle卡槽上有PCle设备,进而尝试与PCle设备建立链接,即建立PCle链路。
步骤320,利用基本输入输出系统检测PCle插槽上是否存在在位信号,在位信号用于表征PCle插槽上连接有PCle设备;
步骤330,在检测PCle插槽上存在在位信号时,建立与PCle设备之间的PCIe链路。
通过建立主机与PCle设备之间的PCIe链路实现主机与FPGA之间的通讯连接。
图4示例性示出了本申请又一实施例提供一种FPGA固件升级方法的流程示意图,该方法由FPGA执行,主机与FPGA通过PCle链路相连接,FPGA与非易失性随机存储器连接,如图4所示,由FPGA执行的FPGA固件升级方法包括以下步骤:
步骤410,接收固件升级指令和升级固件并向非易失性随机存储器写入升级固件,固件升级指令是由主机获取并发送给FPGA的,固件升级指令对应的升级固件是由主机从主机的硬盘中调取并发送给FPGA的;
步骤420,在完成向非易失性随机存储器写入升级固件后,重新读取非易失性随机存储器中的升级固件;
步骤430,根据重新读取的升级固件进行升级,且在主机进行重启之后,与主机建立PCle链路。通过建立主机与PCle设备之间的PCle链路实现主机与FPGA之间的通讯连接。
在一些实施例中,重新读取非易失性随机存储器中的升级固件,包括:
在主机激活FPGA的lCAP模块之后,FPGA的ICAP模块对FPGA进行逻辑复位;
在lCAP模块对FPGA完成逻辑复位后,FPGA重新读取非易失性随机存储器中的升级固件。
图5示例性示出了本申请又一实施例提供一种FPGA固件升级系统中主机和FPGA执行FPGA固件升级方法的流程图,如图5所示,FPGA固件升级系统包括主机和FPGA,在FPGA固件升级系统中的主机和FPGA用于执行以下步骤:
步骤510,主机接收固件升级指令,固件升级指令对应的升级固件从主机的硬盘中调取;
步骤520,主机将固件升级指令和升级固件发送至FPGA;
步骤530,FPGA在收到升级指令和升级固件后,向非易失性随机存储器写入升级固件;
步骤540,主机在确定FPGA已完成向非易失性随机存储器写入升级固件后,进行重启;
步骤550,在主机进行重启之后,主机触发FPGA;
步骤560,主机触发FPGA,FPGA重新读取非易失性随机存储器中的升级固件;
步骤570,主机在确定PCIe插槽上有PCle设备时,建立主机与PCIe设备之间的PCle链路,使得PCle设备能够被主机的操作系统识别到;
步骤580,FPGA固件升级成功。
在本申请中,在完成向非易失性随机存储器写入升级固件后,不需要切断电源以使主板和PCle板卡掉电,而是通过重启主机实现FPGA固件升级,并且重启主机时主机上的其他器件不会掉电,能保留原有的进度。
在一些实施例中,FPGA板卡包括FPGA和非易失性随机存储器,所述FPGA通过PCle插卡安装在主机主板的PCIe插槽上,FPGA板卡与主机之间提供pcie链路进行通讯,主机包括操作系统和基本输入输出系统。在非易失性随机存储器中放置2个固件,一个是Goldenimage,另一个是updata image,我们使用的是updata image,FPGA升级时也是使用updataimage,Golden image是为了防止updata image受损、升级时断电或升级时输出出错时无法使用时,Golden image就会被启用,确保可以进行下一次升级。
在本申请中,FPGA的固件在更新完成后,不需要给主机断电,提供重启主机的操作系统也能实现与给主机断电的相同的效果,且重启主机时主机上的其他器件不会掉电,能保留原有的进度。
图6示例性示出了本申请又一实施例提供的一种应用于主机的FPGA固件升级装置的结构框图,如图6所示,一种FPGA固件升级装置600,由主机执行,主机与FPGA通过PCle链路相连接,FPGA与非易失性随机存储器连接,包括:
第一接收模块610,用于接收固件升级指令,固件升级指令对应的升级固件从主机的硬盘中调取;
第一发送模块620,用于将固件升级指令和升级固件发送至FPGA,其中,FPGA在收到升级指令和升级固件后,向非易失性随机存储器写入升级固件;
重启模块630,用于在确定完成向非易失性随机存储器写入升级固件后,进行重启,并在重启之前或之后,触发FPGA重新读取非易失性随机存储器中的升级固件;
建立模块640,用于在进行重启之后,如果确定PCle插槽上有PCle设备时,建立主机与PCle设备之间的PCle链路,PCle设备包括FPGA,其中,在进行重启的步骤之前或之后,FPGA重新读取非易失性随机存储器中的升级固件。
在一些实施例中,在一些实施例中,所述触发所述FPGA重新读取所述非易失性随机存储器中的所述升级固件,包括:
激活所述FPGA的ICAP模块,以便通过所述FPGA的ICAP模块触发所述FPGA重新读取所述非易失性随机存储器中的所述升级固件。
在一些实施例中,在进行重启之后确定PCle插槽上有PCle设备时,建立所述主机与PCle设备之间的PCle链路,包括:
在进行重启之后,进入基本输入输出系统,使所述基本输入输出系统设置在初始化状态下;
利用所述基本输入输出系统检测所述PCle插槽上是否存在在位信号,所述在位信号用于表征PCle插槽上连接有PCle设备;
在检测所述PCle插槽上存在在位信号时,建立与所述PCle设备之间的PCIe链路。
在一些实施例中,向所述非易失性随机存储器写入所述升级固件,包括:
在向所述非易失性随机存储器写入所述升级固件的过程中,所述主机获取所述FPGA的脉冲信号并判断所述脉冲信号的电平值与预设值的大小,其中,当所述脉冲信号的电平值低于所述预设值时,则未完成向所述非易失性随机存储器写入所述升级固件;当所述脉冲信号的电平值高于所述预设值时,则完成向所述非易失性随机存储器写入所述升级固件。
在一些实施例中,所述FPGA通过PCle插卡安装在主机主板的PCle插槽上。
在本申请中,在完成向非易失性随机存储器写入升级固件后,不需要切断电源以使主板和PCIe板卡掉电,而是通过重启主机实现FPGA固件升级,并且重启主机时主机上的其他器件不会掉电,能保留原有的进度。
图7示例性示出了本申请又一实施例提供的一种应用于FPGA的FPGA固件升级装置的结构框图,如图7所示,一种FPGA固件升级装置700,由FPGA执行,主机与FPGA通过PCle链路相连接,FPGA与非易失性随机存储器连接,包括:
第二接收模块710,用于接收固件升级指令和升级固件并向非易失性随机存储器写入升级固件,固件升级指令是由主机获取并发送给FPGA的,固件升级指令对应的升级固件是由主机从计算机硬盘中调取并发送给FPGA的;
读取模块720,用于在完成向非易失性随机存储器写入升级固件后,重新读取非易失性随机存储器中的升级固件;
升级模块730,用于根据重新读取的升级固件进行升级,且在主机进行重启之后,与主机建立PCle链路。
在一些实施例中,所述重新读取所述非易失性随机存储器中的所述升级固件,包括:
在所述主机激活所述FPGA的ICAP模块之后,所述FPGA的所述ICAP模块对所述FPGA进行逻辑复位;
在所述lCAP模块对FPGA完成逻辑复位后,所述FPGA重新读取非易失性随机存储器中的升级固件。
在本申请中,在完成向非易失性随机存储器写入升级固件后,不需要切断电源以使主板和PCIe板卡掉电,而是通过重启主机实现FPGA固件升级,并且重启主机时主机上的其他器件不会掉电,能保留原有的进度。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (10)

1.一种FPGA固件升级方法,其特征在于,由主机执行,所述主机与FPGA通过PCIe链路相连接,所述FPGA与非易失性随机存储器连接,所述方法包括:
接收固件升级指令,所述固件升级指令对应的升级固件从所述主机的硬盘中调取;
将所述固件升级指令和所述升级固件发送至所述FPGA,其中,所述FPGA在收到升级指令和所述升级固件后,向所述非易失性随机存储器写入所述升级固件;
在确定完成向所述非易失性随机存储器写入所述升级固件后,进行重启,并在重启之前或之后,触发所述FPGA重新读取所述非易失性随机存储器中的所述升级固件;
在进行重启之后,如果确定PCIe插槽上有PCIe设备时,建立所述主机与PCIe设备之间的PCIe链路,所述PCIe设备包括所述FPGA。
2.如权利要求1所述的FPGA固件升级方法,其特征在于,所述触发所述FPGA重新读取所述非易失性随机存储器中的所述升级固件,包括:
激活所述FPGA的ICAP模块,以便通过所述FPGA的ICAP模块触发所述FPGA重新读取所述非易失性随机存储器中的所述升级固件。
3.如权利要求1所述的FPGA固件升级方法,其特征在于,在进行重启之后确定PCIe插槽上有PCIe设备时,建立所述主机与PCIe设备之间的PCIe链路,包括:
在进行重启之后,进入基本输入输出系统,使所述基本输入输出系统设置在初始化状态下;
利用所述基本输入输出系统检测所述PCIe插槽上是否存在在位信号,所述在位信号用于表征PCIe插槽上连接有PCIe设备;
在检测所述PCIe插槽上存在在位信号时,建立与所述PCIe设备之间的PCIe链路。
4.如权利要求1所述的FPGA固件升级方法,其特征在于,向所述非易失性随机存储器写入所述升级固件,包括:
在向所述非易失性随机存储器写入所述升级固件的过程中,所述主机获取所述FPGA的脉冲信号并判断所述脉冲信号的电平值与预设值的大小,其中,当所述脉冲信号的电平值低于所述预设值时,则未完成向所述非易失性随机存储器写入所述升级固件;当所述脉冲信号的电平值高于所述预设值时,则完成向所述非易失性随机存储器写入所述升级固件。
5.如权利要求1-4任意一项所述的FPGA固件升级方法,其特征在于,所述FPGA通过PCIe插卡安装在主机主板的PCIe插槽上。
6.一种FPGA固件升级方法,其特征在于,由FPGA执行,所述主机与FPGA通过PCIe链路相连接,所述FPGA与非易失性随机存储器连接,所述方法包括:
接收固件升级指令和升级固件并向所述非易失性随机存储器写入所述升级固件,所述固件升级指令是由所述主机获取并发送给所述FPGA的,所述固件升级指令对应的所述升级固件是由所述主机从所述主机的硬盘中调取并发送给所述FPGA的;
在完成向所述非易失性随机存储器写入所述升级固件后,重新读取所述非易失性随机存储器中的所述升级固件;
根据重新读取的所述升级固件进行升级,且在所述主机进行重启之后,与所述主机建立PCIe链路。
7.如权利要求6所述的FPGA固件升级方法,其特征在于,所述重新读取所述非易失性随机存储器中的所述升级固件,包括:
在所述主机激活所述FPGA的ICAP模块之后,所述FPGA的所述ICAP模块对所述FPGA进行逻辑复位;
在所述ICAP模块对FPGA完成逻辑复位后,所述FPGA重新读取非易失性随机存储器中的升级固件。
8.一种FPGA固件升级装置,其特征在于,由主机执行,所述主机与FPGA通过PCIe链路相连接,所述FPGA与非易失性随机存储器连接,包括:
第一接收模块,用于接收固件升级指令,所述固件升级指令对应的升级固件从所述主机的硬盘中调取;
第一发送模块,用于将所述固件升级指令和所述升级固件发送至所述FPGA,其中,所述FPGA在收到升级指令和所述升级固件后,向所述非易失性随机存储器写入所述升级固件;
重启模块,用于在确定完成向所述非易失性随机存储器写入所述升级固件后,进行重启,并在重启之前或之后,触发所述FPGA重新读取所述非易失性随机存储器中的所述升级固件;
建立模块,用于在进行重启之后,如果确定PCIe插槽上有PCIe设备时,建立所述主机与PCIe设备之间的PCIe链路,所述PCIe设备包括所述FPGA,其中,在进行重启的步骤之前或之后,所述FPGA重新读取所述非易失性随机存储器中的所述升级固件。
9.一种FPGA固件升级装置,其特征在于,由FPGA执行,所述主机与FPGA通过PCIe链路相连接,所述FPGA与非易失性随机存储器连接,包括:
第二接收模块,用于接收固件升级指令和升级固件并向所述非易失性随机存储器写入所述升级固件,所述固件升级指令是由所述主机获取并发送给所述FPGA的,所述固件升级指令对应的所述升级固件是由所述主机从计算机硬盘中调取并发送给所述FPGA的;
读取模块,用于在完成向所述非易失性随机存储器写入所述升级固件后,重新读取所述非易失性随机存储器中的所述升级固件;
升级模块,用于根据重新读取的所述升级固件进行升级,且在所述主机进行重启之后,与所述主机建立PCIe链路。
10.一种FPGA固件升级系统,其特征在于,包括主机和FPGA,所述主机用于执行权利要求1-5任意一项所述的FPGA固件升级方法,所述FPGA用于执行权利要求6-7任意一项所述的FPGA固件升级方法。
CN202211727904.5A 2022-12-30 2022-12-30 一种fpga固件升级方法、装置及系统 Pending CN115904452A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211727904.5A CN115904452A (zh) 2022-12-30 2022-12-30 一种fpga固件升级方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211727904.5A CN115904452A (zh) 2022-12-30 2022-12-30 一种fpga固件升级方法、装置及系统

Publications (1)

Publication Number Publication Date
CN115904452A true CN115904452A (zh) 2023-04-04

Family

ID=86476296

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211727904.5A Pending CN115904452A (zh) 2022-12-30 2022-12-30 一种fpga固件升级方法、装置及系统

Country Status (1)

Country Link
CN (1) CN115904452A (zh)

Similar Documents

Publication Publication Date Title
US8468389B2 (en) Firmware recovery system and method of baseboard management controller of computing device
CN103119554B (zh) 提供平台无关的存储器逻辑
US9262283B2 (en) Method for reading kernel log upon kernel panic in operating system
US20080089161A1 (en) Method for testing flash memory power loss recovery
US20110283274A1 (en) Firmware image update and management
CN103930878A (zh) 用于存储器验证的方法、装置及系统
US8281119B1 (en) Separate normal firmware and developer firmware
CN103150231A (zh) 计算机开机的方法与计算机系统
KR20160016422A (ko) 비휘발성 메모리 기반의 스토리지 디바이스의 복구 방법 및 상기 스토리지 디바이스를 포함하는 전자 시스템의 동작 방법
US20200250313A1 (en) Bios recovery and update
US7188235B2 (en) Method for booting computer system with memory card
US20190065300A1 (en) Method of retrieving debugging data in uefi and computer system thereof
CN104424047A (zh) 一种nvram数据恢复方法和装置
US20190361692A1 (en) Updating firmware via a remote utility
CN109582332B (zh) 互联网摄像机的系统升级方法及装置
TW202028981A (zh) 資料儲存裝置及避免韌體失效之方法
CN105786545B (zh) 基于异构混合内存的断点恢复方法和系统
CN111782446A (zh) Ssd正常掉电的测试方法、装置、计算机设备及存储介质
US10691569B2 (en) System and method for testing a data storage device
US20190286351A1 (en) Method for configuring host memory buffer, memory storage apparatus and memory control circuit unit
CN105630523A (zh) 计算机bios资料恢复系统及方法
CN113377586A (zh) 一种服务器自动化检测方法、装置及存储介质
US10705827B2 (en) Method for updating system information of a computer device
CN115904452A (zh) 一种fpga固件升级方法、装置及系统
US20070016761A1 (en) Method, apparatus, and computer program product for implementing enhanced system behavior control

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