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?
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
- How to learn arm TrustZone develop and use tee to get a goal?
- Relation between OP-TEE and ATF
- No source available for "Reset_Handler() at 0x8984" while debugging an ARM TrustZone Project in Renesas e2 Studio and embOS Library
- What is the difference between TrustZone implementation and support in Cortex-A CPUs
- Purpose of HNONSEC signal in M33 System?
- Is it possible to create a secure world OS without a normal world OS in ARM TrustZone?
- ARM Trustzone memory aliasing
- arm cortex-m33 (trustzone, silabs efm32pg22) - assembler hardfaults accessing GPIO or almost any peripherals areas, any hint?
- Load program in qemu-system whose start address resides in device-memory
- ARM TrustZone-M secure world variable shadows nonsecure variable?
- Time-consuming Problem of Memory Copy Between REE and QSEE
- How is SafeNet eToken 5110 different from SafeNet eToken 5100?
- ARM TrustZone: Accessing a non-secure buffer from a secure monitor runtime service
- Cortex-M33 MTB configuration - When MTB buffer is full
- How to get a UTC timestamp in OP-TEE Trusted Application (TA) in datetime format?
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
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?
Popular Tags
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)
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.