Using GDB with RD-1AE
This article covers specific details on how to use GDB with the RD-1AE board in Arm Virtual Hardware (AVH).
For general information on using GDB with AVH, refer to the GDB / LLDB article.
Cores Overview
By default the RD-1AE processor is arranged like AAAARRRRRRRmm
. When a configuration with additional cores has been selected the additional application cores will be prepended to the string as AAAAAAAARRRRRRRmm
, AAAAAAAAAAAARRRRRRRmm
, or AAAAAAAAAAAAAAAARRRRRRRmm
for instances using 17, 21, or 25 cores respectively.
AArch64-A Cores
The first four (eight, twelve, or sixteen) cores are AArch64-A cores.
The IDs for these cores are 0-3 (0-7, 0-11, 0-15).
AArch64-R Cores
The next seven are AArch64-R cores, and the last two are AArch64-M cores.
The IDs for these M cores are numbered 4-10 (8-14, 12-18, 16-22), and the AArch64-R cores are in clusters CL0, CL1, and CL2.
- ID 4 (8, 12, 16) is in CL0.
- IDs 5-6 (9-10, 13-14, 17-18) are in CL1.
- IDs 7-10 (11-14, 15-18, 19-22) are in CL2.
AArch32-M Cores
The last two cores are AArch32-M cores.
The IDs for these cores are 11-12 (15-16, 19-20, 23-24).
Since there is no delineation between the M cores, you need to know what their IDs are in the set of CPUs.
- The CPU with ID 11 (15, 19, 20) is the SCP.
- The CPU with ID 12 (16, 20, 24) is the RSS.
Ports
Use the monitor mux
command to ask for info from the GDB server.
(gdb) monitor mux
> port 0: stopped, AArch64-A, CPUs 0-3
- port 1: not connected, AArch64-R, CPUs 4-10
- port 2: not connected, AArch32-M, CPUs 11-12
The ports returned are relative of port 4000.
If you want to connect to the AArch64-A cores, you would connect to port 4000.
For AArch64-R cores, you would connect to port 4001.
And for AArch32-M cores, you would connect to port 4002.