Skip to content

Commit c4a5879

Browse files
Merge pull request #2500 from RonanSynnottArm/zenadebug21
Update Zena Debug for latest 2.1 sw stack
2 parents e806cc6 + 09250bf commit c4a5879

File tree

6 files changed

+63
-30
lines changed

6 files changed

+63
-30
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ learning_objectives:
1414

1515
prerequisites:
1616
- 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)
17+
- Arm Development Studio 2024.1 or later with a valid license - for support see the [Install Guide for Arm DS](/install-guides/armds)
1818
- Basic understanding of the Arm Zena CSS software stack, Armv8-A/Armv9-A cores, and Linux
1919

2020
author: Ronan Synnott

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

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,19 +46,27 @@ Debug configurations are stored in a configuration database. Create a local data
4646
- Open the same wizard (**File > New > Other**), then choose **Configuration Database > Model Configuration**.
4747
- Click **Next**, select the **Configuration Database** you created, then click **Next**.
4848
- For **Model Interface**, choose **Iris**, then click **Next**.
49-
- Choose **Browse for model running on local host**. The debugger detects and interrogates the FVP.
49+
- Choose **Browse for model running on local host**. Select your FVP and click **Finish**. The debugger detects and interrogates the FVP.
5050
- If connecting remotely, choose **Connect to model running on either local or remote host** and provide the host and port.
5151

52+
{{% notice Tip %}}
53+
The name of the FVP may be displayed as `RD_ASD` or other.
54+
55+
If unsure, use the port number to identify the correct FVP.
56+
{{% /notice %}}
57+
5258
Arm Development Studio generates a `model.mdf` file that enumerates all CPUs in the FVP.
5359

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.
60+
Optionally, update **Manufacturer Name** (for example, `Arm`) and **Platform Name** (for example, `Zena_CSS_FVP`).
61+
62+
**Save** and **Import** the model into the configuration database.
5563

