From 68d6777599747ef9a4252a12b26181fd74d57804 Mon Sep 17 00:00:00 2001 From: Wiktoria Kuna Date: Wed, 5 Feb 2025 13:19:38 +0100 Subject: [PATCH 1/4] workflows: Update upload-artifacts to v4 Signed-off-by: Wiktoria Kuna --- .github/workflows/build-spike.yml | 2 +- .github/workflows/run-tests.yml | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build-spike.yml b/.github/workflows/build-spike.yml index 442e825e..59fbfffb 100644 --- a/.github/workflows/build-spike.yml +++ b/.github/workflows/build-spike.yml @@ -36,7 +36,7 @@ jobs: key: ${{ env.cache_name }}_${{ env.cache_date }} restore-keys: ${{ env.cache_name }}_ - - name: Install prerequisities + - name: Install prerequisites if: ${{ steps.cache.outputs.cache-hit != 'true' }} run: | sudo apt -qqy update && sudo apt -qqy --no-install-recommends install \ diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index dd93d0cf..e0128d4d 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -27,7 +27,7 @@ jobs: name: Prepare files' hash run: | echo "files-hash=$(sha256sum **/*.sv **/*.py **/*.yml **/*.yaml | cut -d\ -f1 | sha256sum | cut -d\ -f1)" | tee -a $GITHUB_OUTPUT - + generate-code: runs-on: [ self-hosted, Linux, X64, gcp-custom-runners ] @@ -39,7 +39,7 @@ jobs: test: ${{ fromJSON(needs.generate-config.outputs.test-types) }} version: [ uvm ] include: - - test: riscv_arithmetic_basic_test + - test: riscv_arithmetic_basic_test version: pyflow env: GHA_EXTERNAL_DISK: additional-tools @@ -89,9 +89,10 @@ jobs: --isa $RISCV_TARGET --mabi ilp32 --steps gen -v -o test 2>&1 | tee test/generate.log - name: Upload Artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: always() with: + name: generate_code_${{ matrix.test }}_${{ matrix.version }} path: | test/asm_test/*.S @@ -174,9 +175,10 @@ jobs: --isa $RISCV_TARGET --mabi ilp32 --steps gcc_compile,iss_sim -v -o test 2>&1 | tee -a test/generate.log - name: Upload Artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: always() with: + name: run_tests_log_${{ matrix.test }}_${{ matrix.version }} path: | test/asm_test/*.log test/*.log From 24794088632250ee5e39ed54558aee541d4700a7 Mon Sep 17 00:00:00 2001 From: Wiktoria Kuna Date: Wed, 5 Feb 2025 15:25:22 +0100 Subject: [PATCH 2/4] workflows: Preserve errors when generating config Signed-off-by: Wiktoria Kuna --- .github/workflows/run-tests.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index e0128d4d..640e966b 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -22,11 +22,13 @@ jobs: name: Prepare test types run: | python3 -m pip install pyyaml - echo "tests=$(python3 .github/scripts/parse_testlist.py $RISCV_TARGET)" | tee -a $GITHUB_OUTPUT + python3 .github/scripts/parse_testlist.py $RISCV_TARGET > tests.list + echo "tests=$(cat tests.list)" | tee -a $GITHUB_OUTPUT - id: hash name: Prepare files' hash run: | - echo "files-hash=$(sha256sum **/*.sv **/*.py **/*.yml **/*.yaml | cut -d\ -f1 | sha256sum | cut -d\ -f1)" | tee -a $GITHUB_OUTPUT + sha256sum **/*.sv **/*.py **/*.yaml > file.hash + echo "files-hash=$(cat file.hash | cut -d\ -f1 | sha256sum | cut -d\ -f1)" | tee -a $GITHUB_OUTPUT generate-code: From 6f8e566e3417ce79c43cbacb4e5c89f5fd49c693 Mon Sep 17 00:00:00 2001 From: Wiktoria Kuna Date: Thu, 6 Feb 2025 13:05:38 +0100 Subject: [PATCH 3/4] workflows: Update RISCV toolchain & add 'Z' ext Some of the 'I' ext instructions were once moved to separate Zicsr and Zifencei extensions. For newer toolchains the 'Z' extensions need to be explicitly requested in '-march'. Signed-off-by: Wiktoria Kuna --- .github/workflows/run-tests.yml | 9 ++++++++- run.py | 26 +++++++++++++------------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 640e966b..1bfca1db 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -119,7 +119,14 @@ jobs: - uses: actions/checkout@v4 - name: Install dependencies - run: sudo apt-get -qqy update && sudo apt-get -qqy install gcc-riscv64-unknown-elf device-tree-compiler + run: sudo apt-get -qqy update && sudo apt-get -qqy install device-tree-compiler + + - name: Install cross-compiler + shell: bash + run: | + echo "deb http://archive.ubuntu.com/ubuntu/ noble main universe" | sudo tee -a /etc/apt/sources.list > /dev/null + sudo apt -qqy update && sudo apt -qqy --no-install-recommends install gcc-riscv64-unknown-elf + riscv64-unknown-elf-gcc --version - name: Setup python # python dependencies cannot be properly downloaded with new versions of python diff --git a/run.py b/run.py index 5f364fcf..4097c9f6 100644 --- a/run.py +++ b/run.py @@ -827,7 +827,7 @@ def parse_args(cwd): command is not specified") parser.add_argument("--isa", type=str, default="", help="RISC-V ISA subset") - parser.add_argument("--priv", type=str, default="", + parser.add_argument("--priv", type=str, default="m", help="RISC-V privilege modes enabled in simulation [su]") parser.add_argument("-m", "--mabi", type=str, default="", help="mabi used for compilation", dest="mabi") @@ -951,40 +951,40 @@ def load_config(args, cwd): args.core_setting_dir = cwd + "/target/" + args.target if args.target == "rv32imc": args.mabi = "ilp32" - args.isa = "rv32imc" + args.isa = "rv32imc_zicsr_zifencei" elif args.target == "rv32imafdc": args.mabi = "ilp32" - args.isa = "rv32imafdc" + args.isa = "rv32imafdc_zicsr_zifencei" elif args.target == "rv32imc_sv32": args.mabi = "ilp32" - args.isa = "rv32imc" + args.isa = "rv32imc_zicsr_zifencei" elif args.target == "multi_harts": args.mabi = "ilp32" - args.isa = "rv32gc" + args.isa = "rv32gc_zicsr_zifencei" elif args.target == "rv32imcb": args.mabi = "ilp32" - args.isa = "rv32imcb" + args.isa = "rv32imcb_zicsr_zifencei" elif args.target == "rv32i": args.mabi = "ilp32" - args.isa = "rv32i" + args.isa = "rv32i_zicsr_zifencei" elif args.target == "rv64imc": args.mabi = "lp64" - args.isa = "rv64imc" + args.isa = "rv64imc_zicsr_zifencei" elif args.target == "rv64imcb": args.mabi = "lp64" - args.isa = "rv64imcb" + args.isa = "rv64imcb_zicsr_zifencei" elif args.target == "rv64gc": args.mabi = "lp64" - args.isa = "rv64gc" + args.isa = "rv64gc_zicsr_zifencei" elif args.target == "rv64gcv": args.mabi = "lp64" - args.isa = "rv64gcv" + args.isa = "rv64gcv_zicsr_zifencei" elif args.target == "ml": args.mabi = "lp64" - args.isa = "rv64imc" + args.isa = "rv64imc_zicsr_zifencei" elif args.target == "rv64imafdc": args.mabi = "lp64" - args.isa = "rv64imafdc" + args.isa = "rv64imafdc_zicsr_zifencei" else: sys.exit("Unsupported pre-defined target: {}".format(args.target)) else: From 4bf494fd1f2e8ebba63131ea9dce2e2021f5c573 Mon Sep 17 00:00:00 2001 From: Wiktoria Kuna Date: Thu, 6 Feb 2025 13:18:27 +0100 Subject: [PATCH 4/4] workflows: Fix path to run-tests artifats Signed-off-by: Wiktoria Kuna --- .github/workflows/run-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 1bfca1db..7858a706 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -189,5 +189,5 @@ jobs: with: name: run_tests_log_${{ matrix.test }}_${{ matrix.version }} path: | - test/asm_test/*.log test/*.log + test/**/${{ matrix.test }}*.log