Skip to content

Commit e0a1d02

Browse files
Merge pull request #1668 from jasonrandrews/review
Review debugging Neoverse N2 ref design Learning Path
2 parents fd379a9 + 186cfab commit e0a1d02

File tree

5 files changed

+20
-20
lines changed

5 files changed

+20
-20
lines changed

content/learning-paths/servers-and-cloud-computing/refinfra-debug/_index.md

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
title: Debug Neoverse N2 Reference Design with Arm Development Studio
33

4-
minutes_to_complete: 20
4+
minutes_to_complete: 30
55

66
who_is_this_for: This is an advanced topic for software developers who are interested in debugging the Arm Neoverse N2 Reference Firmware Stack.
77

@@ -25,20 +25,16 @@ armips:
2525
- Neoverse
2626
tools_software_languages:
2727
- Arm Development Studio
28-
- Runbook
2928

3029
operatingsystems:
3130
- Linux
3231

33-
3432
further_reading:
3533
- resource:
3634
title: Neoverse Reference Design Platform Software Documentation
3735
link: https://neoverse-reference-design.docs.arm.com/en/latest/index.html
3836
type: documentation
3937

40-
41-
4238
### FIXED, DO NOT MODIFY
4339
# ================================================================================
4440
weight: 1 # _index.md always has weight of 1 to order correctly

content/learning-paths/servers-and-cloud-computing/refinfra-debug/debugging-bl1-3.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,13 @@ If you would like to add platform-specific debug files, the memory locations are
5353

5454
These commands load the symbol files and specify the memory address location, updating **workspace** to include the path to your own workspace directory.
5555

56-
The `EL` (Exception Level) and number at the end of each command, for example, `EL3:0`, ensure the symbols are loaded into the correct virtual address space and at the correct memory offset. ATF uses absolute addresses for its symbols so we use an offset of 0.
56+
The `EL` (Exception Level) and number at the end of each command, for example, `EL3:0`, ensure the symbols are loaded into the correct virtual address space and at the correct memory offset. ATF uses absolute addresses for its symbols so you can use an offset of 0.
5757

5858
When you connect the debugger, the primary CPU will be "spinning" on a ``b .`` instruction from the one you manually added to the ``bl1_entrypoint`` function.
5959

6060
In this debug panel, you can find common debugging functions like stepping and skipping.
6161

62-
Set a breakpoint in the function you would like to debug. In this example, we set a breakpoint at ``bl1_main()``.
62+
Set a breakpoint in the function you would like to debug. In this example, you can set a breakpoint at ``bl1_main()``.
6363

6464
Simply interrupt the CPU and enter debug command `set $pc += 4'; you can now step through and debug the TF-A boot flow.
6565

content/learning-paths/servers-and-cloud-computing/refinfra-debug/debugging-bl31-4.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ layout: learningpathall
77
---
88

99
## Debugging BL31
10-
Setting a breakpoint for BL1 is simple, but how do we set a breakpoint for BL31?
10+
Setting a breakpoint for BL1 is simple, but how can you set a breakpoint for BL31?
1111

1212
In the tabs panel at the bottom, click the plus **(`+`)** and **add other views**. Here there are multiple views available such as **Register View** and **Memory View**.
1313

14-
For this example, we are only interested in the **Functions** view.
14+
For this example, you are only interested in the **Functions** view.
1515

1616
![add functions alt-text#center](images/add_functions.png "Figure 1. Add functions tab")
1717

content/learning-paths/servers-and-cloud-computing/refinfra-debug/debugging-bl33-uefi-5.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ The log files are stored in:
1919
<workspace>/rd-infra/model-scripts/rdinfra/platforms/rdn2/rdn2
2020
```
2121

22-
Following the previous chapter, we should still be in TF-A. In the Commands window, execute the following command to break at the start of UEFI: ``break EL2N:0xE0000000``. Execute until we are in EL2N address space. This is because the script depends on the current address space when loading in symbols.
22+
Following the previous section, you should still be in TF-A. In the Commands window, execute the following command to break at the start of UEFI: ``break EL2N:0xE0000000``. Execute until we are in EL2N address space. This is because the script depends on the current address space when loading in symbols.
2323

2424
In Arm DS, go to the scripts tab and hit "Import a script or directory" then "Import a DS or Jython script"
2525

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,26 @@
11
---
2-
title: Set up environment
2+
title: Set up your development environment
33
weight: 2
44

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

9-
To follow this learning path, you need Arm Development Studio installed, and an appropriate license. See the [Arm Development Studio Install Guide](/install-guides/armds) for instructions. Screenshots in this tutorial are from Arm Development Studio 2023.0.
9+
To debug the Neoverse N2 reference firmware, you need Arm Development Studio installed, and an appropriate license. See the [Arm Development Studio Install Guide](/install-guides/armds) for instructions. Screenshots are from Arm Development Studio 2023.0.
1010

11-
You also need the Neoverse RD-N2 Reference Design Software Stack set up, and an associated FVP (Fixed Virtual Platform). For further information, see [Get started with the Neoverse Reference Design Software Stack](/learning-paths/servers-and-cloud-computing/refinfra-quick-start/).
11+
You also need the Neoverse RD-N2 Reference Design Software Stack set up, and an associated FVP (Fixed Virtual Platform). You should be familiar with [Get started with the Neoverse Reference Design Software Stack](/learning-paths/servers-and-cloud-computing/refinfra-quick-start/) before you start debugging.
1212

1313
## SCP/LCP/RSE debug
1414

15-
Modify this run script:
15+
If you want to debug SCP/LCP/RSE, you need to modify the run script:
1616

17-
```bash
17+
```console
1818
rdinfra/model-scripts/rdinfra/platforms/rdn2/run_model.sh
1919
```
20-
Remove the `–R` parameter from the `PARAMS=` section.
2120

22-
In the original script, this option was used to allow the FVP to continue to execute and not wait for the debug connection.
21+
To prepare for debugging, remove the `–R` parameter from the `PARAMS=` section.
22+
23+
When `-R` is used, the FVP continues execution and does not wait for the debug connection.
2324

2425
![modify parameters alt-text#center](images/modify_params.png "Figure 1. Modify run_model.sh")
2526

@@ -28,18 +29,21 @@ To start a `CADI` debug server, use the `-S` option. For an `Iris` debug server,
2829
{{% /notice %}}
2930

3031
Run the script to launch the model:
32+
3133
```bash
3234
./run_model.sh
3335
```
3436

3537
## AP debug
3638

37-
If you remove the -R flag, RSE CPU wait is on hold and the APs will be powered off. You will have to kick-off the run, then it starts booting from RSE to AP cores. In this case, do *not* remove the -R flag.
39+
To debug the AP, you do not want to remove the `-R` flag.
40+
41+
If you remove the `-R` flag, RSE CPU waits and the APs will be powered off. You will have to kick-off the run, then it starts booting from RSE to AP cores.
3842

3943
This will be explained further in BL1, BL31, and BL33 chapters.
4044

4145
{{% notice FVP Accuracy %}}
42-
FVPS do not completely model the `IMP DEF` behavior that RTL does.
46+
FVPs do not model the `IMP DEF` behavior with the same level of detail included in the RTL design.
4347

44-
FVPs also do not model cycles, performance, or `AXI/ACE/AHB/CHI` bus-level transactions.
48+
FVPs do not model cycles, performance, or `AXI/ACE/AHB/CHI` level transactions.
4549
{{% /notice %}}

0 commit comments

Comments
 (0)