Hi Chris,
NSCE interfaces are exported as functions which can be called by NS applications directly.
When the exported functions are called by NS apps, there is no chance to route to the RTOS kernel.
One of the possible choices is to call NSCE API from RTOS kernel. So that RTOS kernel can directly pass the current NS client ID to secure world. And that’s the reason why secure code is required
– to wait for call from RTOS kernel and update the NS client ID in secure world.
In the origin design, NSCE adds specific support on diverse use scenarios. But seems they are in little use, so later we can simplify the logic of NSCE.
Best regards,
Xinyu