CHERI LLVM Compiler with Morello Support

Morello is supported by LLVM open-source toolchains based on the CHERI Clang/LLVM toolchain from the University of Cambridge (UoC). 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.

 

For more information and to download the source code or releases please visit the Linaro Morello Program landing page.

Bugs can be raised directly as GitLab issues targeting specific software component repositories. For questions and further discussions you can subscribe to the llvm-morello@op-lists.linaro.org mailing list here.

GNU Compiler with Morello Support

The Morello GNU Toolchain is currently under development.

Learn more

Morello Platform Model

The Morello Platform Model is a Fixed Virtual Platform (FVP) based on Arm Fast Models. The FVP is a functional model of the Morello platform and supports the same software stacks as the hardware.

  • Functional modelling of the Morello CPU and interconnect.
  • Memory and interrupt maps aligned with hardware.
  • Ethernet support.
  • Source-level debug support using Arm Development Studio debugger or other debuggers which support the CADI debug interface.

Need to raise a bug? Please visit the Morello Community Forum.

The Morello FVP can be downloaded free of charge from the Arm Developer ecosystem models page.

For more information on Open Source software support for the Morello Platform, please visit the Linaro Morello Program landing page.

Morello Instruction Emulator

Morello Instruction Emulator (Morello IE) is a tool for running userspace Morello applications (pure capability and hybrid) on non-Morello AArch64 GNU/Linux systems. It includes runtime instrumentation that can do CPU cache modelling, collect information about runtime events related to Morello and produce instruction and memory trace. The main target use cases include experimenting with the Morello architecture on AArch64 GNU/Linux systems, porting existing userspace applications to Morello and trying Morello compartmentalization solutions.

Morello IE works as an intermediate layer between the user application binary and a non-Morello environment (Linux kernel on AArch64 Arm v8.x hardware and optionally non-Morello C library). It emulates Morello hardware (capability registers and memory tags). It can also optionally emulate the system API providing an execution environment for an application functionally similar to a Morello system.

For more information and to download the Morello LLVM toolchain please visit the Linaro Morello Program landing page.

Need to raise a bug? Please visit the Morello Community Forum or e-mail us on morello-emulator-support@arm.com.

Download


Arm Development Studio Morello Edition

Arm Development Studio Morello Edition combines the professional Arm development environment with extended capabilities to aid the Morello program with architecture exploration and software design. It includes:

  • Arm Debugger for bare-metal debug of the Morello FVP and Morello Board.
  • Arm Development Studio IDE source code editor, with support to import LLVM and GNU compilation tools.
  • Example projects to get started.

Need to raise a bug? Please visit the Morello Community Forum.

Download

ABI & ACLE Specifications

ACLE Specification

Morello Supplement to the Arm C Language Extensions.

Download

AAPCS Specification

Morello Supplement to the Procedure Call Standard for the Arm 64-bit Architecture (AArch64).

Download

DWARF Specification

Morello Supplement to DWARF for the Arm64-bit Architecture (AArch64).

Download

ELF Specification 

Morello Supplement to ELF for the Arm 64-bit Architecture (AArch64).

Download