Skip to content

Commit ab60d4d

Browse files
Merge pull request #1934 from jasonrandrews/review
First review of FVP Learning Path
2 parents 8f2b705 + 3129b82 commit ab60d4d

File tree

8 files changed

+214
-238
lines changed

8 files changed

+214
-238
lines changed

content/learning-paths/embedded-and-microcontrollers/linux-on-fvp/1-Intro.md

Lines changed: 0 additions & 76 deletions
This file was deleted.

content/learning-paths/embedded-and-microcontrollers/linux-on-fvp/2-Setup.md

Lines changed: 0 additions & 54 deletions
This file was deleted.

content/learning-paths/embedded-and-microcontrollers/linux-on-fvp/_index.md

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,36 @@
11
---
2-
title: Run and Debug Linux Software Stack on Arm Fixed Virtual Platforms
2+
title: Run and Debug a Linux Software Stack on Arm Virtual Platforms
33

44
minutes_to_complete: 180
55

66
draft: true
77
cascade:
88
draft: true
99

10-
who_is_this_for: This learning path describes necessary steps to get a working Linux system running on the Arm Fixed Virtual Platforms. In addition, the steps to debug the Trusted Firmware-A and Linux Kernel by using the Arm DS.
10+
who_is_this_for: This introductory topic is designed for developers interested in running Linux on Arm Fixed Virtual Platforms (FVPs) and debugging Trusted Firmware-A and the Linux Kernel using Arm Development Studio.
1111

1212
learning_objectives:
13-
- Run and Debug Linux Software Stack
13+
- Run a Linux software stack using Arm Fixed Virtual Platforms.
14+
- Debug the firmware and Linux kernel using Arm Development Studio.
1415

1516
prerequisites:
16-
- A Linux computer
17-
- Arm Development Studio
18-
- Basic knowledge of Assembly and C language
17+
- A Linux computer with Arm Development Studio installed (works only on x86-64).
18+
- Basic knowledge of Assembly and C language.
1919

2020
author: Qixiang Xu
2121

2222
### Tags
2323
skilllevels: Introductory
24-
subjects: Fixed Virtual Platform
24+
subjects: Embedded Linux
2525
armips:
26-
- Fixed Virtual Platform
26+
- Cortex-A
2727
operatingsystems:
2828
- Linux
2929
tools_software_languages:
3030
- Arm Development Studio
31-
- Arm Virtual Hardware
3231
- C
33-
- Arm Development Studio
3432
- Assembly
3533

36-
37-
38-
3934
further_reading:
4035
- resource:
4136
title: Fast Models Fixed Virtual Platforms Reference Guide

content/learning-paths/embedded-and-microcontrollers/linux-on-fvp/6-Debug.md renamed to content/learning-paths/embedded-and-microcontrollers/linux-on-fvp/debug.md

Lines changed: 28 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
11
---
22
title: Debug Software Stack
3-
weight: 7
3+
weight: 6
44

55
### FIXED, DO NOT MODIFY
66
layout: learningpathall
77
---
88

9-
### 1. Arm DS and FVP Configuration
9+
## Debug using Arm Development Studio
1010

