blob: d9763b4489baf9754abc5f7697016cfa660150d6 [file] [log] [blame]
Sandrine Bailleux7c5df582018-08-30 17:37:43 +02001#! /bin/bash
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02002
3set -e
4
5# Expect the script to run in argument
6if [ $# != 1 ]; then
7 echo "ERROR: No script provided"
Sandrine Bailleux47ab4f42019-05-10 13:23:41 +02008 echo "usage: $(basename $0) <armds_script_to_run>"
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02009 exit 1
10fi
11
12# Is DS-5 command-line debugger found?
Sandrine Bailleux47ab4f42019-05-10 13:23:41 +020013if [ ! $(which armdbg) ]; then
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020014 echo 'ERROR: Failed to find DS-5 command-line debugger.'
Sandrine Bailleux47ab4f42019-05-10 13:23:41 +020015 echo 'Please add the path to the armdbg program in your PATH.'
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020016 echo 'E.g.: export PATH=<DS-5 install dir>/bin:$PATH'
17 exit 1
18fi
19
20# DS-5 configuration database entry for Juno r0
Sandrine Bailleux47ab4f42019-05-10 13:23:41 +020021juno_cdb_entry='Arm::Juno Arm Development Platform (r0)::Bare Metal Debug::Bare Metal Debug::Debug Cortex-A53_0::DSTREAM'
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020022
23# Browse for available DSTREAM connections and lists targets that match the
24# connection type specified in the configuration database entry
25echo "Trying to detect your DSTREAM unit..."
26connections_list=available_connections
Sandrine Bailleux47ab4f42019-05-10 13:23:41 +020027armdbg --cdb-entry "$juno_cdb_entry" --browse \
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020028 | tee $connections_list
29
30# Remove first line in the file (i.e. "Available connections:")
31tail -n +2 $connections_list > ${connections_list}_stripped
32mv ${connections_list}_stripped ${connections_list}
33
Sandrine Bailleux7c5df582018-08-30 17:37:43 +020034if [ ! -s $connections_list ] ; then
35 echo "ERROR: Found no connection"
36 exit 1
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020037fi
38
Sandrine Bailleux7c5df582018-08-30 17:37:43 +020039# Ask the user which connection to use.
40echo
41cat -n $connections_list
42echo -n "Which one do you want to connect to? "
43read connection_id
44
45# Extract the corresponding connection name from the file.
46connection=$(((sed -n "${connection_id}p") | sed 's/^ *//') < $connections_list)
47if [ -z "$connection" ] ; then
48 echo "ERROR: Invalid connection"
49 exit 1
50fi
51
52rm $connections_list
53
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020054# Run DS-5 script
Sandrine Bailleux7c5df582018-08-30 17:37:43 +020055echo
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020056echo "Connecting to $connection..."
Sandrine Bailleux47ab4f42019-05-10 13:23:41 +020057armdbg \
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +020058 --cdb-entry "$juno_cdb_entry" \
59 --cdb-entry-param "Connection=$connection" \
60 --stop_on_connect=false \
61 --script=$1