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.

[参考译文] F29H85X-F29H85x-F29H85x:当 dataLenBytes 达到 1MB 时、SOM DAES-CMAC 会挂起

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1602729/f29h85x-som-evm-f29h85x-dthe-aes-cmac-hangs-when-datalenbytes-reaches-1mb

器件型号: F29H85X-EVM-EVM SOM

尊敬的 TI 朋友:
 
我将 F29H850TU9 HSM 与 TIFS SDK 1.3 搭配使用、存在 dAES-CMAC 操作问题。
 
当用 dthe_AES_cmac_mode 调用 dthe_AES_execute () 时、当 dataLenBytes 超过 0xFFFFF(1,048,575 字节)时、该操作会挂起。 C_LENGTH_0 寄存器看起来是 32 位、因此我很困惑、为什么在 1MB 处有限制。
 
应用程序需要计算 4MB 固件映像的 CMAC。 这是已知的硬件限制、还是配置中缺少一些内容? 您能否在您的最终验证这一点?
 
此致、
Frank Yang
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 TI 朋友:
    快速更新 AES-CMAC 数据长度限制问题。
    我发现了可能的根本原因:在 dthe_AES.c 行 408 中、numBlocks 声明为 uint16_t 当 dataLenBytes 超过 0xFFFFF 时、计算值 numBlocks = dataLenBytes /16 会溢出 uint16_t 限制 (65535)。 例如、对于 1MB 数据 (0x100000)、numBlocks 变为 0x10000、包装为 0、导致硬件停止。
    我做了以下更改来修复它:
    - dthe_AES.c:第 408 行、将 numBlocks 从 uint16_t 更改为 uint32_t
    - dthe_sha.c:第 185 行和第 426 行、相同的变化
    - dma.c:第 78 行和第 204 行、函数参数更改为 uint32_t
    - dma.h:相应更新了所有 typedef 回调和函数声明
    修改后、包含 4MB CMAC 计算的测试现在正常工作。 性能看起来也不错。
    请确认这是否是正确的修复。 谢谢。
    此外、我注意到当前 syscfg-GUI 似乎不支持用于 DTHE 操作的 DMA 配置。 您是否有任何示例代码显示如何为 DAES/SHA 操作正确配置 DMA?
     
    此致、
    Frank Yang
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Frank、

    我找到了可能的根本原因:在 dthe_AES.c 行 408 中、numBlocks 声明为 uint16_t [/报价]

    感谢您的关注、我们已提交此问题、并将在将来的版本中解决此问题。

    [报价 userid=“604086" url="“ url="~“~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1602729/f29h85x-som-evm-f29h85x-dthe-aes-cmac-hangs-when-datalenbytes-reaches-1mb/6175322
    请确认这是否是正确的修复。 谢谢。
    [/报价]

    这似乎是正确的修复、因为只有数据类型限制。

    此外、我注意到当前 syscfg-GUI 似乎不支持用于 DTHE 操作的 DMA 配置。 您是否有任何示例代码显示如何为 DAES/SHA 操作正确配置 DMA?

    目前、DMA 尚未集成到 C29 的 DTHE 驱动程序中。 这也计划在未来的版本中进行。

    谢谢。此致、
    Aditya Singal

    [/quote]