PCIe 设备的哪个文件枚举位于基于 ARM 的系统的 Linux 内核中?
In which file enumeration of PCIe devices is located in Linux kernel for ARM based system?
我正在为基于 ARM 的自定义平台开发 PCIe 驱动程序。作为起点,我已经开始研究 Linux 内核 4.15.9 代码。我无法找到相关的 PCIe 驱动程序文件。我对 PCIe 设备枚举和配置特别感兴趣。在这方面的任何帮助将不胜感激。
PCIe 驱动程序代码分为 4 个部分。
1 - PCIe 子系统代码
This is the generic PCIe subsystem code which takes care of Bus scan,
MSI allocation, BAR allocation, etc.
Path - driver/pci/*
2 - PCIe 主机控制器 IP 通用代码
This is specific to the host controller. That means for a certain host
in a platform, PCIe subsystem will communicate via the APIs provided
by this code.
Path - drivers/pci/dwc/*
Example - DWC host
NOTE - Not all controller manufacturer has a separate folder like DWC
(Synopsys).
3 - PCIe 主机控制器初始化平台特定代码
This is specific to the PCIe IP and it will be specific for a SoC.
Every SoC will have their own chip specific code to initialize the
controller. So the APIs in this part will be used by the "PCIe host
generic code"
Path - drivers/pci/host/*
4 - PCIe 功能
This code segment contain capabilities processing like AER, DPC. ASPM,
etc.
Path - drivers/pci/pcie/*
我正在为基于 ARM 的自定义平台开发 PCIe 驱动程序。作为起点,我已经开始研究 Linux 内核 4.15.9 代码。我无法找到相关的 PCIe 驱动程序文件。我对 PCIe 设备枚举和配置特别感兴趣。在这方面的任何帮助将不胜感激。
PCIe 驱动程序代码分为 4 个部分。
1 - PCIe 子系统代码
This is the generic PCIe subsystem code which takes care of Bus scan, MSI allocation, BAR allocation, etc.
Path - driver/pci/*
2 - PCIe 主机控制器 IP 通用代码
This is specific to the host controller. That means for a certain host in a platform, PCIe subsystem will communicate via the APIs provided by this code.
Path - drivers/pci/dwc/*
Example - DWC host
NOTE - Not all controller manufacturer has a separate folder like DWC (Synopsys).
3 - PCIe 主机控制器初始化平台特定代码
This is specific to the PCIe IP and it will be specific for a SoC. Every SoC will have their own chip specific code to initialize the controller. So the APIs in this part will be used by the "PCIe host generic code"
Path - drivers/pci/host/*
4 - PCIe 功能
This code segment contain capabilities processing like AER, DPC. ASPM, etc.
Path - drivers/pci/pcie/*