Welcome to the landing page for Morello Platform Open Source Software
Morello is a research program led by Arm in association with partners and funded by the UKRI as part of the UK government Digital Security by Design (DSbD) programme . It defines a new prototype security architecture based on CHERI (Capability Hardware Enhanced RISC Instructions).
A System on Chip (SoC) implementation of the architecture will provide a DSbD technology platform prototype, enabling industry and academic partners to test real-world use cases and inform future development.
Morello Platform Model
The Morello Platform Model is an open access FVP (Fixed Virtual Platform) implementation of the development platform, aligned with the future development board. Available to download from Arm’s Ecosystem FVP Developer page.
FVPs use Arm technology to create a virtual model of the system hardware that can be run as an executable in a development environment. They use binary translation technology to deliver functional simulations of Arm-based systems, including processor, memory, and peripherals. They implement a programmer’s view suitable for software development and enable execution of full software stacks, providing a widely available platform ahead of silicon.
A walkthrough video of setting up the development environment is now available - /resources/morello-platform-model-and-android-stack-walkthrough/.
Morello Hardware Development Platform
The Morello hardware development platform will become available early in Q1 2022 and will be supported by the same software stack. Note: Availability of hardware will be limited - platforms will be restricted to partners involved in defined research activities.
CHERI LLVM Compiler with Morello Support
Morello is supported by LLVM-based open-source toolchains based on the CHERI Clang/LLVM toolchain from the University of Cambridge. Please note, these are experimental toolchains and as such features may be missing.
Android CHERI LLVM/Clang toolchain
Includes a C/C++ compiler (clang), linker (lld), debugger (lldb), various utilities (such as assembler & disassembler) and run-time libraries.
Bare-metal toolchain for architecture exploration projects
Includes a C/C++ compiler (clang), linker (lld), a standard C library (newlib), a standard C++ library (libc++, libc++abi) and various utilities (such as assembler & disassembler).
Arm Development Studio Morello Edition is also available as a development environment for the bare-metal configuration.
AArch64 Linux CHERI LLVM/Clang toolchain
This toolchain is an experimental AArch64 hosted variant, primarily intended to be used together with Arm’s Morello Instruction Emulator. It includes a C/C++ compiler (clang), linker (lld), various utilities and run-time libraries, but does not include a C library. See this knowledge base article for more details.
Morello Linux Kernel
Modified ACK (Android common Kernel).
An integrated Android stack supporting a reduced nano profile is hosted in the Morello code repositories.
This includes initial modifications to a standard (arm64-v8a) AOSP to support capabilities. Including a modified Bionic library and some pure-capability application ports.
The University of Cambridge Computing Laboratory implementation of CheriBSD has also been ported to the Morello Platform. This provides a BSD implementation of a memory-safe kernel and userspace, as well as examples ports of application frameworks, demonstrating a more complete integration of CHERI (and Morello) support into an OS design. CheriBSD is maintained and hosted by the University of Cambridge.