我正在为基于ARM的自定义平台开发PCIe驱动程序。作为起点,我开始研究Linux内核4.15.9代码。我无法找到相关的PCIe驱动程序文件。特别是我对PCIe设备枚举和配置感兴趣。在这方面的任何帮助将不胜感激。
答案 0 :(得分:0)
PCIe驱动程序代码分为4部分。
1 - PCIe子系统代码
这是负责总线扫描的通用PCIe子系统代码, MSI分配,BAR分配等
路径 - 驱动程序/ pci / *
2 - PCIe主机控制器IP通用代码
这是主机控制器特有的。这意味着对某个主持人 在平台中,PCIe子系统将通过提供的API进行通信 通过此代码。
路径 - drivers / pci / dwc / *
示例 - DWC主机
注 - 并非所有控制器制造商都有一个单独的文件夹,如DWC (Synopsys公司)。
3 - PCIe主机控制器初始化平台特定代码
这是针对PCIe IP的,它将特定于SoC。 每个SoC都有自己的芯片专用代码来初始化 控制器。因此,“PCIe主机”将使用此部分中的API 通用代码“
路径 - drivers / pci / host / *
4 - PCIe功能
此代码段包含AER,DPC等功能处理。 ASPM, 等
路径 - drivers / pci / pcie / *