Hello,
I would like to know if a Trustzone application can be interrupt driven instead of being triggered by the non-secured world (scm).
Thanks,
Fabrice.
Yes, you could have an interrupt drive task in Secure state (or a combination of interrupt and SMC driven tasks).
Most A class processors will use an interrupt controller based on the Generic Interrupt Controller (GIC) architecture. The GIC architecture has support for Secure and Non-secure interrupts, the exact details vary based on which of the spec you are using.
One of the things to consider when using Secure interrupts is their affect on the Non-secure state code. The Non-secure kernel (typically Linux) won't know about, or have visibility of, Secure interrupts. You need to consider how long you, and when, you will be in Secure state to deal with the interrupt. Could this lead you to missing a deadline in the OS?
More amazingly you can have non-secure interrupts interrupting the secure world without breaking the security.
Thanks for the answer.
Actually I am using QC processors family (8960, 8974).
So I believe that for my case I will have to load the secure app which will plug the secure interrupt (timer based).
Then the non-secure will be interrupted as it was requested by the secure world right?
Can you please tell me what document/keywords should I use to start implementing that?
Also, you had some concern about the non-secure OS when secure Int is used. In our case the processors are multi-cores so apart from some performance degradation (where one core will be stuck by tz) there should not be a real problem. Agree?
Yes I was aware of that .
Thanks!