The open platform implementation for INSPECTA.
- Make
- dtc (Device Tree Compiler)
- Clang, LLD, and
llvm-ar
- QEMU (for simulating the example)
- Microkit SDK
On Ubuntu/Debian:
sudo apt update && sudo apt install -y make clang lld llvm qemu-system-arm device-tree-compiler
- bear (For creating a compile_commands.json for Clang LSP)
sudo apt install -y bear
Get the microkit sdk with SMC support enabled for the ZCU102. It is best to do this in a directory outside the repo.
wget https://github.com/dornerworks/microkit/releases/download/inspecta-v0.5/microkit-sdk-1.4.1.tar.gz
tar -xvzf microkit-sdk-1.4.1.tar.gz
# This variable needs to be set anytime a new terminal is opened
export MICROKIT_SDK=$(pwd)/microkit-sdk-1.4.1
make BOARD=zcu102 MICROKIT_SDK=/path/to/sdk
Suggestion: Setup a .env
file with:
export BOARD=zcu102
export MICROKIT_SDK=/path/to/sdk
Then when you open a new terminal, you just need to run
source .env
Then to build, you just run
make
When building prepend the build command with bear
. This must be done when the build is actually doing something, so if you have already built, then do a make clean
first.
bear -- make BOARD=zcu102 MICROKIT_SDK=/path/to/sdk
Then open your editor in the root directory of the repo.
Directions for booting with either tftp or mmc are provided.
Booting virtualized microkit systems on the ZCU102 is an odd edgecase. This build system creates a binary, loader.img
, which requires the go
command to run once it is loaded. The go
command for U-Boot on the ZCU102 drops to EL1, so a modified U-Boot is required. You can get the required U-Boot from here: https://github.com/dornerworks/meta-inspecta-sut/releases/download/v0.1.0-baseline/BOOT.BIN
This boot binary needs to be copied to a boot partition on a micro SD card that is setup following these directions.
Follow these directions to configure the board to boot from the SD card.
Copy build/loader.img
to the tftp root directory. Place the SD card into the ZCU102 development board. Boot the board and run the following command in U-Boot:
dhcp; tftpboot 0x40000000 loader.img; go 0x40000000
Copy the loader image onto a boot partition of a micro SD card. Place the SD card into the ZCU102 development board. Boot the board and run the following command in U-Boot:
fatload mmc 0 0x40000000 loader.img; go 0x40000000