ARM Cortex-A9 GIC interrup security issue
Posted 27 March 2012 - 10:19 AM
I a newbie in embedded programming. Currently I am developing an embedded tool
running on ARM Cortex-A9. I meet an security issue when trying to use ARM Generic Interrupt Controller (GIC).
Following is the detail describing for my issue:
A. My tool MUST running in non-secure mode. It has to catch interrupt ID 117 (only).
B. It seems that (as I investigated) a software running in non-secure mode could not access to secure registers.
Could you please confirm my understanding:
1. Is item B above right?
2. If B is wrong, could you please teach me how to do it. (access to secure registers from a non-secure software).
PS: I've just entered embedded world for 8 months. I think this issue is a little bit hard for me . Please help me.
Thank you in advance.
Posted 27 March 2012 - 10:46 AM
All interrupts default to be being "secure" - that is only handable by the Normal world. Code running in the Secure world must configure interrupt IDs as non-secure as required.
Posted 29 March 2012 - 11:51 AM
As you already seem to be in non-secure some code must have bootstrapped the system and switched it to non-secure, so I'd ask the provider of your secure world bootstrap or secure OS (if you have one).
Posted 29 March 2012 - 10:52 PM
They may have some "API" the non-secure world can use to access secure functionality in a was which doesn't kill the whole point of the secure world (like a system call in a typical OS, you can have "function calls" in to the secure world in principle), but it is entirely going to depend on the secure world software implementation.