[CI] Add SW build using make targets

Add software build targets to Azure pipelines. This may
eventually change once we add system test coverage to CI.

To run the flow in local mode:

```console
$ cd ${REPO_TOP}
$ ci/run_sw_build.sh
```

By default TOOLCHAIN_PATH points to /tools/riscv. If overridden,
the script will fetch the toolchain if needed before running the
build, e.g.:

```console
$ cd ${REPO_TOP}
$ TOOLCHAIN_PATH=/tmp/toolchain-path ci/run_sw_build.sh
```

Additional ENVARs:

* `REQUEST_UPDATE`: If set to true, the script will attempt to update
  toolchain to the requested `TOOLCHAIN_VERSION` which defaults to
  `latest`.

Other Comments:

* Why a shell script instead of Python? I expect that once we move
to a new build system, the script will no longer require to hardcode
the target enumeration, so the bulk of the logic will be gone.
I am open to rewriting in Python if we prefer consistency.
2 files changed
tree: 59777d082cb311fedfe2680ef750ab86a540d4fa
  1. ci/
  2. doc/
  3. hw/
  4. sw/
  5. util/
  6. .clang-format
  7. .gitignore
  8. .style.yapf
  9. azure-pipelines.yml
  10. CONTRIBUTING.md
  11. index.md
  12. LICENSE
  13. python-requirements.txt
  14. README.md
  15. sitemap.md
README.md

OpenTitan

This repository contains hardware, software and utilities written as part of the OpenTitan project. It is structured as monolithic repository, or “monorepo”, where all components live in one repository.

Documentation

The project contains comprehensive documentation of all IPs and tools. You can either access it online or build it locally by following the steps below.

  1. Ensure that you have the required Python modules installed (to be executed in the repository root):
$ sudo apt install python3 python3-pip
$ pip3 install --user -r python-requirements.txt
  1. Execute the build script:
$ ./util/build_docs.py --preview

This compiles the documentation into ./opentitan-docs and starts a local server, which allows you to access the documentation at http://127.0.0.1:5500.

How to contribute

Have a look at CONTRIBUTING.md for guidelines how to contribute code to this repository.

Licensing

Unless otherwise noted, everything in this repository is covered by the Apache License, Version 2.0 (see LICENSE for full text).