Bios实习 学习篇- 5.PCIe学习(2)
1.PCI I/O Protocol
核心概念
PCI I/O Protocol 是 UEFI 中访问 PCI 设备的标准接口,它抽象了 PCI 配置空间、内存空间和 I/O 空间的读写操作,使上层驱动无需关心底层硬件细节。每个 PCI 功能(Function)对应一个 PCI I/O Protocol 实例,安装在单独的 Handle 上。
常用操作示例
2.PCI Bus Driver 深度解析
核心职责
- PCI 总线枚举:扫描所有 PCI 总线、设备和功能
- 资源分配:为设备分配总线号、内存和 I/O 资源
- 协议安装:为每个 PCI 功能安装 PCI I/O Protocol
- 设备管理:处理 PCI 设备的启动、停止和热插拔
PCI 枚举详细步骤
步骤 1:扫描总线,发现设备
产出:构建出完整的设备树(Bus0 → Device5 → Function0)
步骤2:读取设备的资源需求(BAR)
产出:知道每个设备需要多少 Memory Space、IO Space、Prefetchable Memory
步骤 3:分配地址资源(这就是"地址分配")
产出:每个设备的 BAR 都被赋予了真实的系统地址
步骤 4:配置中断、设置命令寄存器
步骤 5:为设备创建 Handle 并安装 Protocol
产出:设备可以在 UEFI Shell 中通过 devices 命令看到了!