Arm has released Morello instruction emulator 1.2 on 10th of August 2021. What are the main changes and improvements that are included in this release?
Morello IE 1.2 release brings improvements to the debugger, tracer, non-Morello C library API wrappers, switch to and from restricted mode of execution, as well as a number of bug fixes. Morello specification has been updated to PROTO-REL-03.
Improvements to the built-in debugger include:
Improvements in the tracer include:
It is now possible to run Morello applications with reporting capability faults while not issuing OS signals. OS signals have been aligned with the proposed Morello Linux signal numbers for capability faults.
We have implemented capability checks for PCC at instruction fetch (with option to disable these checks). Purecap memory access capability checks have been amended to fully comply with the specification. As before there is an option to disable these checks.
Switching to and from restricted mode with access to different register banks as per Morello specification has been implemented in this release.
Cache model now supports configuring HW prefetcher and replace policy.
Better support for running applications linked to Morello and non-Morello versions of C library now include option to selectively enabled or disable non-Morello API wrappers. For applications with Purecap startup code these wrappers will be disabled automatically.
Bug fixes:
This release focuses on supporting running Purecap applications linked to non-Morello version of Musl libc. This should allow different experiments with Morello code, including compartmentalisation experiments, ahead of availability of Morello versions of C libraries.
This version of Morello instruction emulator can be used to work with Morello port of Musl libc (which is currently work in progress).