You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/learning-paths/automotive/zenacssdebug/config.md
+14-14Lines changed: 14 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,7 +10,7 @@ layout: "learningpathall"
10
10
11
11
## Debug configuration
12
12
13
-
Set up an Arm Development Studio **debug configuration** for the Zena CSS FVP using the Iris interface. This page shows a fast, reliable path to a working configuration.
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.
14
14
15
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.
16
16
@@ -23,33 +23,33 @@ Launch the FVP with the Iris server enabled:
- Click **Next**, enter a **Name**, then click **Finish**.
43
43
44
44
## Create a model configuration for Zena CSS FVP (Iris)
45
45
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
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.
51
51
52
-
Arm Development Studio generates a **model.mdf** file that enumerates all CPUs in the FVP.
52
+
Arm Development Studio generates a `model.mdf` file that enumerates all CPUs in the FVP.
53
53
54
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.
55
55
@@ -59,6 +59,6 @@ If the FVP is not detected, verify the Iris server is running on the expected po
59
59
60
60
A `model.mdf` file will be created that identifies all CPUs within the FVP.
61
61
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.
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.
63
63
64
64
The debugger is now aware of the FVP and you are ready to debug.
Copy file name to clipboardExpand all lines: content/learning-paths/automotive/zenacssdebug/connect.md
+30-28Lines changed: 30 additions & 28 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,77 +12,79 @@ layout: "learningpathall"
12
12
13
13
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.
14
14
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.
16
16
17
-
## Debug connection project
17
+
## Create a project for connection files
18
18
19
-
First, create a project to store these connections (`.launch` files) in.
19
+
First, create a project to store these connections (`.launch` files).
20
20
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`).
22
22
23
-
## RSE (Cortex-M55)
23
+
## Create an RSE (Cortex-M55) model connection
24
24
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.
26
26
27
27
Select **File** > **New** > **Model Connection**.
28
28
29
29
{{% notice Note %}}
30
-
You can also use **File** > **New** > **Other** > **Arm Debugger** > **Model Connection**, or **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.
31
31
{{% /notice %}}
32
32
33
-
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**.
34
34
35
-
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.
36
36
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`.
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**.
38
38
39
-
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**.
40
40
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`.
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`.
42
42
43
43
{{% notice Note %}}
44
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
45
{{% /notice %}}
46
46
47
-
Arm Development Studio creates **RSE.launch** inside the **Connections** project.
47
+
Arm Development Studio creates `RSE.launch` inside the **Connections** project.
48
48
49
-
## Safety Island (Cortex-R82AE)
49
+
## Create a Safety Island (Cortex-R82AE) model connection
50
50
51
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.
52
52
53
53
Follow the same steps as for RSE, with this change:
54
54
55
-
-In **Edit configuration**, expand **Bare Metal Debug** and select **Arm_Cortex-R82AE**
55
+
In **Edit configuration**, expand **Bare Metal Debug** and select **Arm_Cortex-R82AE**.
56
56
57
57
{{% notice Tip %}}
58
-
To save time, copy **RSE.launch** to **SI.launch** and update the CPU selection to **Arm_Cortex-R82AE**.
58
+
To save time, copy `RSE.launch` to `SI.launch` and update the CPU selection to **Arm_Cortex-R82AE**.
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.
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.
64
64
65
65
You will create two connections: one for bare-metal initialization and one with Linux kernel awareness for SMP debug.
66
66
67
-
## Primary init (bare metal)
67
+
###Primary init (bare metal, CPU0 only)
68
68
69
-
Create **Primary_init.launch**:
69
+
Create `Primary_init.launch`:
70
70
71
-
-Use**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
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.
74
74
75
-
####Primary Linux (kernel awareness, SMP)
75
+
### Primary Linux (SMP, OS awareness)
76
76
77
77
Create **Primary_Linux.launch** for Linux kernel debug with OS awareness:
78
78
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
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
83
83
84
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).
85
85
86
+
## Next steps: enhance connections (symbols, reset, semihosting)
87
+
86
88
{{% notice Next %}}
87
89
In the next section, you will enhance these connections with symbol loading, reset behavior, semihosting, and Linux kernel awareness settings.
You can launch the FVP within the build environment with the software stack loaded:
14
14
15
15
```command
16
16
kas shell -c "../layers/meta-arm/scripts/runfvp -t tmux --verbose"
17
17
```
18
18
19
-
See the [documentation](https://arm-auto-solutions.docs.arm.com/en/v2.0/rd-aspen/user_guide/reproduce.html#run-the-fvp) for details.
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.
20
20
21
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.
22
22
23
-
You will use the following options (see `FVP_RD_Aspen --help` for the full list). **Options are case-sensitive.**
23
+
You will use the following options (see `FVP_RD_Aspen --help` for the full list). Options are case-sensitive.
Allow remote debug connections (only if needed), using option aliases:
46
+
If required, allow remote debug connections using option aliases:
47
47
```command
48
48
kas shell -c "../layers/meta-arm/scripts/runfvp -t tmux --verbose -- -I -A --iris-port 7100"
49
49
```
50
50
51
51
{{% notice Note %}}
52
-
Specify the Iris port explicitly (even when using the default) so it matches your debugger connection settings. If you enable remote connections, ensure your firewall allows inbound access to the chosen port.
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.
Copy file name to clipboardExpand all lines: content/learning-paths/automotive/zenacssdebug/primarycompute.md
+24-16Lines changed: 24 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,6 @@ weight: 8 # 1 is first, 2 is second, etc.
7
7
# Do not modify these elements
8
8
layout: "learningpathall"
9
9
---
10
-
11
10
## Debug Primary Compute
12
11
13
12
The Primary Compute application processors (`Cortex-A720AE`) are the final processors to be enabled.
@@ -16,11 +15,11 @@ As before, you can connect whilst powered down and monitor the point that they a
16
15
17
16
You can debug the initialization code and the final Linux Operating System (OS) threads.
18
17
19
-
###Connect debugger to target
18
+
## Connect debugger to target
20
19
21
20
Use the following debugger commands in the `Primary_init.launch` to load the symbols for the `BL2` initialization code, setting a breakpoint at `bl2_entrypoint`.
22
21
23
-
Note that an address "offset" is used to specify the exception level that the image is relevant to. If the processor changes exception level, the debug information would need to also be loaded to the corresponding EL address space.
22
+
Note that an address offset is used to specify the Exception Level (EL) that the image is relevant to. If the processor changes Exception Level, the debug information would need to also be loaded to the corresponding EL address space.
24
23
25
24
For example the processors start in `EL3` and move to `EL2N` when the Linux kernel is enabled.
Exact paths might differ depending on your build output.
34
34
{{% /notice %}}
35
35
36
-
Run the code to the `bl2_entrypoint` and you can debug as expected.
36
+
Run to **bl2_entrypoint** and step through as required.
37
37
38
-
### Debug Linux kernel modules
38
+
{{% notice Tip %}}
39
+
Symbol loading is Exception Level–aware. If execution changes Exception Level, load symbols into the corresponding EL address space. For example, the processors start in EL3 and transition to EL2N when the Linux kernel is enabled.
40
+
{{% /notice %}}
39
41
40
-
To make use of the OS awareness feature, disconnect `Primary_init` and connect to `Primary_Linux` as created previously. Load the symbols from the `vmlinux` image.
42
+
## Debug the Linux kernel with OS awareness (SMP)
41
43
42
-
```text
44
+
Switch to the `Primary_Linux.launch` connection you created earlier to enable Arm Development Studio OS awareness for the Linux kernel. Load the kernel symbols and set source mapping if your kernel sources are located outside the default paths:
You can now enable the `Threads` view in the `Debug Control` pane.
62
+
## View Linux threads with OS awareness
58
63
59
-
Right-click on the connection, and select `Display Threads`. You can also do this by entering `thread` in the `Command` pane.
64
+
Enable the **Threads** view to inspect kernel threads instead of raw CPUs:
60
65
61
-
The view will then change from listing the 16 application processors to the OS threads.
66
+
In **Debug Control**, right-click the **Primary_Linux** connection and select **Display Threads**
67
+
2. Alternatively, enter `thread` in the **Command** pane.
68
+
69
+
The view changes from listing the 16 application processors to the active OS threads.
62
70
63
71
{{% notice Note %}}
64
-
A warning of the form:
65
-
```text
72
+
You might see a warning like:
73
+
```text
66
74
WARNING(ROS60): Could not enable OS support as the OS does not appear to be initialized. This might be caused by a mismatch between the loaded symbols and the code on the target or because the OS is not up and running. Enabling OS support will be re-attempted when the target next stops.
67
75
```
68
-
may be emitted if the OS is not booted when you connect. It can safely be ignored.
76
+
This occurs if the OS has not completed boot when you connect; it is safe to ignore and will clear after the next target stop.
69
77
{{% /notice %}}
70
78
71
79
You have successfully learnt how to use Arm Development Studio to explore and debug the Arm Zena CSS Reference Software Stack.
0 commit comments