发明名称 基于Linux实现PCIE设备热插拔的方法及装置
摘要 本发明公开了一种基于Linux实现PCIE设备热插拔的方法及装置,该方法包括:Linux系统启动后,运行应用程序,加载扫描PCIE设备的驱动,初始化PCIE SWITCH,预先为PCIE SWITCH的每个下行口分配地址空间,扫描FPGA;创建线程,通过轮询FPGA的寄存器检测到PCIE插槽有子卡插入后,为子卡供电;扫描子卡,通过访问子卡的配置空间获取其所需地址空间,并为其分配地址空间;加载子卡的驱动,启动访问程序,通过轮询FPGA的寄存器检测到PCIE插槽有子卡被拔出后,退出访问程序,并卸载拔出的子卡的驱动,为相应的PCIE插槽断电。本发明,在Linux系统启动后,预先为PCIE SWITCH的每个下行口分配地址空间,每次扫描到插入的PCIE设备时,可直接为其分配地址空间,实现了PCIE设备的热插拔功能。
申请公布号 CN105354162A 申请公布日期 2016.02.24
申请号 CN201510733115.6 申请日期 2015.11.02
申请人 烽火通信科技股份有限公司 发明人 鄢来明;尹淇;刘勇刚;陈垦
分类号 G06F13/40(2006.01)I 主分类号 G06F13/40(2006.01)I
代理机构 北京捷诚信通专利事务所(普通合伙) 11221 代理人 王卫东
主权项 基于Linux实现PCIE设备热插拔的方法,其特征在于,包括以下步骤:Linux系统启动后,运行应用程序,加载具有扫描PCIE设备功能的驱动,初始化PCIE SWITCH,预先为PCIE SWITCH的每个下行口分配地址空间,然后扫描母卡上的FPGA;创建线程,通过轮询FPGA的寄存器检测到PCIE插槽有子卡插入后,为插入的子卡供电;扫描插入的子卡,通过访问插入的子卡的配置空间来获取其所需地址空间,并为其分配地址空间;加载插入的子卡的驱动,启动访问插入的子卡的程序,通过轮询FPGA的寄存器检测到PCIE插槽有子卡被拔出后,退出访问程序,并卸载拔出的子卡的驱动,通过访问FPGA的寄存器为相应的PCIE插槽断电。
地址 430074 湖北省武汉市东湖开发区光谷创业街67号