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.

[参考译文] AM2634:HSM 客户端 TRNG 在上电后仅工作一次

Guru**** 2535150 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1551710/am2634-hsm-client-trng-only-works-once-after-power-up

器件型号:AM2634


工具/软件:

尊敬的 TI 团队:

我也面临同样的问题。 请检查 以下 日志 -

[HSM_CLIENT]新客户端注册的客户端 ID = 1

>
> 591021,127,2842844193,811,1501501736,650,2937302301
TRNG:591021127

>
>
[HSM_CLIENT]获取 HSM 服务器对随机数请求进行 NACK
TRNG:0

代码实现-

void init_trng(void) {

	HsmClient_register(&hsm_client, APP_CLIENT_ID);

    getRNG.DRBGMode = 0x5A;
    getRNG.seedSizeInDWords = SEED_SIZE_IN_DWORDS;
    getRNG.seedValue = (uint32_t *)&RngDrbgSeed;
    getRNG.resultLengthPtr = &rng_length;
    getRNG.resultPtr = (uint8_t *)rng_val;
}

uint32_t generate_trng(void) {
	int32_t status = SystemP_SUCCESS;

	status = HsmClient_gettRandomNum(&hsm_client, &getRNG);

	if (SystemP_SUCCESS == status) {
		UPRINTF("%u,%u,%u,%u\n\r", rng_val[0], rng_val[1], rng_val[2], rng_val[3]);
		return rng_val[0];
	} else {
		return 0;
	}
}

