From 473a553ce2a14d1688275c7250a2bdfcb1bcc34d Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Sat, 9 Sep 2023 21:18:30 +0100 Subject: [PATCH 01/13] ci: Get working on latest ubuntu --- .github/workflows/ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9e65790..df35338 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,7 +4,7 @@ on: [push, pull_request, workflow_dispatch] jobs: verilator-lint: - runs-on: ubuntu-18.04 + runs-on: ubuntu-latest steps: # Checkout Repository - name: Checkout @@ -21,7 +21,7 @@ jobs: verilator --lint-only rtl/verilog/*.v +incdir+rtl/verilog or1k-tests: - runs-on: ubuntu-18.04 + runs-on: ubuntu-latest env: LD_LIBRARY_PATH: "/tmp/tools/lib" EXPECTED_FAILURES: ${{ matrix.env.EXPECTED_FAILURES }} @@ -107,7 +107,7 @@ jobs: - { EXPECTED_FAILURES: "or1k-cy or1k-ext", EXTRA_CORE_ARGS: "--feature_ext NONE" } formal-verification: - runs-on: ubuntu-18.04 + runs-on: ubuntu-latest steps: #Checkout Repository - name: Checkout From 85d0cb1d41734cc364ad68d649059a61fa19f278 Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Sun, 10 Sep 2023 07:29:24 +0100 Subject: [PATCH 02/13] ci: Remove call to obsolete fusesoc init --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index df35338..d08b80b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,7 +40,6 @@ jobs: pip3 install fusesoc export PATH=$PATH:$HOME/.local/bin fusesoc --version - fusesoc init -y # Install Toolchain - name: Install Toolchain @@ -62,6 +61,7 @@ jobs: git clone --depth 1 https://github.com/openrisc/or1k-tests.git -b v1.0.5 cd or1k-tests/native make -j8 + fusesoc library add fusesoc_cores https://github.com/fusesoc/fusesoc-cores fusesoc library add mor1kx-generic https://github.com/openrisc/mor1kx-generic.git fusesoc library add intgen https://github.com/openrisc/intgen.git fusesoc library add elf-loader https://github.com/fusesoc/elf-loader.git From 618e2d08a89a60925c1fc325d5dcd0da0e146a2c Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Sun, 10 Sep 2023 07:29:31 +0100 Subject: [PATCH 03/13] ci: Use python2 for formal --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d08b80b..c3bea55 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -119,7 +119,7 @@ jobs: sudo apt-get update sudo apt-get -y install g++ gperf build-essential bison flex \ libreadline-dev gawk tcl-dev libffi-dev git graphviz xdot \ - pkg-config python python3 libboost-system-dev \ + pkg-config python2 python3 libboost-system-dev \ libboost-python-dev libboost-filesystem-dev zlib1g-dev pip3 install dataclasses From 7f1f2f382044875c00ed4612dd249cddd6e828e7 Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Sun, 10 Sep 2023 09:23:22 +0100 Subject: [PATCH 04/13] ci: Add nightly CI to check if anything external broke us --- .github/workflows/ci.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c3bea55..dd2bbcd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,6 +1,11 @@ name: ci -on: [push, pull_request, workflow_dispatch] +on: + push: + pull_request: + workflow_dispatch: + schedule: + - cron: '0 1 * * *' jobs: verilator-lint: From 722b6ef849c8cd4cddf19f0874eb4e5f2e0cffa6 Mon Sep 17 00:00:00 2001 From: hhe07 Date: Mon, 3 Jun 2024 12:06:10 -0600 Subject: [PATCH 05/13] fix to unbreak verilator compatability --- rtl/verilog/mor1kx_cpu.v | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/rtl/verilog/mor1kx_cpu.v b/rtl/verilog/mor1kx_cpu.v index 371ab7a..ca82ab6 100644 --- a/rtl/verilog/mor1kx_cpu.v +++ b/rtl/verilog/mor1kx_cpu.v @@ -198,13 +198,11 @@ module mor1kx_cpu // synthesis translate_off `ifndef SYNTHESIS /* Provide interface hooks for register functions. */ + `include "mor1kx_utils.vh" + localparam RF_ADDR_WIDTH = calc_rf_addr_width(OPTION_RF_ADDR_WIDTH, + OPTION_RF_NUM_SHADOW_GPR); generate if (OPTION_CPU=="CAPPUCCINO") begin : monitor - -`include "mor1kx_utils.vh" - localparam RF_ADDR_WIDTH = calc_rf_addr_width(OPTION_RF_ADDR_WIDTH, - OPTION_RF_NUM_SHADOW_GPR); - function [OPTION_OPERAND_WIDTH-1:0] get_gpr; // verilator public input [RF_ADDR_WIDTH-1:0] gpr_num; From e4d1a414cf62d378fc5c6b9b8023c5f8279d62fe Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Thu, 18 Jul 2024 22:58:25 +0100 Subject: [PATCH 06/13] ci: Fix yosys build --- .github/workflows/ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dd2bbcd..4bc7300 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -138,6 +138,7 @@ jobs: cd formal_tools git clone --depth 1 https://github.com/YosysHQ/yosys.git yosys cd yosys + git submodule update --init make -j$(nproc) sudo make install cd .. From b705e9a56e00a05b98840f31c23adb79c5f5188f Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Thu, 18 Jul 2024 23:20:40 +0100 Subject: [PATCH 07/13] ci: disable broken formal tests --- bench/formal/Makefile | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/bench/formal/Makefile b/bench/formal/Makefile index 692b1f3..4065ea1 100644 --- a/bench/formal/Makefile +++ b/bench/formal/Makefile @@ -21,25 +21,30 @@ TESTS := mor1kx_cache_lru \ mor1kx_execute_ctrl_cappuccino \ mor1kx_dmmu \ mor1kx_dcache \ - mor1kx_lsu_cappuccino \ mor1kx_pcu \ mor1kx_pic \ mor1kx_ticktimer \ mor1kx_ctrl_cappuccino \ mor1kx_rf_cappuccino \ - mor1kx_bus_if_wb32 \ - mor1kx_wb_mux_cappuccino \ + mor1kx_bus_if_wb32 + +# tests that no longer work keep them here so we can easily +# run them if we want to try and fix them. +BROKEN_TESTS := \ + mor1kx_lsu_cappuccino \ mor1kx_cpu_cappuccino \ mor1kx - all: $(TESTS) clean: rm -rf mor1kx*/ -.PHONY: all clean $(TESTS) +.PHONY: all clean $(TESTS) $(BROKEN_TESTS) RTL := ../../rtl/verilog +$(BROKEN_TESTS): % : + sby -f $@.sby + $(TESTS): % : sby -f $@.sby From a65c7d970b22532d5977dda9562655e47d68f476 Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Thu, 18 Jul 2024 23:37:13 +0100 Subject: [PATCH 08/13] readme: remove librecores CI which is now defunct --- README.md | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index 1fd48fd..fb78d3d 100644 --- a/README.md +++ b/README.md @@ -167,21 +167,8 @@ Integration (CI) suite. This currently covers: Status: ![Build Status](https://github.com/openrisc/mor1kx/actions/workflows/ci.yml/badge.svg) -The Continous Integration suite also runs in [Librecores Jenkins](https://ci.librecores.org/) -supported by [Librecores-CI](https://github.com/librecores/librecores-ci-jenkins-server). -In addition regression testing, it also supports: - - - Yosys synthesis for monitoring resource usages. - [Fusesoc](https://github.com/olofk/fusesoc/blob/master/doc/icestorm.adoc) - provides the icestorm backend. - - [LibreCores CI](https://github.com/librecores/docker-images/tree/master/librecores-ci) - Docker image provides Yosys synthesis metrics parser which outputs `Printing Statistics`. - Results are parsed to graphs with Performance Plugin, which can be seen at - [ci.librecores.org](https://ci.librecores.org/job/Projects/job/OpenRISC/job/mor1kx/) - -Status : [![Build Status](https://ci.librecores.org/job/Projects/job/OpenRISC/job/mor1kx/job/master/badge/icon)](https://ci.librecores.org/job/Projects/job/OpenRISC/job/mor1kx/job/master/) - -In the future we are working on bringing more tests including: +We would also like to add the following tests to our continuous integration +suite, if you would like to volunteer please reach out: - softfloat, fpu verification (may not be feasable in CI due to long run times) - CPU pipeline debugging verification via GDB/OpenOCD From 0238e6f01ae85a04ce47886a27a8e5b5075b0eac Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Sun, 25 Aug 2024 10:35:02 +0100 Subject: [PATCH 09/13] core: Update core files to version 5.2 New version fixes verilator support and exposes configuration parameters as verilator core arguments. --- mor1kx.core | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mor1kx.core b/mor1kx.core index 9c75a54..30e19bc 100644 --- a/mor1kx.core +++ b/mor1kx.core @@ -1,7 +1,7 @@ CAPI=2: -name : ::mor1kx:5.1 -#description : mor1kx - an OpenRISC processor IP core +name : ::mor1kx:5.2 +description : mor1kx - an OpenRISC processor IP core filesets: core: From e41e82f668343bb4aea9cc1e1e71ea60ce07cf95 Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Mon, 9 Sep 2024 09:43:04 +0100 Subject: [PATCH 10/13] ci: Update deprecated upload action from v2 to v4 --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4bc7300..1aca2bd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -93,7 +93,7 @@ jobs: exit $result # Upload test results - - uses: actions/upload-artifact@v2 + - uses: actions/upload-artifact@v4 if: failure() with: name: runtest-results From 2956eb0967738d66e17a19777c204b32c5aa8a95 Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Sun, 13 Oct 2024 07:23:19 +0100 Subject: [PATCH 11/13] github: Revert ubunut image from ubuntu-latest to 24.04 Ubuntu latest has been updated to ubunut 24.10 and it broke things. Latest does not have pip3 or python2 available. Why we work on fixing actions revert back to 24.04 which is LTS. --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1aca2bd..ef7518f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,7 +26,7 @@ jobs: verilator --lint-only rtl/verilog/*.v +incdir+rtl/verilog or1k-tests: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 env: LD_LIBRARY_PATH: "/tmp/tools/lib" EXPECTED_FAILURES: ${{ matrix.env.EXPECTED_FAILURES }} @@ -112,7 +112,7 @@ jobs: - { EXPECTED_FAILURES: "or1k-cy or1k-ext", EXTRA_CORE_ARGS: "--feature_ext NONE" } formal-verification: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: #Checkout Repository - name: Checkout From d3f15eaac6d079836d5e67b0c62d585e0e143ece Mon Sep 17 00:00:00 2001 From: Stafford Horne Date: Sun, 13 Oct 2024 07:40:30 +0100 Subject: [PATCH 12/13] github: Revert from ubunutu 24.04 to 22.04 The previous latest version skipped 2 versions in github. We were running 22.04 before no 24.04. --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ef7518f..00c3099 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,7 +26,7 @@ jobs: verilator --lint-only rtl/verilog/*.v +incdir+rtl/verilog or1k-tests: - runs-on: ubuntu-24.04 + runs-on: ubuntu-22.04 env: LD_LIBRARY_PATH: "/tmp/tools/lib" EXPECTED_FAILURES: ${{ matrix.env.EXPECTED_FAILURES }} @@ -112,7 +112,7 @@ jobs: - { EXPECTED_FAILURES: "or1k-cy or1k-ext", EXTRA_CORE_ARGS: "--feature_ext NONE" } formal-verification: - runs-on: ubuntu-24.04 + runs-on: ubuntu-22.04 steps: #Checkout Repository - name: Checkout From a53b3e5701c6536bdb9642014e67bc93a2e72a48 Mon Sep 17 00:00:00 2001 From: Jiaxun Yang Date: Mon, 30 Dec 2024 14:25:01 +0000 Subject: [PATCH 13/13] Updating pythondata-cpu-mor1kx to 5.2.post151 Updated data to v5.2-3-gd3f15eaac6d0 based on d3f15eaac6d079836d5e67b0c62d585e0e143ece from https://github.com/openrisc/mor1kx.git. > commit d3f15eaac6d079836d5e67b0c62d585e0e143ece > Author: Stafford Horne > Date: Sun Oct 13 07:40:30 2024 +0100 > > github: Revert from ubunutu 24.04 to 22.04 > > The previous latest version skipped 2 versions in github. > We were running 22.04 before no 24.04. > Updated using 0.0.post148 from https://github.com/litex-hub/litex-data-auto --- .github/workflows/publish-to-pypi.yml | 6 ++--- pythondata_cpu_mor1kx/__init__.py | 32 +++++++++++++-------------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/.github/workflows/publish-to-pypi.yml b/.github/workflows/publish-to-pypi.yml index 8447594..47759e1 100644 --- a/.github/workflows/publish-to-pypi.yml +++ b/.github/workflows/publish-to-pypi.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: # Always clone the full depth so git-describe works. fetch-depth: 0 @@ -70,14 +70,14 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: # Always clone the full depth so git-describe works. fetch-depth: 0 submodules: true - name: Set up Python 🐍 ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} diff --git a/pythondata_cpu_mor1kx/__init__.py b/pythondata_cpu_mor1kx/__init__.py index 06ca88f..2541628 100644 --- a/pythondata_cpu_mor1kx/__init__.py +++ b/pythondata_cpu_mor1kx/__init__.py @@ -4,42 +4,42 @@ src = "https://github.com/openrisc/mor1kx.git" # Module version -version_str = "5.1.1.post142" -version_tuple = (5, 1, 1, 142) +version_str = "5.2.post151" +version_tuple = (5, 2, 151) try: from packaging.version import Version as V - pversion = V("5.1.1.post142") + pversion = V("5.2.post151") except ImportError: pass # Data version info -data_version_str = "5.1.1.post0" -data_version_tuple = (5, 1, 1, 0) +data_version_str = "5.2.post3" +data_version_tuple = (5, 2, 3) try: from packaging.version import Version as V - pdata_version = V("5.1.1.post0") + pdata_version = V("5.2.post3") except ImportError: pass -data_git_hash = "4cebbb684bba8f9fe74f9b69e679796d4fd4a35b" -data_git_describe = "v5.1.1-0-g4cebbb6" +data_git_hash = "d3f15eaac6d079836d5e67b0c62d585e0e143ece" +data_git_describe = "v5.2-3-gd3f15eaac6d0" data_git_msg = """\ -commit 4cebbb684bba8f9fe74f9b69e679796d4fd4a35b -Merge: 44ea698 1a8c19b +commit d3f15eaac6d079836d5e67b0c62d585e0e143ece Author: Stafford Horne -Date: Mon May 23 06:01:28 2022 +0900 +Date: Sun Oct 13 07:40:30 2024 +0100 - Merge pull request #147 from stffrdhrn/or1k-linux-failing + github: Revert from ubunutu 24.04 to 22.04 - Revert "dcache: Allow writing during write_pending" + The previous latest version skipped 2 versions in github. + We were running 22.04 before no 24.04. """ # Tool version info -tool_version_str = "0.0.post142" -tool_version_tuple = (0, 0, 142) +tool_version_str = "0.0.post148" +tool_version_tuple = (0, 0, 148) try: from packaging.version import Version as V - ptool_version = V("0.0.post142") + ptool_version = V("0.0.post148") except ImportError: pass