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.

[参考译文] J722SXH01EVM:device-tree:如何指定'MCU_spi0的 DMA μ`属性(用于从 A53端访问)、请?

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1519680/j722sxh01evm-device-tree-what-to-specify-dmas-property-for-mcu_spi0-for-access-from-a53-side-please

器件型号:J722SXH01EVM

工具/软件:

你好 e2e!

我从 A53端访问 mcu_spi0。 到目前为止、设置在 PIO 模式下可以正常运行、但在 DMA 模式下无法成功运行。

我应该把什么属性`dmas =`,`dma-names =`条目? `pktdma`仅适用于 main_spi0、1、2而不适用于 MCU_spi0、1可能是?  

任何提示都很感谢!

&mcu_pmx0 {
        mcu_spi0_pins_default: mcu-spi0-pins-default {
                // A9 MCU_SPI0_CLK IO SPI Clock
                // C12 MCU_SPI0_CS0 IO SPI Chip Select 0
                // A10 MCU_SPI0_CS2 IO SPI Chip Select 2
                // B12 MCU_SPI0_D0 IO SPI Data 0
                // C11 MCU_SPI0_D1 IO SPI Data 1
                pinctrl-single,pins = <
                        J722S_MCU_IOPAD(0x0008, PIN_INPUT, 0) /* (A9) MCU_SPI0_CLK IO SPI Clock */
                        J722S_MCU_IOPAD(0x000c, PIN_INPUT, 0) /* (B12) MCU_SPI0_D0 IO SPI Data 0 */
                        J722S_MCU_IOPAD(0x0010, PIN_INPUT, 0) /* (C11) MCU_SPI0_D1 IO SPI Data 1 */
                        J722S_MCU_IOPAD(0x0000, PIN_INPUT, 0) /* (C12) MCU_SPI0_CS0 IO SPI Chip Select 0 */
                >;
        };
};

&mcu_spi0 {
        status = "okay";
        #address-cells = <1>;
        #size-cells = <0>;
        pinctrl-0 = <&mcu_spi0_pins_default>;
        pinctrl-names = "default";
        /* dmas, dma-names below won't work */
//      dmas = <&main_pktdma 0xc300 0>, <&main_pktdma 0x4300 0>;
//      dma-names = "tx0", "rx0";
        spidev@0 {
                 spi-max-frequency = <24000000>;
                 reg = <0>;
                 compatible = "rohm,dh2228fv";
        };
};

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

    ... mcu_udmap assocated with `compati,j721e-navss-mcu-udmap"` is not for j722s 不是吗?

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

    尊敬的 Kenji:

    我的理解是 MCU 外设不支持 DMA。 因此、TISCI 文档中的 PSI-L 文档仅包含主域外设: https://software-dl.ti.com/tisci/esd/latest/5_soc_doc/j722s/psil_cfg.html

    但是、作为一种权 变措施、如果最终目标是让 MCU 内核提供 McSPI、则应该可以从 MCU 内核访问 MAIN 域外设。 从 MCU 域内核访问主域外设时、需要注意的主要是两者之间的电源域不同、因此如果计划执行仅 MCU 模式、在这种模式下主域断电、则主域外设也将断电且不可访问。

    此致、

    Takuma

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

    非常感谢 Takuma、非常感谢。

    我的理解是 MCU 外设不支持 DMA。

    哦、还可以。  (我有点惊讶)。  

    最终、我想使用三个 mcspi (MAIN_SPI2、MAIN_spi0和 MCU_spi0)通过评估板的用户扩展40引脚接头进行通信。 我还没有仔细研究环境的 R5 (RTOS)侧。 我想是否可以在同时从 A53驱动 MCU_spi0、直到软件的 R5端准备就绪。 所以是的,最后我宁愿希望所有这三个 mcspi 能够使用 DMA 传输,或者至少这是我们的初始计划。

    在查看 TI RTOS SDK 源代码时、我注意到如下所示的文件路径。 是否有类似 mcspi_dma_uDMa.c 之类的文件从 R5端使用 DMA? (抱歉、但此时我仍然不熟悉 SDK 的 RTOS 端)。 请提供建议。

    ti-processor-sdk-rtos-j722s-evm-10_01_00_04/mcu_plus_sdk_j722s_10_01_00_22/source/drivers/mcspi/v0/dma/udma/mcspi_dma_udma.c
    ti-processor-sdk-rtos-j722s-evm-10_01_00_04/mcu_plus_sdk_j722s_10_01_00_22/source/drivers/udma/soc/j722s/udma_soc.c
    ti-processor-sdk-rtos-j722s-evm-10_01_00_04/mcu_plus_sdk_j722s_10_01_00_22/source/drivers/makefile.j722s.mcu-r5f.ti-arm-clang


    如果 MCU_spi0上无法实现 DMA、我将从用例的角度考虑一些权变措施。 这可能仍然可以、但只是需要一些确认。

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

    尊敬的 Kenji:

    我与另外3名工程师一起了解了为 MCU 外设提供的 DMA 支持。 到目前为止、对于 J722S、硬件似乎没有支持。 我觉得这有点奇怪。

    在任何情况下、J722S SoC 本身都有3个主域 McSPI。  不过、不一定是 引脚输出到 EVM 上的40引脚接头。 如果您希望设计一个定制电路板、则应该可以将3个主域 McSPI 与 DMA 搭配使用。

    此致、

    Takuma

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

    尊敬的 Takuma:

    感谢您的跟进;帮了我很多!

    是的、我们实际上要进行定制设计。 因此、来自主域的三个 mcspi 可以正常工作。

    此致、

    Kenji