I am confused with the terms and software packages related to ARM-A profile embedded systems. Could anyone explain the relation between ATF (Arm Trusted Firmware), OP-TEE, Secure World and TEE (Trusted Execution Environment)? Are ATF and OP-TEE interchangeable, maybe partly? What is their relation to Secure World and TEE?
Relation between OP-TEE and ATF
512 Views Asked by mrn At
1
There are 1 best solutions below
Related Questions in ARM
- Jiobook flashing
- How to flush denormal numbers to zero for apple silicon?
- How to exploit Unified Memory in OpenCL with CL_MEM_ALLOC_HOST_PTR flag?
- ARM Assembly code is not executing in Vitis IDE
- Which version of ARM does the M1 chip run on?
- Vector by Scalar Division with -ffast-math
- Why veneer code generated by gcc for cortex-m0 seems 8-byte aligned?
- Getting almost random time stamp counter on ARM
- Portenta H7 Baremetal Development and a Little Guidance on Embedded System Learning Roadmap
- STM32 RTC3 Mixed Mode: Writing TR resets SSR
- Implementing Quick Sort Algorithm in Visual2 with armv7
- How can I create an Inline assembly command with a multi-variable register offset?
- Inquiry: ARM Compatibility for Puppeteer
- Confusion with thumb instructions while compiling recipe for cortexm4 CPU
- Difficulty understanding virtual LPIs in GICv3
Related Questions in EMBEDDED
- MSP430F5529 on the MSPEXP430F5529LP: UART is not actually transmitting despite seemingly correct setup. What is wrong?
- A FPGA Project Proposal where I can use both PS and PL
- Program doesn't run after DFU
- Sending struct through queue
- How to generate a VPI warpmap for polynomial distortion correction?
- How to present this example concept in UML: Using 2 LCD displays in C/C++
- CLion: Debug via St-Link
- Portenta H7 Baremetal Development and a Little Guidance on Embedded System Learning Roadmap
- STM32 RTC3 Mixed Mode: Writing TR resets SSR
- Unable to read value from gpio set as input
- Mbed TLS: in-place en-/decryption for OAEP doesn't seem to work
- Shared variable read from low priority thread in preemptive scheduling
- Own Pattern / framework for interfacing with components in C
- Performance Difference Between Global Variable and Local Variable in Embedded Systems
- Comparing analog signal from Electret mic with samples
Related Questions in CORTEX-A
- ARM Cortex-A9 MCR for some CoProcs Causes Undefined Instruction in SYS Mode
- Troubleshooting ARM Cortex-A72 Address Translation: Seeking Clarification on Level 1 vs. Level 2 Translation and Register Analysis
- What proceedures should i implement to prevent a Cortex-A55 core reset on a remote target when connecting and disconnecting different GDB sessions?
- Effect of non-temporal loads on future temporal loads on ARM processor
- Trouble trying to disable L2 cache on BeagleBone Black
- How to use AMP mode for cortex a9 baremetal system?
- Can't Compile SDL2 For 32-Bit on 64-Bit Ubuntu Using Arm GNU Toolchain
- How to generate inter cortexA9 interrupts based on internal timers
- Qemu (aarch64) doesn't execute my assembler script properly
- Relation between OP-TEE and ATF
- Cannot compile simple program which uses ARM Neon for Cortex A53
- Linux kernel issue when booting from U-Boot on Cortex-A15 CPU QEMU
- ARM NEON: why is vector code slower than scalar?
- GCC generates SIMD and FP instructions for Cortex-A53 without NEON
- Cortex-A9 , Arm Compiler 5 (DS built int) , Read CNTFRQ register
Related Questions in TRUSTZONE
- ARM Trustzone, Open Virtualization SDK Boot stuck
- arm trustzone monitor mode switch design
- Where is the smc call's immediate value is stored?
- Direct Memory Access with JTAG in Trust Zone
- Setting timer/counter in the Arm TrustZone
- ARM TrustZone's Secure/Normal world vs. OS's kernel/user mode or x86's Ring0/1/2/3?
- ARM TrustZone development
- How is SafeNet eToken 5110 different from SafeNet eToken 5100?
- set bandwidth API purpose
- TrustZone vs ROM as root-of-trust in Secure Boot
- How to determine if ARM processor running in a usual locked-down "world" or in Secore "world"?
- ARM-based commodity hardware without TrustZone?
- GIC v2 Virtualization Supported System
- How is working the process of direct access to memory in non-SecureOS and SecureOS in trustzone systems
- Time-consuming Problem of Memory Copy Between REE and QSEE
Related Questions in OP-TEE
- Deriving DH shared secret
- aarch64-linux-gnu-gcc: error: unrecognized command line option ‘-mthumb’
- Relation between OP-TEE and ATF
- Can I open OP-TEE using QEMU-KVM instead of TCG
- Is it possible to create a secure world OS without a normal world OS in ARM TrustZone?
- How does OP-TEE works for intel architecture or mac architecture
- Building libwebsockets for OP-TEE
- Need help to understand .vector, %function and .label
- How to get a UTC timestamp in OP-TEE Trusted Application (TA) in datetime format?
- Why does address read return nothing on second read? (using mmap)
- Add OP-TEE to Yocto
- IMX7D Sabre Yocto Project with OP-TEE examples
- How can I build OpenSSL for OP-TEE small trusted OS?
- Run an executable on host machine from docker container
- Double Dollar "$$@" target name in GNU Make
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Yes, someone can.
The functions they intend to fulfill are not interchangeable. However, they function together, so they are related.
They both use the secure world (and your missing term TrustZone). TEE is just a moniker where OP-TEE is a concrete implementation.
ATF (Trusted firmware) is primarily concerned with a secure boot mechanics. When the system boots, everything must be trusted. The environment is minimal and if you assume things are setup properly, you can transition to a framework such as OP-TEE which is more hardware agnostic.
TEE is just an environment where some 'secure' or trusted execution happens. The ATF provides an environment to setup a structure to transition from normal world to secure world. Fundamentally, this is done with 'monitor' mode and the SMC instruction. It is a parallel to the
SVC(previouslySWI) which an OS uses to transition from user space to kernel space. Together with secure boot, the ATF support the OP-TEE. TEE and OP-TEE are like the terms 'OS' and Linux or Windows. TEE is an idea and OP-TEE is an implementation. The secure world is the 'world' in TrustZone where OP-TEE executes.ATF sets up the environments for both TEE and the kernel (for Android, it is a version of Linux). It creates a monitor mode that securely allows calling from the Android kernel to the TEE environment. So, they work as an infrastructure to accomplish something that might be provided by a TPM (trusted protection module) in other systems, but the TrustZone technology is actually more flexible, depending on your security model.
See: trust-zone and use the term in searches to understand more.