Introduction to Arm Trusted Firmware-A

This course is designed to provide an in-depth understanding of the Arm Trusted Firmware-A (TF-A) project and the underlying security architecture.

Description

This course provides a deep dive into the foundational secure software for Arm A-profile systems. The curriculum covers the evolution of the Arm A-Profile Architecture (from ARMv7-A to ARMv9-A) and the role of TF-A as the EL3 monitor firmware, including its components and handling of Secure Monitor Calls. It details the TF-A reference bootloaders (BL1, BL2, BL31, BL32, BL33) and their respective boot flows. Furthermore, the course examines critical security aspects such as the Generic Threat Model, Trusted Board Boot (TBB), Chain of Trust, and firmware authentication/encryption, and concludes with an exploration of the Secure and Realm world interfaces, covering EL3 runtime services, Standard Services (like PSCI, TRNG, SDEI), and the Secure/Realm Partition Manager (SPM/RMM) for Confidential Compute Architecture (CCA).

Attributes

Level: Intermediate
Class type: General
Time commitment: 16h

Topics Covered

  • Arm A-Profile Architecture: The evolution of the architecture, specifically covering ARMv7-A, ARMv8-A, and ARMv9-A.
  • Trusted Firmware-A (TF-A) Project: The history, origins, and core function of TF-A as the reference EL3 firmware.
  • Firmware Components: An exploration of the various components that make up the TF-A framework.
  • Secure Monitor Calls (SMC): Details on how SMCs are managed and processed within the system.
  • Context Management: Mechanisms for managing the CPU context during switches between different security worlds (e.g., between the Rich Operating System and the Secure World).

Learning Outcomes

  • Architectural Knowledge: Understanding the differences and advancements across Arm A-Profile architectures (v7-A through v9-A).
  • TF-A Expertise: Comprehending TF-A's purpose, function, and internal structure.
  • Practical Skills: Ability to grasp how SMCs are handled and how TF-A manages CPU state transitions.
  • Core Concepts: Familiarity with how TF-A serves as a reference implementation for EL3 monitor firmware.

Similar courses

This course covers foundational concepts, environment setup, and hands-on skills for creating custom embedded Linux systems, and developing custom components like recipes and layers.

More Information

This course is for experienced programmers, covering the fundamentals of the Rust language, its ecosystem (Crates, Cargo), advanced topics like the Type System and Taming the Borrow Checker (ownership, lifetimes), and specialized applications such as Embedded Rust and Rust for Linux kernel development.

More Information

This course details the technical and social process of contributing code to the mainline Linux kernel, covering its organizational structure, the benefits of upstreaming, the culture and rules of mailing list communication, and the use of tools like b4 and clang-format for creating, formatting, and submitting high-quality patch series.

More Information

This course covers the foundational concepts, architecture, and components of the Open Portable Trusted Execution Environment (OP-TEE), including TEE principles, compliance with GlobalPlatform standards, shared memory, cryptography, compatibility with ARM Trusted Firmware, and practical guidance on building and porting the system.

More Information

U-Boot is the most widely used embedded bootloader, backed by a large community, and this module explains why: covering its core features, configuration options, and practical build and deployment on real hardware.

More Information