5664
{{% 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.
65+
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.
66+
67+
For remote connections, confirm the host is reachable and the port is open.
5868
{{% /notice %}}
5969

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

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-
6472
The debugger is now aware of the FVP and you are ready to debug.

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

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,9 @@ For example the processors start in `EL3` and move to `EL2N` when the Linux kern
2525

2626
``` text
2727
stop
28-
add-symbol-file /arm-auto-solutions/build/tmp_baremetal/work/fvp_rd_aspen-poky-linux/trusted-firmware-a/2.11.0+git/image/firmware/bl2.elf EL3:0x0
28+
add-symbol-file "/arm-auto-solutions/build/tmp_baremetal/work/fvp_rd_aspen-poky-linux/trusted-firmware-a/2.13.0+git/image/firmware/bl2.elf" EL3:0x0
2929
tbreak bl2_entrypoint
30+
3031
```
3132

3233
{{% notice Note %}}
@@ -41,12 +42,20 @@ Symbol loading is Exception Level–aware. If execution changes Exception Level,
4142

4243
## Debug the Linux kernel with OS awareness (symmetric multiprocessing)
4344

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:
45+
{{% notice Note %}}
46+
OS awareness for Linux Kernel 6.12 (as used with Reference Software Stack 2.1) is not currently supported as of Arm Development Studio 2025.0.
47+
48+
It will be supported in a future Development Studio version.
49+
{{% /notice %}}
50+
51+
Disconnect `Primary_init.launch` and use the `Primary_Linux.launch` connection you created earlier to enable Arm Development Studio OS awareness for the Linux kernel.
52+
53+
Load the kernel symbols and set source mapping if your kernel sources are located outside the default paths:
4554

4655
```text
4756
stop
48-
add-symbol-file /arm-auto-solutions/build/tmp_baremetal/work/fvp_rd_aspen-poky-linux/linux-yocto/6.6.54+git/linux-fvp_rd_aspen-standard-build/vmlinux EL2N:0x0
49-
set substitute-path /usr/src/kernel/ /arm-auto-solutions/build/tmp_baremetal/work-shared/fvp-rd-aspen/kernel-source/
57+
add-symbol-file "/arm-auto-solutions/build/tmp_baremetal/work/fvp_rd_aspen-poky-linux/linux-yocto-rt/6.12.30+git/linux-fvp_rd_aspen-preempt-rt-build/vmlinux" EL2N:0x0
58+
set substitute-path "/usr/src/kernel/" "/arm-auto-solutions/build/tmp_baremetal/work-shared/fvp-rd-aspen/kernel-source/"
5059
```
5160

5261
Run the FVP until the OS prompt appears.
@@ -73,7 +82,7 @@ You might see a warning like:
7382
```text
7483
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.
7584
```
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.
85+
This occurs if the OS has not completed boot when you connect; it is safe to ignore and will clear when stopping target after the OS has booted.
7786
{{% /notice %}}
7887

7988
You have successfully learnt how to use Arm Development Studio to explore and debug the Arm Zena CSS Reference Software Stack.

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

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,17 @@ Load TF‑M symbols and map sources:
4646

4747
- In **Debug Control**, open the pane menu and choose **Load...**
4848
- Select **Add Symbols file**.
49-
- Choose the TF‑M image, for example:
49+
- Locate the TF‑M image, for example:
5050
```bash
51-
/arm-auto-solutions/build/tmp_baremetal/work/fvp_rd_aspen-poky-linux/trusted-firmware-m/2.1.0/build/bin/bl1_1.axf
51+
/arm-auto-solutions/build/tmp_baremetal/work/fvp_rd_aspen-poky-linux/trusted-firmware-m/2.2.1+git/build/bin/bl1_1.axf
5252
```
5353
When prompted for **substitute path**, map build-time paths to your local sources, for example:
5454
```bash
55-
/usr/src/debug/trusted-firmware-m/2.1.0/
56-
/arm-auto-solutions/build/tmp_baremetal/work/fvp_rd_aspen-poky-linux/trusted-firmware-m/2.1.0/git/tfm/
55+
/usr/src/debug/trusted-firmware-m/2.2.1+git/
56+
/arm-auto-solutions/build/tmp_baremetal/work/fvp_rd_aspen-poky-linux/trusted-firmware-m/2.2.1+git/git/tfm/
5757
```
5858

59-
Step one instruction to fetch the reset handler and stop there:
59+
Step one instruction to fetch the reset handler and stop there. In the debugger `Commands` pane enter:
6060
```text
6161
stepi
6262
```
@@ -78,10 +78,14 @@ Automate the connection steps by adding **Debugger Commands** to the `.launch` c
7878

7979
```text
8080
stop
81-
add-symbol-file /arm-auto-solutions/build/tmp_baremetal/work/fvp_rd_aspen-poky-linux/trusted-firmware-m/2.1.0/build/bin/bl1_1.axf
82-
set substitute-path /usr/src/debug/trusted-firmware-m/2.1.0/ /arm-auto-solutions/build/tmp_baremetal/work/fvp_rd_aspen-poky-linux/trusted-firmware-m/2.1.0/git/tfm/
81+
add-symbol-file "/arm-auto-solutions/build/tmp_baremetal/work/fvp_rd_aspen-poky-linux/trusted-firmware-m/2.2.1+git/build/bin/bl1_1.axf"
82+
set substitute-path "/usr/src/debug/trusted-firmware-m/2.2.1+git/" "/arm-auto-solutions/build/tmp_baremetal/work/fvp_rd_aspen-poky-linux/trusted-firmware-m/2.2.1+git/git/tfm/"
8383
stepi
8484
```
8585

86+
{{% notice Note %}}
87+
Use the `Commands` or `History` pane to see and copy the equivalent debugger commands of the GUI actions.
88+
{{% /notice %}}
89+
8690
![RSE.launch in Arm Development Studio showing Debugger pane with TF-M symbols loaded and path substitution mapping alt-text#center](debugger_commands.png "RSE Debugger pane with TF-M symbol loading and source path substitution")
8791

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

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ Configure the **SI** model connection similarly to **RSE**. Add the following **
2929

3030
```text
3131
stop
32-
add-symbol-file /arm-auto-solutions/build/tmp_baremetal/deploy/images/fvp-rd-aspen/si0_ramfw.elf
33-
set substitute-path /usr/src/debug/scp-firmware/2.14.0/ /arm-auto-solutions/build/tmp_baremetal/work/fvp_rd_aspen-poky-linux/scp-firmware/2.14.0/git/
32+
add-symbol-file "/arm-auto-solutions/build/tmp_baremetal/deploy/images/fvp-rd-aspen/si0_ramfw.elf"
33+
set substitute-path "/usr/src/debug/scp-firmware/2.16.0+git/" "/arm-auto-solutions/build/tmp_baremetal/work/fvp_rd_aspen-poky-linux/scp-firmware/2.16.0+git/git/"
3434
b arch_exception_reset
3535
```
3636

@@ -53,10 +53,7 @@ When RSE enables Safety Island, you will see a log message like:
5353
The full output log is shown here for your reference:
5454

5555
``` output
56-
Trying ::1...
57-
Trying 127.0.0.1...
58-
Connected to localhost.
59-
Escape character is '^]'.
56+
[INF] [CC3XX] Init OK PIDR0: 0xc1
6057
[INF] Starting TF-M BL1_1
6158
[INF] Jumping to BL1_2
6259
[INF] Starting TF-M BL1_2
@@ -65,12 +62,23 @@ Escape character is '^]'.
6562
[INF] BL2 image validated successfully
6663
[INF] Jumping to BL2
6764
[INF] Starting bootloader
65+
[INF] [CC3XX] Init OK PIDR0: 0xc1
6866
[INF] PSA Crypto init done, sig_type: EC-P256
67+
[INF] BL2: SI CL1 not present, skip loading
6968
[INF] BL2: SI CL0 pre load start
7069
[INF] BL2: SI CL0 pre load complete
7170
[INF] Primary slot: version=0.0.7+0
72-
[INF] Secondary slot: version=0.0.7+0
71+
[INF] Image 3 Secondary slot: Image not found
7372
[INF] Image 3 RAM loading to 0x70083c00 is succeeded.
73+
[INF] Key 0 hash found for image 3
7474
[INF] Image 3 loaded from the primary slot
7575
[INF] BL2: SI CL0 post load start
76+
[INF] BL2: SI ATU region 0: [0x80000000 - 0xbfffffff]->[0x1_00000000 - 0x1_3fffffff]
77+
[INF] BL2: SI ATU region 1: [0xc0000000 - 0xcfffffff]->[0x1_40000000 - 0x1_4fffffff]
78+
[INF] BL2: SI ATU region 2: [0xd0000000 - 0xd001ffff]->[0x20000_d8000000 - 0x20000_d801ffff]
79+
[INF] BL2: SI ATU region 3: [0xd0020000 - 0xd002ffff]->[0x20000_d0200000 - 0x20000_d020ffff]
80+
[INF] BL2: SI ATU region 4: [0xd0030000 - 0xd003ffff]->[0x20000_d0400000 - 0x20000_d040ffff]
81+
[INF] BL2: SI ATU region 5: [0xd0040000 - 0xd006ffff]->[0x20000_d0100000 - 0x20000_d012ffff]
82+
[INF] BL2: SI ATU region 6: [0xe0030000 - 0xe0031fff]->[0x0_00000000 - 0x0_00001fff]
83+
[INF] BL2: SI ATU region 7: [0xe0130000 - 0xe0135fff]->[0x0_00100000 - 0x0_00105fff]
7684
```

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

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,16 @@ For more information, see [Arm Zena Compute Subsystem (CSS)](https://developer.a
2020

2121
## Build the software stack
2222

23-
Follow the steps to download and build the software stack in the [Arm Zena CSS User Guide](https://arm-auto-solutions.docs.arm.com/en/v2.0/rd-aspen/user_guide/reproduce.html).
23+
Follow the steps to download and build the software stack in the [Arm Automotive Solutions Software Reference Stack User Guide](https://arm-auto-solutions.docs.arm.com/en/latest/rd-aspen/user_guide/reproduce.html).
2424

25-
Here the default **Arm Automotive Solutions Demo** build is used.
25+
The default **Cfg1, Arm Automotive Solutions Demo, Bare Metal** build is used in this learning path.
26+
27+
Software build will usually take at least one hour to complete, depending on host machine.
2628

2729
{{% notice Note %}}
2830
The primary focus of this Learning Path is to demonstrate how to debug the software stack.
31+
32+
The latest version of software tested at time of writing is `2.1`. Screenshots show previous versions.
2933
{{% /notice %}}
3034

3135
## Verify the build and execution
@@ -38,18 +42,18 @@ kas shell -c "../layers/meta-arm/scripts/runfvp -t tmux --verbose"
3842

3943
The system runs through the boot process until a Linux prompt is available (in `terminal_ns_uart0`).
4044

41-
Press **Ctrl+C** in the command terminal to terminate the process.
45+
Press **Ctrl+C** in the command terminal (use `Ctrl+B` > `0` to swap to that terminal) to terminate the process.
4246

4347
## Install FVP (optional)
4448

4549
The FVP is downloaded and installed as part of the build process.
4650

47-
You can also separately download Arm-Zena-CSS-FVP from the Arm Developer [website](https://developer.arm.com/Tools%20and%20Software/Fixed%20Virtual%20Platforms/Automotive%20FVPs).
51+
You can also separately download either `Arm-Zena-CSS-FVP` (`Cfg1` or `Cfg2`) from the Arm Developer [website](https://developer.arm.com/Tools%20and%20Software/Fixed%20Virtual%20Platforms/Automotive%20FVPs).
4852

4953
See also the Arm Ecosystem FVPs and Architecture Envelope Models [Install Guide](/install-guides/fm_fvp/eco_fvp/).
5054

5155
{{% notice Note %}}
52-
For legacy reasons, the FVP is named `FVP_RD_Aspen`.
56+
For legacy reasons, the FVP was previously named `FVP_RD_Aspen`.
5357
{{% /notice %}}
5458

5559
## Arm Development Studio

0 commit comments

Comments
 (0)