谢谢、
Rahul

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

    尊敬的 Rahul:

    很抱歉耽误响应。 这是在 FS 还是 HS-SE 器件上看到的吗?

    谢谢。此致、

    Nikhil Dasan

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

    你好、Nikhil、

    它用于 HS-SE 器件。 我正在使用 tifs_am263x_hs_se.release.bin 文件。

    谢谢、

    Rahul

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

    尊敬的 Rahul:

    很抱歉、专家目前已离职。 请希望下周他们回来时有回复

    谢谢您、

    Aj Favela.

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

    HSM 服务的日志示例-

    正在启动 QSPI 引导加载程序...
    kpi_data:[bootloader_profile]引导介质:NOR SPI 闪存
    kpi_data:[bootloader_profile]引导介质时钟:80.000MHz
    kpi_data:[bootloader_profile]引导映像大小:40 KB
    kpi_data:[bootloader_profile]当前核心:
    r5f0-0
    kpi_data:[bootloader profile] System_init:303us
    kpi_data:[bootloader profile] Drivers_open:83us
    kpi_data:[bootloader profile] LoadHsmRtFw:9039us
    kpi_data:【引导加载程序配置文件】Board_drivers 打开: 49us
    kpi_data:[bootloader profile] CPU load:2938us
    kpi_data:【引导加载程序配置文件】SBL end : 2384us
    kpi_data:[bootloader_profile] SBL 总用时:14799us

    图像加载完成、切换到应用程序...

    [HSM CLIENT]向 HSM 服务器发送 UID 请求。
    [HSM CLIENT]器件 UID 已成功从 HSM 服务器重试。

    [HSM client_profile] getuid 请求所用的时间:47us

    [HSM 客户端]器件 UID 为:1686C4B362F67028D5A3BBD60F298B3BDD19C18A0E6BF46D384A7F017DCB06BB5CCA50C6B9A55DD30D13FE20063C38C8A67239FB950B26DA7BD78854D55D78[HSM 客户端版本 IFS = 64 位 MCU 字符串

    [HSM 客户端] TIFS-MCU 信息
    [SoC 类型]= AM263x
    【器件类型】= FS
    [ HSM 类型]= HSM_V1
    [BIN Type]=标准
    [TIFS-MCU 版本]= 10.0.0

    RNG 输出字-- 0xB96F8BFE
    RNG 输出字-- 0x3C4EA0E6
    RNG 输出字-- 0x445E988D
    RNG 输出字-- 0x83E8656A


    [HSM CLIENT_PROFILE] GET RNG 请求所需的时间:451us

    [HSM_CLIENT]获取 HSM 服务器对随机数请求进行 NACK
    断言:0.80674s:../trng_service_app.c:HsmRngApp_start:75:status == SystemP_Success 失败!!!

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

    您好、

    很抱歉耽误你的时间。  

    您能给我分享上面的源代码吗?以便我检查 SBL 代码中调用服务的方式吗?

    谢谢。此致、

    Nikhil Dasan

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

    你好、Nikhil、

    我使用位于以下位置的 TI 示例代码:
    C:\ti\mcu_plus_sdk_am263x_10_01_00_31\examples\drivers\hsmclient\HSM_SERVICES

    在 HSM_client_app.c 文件中、调用两次函数 HsmRngApp_start (&gHSMClient);。 在第二次调用时、会发生以下错误:
    [HSM_CLIENT]获取 HSM 服务器对随机数请求进行 NACK

    /* Demo Application code on R5 */
    void HsmClientApp_start(void)
    {
        /*Function call to the desired services*/
        getUIDApp(&gHSMClient);
        getVersionApp(&gHSMClient);
        HsmRngApp_start(&gHSMClient);
    	HsmRngApp_start(&gHSMClient);
        HsmFirewallApp(&gHSMClient);
    }

    谢谢、
    Rahul

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

    尊敬的 Rahul:

    我在最后在最新的 SDK 11.0 中检查了这个问题、但这个 SDK 没有问题

    [SBL] Starting QSPI Bootloader ...
    KPI_DATA: [BOOTLOADER_PROFILE] CPU Clock        : 400.000 MHz
    KPI_DATA: [BOOTLOADER_PROFILE] Boot Media       : NOR SPI FLASH
    KPI_DATA: [BOOTLOADER_PROFILE] Boot Media Clock : 80.000 MHz
    KPI_DATA: [BOOTLOADER_PROFILE] Boot Image Size  : 39 KB
    KPI_DATA: [BOOTLOADER_PROFILE] Cores present    :
    r5f0-0
    KPI_DATA: [BOOTLOADER PROFILE] System_init                      :        540us
    KPI_DATA: [BOOTLOADER PROFILE] Drivers_open                     :         95us
    KPI_DATA: [BOOTLOADER PROFILE] Board_driversOpen                :        114us
    KPI_DATA: [BOOTLOADER PROFILE] LoadHsmRtFw                      :       9393us
    KPI_DATA: [BOOTLOADER PROFILE] CPU load                         :       6718us
    KPI_DATA: [BOOTLOADER PROFILE] SBL End                          :          3us
    KPI_DATA: [BOOTLOADER_PROFILE] SBL Total Time Taken             :      16865us
    
    [SBL] Image loading done, switching to application ...
    
     [HSM CLIENT] Sending UID Request to HSM Server..
     [HSM CLIENT] Device UID Successfully retrived from the HSM Server.
    
     [HSM CLIENT_PROFILE] Time taken by GetUID Request : 47us
    
     [HSM CLIENT] Device UID is : 5240D89758660F169881920163AC410103527C947EAE763D40897B8757EC2603E90662D275A42EEE433F8447E72E8EC912337423EC3E180C421FF4AE4BC17C52[HSM CLIENT] TIFS-MCU 64bit version string = 0x0015501000b0000
    
     [HSM CLIENT] TIFS-MCU Information
    [Soc Type]          = AM263x
    [Device Type]       = HS-FS
    [HSM Type]          = HSM_V1
    [Bin Type]          = STANDARD
    [TIFS-MCU Version]  = 11.0.0
    
    RNG output word -- 0x6349DD14
    RNG output word -- 0xDA962868
    RNG output word -- 0xC944888B
    RNG output word -- 0x817520C
    
    
     [HSM CLIENT_PROFILE] Time taken by get RNG request : 449us
    RNG output word -- 0x41D8C172
    RNG output word -- 0x71061C8C
    RNG output word -- 0xBDF8250D
    RNG output word -- 0xBFBBABD4
    
    
     [HSM CLIENT_PROFILE] Time taken by get RNG request : 448us
    Firewall request #1 status = 11111111 11111111
    Firewall Id = 12
    Firewall region number = 2
    Start Address = 0x502f0000
    End Address = 0x502f0fff
    Aid Config = 0x10
    Supervisor Read = 1
    Supervisor Write = 1
    Supervisor Execute = 1
    User Read = 1
    User Write = 1
    User Execute = 1
    Non Secure Access = 1
    Emulation = 1
    
    Firewall Id = 13
    Firewall region number = 2

    我能够在 SDK 10.1 HSFS 上重现此问题、但在 HSSE SDK 10.1 中没有问题。 对于 HSFS 固件有多个修复、这些修复从 SDK 10.1 到 SDK 11.0 大多数是日珥、包括一些防火墙修复。

    我建议在您的结尾使用最新的 SDK 如果您遇到同样的问题、请告诉我。

    谢谢。此致、

    Nikhil Dasan