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.

[参考译文] TMS320TCI6618:安全加速器中 TRNG 模块的帮助

Guru**** 2606725 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/650970/tms320tci6618-help-with-trng-module-in-the-security-accelerator

器件型号:TMS320TCI6618

大家好、我希望使用内置解决方案生成一个随机数、其中包含在安全加速器中实现的器件。 但我一直在激活它。

请注意、我正在寻找一个能够启用真正的数字发生器的解决方案。

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

    我已通知团队。 他们将直接在此处发布反馈。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请参阅 SPRUGY6B (安全加速器用户指南)的第2.14.1和4.5节。 第2.14.1节(在较高层面)介绍了 SA LLD 用于抽象4.5中所述的寄存器。 LLD 中还可能有激活 TRNG 的测试代码。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回答。 实际上、我已经阅读了安全加速器用户指南的这一部分。

    我的研究的主要目的是在独立模式下使用 TRNG 生成随机数、而不在主内核中生成。

    事实上我已经找到了 TRNG 部件的寄存器、但经过一些研究后、我发现我需要激活其电源域。
    SOW 我正在寻求一些帮助以激活它。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否熟悉在将 EVM 连接到 CCS 时执行初始化的.gel 文件? 有代码执行所有 PC 域的上电序列。 我认为它默认为所有功能加电。 在任何情况下、您都可以使用它为 PA/SA 加电。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您提供有关.get 和 PCS 域的默认状态的提示。 正如我看到的、SA LLD 处理 TRNG 及其配置、但我没有任何有关它的下载链接。 您是否有下载链接并获取 TRNG 利用率的各个部分。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我认为 SA 有些受限、您必须通过 TI FAE 为您的公司提供支持。 另一个选项是直接使用用户指南第4.5节中的寄存器信息对其进行编程。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我尝试对寄存器进行编程、但它们不显示任何更改。 实际上、我确实认为电源域已关闭、需要对.gel 进行一些确认。

    如果需要,我会为您发布代码示例:

    struct Trng{
    unsigned long int lsw;
    unsigned long int msw;
    unsigned long int status;
    unsigned long int reserved;
    unsigned long
    int 控件;
    unsigned long int config;
    };
    
    int count=0;
    unsigned long int 结果;
    unsigned long int lastResult = NULL;
    volatile Trng* ptr =(Trng *) 0x020e4000;
    volatile long int * cmd_status =(long int *) 0x020C0008;
    volatile long int * PDSTAT2 =(long int *) 0x02350208;
    volatile long int * PDCTL2 =(long int *) 0x02350308;
    LM (LE、"TRNG start"=(long int *)、%02350208
    
    );volatile lw_sw-lw_sw/print/lw./lw./lw./lw.sw-sw/lw./print/lw.
    
    LM (LE、"TRNG-content_Without_conf msw %08x"、 ptr ->msw);
    LM (LE、"TRNG-content_Without_conf status %08x"、ptr -> status);
    LM (LE、 "Trng-content_without conf intack %08x"、ptr->intack);
    LM (LE、"TRNG-content_without _conf control %08x"、ptr-> control);
    LM (LE、"cmd_status config %08x"、* cmd_status);
    
    //启用 TRNG 模块
    * cmd_status |= 0x8;
    LM (LE、"cmd_status config_edited %08x"、* cmd_status);
    
    //在 Trng config
    ptr->config = static_cast 中设置最大和最小重填周期 (0x8200);
    
    //配置
    中的启动命令 ptr->control = static_cast (0x10001);
    
    //打印 curent config
    LM (LE、"TRNG-content_conf control %08x"、PTR->control);
    LM (LE、"TRNG-content_conf config %08x"、 ptr ->配置);
    while (count < 10)
    {
    if (ptr -> status = 0x00000001)
    {
    Result = ptr -> msw;
    LM (LE、"test TRNG:%d"、Result);
    if (results = lastResult)
    {
    LM (LE、"same TRNG 2次:\n %d %d "、lastResult)
    
    
    
    
    
    
    ;}r = 0x0000Result;}结果= 0x0000Result;}
    
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我仍在寻找有关我的项目的一些帮助。 您是否收到了我尝试使用寄存器对其进行编程的任何提示?