CN111338700A - 加载fpga版本的方法及装置、存储介质 - Google Patents

加载fpga版本的方法及装置、存储介质 Download PDF

Info

Publication number
CN111338700A
CN111338700A CN202010112379.0A CN202010112379A CN111338700A CN 111338700 A CN111338700 A CN 111338700A CN 202010112379 A CN202010112379 A CN 202010112379A CN 111338700 A CN111338700 A CN 111338700A
Authority
CN
China
Prior art keywords
fpga chip
pin
fpga
equipment
chip device
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.)
Granted
Application number
CN202010112379.0A
Other languages
English (en)
Other versions
CN111338700B (zh
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.)
Hangzhou DPTech Technologies Co Ltd
Original Assignee
Hangzhou DPTech Technologies 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 Hangzhou DPTech Technologies Co Ltd filed Critical Hangzhou DPTech Technologies Co Ltd
Priority to CN202010112379.0A priority Critical patent/CN111338700B/zh
Publication of CN111338700A publication Critical patent/CN111338700A/zh
Application granted granted Critical
Publication of CN111338700B publication Critical patent/CN111338700B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Logic Circuits (AREA)

Abstract

本公开提供了一种加载FPGA版本的方法及装置、存储介质,其中,所述方法包括:在内核系统启动后,将与中央处理器连接的指定芯片上的第一管脚和第二管脚配置为输出信号有效的模式;调整所述第一管脚和所述第二管脚的输出电平,控制FPGA芯片设备上与所述第一管脚和所述第二管脚分别对应的第三管脚和第四管脚进行工作,加载FPGA基础版本后,使得所述FPGA芯片设备与所述中央处理器之间的高速串行计算机扩展总线标准PCIE链路处于连接状态;在所述PCIE链路处于连接状态之后,检测所述内核系统中是否已经存在所述FPGA芯片设备,获得检测结果;根据所述检测结果,至少执行重新扫描所述FPGA芯片设备的扫描操作。本公开提高了通过PCIE总线加载FPGA版本的稳定性。

Description

