You are currently reviewing an older revision of this page.
Arm Total Compute Solutions (TCS) is the platform for mobile computing, with double double-digit gains in CPU performance and efficiency to power the next generation of AI and immersive mobile gaming experiences.
Total Compute (TC) software stack is a reference software stack for the Arm Total Compute Fixed Virtual Platform (FVP). The TC software consists of firmware, kernel and file system components that can run on the associated FVP.
Some of its main components are as follows:
This blog shows you how to set up the debugging environment step by step, including how to configure the debug environments for RSS, SCP, and AP.
This blog assumes that you already set up the following environment:
This blog describes the following steps to set up debugging environment for Total Compute Software Stack:
Step 1: Import TC FVP Model into Arm DS.
Step 2: Start FVP and launch the Iris debug server.
Step 3: Establish debug connections in Arm DS, including:
Application Processor debug connection.System Control Processor debug connection.Runtime Security Subsystem debug connection.
Step 4: Load corresponding symbol tables file and start debugging.
Arm DS supports some built-in FVP models, but TC2 FVP is not included in the built-in models of Arm DS. Before you start debugging TC2, you must use the Model Configuration wizard in Arm DS to create debug configurations for new models:
Note: If you encounter a smiliar error message, as shown in the following figure, during the import process, it is because the current version of Arm DS cannot recognize the latest CPU type. In this case, you must update Arm DS to the latest version to support this CPU type.
By default, to run the software stack for TC, the following command is used to launch the FVP.
./run-scripts/tc2/run_model.sh -m <model binary path> -d <distro>
For debugging TC software with Arm DS, it is necessary to start the Iris debug server when starting the FVP. This allows Arm DS to connect to the debug server later. To initiate the Iris debug server during FVP startup, include an additional option -I. When connecting Arm DS to the Iris debug server, the server port is required. To print this port during startup, include an additional parameter -p. This way, the FVP can be launched by using the following command:
./run-scripts/tc2/run_model.sh -m <model binary path> -d <distro> -- -I -p
By default, FVP uses xterm to initialize the serial port output and input for TC platform. In certain situations, the xterm font might appear relatively small, so copying and pasting operations might not be as convenient. For example:
If you want to replace it with the default terminal of Ubuntu, you must add additional parameters as follows:
./run-scripts/tc2/run_model.sh -m <model binary path> -d <distro> -- -I -p \ -C css.terminal_uart1_ap.terminal_command="gnome-terminal -t %title -- telnet localhost %port" \ -C css.terminal_uart_ap.terminal_command="gnome-terminal -t %title -- telnet localhost %port" \ -C soc.terminal_s0.terminal_command="gnome-terminal -t %title -- telnet localhost %port" \ -C soc.terminal_s1.terminal_command="gnome-terminal -t %title -- telnet localhost %port "
The serial ports of the TC FVP are as follows:
After running this command, the output is as follows:
Iris server started listening to port 7100 INFO: GPU Model initialized. INFO: TC2.css.cmn: CI-700 r1p0 model, periphbase=0x0000000050000000, mesh_config_file='TC2_ci700.yml' terminal_uart_ap: Listening for serial connection on port 5006 terminal_uart1_ap: Listening for serial connection on port 5007 terminal_s0: Listening for serial connection on port 5008 terminal_s1: Listening for serial connection on port 5009 terminal_0: Listening for serial connection on port 5010 terminal_1: Listening for serial connection on port 5011
You can observe the port of the Iris debug server, which can be used later.
The TC platform has:
These three systems run different software stacks. To debug them separately or simultaneously, you must create debug connections for each of these three systems in Arm DS.
To create debug connections for these three systems, perform the following steps:
For the System Control Processor and Runtime Security Subsystem, you can repeat the above process. The only difference is that when selecting the CPU, choose Cortex-M3 for the System Control Processor and Cortex-M55 for the Runtime Security Subsystem.
After completing these steps, you have three debug connections as follows: