blob: 0683146498126f98bd1c33a033f55b6423125393 [file] [log] [blame]
Sam Leffler3346fb52021-06-15 13:57:00 -07001#! /bin/bash
2
3# Launch gdb talking to a simulator or similar at localhost:3333
4#
5# ROOTDIR must be set to the top of the shodan development tree
6# (as done by build/setup.sh).
7
8if [[ -z "${ROOTDIR}" ]]; then
9 echo "Source build/setup.sh first"
10 exit 1
11fi
12
Sam Leffler81b6c922022-02-14 10:57:23 -080013TARGET=riscv32-unknown-elf
14GDB="${ROOTDIR}"/cache/toolchain/bin/${TARGET}-gdb
Sam Leffler3346fb52021-06-15 13:57:00 -070015PROGRAM=out/shodan_boot_rom/build-out/multihart_boot_rom/multihart_boot_rom_sim_verilator.elf
16REMOTE=localhost:3333
17
Sam Leffler81b6c922022-02-14 10:57:23 -080018KATA_OUT=out/kata/${TARGET}/debug
19MATCHA_OUT=out/matcha/riscv32imc-unknown-none-elf/debug
Sam Leffler1bba8e52021-06-25 10:16:12 -070020
Marcin Witkowski6ae4b4b2022-04-14 17:27:08 +020021export SOURCE_DIR=${ROOTDIR}/kata
22export BUILD_DIR=$KATA_OUT
23
Sam Leffler3346fb52021-06-15 13:57:00 -070024# NB: -q suppresses the banner to workaround the banner msg triggering the pager
Sam Leffler81b6c922022-02-14 10:57:23 -080025# NB: auto-start cpu0 & cpu1 but leave cpu2 (VC) halted
Sam Leffler3346fb52021-06-15 13:57:00 -070026exec "${GDB}" -q -cd "${ROOTDIR}" \
27 -ex "set pagination off" \
28 -ex "directory sw/tock" \
29 -ex "file ${PROGRAM}" \
30 -ex "set confirm off" \
31 -ex "add-symbol-file ${PROGRAM}" \
Sam Leffler81b6c922022-02-14 10:57:23 -080032 -ex "add-symbol-file ${MATCHA_OUT}/matcha_platform" \
33 -ex "add-symbol-file ${MATCHA_OUT}/matcha_app" \
Sam Leffler3346fb52021-06-15 13:57:00 -070034 -ex "set pagination on" \
Sam Leffler81b6c922022-02-14 10:57:23 -080035 -ex "target remote ${REMOTE}" \
Marcin Witkowskib5af5a82022-02-17 16:29:45 +010036 -ex "monitor cpu0 IsHalted false" \
Marcin Witkowski6ae4b4b2022-04-14 17:27:08 +020037 -ex "monitor cpu1 CreateSeL4" \
38 -ex "source sim/renode/tools/sel4_extensions/gdbscript.py"