Glossary
========

This glossary provides definitions for terms and abbreviations used in the TF-A
documentation.

You can find additional definitions in the `Arm Glossary`_.

.. glossary::
   :sorted:

   AArch32
      32-bit execution state of the ARMv8 ISA

   AArch64
      64-bit execution state of the ARMv8 ISA

   API
      Application Programming Interface

   CoT
   COT
      Chain of Trust

   CSS
      Compute Sub-System

   CVE
      Common Vulnerabilities and Exposures. A CVE document is commonly used to
      describe a publicly-known security vulnerability.

   DS-5
      Arm Development Studio 5

   DT
      Device Tree

   EL
      Exception Level

   EHF
      Exception Handling Framework

   FDT
      Flattened Device Tree

   FIP
      Firmware Image Package

   FVP
      Fixed Virtual Platform

   FWU
      FirmWare Update

   GIC
      Generic Interrupt Controller

   ISA
      Instruction Set Architecture

   Linaro
      A collaborative engineering organization consolidating
      and optimizing open source software and tools for the Arm architecture.

   MMU
      Memory Management Unit

   MPAM
      Memory Partitioning And Monitoring. An optional Armv8.4 extension.

   MPIDR
      Multiprocessor Affinity Register

   OEN
      Owning Entity Number

   OP-TEE
      Open Portable Trusted Execution Environment. An example of a :term:`TEE`

   OTE
      Open-source Trusted Execution Environment

   PDD
      Platform Design Document

   PMF
      Performance Measurement Framework

   PSCI
      Power State Coordination Interface

   RAS
      Reliability, Availability, and Serviceability extensions. A mandatory
      extension for the Armv8.2 architecture and later. An optional extension to
      the base Armv8 architecture.

   ROT
      Root of Trust

   SCMI
      System Control and Management Interface

   SCP
      System Control Processor

   SDEI
      Software Delegated Exception Interface

   SDS
      Shared Data Storage

   SEA
      Synchronous External Abort

   SiP
   SIP
      Silicon Provider

   SMC
      Secure Monitor Call

   SMCCC
      :term:`SMC` Calling Convention

   SoC
      System on Chip

   SP
      Secure Partition

   SPD
      Secure Payload Dispatcher

   SPM
      Secure Partition Manager

   SVE
      Scalable Vector Extension

   TBB
      Trusted Board Boot

   TBBR
      Trusted Board Boot Requirements

   TEE
      Trusted Execution Environment

   TF-A
      Trusted Firmware-A

   TF-M
      Trusted Firmware-M

   TLB
      Translation Lookaside Buffer

   TLK
      Trusted Little Kernel. A Trusted OS from NVIDIA.

   TSP
      Test Secure Payload

   TZC
      TrustZone Controller

   UEFI
      Unified Extensible Firmware Interface

   WDOG
      Watchdog

   XLAT
      Translation (abbr.). For example, "XLAT table".

.. _`Arm Glossary`: https://developer.arm.com/support/arm-glossary