Chinaunix首页 | 论坛 | 博客
  • 博客访问: 315288
  • 博文数量: 89
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 691
  • 用 户 组: 普通用户
  • 注册时间: 2015-09-20 16:58
文章分类

全部博文(89)

文章存档

2017年(1)

2016年(35)

2015年(53)

我的朋友

分类: LINUX

2015-09-29 10:13:17

PCI设备编号:
    00:00:1f.1则是一个PCI外设的地址,
    第一个16位表示域(lspci的时候没有显示出来),
    第二个8位表示一个总线编号,
    第三个5位表示一 个设备号,
    最后是3位,表示功能号。 

Lspci:
    Lspci  显示pci设备简略信息列表
    -s:指定pci设备号
    -v: 显示详细信息
    -vv: 显示更加详细的信息
    -t: 显示pci设备tree
    -x:以十六进制显示 PCI 配置空间(头64 Byte) 
    
    常用如:
    Lspci -tv
    lspci -s 04:00.0 -vv
    Lspci -v 

Setpci: 
    访问pci设备的配置空间
    setpci [<options>] (<device>+ <reg>[=<values>]*)*
    -s:指定pci设备号
    -v: 显示执行信息 
    
    显示pci配置空间的地址和意义
    setpci --dumpregs 

    查看PCI设备的reg值
    setpci -v  -s 00:02.0 VENDOR_ID+4.L
    setpci -v -s 00:02.0 F4.B  
    
    设备PCI设备的reg值
    sudo setpci -v -s 00:02.0 F4.B=FF  
    
    Lspci和setpci, 只要是标准的PCI设备, 即使该PCI设备没有驱动,也是能用的,他们都是只和PCI设备的配置空间交互, 不与PCI内存空间交互.   

PCI内存/IO地址空间访问:
    
    访问PCI映射后的系统内存地址(绝对物理地址),就能直接访问PCI的内部寄存器 根据配置空间信息, 可以知道PCI设备的系统内存地址的基址,  后再根据芯片资料描述的内部寄存器地址,就可以访问相关的PCI内存寄存器了 
 
查看系统内存地址和IO地址:
    cat /proc/iomem  可以查看系统内存地址空间的分配情况
    cat /proc/ioports  可以查看系统IO地址空间的分配情况
阅读(1698) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~