edkII pci 总线

版权声明:本文全部是胡说八道,如果你喜欢,可随意转载 https://blog.csdn.net/robinsongsog/article/details/85176187

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 空间的协议。

猜你喜欢

转载自blog.csdn.net/robinsongsog/article/details/85176187
PCI