The MCA announced its Open Asymmetric Multi Processing Framework (OpenAMP) for Linux multicore development, with support from Mentor Graphics and Xilinx.
The Multicore Association (MCA) formally unveiled its open source “Open Asymmetric Multi Processing Framework” (OpenAMP), and announced a working group to establish standardization of the multicore development framework. The working group will expand and document the specification for Linux, and collaborate with the OpenAMP open source community.
The OpenAMP working group includes MCA members such as Express Logic, Mentor Graphics, Micrium, NXP, and Xilinx. Of these, Mentor and Xilinx announced specific Linux-based solutions.
(click image to enlarge)
Xilinx announced OpenAMP support for its FPGA/ARM hybrid SoCs including its Xilinx Zynq and new, 64-bit, ARMv8 UltraScale+ MPSoC. OpenAMP is said to support mixed environments on these SoCs including Linux, FreeRTOS, and the FPGA-focused Xilinx Standalone environment. The Xilinx OpenAMP framework is now available in the PetaLinux 2014.5 release. No more details were provided.
Mentor Graphics announced “Mentor Embedded Multicore Framework” (MEMF) for Mentor Embedded Linux and other Mentor distributions. See farther below for more details.
OpenAMP supports heterogeneous system development on multicore processors and system-on-chips, and supports Linux, real-time operating systems (RTOSes), and bare metal projects, including mixed-OS multicore applications. The new working group, however, specifically targets Linux distributions.
OpenAMP addresses inter-process communications (IPC) and core lifecycle management between cores and OSes. It offers a standardized API based on the MCA’s Multicore Communications API (MCAPI), enabling communication and synchronization between homogeneous and heterogeneous multicore systems.
OpenAMP is said to streamline development in tasks such as:
- Configuring and deploying multiple operating systems and applications across cores
- Booting multiple OSes efficiently and in a coordinated manner across microprocessors and micro-controllers
- Communicating between isolated sub-systems on a multi-core processor or between heterogeneous processors
OpenAMP supports shared memory protocols (virtio and rpmsg), IPC, resource management and sharing, and process control (remoteproc). For simple point-to-point communication, OpenAMP uses a multicore and multi-OS friendly version of the virtIO framework, which is widely adopted in Linux distributions, to map physical memory directly into user space applications.
The remote processor messaging framework (rpmsg) also provides an IPC mechanism to establish a communications channel. Rpmsg adds a messaging structure on top of virtIO to enable multiple applications using multiple OSes.
Mentor Graphics MEMF
Mentor Graphics announced Mentor Embedded Multicore Framework (MEMF), an OpenAMP compatible add-on that works with the Mentor Embedded Linux distribution and development platform, with the company’s Nucleus RTOS, and with bare-metal applications. Back in 2014, Mentor preannounced the same solution, but without a formal name or reference to the emerging OpenAMP standard. At the time, the company referred to it as a heterogeneous multicore development platform that combined Linux, Nucleus, and bare metal applications on a single multicore SoC.
MEMF IPC (left) and core lifecycle management functions
(click images to enlarge)
In the latest announcement, MEMF is said to be the first commercial implementation of OpenAMP. The development solution spans device configuration, deployment, and system optimization for multi-operation system devices, targeting industrial, medical, automotive, telecommunications, networking, and consumer electronics applications.
MEMF can be easily ported to related environments such as the Linux-based Mentor Automotive Connected OS, as well as Android and Volcano VSTAR AUTOSAR, says Mentor. It supports hardware platforms including Xilinx Zynq, Xilinx UltraScale+ MPSoC, NXP i.MX6Quad and SoloX, Altera Cyclone V (now owned by Intel), and TI’s OMAP5.
The open source MEMF adds several features that can be executed natively or with a hypervisor, including:
- Support for the remote processor framework (remoteproc)
- Scalable implementations of virtIO, rpmsg, and MCAPI across OSes to provide efficient IPC for separated device subsystems
- Graphical debugging and performance analysis tools that enable a system-wide, synchronized perspective across OSes and functions
More information on OpenAMP may be found at the Multicore Association’s OpenAMP site and OpenAMP working group announcement. More on Mentor’s MEMF may be found at the Mentor Multicore Framework page, as well as the MEMF announcement and blog entry. More on the Xilinx support may be found in the Xilinx OpenAMP announcement.