This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Morello: Frequently Asked Questions (FAQs)



What is the Morello Platform Model?

The Morello Platform Model is an open access Fixed Virtual Platform (FVP) development platform, aligned with the future development board, and is 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.

See here to get started using the Morello Platform Model.


What examples are available?

Arm Development Studio Morello Edition ships with an example project that can be run on the Morello Platform Model.

See here to get started using Arm Development Studio Morello Edition.


How can I compile code for Morello?

Morello is supported by the following open source LLVM-based toolchains based on the CHERI Clang/LLVM toolchain from the University of Cambridge. Please note that these are experimental toolchains and as such some features may not yet be available or fully functional.

  • Android CHERI LLVM/Clang toolchain, which 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, which 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).
  • AArch64 Linux CHERI LLVM/Clang toolchain, which 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.

The following compiler flags should be used to enable Morello code generation:

-march=morello+c64 -mabi=purecap

For more information, see the LLVM compiler with Morello support user guide here.


Where can I download the firmware and software stack for the Morello Platform Model?

A reference open source software stack is available comprising:

Component Name
System Control Processor firmware SCP-firmware
CPU Secure world firmware Trusted Firmware-A
CPU Normal world firmware EDK II UEFI
Boot loader GRUB
OS kernel Android Common Kernel (Linux)
OS user-space Android

See here to get started downloading, building, and running this reference open source software stack on the Morello Platform Model.


What can I do with the Morello reference software stack?

Please be aware that Morello is still in the early stages of development, and as such there are limitations on the kind of applications that can be developed.

For full details of the current limitations, please refer to the README files in the Morello reference software stack git repository.


Where can I get support?

You are welcome to ask questions and start discussions here on our Morello Community Forums.


How does the CHERI security architecture relate to Arm's existing TrustZone solutions?

Morello is not directly related to TrustZone; capabilities can be applied to Secure world or Normal world software stacks. For more information please see CUCLs intro to CHERI.


Do I need to pay for, or request access to, the Morello Platform Model?

No, the Morello Platform Model is free of charge and available to download from Arm's Ecosystem FVP Developer page.


How and when can I get a Morello development board?

Morello development boards will only be available to a select list of industry partners and universities, as decided by the UK Research and Innovation (UKRI). They will not be available for general sale or supplied directly by Arm.


Which Arm architectural states support Morello?

Morello extends the Armv8.2-A Architecture, and is only available in AArch64 state (no support for AArch32). Further, Morello mandates only little-endian data accesses.


Which Arm ISA does Morello use?

Morello extends the A64 ISA, adding instructions to manipulate and use capabilities to a limited extent. Morello also introduces a variant of the A64 ISA, C64, providing a richer set of instructions to manipulate and use capabilities.