Debug Trusted Firmware-A and the Linux kernel on Arm FVP with Arm Development Studio
Introduction
Introduction to Arm Fixed Virtual Platforms (FVPs)
Configure Trusted Firmware-A build flags to include cpu_ops support
Modify the device tree for CPU FVPs
Run the Linux software stack on an FVP
Debug the software stack
Next steps
Debug Trusted Firmware-A and the Linux kernel on Arm FVP with Arm Development Studio
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
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.
Frequently asked questions
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.
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.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.<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.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.