Skip to main content

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.