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-AM62:在软件启用安全启动之前、从 GPMC 总线的 DMA 读取工作正常。

Guru**** 2439710 points
Other Parts Discussed in Thread: AM62A7, SK-AM62, SK-AM62A-LP

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1533176/sk-am62-dma-reading-from-gpmc-bus-works-fine-until-software-enabled-secure-boot

器件型号:SK-AM62
主题中讨论的其他器件:AM62A7、、

工具/软件:

DMA 通过 GPMC 总线从我们的 ASIC 读取数据。  然后、我们更改为已签名的引导映像并转换为 HS-SE。  应用程序将在运行几秒钟后重新启动软件。  DMA 开始了传输、完成了所需的读取次数并生成了完成中断。  但是、当 CPU 进行验证时、结果表明没有从 ASIC 读取数据。 因此 CPU 随后由于这个错误产生了一个软重启。

因此、在实施 DMA 来执行此传输之前、该代码使用 CPU 读取数据、其效率不如使用 DMA。  回到这种方法是可行的、但显然不可取。

很可能是某个位或寄存器设置不正确。  有人能告诉我我缺少什么吗?

谢谢、

Victor

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

    您好、Victor、

    我们的安全专家稍后会进行评论以要求了解更多调试信息、但我有几个问题。 您在上一个线程中提到 DMA 访问 SPI 在 HS-SE 上没有此类问题、但我现在有另一个在 QSPI 上使用 DMA 的工程、该用例在 HS-SE 器件上是否有相同的问题?

    该 DMA 是否正在访问 AM62x 或 AM62Ax 器件上的 GPMC 用例? 我失去了跟踪哪些设备用于您的所有项目。

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

    尊敬的 Bin:

    有关 QSPI 上 DMA 的好问题。  我会运行它并告诉您。  由于无法修改当前 H/W 以添加用于 GPIO 触发的 DMA 传输的逆变器、因此该开发被暂停。

    我的平台正在使用 AM62A7 器件。

    谢谢、

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

    是的、我认为您的项目使用 AM62Ax、但本主题中的“SK-AM62"使“使我感到困惑。

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

    您好、Victor、
    1/。 我们是否在这两种情况 (HS-SEA 和 FS) 上具有引导日志?
    2/。 除了签名之外、我们是否运行完全相同的 u-boot/kernel/dtb… FS 与 HS-SE?
    3。 我们能否捕获这两种情况 (HS-TIFS 和 HS-SE) 的 FS 跟踪/日志?
    https://software-dl.ti.com/processor-sdk-linux/esd/AM62AX/10_01_00/exports/docs/linux/How_to_Guides/Host/SYSFW_Trace_Parser.html
    此致、
    - Hong

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

    您好、Joseph:
    TIFS 跟踪/日志来自


    https://software-dl.ti.com/tisci/esd/latest/4_trace/trace.html#trace-uart-allocation
    是否有任何消息来自 通信量呢?
    此致、
    - Hong

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

    Hong Hong:

    感谢您的答复。 我现在在 R5 和 A53 器件树中启用了 Main UART 1 以及我上述所做的更改并重新编译了二进制文件。 我仍然没有看到任何消息。

    我还有什么遗漏吗? 同样在  board-cfg.c 中、不确定这是否重要、但 BOARDCFG_TRACE_DST_UART0 宏与 TIFS 跟踪通过 UART1 路由的文档相矛盾。

    &main_pmx0 {
        status = "okay";
        myuart1_com3_pins_default: myuart1_com3-default-pins {
    		pinctrl-single,pins = <
    			AM62AX_IOPAD(0x01ac, PIN_INPUT, 2) /* (B21) MCASP0_AFSR.UART1_RXD */
    			AM62AX_IOPAD(0x01b0, PIN_OUTPUT, 2) /* (A21) MCASP0_ACLKR.UART1_TXD */
    			AM62AX_IOPAD(0x0194, PIN_INPUT, 2) /* (C19) MCASP0_AXR3.UART1_CTSn */
    			AM62AX_IOPAD(0x0198, PIN_OUTPUT, 2) /* (B19) MCASP0_AXR2.UART1_RTSn */
    		>;
    	};
    };
    
    /* Generic serial port (COM 3) */
    &main_uart1 {
            status = "okay";
            pinctrl-names = "default";
            pinctrl-0 = <&myuart1_com3_pins_default>;
    		current-speed = <115200>;
    		u-boot,dm-spl;
    };
    
    

    谢谢、

    Joseph

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

    您好、Joseph:
    我附加了一对 AM62x TIFS 示例跟踪消息以供参考:
    - am62_8.6_sd_tifs.log:我从串行终端捕获的原始 TIFS 跟踪消息
    - am62_8.6_sd_tifs.txt:解析的 TIFS 跟踪消息

    我来保护 AM62A 板、并在它上查看 TIFS 跟踪。
    此致、
    - Hong

    e2e.ti.com/.../6378.am62_5F00_8.6_5F00_sd_5F00_tifs.log

    e2e.ti.com/.../0083.am62_5F00_8.6_5F00_sd_5F00_tifs.txt

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

    您好、Joseph:
    我当时使用 AM62A Linux SDK 10.1.0.5 进行测试、但无法从 TI 参考 SK-AM62A-LP 板上的 MAIN_UART1 捕获 TIFS 跟踪。

    该问题是由于在 AM62A u-boot 中正确配置了 MAIN_UART1 引脚多路复用设置以用于 TI 参考 SK-AM62A-LP 板。
    这是有关该问题的常见问题解答、请参考
    https://e2e.ti.com/support/processors-group/processors/f/791/t/1536049

    我建议针对您的硬件交叉检查 MAIN_UART1 引脚多路复用设置。
    此致、
    - Hong

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

    Hong Hong:

    感谢您分享日志和补丁程序。 事实证明、我们这边的问题不是 pinmux、而是我没有连接到正确的 COM 端口...  

    我附上了 hsfs 和 HSSE 设备的日志。 请注意、我必须将一些文本(如 0x4400x420002)分开、才能在脚本中正确解析。

    e2e.ti.com/.../hsfs_5F00_bootlog.txt

    e2e.ti.com/.../am62ax_5F00_tifs_5F00_hsfs.log

    e2e.ti.com/.../hsse_5F00_bootlog.txt

    e2e.ti.com/.../am62ax_5F00_tifs_5F00_hsse.log

    谢谢、

    Joseph

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

    您好、Joseph:
    很高兴知道您能够在您的电路板上捕获 TIFS 跟踪。
    让我看看随附的迹线、下周初回到您的身边。
    此致、
    - Hong

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

    您好、Joseph:
    我已经在 HS-SE 上查看了 tifs trace log、无法发现任何明显的错误。 日志似乎涵盖了初始引导过程。 我的理解是否正确?
    如果是、当 HS-SE 发生问题时、我们是否可以捕获 tifs 跟踪日志?
    此致、
    - Hong

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

    Hong Hong:

    感谢您的评分

    您是对的、日志仅涵盖引导过程。 TIFS 跟踪日志是否持续流式传输? 我认为这些日志只会在引导时输出。

    我可以尝试在 DMA 读取期间收集更多日志。

    Joseph

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

    您好、Joseph:
    是的、TIFS 跟踪通过 MAIN_UART1 端口连续转储。
    如果电路板上有 WKUP_UART0、则捕捉来自 WKUP_UART0 的 DM 固件跟踪会很有帮助。
    此致、
    - Hong

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

    Hong Hong:

    我能够在我们的应用程序崩溃时获得 TIFS 跟踪。 我捕获了多个崩溃实例、因此迹线可能有重复。

    e2e.ti.com/.../hsse_5F00_crashes_5F00_tifs.txt

    谢谢、

    Joseph

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

    您好、Joseph:
    感谢您在 HS-SE 上收集 TIFS 跟踪日志。
    我查看了 TIFS 跟踪日志、日志确实指示了从尝试访问 GPMC 数据的 DMA 触发的 FWL 违例。
    1/。 我们能否总结一下针对故障情况启用从 BCDMA 访问 GPMC 数据的更改列表?
    2/。 我们是否还可以使用相同的用例((DMA 读取 FS 数据)在 HS-GPMC 上收集 TIFS 跟踪日志?
    此致、
    - Hong

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

    Hong Hong:

    附件是从 FS 总线读取 DMA 时来自 HS-GPMC 器件的跟踪日志。

    Victor 可以帮助 您解决第一个问题。

    e2e.ti.com/.../hsfs_5F00_ok_5F00_tifs.txt

    谢谢、

    Joseph

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

    您好、Joseph:
    我们是否可以应用附加的 u-boot 补丁、并测试内核 DMA 对设置中 GPMC 数据的访问?
    顺便说一下、我无法测试补丁、因为我没有软件设置来重现问题。
    此致、
    - Hong

    e2e.ti.com/.../0001_2D00_FWL_2D00_fixup_2D00_for_2D00_DMA_2D00_access_2D00_on_2D00_gpmc.data_2D00_on_2D00_AM62A_2D00_HS_2D00_SE.patch

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

    Hong Hong:

    感谢您的补丁! 我应用了它、我们现在能够按预期从 GPMC 总线读取数据。 我们将继续监控它、但现在它看起来很好。

    您的变更摘要是什么? 看起来需要设置一些权限寄存器? 我想知道是否在某处记录了此信息、或者将来在启用安全启动时、其他功能(如 CQSPI)是否需要这种信息。

    此致、

    Joseph

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

    您好、Joseph:
    感谢您在设置中运行测试、并确认到目前为止此问题不可重现。
    我们的初步调查表明、HS-SE 上的 FWL 配置不完整、其中允许 R5/A53 等。访问 GPMC 数据、但 FWL 会阻止 DMA 访问 GPMC 数据。 FWL 问题可以通过补丁得到缓解。
    请继续使用该补丁、如果有任何变化、请告知我们...
    此致、
    - Hong

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

    Hong Hong:

    感谢您的解释!

    此致、

    Joseph

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

    Hong、

    我正在为 CQSPI 控制器编写一个驱动程序、以通过 DMA 从 ASIC 读取数据。  在 Joseph 让安全启动开始工作之前、我只能半用。 我正在等待新的 H/W 继续。 您能否验证权限设置是否允许 DMA 与 CQSPI 配合使用?

    谢谢、

    Victor

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

    您好、Victor、
    我认为内核中通过 DMA 访问 OSPI 数据可通过 Linux SDK 在 HS-SW 上运行。
    此致、
    - Hong