
根据查询相关公开信息显示,结合lspci命令查看具体的BusAddres,通过这个命令,可以看到每个槽位的详细情况,可以看到Slot号和PCIEID、以及BusAddress的对应关系。
Linux通常被认为是一套 *** 作系统,实际上它是一系列Linux内核基础上开发的 *** 作系统的总称。
linux下pcie驱动开发大概可以分为4个阶段,水平从低到高:从安装使用=>linux常用命令=>linux系统编程=>内核开发阅读内核源码
系统编程推荐《高级unix环境编程》;
还有《unix网络编程》;
内核开发阅读内核源码阶段,从写驱动入手逐渐深入linux内核开发
参考书如下:
1.《linux device drivers》
2.《linux kernel development》
3.《understading the linux kernel》
4.《linux源码情景分析》
然后还需要看资料理解elf文件格式,连接器和加载器,cmu的一本教材中文名为《深入理解计算机系统》比较好。
方法如下:设备配置空间修改
修改PCIE配置空间的命令为:setpci。
NAME
setpci _ configure PCI devices
SYNOPSIS
setpci [options] devices
对于setpci命令来说,主要的参数如下:-s [[[[]:]]:][][.[]]
就是我们要指定设备,然后修改其配置空间。常用命令格式和参数如下:
setpci -s BUSID:DEVID.FUNCID REGISTEROFFSET.B=NEWVALUE
setpci -s BUSID:DEVID.FUNCID REGISTEROFFSET.W=NEWVALUE
setpci -s BUSID:DEVID.FUNCID REGISTEROFFSET.L=NEWVALUE
如:
setpci -s 0:14.0 60.B=6
是将设备0:14.0设备,PCI配置空间便宜量为0x60,写入新的字节值为6。查看PCI配置空间修改是否生效,可以通过lspci命令来查看,如设置0:14.0后,读取命令为lspci _s 0:14.0 _xxx。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)