aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/spike-openocd-tests.yml76
1 files changed, 76 insertions, 0 deletions
diff --git a/.github/workflows/spike-openocd-tests.yml b/.github/workflows/spike-openocd-tests.yml
new file mode 100644
index 0000000..0f2bca3
--- /dev/null
+++ b/.github/workflows/spike-openocd-tests.yml
@@ -0,0 +1,76 @@
+# Build spike and run a couple of debug tests.
+
+name: Test OpenOCD against 2 spike configurations
+
+on: pull_request
+
+# There is some commented out code below that would be useful in adding this
+# workflow to other repos. Ideally we can come up with something that would
+# leave this file almost identical between repos, so they can all easily run
+# this test suite.
+
+jobs:
+ test:
+ name: Test debug (Ubuntu)
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+
+ - name: Install Dependencies
+ run: |
+ sudo apt install build-essential device-tree-compiler
+
+# - name: Download OpenOCD
+# run: |
+# git clone --recurse-submodules https://github.com/riscv/riscv-openocd.git
+# cd riscv-openocd
+# git checkout 43ea20dfbb6c815004a51106a3b2009d7f6c4940
+
+ - name: Build OpenOCD
+ run: |
+ #cd riscv-openocd
+ ./bootstrap
+ ./configure
+ make -j"$(nproc 2> /dev/null || sysctl -n hw.ncpu)"
+ ls -l src/openocd
+
+ - name: Download Toolchain
+ run: wget --progress=dot:giga https://github.com/xpack-dev-tools/riscv-none-elf-gcc-xpack/releases/download/v12.2.0-1/xpack-riscv-none-elf-gcc-12.2.0-1-linux-x64.tar.gz
+
+ - name: Install Toolchain
+ run: tar zxf xpack-riscv-none-elf-gcc-12.2.0-1-linux-x64.tar.gz
+
+ - name: Download spike
+ run: |
+ git clone --recurse-submodules https://github.com/riscv-software-src/riscv-isa-sim
+ #cd riscv-isa-sim
+ #git checkout 43ea20dfbb6c815004a51106a3b2009d7f6c4940
+
+ - name: Build Spike
+ run: |
+ cd riscv-isa-sim
+ mkdir build install
+ cd build
+ ../configure --prefix=`pwd`/install
+ make -j"$(nproc 2> /dev/null || sysctl -n hw.ncpu)"
+ make install
+
+ - name: Download Tests
+ run: |
+ git clone --recurse-submodules https://github.com/riscv-software-src/riscv-tests.git
+ #cd riscv-tests
+ #git checkout c84daca8824635b7d896003c78f9c6245997cf7a
+
+ - name: Run Tests
+ run: |
+ cd riscv-tests/debug
+ ./gdbserver.py targets/RISC-V/spike32.py --print-failures \
+ --gcc $GITHUB_WORKSPACE/xpack-riscv-none-elf-gcc-12.2.0-1/bin/riscv-none-elf-gcc \
+ --gdb $GITHUB_WORKSPACE/xpack-riscv-none-elf-gcc-12.2.0-1/bin/riscv-none-elf-gdb \
+ --sim_cmd $GITHUB_WORKSPACE/riscv-isa-sim/build/install/bin/spike \
+ --server_cmd $GITHUB_WORKSPACE/src/openocd
+ ./gdbserver.py targets/RISC-V/spike64-2.py --print-failures \
+ --gcc $GITHUB_WORKSPACE/xpack-riscv-none-elf-gcc-12.2.0-1/bin/riscv-none-elf-gcc \
+ --gdb $GITHUB_WORKSPACE/xpack-riscv-none-elf-gcc-12.2.0-1/bin/riscv-none-elf-gdb \
+ --sim_cmd $GITHUB_WORKSPACE/riscv-isa-sim/build/install/bin/spike \
+ --server_cmd $GITHUB_WORKSPACE/src/openocd