智能板卡的控制方法、电子设备的启动方法及电子系统与流程

文档序号:31051845发布日期:2022-08-06 07:44阅读:117来源:国知局
1.本公开涉及计算机技术,尤其涉及一种智能板卡的控制方法、电子设备的启动方法及电子系统。
背景技术
::2.tpm(trustedplatformmodule,可信平台模块),是标准的安全芯片,它能有效地保护电子设备、防止非法用户访问电子设备。3.tpm通常设置在智能板卡中,智能板卡与电子设备的cpu(centralprocessingunit,中央处理器)通过pcie(peripheralcomponentinterconnectexpress,高速串行计算机扩展总线标准)连接,cpu能够检测到tpm并为其分配地址空间。4.在一些特定的情况下,cpu上电后首次为tpm分配了地址空间之后,还可能重新为其分配地址空间,但是,在基于tpm的驱动初始化tpm时,cpu仍然会利用初次分配的地址空间初始化tpm,导致tpm失效的问题。技术实现要素:5.本公开提供一种智能板卡的控制方法、电子设备的启动方法及电子系统,以解决现有技术中由于地址重分配机制导致的tpm失效的问题。6.本公开的第一个方面是提供一种智能板卡的控制方法,所述智能板卡与服务器通过高速串行计算机扩展总线标准连接;所述服务器中包括处理器和根节点;所述智能板卡包括可信平台模块、高速串行总线交换机;所述可信平台模块与所述高速串行总线交换机连接;7.其中,所述高速串行总线交换机包括上行接口,所述上行接口通过所述根节点与所述处理器连接;所述可信平台模块中包括配置空间和管理模块;8.所述方法包括:9.所述管理模块在所述处理器启动后使能所述配置空间;使能所述配置空间后所述可信平台模块能够被所述处理器检测到;10.所述可信平台模块接收用于表示所述处理器中的基本输入输出系统启动完成的通知消息,所述管理模块根据所述通知消息去使能所述配置空间;去使能所述配置空间后所述可信平台模块不能够被所述处理器检测到;其中,所述处理器中的基本输入输出系统用于为所述处理器检测到的设备分配地址空间,所述根节点的总地址空间包括所述上行接口的上行地址空间,且所述总地址空间比所述上行地址空间大预设值,所述上行接口的上行地址空间包括所述可信平台模块的模块地址空间。11.本公开的第二个方面是提供一种电子设备的启动方法,所述电子设备与智能板卡通过高速串行计算机扩展总线标准连接;所述电子设备中包括处理器和根节点;所述智能板卡包括可信平台模块、高速串行总线交换机;所述可信平台模块与所述高速串行总线交换机连接;其中,所述高速串行总线交换机包括上行接口,所述上行接口通过所述根节点与所述处理器连接;12.所述方法包括:13.处理器启动基本输入输出系统,并基于所述基本输入输出系统枚举连接的第一设备,为所述第一设备分配地址空间;所述第一设备中包括所述可信平台模块、所述根节点、所述上行接口,所述根节点的总地址空间包括所述上行接口的上行地址空间,且所述总地址空间比所述上行地址空间大预设值,所述上行接口的上行地址空间包括所述可信平台模块的模块地址空间;14.所述基本输入输出系统启动完毕后,所述处理器向所述可信平台模块发送用于表示基本输入输出系统启动完成的通知消息,所述通知消息用于指示所述可信平台模块中的配置空间去使能;15.所述处理器启动操作系统,并根据所述可信平台模块的地址空间初始化所述可信平台模块。16.本公开的第二个方面是提供一种电子系统,包括服务器、智能板卡;17.其中,所述服务器包括处理器,所述处理器具有根节点,所述根节点与所述智能板卡通过高速串行总线连接;18.所述智能板卡执行如第一方面所述的方法;19.所述处理器执行如第二方面所述的方法。20.本公开提供的智能板卡的控制方法、电子设备的启动方法及电子系统的技术效果是:21.本实施例提供的智能板卡的控制方法、电子设备的启动方法及电子系统,所述智能板卡与服务器通过高速串行计算机扩展总线标准连接;所述服务器中包括处理器和根节点;智能板卡包括、可信平台模块;可信平台模块中包括配置空间和管理模块;方案包括:管理模块在处理器启动后使能配置空间;使能配置空间后可信平台模块能够被处理器检测到;可信平台模块接收用于表示处理器中的基本输入输出系统启动完成的通知消息,管理模块根据通知消息去使能配置空间;去使能配置空间后可信平台模块不能够被处理器检测到;其中,处理器中的基本输入输出系统用于为处理器检测到的设备分配地址空间,根节点的总地址空间包括上行接口的上行地址空间,且总地址空间比上行地址空间大预设值,上行接口的上行地址空间包括可信平台模块的模块地址空间。本公开提供的方案中,能够在处理器启动完毕bios之后,去使能tpm的配置空间,以避免处理器运行os时重新为tpm分配地址空间,从而解决现有技术中由于地址重分配机制导致tpm失效的问题。附图说明22.图1为一示例性实施例示出的电子系统的结构图;23.图2为一示例性实施例示出的重分配前后的地址空间的示意图;24.图3为本公开一示例性实施例示出的电子系统的结构示意图;25.图4为本公开一示例性实施例示出的智能板卡的控制方法的流程示意图;26.图5为本公开另一示例性实施例示出的电子系统的结构示意图;27.图6为本公开另一示例性实施例示出的智能板卡的控制方法的流程示意图;28.图7为本公开一示例性实施例示出的tlp传输方向示意图;29.图8为本公开另一示例性实施例示出的tlp传输方向示意图;30.图9为本公开又一示例性实施例示出的tlp传输方向示意图;31.图10为本公开一示例性实施例示出的重分配前后的地址空间的示意图;32.图11为本公开一示例性实施例示出的电子设备的启动方法的流程示意图;33.图12为本公开另一示例性实施例示出的电子设备的启动方法的流程示意图。具体实施方式34.在电子设备中通常设置有tpm,比如在计算机中可以设置tpm。计算机中还设置有cpu,cpu与tpm之间通常通过pcie连接。35.图1为一示例性实施例示出的电子系统的结构图。36.如图1所示,该电子设备中设置有cpu11、智能板卡12、pcierootport13(高速串行总线根节点)。37.cpu11中设置有bios(basicinputoutputsystem,基本输入输出系统)和os(operatingsystem,操作系统)。智能板卡12中设置有pcieswitch121(高速串行总线交换机)、pciedev122(高速串行总线设备)和tpm123。pcierootport13包括windowrp(用于路由tlp的窗口根节点),通过windowrp路由tlp(transactionlayerpacket,事务层报文)。38.pcieswitch121具有上行接口windowup(windowupstreamport),还具有至少两个下行接口(windowdp,windowdownstreamport),windowdp1和windowdp2,windowdp1与pcie设备(pciedev)122连接,windowdp2与tpm123连接。39.cpu11上电后会运行bios,并枚举pci(peripheralcomponentinterconnect,外设部件互连标准)设备,为这些设备分配地址空间。比如为pciedev122和tpm123,分配地址空间。40.bios为pci设备分配了地址空间后,bios中的acpi(advancedconfigurationandpowermanagementinterface,高级配置和电源管理接口)会将设备信息上报给os,还会还会引导cpu11启动os。41.os中具有acpi驱动、pci驱动、tpm驱动。42.cpu11启动acpi驱动后,能够获取到acpi上报的设备信息,并对这些信息初始化。43.cpu11启动pci驱动时,会枚举pciedev122,并在发现bios为各个pci设备分配的地址空间不合理时,会触发pcirealloc机制,重新为这些pci设备分配地址空间。由于tpm123也属于pci设备,因此,有可能重新为tpm123分配地址空间。44.cpu11启动tpm驱动时,会利用acpi上报的设备信息初始化tpm,该设备信息中记录的tpm的地址空间是基于bios分配的,若启动pci驱动是重新分配了地址空间,则tpm实际的地址空间是os分配的,这就导致初始化使用的tpm的地址空间与tpm实际的地址空间不一致,tpm驱动无法正常访问到tpm,进而导致tpm失效的问题。45.图2为一示例性实施例示出的重分配前后的地址空间的示意图。46.如图2所示,地址21为cpu启动bios时为各个设备分配的地址空间,地址22为cpu启动os时,基于pci驱动重新为各个设备分配的地址空间。acpitabletpm_crs用于表征为tpm分配的地址空间。47.从中可以看出,重新分配地址空间之前,windowdp2与tpm的地址空间相同,因此,处理器能够通过windowdp2访问tpm。但是在重新分配地址空间之后,windowdp2与tpm的地址空间不同,因此,处理器无法通过windowdp2访问tpm。48.为了解决这一技术问题,本公开提供的方案中,cpu在bios阶段为根节点的总地址空间包括上行接口的上行地址空间,且总地址空间比上行地址空间大预设值,且在bios阶段使能tpm中的配置空间,使得在bios阶段cpu能够检测到tpm,进而能够为其分配地址空间,在cpu启动os阶段去使能tpm中的配置空间,使得在os阶段cpu不能够检测到tpm,即使cpu运行os中的pci驱动时,为各个pci设备重新分配了地址空间,由于检测不到tpm,也不会为其重分配地址空间,进而使得tpm的实际地址空间仍为基于bios分配的,且总地址空间远大于上行地址空间,使得os阶段cpu也不会为为根节点重分配地址空间,这种方式能够使tpm的实际地址空间与acpi向os上报的地址空间保持一致,且仍然属于总地址空间的范围,因此,能够解决上述技术问题。49.图3为本公开一示例性实施例示出的电子系统的结构示意图。50.如图3所示,本公开提供的方案中,智能板卡32与服务器31连接,服务器31中包括处理器cpu311和根节点pcierootport312;智能板卡中包括tpm321、高速串行总线交换机322,tpm321中还包括配置空间和管理模块。51.一种可选的实现方案中,pcierootport312用来连接智能板卡32与cpu311,pcierootport312可以集成在cpu311中,智能板卡32与pcierootport312之间可以通过pcie连接。52.图4为本公开一示例性实施例示出的智能板卡的控制方法的流程示意图。53.本公开提供的方法可以应用在如图3所示的电子系统中。54.如图4所示,本公开提供的智能板卡的控制方法,包括:55.步骤401,管理模块在处理器启动后使能配置空间;使能配置空间后可信平台模块能够被处理器检测到。56.其中,服务器与智能板卡连接,当服务器启动后能够给智能板卡发送电信号,使得智能板卡确定处理器已经启动。57.具体的,在服务器启动后,智能板卡中的管理模块使能(enable)智能板卡中的配置空间。使能是负责控制信号的输入和输出的,设备被使能后可以响应外部的信号。管理模块与配置空间连接,管理模块可以向配置空间发送使能信号,进而使能配置空间。58.进一步的,配置空间被使能后,处理器能够访问配置空间,进而能够识别tpm。59.实际应用时,服务器中的处理器启动后会运行设置的bios,并为识别到的pci设备分配地址空间。由于智能板卡通过pcie连接到处理器上,因此,设置在智能板卡上的tpm也是pci设备。在分配地址空间时,处理器会基于bios为识别到的tpm分配地址空间。60.为pci设备分配地址空间是指为pci设备的bar(baseaddressregister,基础地址寄存器)进行操作,以完成地址映射,地址映射是指将pci设备的bar先映射到系统总线上,再进一步映射到cpu的虚拟地址空间中。61.处理器可以枚举接入的pci设备,并为这些pci设备分配地址空间,pci设备可以将为其分配的地址空间的基地址存储在bar中,从而将pci设备的bar先映射到系统总线上。62.步骤402,可信平台模块接收用于表示处理器中的基本输入输出系统启动完成的通知消息,管理模块根据通知消息去使能(disenable)配置空间;去使能配置空间后可信平台模块不能够被处理器检测到;其中,处理器中的基本输入输出系统用于为处理器检测到的设备分配地址空间。63.处理器启动bios分配地址空间时,为根节点的总地址空间包括上行接口的上行地址空间,且总地址空间比上行地址空间大预设值,上行接口的上行地址空间包括可信平台模块的模块地址空间。64.其中,处理器启动bios完毕后,还会启动os,而在运行os中的pci驱动时,存在重新为pci分配地址空间的可能性。为了避免处理器基于pci驱动为tpm重新分配地址空间,本公开提供的方案中,处理器中的bios启动完成后,向tpm发送用于表示bios启动完成的通知消息,tpm接收到该消息后,其中的管理模块去使能(disenable)配置空间,使得tpm不能够被处理器检测到。65.具体的,配置空间中记录有tpm的详细信息,若配置空间处于去使能状态,处理器就无法读取tpm的信息,进而检测不到tpm。进一步的,在处理器启动完毕bios后,管理模块能够去使能(disenable)配置空间,从而在处理器启动os时,若基于os为pci设备重新分配地址空间时,由于处理器无法检测到tpm,因此,也不会为tpm重新分配地址空间,进而使得tpm的实际地址空间与基于bios为tpm分配的地址空间保持一致。66.由于总地址空间比上行地址空间大预设值,具体可以通过调整预设值,使得总地址空间远大于上行地址空间,进而cpu运行os中的pci驱动时,不会为根节点重新分配地址空间。这种实现方式中,在重分配地址空间以后,可信平台模块的模块地址空间仍然属于根节点的总地址空间的范围。67.预设值可以根据需求设置,比如可以是固定值,还可以是上行地址空间的十倍及其以上的大小。比如上行地址空间配置的是128m,总地址空间配置为32g。再比如上行地址空间配置的是1g,总地址空间配置的是128g。68.实际应用时,处理器启动os中的tpm驱动时,会利用基于bios为tpm分配的地址空间初始化tpm,本公开提供的方案中tpm的实际地址空间与基于bios为tpm分配的地址空间保持一致,且属于根节点的总地址空间的范围,因此,不会出现tpm失效的问题。69.本公开提供的智能板卡的控制方法中,智能板卡与服务器通过高速串行计算机扩展总线标准连接;服务器中包括处理器和根节点;智能板卡包括可信平台模块、高速串行总线交换机;可信平台模块与高速串行总线交换机连接;其中,高速串行总线交换机包括上行接口,上行接口通过根节点与处理器连接;可信平台模块中包括配置空间和管理模块;方法包括:管理模块在处理器启动后使能配置空间;使能配置空间后可信平台模块能够被处理器检测到;可信平台模块接收用于表示处理器中的基本输入输出系统启动完成的通知消息,管理模块根据通知消息去使能(disenable)配置空间;去使能配置空间后可信平台模块不能够被处理器检测到;其中,处理器中的基本输入输出系统用于为处理器检测到的设备分配地址空间。本公开提供的方法中,能够在处理器启动完毕bios之后,去使能tpm的配置空间,以避免处理器运行os时重新为tpm分配地址空间,从而解决现有技术中由于地址重分配机制导致tpm失效的问题。70.图5为本公开另一示例性实施例示出的电子系统的结构示意图。71.如图5所示,本公开提供的方案中,智能板卡51与服务器52连接,智能板卡51中包括pcieswitch(peripheralcomponentinterconnectexpressswitch,高速串行总线交换机)511、pcie设备512和tpm513。72.服务器52中包括cpu521和pcierootport522。73.pcieswitch511的上行接口(windowup,windowupstreamport)通过pcierootport522与cpu521连接。pcierootport522可以集成在cpu521中。74.pcieswitch511具有至少两个下行接口(windowdp,windowdownstreamport),其中一个下行接口与pcie设备512连接,另一个下行接口与tpm513连接。75.其中,tpm513中还包括配置空间、管理模块、内存空间和报文处理模块等。76.图6为本公开另一示例性实施例示出的智能板卡的控制方法的流程示意图。77.本公开提供的方法可以应用在如图5所示的电子系统中。78.步骤601,管理模块在处理器启动后使能配置空间;使能配置空间后可信平台模块能够被处理器检测到。79.步骤601与步骤401的实现方式类似,不再赘述。80.步骤602,内存空间被处理器访问后,管理模块根据通知消息去使能配置空间;其中,基本输入输出系统启动完成后处理器访问内存空间;去使能配置空间后可信平台模块不能够被处理器检测到;其中,处理器中的基本输入输出系统用于为处理器检测到的设备分配地址空间。81.处理器启动bios分配地址空间时,为根节点的总地址空间包括上行接口的上行地址空间,且总地址空间比上行地址空间大预设值,上行接口的上行地址空间包括可信平台模块的模块地址空间。82.其中,tpm还具有内存空间(memoryspace),处理器运行bios时,能够为智能板卡中的tpm分配地址空间,并在bios启动完毕后访问tpm的内存空间。83.具体的,处理器可以通过访问tpm的内存空间的方式,向其发送用于表示处理器中的基本输入输出系统启动完成的通知消息。tpm的内存空间被处理器访问后,tpm的管理模块去使能(disenable)配置空间。84.进一步的,在tpm上电后,其内存空间首次被处理器访问后,tpm的管理模块去使能(disenable)配置空间,此后内存空间再次被处理器访问时,tpm的管理模块可以不再去使能(disenable)配置空间。85.实际应用时,处理器可以识别接入的pci设备,并为这些pci设备分配地址空间。86.其中,智能板卡还包括高速串行总线交换机(pcieswitch),pcieswitch包括上行接口windowup、第一下行接口windowdp1、第二下行接口windowdp2。上行接口windowup用于接收cpu下发的报文,下行接口用于将报文转发给连接的设备。87.其中,windowup通过pcierootport与处理器连接;windowup与pcierootport之间通过pice连接。88.处理器在运行bios时会为pcierootport分配总地址空间,还会为windowup分配上行地址空间,还会为tpm分配模块地址空间。89.其中,总地址空间包括上行地址空间,比如,上行地址空间为n1-n2这一范围,则总地址空间包括n1-n2的范围,使得需要发送到上行接口的报文文,能够通过pcierootport转发给pcieswitch。90.cpu还会为pcieswitch的windowdp1和windowdp2分配地址空间,上行地址空间包括windowdp1的第一地址空间和windowdp2的第二地址空间,windowdp2的第二地址空间包括tpm的模块地址空间。因此,模块地址空间也属于总地址空间的范围。91.具体的,cpu分配的总地址空间比上行地址空间大预设值,该预设值可以是固定值,也可以是上行地址空间大小的预设比例。预设值的设置方式可以根据需求设置,具体可以通过这种方式使总地址空间远大于上行地址空间。92.这种实现方式中,cpu重新为pci设备分配地址空间时,由于pcierootport的总地址空间预留充裕,因此,不会为pcierootport重新分配地址空间,而tpm被去使能,其地址空间也不会改变,因此,即使使得cpu为其他设备重新分配了地址空间,tpm的模块地址空间仍然属于总地址空间。93.进一步的,pcieswitch的下行接口可以与pci设备连接,本公开的方案中,windowdp1可以与pcie设备连接,windowdp2可以与tpm连接。94.步骤603,高速串行总线交换机通过上行接口接收事务层报文;其中,事务层报文的目标地址属于总地址空间。95.实际应用时,处理器可以向智能板卡上的tpm发送报文,比如,处理器运行os中的tpm驱动时,会向tpm发送事务层报文(transactionlayerpacket,tlp)。具体可以根据bios为tpm分配的地址空间生成并发送该tlp。96.其中,tlp的目标地址属于总地址空间时,该tlp会被pcierootport发送给智能板卡的pcieswitch。97.步骤604,高速串行总线交换机根据事务层报文的目标地址,将事务层报文转发给高速串行总线设备或者可信平台模块连接。98.智能板卡的pcieswitch接收到tlp后,还会根据tlp的目标地址将tlp转发给pcie设备或者tpm。99.一种可选的实现方式中,pcieswitch中还设置有透传模块,透传模块用于将报文透传给tpm。100.tlp的目标地址属于pcierootport的总地址空间,而总地址空间又包括windowup的上行地址空间和tpm的模块地址空间。若tlp的目标地址不属于windowup的上行地址空间,则可以认为tlp目标地址属于tpm的模块地址空间,因此,可以利用pcieswitch的透传模块将tlp发送给tpm。101.这种方式中,windowup的上行地址空间又包括windowdp1和windowdp2的地址空间,由于tlp目标地址不属于windowup的上行地址空间,因此tlp也不会通过windowdp1或windowdp2传输给连接的pci设备。102.当处理器为pci设备重新分配地址空间后,存在tpm的地址空间不属于windowup的上行地址空间的情况,本公开的方案利用透传模块,能够将tlp传输给tpm,以免报文无法传输到tpm。103.图7为本公开一示例性实施例示出的tlp传输方向示意图。104.如图7所示,若tlp的目标地址落入总地址空间的范围,且没落入windowup的地址空间,则tlp被pcierootport传输给pcieswitch的windowup,再由透传模块传输给tpm。105.另一种可选的实现方式中,若tlp的目标地址属于第一地址空间,则pcieswitch的windowdp1将tlp发送给pcie设备。106.cpu生成的tlp的目标地址属于总地址空间,因此,tlp由pcierootport传输给pcieswitch的windowup,而该目标地址还属于windowdp1的第一地址空间,因此,tlp又会被路由到windowdp1,进而通过windowdp1传输到与windowdp1连接的pcie设备。107.图8为本公开另一示例性实施例示出的tlp传输方向示意图。108.如图8所示,若tlp的目标地址落入总地址空间的范围,且落入windowdp1的地址空间,则tlp被pcierootport传输给pcieswitch的windowup,再传输到windowdp1,进而通过windowdp1传输到pcie设备中。109.再一种可选的实现方式中,若tlp的目标地址属于第二地址空间,则pcieswitch的windowdp1将tlp发送给tpm。110.处理器生成的tlp的目标地址属于总地址空间,因此,tlp由pcierootport传输给pcieswitch的windowup,而该目标地址还属于windowdp2的第二地址空间,因此,tlp又会被路由到windowdp2,进而通过windowdp2传输到与windowdp2连接的tpm。111.图9为本公开又一示例性实施例示出的tlp传输方向示意图。112.如图9所示,若tlp的目标地址落入总地址空间的范围,且落入windowdp2的地址空间,则tlp被pcierootport传输给pcieswitch的windowup,再传输到windowdp2,进而通过windowdp2传输到tpm中。113.其中,tpm中还设置有报文处理子模块,用于对传输到tpm的报文进行处理。114.步骤605,报文处理子模块确定事务层报文的类型,并根据类型对事务层报文进行处理。115.具体的,tlp的类型不同,报文处理子模块对其处理方式也不同。tlp的类型具体可以包括配置空间报文,配置空间报文又可以包括配置空间读报文(cfgread)和配置空间写报文(cfgwrite),tlp的类型具体可以包括内存空间报文,内存空间报文又可以包括内存空间读报文(memread)和内存空间写报文(memwrite)。116.配置空间报文是用来操作配置空间的报文,内存空间报文是用来操作内存空间的报文。117.进一步的,若配置空间处于去使能状态,则配置空间无法处理报文,因此,若事务层报文的类型是配置空间报文,则报文处理子模块还可以确定配置空间的状态。118.若报文处理子模块确定配置空间处于使能状态,则将配置空间报文类型的事务层报文发送给配置空间,以使配置空间处理该报文。119.若报文处理子模块确定配置空间处于去使能状态,则配置空间无法对事务层报文进行处理,因此,报文处理子模块可以丢弃该事务层报文,并反馈用于表示报文不被支持的信息。120.比如,在处理器启动os中的pci驱动时,重新为pci设备分配地址空间,则处理器需要操作tpm的配置空间以重新为其分配地址空间,此时,tpm的配置空间处于去使能状态,则不会响应相应的报文,进而无法为tpm重新分配地址空间。121.实际应用时,若传输到tpm的报文的类型是内存空间报文,则报文处理子模块将事务层报文发送给内存空间,从而使内存空间对该报文进行处理。122.一种可选的实现方式中,tpm中还包括tpm功能区,内存空间中的数据变更后,还可以向tpm功能区发送消息,使得tpm功能区能够实现相应的功能,tpm功能区用于实现tpm设备的功能。123.图10为本公开一示例性实施例示出的重分配前后的地址空间的示意图。124.如图10所示,地址101为cpu启动bios时为各个设备分配的地址空间,地址102为cpu启动os时,基于pci驱动重新为各个设备分配的地址空间。125.从中可以看出,重新分配地址空间之前,windowdp2与tpm的地址空间相同,因此,处理器能够通过windowdp2访问tpm。基于本方案在重新分配地址空间之后,windowdp2与tpm的地址空间不同,但仍然属于windowrp的地址空间范围,因此,用于访问tpm的报文能够被传输到windowswitch中,windowswitch中设置有透传模块,透传模块可以将报文发送给tpm。126.图11为本公开一示例性实施例示出的电子设备的启动方法的流程示意图。127.如图11所示,本公开提供的电子设备的启动方法,包括:128.步骤1101,处理器启动基本输入输出系统,并基于基本输入输出系统枚举连接的第一设备,为第一设备分配地址空间;第一设备中包括可信平台模块、根节点、上行接口,根节点的总地址空间包括上行接口的上行地址空间,且总地址空间比上行地址空间大预设值,上行接口的上行地址空间包括可信平台模块的模块地址空间。129.其中,本公开提供的方法由电子设备执行,该电子设备与智能板卡通过高速串行计算机扩展总线标准连接;电子设备中包括处理器和根节点;智能板卡包括可信平台模块、高速串行总线交换机;可信平台模块与高速串行总线交换机连接;其中,高速串行总线交换机包括上行接口,上行接口通过根节点与处理器连接。一种可选的实现方式中,该电子设备与智能板卡的结构如图3所示。130.电子设备通电后,处理器会启动设置的bios,bios是一组固化到电子设备内主板上一个rom(read-onlymemory,只读存储器)芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序。131.具体的,处理器运行bios时能够枚举连接的第一设备,该第一设备包括设置在智能板卡上的tpm,还包括根节点和高速串行总线交换机中的上行接口。132.进一步的,tpm中可以包括配置空间和管理模块,电子设备通电后,管理模块可以使能配置空间,从而使得处理器能够检测到tpm。133.实际应用时,若第一设备是pci设备,则处理器可以为第一设备分配地址空间。本公开提供的方案中智能板卡与处理器之间通过pcie连接,因此,设置在智能板卡上的tpm也是pci设备,处理器也会为其分配地址空间。134.处理器还会为根节点和上行接口分配地址空间,其中根节点的总地址空间包括上行接口的上行地址空间,且总地址空间比上行地址空间大预设值,上行接口的上行地址空间包括可信平台模块的模块地址空间。135.通过分配地址空间,能够将下发给tpm的报文从根节点路由到windowswitch中的windowup,再路由到tpm。136.其中,通过配置预设值,能够使得总地址空间远大于上行地址空间。137.步骤1102,基本输入输出系统启动完毕后,处理器向可信平台模块发送用于表示基本输入输出系统启动完成的通知消息,通知消息用于指示可信平台模块中的配置空间去使能。138.其中,处理器启动bios完毕后,还会启动os,而在运行os中的pci驱动时,存在重新为pci分配地址空间的可能性。139.为了避免处理器基于pci驱动为tpm重新分配地址空间,本公开提供的方案中,处理器中的bios启动完成后,向tpm发送用于表示bios启动完成的通知消息,tpm接收到该消息后,其中的管理模块去使能(disenable)配置空间,使得tpm不能够被处理器检测到。140.具体的,配置空间中记录有tpm的详细信息,若配置空间处于去使能状态,处理器就无法读取tpm的信息,进而检测不到tpm。141.步骤1103,处理器启动操作系统,并根据可信平台模块的地址空间初始化可信平台模块。142.处理器启动完毕bios后,还会启动os。在运行os中的pci驱动时,会重新枚举设备,此时,由于tpm的配置空间被去使能,处理器不会再次检测到tpm,因此,在重新为pci设备分配地址空间时,不会为tpm分配地址空间,进而使得tpm的实际地址空间与基于bios为tpm分配的地址空间保持一致。143.若总地址空间大于上行地址空间,则在重新分配地址空间时,处理器不会重新为windowrp分配地址空间,使得tpm的模块地址空间仍然属于总地址空间的范围内,以保证tpm的报文仍然能够从windowrp路由到windowswitch中的windowup,再路由到tpm。144.实际应用时,处理器启动os中的tpm驱动时,会利用基于bios为tpm分配的地址空间初始化tpm。具体可以运行os中的tpm驱动,运行tpm驱动时会利用bios为tpm分配的地址空间初始化tpm。145.这种实现方式中,tpm的地址空间不会被重新分配,因此,本公开提供的方案中tpm的实际地址空间与基于bios为tpm分配的地址空间保持一致,因此,不会出现tpm失效的问题。146.本公开提供的电子设备的启动方法中,能够在处理器启动完毕bios之后,通知tpm去使能(disenable)配置空间,以避免处理器运行os时重新为tpm分配地址空间,从而解决现有技术中由于地址重分配机制导致tpm失效的问题。147.图12为本公开另一示例性实施例示出的电子设备的启动方法的流程示意图。148.如图12所示,本公开提供的电子设备的启动方法,包括:149.步骤1201,处理器启动基本输入输出系统,并基于基本输入输出系统枚举连接的第一设备。150.步骤1202,为可信平台模块分配模块地址空间;为第一下行接口分配第一地址空间,为第二下行接口分配第二地址空间;为上行接口分配上行地址空间,上行地址空间包括第一地址空间和第二地址空间;为根节点分配总地址空间,其中,总地址空间包括上行地址空间和模块地址空间,且总地址空间比上行地址空间大预设值。151.一种可选的实现方式中,智能板卡中包括pcieswitch(peripheralcomponentinterconnectexpressswitch,高速串行总线交换机)。pcieswitch具有上行接口windowup和两个下行接口(windowdp1和windowdp2)。152.pcieswitch通过服务器中的pcierootport与服务器中的处理器连接。153.处理器能够枚举到pcierootport、pcieswitch和tpm,进而可以为tpm分配模块地址空间。为windowdp1分配第一地址空间,为windowdp2分配第二地址空间,为上行接口windowup分配上行地址空间,上行地址空间包括第一地址空间和第二地址空间。154.一种可选的实现方式,上行地址空间等于第一地址空间和第二地址空间的并集。155.处理器还可以为pcierootport分配总地址空间,总地址空间包括上行地址空间和模块地址空间,使得需要发送到上行接口的报文以及发送到tpm的报文,能够通过pcierootport转发给pcieswitch。156.cpu分配的总地址空间比上行地址空间大预设值,该预设值可以是固定值,也可以是上行地址空间大小的预设比例。预设值的设置方式可以根据需求设置,具体可以通过这种方式使总地址空间远大于上行地址空间。157.这种实现方式中,cpu重新为pci设备分配地址空间时,由于pcierootport的总地址空间预留充裕,因此,不会为pcierootport重新分配地址空间,使得cpu重新分配了地址空间以后,tpm的模块地址空间仍然属于总地址空间。158.步骤1203,基本输入输出系统启动完毕后,处理器访问可信平台模块的内存空间,以向可信平台模块发送用于表示基本输入输出系统启动完成的通知消息,通知消息用于指示可信平台模块中的配置空间去使能。159.其中,tpm中还设置有内存空间,处理器运行bios时,能够为智能板卡中的tpm分配地址空间,并在bios启动完毕后访问tpm的内存空间,从而通知tpmbios启动完毕。160.tpm的内存空间被处理器访问后,tpm的管理模块去使能(disenable)配置空间。161.进一步的,在tpm上电后,其内存空间首次被处理器访问后,tpm的管理模块去使能(disenable)配置空间,此后内存空间再次被处理器访问时,tpm的管理模块可以不再去使能(disenable)配置空间。162.步骤1204,处理器启动操作系统中的高级配置和电源管理接口驱动,基于高级配置和电源管理接口驱动获取第一设备信息,并根据第一设备信息进行信息初始化。163.实际应用时,os中具有高级配置和电源管理接口驱动(acpi驱动),处理器运行acpi驱动时能够获取第一设备信息。164.其中,bios中设置有acpi接口,bios可以通过acpi接口向os上报第一设备信息,处理器运行acpi驱动时能够获取得到该第一设备信息。第一设备信息用于表征处理器检测到的各第一设备的信息,其可以是表格形式,例如可以是biosacpitable。第一设备信息中包括tpm的信息。165.具体的,处理器运行acpi驱动时,可以根据第一设备信息进行信息初始化。166.进一步的,处理器基于bios枚举的第一设备包括tpm,因此,处理器可以基于bios为tpm分配地址空间。处理器为tpm分配地址空间后,还可以将tpm的向操作系统传递设备资源的方法的返回值设置为为tpm分配的地址空间信息。比如,为tpm分配的地址空间为tpmmembaseaddr,则可以将_crs(currentresourcesettings,acpi用于向操作系统传递设备资源的方法)方法返回值设置为tpmmembaseaddr。167.实际应用时,处理器进行信息初始化时,可以根据tpm的信息进行初始化,具体可以根据第一设备信息为可信平台模块注册可信模块节点;执行可信平台模块的向操作系统传递设备资源的方法,获取可信平台模块的地址空间。168.比如,第一设备信息中包括tpm,则处理器可以注册可信模块节点,还可以执行该节点的_crs方法,进而获取tpm的地址空间。169.步骤1205,处理器启动操作系统中的外围设备互联总线驱动,基于外围设备互联总线驱动枚举连接的第二设备,并初始化第二设备中的高速串行总线设备。170.进一步的,处理器还可以运行os中的外围设备互联总线驱动(pci驱动),处理器运行pci驱动时,会重新枚举连接的第二设备,若确定基于bios为pci设备分配的地址空间不合理,则会重新为pci设备分配地址空间。171.此时,tpm中的配置空间去使能,因此,处理器不会为tpm重新分配地址空间。172.实际应用时,处理器运行pci驱动时还可以初始化第二设备中的pcie设备。其中,由于是基于pci驱动更新pcie设备的地址空间,因此,pcie设备的变更后,处理器运行pcie驱动时仍然能够获取到pcie设备变更后的地址空间,进而可以成功的初始化pcie设备。173.步骤1206,处理器启动操作系统中的可信平台模块驱动,基于可信平台模块驱动和第一设备信息中可信平台模块的地址空间初始化可信平台模块。174.其中,处理器还可以启动os中的tpm驱动,并根据运行acpi驱动时获取的第一设备信息中包括的tpm的信息,初始化tpm。该第一设备信息中的tpm的信息包括基于bios为tpm分配的地址空间。175.具体的,本公开提供的方案中不会为tpm重新分配地址空间,因此,第一设备信息中包括的tpm的地址空间即为tpm实际的地址空间,处理器运行tpm驱动时基于第一设备信息中包括的tpm的地址空间能够成功的初始化tpm。176.而现有技术的方案中,处理器运行acpi驱动时获取的第一设备信息中包括的tpm的信息,运行pci驱动时有可能重新为tpm分配地址空间,使得tpm实际的地址空间与第一设备信息中记录的tpm的地址空间不一致,使得处理器运行tpm驱动时基于第一设备信息中包括的tpm的地址空间无法成功的初始化tpm。相比之下,本公开提供的方案能够有效的解决由于重分配地址空间导致tpm初始化失败的问题。177.一种可选的实现方式中,本公开还提供一种电子系统,包括服务器、智能板卡;178.其中,所述服务器包括处理器,所述处理器具有根节点windowrp,所述根节点与所述智能板卡通过高速串行总线pcie连接;179.所述智能板卡执行如图3-10任一实施例所涉及的方法;180.所述处理器执行如图11-12任一实施例所涉及的方法。181.本实施例还提供一种计算机可读存储介质,其上存储有计算机程序,182.所述计算机程序被处理器执行以实现如上所述的任一种智能板卡的控制方法或电子设备的启动方法。183.本实施例还提供一种计算机程序,包括程序代码,当计算机运行所述计算机程序时,所述程序代码执行如上所述的任一种智能板卡的控制方法或电子设备的启动方法。184.本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。185.最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1