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.

AM62A7: Am62ax: Multiple consecutive communication issues between hsm and DM r5

Part Number: AM62A7

Tool/software:

Hi TI

I have a  question related to the Secure Proxy configuration and HSM on the AM62A platform.

According to the instructions in build.txt of HSM-care_package_kit-v00.08.00, we have successfully run the example program of hsm_IPC and achieved communication between DM r5 and hsm.
After reading the code, we learned that communication is conducted through a secure proxy
However, we modified the code in hsm.IPC in an attempt to make DM r5 and hsm communicate continuously twice, but the second time the communication card is waiting for the reply. What is the reason for this? Is there a solution? I sincerely hope you can provide guidance.

Problem screenshot

 

The first communication was normal, but the second one got stuck waiting for a reply

 

 

Do we need to modify any code on the HSM side? What is the mechanism of multiple communications? Do you have any reference instructions? Sincerely hope for your reply

Best regard

jiang

 

  • Hello,

    Let me try this once on my end today and get back to you.

    Thanks!

  • Hello,

    It seems like the issue is caused by the crypto unit tests performed in the HSM main function. Possibly, this disables the interrupts and so the R5F to HSM interrupt is not serviced the second time.

    You may apply the following patch and see if the communication is successful the second time:

    diff --git a/hsm-care-package/app/src/main.c b/hsm-care-package/app/src/main.c
    index b9a07f8..3bf4ced 100644
    --- a/hsm-care-package/app/src/main.c
    +++ b/hsm-care-package/app/src/main.c
    @@ -84,11 +84,11 @@ void main(void)
     	TRACE_info("\n#############  START OF HSM HMAC SHA Example DEMO    ############## \n");
     
     
    -	if (err == 0) {
    -		err = hs_security_early_init_hsm();
    -
    -		err = sa2ul_crypto_unittest();
    -	}
    +	// if (err == 0) {
    +	// 	err = hs_security_early_init_hsm();
    +	//
    +	// 	err = sa2ul_crypto_unittest();
    +	// }
     
     	if (err != 0) {
     		err = -EFAIL;
    

    Regards,

    Prashant