Who is this for?

This topic is for developers who want to run Linux on Arm Fixed Virtual Platforms (FVPs) and debug both Trusted Firmware-A and the Linux kernel using Arm Development Studio.

What will you learn?

Upon completion of this Learning Path, you will be able to:

  • Boot and run a Linux software stack on an Arm Fixed Virtual Platform (FVP).
  • Debug Trusted Firmware-A and the Linux kernel using Arm Development Studio.

Prerequisites

Before starting, you will need the following:

  • A Linux-based x86-64 host computer with Arm Development Studio installed.
  • Basic understanding of Assembly and C programming.

Summary

AI-assisted

This summary was drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
You’ll boot a Linux software stack on an Arm FVP and debug it with Arm Development Studio. First, you’ll configure Trusted Firmware-A for the target CPU, adjust the device tree, and verify build outputs. Then, you’ll launch the FVP, capture UART logs, create a debug configuration, and debug Trusted Firmware-A and the Linux kernel.

Frequently asked questions

AI-assisted

These FAQs were drafted with an approved AI-assisted workflow and reviewed by Arm contributors before publication. Human technical review remains part of the process so the final page reflects engineering rigor, accuracy, and Arm editorial standards.

Close
?
How do I know my Trusted Firmware-A build includes the correct `cpu_ops` support?
Enable the cpu_ops framework for your target CPU when building TF-A. If cpu_ops is missing, Linux might fail to start. Confirm that the build selects the CPU-specific implementation (for example, cortex_a55 or cortex_a53) from lib/cpus/aarch64.
What should I change in the device tree for an Arm CPU FVP?
Remove PCI and SMMU nodes and ensure CPU affinity values are set correctly. Leaving unsupported PCI or SMMU entries can cause a kernel panic during boot.
What result should I expect in the build output before launching the FVP?
Expect an output directory such as output/aemfvp-a/aemfvp-a containing items such as Image and Image.defconfig, as shown by the tree command. Proceed when the expected files and symlinks are present.
How do I capture and review the FVP boot log?
Use the provided run command with <PATH_TO_LOG> to save UART output. Review the log for normal Linux boot messages and confirm there are no PCI or SMMU-related panics.
Which Arm Development Studio version should I use, and how do I start it?
Arm DS v2022.2 or later is recommended to support DWARF 5 debug information used by GCC 11 and later. Start it with /opt/arm/developmentstudio-2022.2/bin/armds_ide, then create a debug configuration to debug Trusted Firmware-A and the Linux kernel.
Next