11-
To debug the TF-A and Linux kernel, the Arm DS debugger is used as the debugger. You can get the [Arm DS](https://developer.arm.com/downloads/view/DS000B) from the [Arm Developer website](https://developer.arm.com/).
11+
To debug TF-A and Linux kernel, you can use the Arm Development Studio (Arm DS) debugger. You can get it from the [Arm Development Studio download page](https://developer.arm.com/downloads/view/DS000B).
1212

13-
DWARF 5 is the default option in GCC 11 and Arm DS v2022.2 initial support for DWARF 5 debug information. If your GCC version is later than GCC11, download the latest Arm DS to get support for DWARF 5.
13+
DWARF 5 is the default option in GCC 11 and Arm Development Studio version v2022.2 includes initial support for DWARF 5 debug information.
1414

15-
By default, Arm DS provides the following Base FVP models:
15+
If your GCC version is later than GCC 11, download the latest Arm Development Studio to get support for DWARF 5.
16+
17+
Arm Development Studio includes the following Base FVP models:
1618

1719
* FVP_Base_Cortex-A32x1
1820
* FVP_Base_Cortex-A35x1
@@ -41,33 +43,37 @@ By default, Arm DS provides the following Base FVP models:
4143
* FVP_Base_Cortex-X1x2
4244
* FVP_Base_Cortex-X2x2
4345

44-
Arm FVPs that are not provided by Arm DS installation must be defined in the PATH environment variable of your OS to be available for Arm DS. Otherwise, you might get the following error when starting the debug connection.
46+
Arm FVPs that are not provided by Arm DS installation must be defined in the PATH environment variable to be available for Arm Development Studio. Otherwise, you might get the following error when starting the debug connection.
4547

46-
![Connection Failed Screen](failed.png "Figure 4. Connection Failed Screen")
48+
![Connection Failed Screen #center](failed.png")
4749

48-
For Linux, set up the PATH in the appropriate shell configuration file. For example, add the following line in ~/.bashrc,
50+
For Linux, set up the PATH in the appropriate shell configuration file.
4951

50-
```
51-
export PATH=<your model path>/bin:$PAT
52+
For example, add the following line in your `~/.bashrc` file:
53+
54+
```console
55+
export PATH=<your model path>/bin:$PATH
5256
```
5357

54-
After changing the PATH environments, you might need to start the Arm DS from the terminal for the PATH to take effect. For example:
58+
After changing the search PATH, you need to start Arm Development Studio from a terminal with the new PATH.
5559

56-
```
60+
Start Development Studio by running the `armds_ide` command:
61+
62+
```console
5763
/opt/arm/developmentstudio-2022.2/bin/armds_ide
5864
```
5965

60-
![Arm DS IDE](armds_ide.png "Figure 5. Arm DS IDE")
66+
![Arm DS IDE #center](armds_ide.png)
6167

62-
### 2. FVP Debug Connection
68+
## FVP Debug Connection
6369

64-
The FVP model to connect must be available in the Development Studio configuration database so that you can select it in the Model Connection dialog box.
70+
Before debugging, the FVP model you want to use must be available in the Arm DS configuration database so that you can select it in the Model Connection dialog box.
6571

6672
If the FVP model is not available, you must import it and create a new model configuration. For details, see [create a new model](https://developer.arm.com/documentation/101470/2022-2/Platform-Configuration/Model-targets/Create-a-new-model-configuration).
6773

6874
Most CPU FVP models are available for your edition of Arm DS and the FVPs are listed under the Arm FVP (Installed with Arm DS) and Arm FVP as shown in the following figure:
6975

70-
![Debug Configurations screen](debug_config.png "Figure 6. Debug Configurations screen")
76+
![Debug Configurations screen #center](debug_config.png)
7177

7278
To use Arm DS to connect to an FVP model for bare-metal debugging, perform the following steps:
7379

@@ -77,15 +83,13 @@ To use Arm DS to connect to an FVP model for bare-metal debugging, perform the f
7783

7884
3. In the Connection tab, select the target and connection settings:
7985

80-
3.1. In the Select target panel confirm the target selected. For example, select Arm FVP (Installed with Arm DS) Base_A55 x4 > Bare Metal Debug:
81-
82-
![Select target](Select_target.png "Figure 7. Select target")
86+
In the Select target panel confirm the target selected. For example, select Arm FVP (Installed with Arm DS) Base_A55 x4 > Bare Metal Debug:
8387

84-
3.2 Specify the Model parameters under the Connections.
88+
![Select target #center](Select_target.png)
8589

86-
3.3 The model parameters are like the following, and these parameters are described at the section Run software stack on FVP. Different CPU FVPs might have different parameters.
90+
Specify the Model parameters under the Connections. The model parameters are similar to those listed below. These parameters are described at the section Run software stack on FVP. Different CPU FVPs might have different parameters.
8791

88-
```
92+
```console
8993
-C pctl.startup=0.0.0.0 \
9094
-C bp.secure_memory=0 \
9195
-C cache_state_modelled=0 \
@@ -104,7 +108,7 @@ To use Arm DS to connect to an FVP model for bare-metal debugging, perform the f
104108
--data cluster0.cpu0=<SRC_PATH>/output/aemfvp-a/aemfvp-a/fvp-base-revc.dtb@0x83000000
105109
```
106110

107-
4. Configure debugger settings in the Debugger
111+
4. Configure debugger settings in the Debugger
108112

109113
In Run control, choose Connect only to the target.
110114

@@ -127,4 +131,4 @@ This step starts the debug connection, loads the application on the model, and l
127131

128132
9. After these steps, you can debug the software stack as shown in the following figure:
129133

130-
![FVP running](Select_target.png "Figure 8. FVP running")
134+
![FVP running #center](Select_target.png)
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
---
2+
title: Introduction to Arm Ecosystem Fixed Virtual Platforms
3+
weight: 2
4+
5+
### FIXED, DO NOT MODIFY
6+
layout: learningpathall
7+
---
8+
9+
Arm Ecosystem Fixed Virtual Platforms (FVPs) model hardware subsystems and target different market segments and applications.
10+
11+
FVPs use binary translation technology to deliver fast, functional simulations of Arm-based systems, including processor, memory, and peripherals. They implement a programmer's view suitable for software development and enable execution of full software stacks, providing an available platform to run software before silicon is available.
12+
13+
Arm provides two different types of FVPs.
14+
15+
## Arm Ecosystem FVPs
16+
17+
There are several freely available, pre-built Armv8‑A FVPs for download from [Arm Ecosystem Models](https://developer.arm.com/Tools%20and%20Software/Fixed%20Virtual%20Platforms#Downloads) on the Arm Developer website. You can use these FVPs without a license.
18+
19+
There are multiple categories of Ecosystem FVPs such as:
20+
- Architecture FVPs
21+
- Automotive FVPs
22+
- Infrastructure FVPs
23+
- IoT FVPs
24+
25+
For example, in the architecture category, the AEMv8-A Base Platform RevC FVP is freely available, and it supports the latest Armv8‑A architecture versions up to v8.7 and Armv9-A.
26+
27+
The [Arm reference software stack](https://gitlab.arm.com/arm-reference-solutions/arm-reference-solutions-docs/-/blob/master/docs/aemfvp-a/user-guide.rst) is based on the above RevC model.
28+
29+
## Arm Base FVPs specific CPU types
30+
31+
Arm Base Armv8-A FVPs with specific CPU types are configured with a fixed number of cores. These are also called CPU FVPs because they specify the CPU types instead of the architecture version.
32+
33+
The FVP_Base_Cortex-\<xxx> FVP is available for you to build and run on Linux computers. Contact Arm Support [[email protected]](mailto:[email protected]) to request access.
34+
35+
You can use any of the FVPs listed below to run the reference software stack:
36+
37+
* FVP_Base_Cortex-A510x4
38+
* FVP_Base_Cortex-A510x4+Cortex-A710x4
39+
* FVP_Base_Cortex-A53x4
40+
* FVP_Base_Cortex-A55x4
41+
* FVP_Base_Cortex-A55x4+Cortex-A75x4
42+
* FVP_Base_Cortex-A55x4+Cortex-A78x4
43+
* FVP_Base_Cortex-A57x2-A35x4
44+
* FVP_Base_Cortex-A57x2-A53x4
45+
* FVP_Base_Cortex-A57x4
46+
* FVP_Base_Cortex-A57x4-A35x4
47+
* FVP_Base_Cortex-A57x4-A53x4
48+
* FVP_Base_Cortex-A65AEx4
49+
* FVP_Base_Cortex-A65AEx4+Cortex-A76AEx4
50+
* FVP_Base_Cortex-A65x4
51+
* FVP_Base_Cortex-A710x4
52+
* FVP_Base_Cortex-A72x2-A53x4
53+
* FVP_Base_Cortex-A72x4
54+
* FVP_Base_Cortex-A72x4-A53x4
55+
* FVP_Base_Cortex-A73x2-A53x4
56+
* FVP_Base_Cortex-A73x4
57+
* FVP_Base_Cortex-A73x4-A53x4
58+
* FVP_Base_Cortex-A75x4
59+
* FVP_Base_Cortex-A76AEx4
60+
* FVP_Base_Cortex-A76x4
61+
* FVP_Base_Cortex-A77x4
62+
* FVP_Base_Cortex-A78AEx4
63+
* FVP_Base_Cortex-A78Cx4
64+
* FVP_Base_Cortex-A78x4
65+
* FVP_Base_Cortex-X1Cx4
66+
* FVP_Base_Cortex-X1x4
67+
* FVP_Base_Cortex-X2x4
68+
* FVP_Base_Neoverse-E1x4
69+
* FVP_Base_Neoverse-N1x4
70+
71+
### Set up the environment
72+
73+
This Learning Path uses the [Arm reference software](https://gitlab.arm.com/arm-reference-solutions/arm-reference-solutions-docs/-/blob/master/docs/aemfvp-a/user-guide.rst) stack.
74+
75+
Follow the [Armv-A Base AEM FVP Platform Software User Guide](https://gitlab.arm.com/arm-reference-solutions/arm-reference-solutions-docs/-/blob/master/docs/aemfvp-a/user-guide.rst) to set up the environment, download the software stack, and get the toolchain.
76+

0 commit comments

Comments
 (0)