# [Debug Arm Zena CSS Reference Software Stack with Arm Development Studio](https://learn.arm.com/learning-paths/automotive/zenacssdebug/)

## In this learning path

- [Introduction](https://learn.arm.com/learning-paths/automotive/zenacssdebug/)
- [Getting started](https://learn.arm.com/learning-paths/automotive/zenacssdebug/zena/)
- [Launch the FVP](https://learn.arm.com/learning-paths/automotive/zenacssdebug/launch/)
- [Configure the model](https://learn.arm.com/learning-paths/automotive/zenacssdebug/config/)
- [Create debug connections](https://learn.arm.com/learning-paths/automotive/zenacssdebug/connect/)
- [Debug RSE from reset](https://learn.arm.com/learning-paths/automotive/zenacssdebug/rse/)
- [Debug Safety Island code](https://learn.arm.com/learning-paths/automotive/zenacssdebug/safetyisland/)
- [Debug primary compute and Linux](https://learn.arm.com/learning-paths/automotive/zenacssdebug/primarycompute/)
- [Next Steps](https://learn.arm.com/learning-paths/automotive/zenacssdebug/_next-steps/)

## About this Learning Path

| Skill level:            | Introductory           |
|------------------------|-----------------------|
| Reading time:          | 1 hr                  |
| Last updated:          | 26 Jun 2026           |

| Author:                | Ronan Synnott, Arm [LinkedIn](https://linkedin.com/in/ronansynnott) |
|------------------------|-----------------------------------------------------------------------|
| Arm IP:                | [Cortex-A](https://support.arm.com/?tab=compute-ip&Product%20Type=Application%20Processors), [Cortex-R](https://support.arm.com/?tab=compute-ip&Product%20Type=Real-Time%20Processors) |
| Tags:                  | [Performance and Architecture](https://learn.arm.com/tag/performance-and-architecture), [Linux](https://learn.arm.com/tag/linux), [Arm Development Studio](https://learn.arm.com/tag/arm-development-studio), [Arm Zena CSS](https://learn.arm.com/tag/arm-zena-css), [FVP](https://learn.arm.com/tag/fvp) |

### Who is this for?
This introductory topic is for software developers who want to use Arm Development Studio to explore and debug the Arm Zena Compute Subsystem (CSS) Reference Software Stack on a Fixed Virtual Platform (FVP).

### What will you learn?
Upon completion of this Learning Path, you will be able to:
- Set up and save a debug configuration for the Arm Zena CSS FVP
- Start Runtime Security Engine (RSE) debug at reset and step through early boot
- Attach to and debug Safety Island (SI) firmware
- Attach to the Linux kernel on the primary compute cores and debug user space processes

### Prerequisites
Before starting, you will need the following:
- Ubuntu 22.04 host machine
- Arm Development Studio 2024.1 or later with a valid license - for support see the [Install Guide for Arm DS](https://learn.arm.com/install-guides/armds/)
- Basic understanding of the Arm Zena CSS software stack, Armv8-A/Armv9-A cores, and Linux

### Summary
You’ll debug the Arm Zena Compute Subsystem (CSS) reference software stack on a Fixed Virtual Platform using Arm Development Studio. First, you’ll launch the FVP with the Iris debug server enabled, then create and save a custom Arm DS configuration. You’ll establish connections to each heterogeneous component within Zena CSS to debug the Linux kernel and user processes. By the end, you’ll create reusable `.launch` files, step through early RSE boot, and attach to Safety Island and Linux targets to inspect execution across the system.

### Frequently asked questions

<details>
<summary>Which FVP launch method should I use for debugging?</summary>
Use the launch invocation that enables the Iris debug server. The default build-environment command runs the stack but does not enable Iris, so Arm Development Studio cannot connect.
</details>

<details>
<summary>How should I organize and save my debug connections in Arm Development Studio?</summary>
Create a General Project to store the connection files and save each connection as a `.launch` file. This makes it easy to reuse and enhance configurations for each subsystem.
</details>

<details>
<summary>What is the expected workflow to debug the RSE from reset?</summary>
Start the FVP with Iris enabled and hold the model at reset, then connect from Arm Development Studio. Load Trusted Firmware‑M symbols and step through the early boot code.
</details>

<details>
<summary>Can I connect to all Zena CSS processors at the same time?</summary>
Yes. Arm Development Studio supports heterogeneous systems, so you can connect to the RSE, Safety Island, and primary compute cores simultaneously, though you might prefer to set up one connection fully before adding others.
</details>

<details>
<summary>Why isn’t there a predefined Zena CSS target in Arm Development Studio?</summary>
As of Arm Development Studio 2025.0, there is no out-of-the-box configuration for the Zena CSS FVP. Create one using the Iris interface as shown in the Learning Path.
</details>
