Questions tagged [trust-zone]

For question related to implementing and interfacing TrustZone secure and normal world software and the monitor mode that brokers them.

Trustzone is an architecture to allow CPU sharing in cases where a traditional dedicated 'secure CPU' may have been used. This can reduce cost, power and board space.

A TrustZone ARM core has two virtual processors with a bus control 'NS' bit to provide hardware based access control. A TrustZone CPU can switch states between two worlds referred to as 'secure' and 'normal'. The worlds strive to be independent of each other requiring minimal changes to transition from a standalone OS/firmware system.

Memory, peripherals, BUS and CPU are made aware of the world via the 'NS' bit which allows the SOC to provide access control to secrets and code on the system. Master devices such as DMA, or multi-core devices can also be TrustZone aware or the bus master can be set to provide boot time locked access.

TrustZone solutions need several components,

  1. A TrustZone CPU
  2. A secure boot mechanism
  3. Bus control
  4. Secure world software

Reference:

97 questions
34
votes
2 answers

Handling ARM TrustZones

ARM has something called TrustZone. As per ARM documentation , it gives that a process can run in Secure / Non-Secure World. What does the Secure / Non-Secure World means. Is it related to Processor executing modes or it is related to setting the…
Prabagaran
  • 903
  • 1
  • 9
  • 17
10
votes
7 answers

ARM TrustZone development

I am wondering if anyone have any information on development boards where you can utilize ARM TrustZone? I have the BeagleBoard XM which uses TI's OMAP3530 with Cortex-A8 processor that supports trust zone, however TI confirmed that they have…
MrGigu
  • 1,729
  • 3
  • 23
  • 37
7
votes
4 answers

Develop programs for Arm trust zone

How can I develop applications that use Arm's trust zone? Specifically, I want to develop a program that can save sensitive data in the secure world. Should this program run in the normal world or the secure world? I know there are trustlets in the…
jiawen
  • 1,198
  • 2
  • 17
  • 29
6
votes
1 answer

how to check if Android phone has TEE

Some features of my Android app are depending on a TEE (Trusted Execution Environment / ARM TrustZone) being present on the phone. How from my Java app can I detect if this phone has a TEE installed, and if so, what vendor's TEE it is? Thanks!
zahedimahzad
  • 95
  • 1
  • 9
5
votes
3 answers

Which ARM based development boards should I use?

I want to start a project in which I want to do authenticated boot for Android based on ARM's TrustZone technology. Which board should I use? The minimal requirements: ARM V7 instruction set USB, VGA/HDMI connectors touch-screen connectors Flash…
Jeroen
  • 727
  • 1
  • 9
  • 20
5
votes
1 answer

ARM TrustZone, connecting peripherals?

I'm currently doing some research about ARM's TrustZone, e.g. here: ARM information center. As far as I understand, with TrustZone a secure environment based on the AMBA AXI bus can be created. On ARM website it says: "This concept of secure and…
BenObi
  • 51
  • 3
5
votes
1 answer

How does Linux scheduler of OP-TEE work after switching to Secure world

I successfully run OP-TEE on QEMU and want to figure out how scheduler works. I modified the source code to get the variable jiffies right before entering Secure World and after returning to Normal World. Here is a piece of…
Hs Zhang
  • 163
  • 1
  • 8
5
votes
3 answers

How to emulate TrustZone in QEMU?

I'm trying to emulate TrustZone features in Qemu. I've found two links that seems explain this process. The First Reference doesn't attach the image kernel that supports TrustZone (where can I find it?) The Second Reference explains how can I…
Mauro Suardi
  • 73
  • 1
  • 7
5
votes
2 answers

ARM TrustZone's Secure/Normal world vs. OS's kernel/user mode or x86's Ring0/1/2/3?

I read document like this TrustZone Security Whitepaper. It describles that all resources like CPU, memory and others are divided by Secure World and Normal World. Programs in Normal World can not access resources in Secure World. You must call a…
KyL
  • 987
  • 12
  • 24
5
votes
1 answer

Svc handler to SMC call

how to write an svc handler in C to call SMC(monitor mode) instruction to switch to monitor mode for arm cortex a9? i.e from supervisor mode to monitor mode what all needs to be done in svc handler,how to write the same in C. Detailed answers…
4
votes
3 answers

TrustZone of the Cortex-M23/33 vs. TrustZone of the Cortex-A

What is the difference between the TrustZone of Cortex M23/33 and the TrustZone of Cortex A? May I start to prototype my Cortex M23 application on a Cortex A processor and then migrate to Cortex M23 when chips with this core are available?
Stefan
  • 83
  • 8
4
votes
2 answers

Client Application and Trusted Application in Trusted Execution Environment (TEE)

I am new to the TEE (Trusted Execution Environment). Can someone help me with few basic doubts? AFAIK, every Android mobile device have a separate TEE OS installed along with some predefined TA (Trusted Application) to store the secret information…
4
votes
1 answer

How to setup a TrustZone development environment

I'd like to start playing with ARM TrustZone, so I'd like to setup a development environment, unfortunatelly I have the feeling I'm still missing something, I don't know how to put everything together. This is my current picture: A SoC with a…
ruizpauker
  • 384
  • 7
  • 19
4
votes
1 answer

What is cost of context switching to secure mode (arm trustzone)

I am trying to understand the cost of switching back and forth between trusted (secure) and non-secure modes in arm. What exactly needs to happen when moving from non-secure to secure world? I know the ns bit needs to be set (based on some special…
4
votes
2 answers

How to interpret ARM's SMC calls?

I have been reading Android's kernel to see how dynamic power management for CPU cores (aka DVFS, DCVS) is being done. The code I found here makes some calls to the following function (defined here) which in turn calls the SMC assembly…
Matt
  • 796
  • 12
  • 25
1
2 3 4 5 6 7