配置空间的访问方法、装置、架构及储存介质与流程

文档序号:17474421发布日期:2019-04-20 06:01阅读:235来源:国知局
配置空间的访问方法、装置、架构及储存介质与流程

本发明涉及通信技术领域,特别是涉及一种配置空间的访问方法、一种配置空间的访问装置、一种处理器架构以及一种存储介质。



背景技术:

目前,uefi(中文:统一的可扩展固件接口;英文:unifiedextensiblefirmwareinterface)固件的主要功能是对主机硬件设备进行初始化并引导操作系统,pci(中文:周边元件扩展接口;英文:peripheralcomponentinterconnect)/pcie(中文:周边元件快速扩展接口;英文:peripheralcomponentinterconnectexpress)设备作为主机的重要外围设备,对pci/pcie设备进行初始化也就成为了uefi固件的重要功能之一,要进行pci/pcie设备的初始化就需要访问pci/pcie的配置空间。

uefi固件基于x86和arm平台pci/pcie设备配置空间的访问,是通过cpu提供的两组i/o寄存器访问配置空间,目前,在无内部互锁流水级的微处理器(microprocessorwithoutinterlockedpipedstages,mips)平台上不能实现利用地址空间访问pci/pcie设备配置空间。



技术实现要素:

鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种配置空间的访问方法,以通过地址空间实现对pci/pcie设备配置空间的访问。

相应的,本发明实施例还提供了一种配置空间的访问装置、一种处理器架构以及一种存储介质,用以保证上述方法的实现及应用。

为了解决上述问题,本发明实施例公开了一种配置空间的访问方法,应用于带有桥片的处理器架构,所述带有桥片的处理器架构包括处理器以及桥片,所述处理器通过端到端总线技术ht总线与所述桥片连接,在所述处理器的ht接口内部的地址窗口中预留有对应于pci/pcie设备配置空间的地址空间,所述方法包括:

利用统一的可扩展固件接口对第一驱动进行加载,所述第一驱动是通过所述处理器上预留的所述地址空间对所述pci/pcie设备配置空间进行访问的驱动;

根据所述第一驱动,安装用于对所述pci/pcie设备配置空间进行访问的访问协议;

根据所述访问协议,利用所述第一驱动实现对所述pci/pcie设备配置空间的访问操作。

可选的,在所述利用统一的可扩展固件接口对第一驱动进行加载的步骤之前,还包括:

将所述pci/pcie设备配置空间映射到所述地址空间上。

可选的,所述利用所述第一驱动,安装用于对所述pci/pcie设备配置空间进行访问的访问协议,包括:

根据所述第一驱动,启动预设的用于安装访问协议的接口;

利用所述接口,将所述访问协议安装在所述pci/pcie设备的驱动的预设句柄上。

可选的,所述根据所述访问协议,利用所述第一驱动实现对所述pci/pcie设备配置空间的访问操作,包括:

调用所述第一驱动中提供的协议实例;

根据所述协议实例,利用所述第一驱动对所述所述pci/pcie设备配置空间进行所述访问操作。

本发明实施例还公开了一种配置空间的访问装置,应用于带有桥片的处理器架构,所述带有桥片的处理器架构包括处理器以及桥片,所述处理器通过端到端总线技术ht总线与所述桥片连接,在所述处理器的ht接口内部的地址窗口中预留有对应于pci/pcie设备配置空间的地址空间,包括:

驱动加载模块,用于利用统一的可扩展固件接口对第一驱动进行加载,所述第一驱动是通过所述处理器上预留的所述地址空间对所述pci/pcie设备配置空间进行访问的驱动;

协议安装模块,用于根据所述第一驱动,安装用于对所述pci/pcie设备配置空间进行访问的访问协议;

访问操作模块,用于根据所述访问协议,利用所述第一驱动实现对所述pci/pcie设备配置空间的访问操作。

可选的,所述装置还包括:

控制映射模块,用于在所述利用统一的可扩展固件接口对第一驱动进行加载的步骤之前,将所述pci/pcie设备配置空间映射到所述地址空间上。

