SDMMC SD_init() loops forever in a TrustZone enabled project

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

SDMMC SD_init() loops forever in a TrustZone enabled project

1,944件の閲覧回数
apercov
Contributor I

I am a noob in embedded space, so maybe I am missing something very obvious.
I am working on a project that is based on TrustZone on LPCXpresso55S69 board. Part of the project's desired functionality is enabling a persistent storage of some objects.

For that purpose I referred to the SDK sdcard_polling example. I tested it, and it works just fine. 
Then I decided to copy the code, library and configs to the project I am working on (for now, I literally just copied the code of the example).  The SD card IO shall be performed from the secure side. I initialise the SD config and run the example code from the main_s.c class (main function of the secure project).
I managed to get it building and running, however it gets stuck in an endless loop when calling SD_CardInit().

Backtrace: SD_CardInit() -> SD_SendScr -> SDMMCHOST_TransferFunction -> SDIF_TransferBlocking -> SDIF_TransferDataBlocking -> SDIF_GetInternalDMAStatus. 
SDIF_GetInternalDMAStatus return 0x400 and the execution loops inside of the SDIF_TransferDataBlocking forever. 

Not sure what other information might be relevant for this.

 

タグ(2)
0 件の賞賛
返信
2 返答(返信)

1,920件の閲覧回数
Omar_Anguiano
NXP TechSupport
NXP TechSupport

Hello

Hope you are well.
The status of 0x400 means a Bus Error. I suggest you verify that the memory used in your application is located at the secure part. A secure application does not trust an NS application.

A context of how are you implementing the Trustzone might be useful.
If you have more questions do not hesitate to ask me.

Best regards,
Omar

0 件の賞賛
返信

981件の閲覧回数
yidaen
Contributor II

Hello,

I am facing exactly the same issue mentioned in the post. I am working on a project that uses TrustZone. In this project, the secure side needs to read from an SD card.

I have already configured DMA, SDIF memory regions, and access permissions to be secure, yet the loop inside SDIF_TransferDataBlocking remains stuck, preventing the initialization process from continuing.

I have tried different TrustZone configurations, but I haven't been able to find a solution.

Is there any known fix for this issue?

Best regards,

 
0 件の賞賛
返信