|
| 1 | +--- |
| 2 | +# User change |
| 3 | +title: "Debug Connections" |
| 4 | + |
| 5 | +weight: 5 # 1 is first, 2 is second, etc. |
| 6 | + |
| 7 | +# Do not modify these elements |
| 8 | +layout: "learningpathall" |
| 9 | +--- |
| 10 | + |
| 11 | +## Debug Connections |
| 12 | + |
| 13 | +You are now ready to create debug connections for each of the sub-systems within Zena CSS. In this section you will create the connections, which will be subsequently enhanced in the following section. You may prefer to fully set up one such connection before moving to others. |
| 14 | + |
| 15 | +Arm Development Studio has full support for Heterogeneous systems such as Zena CSS, and so you can connect to all processors simultaneously. |
| 16 | + |
| 17 | +### Debug connection project |
| 18 | + |
| 19 | +First, create a project to store these connections (`.launch` files) in. |
| 20 | + |
| 21 | +Select `File` > `New...` > `Project` > `General` > `Project`, and give it a meaningful name (`Connections`). |
| 22 | + |
| 23 | +### RSE (Cortex-M55) |
| 24 | + |
| 25 | +Runtime Security Engine (RSE) is based on [Cortex-M55](https://developer.arm.com/Processors/Cortex-M55) core and is a security subsystem fulfilling the role of Root of Trust. |
| 26 | + |
| 27 | +Select `File` > `New` > `Model Connection`. |
| 28 | + |
| 29 | +{{% notice Note %}} |
| 30 | +You can also use `File` > `New` > `Other` > `Arm Debugger` > `Model Connection`, or |
| 31 | + |
| 32 | +`Create a debug connection...` shortcut in the `Debug Control` pane. |
| 33 | +{{% /notice %}} |
| 34 | + |
| 35 | +Specify a connection name (`RSE`), and associate with the above `Connections` project. Click `Next`. |
| 36 | + |
| 37 | +Locate the FVP based on the name you gave it previously (`Zena_CSS_FVP`). The text filter can help you locate it easily. |
| 38 | + |
| 39 | +You will then be presented with the `Edit configuration` pane. In the `Connection` tab, scroll down to locate `Bare Metal Debug` > `Arm_Cortex-M55`. |
| 40 | + |
| 41 | +As you will be later launching the FVP with the software stack loaded, select `Connect to an already running model`. |
| 42 | + |
| 43 | +Assuming the same host will be running both the FVP and the debugger, specify the `Connection address` as the default `127.0.0.1:7100`. |
| 44 | + |
| 45 | +{{% notice Note %}} |
| 46 | +`127.0.0.1` is the same as `localhost`, that is the same host machine as is running the FVP. |
| 47 | + |
| 48 | +It is also possible to connect to a remote host by specifying appropriate IP address, and launching FVP with the `-A` option. |
| 49 | + |
| 50 | +`7100` is the default port number. You may need to change this if necessary. |
| 51 | +{{% /notice %}} |
| 52 | + |
| 53 | +Click `Apply` to save the connection information, and `Close`. Observe that `RSE.launch` is created inside the `Connections` project. |
| 54 | + |
| 55 | +### Safety Island (Cortex-R82AE) |
| 56 | + |
| 57 | +The Safety Island is a subsystem based on [Cortex-R82AE](https://developer.arm.com/Processors/Cortex-R82AE) core. The software running on the Safety Island is responsible for power, clock and CMN control. |
| 58 | + |
| 59 | +The procedure to create this connection is very similar to the above, other than to select `Bare Metal Debug` > `Arm_Cortex-R82AE` from the drop-down. |
| 60 | + |
| 61 | +{{% notice %}} |
| 62 | +For convenience you can copy-and-paste `RSE.launch` as `SI.launch` and just modify the CPU. |
| 63 | +{{% /notice %}} |
| 64 | + |
| 65 | +### Primary Compute (Cortex-A720AE) |
| 66 | + |
| 67 | +The Primary Compute consists of four processor clusters to run a rich OS such as Linux. Each processor cluster includes four [Cortex-A720AE](https://developer.arm.com/Processors/Cortex-A720AE) cores and a [DSU-120AE](https://developer.arm.com/Processors/DSU-120AE) DynamIQ Shared Unit. |
| 68 | + |
| 69 | +The application processors will be debugged in an SMP configuration with Linux Kernel awareness. |
| 70 | + |
| 71 | +As shown above, create `Primary_init.launch` connection and scroll to `Bare Metal Debug` > `ARM_Cortex-A720AE_0`. This will connect to just CPU0, leaving the other CPUs free to run. |
| 72 | + |
| 73 | +To debug the Linux kernel you can make use of the [OS awareness](https://developer.arm.com/documentation/101470/latest/Debugging-Embedded-Systems/About-OS-awareness) feature of the Arm Debugger. |
| 74 | + |
| 75 | +Create `Primary_Linux.launch` connection and scroll to `Linux Kernel Debug` > `ARM_Cortex-A720AEx16 SMP Cluster 1`. This will connect to all 16 `Cortex-A720AE` processors present in the FVP, though only cores 0-3 are used. |
0 commit comments