本发明涉及电子设备,具体而言,涉及一种基于bmc的fpga固件处理方法及装置。
背景技术:
1、目前,在服务器安全领域,服务器的固件安全越来越引起使用者和开发者的重视。一旦服务器固件受损,带给使用者的是灾难性的后果。其中,负责服务器上电时序和逻辑控制的fpga等重要固件的安全问题尤为重要。
2、在实践中发现,现在市场上主要采用基于可信密码模块对fpga进行完整性度量和恢复的机制,来提高固件安全性。然而,这种实现方式需要增加额外的可信密码模块花销,通信效率低,并且缺少运行时的监控逻辑和恢复功能,服务器安全可靠性较差。
3、针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
1、本发明实施例提供了一种基于bmc的fpga固件处理方法及装置,能够使用bmc对fpga进行完整性度量和恢复,可以提高效率,同时可以增强服务器安全可靠性。
2、根据本发明实施例的一个方面,提供了一种基于bmc的fpga固件处理方法,服务器上的fpga芯片和fpga固件芯片共享一条总线连接到bmc,并且,所述bmc通过外部电路切换连接到所述fpga芯片或者所述fpga固件芯片,所述方法包括:
3、控制所述bmc通过外部电路切换连接到所述fpga固件芯片,并对所述fpga固件芯片进行完整性验证,得到完整性验证结果;
4、如果所述完整性验证结果为验证成功,则控制所述bmc通过外部电路切换连接到所述fpga芯片,并对所述fpga芯片加载fpga固件,以实现启动fpga;
5、如果所述完整性验证结果为验证失败,则从所述bmc的文件系统中读取fpga固件镜像,并将所述fpga固件镜像更新到所述fpga固件芯片,以及控制所述bmc通过外部电路切换连接到所述fpga芯片,并对所述fpga芯片加载fpga固件,以实现启动fpga。
6、作为一种可选的实施方式,基所述bmc在默认状态下通过外部电路连接至所述fpga固件芯片。
7、作为一种可选的实施方式,在将所述fpga固件镜像更新到所述fpga固件芯片之后,所述方法还包括:
8、控制所述bmc通过硬件信号发送提示信息,其中,所述提示信息用于提示所述fpga固件镜像已更新完成。
9、作为一种可选的实施方式,在将所述fpga固件镜像更新到所述fpga固件芯片的过程中,所述方法还包括:
10、控制所述bmc开启监控系统的线程,并关闭fpga的监控线程,以通过所述bmc的监控系统的线程监控设备状态任务信息;
11、将所述设备状态任务信息与预先存储在eeprom中的信息进行比较;
12、如果比较结果指示所述设备状态任务信息不同于所述预先存储在eeprom中的信息,则基于所述设备状态任务信息,同步更新fpga的寄存器。
13、作为一种可选的实施方式,所述设备状态任务信息包括以下至少一项:cpu的设备状态任务信息、内存的设备状态任务信息、外部pcie设备的设备状态任务信息、电源的设备状态任务信息。
14、作为一种可选的实施方式,在将所述fpga固件镜像更新到所述fpga固件芯片之后,所述方法还包括:
15、控制所述bmc关闭监控系统的线程,并开启fpga的监控线程,以通过所述fpga的监控线程读取硬件标志位;
16、如果所述硬件标志位不是初始值,则对硬件信号不执行初始化操作。
17、根据本发明实施例的另一方面,还提供了一种基于bmc的fpga固件处理装置应用于服务器,所述服务器上的fpga芯片和fpga固件芯片共享一条总线连接到bmc,并且,所述bmc通过外部电路切换连接到所述fpga芯片或者所述fpga固件芯片,所述装置包括:
18、验证单元,用于控制所述bmc通过外部电路切换连接到所述fpga固件芯片,并对所述fpga固件芯片进行完整性验证,得到完整性验证结果;
19、第一启动单元,用于如果所述完整性验证结果为验证成功,则控制所述bmc通过外部电路切换连接到所述fpga芯片,并对所述fpga芯片加载fpga固件,以实现启动fpga;
20、第二启动单元,用于如果所述完整性验证结果为验证失败,则从所述bmc的文件系统中读取fpga固件镜像,并将所述fpga固件镜像更新到所述fpga固件芯片,以及控制所述bmc通过外部电路切换连接到所述fpga芯片,并对所述fpga芯片加载fpga固件,以实现启动fpga。
21、作为一种可选的实施方式,所述bmc在默认状态下通过外部电路连接至所述fpga固件芯片。
22、作为一种可选的实施方式,所述装置还包括:
23、提示单元,用于在将所述fpga固件镜像更新到所述fpga固件芯片之后,控制所述bmc通过硬件信号发送提示信息,其中,所述提示信息用于提示所述fpga固件镜像已更新完成。
24、作为一种可选的实施方式,所述装置还包括:
25、线程控制单元,用于在将所述fpga固件镜像更新到所述fpga固件芯片的过程中,控制所述bmc开启监控系统的线程,并关闭fpga的监控线程,以通过所述bmc的监控系统的线程监控设备状态任务信息;将所述设备状态任务信息与预先存储在eeprom中的信息进行比较;如果比较结果指示所述设备状态任务信息不同于所述预先存储在eeprom中的信息,则基于所述设备状态任务信息,同步更新fpga的寄存器。
26、在本发明实施例中,服务器上的fpga芯片和fpga固件芯片共享一条总线连接到bmc,bmc通过外部电路切换连接到fpga芯片或者fpga固件芯片,包括:控制bmc通过外部电路切换连接到fpga固件芯片,并对fpga固件芯片进行完整性验证,得到完整性验证结果;如果完整性验证结果为验证成功,则控制bmc通过外部电路切换连接到fpga芯片,并对fpga芯片加载fpga固件;如果完整性验证结果为验证失败,则从bmc的文件系统中读取fpga固件镜像,并将fpga固件镜像更新到fpga固件芯片,以及控制bmc通过外部电路切换连接到fpga芯片,并对fpga芯片加载fpga固件;可见,本发明能够使用bmc对fpga进行完整性度量和恢复,可以提高效率,同时可以增强服务器安全可靠性。
1.一种基于bmc的fpga固件处理方法,其特征在于,服务器上的fpga芯片和fpga固件芯片共享一条总线连接到bmc,并且,所述bmc通过外部电路切换连接到所述fpga芯片或者所述fpga固件芯片,所述方法包括:
2.根据权利要求1所述的基于bmc的fpga固件处理方法,其特征在于,所述bmc在默认状态下通过外部电路连接至所述fpga固件芯片。
3.根据权利要求1所述的基于bmc的fpga固件处理方法,其特征在于,在将所述fpga固件镜像更新到所述fpga固件芯片之后,所述方法还包括:
4.根据权利要求1所述的基于bmc的fpga固件处理方法,其特征在于,在将所述fpga固件镜像更新到所述fpga固件芯片的过程中,所述方法还包括:
5.根据权利要求1所述的基于bmc的fpga固件处理方法,其特征在于,所述设备状态任务信息包括以下至少一项:cpu的设备状态任务信息、内存的设备状态任务信息、外部pcie设备的设备状态任务信息、电源的设备状态任务信息。
6.根据权利要求1所述的基于bmc的fpga固件处理方法,其特征在于,在将所述fpga固件镜像更新到所述fpga固件芯片之后,所述方法还包括:
7.一种基于bmc的fpga固件处理装置,其特征在于,应用于服务器,所述服务器上的fpga芯片和fpga固件芯片共享一条总线连接到bmc,并且,所述bmc通过外部电路切换连接到所述fpga芯片或者所述fpga固件芯片,所述装置包括:
8.根据权利要求7所述的基于bmc的fpga固件处理装置,其特征在于,所述bmc在默认状态下通过外部电路连接至所述fpga固件芯片。
9.根据权利要求7所述的基于bmc的fpga固件处理装置,其特征在于,所述装置还包括:
10.根据权利要求7所述的基于bmc的fpga固件处理装置,其特征在于,所述装置还包括: