
Pci_register_driver(struct pci_driver *drv)
Static struct pci_driver pci_driver= {
.name = DRV_NAME,
.id_table = pci_pci_tbl,
.probe = pci_init_one,
.remove = _devexit_p(pci_remove_one),
}
l Pci配置空间
Pci_read_config_byte/word/dword(struct pci_dev *pdev,int offset,int *value)
Pci_write_config_byte/word/dword(struct pci_dev *pdev,int offset,int *value)
l Pci的I/O和内存空间
Pci_resource_start(struct pci_dev *dev,int bar) bar的范围0-5;功能:从配置区相应寄存器得到I/O区域的基址
Pci_resource_length(struct pci_dev *dev,int bar)bar的范围0-5;功能:从配置区相应寄存器得到I/O区域的内存区域长度
Request_mem_fegion(io_base,length,name)申请I/O端口
Request_mem_region(io_base,length,name)释放I/O端口
Pci_enable_device启用设备的I/O
Pci_set_master设定设备工作在总线主设备模式
方法如下:设备配置空间修改
修改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条)