Linux下PCIE网卡驱动(ARM<---->FPGA)开发记要

一、开发前须知

       Linux下PCIE网卡驱动开发,首先需要板卡支持PCIE功能,然后有相应的PCIE驱动,且已经编译到内核中,当然如果你是大能,只要有硬件支持,所有软件部分,你都可以自己实现~!

二、 具体开发步骤

1、先准备好Linux内核源码,编译好,支持好PCIE驱动,确保能通过lspci指令看到PCI相关信息

2、开始码代码啦

   1)先注册,创建一个PCIE设备↓,然后实现

2) 实现 xlinxk7_init_one 函数,需要再函数内部初始化PCIE设备,同时注册网络设备(我是这么干的~~),DMA初始化、中断初始化,网络设备初始化等。另外网络设备还有结构体需要初始化哦,具体可网上下载其他网卡驱动源码(什么RTL8168,DM9000等,自己看看就明白了)

如果是要一个驱动多个网卡的,也可以用我这种骚操作(未知风险极大~!),在init函数内同时注册多个网卡设备,外部的PHY就要看你用的什么,怎么分配了,我这里是FPGA,协议都是做好的~。

3) 实现xlinxk7_remove_one 函数

4)实现xlinxk7_shutdown函数

5)开始实现网卡相关函数,这里就不一一展示了,可以去参考大厂的驱动~

三、测试

  干完上面的活,那就可以开始测试了,可以插入模块,可以编入内核,看你喜欢,我这边IMX6Q的CPU,测速率大于500M时,PCIE会卡死,具体卡死原因未知,在300M左右可稳定运行,由于项目需要所以强制限速300M左右,3个网口,每个网口100M,运行一切正常,刚好够用~~。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值