2.1. Prerequisites

2.1.1. Build Host

A relatively recent Linux distribution is recommended. CI runs are done using Ubuntu 22.04 LTS (64-bit).

2.1.2. Toolchain

The following toolchain is recommended for building Hafnium and the test infrastructure:

  • For a x86_64 Ubuntu host,

https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.6/clang+llvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04.tar.xz
  • For a AArch64 Ubuntu host,

https://github.com/llvm/llvm-project/releases/download/llvmorg-15.0.6/clang+llvm-15.0.6-aarch64-linux-gnu.tar.xz

Note

Use of a native toolchain installed on the host (e.g. /usr/bin/clang) is not supported.

Note

Using a toolchain version greater, or significantly lesser than the one specified is not guaranteed to work.

The PATH environment variable shall be adjusted to contain the LLVM/clang directory, e.g.:

PATH=<toolchain_dir>/clang+llvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04/bin:$PATH

2.1.3. Dependencies

2.1.3.1. Build

The following command install the dependencies for the Hafnium build:

sudo apt install make libssl-dev flex bison python3 python3-serial python3-pip device-tree-compiler

In addion, install the following python lib using pip:

pip3 install fdt

2.1.3.2. Documentation

To create a rendered copy of this documentation locally you can use the Sphinx tool to build and package the plain-text documents into HTML-formatted pages.

For building a local copy of the documentation you will need:

  • Python 3 (3.8 or later)

  • PlantUML (1.2017.15 or later)

  • Poetry (Python dependency manager)

Below is an example set of instructions to get a working environment (tested on Ubuntu):

sudo apt install python3 python3-pip plantuml
curl -sSL https://install.python-poetry.org | python3 -

To install Python dependencies using Poetry:

poetry install

Poetry will create a new virtual environment and install all dependencies listed in pyproject.toml. You can get information about this environment, such as its location and the Python version, with the command:

poetry env info

Copyright (c) 2023, Arm Limited. All rights reserved.