加载FPGA版本的方法及装置、存储介质
技术领域
本公开涉及计算机领域,尤其涉及加载FPGA版本的方法及装置、存储介质。
背景技术
目前,FPGA(Field Programmable Gate Array,现场可编程门阵列)芯片被越发广泛地使用在高端网络安全设备,可替代交换芯片和Phy(Physical,物理层)芯片去实现网络报文在面板口的收发。FPGA要开始工作就需要有适配该FPGA芯片设备的版本配置文件,版本的加载方式就成了使芯片工作的首要步骤。
设备上电后,硬件对FPGA复位操作,BIOS(Basic Input Output System,基本输入输出系统)中对整个PCIE(Peripheral Component Interconnect Express,高速串行计算机扩展总线标准)进行全局扫描,初始化和配置PCIE设备,内核系统启动后,从文件系统获取配置文件到内存,CPU(Central Processing Unit,中央处理器)通过PCIE总线将配置文件依次写入PCIE配置空间拓展段数据寄存器,完成FPGA芯片设备的加载。
但是在硬件上电后,由于硬件时序不可控,可能存在硬件复位管脚上拉时机发生在BIOS全局扫描PCIE设备之后,在这种情况下,BIOS将不会扫描到FPGA芯片设备,导致内核启动后FPGA与PCIE总线链路状态为断开的,无法进行FPGA芯片设备加载操作。
发明内容
有鉴于此,本公开提供了一种加载FPGA版本的方法及装置、存储介质,以解决相关技术中的不足。
根据本公开实施例的第一方面,提供一种加载现场可编程门阵列FPGA版本的方法,所述方法包括:
在内核系统启动后,将与中央处理器连接的指定芯片上的第一管脚和第二管脚配置为输出信号有效的模式;
调整所述第一管脚和所述第二管脚的输出电平,控制FPGA芯片设备上与所述第一管脚和所述第二管脚分别对应的第三管脚和第四管脚进行工作,加载FPGA基础版本后,使得所述FPGA芯片设备与所述中央处理器之间的高速串行计算机扩展总线标准PCIE链路处于连接状态;
在所述PCIE链路处于连接状态之后,检测所述内核系统中是否已经存在所述FPGA芯片设备,获得检测结果;
根据所述检测结果,至少执行重新扫描所述FPGA芯片设备的扫描操作。
根据本公开实施例的第二方面,提供一种加载现场可编程门阵列FPGA版本的装置,所述装置包括:
配置模块,用于在内核系统启动后,将与中央处理器连接的指定芯片上的第一管脚和第二管脚配置为输出信号有效的模式;
第一加载模块,用于调整所述第一管脚和所述第二管脚的输出电平,控制FPGA芯片设备上与所述第一管脚和所述第二管脚分别对应的第三管脚和第四管脚进行工作,加载FPGA基础版本后,使得所述FPGA芯片设备与所述中央处理器之间的高速串行计算机扩展总线标准PCIE链路处于连接状态;
检测模块,用于在所述PCIE链路处于连接状态之后,检测所述内核系统中是否已经存在与所述FPGA芯片设备,获得检测结果;
扫描执行模块,用于根据所述检测结果,至少执行重新扫描所述FPGA芯片设备的扫描操作。
根据本公开实施例的第三方面,提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述第一方面任一所述的加载现场可编程门阵列FPGA版本的方法。
根据本公开实施例的第四方面,提供一种加载现场可编程门阵列FPGA版本的装置,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述第一方面任一所述的加载现场可编程门阵列FPGA版本的方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
本公开实施例中,可以在内核系统启动后,将与中央处理器连接的指定芯片上的第一管脚和第二管脚配置为输出信号有效的模式,调整第一管脚和第二管脚的输出电平,控制FPGA芯片设备上与所述第一管脚和所述第二管脚分别对应的第三管脚和第四管脚进行工作,加载FPGA基础版本后,使得所述FPGA芯片设备与所述中央处理器之间的PCIE链路处于连接状态。在所述PCIE链路处于连接状态之后,检测所述内核系统中是否已经存在与所述FPGA芯片设备对应的FPGA芯片设备,获得检测结果,根据所述检测结果,至少执行重新扫描所述FPGA的扫描操作。通过上述过程,让内核系统在加载FPGA基础版本之后,让PCIE链路处于稳定连接状态,且可以让内核系统稳定扫描到FPGA芯片设备,提高了通过PCIE总线加载FPGA版本的稳定性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是本公开根据一示例性实施例示出的一种加载现场可编程门阵列FPGA版本的方法流程图;
图2是本公开根据一示例性实施例示出的一种FPGA芯片设备硬件设计示意图;
图3是本公开根据一示例性实施例示出的另一种加载现场可编程门阵列FPGA版本的方法流程图;
图4是本公开根据一示例性实施例示出的另一种加载现场可编程门阵列FPGA版本的方法流程图;
图5是本公开根据一示例性实施例示出的一种PCIE总线结构示意图;
图6是本公开根据一示例性实施例示出的另一种加载现场可编程门阵列FPGA版本的方法流程图;
图7是本公开根据一示例性实施例示出的一种加载现场可编程门阵列FPGA版本的装置框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开运行的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所运行的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中运行的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所运行的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
如图1所示,图1是根据一示例性实施例示出的一种加载现场可编程门阵列FPGA版本的方法,该方法可以用于计算机设备上,包括以下步骤:
在步骤101中,在内核系统启动后,将与中央处理器连接的指定芯片上的第一管脚和第二管脚配置为输出信号有效的模式。
在本步骤中,指定芯片可以采用PCA9555芯片,该芯片通过I2C(Inter-IntegratedCircuit,内部集成电路)总线与CPU相连,芯片上有多个输入/输出管脚,可以通过此芯片拓展CPU的输入/输出管脚,方便管理和操作更多的CPU外围器件。
在本公开实施例中,可以将PCA9555芯片上的第一管脚和第二管脚,对CPU的管脚进行补充,其中,第一管脚可以采用IO_4管脚,第二管脚可以采用IO_2管脚。PCA9555芯片上的第一管脚和第二管脚可以分别与FPGA芯片设备上的第三管脚和第四管脚连接,其中,第三管脚可以是FPGA芯片设备上负责对FPGA进行复位的RESET管脚,第四管脚可以是FPGA芯片设备上负责FPGA版本擦除和加载的PROG_B管脚。
例如图2所示,可以通过PCA9555芯片上的IO_4管脚控制FPGA芯片设备上的RESET管脚,通过PCA9555芯片上的IO_2管脚控制FPGA芯片设备上的版本擦除和加载的PROG_B管脚。
输出信号有效的模式是指PCA9555芯片向FPGA芯片设备上发送的信号有效,可以控制FPGA进行对应的操作。
在步骤102中,调整所述第一管脚和所述第二管脚的输出电平,控制FPGA芯片设备上与所述第一管脚和所述第二管脚分别对应的第三管脚和第四管脚进行工作,加载FPGA基础版本后,使得所述FPGA芯片设备与所述中央处理器之间的高速串行计算机扩展总线标准PCIE链路处于连接状态。
本步骤中,可以先将第一管脚IO_4的输出电平调整为第一电平,这里的第一电平可以采用低电平。从而将FPGA芯片设备上的第三管脚,即复位管脚的电平也拉至低电平,使得FPGA芯片设备保持复位状态。
进一步地,将第二管脚IO_2的输出电平调整为第一电平。从而将FPGA芯片设备上的第四管脚,即版本擦除和加载管脚的电平也拉至低电平,对所述FPGA芯片设备执行擦除已有FPGA基础版本的操作。
再进一步地,将第二管脚的输出电平调整为第二电平,第二电平可以采用高电平。控制所述FPGA芯片设备从闪存中获取所述FPGA基础版本并加载,加载后所述FPGA基础版本后,使得所述FPGA芯片设备与中央处理器之间的PCIE链路处于连接状态。
在步骤103中,在所述PCIE链路处于连接状态之后,检测所述内核系统中是否已经存在所述FPGA芯片设备,获得检测结果。
本步骤中,可以在PCIE链路处于连接状态之后,由于FPGA芯片设备是挂载在PCIE总线的某个bus总线下,则可以根据PCIE设备的总线标识、设备标识和功能标识,检测所述内核系统中是否已经存在FPGA芯片设备,获得检测结果。
在步骤104中,根据所述检测结果,至少执行重新扫描所述FPGA芯片设备的扫描操作。
如果检测结果指示所述内核系统中已经存在所述FPGA芯片设备,且所述FPGA芯片设备发生再次复位,则退出并移除所述FPGA芯片设备后,将所述FPGA芯片设备作为新设备,执行重新扫描所述FPGA芯片设备的扫描操作。
如果检测结果指示所述内核系统中不存在所述FPGA芯片设备,则不需要移除该FPGA芯片设备,直接执行重新扫描所述FPGA芯片设备的扫描操作即可。
在上述实施例中,让内核系统在加载FPGA基础版本之后,让PCIE链路处于稳定连接状态,且可以让内核系统稳定扫描到FPGA芯片设备,提高了通过PCIE总线加载FPGA版本的稳定性。
在一可选实施例中,如图3所示,图3是在前述图1所示实施例的基础上示出的另一种加载现场可编程门阵列FPGA版本的方法,在步骤104之后,该方法还可以包括:
在步骤105中,将所述指定芯片的所述第一管脚的输出电平调整为第二电平,控制所述FPGA芯片设备上的所述第三管脚被拉至所述第二电平,对所述FPGA芯片设备执行解复位操作。
本步骤中,可以将PCA9555芯片的第一管脚IO_4的输出电平调整为高电平,让FPGA芯片设备上的第三管脚,即复位管脚的电平也被拉至高电平,从而对FPGA芯片设备进行解复位操作,使得FPGA芯片设备可以开始工作。
上述实施例中,可以对FPGA芯片设备进行解复位,从而让FPGA芯片设备可以开始工作,可用性高。
在一可选实施例中,如图4所示,图4是在前述图3所示实施例的基础上示出的另一种加载现场可编程门阵列FPGA版本的方法,该方法还可以包括:
在步骤106中,从目标桥设备开始扫描所述PCIE设备。
其中,所述目标桥设备是所述FPGA芯片设备所在总线的上一级的桥设备。CPU和FPGA芯片设备之间通过PCIE总线连接,PCIE总线以树形排列,例如图5所示,Bus0作为第一条总线,挂载桥设备或EP(End Point,终端)设备,桥设备下可拓展bus总线,EP作为树的叶子节点,本公开中FPGA芯片设备即为EP设备。
本步骤中,可以从FPGA芯片设备所在总线的上一级的桥设备开始,采用深度优先算法扫描PCIE设备。
在步骤107中,为扫描到的所述FPGA芯片设备分配新的内存空间,并将所述内存空间映射成所述中央处理可访问的虚拟内存。
在扫描到PFGA设备之后需要为该设备分配新的内存空间。进一步地,还需要将该内存空间映射成CPU可以访问的虚拟内存,用于读写FPGA寄存器。
在步骤108中,在扫描到所述FPGA芯片设备并在文件系统创建与所述FPGA芯片设备对应的配置文件后,通过遍历函数遍历路径中的PCIE设备。
本步骤中,遍历函数可以采用readdir(读取目录)函数,遍历路径中的PCIE设备。可以根据厂商唯一的vendor id(厂家标识)和FPGA芯片设备唯一的device id(设备标识)来查找FPGA芯片设备。
在步骤109中,根据厂商标识和设备标识查找到所述FPGA芯片设备之后,通过PCIE总线将所述配置文件写入PCIE配置空间扩展段数据寄存器中,加载FPGA拓展版本,并对所述FPGA芯片设备复位后,使得所述FPGA芯片设备开始工作。
本步骤中,可以根据厂商唯一的vendor id(厂家标识)和FPGA芯片设备唯一的device id(设备标识)来查找FPGA芯片设备。找到FPGA芯片设备之后,可以通过PCIE总线将FPGA的配置文件写入PCIE配置空间扩展段数据寄存器中,从而加载FPGA扩展版本,并对该FPGA芯片设备复位之后,使得FPGA芯片设备开始工作。其中,FPGA扩展版本是用户态加载版本。
上述实施例中,可以加载FPGA扩展版本,实现简便,可用性高,同样可以提高加载FPGA版本的稳定性。
在一可选实施例中,例如图6所示,FPGA芯片设备的数目可以为多个,倘若一个网络设备支持插入多块儿插卡,即存在多个FPGA芯片设备时,该方法还可以包括:
在步骤110中,以每个所述FPGA芯片设备所插入的网络设备槽位为单位,串行循环处理每个所述FPGA芯片设备。
如果FPGA芯片设备的数目为多个,则可以按照上述实施例提供的方法,以每个所述FPGA芯片设备所插入的网络设备槽位为单位,串行循环处理每个FPGA设备,当然,在硬件结构上就要求多个FPGA芯片设备尽量保证高内聚,低耦合。
上述实施例中,在FPGA芯片设备的数目为多个时,可以串行循环处理每个FPGA芯片设备,可用性高。在本公开实施例中,避免了硬件复位时序不可操作性带来的PCIE链路连接不稳定的问题,且FPGA版本升级无需手动插拔电源下电,可通过上述流程擦除已有的FPGA版本,另外,通过使用指定芯片,即PCA9555芯片,拓展了CPU的输入输出管脚,增加了CPU对外围器件的控制能力和操作性。
与前述方法实施例相对应,本公开还提供了装置的实施例。
如图7所示,图7是本公开根据一示例性实施例示出的一种加载现场可编程门阵列FPGA版本的装置框图,所述装置包括:
配置模块210,用于在内核系统启动后,将与中央处理器连接的指定芯片上的第一管脚和第二管脚配置为输出信号有效的模式;
第一加载模块220,用于调整所述第一管脚和所述第二管脚的输出电平,控制FPGA芯片设备上与所述第一管脚和所述第二管脚分别对应的第三管脚和第四管脚进行工作,加载FPGA基础版本后,使得所述FPGA芯片设备与所述中央处理器之间的高速串行计算机扩展总线标准PCIE链路处于连接状态;
检测模块230,用于在所述PCIE链路处于连接状态之后,检测所述内核系统中是否已经存在所述FPGA芯片设备,获得检测结果;
扫描执行模块240,用于根据所述检测结果,至少执行重新扫描所述FPGA芯片设备的扫描操作。
在一实施例中,所述配置模块用于:
所述内核系统通过内部集成电路I2C总线配置所述指定芯片对应的配置寄存器,将所述第一管脚和所述第二管脚配置为所述输出信号有效的模式。
在一实施例中,所述第一加载模块用于:
将所述第一管脚的输出电平调整为第一电平,控制所述FPGA芯片设备上的所述第三管脚被拉至所述第一电平,使得所述FPGA芯片设备保持复位状态;
将所述第二管脚的输出电平调整为所述第一电平,控制所述FPGA芯片设备上的所述第四管脚被拉至所述第一电平,对所述FPGA芯片设备执行擦除已有FPGA基础版本的操作;
将所述第二管脚的输出电平调整为第二电平,控制所述FPGA芯片设备从闪存中获取所述FPGA基础版本并加载,加载所述FPGA基础版本后,使得所述FPGA芯片设备与中央处理器之间的PCIE链路处于连接状态;其中,所述第二电平高于所述第一电平。
在一实施例中,所述检测模块用于:
根据PCIE设备的总线标识、设备标识和功能标识,检测所述内核系统中是否已经存在所述FPGA芯片设备,获得检测结果。
在一实施例中,所述扫描执行模块用于:
如果所述检测结果指示所述内核系统中已经存在所述FPGA芯片设备,且所述FPGA芯片设备发生再次复位,则退出并移除所述FPGA芯片设备后,将所述FPGA芯片设备作为新设备,执行重新扫描所述FPGA芯片设备的扫描操作;
如果所述检测结果指示所述内核系统中不存在所述FPGA芯片设备,则执行重新扫描所述FPGA芯片设备的扫描操作。
在一实施例中,所述装置还包括:
控制模块,用于将所述指定芯片的所述第一管脚的输出电平调整为第二电平,控制所述FPGA芯片设备上的所述第三管脚被拉至所述第二电平,对所述FPGA芯片设备执行解复位操作。
在一实施例中,所述装置还包括:
扫描模块,用于从目标桥设备开始扫描PCIE设备;其中,所述目标桥设备是所述FPGA芯片设备所在总线的上一级的桥设备;
内存分配模块,用于为扫描到的所述FPGA芯片设备分配新的内存空间并将所述内存空间映射成所述中央处理可访问的虚拟内存;
遍历模块,用于在扫描到所述FPGA芯片设备并在文件系统创建与所述FPGA芯片设备对应的配置文件后,通过遍历函数遍历路径中的PCIE设备;
第二加载模块,用于根据厂商标识和设备标识查找到所述FPGA芯片设备之后,通过PCIE总线将所述配置文件写入PCIE配置空间扩展段数据寄存器中,加载FPGA拓展版本,并对所述FPGA芯片设备复位后,使得所述FPGA芯片设备开始工作。
在一实施例中,所述FPGA芯片设备的数目为多个,所述装置还包括:
处理模块,用于以每个所述FPGA芯片设备所插入的网络设备槽位为单位,串行循环处理每个所述FPGA芯片设备。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
相应的,本公开还提供一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述任一所述的加载现场可编程门阵列FPGA版本的方法。
相应的,本公开还提供一种加载现场可编程门阵列FPGA版本的装置,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行上述任一所述的加载现场可编程门阵列FPGA版本的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或者惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。

