CN112835839A - PCIe接口的设备枚举方法、装置、设备及存储介质 - Google Patents
PCIe接口的设备枚举方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112835839A CN112835839A CN202110155005.1A CN202110155005A CN112835839A CN 112835839 A CN112835839 A CN 112835839A CN 202110155005 A CN202110155005 A CN 202110155005A CN 112835839 A CN112835839 A CN 112835839A
- Authority
- CN
- China
- Prior art keywords
- pcie
- enumeration
- preset
- pcie interface
- signal
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000002360 preparation method Methods 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 9
- 238000001514 detection method Methods 0.000 claims description 9
- 230000001360 synchronised effect Effects 0.000 abstract description 7
- 238000004891 communication Methods 0.000 description 11
- 230000009471 action Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000005538 encapsulation Methods 0.000 description 6
- 230000001960 triggered effect Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000005406 washing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种PCIe接口的设备枚举方法、装置、计算机设备及计算机可读存储介质,该方法包括:PCIe设备端在开机启动的内核阶段,检测PCIe接口的物理链路状态;在物理链路状态为未建立连接时,通过PCIe接口检测预设枚举信号且保持设备枚举资源不释放,并继续完成PCIe设备端的开机启动;检测到PCIe主机端发送的预设枚举信号后,利用设备枚举资源,与PCIe主机端完成PCIe接口的枚举;本发明避免了错过PCIe设备端上电开机的枚举,便无法再完成枚举的情况;并且通过检测预设枚举信号,使PCIe主机端可以在任何时候完成同步枚举,避免了对不同主机架构的强依赖性,降低了对PCIe主机端的时序控制要求。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种PCIe接口的设备枚举方法、装置、计算机设备及计算机可读存储介质。
背景技术
随着现代社会科技的发展,计算机(PC)之间的高速通信技术得到了广泛的应用。PCIe(peripheral component interconnect express,一种高速串行计算机扩展总线标准)接口最早用于PC上的扩展插槽接口,用于高速接口的设备之间传输数据;随着5G时代的到来,为了更好的满足网络对大数据传输的需求,5G通信模块需要用到PCIe接口做数据传输,而PCIe接口的硬件特性决定了其高速通信接口的特性。
PCIe接口的硬件特性也决定了其枚举适配所需要的特定条件,由于PCIe接口是一种端对端的连接拓扑模式,所以首先要有一个对端PCIe设备;其次两个PCIe设备需要有属于自己的接口工作模式,一个PCIe设备作为PCIe主机端(Root Complex),另外一个PCIe设备作为PCIe设备端(Endpoint);最后两个PCIe设备的枚举需要有同步时序控制要求。
目前,PCIe设备端对接适配各种类型的PCIe主机端时,需要PCIe主机端发起特定的枚举时序控制信号;也就是说,PCIe设备端需要在适配PCIe主机端的时候,会依据特定的PCIe主机端的主机架构类型来调整时序的匹配问题。以高通平台5G M.2封装模块(一种5G通信模块)作为PCIe设备端为例,PCIe主机端的类型为带BIOS控制的x86架构时,PCIe设备端需要适配PCIe主机端的BIOS的总线设备扫描动作;PCIe主机端的类型是嵌入式的ARM架构时,PCIe设备端需要适配PCIe主机端的内核驱动加载时的总线设备扫描动作;PCIe主机端为一些特殊的主机时,其开机有多个阶段的分段加载,PCIe接口的上电和端口枚举不在同一个阶段,按需使用时才进行枚举。
现有技术中,PCIE接口的设备枚举如图1所示,针对特定的每种主机,要求PCIe设备端上电开机的过程中要完成设备的枚举;而错过了PCIe设备端上电开机的枚举,就释放了相应的资源(如时钟资源),无法再完成枚举,对PCIe主机端的时序要求比较高;并且每次适配不同类型的PCIe主机端时,均需要繁琐且耗时的调试,并且每一次调试的时序并不能全部兼容不同PCIe主机端的不同场景的应用,极大的增加的人力成本,且效率低。
因此,如何能够避免PCIe接口的设备枚举对不同主机架构的强依赖性,减少针对不同主机的人工调试成本,提高枚举效率,是现今急需解决问题。
发明内容
本发明的目的是提供一种PCIe接口的设备枚举方法、装置、计算机设备及计算机可读存储介质,以避免对不同主机架构的强依赖性,减少人工调试成本,提高枚举效率。
为解决上述技术问题,本发明提供一种PCIe接口的设备枚举方法,包括:
PCIe设备端在开机启动的内核阶段,检测PCIe接口的物理链路状态;
在所述物理链路状态为未建立连接时,通过所述PCIe接口检测预设枚举信号且保持设备枚举资源不释放,并继续完成所述PCIe设备端的开机启动;
检测到PCIe主机端发送的所述预设枚举信号后,利用所述设备枚举资源,与所述PCIe主机端完成所述PCIe接口的枚举。
可选的,所述PCIe设备端在开机启动的内核阶段,检测PCIe接口的物理链路状态之前,还包括:
所述PCIe设备端在预设开机启动阶段,配置设备树,选择PCIe设备端模式。
可选的,所述PCIe设备端具体为高通5G M.2封装模块时,所述预设开机启动阶段具体为开机启动的SBL阶段。
可选的,该方法还包括:
未检测到所述预设枚举信号时,按预设时间间隔检测所述物理链路状态;
在所述物理链路状态为未建立连接时,继续保持设备枚举资源不释放,并通过所述PCIe接口检测所述预设枚举信号。
可选的,该方法还包括:
在所述物理链路状态为未建立连接时,通过所述PCIe接口输出预设枚举准备信号。
可选的,所述PCIe接口输出预设枚举准备信号,包括:
将所述PCIe接口的预设信号调整为低电平;其中,所述预设枚举准备信号为低电平的所述预设信号。
可选的,所述PCIe设备端具体为高通5G M.2封装模块时,所述预设信号具体为PWAKE#信号,所述预设枚举信号具体为PERST#中断信号。
本发明还提供了一种PCIe接口的设备枚举装置,应用于PCIe设备端,包括:
链路检测单元,用于在开机启动的内核阶段,检测PCIe接口的物理链路状态;
信号检测单元,用于在所述物理链路状态为未建立连接时,通过所述PCIe接口检测预设枚举信号且保持设备枚举资源不释放,并继续完成所述PCIe设备端的开机启动;
枚举单元,用于检测到PCIe主机端发送的所述预设枚举信号后,利用所述设备枚举资源,与所述PCIe主机端完成所述PCIe接口的枚举。
本发明还提供了一种计算机设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述所述的PCIe接口的设备枚举方法的步骤。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的PCIe接口的设备枚举方法的步骤。
本发明所提供的一种PCIe接口的设备枚举方法,包括:PCIe设备端在开机启动的内核阶段,检测PCIe接口的物理链路状态;在物理链路状态为未建立连接时,通过PCIe接口检测预设枚举信号且保持设备枚举资源不释放,并继续完成PCIe设备端的开机启动;检测到PCIe主机端发送的预设枚举信号后,利用设备枚举资源,与PCIe主机端完成PCIe接口的枚举;
可见,本发明在PCIe设备端的开机启动的内核阶段检测到PCIe接口的物理链路状态为未建立连接时,通过PCIe接口检测预设枚举信号且保持设备枚举资源不释放,避免了错过PCIe设备端上电开机的枚举,便无法再完成枚举的情况;并且通过检测到PCIe主机端发送的预设枚举信号后,利用设备枚举资源,与PCIe主机端完成PCIe接口的枚举,使得PCIe主机端通过发起预设枚举信号,便可在任何时候完成同步枚举动作,避免了对不同主机架构的强依赖性,降低了对PCIe主机端的时序控制要求,减少了人工调试成本,提高了枚举效率。此外,本发明还提供了一种PCIe接口的设备枚举装置、计算机设备及计算机可读存储介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为现有技术中的PCIe接口的设备枚举方法的示意图;
图2为本发明实施例所提供的一种PCIe接口的设备枚举方法的流程图;
图3为本发明实施例所提供的一种PCIe接口的设备枚举方法的示意图;
图4为本发明实施例所提供的另一种PCIe接口的设备枚举方法的流程图;
图5为本发明实施例所提供的另一种PCIe接口的设备枚举方法的流程示意图;
图6为本发明实施例所提供的一种PCIe接口的设备枚举装置的结构框图;
图7为本发明实施例所提供的一种计算机设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图2,图2为本发明实施例所提供的一种PCIe接口的设备枚举方法的流程图。该方法可以包括:
步骤101:PCIe设备端在开机启动的内核阶段,检测PCIe接口的物理链路状态。
其中,本实施例中的PCIe设备端可以为具备有PCIe接口的PCIe设备(如5G通信模块),且该PCIe设备通过该PCIe接口与另一PCIe设备连接时,该PCIe设备作为PCIe设备端,连接的另一PCIe设备作为PCIe主机端。
具体的,对于本步骤中的PCIe设备端的具体设备类型,可以由设计人员根据实用场景和用户需求自行设置,如PCIe设备端可以为5G通信模块,如高通5G M.2封装模块,即高通5G M.2封装模块可以作为PCIe设备端完成与PCIe主机端的PCIe接口的枚举。
可以理解的是,本步骤的目的可以为PCIe设备端在开机启动的内核阶段,通过检测PCIe设备端的PCIe接口的物理链路状态,确定该PCIe接口的物理链路是否建立连接(Linkup),即是否已经完成了PCIe设备的枚举;从而在物理链路状态为建立连接时,确定PCIe主机端的时序已经适配识别到了PCIe设备端的PCIe信息,已经完成了PCIe设备的枚举;在物理链路状态为未建立连接时,确定PCIe主机端的时序未适配识别到PCIe设备端的PCIe信息。
具体的,本步骤中PCIe设备端可以在以正式软件版本开机到内核阶段时,利用内核中设置的驱动(如PCIe驱动)检测当前PCIe接口的物理链路状态;若物理链路状态为建立连接(Linkup),即已经发生了PCIe设备的枚举,则继续完成PCIe设备端的开机启动;若物理链路状态为未建立连接,可以进入步骤102。
需要说明的是,本实施例所提供的PCIe接口的设备枚举方法可以应用于PCIe设备端,即作为PCIe设备端的PCIe设备可以执行本实施例所提供的方法,与作为PCIe主机端的另一PCIe设备建立PCIe接口的物理链路连接,完成PCIe接口的枚举。对应的,本步骤之前还可以包括PCIe设备确定PICe接口工作模式;在PICe接口工作模式为PCIe设备端模式时,进入本步骤;其中,PICe接口工作模式可以为PCIe设备端模式或PCIe主机模式;
也就是说,PCIe设备可以通过确定PICe接口工作模式,确定自身是PCIe设备端,还是PCIe主机端。具体的,对于PCIe设备确定PICe接口工作模式的具体方式,可以由设计人员根据实用场景和用户需求自行设置,如可以采用与现有技术中的PICe接口工作模式确定方法相同或相似的方式实现;为了进一步方便PCIe设备确定PICe接口工作模式,本实施例中作为PCIe设备端的PCIe设备可以在开机启动的内核阶段之前的预设开机启动阶段(如SBL阶段),配置设备树,选择PCIe设备端(Endpoint)模式;通过在预设开机启动阶段增加的配置设备树过程,使作为PCIe设备端的PCIe设备可以直接确定自身为PCIe设备端。
步骤102:在物理链路状态为未建立连接时,通过PCIe接口检测预设枚举信号且保持设备枚举资源不释放,并继续完成PCIe设备端的开机启动。
可以理解的是,本步骤的目的可以为PCIe设备端在PCIe接口的物理链路状态为未建立连接,即未发现有效的PCIe设备的枚举时,通过检测PCIe接口的预设枚举信号,确定PCIe主机端当前是否需要进行PCIe设备的枚举;通过保持设备枚举资源(如时钟资源)不释放,使得后续检测到预设枚举信号时,能够快速完成枚举,避免了现有技术中PCIe主机端错过了PCIe设备端上电开机的枚举,便无法在完成枚举的情况;并且通过继续完成PCIe设备端的开机启动,保证了PCIe设备端的开机启动的正常完成,避免了PCIe设备端在开机阶段完成PCIe接口枚举的依赖性,使PCIe设备端在开机完成后依然能够进行PCIe接口的枚举。
具体的,对于本步骤中PCIe设备端通过PCIe接口检测预设枚举信号的具体方式,即PCIe接口的预设枚举信号的具体信号设置,可以由设计人员根据实用场景和用户需求自行设置,如PCIe设备端为高通5G M.2封装模块时,预设枚举信号可以具体为PERST#中断信号,即PCIe设备端可以在注册PCIe接口的PERST#中断接口,在检测到PCIe主机端通过PCIe接口发送的PERST#中断信号时,确定PCIe主机端需要进行PCIe设备的枚举。
对应的,对于本步骤中未检测到PCIe主机端发送的预设枚举信号的情况,可以等待预设时间后再次通过PCIe接口检测预设枚举信号,如按预设时间间隔检测PCIe接口的物理链路状态;在物理链路状态为未建立连接时,继续保持设备枚举资源不释放,并通过PCIe接口检测预设枚举信号,以通过定时查询PCIe接口的物理链路状态,对预设枚举信号进行定时检测;或者直接预设时间间隔通过PCIe接口检测预设枚举信号。本实施例对此不做任何限制。
进一步的,本实施例所提供的方法还可以包括在物理链路状态为未建立连接时,通过PCIe接口输出预设枚举准备信号,以通过向PCIe主机端输出预设枚举准备信号,将PCIe设备端的PCIe接口已经就绪的信息通知PCIe主机端,提醒PCIe主机端可以随时发送预设枚举信号,完成同步枚举动作。
步骤103:检测到PCIe主机端发送的预设枚举信号后,利用设备枚举资源,与PCIe主机端完成PCIe接口的枚举。
可以理解的是,本步骤中PCIe设备端可以在检测到PCIe主机端发送的预设枚举信号后,确定PCIe主机端当前需要进行PCIe设备的枚举,从而可以利用设备枚举资源,进行PCIe接口的物理链路的训练,训练完成则与PCIe主机端的PCIe接口的枚举完成。
相应的,如图3所示,PCIe主机端(PCIe主机A或PCIe主机B)可以在任何需要使用PCIe接口时通过PCIe接口发起预设枚举信号,并利用枚举的主机时序适配识别PCIe设备端的PCIe信息,完成PCIe设备的枚举,使得不同的架构类型的PCIe主机端只需要保证PCIe设备端的内核驱动枚举同步适配即可,其他时间对PCIe主机端的时序没有严格要求,即可以在PCIe主机端开机阶段完成枚举,也可以在PCIe主机端需要使用PCIe接口的时候完成枚举,灵活性增加。
具体的,本实施例中PCIe主机端可以在确定PCIe设备端已经完成枚举的准备后,再通过PCIe接口发起预设枚举信号触发PCIe接口的枚举,以保证PCIe接口的枚举成功率,例如PCIe主机端可以在通过PCIe接口接收到预设枚举准备信号后或开机启动一定时间后,再通过PCIe接口发起预设枚举信号触发PCIe接口的枚举。
本实施例中,本发明实施例在PCIe设备端的开机启动的内核阶段检测到PCIe接口的物理链路状态为未建立连接时,通过PCIe接口检测预设枚举信号且保持设备枚举资源不释放,避免了错过PCIe设备端上电开机的枚举,便无法再完成枚举的情况;并且通过检测到PCIe主机端发送的预设枚举信号后,利用设备枚举资源,与PCIe主机端完成PCIe接口的枚举,使得PCIe主机端通过发起预设枚举信号,便可在任何时候完成同步枚举动作,避免了对不同主机架构的强依赖性,降低了对PCIe主机端的时序控制要求,减少了人工调试成本,提高了枚举效率。
请参考图4,图4为本发明实施例所提供的另一种PCIe接口的设备枚举方法的流程图。该方法可以包括:
步骤201:PCIe设备端在预设开机启动阶段,配置设备树,选择PCIe设备端模式。
其中,本步骤中的预设开机启动阶段可以为预先设置的PCIe设备端的开机启动过程中的内核阶段之前的开机启动阶段。
具体的,对于本步骤中的预设开机启动阶段的具体设置,可以由设计人员根据实用场景和用户需求自行设置,如PCIe设备端为高通5G M.2封装模块时,预设开机启动阶段可以为高通5G M.2封装模块的开机启动的SBL(Second BootLoader stage,第二启动阶段)阶段,高通5G M.2封装模块以正式软件版本开机时,可以SBL阶段配置设备树,选择PCIe设备端(Endpoint)模式;如图5所示,本实施例通过在高通5G M.2封装模块的SBL阶段增加的配置设备树过程,使高通5G M.2封装模块能够确定自身可以作为PCIe设备端。
步骤202:在开机启动的内核阶段,检测PCIe接口的物理链路状态。
具体的,本步骤中PCIe设备端开机到内核阶段,可以利用内核中设置的驱动(如PCIe驱动)检测当前PCIe接口的物理链路状态;如果PCIe接口的物理链路状态为建立连接(Linkup),则可以确定已经发生了PCIe设备的枚举,即PCIe主机端的主机时序已经适配识别到PCIe设备端的PCIe信息,如作为PCIe设备端的高通5G M.2封装模块的PCIe信息。
步骤203:在物理链路状态为未建立连接时,通过PCIe接口输出预设枚举准备信号。
可以理解的是,本步骤的目的可以为PCIe设备端在检测到当前PCIe接口的物理链路状态为未建立连接,即未发现有效的PCIe设备的枚举时,控制输出PCIe接口的预设枚举准备信号,用于触发提示PCIe主机端,PCIe设备端已经就绪,等待PCIe主机端就绪后发起预设枚举信号。
具体的,对于本步骤中PCIe设备端通过PCIe接口输出预设枚举准备信号的具体方式,可以由设计人员根据实用场景和用户需求自行设置,如预设枚举准备信号可以为拉低或拉高的PCIe接口的预设信号,以常触发PCIe主机端。例如PCIe设备端可以将PCIe接口的预设信号调整为低电平,即拉低预设信号,以常触发PCIe主机端;其中,预设枚举准备信号为低电平的预设信号;相应的,PCIe主机备端可以在通过PCIe接口检测到低电平的预设信号时,确定PCIe设备端已经完成枚举的准备。预设枚举准备信号也可以为PCIe接口的预设中断信号。只要PCIe设备端可以通过PCIe接口向PCIe主机端输出预设枚举准备信号,触发提示PCIe主机端该PCIe设备端已经就绪,本实施例对此不做任何限制。
具体的,PCIe设备端为高通5G M.2封装模块时,如图5所示,上述预设信号可以具体为PCIe接口的PWAKE#信号,本步骤中高通5G M.2封装模块的内核可以驱动控制PWAKE#信号拉低,使PCIe主机端通过PCIe接口检测到拉低的PWAKE#信号后,可以确定高通5G M.2封装模块已经就绪。
步骤204:通过PCIe接口检测预设枚举信号且保持设备枚举资源不释放,并继续完成PCIe设备端的开机启动。
步骤205:检测到PCIe主机端发送的预设枚举信号后,利用设备枚举资源,与PCIe主机端完成PCIe接口的枚举。
具体的,步骤204和步骤205与步骤102和步骤103相似,在此不再赘述。
相应的,预设枚举准备信号为用于常触发PCIe主机端的拉低或拉高的PCIe接口的预设信号时,本步骤中PCIe设备端还可以停止通过PCIe接口输出预设枚举准备信号,如图5所示,预设枚举准备信号为拉低的PWAKE#信号(即预设信号)时,PCIe设备端可以检测到PCIe主机端触发的PERST#中断信号(即预设枚举信号)后,控制拉高的PWAKE#信号。
步骤206:未检测到预设枚举信号时,按预设时间间隔检测物理链路状态。
可以理解的是,本实施例中在未检测到预设枚举信号时,通过按预设时间间隔检测物理链路状态,定时检测PCIe接口的物理链路状态,从而继续在物理链路状态未建立连接时,检测PCIe接口的预设枚举信号,直至检测到PCIe主机端发送的预设枚举信号进入步骤205,完成PCIe接口的枚举。
具体的,PCIe设备端为高通5G M.2封装模块时,如图5所示,高通5G M.2封装模块可以在未检测到PCIe主机端触发的PERST#中断信号(即预设枚举信号)时,定时检测PCIe接口的物理链路状态,等待PCIe主机端触发的PERST#中断信号。
步骤207:在物理链路状态为未建立连接时,继续保持设备枚举资源不释放,通过PCIe接口输出预设枚举准备信号并检测预设枚举信号。
可以理解的是,本步骤可以为PCIe设备端在按预设时间间隔PCIe接口的检测物理链路时,每次检测到物理链路状态为未建立连接,继续保持设备枚举资源不释放,并通过PCIe接口检测预设枚举信号,等待PCIe主机端触发的PERST#中断信号,从而在检测到预设枚举信号后,进入步骤205,完成PCIe接口的枚举。
本实施例中,本发明实施例通过在物理链路状态为未建立连接时,通过PCIe接口输出预设枚举准备信号,使PCIe主机端可以通过预设枚举准备信号了解PCIe设备端的PCIe接口已经就绪的信息,保证PCIe主机端在之后的任何时候发起预设枚举信号,便可完成同步枚举动作,保证PCIe接口的枚举成功率。
相应于上面的方法实施例,本发明实施例还提供了一种PCIe接口的设备枚举装置,下文描述的PCIe接口的设备枚举装置与上文描述的PCIe接口的设备枚举方法可相互对应参照。
请参考图6,图6为本发明实施例所提供的一种PCIe接口的设备枚举装置的结构框图。该装置应用于PCIe设备端,可以包括:
链路检测单元10,用于在开机启动的内核阶段,检测PCIe接口的物理链路状态;
信号检测单元20,用于在物理链路状态为未建立连接时,通过PCIe接口检测预设枚举信号且保持设备枚举资源不释放,并继续完成PCIe设备端的开机启动;
枚举单元30,用于检测到PCIe主机端发送的预设枚举信号后,利用设备枚举资源,与PCIe主机端完成PCIe接口的枚举。
可选的,该装置还可以包括:
设备树配置单元,用于在内核阶段之前的预设开机启动阶段,配置设备树,选择PCIe设备端模式。
可选的,PCIe设备端具体为高通5G M.2封装模块时,预设开机启动阶段具体为开机启动的SBL阶段。
可选的,该装置还可以包括:
定时检测单元,用于在未检测到预设枚举信号时,按预设时间间隔检测物理链路状态;
信号等待单元,用于在物理链路状态为未建立连接时,继续保持设备枚举资源不释放,并通过PCIe接口检测预设枚举信号。
可选的,该装置还可以包括:
信号输出单元,用于在物理链路状态为未建立连接时,通过PCIe接口输出预设枚举准备信号。
可选的,信号输出单元可以具体用于将PCIe接口的预设信号调整为低电平;其中,预设枚举准备信号为低电平的预设信号。
可选的,PCIe设备端具体为高通5G M.2封装模块时,预设信号具体为PWAKE#信号,预设枚举信号具体为PERST#中断信号。
本实施例中,本发明实施例利用信号检测单元20在PCIe设备端的开机启动的内核阶段检测到PCIe接口的物理链路状态为未建立连接时,通过PCIe接口检测预设枚举信号且保持设备枚举资源不释放,避免了错过PCIe设备端上电开机的枚举,便无法再完成枚举的情况;并且通过枚举单元30检测到PCIe主机端发送的预设枚举信号后,利用设备枚举资源,与PCIe主机端完成PCIe接口的枚举,使得PCIe主机端通过发起预设枚举信号,便可在任何时候完成同步枚举动作,避免了对不同主机架构的强依赖性,降低了对PCIe主机端的时序控制要求,减少了人工调试成本,提高了枚举效率。
相应于上面的方法实施例,本发明实施例还提供了一种计算机设备,下文描述的一种计算机设备与上文描述的一种PCIe接口的设备枚举方法可相互对应参照。
请参考图7,图7为本发明实施例所提供的一种计算机设备的结构示意图。该计算机设备可以包括:
存储器D1,用于存储计算机程序;
处理器D2,用于执行计算机程序时实现上述方法实施例所提供的PCIe接口的设备枚举方法的步骤。
也就是说,上面的方法实施例所提供的PCIe接口的设备枚举方法可以应用于本实施例所提供的计算机设备;相应的,本实施例所提供的计算机设备可以具体为能够作为PCIe设备端实现PCIe接口的设备枚举功能的模块(或称模组)或包含模块的终端设备等,终端设备具体可以为移动终端和/或智能设备等,移动终端具体可以为手机、平板电脑和笔记本电脑等中的至少一种,智能设备具体可以为智能手表、智能冰箱、智能音箱、智能洗衣机和智能电视等中的至少一种,模块可以具体为2G通信模块、3G通信模块、4G通信模块和5G通信模块(如高通5G M.2封装模块)等中的至少一种。
相应于上面的方法实施例,本发明实施例还提供了一种计算机可读存储介质,下文描述的一种计算机可读存储介质与上文描述的一种PCIe接口的设备枚举方法可相互对应参照。
一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述方法实施例的PCIe接口的设备枚举方法的步骤。
该计算机可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的计算机可读存储介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、计算机设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
以上对本发明所提供的一种PCIe接口的设备枚举方法、装置、计算机设备及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种PCIe接口的设备枚举方法,其特征在于,包括:
PCIe设备端在开机启动的内核阶段,检测PCIe接口的物理链路状态;
在所述物理链路状态为未建立连接时,通过所述PCIe接口检测预设枚举信号且保持设备枚举资源不释放,并继续完成所述PCIe设备端的开机启动;
检测到PCIe主机端发送的所述预设枚举信号后,利用所述设备枚举资源,与所述PCIe主机端完成所述PCIe接口的枚举。
2.根据权利要求1所述的PCIe接口的设备枚举方法,其特征在于,所述PCIe设备端在开机启动的内核阶段,检测PCIe接口的物理链路状态之前,还包括:
所述PCIe设备端在预设开机启动阶段,配置设备树,选择PCIe设备端模式。
3.根据权利要求2所述的PCIe接口的设备枚举方法,其特征在于,所述PCIe设备端具体为高通5G M.2封装模块时,所述预设开机启动阶段具体为开机启动的SBL阶段。
4.根据权利要求1所述的PCIe接口的设备枚举方法,其特征在于,还包括:
未检测到所述预设枚举信号时,按预设时间间隔检测所述物理链路状态;
在所述物理链路状态为未建立连接时,继续保持设备枚举资源不释放,并通过所述PCIe接口检测所述预设枚举信号。
5.根据权利要求1至4任一项所述的PCIe接口的设备枚举方法,其特征在于,还包括:
在所述物理链路状态为未建立连接时,通过所述PCIe接口输出预设枚举准备信号。
6.根据权利要求5所述的PCIe接口的设备枚举方法,其特征在于,所述PCIe接口输出预设枚举准备信号,包括:
将所述PCIe接口的预设信号调整为低电平;其中,所述预设枚举准备信号为低电平的所述预设信号。
7.根据权利要求6所述的PCIe接口的设备枚举方法,其特征在于,所述PCIe设备端具体为高通5G M.2封装模块时,所述预设信号具体为PWAKE#信号,所述预设枚举信号具体为PERST#中断信号。
8.一种PCIe接口的设备枚举装置,其特征在于,应用于PCIe设备端,包括:
链路检测单元,用于在开机启动的内核阶段,检测PCIe接口的物理链路状态;
信号检测单元,用于在所述物理链路状态为未建立连接时,通过所述PCIe接口检测预设枚举信号且保持设备枚举资源不释放,并继续完成所述PCIe设备端的开机启动;
枚举单元,用于检测到PCIe主机端发送的所述预设枚举信号后,利用所述设备枚举资源,与所述PCIe主机端完成所述PCIe接口的枚举。
9.一种计算机设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的PCIe接口的设备枚举方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的PCIe接口的设备枚举方法的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110155005.1A CN112835839A (zh) | 2021-02-04 | 2021-02-04 | PCIe接口的设备枚举方法、装置、设备及存储介质 |
PCT/CN2021/114221 WO2022166170A1 (zh) | 2021-02-04 | 2021-08-24 | PCIe接口的设备枚举方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110155005.1A CN112835839A (zh) | 2021-02-04 | 2021-02-04 | PCIe接口的设备枚举方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112835839A true CN112835839A (zh) | 2021-05-25 |
Family
ID=75932005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110155005.1A Pending CN112835839A (zh) | 2021-02-04 | 2021-02-04 | PCIe接口的设备枚举方法、装置、设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112835839A (zh) |
WO (1) | WO2022166170A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113688087A (zh) * | 2021-10-25 | 2021-11-23 | 苏州浪潮智能科技有限公司 | 一种pcie设备枚举方法、***、存储介质及设备 |
CN114840465A (zh) * | 2022-05-06 | 2022-08-02 | 深圳星云智联科技有限公司 | 提高PCIe卡兼容性的方法、装置、设备及存储介质 |
WO2022166170A1 (zh) * | 2021-02-04 | 2022-08-11 | 深圳市广和通无线股份有限公司 | PCIe接口的设备枚举方法、装置、设备及存储介质 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102053852A (zh) * | 2010-12-31 | 2011-05-11 | 华为终端有限公司 | 一种数据卡及数据卡上报端口和启动的方法 |
CN103080904A (zh) * | 2010-07-28 | 2013-05-01 | 英特尔公司 | 提供多阶段锁步完整性报告机构 |
CN105335168A (zh) * | 2014-05-27 | 2016-02-17 | 阿里巴巴集团控股有限公司 | 实现操作***远程配置的***、方法及装置 |
WO2016150098A1 (zh) * | 2015-03-20 | 2016-09-29 | 中兴通讯股份有限公司 | PCIe设备和PCIe总线的管理方法及装置 |
US20160344629A1 (en) * | 2015-05-22 | 2016-11-24 | Gray Research LLC | Directional two-dimensional router and interconnection network for field programmable gate arrays, and other circuits and applications of the router and network |
CN106326160A (zh) * | 2015-06-26 | 2017-01-11 | 华为技术有限公司 | 处理***和处理方法 |
CN107111663A (zh) * | 2014-11-12 | 2017-08-29 | 赛灵思公司 | 目标为可编程集成电路的异构型多处理器程序编译 |
US20170269857A1 (en) * | 2016-03-18 | 2017-09-21 | Dell Products L.P. | METHOD TO VIRTUALIZE PCIe CONTROLLERS TO SUPPORT BOOT/HIBERNATION/CRASH-DUMP FROM A SPANNED VIRTUAL DISK |
CN108073421A (zh) * | 2016-11-10 | 2018-05-25 | 苹果公司 | 为***子***提供个体化电源控制的方法和装置 |
US10031760B1 (en) * | 2016-05-20 | 2018-07-24 | Xilinx, Inc. | Boot and configuration management for accelerators |
CN108989811A (zh) * | 2017-06-05 | 2018-12-11 | 中兴通讯股份有限公司 | 云桌面***、及其图像序列压缩编码方法和介质 |
CN109031091A (zh) * | 2018-07-16 | 2018-12-18 | 深圳市广和通无线股份有限公司 | 接口测试方法、测试***和测试夹具 |
CN109669727A (zh) * | 2018-12-12 | 2019-04-23 | 浪潮(北京)电子信息产业有限公司 | 一种服务器的配置方法、***及相关组件 |
CN110134446A (zh) * | 2019-04-18 | 2019-08-16 | 深圳市广和通无线股份有限公司 | 启动pcie设备扫描的方法 |
CN111935035A (zh) * | 2015-05-22 | 2020-11-13 | 格雷研究有限公司 | 用于现场可编程门阵列的定向二维路由器和互连网络、该路由器和网络的其他电路和应用 |
CN112231155A (zh) * | 2020-08-31 | 2021-01-15 | 深圳市广和通无线股份有限公司 | 通信模块接口测试方法、装置、计算机设备和存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180276161A1 (en) * | 2017-03-27 | 2018-09-27 | Sk Hynix Memory Solutions Inc. | PCIe VIRTUAL SWITCHES AND AN OPERATING METHOD THEREOF |
CN112835839A (zh) * | 2021-02-04 | 2021-05-25 | 深圳市广和通无线股份有限公司 | PCIe接口的设备枚举方法、装置、设备及存储介质 |
-
2021
- 2021-02-04 CN CN202110155005.1A patent/CN112835839A/zh active Pending
- 2021-08-24 WO PCT/CN2021/114221 patent/WO2022166170A1/zh active Application Filing
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103080904A (zh) * | 2010-07-28 | 2013-05-01 | 英特尔公司 | 提供多阶段锁步完整性报告机构 |
CN102053852A (zh) * | 2010-12-31 | 2011-05-11 | 华为终端有限公司 | 一种数据卡及数据卡上报端口和启动的方法 |
CN105335168A (zh) * | 2014-05-27 | 2016-02-17 | 阿里巴巴集团控股有限公司 | 实现操作***远程配置的***、方法及装置 |
CN107111663A (zh) * | 2014-11-12 | 2017-08-29 | 赛灵思公司 | 目标为可编程集成电路的异构型多处理器程序编译 |
WO2016150098A1 (zh) * | 2015-03-20 | 2016-09-29 | 中兴通讯股份有限公司 | PCIe设备和PCIe总线的管理方法及装置 |
CN106033399A (zh) * | 2015-03-20 | 2016-10-19 | 中兴通讯股份有限公司 | PCIe设备和PCIe总线的管理方法及装置 |
CN111935035A (zh) * | 2015-05-22 | 2020-11-13 | 格雷研究有限公司 | 用于现场可编程门阵列的定向二维路由器和互连网络、该路由器和网络的其他电路和应用 |
US20160344629A1 (en) * | 2015-05-22 | 2016-11-24 | Gray Research LLC | Directional two-dimensional router and interconnection network for field programmable gate arrays, and other circuits and applications of the router and network |
CN106326160A (zh) * | 2015-06-26 | 2017-01-11 | 华为技术有限公司 | 处理***和处理方法 |
US20170269857A1 (en) * | 2016-03-18 | 2017-09-21 | Dell Products L.P. | METHOD TO VIRTUALIZE PCIe CONTROLLERS TO SUPPORT BOOT/HIBERNATION/CRASH-DUMP FROM A SPANNED VIRTUAL DISK |
US10031760B1 (en) * | 2016-05-20 | 2018-07-24 | Xilinx, Inc. | Boot and configuration management for accelerators |
CN108073421A (zh) * | 2016-11-10 | 2018-05-25 | 苹果公司 | 为***子***提供个体化电源控制的方法和装置 |
CN108989811A (zh) * | 2017-06-05 | 2018-12-11 | 中兴通讯股份有限公司 | 云桌面***、及其图像序列压缩编码方法和介质 |
CN109031091A (zh) * | 2018-07-16 | 2018-12-18 | 深圳市广和通无线股份有限公司 | 接口测试方法、测试***和测试夹具 |
CN109669727A (zh) * | 2018-12-12 | 2019-04-23 | 浪潮(北京)电子信息产业有限公司 | 一种服务器的配置方法、***及相关组件 |
CN110134446A (zh) * | 2019-04-18 | 2019-08-16 | 深圳市广和通无线股份有限公司 | 启动pcie设备扫描的方法 |
CN112231155A (zh) * | 2020-08-31 | 2021-01-15 | 深圳市广和通无线股份有限公司 | 通信模块接口测试方法、装置、计算机设备和存储介质 |
Non-Patent Citations (3)
Title |
---|
HEYMIAN WONG: ""PCI Express Multi-Root Switch Reconfiguration During System Operation"", 《MASSACHUSETTS INSTITUTE OF TECHNOLOGY》, 21 June 2011 (2011-06-21), pages 1 - 67 * |
吴祥: ""基于Zynq的固态存储***设计"", 《中国优秀硕士学位论文全文数据库信息科技辑》, 15 July 2020 (2020-07-15), pages 137 - 85 * |
王琳琳: ""小型化高速记录设备的设计与实现"", 《中国优秀硕士学位论文全文数据库信息科技辑》, 15 February 2020 (2020-02-15), pages 135 - 774 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022166170A1 (zh) * | 2021-02-04 | 2022-08-11 | 深圳市广和通无线股份有限公司 | PCIe接口的设备枚举方法、装置、设备及存储介质 |
CN113688087A (zh) * | 2021-10-25 | 2021-11-23 | 苏州浪潮智能科技有限公司 | 一种pcie设备枚举方法、***、存储介质及设备 |
CN114840465A (zh) * | 2022-05-06 | 2022-08-02 | 深圳星云智联科技有限公司 | 提高PCIe卡兼容性的方法、装置、设备及存储介质 |
CN114840465B (zh) * | 2022-05-06 | 2023-08-18 | 深圳星云智联科技有限公司 | 提高PCIe卡兼容性的方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2022166170A1 (zh) | 2022-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112835839A (zh) | PCIe接口的设备枚举方法、装置、设备及存储介质 | |
US8650332B2 (en) | Method for switching working mode, USB device, and host device | |
US9557791B2 (en) | Computer device and method for converting working mode of universal serial bus connector of the computer device | |
WO2015100878A1 (zh) | 一种芯片启动方法及多核处理器芯片、存储介质 | |
KR20180017035A (ko) | 50 나노초 스파이크 필터를 위한 테스트 | |
EP2372491B1 (en) | Power lock-up setting method and electronic apparatus using the same | |
WO2023147748A1 (zh) | 一种服务器初始化智能网卡的方法、装置、设备及介质 | |
US7549009B2 (en) | High-speed PCI interface system and a reset method thereof | |
CN105550005B (zh) | 一种通过usb口进行调试升级的方法 | |
CN108153553A (zh) | 一种高端服务器启动方法、***、装置及计算机存储介质 | |
CN111813596A (zh) | 芯片重启方法、装置及计算设备 | |
US20040139442A1 (en) | Task switching system, task switching method and dsp modem | |
WO2023155363A1 (zh) | 服务器动态热备份的方法、装置、设备及存储介质 | |
CN106873968A (zh) | 一种终端显示时间的方法及*** | |
CN107729039B (zh) | 嵌入式操作***加载模式选择电路 | |
WO2023279875A1 (zh) | Bootloader启动流程的监控方法、装置、嵌入式设备及存储介质 | |
CN108388481B (zh) | Olt设备的智能看门狗电路*** | |
CN111274179A (zh) | 一种USB Hub及控制方法 | |
TWI591483B (zh) | 交換器系統 | |
CN106066835B (zh) | 适用于usb连接器的组合式芯片 | |
CN113485768B (zh) | 一种phy参数配置装置及ssd | |
TWI455027B (zh) | 多系統平台的切換方法及支援多系統平台的電子裝置 | |
WO2023087901A1 (zh) | 上电操作执行方法、装置、芯片、电子设备和计算机程序产品 | |
CN116880327A (zh) | 主备平台级联方法、装置、设备及介质 | |
CN116405387A (zh) | 一种PCIe交换机升级方法、装置、设备及存储介质 |
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 |