PCI总线(国嵌笔记)

PCI驱动程序 



总线是一种传输信号的信道; 总线是连接一个或多个导体的电气连线。
总线由电气接口和编程接口组成,我们重点关注编程接口。


PCI是Peripheral Component Interconnect(外围设备互联) 的简称, 是在桌面及更大型的计算机上普遍使用的外设总线。


PCI总线具有三个非常显著的优点:
1在计算机和外设间传输数据时具有更好的性能
2能够尽量独立于具体的平台
3可以方便地实现即插即用


PCI总线依赖于一个PCI桥(是一个硬件设备)才能生成出来。


PCI总线上挂载设备数量有限


每个PCI设备由一个总线号、一个设备号和一个功能号确定。PCI规范允许一个系统最多拥有256条总线,每条总线最多带32个设备,但每个设备可以是最多8个功能的多功能板


lspci查看设备,画出PCI设备结构图




/proc/iomem描述了 系统中所有的设备I/O在内 存地址空间上的映射。我们来看地址从1G开始的第一个设备在
/proc/iomem中是如何描述的:
40000000-400003ff : 0000:00:1 f.1
这是一个PCI设备, 40000000-400003ff是它所映射的内存空间地址, 占据了 内 存地址空间 1024 bytes的位置, 
而0000:00:1 f.1则是这个PCI外设的地址,它以冒号和逗号分隔为 4个部分,
     0000:00:1 f.1
第一个16位表示域
第二个8位表示一个总线号 
第三个5位表示一个设备号 
最后是3位, 表示功能号。




    每个PCI设备都有一组固定格式的寄存器, 即配置寄存器, 配置寄存器由Linux内核中的PCI初始化代码与驱动程序共同使用 。内核在启动时负责对配置寄存器进行初始化,包括设置中断号以及I/O基址等。




00H—01 H Vendor ID 制造商标识
02H—03H Device ID 设备标识
04H—05H Command 命令寄存器
06H—07H Status 状态寄存器
08H Revision ID 版本识别号寄存器
09H—0bH Class Code 分类代码寄存器
0cH Cache Line Size CACHE行长度寄存器
0dH Latency Timer 主设备延迟时间寄存器
0eH Header Type 头标类型寄存器
0fH Bulit-in-teset Register 自测试寄存器
10H—13H Base Address Register 0 基地址寄存器0
14H—17H Base Address Register 1 基地址寄存器1
18H—1bH Base Address Register 2 基地址寄存器2
1cH—19H Base Address Register 3 基地址寄存器3
20H—23H Base Address Register 4 基地址寄存器4
24H—27H Base Address Register 5 基地址寄存器5
28H—2bH Cardbus CIS Pointer 设备总线CIS指针寄存器
2cH—2dH Subsystem Vendor ID 子设备制造商标识
2eH—2fH Subsystem Device ID 子设备标识
30H—33H Expasion ROM Base Address 扩展ROM基地址
34H—3bH ——— 保留
3cH Interrupt Line 中断线寄存器
3dH Interrupt Pin 中断引脚寄存器
3eH Min_Gnt 最小授权寄存器
3fH Max_Lat 最大延迟寄存器



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值