Claims (18)

1.一种加载现场可编程门阵列FPGA版本的方法,其特征在于,所述方法包括:
在内核系统启动后,将与中央处理器连接的指定芯片上的第一管脚和第二管脚配置为输出信号有效的模式;
调整所述第一管脚和所述第二管脚的输出电平,控制FPGA芯片设备上与所述第一管脚和所述第二管脚分别对应的第三管脚和第四管脚进行工作,加载FPGA基础版本后,使得所述FPGA芯片设备与所述中央处理器之间的高速串行计算机扩展总线标准PCIE链路处于连接状态;
在所述PCIE链路处于连接状态之后,检测所述内核系统中是否已经存在所述FPGA芯片设备,获得检测结果;
根据所述检测结果,至少执行重新扫描所述FPGA芯片设备的扫描操作。
2.根据权利要求1所述的方法,其特征在于,所述将指定芯片上的第一管脚和第二管脚配置为输出信号有效的模式,包括:
所述内核系统通过内部集成电路I2C总线配置所述指定芯片对应的配置寄存器,将所述第一管脚和所述第二管脚配置为所述输出信号有效的模式。
3.根据权利要求1所述的方法,其特征在于,所述调整所述第一管脚和所述第二管脚的输出电平,控制FPGA芯片设备上与所述第一管脚和所述第二管脚分别对应的第三管脚和第四管脚进行工作,加载FPGA基础版本后,使得所述FPGA芯片设备与中央处理器之间的链路处于连接状态,包括:
将所述第一管脚的输出电平调整为第一电平,控制所述FPGA芯片设备上的所述第三管脚被拉至所述第一电平,使得所述FPGA芯片设备保持复位状态;
将所述第二管脚的输出电平调整为所述第一电平,控制所述FPGA芯片设备上的所述第四管脚被拉至所述第一电平,对所述FPGA芯片设备执行擦除已有FPGA基础版本的操作;
将所述第二管脚的输出电平调整为第二电平,控制所述FPGA芯片设备从闪存中获取所述FPGA基础版本并加载,加载所述FPGA基础版本后,使得所述FPGA芯片设备与中央处理器之间的PCIE链路处于连接状态;其中,所述第二电平高于所述第一电平。
4.根据权利要求1所述的方法,其特征在于,所述检测所述内核系统中是否已经存在所述FPGA芯片设备,获得检测结果,包括:
根据PCIE设备的总线标识、设备标识和功能标识,检测所述内核系统中是否已经存在所述FPGA芯片设备,获得检测结果。
5.根据权利要求1所述的方法,其特征在于,所述根据所述检测结果,至少执行重新扫描所述FPGA芯片设备的扫描操作,包括:
如果所述检测结果指示所述内核系统中已经存在所述FPGA芯片设备,且所述FPGA芯片设备发生再次复位,则退出并移除所述FPGA芯片设备后,将所述FPGA芯片设备作为新设备,执行重新扫描所述FPGA芯片设备的扫描操作;
如果所述检测结果指示所述内核系统中不存在所述FPGA芯片设备,则执行重新扫描所述FPGA芯片设备的扫描操作。
6.根据权利要求1所述的方法,其特征在于,所述根据所述检测结果,至少执行重新扫描所述FPGA的扫描操作之后,所述方法还包括:
将所述指定芯片的所述第一管脚的输出电平调整为第二电平,控制所述FPGA芯片设备上的所述第三管脚被拉至所述第二电平,对所述FPGA芯片设备执行解复位操作。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
从目标桥设备开始扫描PCIE设备;其中,所述目标桥设备是所述FPGA芯片设备所在总线的上一级的桥设备;
为扫描到的所述FPGA芯片设备分配新的内存空间,并将所述内存空间映射成所述中央处理可访问的虚拟内存;
在扫描到所述FPGA芯片设备并在文件系统创建与所述FPGA芯片设备对应的配置文件后,通过遍历函数遍历路径中的PCIE设备;
根据厂商标识和设备标识查找到所述FPGA芯片设备之后,通过PCIE总线将所述配置文件写入PCIE配置空间扩展段数据寄存器中,加载FPGA拓展版本,并对所述FPGA芯片设备复位后,使得所述FPGA芯片设备开始工作。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述FPGA芯片设备的数目为多个,所述方法还包括:
以每个所述FPGA芯片设备所插入的网络设备槽位为单位,串行循环处理每个所述FPGA芯片设备。
9.一种加载现场可编程门阵列FPGA版本的装置,其特征在于,所述装置包括:
配置模块,用于在内核系统启动后,将与中央处理器连接的指定芯片上的第一管脚和第二管脚配置为输出信号有效的模式;
第一加载模块,用于调整所述第一管脚和所述第二管脚的输出电平,控制FPGA芯片设备上与所述第一管脚和所述第二管脚分别对应的第三管脚和第四管脚进行工作,加载FPGA基础版本后,使得所述FPGA芯片设备与所述中央处理器之间的高速串行计算机扩展总线标准PCIE链路处于连接状态;
检测模块,用于在所述PCIE链路处于连接状态之后,检测所述内核系统中是否已经存在所述FPGA芯片设备,获得检测结果;
扫描执行模块,用于根据所述检测结果,至少执行重新扫描所述FPGA芯片设备的扫描操作。
10.根据权利要求9所述的装置,其特征在于,所述配置模块用于:
所述内核系统通过内部集成电路I2C总线配置所述指定芯片对应的配置寄存器,将所述第一管脚和所述第二管脚配置为所述输出信号有效的模式。
11.根据权利要求9所述的装置,其特征在于,所述第一加载模块用于:
将所述第一管脚的输出电平调整为第一电平,控制所述FPGA芯片设备上的所述第三管脚被拉至所述第一电平,使得所述FPGA芯片设备保持复位状态;
将所述第二管脚的输出电平调整为所述第一电平,控制所述FPGA芯片设备上的所述第四管脚被拉至所述第一电平,对所述FPGA芯片设备执行擦除已有FPGA基础版本的操作;
将所述第二管脚的输出电平调整为第二电平,控制所述FPGA芯片设备从闪存中获取所述FPGA基础版本并加载,加载所述FPGA基础版本后,使得所述FPGA芯片设备与中央处理器之间的PCIE链路处于连接状态;其中,所述第二电平高于所述第一电平。
12.根据权利要求9所述的装置,其特征在于,所述检测模块用于:
根据PCIE设备的总线标识、设备标识和功能标识,检测所述内核系统中是否已经存在所述FPGA芯片设备,获得检测结果。
13.根据权利要求9所述的装置,其特征在于,所述扫描执行模块用于:
如果所述检测结果指示所述内核系统中已经存在所述FPGA芯片设备,且所述FPGA芯片设备发生再次复位,则退出并移除所述FPGA芯片设备后,将所述FPGA芯片设备作为新设备,执行重新扫描所述FPGA芯片设备的扫描操作;
如果所述检测结果指示所述内核系统中不存在所述FPGA芯片设备,则执行重新扫描所述FPGA芯片设备的扫描操作。
14.根据权利要求9所述的装置,其特征在于,所述装置还包括:
控制模块,用于将所述指定芯片的所述第一管脚的输出电平调整为第二电平,控制所述FPGA芯片设备上的所述第三管脚被拉至所述第二电平,对所述FPGA芯片设备执行解复位操作。
15.根据权利要求14所述的装置,其特征在于,所述装置还包括:
扫描模块,用于从目标桥设备开始扫描PCIE设备;其中,所述目标桥设备是所述FPGA芯片设备所在总线的上一级的桥设备;
内存分配模块,用于为扫描到的所述FPGA芯片设备分配新的内存空间并将所述内存空间映射成所述中央处理可访问的虚拟内存;
遍历模块,用于在扫描到所述FPGA芯片设备并在文件系统创建与所述FPGA芯片设备对应的配置文件后,通过遍历函数遍历路径中的PCIE设备;
第二加载模块,用于根据厂商标识和设备标识查找到所述FPGA芯片设备之后,通过PCIE总线将所述配置文件写入PCIE配置空间扩展段数据寄存器中,加载FPGA拓展版本,并对所述FPGA芯片设备复位后,使得所述FPGA芯片设备开始工作。
16.根据权利要求9-15任一项所述的方法,其特征在于,所述FPGA芯片设备的数目为多个,所述装置还包括:
处理模块,用于以每个所述FPGA芯片设备所插入的网络设备槽位为单位,串行循环处理每个所述FPGA芯片设备。
17.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求1-8任一所述的加载现场可编程门阵列FPGA版本的方法。
18.一种加载现场可编程门阵列FPGA版本的装置,其特征在于,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-8任一所述的加载现场可编程门阵列FPGA版本的方法。
CN202010112379.0A 2020-02-24 2020-02-24 加载fpga版本的方法及装置、存储介质 Active CN111338700B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010112379.0A CN111338700B (zh) 2020-02-24 2020-02-24 加载fpga版本的方法及装置、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010112379.0A CN111338700B (zh) 2020-02-24 2020-02-24 加载fpga版本的方法及装置、存储介质

