Skip to content

Commit 5c5698a

Browse files
Merge branch 'ArmDeveloperEcosystem:main' into mongoDB_Azure_Cobalt
2 parents 631188b + 2208661 commit 5c5698a

29 files changed

+908
-654
lines changed

assets/contributors.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,3 +102,4 @@ Ker Liu,,,,,
102102
Rui Chang,,,,,
103103
Alejandro Martinez Vicente,Arm,,,,
104104
Mohamad Najem,Arm,,,,
105+
Zenon Zhilong Xiu,Arm,,zenon-zhilong-xiu-491bb398,,

content/learning-paths/automotive/zenacssdebug/_index.md

Lines changed: 23 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,46 @@
11
---
22
title: Debug Arm Zena CSS Reference Software Stack with Arm Development Studio
33

4-
draft: true
5-
cascade:
6-
draft: true
74

85
minutes_to_complete: 60
96

10-
who_is_this_for: This is an introductory topic for software developers who wish to use Arm Development Studio to explore and debug the Arm Zena CSS Reference Software Stack.
7+
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).
118

12-
learning_objectives:
13-
- Set up debug configuration for the Arm Zena CSS FVP
14-
- Debug Runtime Security Engine (RSE) from boot time
15-
- Debug Safety Island (SI)
16-
- Debug Linux OS on Primary Compute cores
9+
learning_objectives:
10+
- Set up and save a debug configuration for the Arm Zena CSS FVP
11+
- Start Runtime Security Engine (RSE) debug at reset and step through early boot
12+
- Attach to and debug Safety Island (SI) firmware
13+
- Attach to the Linux kernel on the primary compute cores and debug user space processes
1714

1815
prerequisites:
19-
- Ubuntu 22.04 host machine
20-
- You will need [Arm Development Studio 2024.1 (or later)](/install-guides/armds) and an appropriate license
21-
- A basic understanding of the Arm Zena CSS software stack and Arm processors
16+
- Ubuntu 22.04 host machine
17+
- Arm Development Studio 2024.1 or later with a valid license - for support see the [Install Guide for ADS](/install-guides/armds)
18+
- Basic understanding of the Arm Zena CSS software stack, Armv8-A/Armv9-A cores, and Linux
2219

2320
author: Ronan Synnott
2421

2522
### Tags
2623
skilllevels: Introductory
2724
subjects: Performance and Architecture
2825
armips:
29-
- Cortex-A
30-
- Cortex-R
26+
- Cortex-A
27+
- Cortex-R
3128
operatingsystems:
32-
- Linux
29+
- Linux
3330
tools_software_languages:
34-
- Arm Development Studio
35-
- Arm Zena CSS
36-
31+
- Arm Development Studio
32+
- Arm Zena CSS
33+
- FVP
3734

3835
further_reading:
39-
- resource:
40-
title: Arm Zena Compute System (CSS)
41-
link: https://developer.arm.com/Compute%20Subsystems/Arm%20Zena%20Compute%20Subsystem
42-
type: website
43-
- resource:
44-
title: Arm Development Studio
45-
link: https://developer.arm.com/Tools%20and%20Software/Arm%20Development%20Studio
46-
type: website
36+
- resource:
37+
title: Arm Zena Compute Subsystem (CSS)
38+
link: https://developer.arm.com/Compute%20Subsystems/Arm%20Zena%20Compute%20Subsystem
39+
type: website
40+
- resource:
41+
title: Arm Development Studio
42+
link: https://developer.arm.com/Tools%20and%20Software/Arm%20Development%20Studio
43+
type: website
4744

4845

4946
### FIXED, DO NOT MODIFY
Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,63 +1,64 @@
11
---
22
# User change
3-
title: "Model Configuration"
3+
title: "Configure the model"
44

55
weight: 4 # 1 is first, 2 is second, etc.
66

77
# Do not modify these elements
88
layout: "learningpathall"
99
---
1010

11-
# Debug Configuration
11+
## Set up a debug configuration for the Zena CSS FVP
1212

13-
Arm Development Studio requires a `Debug Configuration` of the target that it will connect to.
13+
Now you'll walk through setting up an Arm Development Studio debug configuration for the Zena CSS FVP using the Iris interface. This is a fast, reliable path to a working configuration.
1414

