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/embedded-and-microcontrollers/linux-on-fvp/1-Intro.md
+24-24Lines changed: 24 additions & 24 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,33 +6,33 @@ weight: 2
6
6
layout: learningpathall
7
7
---
8
8
9
-
Arm Ecosystem Fixed Virtual Platforms (FVPs) model hardware subsystems target different market segments and applications.
9
+
Arm Ecosystem Fixed Virtual Platforms (FVPs) model hardware subsystems and target different market segments and applications.
10
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 a widely available platform ahead of silicon.
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
12
13
-
Arm provides different types of FVPs. 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) on Arm Developer website. You can use these FVPs without a license. For example, 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.
13
+
Arm provides two different types of FVPs.
14
14
15
-
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. However, some Armv8 FVPs with a fixed number of cores are replaced by FVPs with a configurable number of cores, for example:
15
+
## Arm Ecosystem FVPs
16
16
17
-
* FVP_Base_Cortex-A55x4
18
-
* FVP_Base_Cortex-A78x4
19
-
* FVP_Base_Cortex-X1x4
20
-
* FVP_Base_Cortex-X2x4
21
-
* FVP_Base_Cortex-A78AEx2
22
-
* FVP_Base_Cortex-A76x4
23
-
* FVP_Base_Neoverse-N2x1
24
-
* FVP_Base_Neoverse-N1x4
25
-
* FVP_Base_Cortex-A510x4
26
-
* FVP_Base_Cortex-A53x4
27
-
* FVP_Base_Cortex-A76x4
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.
28
18
29
-
### Set up the environment
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.
30
28
31
-
The [Arm reference software](https://gitlab.arm.com/arm-reference-solutions/arm-reference-solutions-docs/-/blob/master/docs/aemfvp-a/user-guide.rst) stack is the codebase. 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.
29
+
## Arm Base FVPs specific CPU types
32
30
33
-
he FVP_Base_Cortex-\<xxx> FVP is available for you to build and run Linux host environments. Contact Arm Support [[email protected]](mailto:[email protected]) to request access.
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.
34
32
35
-
This document supports running the software stack on the following FVPs:
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
36
37
37
* FVP_Base_Cortex-A510x4
38
38
* FVP_Base_Cortex-A510x4+Cortex-A710x4
@@ -68,9 +68,9 @@ This document supports running the software stack on the following FVPs:
68
68
* FVP_Base_Neoverse-E1x4
69
69
* FVP_Base_Neoverse-N1x4
70
70
71
-
However, this is not a full list. This blog might apply to more FVP platforms, but no test is done for these platforms, for example:
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.
Copy file name to clipboardExpand all lines: content/learning-paths/embedded-and-microcontrollers/linux-on-fvp/3-Steps.md
+34-26Lines changed: 34 additions & 26 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,22 +1,35 @@
1
1
---
2
2
title: Use TF-A extra build options to build cpu_ops into images
3
-
weight: 4
3
+
weight: 3
4
4
5
5
### FIXED, DO NOT MODIFY
6
6
layout: learningpathall
7
7
---
8
8
9
-
### 1. Why build cpu_ops into images
9
+
## What are cpu_ops?
10
+
11
+
In the context of Arm Trusted Firmware-A (TF-A), cpu_ops refers to a framework that defines CPU-specific operations essential for managing power states and initialization sequences. This framework is particularly crucial for implementing the Power State Coordination Interface (PSCI), which standardizes power management in Arm systems.  
12
+
13
+
## What is the purpose of cpu_ops?
14
+
15
+
The cpu_ops framework provides a set of function pointers tailored to specific CPU architectures. These functions handle operations such as:
• Power Management: Managing CPU power-down and power-up sequences.
18
+
• Errata Workarounds: Applying necessary workarounds for known CPU errata during initialization.
19
+
20
+
By abstracting these operations, TF-A can support multiple CPU types seamlessly, allowing for a modular and maintainable codebase.
21
+
22
+
## Why build cpu_ops into images?
10
23
11
24
If you build the software without any modification, you might get the following error message after running the software stack:
12
25
13
-
```
26
+
```console
14
27
ASSERT: File lib/cpus/aarch64/cpu_helpers.S Line 00035
15
28
```
16
29
17
-
The previous error message is issued because the TF-A does not build the cpu_ops into the images:
30
+
The previous error message occurs because the TF-A does not build the cpu_ops into the images:
18
31
19
-
```
32
+
```console
20
33
31 /* Get the matching cpu_ops pointer */
21
34
22
35
32 bl get_cpu_ops_ptr
@@ -33,7 +46,7 @@ The previous error message is issued because the TF-A does not build the cpu_ops
33
46
34
47
The cpu_ops are defined in the source file as follows:
35
48
36
-
```
49
+
```console
37
50
lib/cpus/aarch64/cortex_a510.S
38
51
lib/cpus/aarch64/cortex_a53.S
39
52
lib/cpus/aarch64/cortex_a55.S
@@ -46,9 +59,11 @@ lib/cpus/aarch64/cortex_a72.S
46
59
lib/cpus/aarch64/cortex_a73.S
47
60
```
48
61
49
-
Check the Makefile (plat/arm/board/fvp/platform.mk) of the FVP platform. You can find the following code:
62
+
Check the Makefile (plat/arm/board/fvp/platform.mk) of the FVP platform.
50
63
51
-
```
64
+
Find the following code:
65
+
66
+
```console
52
67
ifeq (${HW_ASSISTED_COHERENCY}, 0)
53
68
# Cores used without DSU
54
69
FVP_CPU_LIBS += lib/cpus/aarch64/cortex_a35.S \
@@ -89,9 +104,9 @@ else
89
104
endif
90
105
```
91
106
92
-
HW_ASSISTED_COHERENCY = 0 and CTX_INCLUDE_AARCH32_REGS =1 are default build options.
107
+
Default build options are `HW_ASSISTED_COHERENCY = 0` and `CTX_INCLUDE_AARCH32_REGS = 1`.
93
108
94
-
### 2. Required build options
109
+
### What are the required build options to fix the problem?
95
110
96
111
Building the cpu_ops into the TF-A image requires different build options, depending on the CPU type. For example, different platforms require different build options when building the TF-A:
97
112
@@ -101,42 +116,35 @@ Building the cpu_ops into the TF-A image requires different build options, depen
101
116
102
117
Note: The build option USE_COHERENT_MEM cannot be enabled with HW_ASSISTED_COHERENCY=1.
103
118
104
-
105
-
### 3. Steps to build cpu_ops into the TF-A image
119
+
### What are the steps to build cpu_ops into the TF-A image?
106
120
107
121
Perform the following steps to build cpu_ops into the TF-A image:
108
122
109
-
3.1 Modify the following build script to add build options. The [Arm reference software stack](https://gitlab.arm.com/arm-reference-solutions/arm-reference-solutions-docs/-/blob/master/docs/aemfvp-a/user-guide.rst) uses the [build-scripts](https://gitlab.arm.com/arm-reference-solutions/build-scripts) to build the TF-A.
123
+
Modify the following build script to add build options. The [Arm reference software stack](https://gitlab.arm.com/arm-reference-solutions/arm-reference-solutions-docs/-/blob/master/docs/aemfvp-a/user-guide.rst) uses the [build-scripts](https://gitlab.arm.com/arm-reference-solutions/build-scripts) to build the TF-A.
110
124
111
-
```
112
-
build-scripts/ configs/aemfvp-a/aemfvp-a
113
-
```
114
-
115
-
3.2 Add TF-A build options, depending on the CPU type. For example:
125
+
Add TF-A build options, depending on the CPU type. For example:
0 commit comments