PCIe驱动

在工业场景中,可能需要用到PCIe扩展网卡,又或者通过PCIe接FPGA的PCIe EP设备等,形成SoC + FPGA设计。FPGA用于数据采集,和SoC通信可能有实时要求,昉·惊鸿-7110包含2个PCIe 2.0 host,单个PCIe2.0理论上最高支持速度可达500MB/s,在工业上应用场景广阔。因此,赛昉科技移植了PCIe驱动到RTOS端,为验证PCIe驱动, 接入了PCIe 网卡来验证RTOS上的PCIe驱动。
提示: 目前驱动只支持PCIe bus单设备的情况,暂不支持PCIe接switch下多设备驱动。
昉·星光 2上PCIe1使用M.2 Key的接口,可以通过转接线扩展为PCIe接口, 通过接RTL816X系列的PCIe网卡来验证PCIe能否正常工作,RTOS上也支持RTL816x驱动程序。在下面演示中, 可以看到RT-Thread下支持了昉·惊鸿-7110的GMAC1和RTL8161的双千兆网卡。
1. 连接PCIe驱动
下图是PCIe驱动初始化打印和RTL8161网卡初始化流程,PCIe 初始化后会扫描PCI bus上的设备,能扫描到网卡设备。RTL8161网卡驱动程序匹配到ID后会执行初始化,并且申请MSI中断,图中可见初始化并注册了GE网卡, 成功申请到了IP地址,PCIe网卡能正常工作。
2. 初始化流程
同时,双网卡均能获得IP地址和正常访问网络。
  • 获得IP地址:
    3. 获得IP地址
  • 正常工作:
    4. 正常工作