Commit graph

40 commits

Author SHA1 Message Date
Greg Chadwick
1313104bad [ci] Fix pmp_smoke_test
It was renamed pmp_smoke_test from pmp_exception_test in the software
build but not the actual test run
2022-09-30 09:41:07 +01:00
Greg Chadwick
70186c57ae [rtl] Add ic_scr_key_valid field to CPUCTRL (renamed CPUCTRLSTS)
The ic_scr_key_valid field indicates whether the ICache scrambling key
is valid.

CPUCTRL is also renamed CPUCTRLSTS as it contains both control and
status bits.
2022-09-22 16:17:31 +01:00
Greg Chadwick
02ccf9e5d0 [ci] Bump cosim version for privilege spec updates 2022-09-07 17:31:41 +01:00
Greg Chadwick
28a352b602 [ci] Move to latest spike cosim version 2022-08-30 13:12:11 +01:00
Greg Chadwick
9c4e4bdf6a [ci] Download cosim from lowRISC GCP bucket 2022-08-30 11:29:29 +01:00
Greg Chadwick
1affeff527 [ci] Fix co-sim install
Due to a failure of mirror syncing the co-sim package cannot be
installed. This downloads it directly from the master server and
installs it manually.
2022-08-18 14:12:09 +01:00
Greg Chadwick
f2c09fe34a [ci] Move to spike-ibex-v0.4 2022-08-10 15:25:36 +01:00
Marno van der Maas
ef86c30341 [dv] Write ePMP tests and enable ePMP in DV
- Enable epmp in riscv_core_settings.sv
- Bump CI and Spike version in `ci/vars.yml`
- Enable full random PMP test
- Create tests for machine mode lockdown (MML)
  - Code execute only, rest read/write
  - All regions execute only
  - All regions read only
- Create test for machine mode whitelist policy (MMWP)
- Create test for rule lock bypass (RLB)

Signed-off-by: Marno van der Maas <mvdmaas+git@lowrisc.org>
2022-08-03 15:06:03 +01:00
Greg Chadwick
50d183fc1b [ci] Add pmp_smoke_test cosim run to CI 2022-07-21 15:55:59 +01:00
Rupert Swarbrick
42ce56b6b6 [dv] Simplify instructions for how to use Spike with cosim
This depends on Spike version ibex-cosim-v0.2 (which exposes the
various library headers with pkg-config, making configuration much
easier).
2022-04-29 11:13:21 +01:00
Michael Schaffner
ed35718431 Update Verible version
Signed-off-by: Michael Schaffner <msf@google.com>
2022-04-20 09:19:58 -07:00
Rupert Swarbrick
ddb069bc1c [ci,docs] Bump minimum Spike version to ibex-cosim-v0.2 2022-04-12 11:09:33 +01:00
Greg Chadwick
36d77ab0c5 [ci] Fix coremark cosim job
Actually fail the job if there's an error
2022-03-22 16:29:03 +00:00
Greg Chadwick
7508644c6e [simple_system_cosim] Switch to latest cosim version 2022-03-22 16:29:03 +00:00
Rupert Swarbrick
6f6cafaa4d [ci] Bump Spike version to get cosim implementation
This will only have an effect on our private CI, which picks up this
spike build from the toolnas. The build is the ibex_cosim branch,
which contains the stuff we need for the recent cosim support. It's
also new enough to support the v1.0+0.93 bitmanip flavour that we
support in the RTL.
2022-02-15 17:27:44 +00:00
Rupert Swarbrick
5691ef1a45 [ci] Bump RISC-V toolchain version to get bitmanip support
This version should have support for bitmanip 1.00+0.93, the version
that we target in the RTL.
2022-02-15 15:17:52 +00:00
Greg Chadwick
69dfa6f8da [ci] Add missing python3-dev dependency
Private CI is broken without this. The public CI runs on azure agents
which already have this installed.
2022-01-26 15:39:38 +00:00
Greg Chadwick
e70add7228 [ci] Add co-simulation testing of CoreMark 2021-11-12 09:39:38 +00:00
Philipp Wagner
ed46a5c9f5 [ci] Update dependencies to match OpenTitan
Use the same dependencies as we use in OpenTitan to make it easier to
diagnose potential issues. No change in behavior expected.
2021-07-14 11:12:09 +01:00
Tom Roberts
6a3200929b [rtl] Add a new top level plus wiring
This commit creates a new top level wrapping the core, register file and
icache RAMs. The tracing top level is also renamed to ibex_top_tracing
to match. This new top level is intended to enable a dual core lockstep
implementation of Ibex.

There are no functional changes in this commit, only wiring.

Signed-off-by: Tom Roberts <tomroberts@lowrisc.org>
2021-04-07 12:07:38 +01:00
Philipp Wagner
8f3d8f311f CI: The distro-provided pyyaml package is enough
In the past, we did explicitly install pyyaml through PIP to get a
version newer than the one provided in Ubuntu 18.04. Since then we
changed the calling code to not rely on newer pyyaml features and
are thus able to rely on an older version of pyyaml.