Publications (2)

Publication Number Publication Date
CN111338700A true CN111338700A (zh) 2020-06-26
CN111338700B CN111338700B (zh) 2022-11-25

Family

ID=71181767

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010112379.0A Active CN111338700B (zh) 2020-02-24 2020-02-24 加载fpga版本的方法及装置、存储介质

Country Status (1)

Country Link
CN (1) CN111338700B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114185603A (zh) * 2021-11-08 2022-03-15 深圳云天励飞技术股份有限公司 一种智能加速卡的控制方法、服务器及智能加速卡

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102789815A (zh) * 2012-05-10 2012-11-21 北京时代民芯科技有限公司 一种用于fpga配置的prom电路架构
CN103701707A (zh) * 2013-12-03 2014-04-02 杭州华三通信技术有限公司 一种网络设备
CN105183506A (zh) * 2015-08-17 2015-12-23 山东超越数控电子有限公司 一种解决s3唤醒时pci设备寄存器掉电重置的方法
CN109614286A (zh) * 2018-12-04 2019-04-12 郑州云海信息技术有限公司 一种PCIe设备的热插拔识别方法、装置和介质
CN109710322A (zh) * 2018-12-26 2019-05-03 京信通信系统(中国)有限公司 通信设备复位方法、装置及系统
US10282192B1 (en) * 2015-12-29 2019-05-07 Amazon Technologies, Inc. Updating device code through a bus
CN109918230A (zh) * 2019-02-20 2019-06-21 杭州迪普科技股份有限公司 一种业务板卡异常恢复方法及系统
US20190278720A1 (en) * 2018-03-09 2019-09-12 Samsung Electronics Co., Ltd. Method and apparatus for supporting a field programmable gate array (fpga) based add-in-card (aic) solid state drive (ssd)
CN110377238A (zh) * 2019-07-26 2019-10-25 苏州浪潮智能科技有限公司 一种存储系统及其数据传输方法、装置和NVMe控制框

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102789815A (zh) * 2012-05-10 2012-11-21 北京时代民芯科技有限公司 一种用于fpga配置的prom电路架构
CN103701707A (zh) * 2013-12-03 2014-04-02 杭州华三通信技术有限公司 一种网络设备
CN105183506A (zh) * 2015-08-17 2015-12-23 山东超越数控电子有限公司 一种解决s3唤醒时pci设备寄存器掉电重置的方法
US10282192B1 (en) * 2015-12-29 2019-05-07 Amazon Technologies, Inc. Updating device code through a bus
US20190278720A1 (en) * 2018-03-09 2019-09-12 Samsung Electronics Co., Ltd. Method and apparatus for supporting a field programmable gate array (fpga) based add-in-card (aic) solid state drive (ssd)
CN109614286A (zh) * 2018-12-04 2019-04-12 郑州云海信息技术有限公司 一种PCIe设备的热插拔识别方法、装置和介质
CN109710322A (zh) * 2018-12-26 2019-05-03 京信通信系统(中国)有限公司 通信设备复位方法、装置及系统
CN109918230A (zh) * 2019-02-20 2019-06-21 杭州迪普科技股份有限公司 一种业务板卡异常恢复方法及系统
CN110377238A (zh) * 2019-07-26 2019-10-25 苏州浪潮智能科技有限公司 一种存储系统及其数据传输方法、装置和NVMe控制框

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114185603A (zh) * 2021-11-08 2022-03-15 深圳云天励飞技术股份有限公司 一种智能加速卡的控制方法、服务器及智能加速卡
CN114185603B (zh) * 2021-11-08 2024-01-05 深圳云天励飞技术股份有限公司 一种智能加速卡的控制方法、服务器及智能加速卡

