-
Bug
-
Resolution: Fixed
-
High
-
PDK
-
PDK-13500
-
PROCESSOR_SDK_09.00.00
-
PROCESSOR_SDK_09.02.00
-
Description
The API Sciclient_serviceSecureProxy present in sciclient.c, enables gSciclient_writeInProgress flag at around line no 816 and and disables this flag at around line no 912. But the message is still being accessed from line 930 to 961. So if this flag is disabled, this message is still not accessed and processed and from some other core or local mcu1-0 core calls this API
Sciclient_serviceSecureProxy, then the message can potentially cleaned out in Sciclient_flush API at line 931, causing message failure for the first message.
This issue is observed on TDA4AHP, where there two VPAC running on mcu2_0 and mcu4_0. When they are trying to initialize DMA channels, sometimes the DMA initialization fails.
Workaround
In order to fix this issue, below code must be moved to line 961, so that message is accessed and processed before being accessed by the other thread.
key = HwiP_disable();
gSciclient_writeInProgress = 0U;
HwiP_restore(key);