PCIe
介绍PCIe的功能和使用方法。
模块介绍
PCIe 是一种高速串行计算机扩展总线标准。采用高速串行点对点双通道高带宽传输,所连接设备独享通道带宽。k1 共有3个PCIe控制器, 支持外接各种PCIe接口设备,包括nvme ssd, sata和wifi等。 PCIe0和USB3控制器共用一个phy硬件, 不能同时使用。应用方案上一般使用USB3, 故PCIe0较少使用。
功能介绍
Linux PCIe子系统框架包括三部分: PCIe core、PCIe控制器驱动和PCIe设备驱动。各部分主要功能如下:
1.PCIe核心
- PCIe总线的枚举, 资源分配,中断
- PCIe设备添加和删除
- PCIe设备驱动注册与注销
2.PCIe控制器驱动
- 对PCIe主机控制器进行操作
3.PCIe设备驱动
- PCIe设备驱动,如GPU、NIC和NVMe等
源码结构介绍
控制器驱动代码在drivers/pci/controller/dwc目录下:
|-- pcie-designware.c #dwc pcie驱动公共代码
|-- pcie-designware-host.c #dwc pcie主机驱动代码
|-- pcie-k1x.c #k1x pcie控制器驱动
关键特性
特性
特性 |
---|