The distro-provided version of pyyaml is built with C bindings, which
are significantly faster than the pip-installed version, which uses a
pure Python-implementation of the parser/dumper.
2021-01-09 18:15:08 +00:00
Philipp Wagner
f732bf51a2 CI: Remove outdated workarounds for Ubuntu 16.04 2020-12-01 19:01:29 +00:00
Philipp Wagner
7e041d362f Enable Verible lint
Turns out, just having a nice error message with the correct tool
invocation isn't enough: you actually need to call the tool with the
arguments you document.

Let's do that and actually run Verilator lint and Verible lint, and not
just Verilator lint twice.
2020-10-27 11:28:25 +00:00
Philipp Wagner
7558ecc720 Update Spike to a version with icache support
DV now requires a version of Spike with two patches for icache support,
use this version.
2020-10-27 10:03:15 +00:00
Philipp Wagner
922f781414 Use the latest version of Verible
Verible is changing quickly, use the latest version to get all the
recent goodness.
2020-10-27 10:03:15 +00:00
Philipp Wagner
92bbfd9bbb Use the same toolchain as in OpenTitan
OpenTitan now uses the toolchain build 20200904-1, let's use the same
toolchain in Ibex. Functionally, the two toolchains should be identical.
2020-10-27 10:03:15 +00:00
Philipp Wagner
9c9e839c92 Use Verilator 4.040 in CI
This version is also used and required in OpenTitan, synchronize the
two.
2020-10-27 10:03:15 +00:00
Philipp Wagner
0106ba80a0 [ci] Update install-build-deps.sh script for Ubuntu 18.04 2020-10-09 16:46:08 +02:00
Rupert Swarbrick
3703a3ad8e [ci] Force setuptools not to use version 50.0.0 for now
There's a long and painful discussion on the setuptools issues
list (I count 9 issues raised the day after the release). This is all
to do with how Debian/Ubuntu installs stuff with pip.

There's an "official" workaround that involves setting things in your
environment, but that looks a bit fiddly with the Azure pipelines
stuff and this has been such a disaster that I'm pretty certain the
setuptools maintainers will release something more sensible soon.

See e.g.
https://github.com/pypa/setuptools/issues/2350#issuecomment-683512526
for a careful description of what's going on.
2020-08-31 15:15:18 +01:00
Philipp Wagner
e145a49b32 Add private CI trigger
The ci/azp-private.yml file is a skeleton and only used to trigger an
Azure Pipelines run which integrates into the ibex repository. All real
job description is in a private repository for licensing reasons.
2020-08-21 09:59:32 +01:00
Philipp Wagner
d534af7c84 CI: Factor out installation of build dependencies
Put all build dependencies into a CI-specific script
(ci/install-build-deps.sh). No effort has been made to make this script
suitable for non-CI users.
2020-08-21 09:59:32 +01:00
Philipp Wagner
c4a0c9d3bf CI: Script to convert CI variables
Add a script to convert the contents of ci/vars.yml to Azure Pipelines
logging commands, which effectively set runtime variables in a pipeline.

We need this script as a workaround for a missing Azure Pipelines
feature: variables are not inherited in extended templates, and reading
the vars.yml file in a "extends" template isn't possible either (at
least not if we want to use the exact revision of the ibex repository
which triggered CI).
2020-08-21 09:59:32 +01:00
Philipp Wagner
190518dacc Add lowRISC-specific version of Spike to CI config
We use a lowRISC-internal build of Spike following the instructions at
https://ibex-core.readthedocs.io/en/latest/verification.html in private
CI. Add the version number to the CI variables file.
2020-08-21 09:59:32 +01:00
Philipp Wagner
6fca2c4aac Factor out CI variables into separate file
This helps to re-use these variables in different pipelines.
2020-08-21 09:59:32 +01:00
Philipp Wagner
b807879aca CI: Show exact command to run Verilator lint
The options were missing, leading to an incomplete command, which makes
it hard to reproduce lint failures locally.
2020-07-03 13:24:17 +01:00
Philipp Wagner
18db64f6fa CI: Enable Verible lint for all configs 2020-07-03 13:24:17 +01:00
Greg Chadwick
5da42b1594 [ci] Fix multi-config CI
Multi-config CI wasn't actually trying multiple configurations. This
fixes that issue and uses a less fragile method of producing fusesoc
options. They are generated once and stored in a variable so we cannot
accidentally break one or more steps by using an incorrect
ibex_config.py command in one step whilst using a correct
ibex_config.py in the display step (which is also intended to check the
ibex_config.py command is correct).
2020-04-14 15:08:00 +01:00
Greg Chadwick
dba0529156 [ci] Introduce multiple-configuration CI 2020-03-27 10:30:46 +00:00
Philipp Wagner
148604265e Remove PULP CI configuration
We don't support this CI configuration any more.
2019-04-26 15:09:00 +01:00
Gautschi
f75a0246d9 added trigger for pulpino 2017-06-12 14:15:08 +02:00