CAAM concurrent access on MIMXRT1176

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

CAAM concurrent access on MIMXRT1176

跳至解决方案
1,184 次查看
jacquessamoun
Contributor I

Hello,

my application is based on MIMXRT1176 and uses Bluetooth (external chip) thru the SDK Zephyr bluetooth library (SDK version 2.13.1). The BT library uses CAAM by default, and everything is working perfectly, as far as BT is concerned.

The problem is that, my own application code needs to use mbedtls for some encryption and CERT operations. As soon as i use the (for example)

mbedtls_ctr_drbg_seed()
 
it would hang on CAAM_wait in the underlying CAAM driver .... i am guessing that, both BT and my code want to use jobring0, so there is a conflict. Indeed, is that is the case, i even should not need to initialise CAAM in my code, as this is alreday done in BT
 
Is there a clean way to allow 2 entities (among them a library, that i cannot modify) to use the same CAAM concurrently thru a high level API, like mbedtls  ?
I must be missing something, as this sounds like a trivial and common use case, but I could not find any way of doing so far, neither some relevant instructions in the SDK doc.
Any help greatly appreciated,
Jacques
0 项奖励
回复
1 解答
1,152 次查看
Omar_Anguiano
NXP TechSupport
NXP TechSupport

It is suggested to use a second job ring, if CAAM was already initialized before then it should not be initialized again. Unfortunately, there not exist  a library, however you can make handles and variables extern so they can be used on different sides.

Best regards,
Omar

在原帖中查看解决方案

0 项奖励
回复
2 回复数
1,121 次查看
jacquessamoun
Contributor I

Hi Omar, thanks for the support

actually i didn't plan to modify the mbedtls stuff and pull it in as is in my project.

Now it seems that this needs to be internalised into my project and modified. Is that what you

suggest ?

Thanks,

Jacques

0 项奖励
回复
1,153 次查看
Omar_Anguiano
NXP TechSupport
NXP TechSupport

It is suggested to use a second job ring, if CAAM was already initialized before then it should not be initialized again. Unfortunately, there not exist  a library, however you can make handles and variables extern so they can be used on different sides.

Best regards,
Omar

0 项奖励
回复