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.

[参考译文] SK-AM62P-LP:将 AM62P GPMC 与 FPGA IP 内核连接:器件树、内核驱动程序和配置步骤

Guru**** 2343770 points
Other Parts Discussed in Thread: SK-AM62P-LP, AM62P
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1526477/sk-am62p-lp-interfacing-am62p-gpmc-with-fpga-ip-core-device-tree-kernel-drivers-and-configuration-steps

器件型号:SK-AM62P-LP
主题: AM62P 中讨论的其他器件

工具/软件:

大家好:

我正在处理一个使用 SK-AM62P-LP 开发套件的工程、并需要在 AM62P 的通用存储器控制器 (GPMC) 接口和 FPGA IP 内核之间建立通信。 此设置将使 AM62P 能够直接与 FPGA 中实现的逻辑交互、并将其视为外部存储器映射外设。

我正在寻找全面的指导、了解实现此沟通所需的步骤。 具体而言、我需要以下方面的建议:

  1. 器件树修改: 如何在器件树中正确配置 AM62P 的 GPMC、以识别 FPGA IP 内核并与其连接。 这包括定义存储器区域、总线时序、数据宽度和任何所需的引脚多路复用。
  2. 内核驱动程序: 现有的内核驱动程序可用于 GPMC 通信、以及为了实现有效的数据交换、是否需要自定义内核驱动程序(例如平台驱动程序或 FPGA 特定功能的驱动程序)。
  3. 配置步骤: 构建、应用和验证器件树变化所涉及的实际步骤、以及如何从 Linux 用户空间或内核空间访问 FPGA 的寄存器/存储器空间。

非常希望在 AM62P 上使用 GPMC 连接的任何相关文档、示例配置或最佳实践。

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

    尊敬的 Narendra:

    内核中具有适用于 GPMC NAND 的 k3-am62-lp-sk-nand.dtso 和 k3-am642-evm-nand.dtso DT 文件。 您可以使用它们作为配置 GPMC GPGA 的参考。

    对于 GPMC 参数、您需要参阅 AM62Px TRM GPMC 一章和 FPGA 器件数据表。

    您还可能需要引用  内核源代码 Documentation/devicetree/bindings/memory-controllers/目录下的内核器件树绑定 doc ti、gpms.yaml 和 ti、gps-child.yaml。

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

    尊敬的 Bin Liu:

    感谢您发送编修。 对k3-am62-lp-sk-nand.dtsok3-am642-evm-nand.dtso和设备树绑定文档 (,)ti,gpmc.yamlti,gpmc-child.yaml 的引用非常有用、可作为了解 GPMC 设备树配置的起点。 我一定会深入探讨 AM62Px TRM GPMC 一章和 FPGA 器件数据表、以了解参数详细信息。

    虽然 NAND 示例提供了结构参考、但我们的 FPGA IP 内核不是标准 NAND 器件。 它将实现 AM62P 需要作为存储器映射外设进行交互的自定义逻辑。 因此,我希望就如何定义 A 提供更具体的指导 通用存储器映射 FPGA IP 内核 在器件树中、具体涵盖:

    • 为自定义 FPGA IP(不一定是 NAND/NOR 闪存)定义存储器区域的优秀实践。 其中包括reg特定于通用存储器映射外设的属性和任何其他必要节点或属性。
    • 如何正确配置bus-timings以及data-widths FPGA IP 何时用作自定义外设而不是已知的存储器类型。
    • 关于最合适内核方法的指导。 ioremap在器件树配置后、从定制平台驱动程序获得一个简单的信息是否就足够了、或者内核中是否有更适合此类定制外设交互的特定 GPMC 框架/API?
    • /dev/mem如果不完全需要完整的内核驱动程序、则直接从 Linux 用户空间(例如,通过或 UIO 驱动程序)访问 FPGA 寄存器/存储器空间的示例或注意事项。

    针对您的观点和我的后续问题: 是的、从 AM62P 的 GPMC 的角度来看、FPGA 创建一个作用类似于与 NAND 或 NOR 存储器的 IP 内核确实是可行的。 GPMC 是一个灵活的并行接口、旨在与各种外部存储器等器件进行通信、包括提供兼容存储器映射接口的定制 ASIC 或 FPGA。 只要 FPGA IP 符合 GPMC 的信令和时序要求、它就可以将自身呈现为一个 AM62P 可以读取和写入的存储器区域。 然后、器件树条目将定义 AM62P 如何感知 FPGA 提供的此“存储器“并与其进行交互。 我面临的主要挑战是如何将这一总体理解映射到非 NAND/NOR FPGA 的精确器件树和内核配置。

    除了 NAND 特定示例之外、我们正在寻找更具体的示例或最佳实践来为通用自定义存储器映射 FPGA IP 配置 GPMC、以及从 Linux 与 GPMC 交互的实用步骤。

    再次感谢您的帮助。

    此致、

    Narendra Kumar Reddy

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

    尊敬的 Narendra:

    内核器件树 arch/arm/boot/dts/ti/OMAP-L55x-nano.dts 展示了如何为存储器映射器件配置 GPMC。 您也可以将其用作参考。