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/servers-and-cloud-computing/openbmc-rdv3/1_introduction_openbmc.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ layout: learningpathall
8
8
9
9
## Introduction to OpenBMC and UEFI
10
10
11
-
In this module, you will learn the roles of OpenBMC and UEFI in the Arm server boot flow, and understand why simulating their integration is key to early-stage development.
11
+
This section explains the roles of OpenBMC and UEFI in the Arm server boot flow, and highlights why simulating their integration is essential for early-stage development.
12
12
13
13
### OpenBMC
14
14
@@ -32,7 +32,7 @@ OpenBMC is particularly well-suited to Arm-based server platforms like **[Neover
32
32
33
33
OpenBMC enables faster development cycles, open innovation, and reduced vendor lock-in across data centers, cloud platforms, and edge environments.
34
34
35
-
**In this Learning Path**, you’ll simulate how OpenBMC manages the early-stage boot process, power sequencing, and remote access for a virtual Neoverse RD-V3 server. You will interact with the BMC console, inspect boot logs, and verify serial-over-LAN and UART communication with the host.
35
+
In this Learning Path, you’ll simulate how OpenBMC manages the earlystage boot process, power sequencing, and remote access for a virtual Neoverse RD-V3 server. You will interact with the BMC console, inspect boot logs, and verify serial-over-LAN and UART communication with the host.
36
36
37
37
### UEFI
38
38
@@ -67,4 +67,4 @@ These interactions are especially critical in Arm server-class platforms—like
67
67
68
68
In this Learning Path, you will build and run the UEFI firmware on the RD-V3 FVP host platform.
69
69
70
-
You will use OpenBMC to power on the virtual Arm server, access the serial console, and monitor the host boot progress like real hardware platform. By inspecting the full boot log and observing system behavior in simulation, you will gain valuable insights into how BMC and UEFI coordinate during early firmware bring-up.
70
+
You will use OpenBMC to power on the virtual Arm server, access the serial console, and monitor the host boot progress like real hardware platform. By inspecting the full boot log and observing system behavior in simulation, you will gain valuable insights into how BMC and UEFI coordinate during early firmware bring-up.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/openbmc-rdv3/2_openbmc_setup.md
+30-30Lines changed: 30 additions & 30 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
---
2
-
title: Set Up Pre-Silicon Development Environment for OpenBMC and UEFI
2
+
title: Set Up the Pre-Silicon Development Environment for OpenBMC and UEFI
3
3
weight: 3
4
4
5
5
### FIXED, DO NOT MODIFY
@@ -8,27 +8,25 @@ layout: learningpathall
8
8
9
9
## Set Up Development Environment
10
10
11
-
In this module, you’ll prepare your workspace to build and simulate OpenBMC and UEFI firmware on the Neoverse RD-V3 platform using Arm Fixed Virtual Platforms (FVPs).
12
-
You’ll install the required tools, configure repositories, and set up a Docker-based build environment for both BMC and host firmware.
11
+
In this section, you’ll prepare your workspace to build and simulate OpenBMC and UEFI firmware on the Neoverse RD-V3 platform using Arm Fixed Virtual Platforms (FVPs).
12
+
You will install the required tools, configure repositories, and set up a Docker-based build environment for both BMC and host firmware.
13
13
14
14
Before getting started, it’s strongly recommended to review the previous Learning Path: [CSS-V3 Pre-Silicon Software Development Using Neoverse Servers](https://learn.arm.com/learning-paths/servers-and-cloud-computing/neoverse-rdv3-swstack).
15
-
That guide walks you through how to use the CSSv3 reference design on FVP to perform early-stage development and validation.
15
+
It walks you through how to use the CSSv3 reference design on FVP to perform early-stage development and validation.
16
16
17
-
Ensure your system meets the following requirements:
18
-
- Access to an Arm Neoverse-based Linux machine (either cloud-based or local) is required, with at least 80 GB of free disk space, 48 GB of RAM, and running Ubuntu 22.04 LTS.
19
-
- Working knowledge of Docker, Git, and Linux terminal tools
20
-
- Basic understanding of server firmware stack (UEFI, BMC, TF-A, etc.)
21
-
- Docker installed, or GitHub Codespaces-compatible development environment
17
+
You will perform the steps outlined below on your Arm Neoverse-based Linux machine running Ubuntu 22.04 LTS. You will need at least 80 GB of free disk space, 48 GB of RAM.
22
18
23
19
### Install Required Packages
24
20
25
21
Install the base packages for building OpenBMC with the Yocto Project:
### Download and Install the Arm FVP Model (RD-V3)
42
40
43
-
Download and extract the RD-V3 FVP binary from Arm:
41
+
Download and extract the RD-V3 FVP:
44
42
```bash
45
43
mkdir ~/fvp
46
44
cd~/fvp
@@ -49,7 +47,7 @@ tar -xvf FVP_RD_V3_R1_11.29_35_Linux64_armv8l.tgz
49
47
./FVP_RD_V3_R1.sh
50
48
```
51
49
52
-
The FVP installation may prompt you with a few questions—choosing the default options is sufficient for this learning path. By default, the FVP will be installed in /home/ubuntu/FVP_RD_V3_R1.
50
+
The FVP installation may prompt you with a few questions, choosing the default options is sufficient for this learning path. By default, the FVP will be installed in `$HOME/FVP_RD_V3_R1`.
53
51
54
52
55
53
### Initialize the Host Build Environment
@@ -59,12 +57,10 @@ Set up a workspace for host firmware builds:
This approach allows you to fetch only the `patch` folder from the remote Git repository—saving time and disk space.
87
83
88
-
Next, create an `apply_patch.sh` script inside the `~` directory and paste in the following content.
84
+
Next, using a file editor of your choice, create an `apply_patch.sh` script inside the `~` directory and paste in the following content.
89
85
This script will automatically apply the necessary patches to each firmware component.
90
86
91
-
```patch
87
+
```bash
92
88
FVP_DIR="host"
93
89
SOURCE=${PWD}
94
90
@@ -139,9 +135,9 @@ These patches enable additional UEFI features, integrate the Redfish client, and
139
135
### Build RDv3 R1 Host Docker Image
140
136
141
137
Before building the host image, update the following line in `~/host/grub/bootstrap` to replace the `git://` protocol.
142
-
Some networks or corporate environments restrict `git://` access due to firewall or security policies. Switching to `https://` ensures reliable and secure access to external Git repositories.
138
+
Some networks may restrict `git://` access due to firewall or security policies. Switching to `https://` ensures reliable and secure access to external Git repositories.
The other [Arm Learning Path](https://learn.arm.com/learning-paths/servers-and-cloud-computing/neoverse-rdv3-swstack/3_rdv3_sw_build/) provides a complete introduction to setting up the RDv3 development environment — feel free to refer to it for more details.
213
+
This [Arm Learning Path](/learning-paths/servers-and-cloud-computing/neoverse-rdv3-swstack/3_rdv3_sw_build/) provides a complete introduction to setting up the RDv3 development environment, please refer to it for more details.
214
214
{{% /notice %}}
215
215
216
216
217
217
### Build OpenBMC Image
218
218
219
-
OpenBMC is built on the Yocto Project, which uses BitBake as its build tool.
219
+
OpenBMC is built on the Yocto Project, which uses `BitBake` as its build tool.
220
220
You don’t need to download BitBake separately, as it is included in the OpenBMC build environment.
221
221
Once you’ve set up the OpenBMC repository and initialized the build environment, BitBake is already available for building images, compiling packages, or running other tasks.
222
222
@@ -230,9 +230,9 @@ source setup fvp
230
230
bitbake obmc-phosphor-image
231
231
```
232
232
233
-
During the OpenBMC build process, you may encounter a native compilation error when building Node.js (especially version 22+) due to high memory usage during the V8 engine build phase depends on your build machine.
233
+
During the OpenBMC build process, you may encounter a native compilation error when building `Node.js` (especially version 22+) due to high memory usage during the V8 engine build phase.
234
234
235
-
```log
235
+
```output
236
236
g++: fatal error: Killed signal terminated program cc1plus
237
237
compilation terminated.
238
238
ERROR: oe_runmake failed
@@ -249,9 +249,9 @@ PARALLEL_MAKE = "-j2"
249
249
250
250
This ensures that BitBake only runs two parallel tasks and that each Makefile invocation limits itself to two threads. It significantly reduces peak memory usage and avoids OOM terminations.
251
251
252
-
Once success build, you should see a successful build message similar to:
252
+
With a successful build, you should see output similar to:
@@ -290,9 +290,9 @@ This confirms that the OpenBMC image was built successfully.
290
290
The first build may take up to an hour depending on your system performance, as it downloads and compiles the entire firmware stack.
291
291
{{% /notice %}}
292
292
293
-
Your workspace should now follow a structured layout that separates the FVP simulator, host build system, OpenBMC source, and patches—making it easier to organize, maintain, and troubleshoot your simulation environment.
293
+
Your workspace should now be structured to separate the FVP, host build system, OpenBMC source, and patches—simplifying organization, maintenance, and troubleshooting.
294
294
295
-
```text
295
+
```output
296
296
├── FVP_RD_V3_R1
297
297
├── apply_patch.sh
298
298
├── fvp
@@ -319,4 +319,4 @@ Your workspace should now follow a structured layout that separates the FVP simu
319
319
└── run.sh
320
320
```
321
321
322
-
With both the OpenBMC and host firmware environments built and configured, you’re now fully prepared to launch the full system simulation and observe the boot process in action.
322
+
With both the OpenBMC and host firmware environments built and configured, you’re now fully prepared to launch the full system simulation and observe the boot process in action.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/openbmc-rdv3/3_openbmc_simulate.md
+15-16Lines changed: 15 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
---
2
-
title: Run Pre-Silicon OpenBMC and Host UEFI Simulation
2
+
title: Run OpenBMC and Host UEFI Simulation on RD-V3 FVP
3
3
weight: 4
4
4
5
5
### FIXED, DO NOT MODIFY
@@ -11,39 +11,39 @@ layout: learningpathall
11
11
With your environment prepared, you can now simulate the full pre-silicon firmware boot flow using the Arm Neoverse RD-V3 reference design.
12
12
You’ll build the OpenBMC image, launch the Arm Fixed Virtual Platform (FVP), and observe the full boot process of both the BMC and host UEFI firmware in a simulated environment.
13
13
14
-
This simulation launches multiple UART consoles—each mapped to a separate terminal window for different subsystems (e.g., Neoverse V3, Cortex‑M55, Cortex‑M7, and the Cortex-A BMC).
14
+
This simulation launches multiple UART consoles,each mapped to a separate terminal window for different subsystems (e.g., Neoverse V3, Cortex‑M55, Cortex‑M7, and the Cortex-A BMC).
15
15
16
-
These graphical terminal windows require a desktop session. If you're accessing the simulation over SSH (e.g., on an AWS instance), they may not display properly.
16
+
These graphical terminal windows require a desktop session. If you're accessing the simulation over SSH (e.g., on a cloud instance), they may not display properly.
17
17
18
-
To ensure proper display and interactivity, we recommend installing a Remote Desktop environment using XRDP.
18
+
To ensure proper display and interactivity, it is recommended to install a Remote Desktop environment using XRDP.
19
19
20
-
In AWS Ubuntu 22.04 instance, you need install required packages:
20
+
On an Arm cloud Ubuntu 22.04 instance, you will need to install required packages:
You may need to follow the Step 2 on RDv3 [learning path](https://learn.arm.com/learning-paths/servers-and-cloud-computing/neoverse-rdv3-swstack/4_rdv3_on_fvp/) to setup the networking and GDM configuration.
28
+
You may need to follow the Step 2 on the [RD-V3 learning path](/learning-paths/servers-and-cloud-computing/neoverse-rdv3-swstack/4_rdv3_on_fvp/) to setup the networking and GDM configuration.
29
29
30
30
Once connected via Remote Desktop, open a terminal and launch the RD‑V3 FVP simulation:
31
31
32
32
## Execute Pre-Silicon OpenBMC Simulation
33
33
34
-
To make the simulation process smoother and more intuitive, you’ll need to modify a script from Arm’s GitLab repository.
34
+
To make the simulation process more intuitive, you’ll need to modify a script from Arm’s GitLab repository:
@@ -116,5 +115,5 @@ After simulation completes, logs for both the BMC and host will be stored in `~/
116
115
By reviewing the contents of the logs folder, you can verify the expected system behavior or quickly diagnose
117
116
any anomalies that arise during boot or runtime.
118
117
119
-
With the simulation running successfully, you’re now ready to perform real-time testing between the host and the BMC.
120
-
In the next module, you’ll explore how to interact with the BMC using UART and IPMI from the host side—validating communication channels in a pre-silicon context.
118
+
With the simulation running successfully, you are now ready to perform real-time testing between the host and the BMC.
119
+
In the next section, you will explore how to interact with the BMC using UART and IPMI from the host side, validating communication channels in a pre-silicon context.
Copy file name to clipboardExpand all lines: content/learning-paths/servers-and-cloud-computing/openbmc-rdv3/4_openbmc_communicate.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,8 +8,8 @@ layout: learningpathall
8
8
9
9
## Access the Host Console via OpenBMC SOL
10
10
11
-
The OpenBMC platform provides `Serial over LAN` (SOL), allowing you to access the host console (RD-V3 FVP) remotely through the BMC—without needing a physical serial cable.
12
-
In this module, you’ll use `socat` to create a virtual UART bridge, verify port mappings, and access the host console via the BMC Web UI.
11
+
The OpenBMC platform provides `Serial over LAN` (SOL), allowing you to access the host console (RD-V3 FVP) remotely through the BMC, without needing a physical serial cable.
12
+
In this section, you will use `socat` to create a virtual UART bridge, verify port mappings, and access the host console via the BMC Web UI.
13
13
14
14
### Step 1: Connect the BMC and Host Consoles
15
15
@@ -19,13 +19,13 @@ Run the following command on your development Linux machine (where the simulatio
19
19
socat -x tcp:localhost:5005 tcp:localhost:5067
20
20
```
21
21
22
-
This command connects the host-side UART port (5005) to the BMC-side port (5067), allowing bidirectional serial communication.
22
+
This command connects the host-side UART port (5005) to the BMC-side port (5067), allowing bi-directional serial communication.
23
23
24
24
{{% notice Note %}}
25
25
If you see a Connection refused error, check the FVP logs to verify the port numbers:
26
-
* In fvp_boot.log, look for a line like:
26
+
* In `fvp_boot.log`, look for a line like:
27
27
terminal_ns_uart0: Listening for serial connection on port 5005
28
-
* In obmc_boot.log, confirm the corresponding line:
28
+
* In `obmc_boot.log`, confirm the corresponding line:
29
29
terminal_3: Listening for serial connection on port 5067
30
30
{{% /notice %}}
31
31
@@ -56,15 +56,15 @@ This updates the BMC’s internal host state, allowing UEFI to begin execution.
56
56
{{% notice Note %}}
57
57
As a reminder, the first character of the password is the number ***0***, not a capital ***O***.
58
58
{{% /notice %}}
59
-
After login, you'll see the Web UI dashboard:
59
+
After login, you should see the Web UI dashboard:
60
60
61
61
- From the Overview page, click the `SOL Console` button.
- The SOL terminal in the Web UI will display the host console output (UEFI shell or Linux login). You can type commands directly as if you were connected over a physical serial line.
Once connected to the SOL terminal, you can monitor the UEFI boot sequence, interact with the host shell, and run diagnostic or recovery workflows—just as if you were connected to a physical serial port.
67
+
Once connected to the SOL terminal, you can monitor the UEFI boot sequence, interact with the host shell, and run diagnostic or recovery workflows, just as if you were connected to a physical serial port.
68
68
69
69
This confirms that OpenBMC is fully managing host power and console access in your simulated environment.
0 commit comments