可选的,所述协议安装模块,包括:

接口启动子模块,用于根据所述第一驱动,启动预设的用于安装访问协议的接口;

协议安装子模块,用于利用所述接口,将所述访问协议安装在所述pci/pcie设备的驱动的预设句柄上。

可选的,所述访问操作模块,包括:

实例调用子模块,用于调用所述第一驱动中提供的协议实例;

访问操作子模块,用于根据所述协议实例,利用所述第一驱动对所述所述pci/pcie设备配置空间进行所述访问操作。

本发明实施例还公开了一种处理器架构,包括处理器、桥片、存储器以及一个或者一个以上程序,所述处理器通过端到端总线技术ht总线与所述桥片连接,在所述处理器的ht接口内部的地址窗口中预留有对应于pci/pcie设备配置空间的地址空间;所述一个或者一个以上程序存储于所述存储器中,且经配置以由所述处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:

利用统一的可扩展固件接口对第一驱动进行加载;

根据所述第一驱动,安装用于对所述pci/pcie设备配置空间进行访问的访问协议;

根据所述访问协议,利用所述第一驱动通过所述桥片上预留的所述地址空间实现对所述pci/pcie设备配置空间的访问操作。

本发明实施例还公开了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行本发明实施例中一个或多个所述的配置空间的访问方法。

本发明实施例包括以下优点:

利用统一的可扩展固件接口对第一驱动进行加载,所述第一驱动通过所述处理器上预留的所述地址空间对所述pci/pcie设备配置空间进行访问的驱动;根据所述第一驱动,安装用于对所述pci/pcie设备配置空间进行访问的访问协议;根据所述访问协议,利用所述第一驱动实现对所述pci/pcie设备配置空间的访问操作。因此,可以利用第一驱动,cpu通过其上预留的地址空间实现对pci/pcie设备配置空间的访问,从而扩展对pci/pcie设备配置空间的访问的实现方式,以保证桥片的使用。

附图说明

图1是本发明的一种配置空间的访问方法实施例的步骤流程图;

图2是本发明的一种处理器架构的结构框图;

图3是本发明的另一种配置空间的访问方法实施例的步骤流程图;

图4是一种pci/pcie配置空间的地址段含义示意图;

图5是本发明的一种配置空间的访问装置实施例的结构框图;

图6是本发明的另一种配置空间的访问装置实施例的结构框图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

本发明实施例的核心构思在于,利用第一驱动也就是地址空间访问驱动,将pci/pcie设备配置空间映射到cpu预留的地址空间上,以实现cpu利用uefi对pci/pcie设备配置空间的访问。

参照图1,示出了本发明的一种配置空间的访问方法实施例的步骤流程图,应用于带有桥片的处理器架构,带有桥片的处理器架构包括处理器以及桥片,处理器通过ht(英文:hypertransport,中文:端到端总线技术)总线与桥片连接,在处理器的ht接口内部的地址窗口中预留有对应于pci/pcie设备配置空间的地址空间,具体可以包括如下步骤:

步骤101,利用统一的可扩展固件接口对第一驱动进行加载。

其中,第一驱动是通过处理器上预留的地址空间对pci/pcie设备配置空间进行访问的驱动。

示例地,处理器基于uefi能够实现对第一驱动的加载操作,其中uefi规范是从efi(extensiblefirmwareinterface,可扩展固件接口)发展而来的,efi是intel为pc固件(或称为bios)的体系结构、接口和服务提出来的建议标准,由于uefi属于服务型协议,处理器通过启动该服务型协议中提供的服务,将该能够将通过地址空间实现对pci/pcie设备配置空间的访问的第一驱动加载在桥片上,处理器可以是mips架构的cpu,该mips架构的cpu中的ht接口内部的地址窗口中预留有对应于pci/pcie设备配置空间的地址空间,比如龙芯3a处理器,本申请对具体的处理器架构、型号不做限制,只需要该处理器中的ht接口内部的地址窗口中预留有对应于pci/pcie设备配置空间的地址空间。

