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 an experimental tool for running userspace Morello applications on non-Morello AArch64 GNU/Linux systems. It includes runtime instrumentation that can collect information about runtime events related to Morello. Main target use cases include experimenting with the Morello architecture in userspace on AArch64 GNU/Linux and help with porting existing applications to Morello.

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

For more information and to download the source code or releases of AArch64 Linux 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