[发明专利]在Linux系统下支持多RC的PCIE设备动态扫描方法有效
申请号: | 201510269974.4 | 申请日: | 2015-05-25 |
公开(公告)号: | CN104820646B | 公开(公告)日: | 2018-02-16 |
发明(设计)人: | 刘勇刚;陈俊强;田运朴;朱曦 | 申请(专利权)人: | 烽火通信科技股份有限公司 |
主分类号: | G06F13/22 | 分类号: | G06F13/22 |
代理公司: | 北京捷诚信通专利事务所(普通合伙)11221 | 代理人: | 王卫东 |
地址: | 430073 湖北省*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种在Linux系统下支持多RC的PCIE设备动态扫描方法,包括系统上电,根据系统的RC控制器数目为每个RC控制器分配连续的总线号资源,遍历系统中存在的每个RC控制器,记录每个RC控制器对应的总线号信息到全局数组,并删除系统中每个RC控制器下默认的PCIE设备或者PCIE桥设备,以释放系统默认分配的资源;根据全局数组中记载的所对应的RC控制器总线号信息,并以RC控制器根总线为判断标准进行PCIE设备动态扫描或卸载。本发明通过为每个RC控制器和PCIE桥设备重新分配连续的总线号资源提高系统的可扩展性,并对直接在RC控制器根总线下的PCIE设备的扫描或卸载进行单独控制提高了系统安全性;同时通过对链接状态检测控制扫描过程增强了系统的稳定性。 | ||
搜索关键词: | linux 系统 支持 rc pcie 设备 动态 扫描 方法 | ||
【主权项】:
在Linux系统下支持多RC的PCIE设备动态扫描方法,其特征在于,包括以下步骤:在系统上电初始化时,根据系统的根组件控制器数目为每个根组件控制器分配连续的总线号资源,遍历系统中存在的每个根组件控制器,记录每个根组件控制器对应的总线号信息到全局数组,并删除系统中每个根组件控制器下默认的PCIE设备或者PCIE桥设备,以释放系统默认分配的资源;根据全局数组中记载的所对应的根组件控制器总线号信息,并以根组件控制器根总线为判断标准进行PCIE设备动态扫描或卸载;其中,进行PCIE设备动态扫描具体包括以下步骤:步骤A201、PCIE设备动态扫描开始;步骤A202、检测扫描的PCIE设备是否直接挂在根组件控制器下,如果是,执行步骤A203;否则执行步骤A205;步骤A203、检查PCIE设备物理链路的连接状态是否正常,如果链路正常,执行步骤A204;否则,返回操作失败的错误信息;步骤A204、修改内核该根组件控制器主设备的内核结构体链接状态信息标记;步骤A205、检测扫描的该PCIE设备是否为PCIE桥设备,如果是,则执行步骤A206;否则执行步骤A208;步骤A206、根据全局数组中记载的所对应的根组件控制器总线号信息,为PCIE桥设备每个下行口及其设备分配连续的总线号资源;步骤A207、以深度优先算法扫描每个下行口及其设备,并记录每个下行口及其设备的总线号信息到全局数组,然后执行步骤A209;步骤A208、扫描PCIE设备,并根据全局数组中记载的所对应的根组件控制器总线号信息为其分配总线号资源;步骤A209、PCIE设备动态扫描结束;进行PCIE设备动态卸载具体包括以下步骤:步骤A301、PCIE设备动态卸载开始;步骤A302、检测需要卸载的PCIE设备是否直接在根组件控制器根总线下面,如果是,执行步骤A303;否则,执行步骤A307;步骤A303、检测该PCIE设备是否为PCIE桥设备,如果是,执行步骤A304;否则,执行步骤A306;步骤A304、递归卸载PCIE桥设备下各个下行口设备和下行口总线资源;步骤A305、卸载PCIE桥设备和上行口总线,并释放系统分配的其他所有资源,然后执行步骤A308;步骤A306、卸载PCIE设备,释放系统分配的除了总线号以外的所有资源,然后执行步骤A308;步骤A307、直接从系统中卸载PCIE设备,并释放与PCIE设备相关的地址、中断、总线号资源,然后执行步骤A308;步骤A308、PCIE设备动态卸载结束。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烽火通信科技股份有限公司,未经烽火通信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510269974.4/,转载请声明来源钻瓜专利网。