1.1 PCI 总线介绍
外围部分互连总线PCI (Peripheral Component Interconnect) 总线,是一种先进
的高性能32/64 位地址数据复用局部总线,可同时支持多组个围设备,为中央
处理器与高速外围设备提供了一座沟通的桥梁,是现在PC 领域中流行的总线,
BIOS 对于PCI 总线的支持包括三个方面:
1. 提供分配PCI设备资源的协议
2. 提供访问PCI设备的协议
3. 枚举PCI 总线上的设备以及分配设备所需要的资源。
UEFI BIOS 如何支持PCI 总线及设备
UEFI BIOS 提供了两个主要模块来支持PCI总线,一个是PCI host bridge 控制器
驱动,另一个是PCI 总线驱动。
PCI host Bridge 控制器驱动是跟特定的平台硬件绑定的。根据系统实际I/O 空间
和memory map, 为PCI 设备指定I/O 空间和Memory 空间范围,并且产生PCI
HOST Bridge Resource Allocation 协议, 供PCI 总线驱动使用,该驱动还对
HostBridge 控制器下所有RootBridge 设备产生句柄handle, 该句柄上安装了
PciRootBridgeProtocol 。 pci 总线驱动则利用PciRootBridgeIo Protocol 枚举
系统中所有PCI 设备,发现并获得PCI 设备的Option rom, 并且调用PCI HOST
Bridge Resource Allocation 协议对PCI HostBridge Controller 进行编程。
针对UFEI 规范定义了PCI Root Bridge I/O 协议,该协议抽象了访问
RootBridge 设备下所有PCI设备的接口。PCI HOST Bridge controller 产生一个
或者多个PCI ROOT BRIDGE 设备,PCI Root Bridge 设备又产生了PCI LOCAL
BUS, host bridge controller 是一个计算北桥上的硬件组件,通过它可以访问共享
PCI I/O 和MEMORY 空间的一组PCI 设备。PCI 总线驱动使用PCI root bridge
I/O 协议 对PCI 设备的IO MEMORY 空间和配置空间进行访问。它也支持对设备
进行DMA 操作。
1.3 PCI HOST BRIDGE 控制器驱动
PCIHOSTBRIDGE 用来初始化PCI HOST BRIDGE 控制器,是PCI 总线驱动
的基础。PCIHOSTBRIDGE 驱动包括以下两个方面:
1, 提供管理和分配PCI 设备资源的协议
PciHostBridgeResourceAllocationProtocol
2. 提供访问PCI 设备的配置空间,MMIO/IO 空间的协议。