Also Published As

Publication number Publication date
CN111338700B (zh) 2022-11-25

Similar Documents

Publication Publication Date Title
CN107423169B (zh) 用于测试高速外围设备互连设备的方法和系统
US5237690A (en) System for testing adaptor card upon power up and having disablement, enablement, and reconfiguration options
CN110134446B (zh) 启动pcie设备扫描的方法
US5729683A (en) Programming memory devices through the parallel port of a computer system
US20080222406A1 (en) Hot-pluggable information processing device and setting method
US20140237223A1 (en) System boot with external media
CN109324991B (zh) 一种pcie设备的热插拔装置、方法、介质及系统
JP4597459B2 (ja) 装置の列挙のための仮想rom
CN105426265B (zh) 具有虚拟装置的系统和装置以及控制虚拟装置的方法
US20090132798A1 (en) Electronic device and method for resuming from suspend-to-memory state thereof
US20160092201A1 (en) Method and Device for Updating Program Data
CN112306581A (zh) 一种基板管理控制器管理bios配置的方法及介质
CN111338700B (zh) 加载fpga版本的方法及装置、存储介质
US20050066073A1 (en) Peripheral device having a programmable identification configuration register
CN107273249B (zh) 主板测试方法、处理器和主板测试系统
CN112417802B (zh) 一种模拟存储芯片的方法、系统、设备及存储介质
CN110874333B (zh) 存储设备及存储方法
CN114185720B (zh) 服务器动态热备份的方法、装置、设备及存储介质
CN108052337A (zh) 一种eMMC量产工具的固件升级方法及装置
CN108710508B (zh) 一种处理方法、装置及电子设备
US20050125611A1 (en) Control procedure selection
CN111078261B (zh) 闪存升级装置及车辆
CN111953753B (zh) 通信设备连接方法、装置、计算机设备和存储介质
KR100515103B1 (ko) 제어장치용 롬이 제거된 메인보드에서 포스트 실행 방법
CN111063387B (zh) 一种固态硬盘性能测试方法、装置、设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant