在 Linux 内核代码中调试 PCIe 开关配置

问题描述 投票:0回答:1

我正在使用 RC 和端点之间的 PCIe 交换机在 x86-64 上调试 PCIe 枚举和配置。我想在 Linux 内核中添加

printks
来观察
CONFIG 0
CONFIG 1
TLP 处理。

哪些内核源文件负责触发和处理这些TLP?

我已经查看了 drivers/pci,但需要有关精确定位代码路径的指导。任何调试技巧或相关文档的参考将不胜感激。

debugging linux-kernel pci-e
1个回答
0
投票

如果我正确理解你的问题:

  1. 内核文件:PCIe 枚举和配置通常涉及

    drivers/pci/
    目录中的文件。重要文件:

    • pci.c
      用于核心枚举逻辑。
    • setup-bus.c
      用于 PCI 总线设置。
    • access.c
      用于配置空间访问。
  2. TLP 处理:AFAIK

    CONFIG 0
    CONFIG 1
    TLP 与 PCI 配置事务相关,在特定于架构的代码中处理:
    arch/x86/

  3. 调试

    • 在相关函数中使用
      printk()
      ,例如
      pci_scan_bus()
      pci_read_config_*
    • 启用内核调试(
      CONFIG_DEBUG_KERNEL
      )和 PCI 调试日志。

相关文档:https://www.kernel.org/doc/Documentation/admin-guide/kernel-parameters.txthttps://www.kernel.org/doc/html/v5.5/ PCI/index.html

© www.soinside.com 2019 - 2024. All rights reserved.