Skip to content

Commit 138c8e0

Browse files
Merge branch 'ArmDeveloperEcosystem:main' into dgx
2 parents e253cdc + e8d2054 commit 138c8e0

21 files changed

Lines changed: 611 additions & 31 deletions

assets/contributors.csv

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,4 +105,5 @@ Mohamad Najem,Arm,,,,
105105
Ruifeng Wang,Arm,,,,
106106
Zenon Zhilong Xiu,Arm,,zenon-zhilong-xiu-491bb398,,
107107
Zbynek Roubalik,Kedify,,,,
108-
Yahya Abouelseoud,Arm,,,,
108+
Ayoub Bourjilat,AC6,Bourjilat,ayoub-bourjilat-a55b58165/,,https://www.ac6.fr/en/
109+
Yahya Abouelseoud,Arm,,,,

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
Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
---
2+
title: Install and Setup Zephyr Workbench in VS Code
3+
weight: 2
4+
5+
### FIXED, DO NOT MODIFY
6+
layout: learningpathall
7+
---
8+
9+
## Set Up Your Zephyr Development Environment
10+
11+
Setting up a [Zephyr](https://zephyrproject.org/) RTOS development environment from scratch can be challenging—requiring developers to manually install SDKs, configure toolchains, and initialize workspace directories. These steps often vary across operating systems and board vendors, leading to a fragmented and error-prone setup process.
12+
13+
***[Zephyr Workbench](https://zephyr-workbench.com/)*** is an open-source Visual Studio Code extension that transforms Zephyr RTOS development into a streamlined IDE experience. Created by [Ac6](https://www.ac6.fr/en/), it automates toolchain setup, project management, and debugging—making Zephyr projects faster to start and easier to scale.
14+
15+
In this learning path, you’ll walk through the essential steps to install Zephyr Workbench and configure a complete development environment on your local machine. Once complete, you’ll be ready to create, build, and debug applications for Arm Cortex-M platforms using Zephyr RTOS.
16+
17+
**Key capabilities:**
18+
19+
- One-Click Environment Setup: Automatically installs required host tools including Python, CMake, Ninja, and Git.
20+
- SDK and Toolchain Management: Supports importing and managing Zephyr SDKs with version and architecture selection.
21+
- Workspace and Project Initialization: Initializes west workspaces and creates board-specific applications from samples.
22+
- Integrated Build and Flash: Builds Zephyr applications and flashes to hardware directly from the VS Code interface.
23+
- Advanced Debug and Memory Analysis: Provides breakpoint debugging and memory usage insights with hardware probe support.
24+
25+
## What you need before installing Zephyr Workbench
26+
27+
To get started with Zephyr Workbench, ensure you have the following required Software:
28+
29+
**Visual Studio Code:**
30+
31+
- Download, install, and start Visual Studio Code on your desktop.
32+
33+
**Windows Requirements:**
34+
35+
- Windows 10 or later (64-bit)
36+
- Administrator privileges for installing tools and drivers
37+
- Internet connection for downloading packages and SDKs
38+
39+
Or
40+
41+
**macOS Requirements:**
42+
43+
- On macOS, the package manager "Homebrew" is required.
44+
- To install Homebrew, run the following command:
45+
46+
```bash
47+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
48+
```
49+
50+
**Supported Hardware:**
51+
52+
- STM32 development boards (STM32 Discovery, Nucleo series)
53+
- Nordic Semiconductor boards (nRF52, nRF53, nRF91 series)
54+
- NXP development boards (FRDM, LPCXpresso series)
55+
- Espressif boards (ESP32-based boards)
56+
- And many other Zephyr-supported platforms
57+
58+
## Set Up Zephyr Workbench Extension in Visual Studio Code
59+
60+
This module walks you through installing the Zephyr Workbench extension and setting up your Arm-ready development environment.
61+
62+
### Install the Extension
63+
64+
1. **Open VS Code Extension Marketplace**
65+
- Open Visual Studio Code
66+
- Navigate to the `Extensions view` by clicking the Extensions icon in the Activity Bar
67+
- Or use the keyboard shortcut `Ctrl+Shift+X` (Windows/Linux) or `Cmd+Shift+X` (macOS)
68+
2. **Search and Install**
69+
- In the search box, type "Zephyr Workbench"
70+
- Locate the official "Zephyr Workbench" extension by Ac6
71+
- Click "Install" to add the extension to VS Code
72+
3. **Verify Installation**
73+
- After installation, you should see the Zephyr Workbench panel in the VS Code sidebar
74+
- The extension icon will appear in the Activity Bar
75+
- A welcome message may appear confirming successful installation
76+
77+
Once installed, the Zephyr Workbench icon appears in the sidebar with a welcome screen.
78+
79+
80+
81+
### Install Required Host Tools
82+
83+
In the Zephyr Workbench panel, click ***Install Host Tools*** to automatically install dependencies:
84+
- ***Python*** 3.x
85+
- ***CMake***
86+
- ***Ninja*** build system
87+
- ***Git***
88+
- ***Device Tree Compiler*** (DTC)
89+
- ***West*** meta-tool
90+
91+
![Install Host Tools #center](images/install_host_tools.png)
92+
93+
{{% notice Note %}}
94+
On Windows, you may be prompted for permission when tools are executed. Click "Allow" when requested.
95+
{{% /notice %}}
96+
97+
After host tools installation, click ***Verify Host Tools*** to check the version of each installed packages.
98+
99+
100+
### Import and Configure Toolchain
101+
102+
Next, download and configure the ***Toolchain***.
103+
104+
- Click ***Import Toolchain*** in the Zephyr Workbench panel
105+
- Select the toolchain family (***Zephyr SDK***)
106+
- configure the ***SDK Type***: choose ***Minimal*** for basic functionality
107+
- **Version:** Select desired version (e.g., v0.17.0 or v0.17.3)
108+
- **Toolchains:** Select target architectures (In this learning path, you only need to select ***arm***)
109+
- **Location:** Specify the parent directory for SDK installation
110+
- Click **"Import"** to download and install the SDK
111+
112+
![Import Toolchain #center](images/import_toolchain.png)
113+
114+
115+
### Initialize the Zephyr Project Workspace
116+
117+
Zephyr uses a Git-based workspace manager called West to organize its source code, modules, and samples. Use Zephyr Workbench to initialize your first ***west workspace***.
118+
119+
In the Zephyr Workbench panel, click “Initialize Workspace” and fill in the following settings:
120+
121+
- Click "Initialize workspace" to set up your project environment
122+
- Configure workspace settings in the opened page:
123+
- **Source location:** Select "Minimal from template"
124+
- **Path:** Use default `https://github.com/zephyrproject`
125+
- **Template:** Choose target-specific template (e.g., STM32, NXP)
126+
- **Branch:** Select Zephyr version (e.g., v3.7.0, v4.1.0)
127+
- **Location:** Specify directory for workspace (takes ~10 minutes to initialize)
128+
- Click "Import" to create and update the workspace
129+
130+
![Initialize West Workspace #center](images/initialize_workspace.png)
131+
132+
{{% notice Note %}}
133+
The workspace initialization downloads the Zephyr source code and dependencies. This process may take several minutes depending on your internet connection.
134+
{{% /notice %}}
135+
136+
### Verify Setup
137+
138+
**Test your setup**
139+
- Confirm that the Zephyr Workbench panel shows all components as installed:
140+
- Host Tools installed successfully
141+
- SDK imported and detected
142+
- West workspace initialized
143+
- Ensure no error messages appear in the VS Code output panel
144+
145+
{{% notice Note %}}
146+
**Troubleshooting tips:**
147+
- Run VS Code as Administrator if host tool installation fails on Windows
148+
- Ensure internet access is allowed through your firewall
149+
- Check for minimum 2GB free disk space before importing SDK
150+
{{% /notice %}}
151+
152+
You’re now ready to create and build your first Zephyr application targeting an Arm Cortex-M board.
153+
154+
After completing this session, your environment is ready to create, build, and debug Zephyr applications in VS Code using Arm Cortex-M boards.

0 commit comments

Comments
 (0)