【问题标题】:In which file enumeration of PCIe devices is located in Linux kernel for ARM based system?PCIe 设备的哪个文件枚举位于基于 ARM 的系统的 Linux 内核中?
【发布时间】:2018-03-14 07:47:33
【问题描述】:

我正在为基于 ARM 的定制平台开发 PCIe 驱动程序。作为起点,我已经开始研究 Linux 内核 4.15.9 代码。我无法找到相关的 PCIe 驱动程序文件。特别是我对 PCIe 设备枚举和配置感兴趣。在这方面的任何帮助将不胜感激。

【问题讨论】:

    标签: linux-kernel arm linux-device-driver pci-e


    【解决方案1】:

    PCIe 驱动代码分为 4 个部分。

    1 - PCIe 子系统代码

    这是负责总线扫描的通用 PCIe 子系统代码, MSI分配、BAR分配等

    路径 - 驱动程序/pci/*

    2 - PCIe 主机控制器 IP 通用代码

    这是特定于主机控制器的。这意味着对于某个主机 在一个平台中,PCIe 子系统将通过提供的 API 进行通信 通过这段代码。

    路径 - 驱动程序/pci/dwc/*
    示例 - DWC 主机
    注意 - 并非所有控制器制造商都有像 DWC 这样的单独文件夹 (概要)。

    3 - PCIe 主机控制器初始化平台特定代码

    这是特定于 PCIe IP 的,它将特定于 SoC。 每个 SoC 都有自己的芯片特定代码来初始化 控制器。所以这部分的API会被“PCIe主机”使用 通用代码”

    路径 - 驱动程序/pci/host/*

    4 - PCIe 功能

    此代码段包含 AER、DPC 等功能处理。 APM, 等等

    路径 - 驱动程序/pci/pcie/*

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-16
      • 1970-01-01
      • 2013-10-31
      • 2012-09-12
      • 1970-01-01
      相关资源
      最近更新 更多