This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/AM5728:PCIe 问题

Guru**** 2553450 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/614511/linux-am5728-pcie-issue

器件型号:AM5728

工具/软件:Linux

你(们)好

我使用的是 AM572x 定制板。

问题:

DSP 启动后 PCIe Init 进程中的 ARM 内核出现此错误。

这种内核错误并不总是会发生。

 

以下文件是 ARM 内核错误日志。

e2e.ti.com/.../6114.PCIe_2D00_ARM-Kernel-Err.txt

 

这是正常的日志文件。

e2e.ti.com/.../1738.PCIe_2D00_ARM-Kernel-Normal.txt

 

DSP PCIe Init 过程按原样使用了 PDK 的 pcie_sample_board.c 代码。

出什么问题了?

 

 

此致、

John Kim

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    请发布完整的日志文件并详细说明您要执行的操作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Biser

    这是完整的错误日志。

    e2e.ti.com/.../1325.PCIe_2D00_ARM-Kernel-Err.txt

     

    这是正常的日志文件。

    e2e.ti.com/.../PCIe_2D00_ARM-Kernel-Normal.txt

    详细信息:

    此问题在 DSP 启动后发生。 在初始化跟踪结果 PCIe 的过程中、会在 Arm 端内核中生成错误日志。

    但是、该问题与随机问题有关。

     

    此致、

    John Kim

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、John、

    您使用的是什么 ProcSDK 版本?

    您是否已将 PCIe 设备插入电路板? 它的作用是什么?
    PCIe 不应参与解除 DSP 绑定和绑定。
    您能否禁用 PCIe 并按照相同的做法解除绑定和绑定?

    雷克斯
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Rex、

    我使用的是 pdk_am57xx_1_0_4

    它连接到 AM 5728 DSP PCIe、连接的器件在交换 ADC 数据方面起着作用。

    PCIe 根本不参与 Remote proc 的绑定/取消绑定。
    此外、即使您删除 DSP 中的 PCIe 相关例程、它也能正常工作。

    确切的问题是、ARM 端内核错误发生在 DSP 中的 PCIe 初始化过程中。

    此致、
    John Kim

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    "DSP PCIe Init 过程按原样使用了 PDK 的 PCIe_sample_board.c 代码。"

    PCIe 只能由 ARM 或 DSP 初始化、但不能同时由两者初始化。 您似乎使用 DSP 代码进行 PCIe 初始化、然后在 Linux 中需要禁用代码、我知道一些客户通过删除设备树中的 PCIe 条目来管理此操作。

    如果您决定使用 Linux 初始化 PCIe、则无法在 DSP 中再次运行它。

    此致、Eric
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    感谢您的回复!

    尽管问题尚未解决、
    我会尝试一下。

    此致、
    John Kim
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们遇到了类似的问题、并按照建议执行了操作-从 Linux 器件树中删除了 PCIe 参考。

    Gerard
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我删除了 PCIe 驱动程序。
    但是、出现了问题。
    pvrsrvkm.ko 模块的"insmod "过程中出现错误。

    insmod /lib/modules/4.4.19-rt25-gf572d285f0/extra/pvrsrvkm.ko
    pvrsrvkm:不同意符号 PCI_SAVE_STstate 的版本
    pvrsrvkm:未知符号 PCI_SAVE_STstate (错误-22)
    pvrsrvkm:不同意符号 PCI_Request_Region 的版本
    pvrsrvkm:未知符号 PCI_REQUEST_REGION (错误-22)
    pvrsrvkm:不同意符号 PCI_ENABLE_DEVICE 的版本
    pvrsrvkm:未知符号 PCI_ENABLE_DEVICE (错误-22)
    pvrsrvkm:不同意符号 PCI_CHOOE_STstate 的版本
    pvrsrvkm:未知符号 PCI_CHOOE_STstate (err -22)
    pvrsrvkm:不同意符号 PCI_get_device 的版本
    pvrsrvkm:未知符号 PCI_GET_DEVICE (错误-22)
    pvrsrvkm:不同意符号 PCI_disable_msi 的版本
    pvrsrvkm:未知符号 PCI_DISABLE_msi (错误-22)
    pvrsrvkm:不同意符号 PCI_set_power_state 的版本
    pvrsrvkm:未知符号 PCI_SET_POWER_STstate (错误-22)
    pvrsrvkm:不同意符号 PCI_enable_msi_range 的版本
    pvrsrvkm:未知符号 PCI_ENABLE_msi_range (错误-22)
    pvrsrvkm:不同意符号 PCI_clear_master 的版本
    pvrsrvkm:未知符号 PCI_CLEAR_MASTER (错误-22)
    pvrsrvkm:不同意符号 DRM_platform_init 的版本
    pvrsrvkm:未知符号 DRM_platform_init (err -22)
    pvrsrvkm:不同意符号 DRM_PUT_DEV 的版本
    pvrsrvkm:未知符号 DRM_PUT_DEV (错误-22)
    pvrsrvkm:不同意符号 PCI_RESTORE_STstate 的版本
    pvrsrvkm:未知符号 PCI_RESTORE_STstate (错误-22)
    pvrsrvkm:不同意符号 PCI_set_master 的版本
    pvrsrvkm:未知符号 PCI_SET_MASTER (错误-22)
    pvrsrvkm:不同意符号 PCI_disable_device 的版本
    pvrsrvkm:未知符号 PCI_disable_device (err -22)
    pvrsrvkm:不同意符号 DRM_platform_set_BusID 的版本
    pvrsrvkm:未知符号 DRM_platform_set_BusID (错误-22)
    pvrsrvkm:不同意符号 PCI_release_region 的版本
    pvrsrvkm:未知符号 PCI_RELEASE_REGION (错误-22)
    insmod:错误:无法插入模块/lib/modules/4.4.19-rt25-gf572d285f0/extra/pvrsrvkm.ko:参数无效


    此致、
    John Kim
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、John、

    底部的行仅在一个位置初始化 PCIe。 如果 Linux SGX 需要访问 PCIe、则应在 Linux 端初始化 PCIe。 在这种情况下、DSP 仍可以根据需要访问 PCIe。 在 DSP 端初始化 PCIe、Linux 没有有关 PCIe 的信息。

    雷克斯
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Rex、

    我有几个问题。
    在 Linux 上删除 PCI 驱动程序时会出现各种问题。
    无法使用 OMAP 远程处理器、也无法使用 PRU 内核。
    此外、QT 的 EGLFS 平台无法使用。

    问题1. 在 Linux 中使用 PCI 驱动程序时,DSP 是否可以使用 PCIe 驱动程序(已初始化)?

    问题2. 当我在 Linux 中删除"PCI 驱动程序"时、我现在不能使用"Remote Proc Driver"。
    我认为 OMAP-Remote proc 驱动程序转换为 PCI.... 不是吗?


    此致、
    John Kim
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、John、

    当 Linux 初始化 PCIe 时、DSP 不需要执行它、但可以使用它。 Linux 在虚拟地址上工作、但 DSP 可以直接访问物理地址。 一旦 Linux 设置了输入/输出限制区域、DSP 就可以访问它们。

    我认为这不是一个关于 Remoteproc 驱动程序使用 PCIe 的真实说法。 我无法从这一点中理解。

    雷克斯
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Rex、

    是 PCI 问题。 它不是 PCIe。


    Linux 中删除(非 PCIe) PCI 驱动程序会导致很多问题。
    (远程处理/ eglfs 平台等)

    我的问题是、PCI 驱动程序是否可以在 Linux 上使用、而在 DSP 上使用 PCIe 驱动程序? 。


    此致、
    John Kim

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、John、

    我看到的是 PCI 是 foundamental、而 PCIe 是 PCI 的扩展。 请看一下 drivers 目录结构。 PCI 包含 PCIe 子目录。 我不认为通过删除 PCI 驱动程序、PCIe 可以正常工作。

    我想我们建议只有一个应用初始化 PCIe、即 Linux 和 DSP 可以通过直接物理地址映射访问 PCIe 区域。

    雷克斯
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我通过构建内核内置的模块来解决这个问题。 很奇怪,但是还能用
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Yohan、

    只要内核配置发生更改、就需要重建模块。

    雷克斯