trusted-firmware-atf-expert

Diagnose ARM Trusted Firmware BL31 SMC and PSCI integration issues.

40|7|Updated Mar 14, 2026
One-click install
npx skills add https://github.com/jonaschen/Android-Software --skill trusted-firmware-atf-expert
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: trusted-firmware-atf-expert
Source: https://github.com/jonaschen/Android-Software/tree/main/skills/L2-trusted-firmware-atf-expert
Command: npx skills add https://github.com/jonaschen/Android-Software --skill trusted-firmware-atf-expert

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires fiptool, avbtool, adb, fastboot, xxd, and includes scripts (resource) and references (resource) components.

What problem does it solve?

It prevents AI agents from misrouting ARM Trusted Firmware, PSCI, and Trusty questions by keeping the secure EL3/EL1 context isolated from non-secure components and supplying the exact path scope and trigger conditions for vendor-supplied TF-A trees.

Core Features & Use Cases

  • Scoped Path Intelligence: Documents atf/, arm-trusted-firmware/, trusty/, and vendor/*/trustzone/ conventions plus BSP/TrustZone extensions so the agent only references verified secure paths.
  • Architectural Expertise: Summarizes EL3 boot stages, SMC calling conventions, BL31/BL32 interactions, PSCI responsibilities, and TEE client integrations to guide secure monitor, Secure World, and KeyMint investigations.
  • Procedural Guardrails: Captures forbidden actions such as conflating Trusty with the Linux kernel or redefining PSCI IDs, references the boot stage deep-dive, and points to the atf_image_verify.sh tool for FIP/AVB/ADB/fastboot checks.

Quick Start

Ask the ATF expert to review BL31 SMC handlers and document PSCI implementation steps for the target SoC.

Frequently Asked Questions about trusted-firmware-atf-expert

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I debug ARM Trusted Firmware BL31 SMC handler integration issues?

To debug ARM Trusted Firmware BL31 SMC handler integration issues, review the secure EL3 boot stages and ARM SMCCC calling conventions to isolate secure monitor interactions from non-secure components. Verify vendor BSP TF-A tree paths and PSCI responsibilities for the target SoC.

What is the relationship between BL31, BL32, and Trusty IPC in the TF-A boot process?

The TF-A boot process involves BL31 as the secure monitor running at EL3 and BL32 handling the Trusty TEE environment. They interact via Trusty IPC to manage secure world operations, ensuring EL3/EL1 context isolation during PSCI and KeyMint HAL backend investigations.

How do I verify secure boot images and FIP payloads using fiptool and avbtool?

Verify secure boot images and FIP payloads by applying the atf_image_verify.sh tool alongside fiptool and avbtool. These tools validate FIP creation and Android Verified Boot signatures, ensuring secure boot workflows and BL31/BL32 images are correctly authenticated.

Why should I not conflate Trusty with the Linux kernel when debugging PSCI operations?

You should not conflate Trusty with the Linux kernel because Trusty operates in the Secure World TEE, isolated from the non-secure Linux kernel. Maintaining this boundary prevents misrouting PSCI operations and ensures correct EL3 secure monitor and SMC handler routing.

Do I need to know ARM SMCCC conventions to document PSCI implementation for a target SoC?

Yes, you need to know ARM SMCCC conventions to document PSCI implementation because PSCI relies on SMC calls to communicate between non-secure and secure EL3 contexts. Understanding these conventions is required to define PSCI responsibilities and verify BL31 integration.

What are common limitations when debugging KeyMint HAL backends in vendor trustzone components?

Limitations when debugging KeyMint HAL backends include misrouting secure queries to non-secure components and incorrectly redefining PSCI IDs. Overcome these by referencing verified vendor/*/trustzone/ path conventions and isolating secure EL3/EL1 context interactions.