summaryrefslogtreecommitdiffstats
path: root/recipes-devtools/gdbc6x/gdbc6x/init
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-devtools/gdbc6x/gdbc6x/init')
-rw-r--r--recipes-devtools/gdbc6x/gdbc6x/init48
1 files changed, 48 insertions, 0 deletions
diff --git a/recipes-devtools/gdbc6x/gdbc6x/init b/recipes-devtools/gdbc6x/gdbc6x/init
new file mode 100644
index 00000000..90210b82
--- /dev/null
+++ b/recipes-devtools/gdbc6x/gdbc6x/init
@@ -0,0 +1,48 @@
1#!/bin/bash
2
3GDB_DEVICE_NAME='/dev/gdbtty$i'
4DSP_FIRMWARE_NAME='/lib/firmware/dra7-dsp$[$i+1]-fw.xe66'
5
6DSP_L2_GLOBAL_OFFSET="40000000"
7DSP_L2_GLOBAL_SHIFT="00800000"
8
9case "$1" in
10 start)
11
12 dsp_core_l2_offset=$DSP_L2_GLOBAL_OFFSET
13
14 i=0
15 while [ -c "`eval echo $GDB_DEVICE_NAME`" ]
16 do
17 dsp_firmware=`eval echo $DSP_FIRMWARE_NAME`
18
19 if [ -f "`eval echo $DSP_FIRMWARE_NAME`" ]
20 then
21 eval echo "Initializing $GDB_DEVICE_NAME based on $DSP_FIRMWARE_NAME ..."
22
23 gdb_data_local=`eval readelf -s "$DSP_FIRMWARE_NAME" | \
24 grep 'gdb_globalData' | \
25 awk '{print $2}'`
26
27 echo "gdb_globalData (local) = $gdb_data_local"
28 printf "gdb_globalData (global) = %X\n" \
29 $[0x$gdb_data_local + 0x$dsp_core_l2_offset]
30
31
32 printf "%X\n" $[0x$gdb_data_local + 0x$dsp_core_l2_offset] \
33 >> `eval echo $GDB_DEVICE_NAME`
34 fi
35 i=$[$i + 1]
36 dsp_core_l2_offset=`printf "%X" $[0x$dsp_core_l2_offset + 0x$DSP_L2_GLOBAL_SHIFT]`
37 done
38 ;;
39 stop)
40 # Nothing to be done.
41 ;;
42 *)
43 echo "Usage: $0 {start|stop}"
44 exit 1
45 ;;
46esac
47
48