15-
As of Arm Development Studio version 2025.0, there is no such configuration provided 'out-of-the-box' for the Zena CSS FVP. However creating such a configuration is straight forward.
15+
As of Arm Development Studio 2025.0, there is no out-of-the-box configuration for the Zena CSS FVP. Creating one, however, is straightforward.
1616

17-
See the Arm Development Studio [Getting Started Guide](https://developer.arm.com/documentation/101469/latest/Migrating-from-DS-5-to-Arm-Development-Studio/Connect-to-new-or-custom-models) for full instructions, but they are also summarized below.
17+
For full guidance, see the Arm Development Studio [Getting Started Guide](https://developer.arm.com/documentation/101469/latest/Migrating-from-DS-5-to-Arm-Development-Studio/Connect-to-new-or-custom-models). A concise, task-focused version is below.
1818

19-
## Launch FVP
19+
## Launch the FVP (with Iris)
2020

21-
As per previous section, launch FVP with the Iris server enabled:
21+
Launch the FVP with the Iris server enabled:
2222

23-
```command
23+
```bash
2424
kas shell -c "../layers/meta-arm/scripts/runfvp -t tmux --verbose -- --iris-server --iris-port 7100"
2525
```
26-
or if connecting to the FVP remotely:
26+
If connecting to the FVP remotely, you can use this command:
2727

28-
```command
28+
```bash
2929
kas shell -c "../layers/meta-arm/scripts/runfvp -t tmux --verbose -- --iris-server --iris-port 7100 -A"
3030
```
31+
3132
{{% notice Note %}}
32-
A local connection is assumed for the remainder of this learning path.
33+
This example modeled below uses a local connection for the remaining steps.
3334
{{% /notice %}}
3435

35-
## Configuration Database
36-
37-
Debug Configurations are stored in a configuration database. You must first create a local database in which to store the configuration.
38-
39-
Navigate to `File` > `New` > `Other`, and then select `Configuration Database` > `Configuration Database` from the drop-down list.
36+
## Create a configuration database in Arm Development Studio
4037

41-
Click `Next`. Give the Database a name, and click `Finish`.
38+
Debug configurations are stored in a configuration database. Create a local database to store your model configuration:
4239

43-
## Debug Configuration
40+
- In Arm Development Studio, go to **File > New > Other**.
41+
- Select **Configuration Database > Configuration Database**.
42+
- Click **Next**, enter a **Name**, then click **Finish**.
4443

45-
Navigate to the same wizard as above, and select `Model Configuration`.
44+
## Create a model configuration for Zena CSS FVP (Iris)
4645

47-
Click `Next`, and you will be prompted to select the above `Configuration Database`. Click `Next` again, and you will be prompted to select a Model Interface.
46+
- Open the same wizard (**File > New > Other**), then choose **Configuration Database > Model Configuration**.
47+
- Click **Next**, select the **Configuration Database** you created, then click **Next**.
48+
- For **Model Interface**, choose **Iris**, then click **Next**.
49+
- Choose **Browse for model running on local host**. The debugger detects and interrogates the FVP.
50+
- If connecting remotely, choose **Connect to model running on either local or remote host** and provide the host and port.
4851

49-
Select `Iris` from the pulldown, and click `Next`.
52+
Arm Development Studio generates a `model.mdf` file that enumerates all CPUs in the FVP.
5053

51-
You will then be prompted to locate the model to connect to.
54+
Optionally, update **Manufacturer Name** (for example, `Arm`) and **Platform Name** (for example, `Zena_CSS_FVP`). Then **Save** and **Import** the model into the configuration database.
5255

53-
Select `Browse for model running on local host`. The FVP will be detected and interrogated by the debugger.
54-
55-
{{% notice Note %}}
56-
Use `Connect to model running on either local or remote host` if connecting remotely.
56+
{{% notice Tip %}}
57+
If the FVP is not detected, verify the Iris server is running on the expected port (`7100` by default) and that your firewall allows local connections. For remote connections, confirm the host is reachable and the port is open.
5758
{{% /notice %}}
5859

5960
A `model.mdf` file will be created that identifies all CPUs within the FVP.
6061

61-
You can change the `Manufacturer Name` and `Platform Name` to something more meaningful (such as `Arm` and `Zena_CSS_FVP`), then `Save`, and `Import` into the configuration database.
62+
You can change the **Manufacturer Name** and **Platform Name** to something more meaningful (such as `Arm` and `Zena_CSS_FVP`), then **Save**, and **Import** into the configuration database.
6263

6364
The debugger is now aware of the FVP and you are ready to debug.

content/learning-paths/automotive/zenacssdebug/connect.md

Lines changed: 44 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,86 @@
11
---
22
# User change
3-
title: "Debug Connections"
3+
title: "Create debug connections"
44

55
weight: 5 # 1 is first, 2 is second, etc.
66

77
# Do not modify these elements
88
layout: "learningpathall"
99
---
1010

11-
## Debug Connections
11+
## Overview
1212

1313
You are now ready to create debug connections for each of the sub-systems within Zena CSS. In this section you will create the connections, which will be subsequently enhanced in the following section. You may prefer to fully set up one such connection before moving to others.
1414

15-
Arm Development Studio has full support for Heterogeneous systems such as Zena CSS, and so you can connect to all processors simultaneously.
15+
Arm Development Studio has full support for heterogeneous systems such as Zena CSS, and so you can connect to all processors simultaneously.
1616

17-
### Debug connection project
17+
## Create a project for connection files
1818

19-
First, create a project to store these connections (`.launch` files) in.
19+
First, create a project to store these connections (`.launch` files).
2020

21-
Select `File` > `New...` > `Project` > `General` > `Project`, and give it a meaningful name (`Connections`).
21+
Select **File** > **New...** > **Project** > **General** > **Project**, and give it a meaningful name (for example, `Connections`).
2222

23-
### RSE (Cortex-M55)
23+
## Create an RSE (Cortex-M55) model connection
2424

25-
Runtime Security Engine (RSE) is based on [Cortex-M55](https://developer.arm.com/Processors/Cortex-M55) core and is a security subsystem fulfilling the role of Root of Trust.
25+
Runtime Security Engine (RSE) is based on the [Cortex-M55](https://developer.arm.com/Processors/Cortex-M55) core and is a security subsystem fulfilling the role of Root of Trust.
2626

27-
Select `File` > `New` > `Model Connection`.
27+
Select **File** > **New** > **Model Connection**.
2828

2929
{{% notice Note %}}
30-
You can also use `File` > `New` > `Other` > `Arm Debugger` > `Model Connection`, or
31-
32-
`Create a debug connection...` shortcut in the `Debug Control` pane.
30+
You can also use **File** > **New** > **Other** > **Arm Debugger** > **Model Connection**, or the **Create a debug connection**... shortcut in the **Debug Control** pane.
3331
{{% /notice %}}
3432

35-
Specify a connection name (`RSE`), and associate with the above `Connections` project. Click `Next`.
33+
Specify a connection name (`RSE`), and associate with the above `Connections` project. Click **Next**.
3634

37-
Locate the FVP based on the name you gave it previously (`Zena_CSS_FVP`). The text filter can help you locate it easily.
35+
Locate the FVP based on the name you gave it previously (`Zena_CSS_FVP`). You can use the text filter to locate it quickly.
3836

39-
You will then be presented with the `Edit configuration` pane. In the `Connection` tab, scroll down to locate `Bare Metal Debug` > `Arm_Cortex-M55`.
37+
You will then be presented with the **Edit configuration** pane. In the **Connection** tab, scroll down to locate **Bare Metal Debug** > **Arm_Cortex-M55**.
4038

41-
As you will be later launching the FVP with the software stack loaded, select `Connect to an already running model`.
39+
As you will be later launching the FVP with the software stack loaded, select **Connect to an already running model**.
4240

43-
Assuming the same host will be running both the FVP and the debugger, specify the `Connection address` as the default `127.0.0.1:7100`.
41+
Assuming the same host will be running both the FVP and the debugger, specify the **Connection address** as the default `127.0.0.1:7100`.
4442

4543
{{% notice Note %}}
46-
`127.0.0.1` is the same as `localhost`, that is the same host machine as is running the FVP.
44+
`127.0.0.1` is the same as `localhost`, which targets the host running the FVP. For a remote FVP, specify the remote IP address and start the FVP with `-A`. Port `7100` is the default Iris port and can be adjusted if needed.
45+
{{% /notice %}}
46+
47+
Arm Development Studio creates `RSE.launch` inside the **Connections** project.
48+
49+
## Create a Safety Island (Cortex-R82AE) model connection
4750

48-
It is also possible to connect to a remote host by specifying appropriate IP address, and launching FVP with the `-A` option.
51+
The Safety Island is based on the [Cortex-R82AE](https://developer.arm.com/Processors/Cortex-R82AE) core and manages power, clocks, and CMN control.
4952

50-
`7100` is the default port number. You may need to change this if necessary.
53+
Follow the same steps as for RSE, with this change:
54+
55+
In **Edit configuration**, expand **Bare Metal Debug** and select **Arm_Cortex-R82AE**.
56+
57+
{{% notice Tip %}}
58+
To save time, copy `RSE.launch` to `SI.launch` and update the CPU selection to **Arm_Cortex-R82AE**.
5159
{{% /notice %}}
5260

53-
Click `Apply` to save the connection information, and `Close`. Observe that `RSE.launch` is created inside the `Connections` project.
61+
## Create Primary compute (Cortex-A720AE) connections
5462

55-
### Safety Island (Cortex-R82AE)
63+
Primary compute comprises four clusters intended to run a rich OS such as Linux. Each cluster has four [Cortex-A720AE](https://developer.arm.com/Processors/Cortex-A720AE) cores alongside a [DSU-120AE](https://developer.arm.com/Processors/DSU-120AE) DynamIQ Shared Unit.
5664

57-
The Safety Island is a subsystem based on [Cortex-R82AE](https://developer.arm.com/Processors/Cortex-R82AE) core. The software running on the Safety Island is responsible for power, clock and CMN control.
65+
You will create two connections: one for bare-metal initialization and one with Linux kernel awareness for SMP debug.
5866

59-
The procedure to create this connection is very similar to the above, other than to select `Bare Metal Debug` > `Arm_Cortex-R82AE` from the drop-down.
67+
### Primary init (bare metal, CPU0 only)
6068

61-
{{% notice %}}
62-
For convenience you can copy-and-paste `RSE.launch` as `SI.launch` and just modify the CPU.
63-
{{% /notice %}}
69+
Create `Primary_init.launch`:
70+
71+
- Select **File > New > Model Connection**.
72+
- Select your `Zena_CSS_FVP` model.
73+
- In **Edit configuration**, expand **Bare Metal Debug** and select **ARM_Cortex-A720AE_0** to attach to CPU0 only. This leaves other CPUs running.
6474

65-
### Primary Compute (Cortex-A720AE)
75+
### Primary Linux (SMP, OS awareness)
6676

67-
The Primary Compute consists of four processor clusters to run a rich OS such as Linux. Each processor cluster includes four [Cortex-A720AE](https://developer.arm.com/Processors/Cortex-A720AE) cores and a [DSU-120AE](https://developer.arm.com/Processors/DSU-120AE) DynamIQ Shared Unit.
77+
Create **Primary_Linux.launch** for Linux kernel debug with OS awareness:
6878

69-
The application processors will be debugged in an SMP configuration with Linux Kernel awareness.
79+
- Use **File > New > Model Connection**.
80+
- Select your **Zena_CSS_FVP** model.
81+
- In **Edit configuration**, expand **Linux Kernel Debug** and choose **ARM_Cortex-A720AEx16 SMP Cluster 1**.
82+
This connects to all 16 Cortex-A720AE processors described in the FVP. Only cores 0 to 3 are used by the default Linux configuration.
7083

71-
As shown above, create `Primary_init.launch` connection and scroll to `Bare Metal Debug` > `ARM_Cortex-A720AE_0`. This will connect to just CPU0, leaving the other CPUs free to run.
84+
To learn more about OS awareness in Arm Debugger, see the [OS awareness documentation](https://developer.arm.com/documentation/101470/latest/Debugging-Embedded-Systems/About-OS-awareness).
7285

73-
To debug the Linux kernel you can make use of the [OS awareness](https://developer.arm.com/documentation/101470/latest/Debugging-Embedded-Systems/About-OS-awareness) feature of the Arm Debugger.
7486

75-
Create `Primary_Linux.launch` connection and scroll to `Linux Kernel Debug` > `ARM_Cortex-A720AEx16 SMP Cluster 1`. This will connect to all 16 `Cortex-A720AE` processors present in the FVP, though only cores 0-3 are used.
Lines changed: 18 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,53 @@
11
---
22
# User change
3-
title: "Launch FVP"
3+
title: "Launch the FVP"
44

55
weight: 3 # 1 is first, 2 is second, etc.
66

77
# Do not modify these elements
88
layout: "learningpathall"
99
---
1010

11-
## Launch FVP
11+
## Start the FVP from the build environment
1212

13-
You can now launch the FVP within the virtual environment with the software stack loaded:
13+
You can launch the FVP within the build environment with the software stack loaded:
1414

1515
```command
1616
kas shell -c "../layers/meta-arm/scripts/runfvp -t tmux --verbose"
1717
```
18-
Refer to the [documentation](https://arm-auto-solutions.docs.arm.com/en/v2.0/rd-aspen/user_guide/reproduce.html#run-the-fvp) for more details.
19-
While you can continue to use this method to launch the FVP whilst debugging, this command does not enable the Iris debug server inside the model, and so will not be debuggable.
2018

21-
Additional command options are necessary.
19+
See the [Arm Zena CSS User Guide](https://arm-auto-solutions.docs.arm.com/en/v2.0/rd-aspen/user_guide/reproduce.html#run-the-fvp) for further information.
2220

23-
You will use the following. See output of `FVP_RD_Aspen --help` for full list and explanation. Options are case-sensitive.
21+
While you can continue to use this method during debugging, it does not enable the Iris debug server in the model, so the system cannot be debugged from Arm Development Studio. Additional command-line options are required.
2422

25-
| Option | Alias | Notes |
26-
|---------------------- |--------- |---------------------------------------------- |
27-
| `--iris-server` | `-I` | Start Iris Debug Server |
28-
| `--iris-port` | | Specify a port number (default = `7100`) |
29-
| `--run` | `-R` | Run simulation when debug server started |
30-
| `--iris-allow-remote` | `-A` | Allow remote connections (if different hosts) |
23+
You will use the following options (see `FVP_RD_Aspen --help` for the full list). Options are case-sensitive.
3124

32-
### Launch FVP with additional options
25+
| Option | Alias | Notes |
26+
|-------------------------|:-----:|-------------------------------------------------------|
27+
| `--iris-server` | `-I` | Start the Iris debug server |
28+
| `--iris-port <port>` | | Set the Iris port (default `7100`) |
29+
| `--run` | `-R` | Run the simulation when the debug server starts |
30+
| `--iris-allow-remote` | `-A` | Allow remote connections (only if required) |
3331

34-
To launch the FVP with additional options, modify the above command by adding `--` and then the options.
32+
## Enable the Iris debug server for Arm Development Studio
3533

36-
For example, to launch the model with the debug server and hold at the initial reset condition:
34+
Append `--` to pass model options through `runfvp`.
3735

36+
Start the model with the debug server and hold at reset:
3837
```command
3938
kas shell -c "../layers/meta-arm/scripts/runfvp -t tmux --verbose -- --iris-server --iris-port 7100"
4039
```
4140

42-
To launch the model and start running (so that it can start to boot up):
43-
41+
Start the model with the debug server and begin execution so that boot can progress:
4442
```command
4543
kas shell -c "../layers/meta-arm/scripts/runfvp -t tmux --verbose -- --iris-server --iris-port 7100 --run"
4644
```
4745

48-
To launch the model so that remote hosts can access it (not recommended if not needed), using options aliases:
49-
46+
If required, allow remote debug connections using option aliases:
5047
```command
5148
kas shell -c "../layers/meta-arm/scripts/runfvp -t tmux --verbose -- -I -A --iris-port 7100"
5249
```
5350

5451
{{% notice Note %}}
55-
It is recommended to specify the port number used even if it is the default as that must match the debug connection setting (see later).
52+
Even when using the default, specify the Iris port explicitly so it matches your debugger connection settings. If you enable remote connections, ensure your firewall allows inbound access to the chosen port.
5653
{{% /notice %}}

0 commit comments

Comments
 (0)