基于mips平台的cpu可以通过ht总线连接桥片,在桥片上连接有各种其他设备和/或内存空间,桥片通过pci总线与pci/pcie设备连接,在pci总线上还可以连接有其他pci总线,用以扩展pci设备的个数,如图2所示框图连接方式。cpu在ht接口内部的地址窗口中预留有地址空间,其中有对应pci/pcie设备配置空间的地址空间。由于pci/pcie设备有自己的独立地址空间,这部分空间会映射到整个系统的地址空间。映射地址在bios/uefi下指定有两种类型,一种是mmio(中文:内存映射i/o;英文:memorymappingi/o),一种是i/o。一般采用i/o访问pci/pcie设备的方式,其占有的空间相比mmio非常小,大约有64k的空间。pci/pcie设备使用的空间也有两个部分,一部分称为配置空间(通过mmio);另一部分通过配置空间的bar(中文:基地址寄存器;英文:baseaddressregister)寄存器指定,是设备实现功能所需要用到的地址空间。配置空间中事务类型为读写操作类型,传送数据是指pci/pcie设备配置空间的某一单元或者从pci/pcie设备配置空间的某一个单元读数据,在pci/pcie设备中一样,用4kb的pci/pcie设备配置空间,通过配置来发现设备的功能,编程即插即用特性并检查状态。

步骤102,根据第一驱动,安装用于对pci/pcie设备配置空间进行访问的访问协议。

示例地,在安装完成第一驱动之后,利用其中的提供的对应接口实现基于uefi对pci/pcie设备配置空间进行访问的protocol(协议)在pci/pcie设备的驱动上的安装,进而实现对pci/pcie设备配置空间的访问。

步骤103,根据访问协议,利用第一驱动实现对pci/pcie设备配置空间的访问操作。

在具体应用中,安装完成第一驱动之后,再根据protocol中的实例,进行对pci/pcie设备配置空间的访问,并对应执行数据操作。

综上所述,本申请提出的技术方案,利用统一的可扩展固件接口对第一驱动进行加载,该第一驱动通过处理器上预留的地址空间对pci/pcie设备配置空间进行访问的驱动;根据第一驱动,安装用于对pci/pcie设备配置空间进行访问的访问协议;根据访问协议,利用第一驱动实现对pci/pcie设备配置空间的访问操作。因此,可以利用第一驱动,通过地址空间实现cpu对pci/pcie设备配置空间的访问,从而扩展对pci/pcie设备配置空间的访问的实现方式,以保证桥片的使用。

可选的,参照图3,示出了本发明的另一种配置空间的访问方法实施例的步骤流程图,具体可以包括如下步骤:

步骤301,将pci/pcie设备配置空间映射到地址空间上。

示例地,区别于现有的i/o寄存器的访问方式,本申请采用预留出的地址空间,将pci/pcie设备配置空间映射到该预留的地址空间上,进而能够利用第一驱动实现对pci/pcie设备配置空间的访问,也就是在步骤101之前,进行本步骤的操作。cpu使用在ht接口内部的地址窗口中预留的地址空间(0xfe_0000_0000-0xfe_1fff_ffff)来访问桥片时,每个设备的最大配置空间大小为4k字节,其中,地址的[39:28]决定配置头的类型(0xfe0是type1,0xfe1是type1);[23:16]表示总线号(busnumber);[15:11]表示设备号(devicenumber);[10:8]表示功能号(functionnumber);[27:24]和[7:0]组合表示偏移(offset),如图4中示出了cpu使用ht预留的址空间访问pci/pcie设备配置空间的地址段含义图示,需要说明的是,在ht的预留的地址空间中包括对应于pci/pcie设备配置空间的地址空间,因此cpu通过ht访问桥片,也就是将pci/pcie设备配置空间映射到在ht上预留的地址空间,进而对pci/pcie设备配置空间进行访问。

步骤302,利用统一的可扩展固件接口对第一驱动进行加载。

