Search code examples
armcortex-atrustzonemicrokernel

Which board to use for using TrustZone extensions


I'm trying to find a single core ARM based board on which the TrustZone technology is enabled in order to implement a dual execution environment (rich OS next to a microkernel running "in" the TrustZone that will be my TEE). When i search on the internet, I find that the TrustZone extension is enabled on ARM Cortex A8, A9, A15. But on most boards using these processors, this extension is not enabled. Can I have the name of a board on which the TrustZone is enabled ??


Solution

  • Sorry, can't seem to comment.

    Just read the SCR. One of two things will typically happen depending upon whether you are in the Secure world or Normal world. If the read succeeds and you get a '0' for the NS-bit, you're in the Secure world. If the read fails, you are in the Normal world. The SCR is not accessible from the Normal world, so when you attempt to read it, it should results in an Undefined Instruction exception.

    If you're looking for a way to determine if you have access to the Secure world on a board before you actually purchase it, your best bet are forums and sometimes datasheets. The information is often not surrounded by neon lights unfortunately. For instance, the AM335 processor on the BBB has a section in the data sheet titled, "Secure Monitor Calls to Access CP15 Registers". It's obvious from reading this section the the Secure world is used by proprietary code and you're out of luck, but they don't ever seem to just come right out and say that. It's rather annoying. :)