mirror of
https://github.com/olofk/serv.git
synced 2026-02-27 08:49:04 +00:00
59 lines
2.3 KiB
YAML
59 lines
2.3 KiB
YAML
name: CI
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
compliance:
|
|
name: RISC-V Compliance Test
|
|
runs-on: ubuntu-20.04
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
path: serv
|
|
|
|
- name: install fusesoc, verilator and gcc
|
|
run: |
|
|
sudo apt-get install -y python3-setuptools verilator gcc-riscv64-unknown-elf
|
|
pip3 install fusesoc
|
|
|
|
- name: set SERV directory
|
|
run: echo "SERV=$GITHUB_WORKSPACE/serv" >> $GITHUB_ENV
|
|
|
|
- name: setup workspace
|
|
run: fusesoc library add serv $SERV
|
|
|
|
- name: Add MDU core as a library
|
|
run: fusesoc library add mdu https://github.com/zeeshanrafique23/mdu
|
|
|
|
- name: build servant
|
|
run: fusesoc run --target=verilator_tb --flag=mdu --build --build-root=servant_x servant --memsize=8388608 --compressed=1
|
|
|
|
- name: download riscv-arch-test version 2.7.4
|
|
run: git clone https://github.com/riscv-non-isa/riscv-arch-test.git --branch 2.7.4
|
|
|
|
- name: run RV32 I compliance tests
|
|
run: |
|
|
cd $GITHUB_WORKSPACE/riscv-arch-test
|
|
make RISCV_PREFIX=riscv64-unknown-elf- TARGETDIR=$SERV/riscv-target RISCV_TARGET=serv RISCV_DEVICE=I TARGET_SIM=$GITHUB_WORKSPACE/servant_x/verilator_tb-verilator/Vservant_sim
|
|
|
|
- name: run RV32 C compliance tests
|
|
run: |
|
|
cd $GITHUB_WORKSPACE/riscv-arch-test
|
|
make RISCV_PREFIX=riscv64-unknown-elf- TARGETDIR=$SERV/riscv-target RISCV_TARGET=serv RISCV_DEVICE=C TARGET_SIM=$GITHUB_WORKSPACE/servant_x/verilator_tb-verilator/Vservant_sim
|
|
|
|
- name: run RV32 M compliance tests
|
|
run: |
|
|
cd $GITHUB_WORKSPACE/riscv-arch-test
|
|
make RISCV_PREFIX=riscv64-unknown-elf- TARGETDIR=$SERV/riscv-target RISCV_TARGET=serv RISCV_DEVICE=M TARGET_SIM=$GITHUB_WORKSPACE/servant_x/verilator_tb-verilator/Vservant_sim
|
|
|
|
- name: run RV32 Zifencei compliance tests
|
|
run: |
|
|
cd $GITHUB_WORKSPACE/riscv-arch-test
|
|
make RISCV_PREFIX=riscv64-unknown-elf- TARGETDIR=$SERV/riscv-target RISCV_TARGET=serv RISCV_DEVICE=Zifencei TARGET_SIM=$GITHUB_WORKSPACE/servant_x/verilator_tb-verilator/Vservant_sim
|
|
|
|
# - name: run RV32 privilege compliance tests
|
|
# run: |
|
|
# cd $GITHUB_WORKSPACE/riscv-arch-test
|
|
# make RISCV_PREFIX=riscv64-unknown-elf- TARGETDIR=$SERV/riscv-target RISCV_TARGET=serv RISCV_DEVICE=privilege TARGET_SIM=$GITHUB_WORKSPACE/servant_x/verilator_tb-verilator/Vservant_sim
|