该步骤与图1所示的步骤101一致,此处不再赘述。

步骤3031,根据第一驱动,启动预设的用于安装访问协议的接口。

示例地,利用pci/pcie设备的驱动在模块入口函数中启用uefi提供的installprotocolinterface(协议安装接口),以实现访问协议在其上的预设句柄(handle)的安装。

步骤3032,利用接口,将访问协议安装在pci/pcie设备的驱动的预设句柄上。

示例地,通过该installprotocolinterface将protocol安装在pci/pcie设备的驱动的imagehandle上,进而使得pci/pcie设备的驱动能够调用第一驱动所提供的协议实例,进行数据访问、映射的操作。

步骤3041,调用第一驱动中提供的协议实例。

示例地,pci/pcie设备的驱动调用openprotocol获取第一驱动所提供的协议实例,进而实现对pci/pcie设备配置空间进行所述访问操作,也就是进行下一步骤。

步骤3042,根据协议实例,利用第一驱动对pci/pcie设备配置空间进行访问操作。

示例地,通过第一驱动实现对pci/pcie设备配置空间进行访问操作。

需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

参照图5,示出了本发明的一种配置空间的访问装置实施例的结构框图,应用于带有桥片的处理器架构,带有桥片的处理器架构包括处理器以及桥片,处理器通过端到端总线技术ht总线与桥片连接,在处理器的ht接口内部的地址窗口中预留有对应于pci/pcie设备配置空间的地址空间,具体可以包括如下模块:

驱动加载模块510,用于利用统一的可扩展固件接口对第一驱动进行加载,第一驱动是通过处理器上预留的地址空间对pci/pcie设备配置空间进行访问的驱动。

协议安装模块520,用于根据第一驱动,安装用于对pci/pcie设备配置空间进行访问的访问协议。

访问操作模块530,用于根据访问协议,利用第一驱动实现对pci/pcie设备配置空间的访问操作。

可选的,参照图6,示出了本发明的另一种配置空间的访问装置实施例的结构框图,具体可以包括如下模块:

控制映射模块540,用于在利用统一的可扩展固件接口对第一驱动进行加载的步骤之前,将pci/pcie设备配置空间映射到地址空间上。

可选的,协议安装模块520,包括:

接口启动子模块521,用于根据第一驱动,启动预设的用于安装访问协议的接口。

协议安装子模块522,用于利用接口,将访问协议安装在pci/pcie设备的驱动的预设句柄上。

可选的,访问操作模块530,包括:

实例调用子模块531,用于调用第一驱动中提供的协议实例。

访问操作子模块532,用于根据协议实例,利用第一驱动对pci/pcie设备配置空间进行访问操作。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本申请还提供了一种处理器架构,如图2所示,该处理器架构包括处理器、桥片、存储器以及一个或者一个以上程序,处理器通过ht总线与桥片连接,在处理器的ht接口内部的地址窗口中预留有对应于pci/pcie设备配置空间的地址空间;该一个或者一个以上程序存储于存储器中,且经配置以处理器执行一个或者一个以上程序包含用于进行以下操作的指令:

利用统一的可扩展固件接口对第一驱动进行加载;

根据第一驱动,安装用于对pci/pcie设备配置空间进行访问的访问协议;

根据访问协议,利用第一驱动通过桥片上预留的地址空间实现对pci/pcie设备配置空间的访问操作。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器,上述指令可由处理器架构中的处理器执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

一种非临时性计算机可读存储介质,当所述存储介质中的指令由终端的处理器执行时,使得终端能够执行一种配置空间的访问方法,所述方法包括:

利用统一的可扩展固件接口对第一驱动进行加载,第一驱动通过桥片上预留的地址空间对pci/pcie设备配置空间进行访问的驱动;

根据第一驱动,安装用于对pci/pcie设备配置空间进行访问的访问协议;

根据访问协议,利用第一驱动实现对pci/pcie设备配置空间的访问操作。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以预测方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种配置空间的访问方法和装置、一种电子设备以及一种储存介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1