- Introduction
- Graphical User Interface GUI
- Command Line Interface CLI
- Deployment
- Project mode
- Updating the binaries
- FAQ
- Known Issues
This is the user documentation for the Enclustra Build Environment project. It can be used to create a bootable Linux image for Enclustra's SoC modules. Enclustra also provides reference designs and packages for Petalinux. Both can be found on https://github.com/enclustra .
Date | Rev | Author | Changes |
---|---|---|---|
2015-05-08 | 1.0 | Karol Gugala | Buildsystem description |
2015-05-11 | 1.1 | Aleksandra Szawara | Language check |
2015-07-06 | 1.2 | Aurelio Lucchesi | Minor corrections |
2015-11-20 | 1.3 | Tomasz Gorochowik | Major reorganization |
2016-06-21 | 1.4 | Tomasz Gorochowik | Project mode section |
2017-06-23 | 1.5 | Maciej Mikunda | Updates for release v1.5 |
2018-03-21 | 1.6 | Mariusz Glebocki | Updates for release v1.6 |
2018-11-22 | 1.7 | Wojciech Tatarski | Updates for release v1.7 |
2019-02-22 | 1.8 | Joanna Brozek | Updates for release v1.8 |
2021-06-14 | 1.9 | Tobias Vögeli | Update for Xilinx tool version 2020.1 |
2021-08-30 | 1.10 | Arthur Ruder | Update for Xilinx tool version 2020.2 |
2023-01-11 | 1.11 | Tobias Vögeli | Update for Xilinx tool version 2022.1 |
2023-05-11 | 1.12 | Andreas Bürkler | Andromeda XZU65 support added |
This chapter describes the usage of the build environment. The whole build environment is written in Python. Its internal functionality is determined by ini files placed in a specific directory layout.
The supported OS for the build environment is: Ubuntu 20.04 LTS
To run the build script a Python 3 interpreter is required.
The build environment requires additional software to be installed as listed below:
Tool | Comments |
---|---|
dialog | Required only in the GUI mode |
make | |
git | |
mercurial | |
tar | |
unzip | |
curl | |
wget | |
bc | |
libssl-dev | |
patch | |
rsync | |
autoconf | Required to build a buildroot rootfs |
g++ | Required to build a buildroot rootfs |
gcc | |
flex | |
bison |
The required packages can be installed with the following commands:
sudo apt update
sudo apt install python3 dialog make git mercurial tar unzip curl wget bc libssl-dev patch rsync autoconf g++ gcc flex bison
The build environment is designed to work with a specific directory structure depicted below:
|-- bin
|-- binaries
|-- buildscripts
|-- sources
| |-- target_submodule_1
| |-- target_submodule_2
| |-- target_submodule_3
| |-- target_submodule_4
|-- targets
| |-- Module_1
| |-- BaseBoard_1
| |-- BaseBoard_2
| |-- Module_2
| |-- BaseBoard_1
|-- target_output
Folder | function |
---|---|
bin | Remote toolchains installation folder. |
binaries | Additional target binaries download folder. |
sources | master_git_repository clone folder. It contains submodule folders. |
buildscripts | Build system executable files. |
targets | Target configurations are placed here. |
target_output | Folders generated during the build process, that contain the output files after a successful build of every specifc target. |
Important: By default, the target output folders are named according to this folder naming scheme:
out_<timestamp>_<module>_<board>_<bootmode>.
The default name can be overwriten during the build process.
Environment settings are stored in the enclustra.ini file in the main directory of the build environment. Before starting the build script, one may need to adjust the general settings of the build environment by editing this file. One of the most crucial setting is the number of build threads used in a parallel. This parameter is set in the [general] section by changing the nthreads key. Additionally, parameters in the [debug] section allow the user to adjust the logging settings:
- If the debug-calls option if set to true, the output of all external tool calls (such as make, tar etc.) will be displayed in the terminal.
- If the quiet-mode option is set to true, the build log of the targets will not be printed to the terminal, only informations about actual build state will be shown. This option does not affect the build-logfile option.
- If the build-logfile option is set to a file name, the build environment will write the whole build log output to that file. If the option is not set, the output will not be logged.
- If the break-on-error option is set to true, the build environment will interrupted on the first error. Otherwise the build environment will only print an error message and continue to work on a next available target.
Family | Module | Base boards |
---|---|---|
Xilinx | Mars ZX2 | Mars EB1 / PM3 / ST3 |
Xilinx | Mars ZX3 | Mars EB1 / PM3 / ST3 |
Xilinx | Mars XU3 | Mars EB1 / ST3 |
Xilinx | Mercury ZX1 | Mercury PE1 / PE3 / ST1 |
Xilinx | Mercury ZX5 | Mercury PE1 / PE3 / ST1 |
Xilinx | Mercury+ XU1 | Mercury PE1 / PE3 / ST1 |
Xilinx | Mercury XU5 | Mercury PE1 / PE3 / ST1 |
Xilinx | Mercury+ XU6 | Mercury PE1 / PE3 / ST1 |
Xilinx | Mercury+ XU7 | Mercury PE1 / PE3 / ST1 |
Xilinx | Mercury+ XU8 | Mercury PE1 / PE3 / ST1 |
Xilinx | Mercury+ XU9 | Mercury PE1 / PE3 / ST1 |
Xilinx | Andromeda XZU65 | Mercury ST1 |
Note: Since release 1.7, the ZU3EG ES variant of the Mars XU3 module is no longer supported.
Next Page: Graphical User Interface GUI