《Linux那些事儿之我是PCI》笔记

内核版本:2.6.22

1. PCI access mode: BIOS, direct, mmconfig, any。
    BIOS mode:有的BIOS程序提供了针对PCI总线的操作,这些操作包括总线枚举,此种BIOS称为PCI BIOS;此种方式直接使用BIOS程序枚举的结果。(64位平台没有该选项) 。
    Direct mode: 内核进行PCI总线枚举过程。
    MMConfig: PCIE才用的上,PCI用不上。
    ANY: 首先尝试MMConfig、然后Direct、都失败后再尝试BIOS。

2. PCI设备配置寄存器的内容是谁写入的?
    总线枚举。
    芯片组:
        北桥+南桥。
        北桥中包含host bridge, 即RC(root complex)。
    部分信息(如vendor id、device id)固化在设备中;其他信息在总线枚举阶段,有内核酌情设置。

3. 中断
    过程:设备产生中断信号(电信号)->中断控制器->CPU->内核->中断处理程序(事先注册,与指定中断关联)。
    PIC: 只能用于一个处理器的系统;每个PIC提供8个中断线。
    APIC:
        能够处理CPU之间的中断。
        中断线数量增多至255。
        Local APIC + IO APIC。
        可通过/proc/interrupts查看系统有没有使用IO APIC。
    MSI:
        往预定义的内存地址写入预定义的消息来提出中断请求。
        PCI设备->TLP消息-> Host Bridge -> CPU-> 内核->中断处理程序。
        依赖于CONFIG_X86_LOCAL_APIC。

4. kconfig语法:Documentation/kbuild/kconfig-language.txt。

5. 源码:
    drivers/pci/Makefile; arch/x86/pci/Makefile。
    include/linux/init.h (page 902): 各个入口宏的定义。将不同的函数指针存放在.initcall.init的指定子节中

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值