SlideShare ist ein Scribd-Unternehmen logo
1 von 21
Downloaden Sie, um offline zu lesen
HKG2018-411: OpenAMP Introduction
Wendy Liang
Agenda
● OpenAMP Projects Overview
● OpenAMP Libraries
● Changes in Progress
● Future Improvements
OpenAMP Projects Overview
Introduction
With today’s sophisticated SoCs there is often a need to integrate multiple runtime
environments with multiple operating systems. This raises a lot of issues, such as:
● Lifecycle issues
○ Boot order, start one OS from another, tear down OS, reboot, …
● Communication
○ Message passing
○ Data sharing
● Resource handling
○ Memory, devices, interrupts,
○ Power management
○ …
OpenAMP aims to address these and other issues in a standardized way, both
through an open source project and through standardization by MCA.
What is Needed to Be Able to Mix OSes?
● A standard “protocol” so OSes can interact without dependencies
○ On a given HW, any OS can interact with any other OS
■ Without special adaptation
○ On a shared memory system this is a set of data structures and conventions
■ e.g. the ring buffers in virtio
● A standard set of APIs for OS interactions
○ A low level API that abstracts underlying OS and HW
○ A set of lifecycle APIs
○ Messaging APIs
○ Other potential features
■ Proxy capabilities to make remote OS look like Linux process
■ Remote procedure calls, power management, device configuration, debug...
● Upstream Linux support for protocol and APIs
○ Linux is increasingly becoming the main OS in a multi-OS system
● Open Source implementation
○ Quickest way to adoption
○ Standardization by reference implementation
What is OpenAMP?
● OpenAMP standardizes how Operating Systems interact
○ In particular between Linux and RTOS/bare-metal
○ In particular in a multicore heterogeneous systems
○ Includes:
■ Shared memory protocol for OS interactions (virtio)
■ Lifecycle APIs to start/stop/? other OSes (rproc)
■ Communication APIs to share data (rpmsg)
■ More to come
● Both a standardization effort and an open source project
○ MCA OpenAMP working group
○ Linarl LITE Open source project focuses on implementation and testing new ideas
● Guiding principles
○ Open Source implementations for Linux and RTOSes
○ Prototype and prove in open source before standardizing
○ Business friendly APIs and implementations to allow proprietary solutions
OpenAMP Libraries
OpenAMP Code Base
● The open source implementation source code: https://github.com/OpenAMP
● OpenAMP library:
○ https://github.com/OpenAMP/open-amp
○ rpmsg for message passing
○ virtio for memory sharing
○ remoteproc for remote life cycle management and resource assignment
● Libmetal library
○ https://github.com/OpenAMP/libmetal
○ libmetal for device management, I/O and shared memory access
RPMsg Overview
In asymmetric multiprocessor systems, the most common way for different cores to cooperate is to use a shared
memory-based communication. Rpmsg is a shared memory based messaging bus that allows communication between
processors.
● RPMsg Protocol Layer in OpenAMP
● RPMsg Protocol Layer in OpenAMP
RPMsg
VirtIO / VirtQueue /
Vring
Shared Memory,
inter-core
notification
Transport Layer
Media Access
Control Layer
Physical Layer
Application
VirtIO
Master 1
VirtIO
Master 2
RPMsg Endpoints RPMsg Endpoints
Application
Virtio Slave 1
RPMsg Endpoin
Application
Virtio Slave 1
RPMsg Endpoints
RPMsg Pkg
RPMsg P
● RPMsg Header Definition
Source ep address (32bit)
destination ep address (32bit)
Length (16bit) flags (16bit)
User payload
reserved (32bit)
Virtio Overview
Virtio is an I/O virtualization framework, it is used for paravirtualization. OpenAMP uses virtio for manage shared memory.
● Virtio Architecture
Front-end-drivers
Linux Guest
Back-end-drivers
Device emulation
KVM
Hardware
virtio
● Virtio in OpenAMP
RPMsg virtio driver
Remoteproc virtio device
driver (virtio config ops,
notification)
Master
Vring, virtio buffers transport
Remoteproc virtio device
driver (virtio config ops,
notification)
RPMsg virtio driver
Slave
Front-end-driver
Back-end-driver
virtio
RPMsg Virtio Flow - Master to Remote
Virtio Master to Remote
Master Core
RPMsgVirtio Ring (Vring0)
Get transmission bufferDequeue from
USED ring buffers
Write RPMsg header and
payload to the buffer
Enqueue the buffer
Enqueue to AVAIL
ring buffers
kick the virtio queue to
notify the other core
Remote Core
RPMsg Virtio Ring (Vring0)
Get received buffer Dequeue from
AVAIL ring buffers
Pass it to the user
defined RPMsg endpoint
callback
Enqueue the freed buffer
Enqueue to USED
ring buffers
kick the virtio queue to
notify the other core
RPMsg Virtio Flow - Remote to Master
Virtio Remote to Master
Master Core
RPMsgVirtio Ring (Vring1)
Get received bufferDequeue from
USED ring buffers
Pass it to the user
defined RPMsg endpoint
callback
Enqueue the freed buffer
Enqueue to AVAIL
ring buffers
kick the virtio queue to
notify the other core
Remote Core
RPMsg Virtio Ring (Vring0)
Get transmission buffer Dequeue from
AVAIL ring buffers
Write RPMsg header and
payload to the buffer
Enqueue the buffer
Enqueue to USED
ring buffers
kick the virtio queue to
notify the other core
Virtio Based RPMsg Implementation Limitation
● RPMsg communication relies on the virtio master side to start
the communication, not peer to peer
○ If one side is Linux, Linux has to be the virtio master, as Linux as virtio backend is
not supported yet.
● It is mainly used to pass messages but not for big data sharing.
○ default rpmsg APIs requires copying data from application to the shared buffers
○ shared buffer size is fixed at initialization
○ How to mix control services and data services in the same pairs of vrings
Remoteproc Overview
● Remoteproc provides user APIs to do
life cycle management of the remote
system and manage the resources of
the remote system.
● It provides the following functions:
○ load remote system image
○ setup resources for the remote system
○ start the remote system
○ manage the resource of the remote
system
○ suspend the remote system
○ restore the remote system
○ stop the remote system
○ release the resource of the remote
system
○ shutdown the remote system and
release its source
Master
Application pass
image data to
remoteproc
Decode ELF image
and obtain resource
table if it exists.
Carve-out memory for
fw, request rsc for the
remote.
Create virtio device if
it exists in resource
table
Application copy fw
from storage to target
memory.
Application calls
remoteproc to start
remote subsystem
Start the remote
subsystem
Firmware Creation
Application
RTOS/BM
lib
OpenAMP
lib
Resource
table
Carved out memory
Virtio dev, vrings
Remote
Firmware
ELF
Remote
RTOS/BM Boots
Application calls
remoteproc to
pass resource
table
Create memory
mapping based on
Resource table
Create Virtio
device
Application runs
Remoteproc Resource Table
A resource table is essentially a list of system resources required by the remote system. It may also include configuration
entries. e.g. virtio configuration space.If needed, the remote firmware should contain this table as a dedicated
".resource_table" ELF section.
rsc_table_version 32bit
number_of_entries 32bit
reserved 32bit
offset of resource entry 32bit
offset of resource entry 32bit
...
vendor specific resource
carved out resource
devmen resource
trace resource
virtio device resource
vendor specific resource
resource type 32bit
resource length 32bit
resource properties
carved out resource
resource type 32
device address 32bit
physical address 32bit
length 32bit
flags 32it
reserved 32bit
name 8x32 bit
Libmetal Overview
● Libmetal is an abstraction layer across different OSes and hardware platforms environments to manage devices,
handle devices interrupts and request memory access.
● It was initially derived from the OpenAMP “porting layer” to enable OpenAMP library to be used across different OSes
and hardware platforms. It can be used independently to the OpenAMP library.
OpenAMP Library
User Application
Libmetal library
metal_device_open()
metal_device_close()
metal_irq_XXXX()
metal_io_readN()
metal_io_writeN()
metal_io_block_read()
metal_io_block_write()
Linux Userspace/ RTOS/ Baremetal
Hardware
Peripherals Interrupts Memory
Changes in Progress
What’s OpenAMP Supported Today
● Range of use cases:
○ Topologies: peer-to-peer, master-slave, and hierarchical
○ Interfaces: message passing, file system, block, graphics, network, ?
● Provide consistent and portable application interfaces across:
○ Environments (Linux kernel and user-space, FreeRTOS, Zephyr, bare-metal)
○ Processor architectures (Cortex-A53, Cortex-R5, MicroBlaze, x86, MIPS32)
○ Secure and non-secure worlds
○ Threads and processes (on Linux and RTOS)
○ Virtualized guests and containers (with hypervisors)
● Leverage hardware architecture
○ Processor ISA(A9, A53 64bit and R5), coherency, exclusive monitors, IOMMU
Not yet supported
Changes in Progress
● Enable OpenAMP / libmetal Zephyr support
○ Libmetal unit tests can run on Zephyr QEMU Cortex M3 platform
○ Zephyr is added to OpenAMP library cmake build
● Enable OpenAMP on Microcontroller
○ Standardize RPMsg, Remoteproc, virtio config ops APIs
○ restruct OpenAMP code base
■ decouple components features
● remoteproc life cycle management implementation
● remoteproc virtio config ops implementation
● virtio based RPMsg implementation
● libmetal shared memory operation implementation
Future Improvements
● Testing
○ CI for OpenAMP libraries
■ Unit tests
■ Travis CI plugin in github
■ OpenAMP tests in Lava lab
● Extend remoteproc resource management APIs
○ resource table
■ extend carved out memory to cover shared memory owned by remote and host
■ extend to cover vendor resource
■ line up with the virtio config operations
● Extend virtio drivers support
○ Besides virtio rpmsg, support virtio net, virtio block, virtio console, and virtio balloon to enable
software stacks such as network stack to build on top
● Facility to launch a remote application and improve the proxy service in Linux
userspace
○ e.g. binfmt_misc deamon to attach/dettach a remote application, send/receive data to the
remote
Thank You
Questions/Comments:
jiaying.liang@linaro.org, arnaud.pouliquen@linaro.org, kumar.gala@linaro.org
#HKG18
HKG18 keynotes and videos on: connect.linaro.org
For further information: www.linaro.org

Weitere ähnliche Inhalte

Was ist angesagt?

Intel® RDT Hands-on Lab
Intel® RDT Hands-on LabIntel® RDT Hands-on Lab
Intel® RDT Hands-on LabMichelle Holley
 
Part 02 Linux Kernel Module Programming
Part 02 Linux Kernel Module ProgrammingPart 02 Linux Kernel Module Programming
Part 02 Linux Kernel Module ProgrammingTushar B Kute
 
linux device driver
linux device driverlinux device driver
linux device driverRahul Batra
 
Quick and Easy Device Drivers for Embedded Linux Using UIO
Quick and Easy Device Drivers for Embedded Linux Using UIOQuick and Easy Device Drivers for Embedded Linux Using UIO
Quick and Easy Device Drivers for Embedded Linux Using UIOChris Simmonds
 
Android Binder IPC for Linux
Android Binder IPC for LinuxAndroid Binder IPC for Linux
Android Binder IPC for LinuxYu-Hsin Hung
 
LCA13: Power State Coordination Interface
LCA13: Power State Coordination InterfaceLCA13: Power State Coordination Interface
LCA13: Power State Coordination InterfaceLinaro
 
Introduction to yocto
Introduction to yoctoIntroduction to yocto
Introduction to yoctoAlex Gonzalez
 
Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7Kynetics
 
Linux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKBLinux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKBshimosawa
 
Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)Thomas Petazzoni
 
Userspace drivers-2016
Userspace drivers-2016Userspace drivers-2016
Userspace drivers-2016Chris Simmonds
 
Bootloaders (U-Boot)
Bootloaders (U-Boot) Bootloaders (U-Boot)
Bootloaders (U-Boot) Omkar Rane
 
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...Linaro
 
Open vSwitch Offload: Conntrack and the Upstream Kernel
Open vSwitch Offload: Conntrack and the Upstream KernelOpen vSwitch Offload: Conntrack and the Upstream Kernel
Open vSwitch Offload: Conntrack and the Upstream KernelNetronome
 

Was ist angesagt? (20)

Embedded Android : System Development - Part II (Linux device drivers)
Embedded Android : System Development - Part II (Linux device drivers)Embedded Android : System Development - Part II (Linux device drivers)
Embedded Android : System Development - Part II (Linux device drivers)
 
Intel® RDT Hands-on Lab
Intel® RDT Hands-on LabIntel® RDT Hands-on Lab
Intel® RDT Hands-on Lab
 
Part 02 Linux Kernel Module Programming
Part 02 Linux Kernel Module ProgrammingPart 02 Linux Kernel Module Programming
Part 02 Linux Kernel Module Programming
 
Embedded Android : System Development - Part IV
Embedded Android : System Development - Part IVEmbedded Android : System Development - Part IV
Embedded Android : System Development - Part IV
 
Qemu Introduction
Qemu IntroductionQemu Introduction
Qemu Introduction
 
linux device driver
linux device driverlinux device driver
linux device driver
 
Quick and Easy Device Drivers for Embedded Linux Using UIO
Quick and Easy Device Drivers for Embedded Linux Using UIOQuick and Easy Device Drivers for Embedded Linux Using UIO
Quick and Easy Device Drivers for Embedded Linux Using UIO
 
Introduction to Embedded Systems
Introduction to Embedded Systems Introduction to Embedded Systems
Introduction to Embedded Systems
 
Android Binder IPC for Linux
Android Binder IPC for LinuxAndroid Binder IPC for Linux
Android Binder IPC for Linux
 
LCA13: Power State Coordination Interface
LCA13: Power State Coordination InterfaceLCA13: Power State Coordination Interface
LCA13: Power State Coordination Interface
 
Introduction to yocto
Introduction to yoctoIntroduction to yocto
Introduction to yocto
 
Andes RISC-V processor solutions
Andes RISC-V processor solutionsAndes RISC-V processor solutions
Andes RISC-V processor solutions
 
Embedded Android : System Development - Part III
Embedded Android : System Development - Part IIIEmbedded Android : System Development - Part III
Embedded Android : System Development - Part III
 
Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7Heterogeneous multiprocessing on androd and i.mx7
Heterogeneous multiprocessing on androd and i.mx7
 
Linux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKBLinux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKB
 
Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)Device Tree for Dummies (ELC 2014)
Device Tree for Dummies (ELC 2014)
 
Userspace drivers-2016
Userspace drivers-2016Userspace drivers-2016
Userspace drivers-2016
 
Bootloaders (U-Boot)
Bootloaders (U-Boot) Bootloaders (U-Boot)
Bootloaders (U-Boot)
 
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
Secure Boot on ARM systems – Building a complete Chain of Trust upon existing...
 
Open vSwitch Offload: Conntrack and the Upstream Kernel
Open vSwitch Offload: Conntrack and the Upstream KernelOpen vSwitch Offload: Conntrack and the Upstream Kernel
Open vSwitch Offload: Conntrack and the Upstream Kernel
 

Ähnlich wie HKG18-411 - Introduction to OpenAMP which is an open source solution for heterogeneous system orchestration and communication

Experiences building a distributed shared log on RADOS - Noah Watkins
Experiences building a distributed shared log on RADOS - Noah WatkinsExperiences building a distributed shared log on RADOS - Noah Watkins
Experiences building a distributed shared log on RADOS - Noah WatkinsCeph Community
 
software defined network, openflow protocol and its controllers
software defined network, openflow protocol and its controllerssoftware defined network, openflow protocol and its controllers
software defined network, openflow protocol and its controllersIsaku Yamahata
 
P4+ONOS SRv6 tutorial.pptx
P4+ONOS SRv6 tutorial.pptxP4+ONOS SRv6 tutorial.pptx
P4+ONOS SRv6 tutorial.pptxtampham61268
 
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...OpenShift Origin
 
Rlite software-architecture (1)
Rlite software-architecture (1)Rlite software-architecture (1)
Rlite software-architecture (1)ARCFIRE ICT
 
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceAdding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceSamsung Open Source Group
 
The sunsparc architecture
The sunsparc architectureThe sunsparc architecture
The sunsparc architectureTaha Malampatti
 
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSDLAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSDLinaro
 
Preparing to program Aurora at Exascale - Early experiences and future direct...
Preparing to program Aurora at Exascale - Early experiences and future direct...Preparing to program Aurora at Exascale - Early experiences and future direct...
Preparing to program Aurora at Exascale - Early experiences and future direct...inside-BigData.com
 
BKK16-103 OpenCSD - Open for Business!
BKK16-103 OpenCSD - Open for Business!BKK16-103 OpenCSD - Open for Business!
BKK16-103 OpenCSD - Open for Business!Linaro
 
Petapath HP Cast 12 - Programming for High Performance Accelerated Systems
Petapath HP Cast 12 - Programming for High Performance Accelerated SystemsPetapath HP Cast 12 - Programming for High Performance Accelerated Systems
Petapath HP Cast 12 - Programming for High Performance Accelerated Systemsdairsie
 
OFI Overview 2019 Webinar
OFI Overview 2019 WebinarOFI Overview 2019 Webinar
OFI Overview 2019 Webinarseanhefty
 
OpenPOWER Acceleration of HPCC Systems
OpenPOWER Acceleration of HPCC SystemsOpenPOWER Acceleration of HPCC Systems
OpenPOWER Acceleration of HPCC SystemsHPCC Systems
 
Embedded platform choices
Embedded platform choicesEmbedded platform choices
Embedded platform choicesTavish Naruka
 
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTInria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTStéphanie Roger
 
BKK16-106 ODP Project Update
BKK16-106 ODP Project UpdateBKK16-106 ODP Project Update
BKK16-106 ODP Project UpdateLinaro
 
[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...
[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...
[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...OpenStack Korea Community
 
Understanding eBPF in a Hurry!
Understanding eBPF in a Hurry!Understanding eBPF in a Hurry!
Understanding eBPF in a Hurry!Ray Jenkins
 

Ähnlich wie HKG18-411 - Introduction to OpenAMP which is an open source solution for heterogeneous system orchestration and communication (20)

Experiences building a distributed shared log on RADOS - Noah Watkins
Experiences building a distributed shared log on RADOS - Noah WatkinsExperiences building a distributed shared log on RADOS - Noah Watkins
Experiences building a distributed shared log on RADOS - Noah Watkins
 
software defined network, openflow protocol and its controllers
software defined network, openflow protocol and its controllerssoftware defined network, openflow protocol and its controllers
software defined network, openflow protocol and its controllers
 
P4+ONOS SRv6 tutorial.pptx
P4+ONOS SRv6 tutorial.pptxP4+ONOS SRv6 tutorial.pptx
P4+ONOS SRv6 tutorial.pptx
 
Linux-Internals-and-Networking
Linux-Internals-and-NetworkingLinux-Internals-and-Networking
Linux-Internals-and-Networking
 
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
Extending OpenShift Origin: Build Your Own Cartridge with Bill DeCoste of Red...
 
Rlite software-architecture (1)
Rlite software-architecture (1)Rlite software-architecture (1)
Rlite software-architecture (1)
 
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceAdding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
 
The sunsparc architecture
The sunsparc architectureThe sunsparc architecture
The sunsparc architecture
 
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSDLAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
LAS16-210: Hardware Assisted Tracing on ARM with CoreSight and OpenCSD
 
Preparing to program Aurora at Exascale - Early experiences and future direct...
Preparing to program Aurora at Exascale - Early experiences and future direct...Preparing to program Aurora at Exascale - Early experiences and future direct...
Preparing to program Aurora at Exascale - Early experiences and future direct...
 
BKK16-103 OpenCSD - Open for Business!
BKK16-103 OpenCSD - Open for Business!BKK16-103 OpenCSD - Open for Business!
BKK16-103 OpenCSD - Open for Business!
 
Petapath HP Cast 12 - Programming for High Performance Accelerated Systems
Petapath HP Cast 12 - Programming for High Performance Accelerated SystemsPetapath HP Cast 12 - Programming for High Performance Accelerated Systems
Petapath HP Cast 12 - Programming for High Performance Accelerated Systems
 
OFI Overview 2019 Webinar
OFI Overview 2019 WebinarOFI Overview 2019 Webinar
OFI Overview 2019 Webinar
 
OpenPOWER Acceleration of HPCC Systems
OpenPOWER Acceleration of HPCC SystemsOpenPOWER Acceleration of HPCC Systems
OpenPOWER Acceleration of HPCC Systems
 
Embedded platform choices
Embedded platform choicesEmbedded platform choices
Embedded platform choices
 
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoTInria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
Inria Tech Talk : RIOT, l'OS libre pour vos objets connectés #IoT
 
State of ARM-based HPC
State of ARM-based HPCState of ARM-based HPC
State of ARM-based HPC
 
BKK16-106 ODP Project Update
BKK16-106 ODP Project UpdateBKK16-106 ODP Project Update
BKK16-106 ODP Project Update
 
[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...
[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...
[OpenStack Day in Korea 2015] Track 1-6 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...
 
Understanding eBPF in a Hurry!
Understanding eBPF in a Hurry!Understanding eBPF in a Hurry!
Understanding eBPF in a Hurry!
 

Mehr von Linaro

Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloDeep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloLinaro
 
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaArm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaLinaro
 
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraHuawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraLinaro
 
Bud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaBud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaLinaro
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018Linaro
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018Linaro
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...Linaro
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Linaro
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Linaro
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Linaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineLinaro
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteLinaro
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopLinaro
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineLinaro
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allLinaro
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorLinaro
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMULinaro
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MLinaro
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation Linaro
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootLinaro
 

Mehr von Linaro (20)

Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea GalloDeep Learning Neural Network Acceleration at the Edge - Andrea Gallo
Deep Learning Neural Network Acceleration at the Edge - Andrea Gallo
 
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta VekariaArm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
Arm Architecture HPC Workshop Santa Clara 2018 - Kanta Vekaria
 
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua MoraHuawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
Huawei’s requirements for the ARM based HPC solution readiness - Joshua Mora
 
Bud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qaBud17 113: distribution ci using qemu and open qa
Bud17 113: distribution ci using qemu and open qa
 
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
OpenHPC Automation with Ansible - Renato Golin - Linaro Arm HPC Workshop 2018
 
HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018HPC network stack on ARM - Linaro HPC Workshop 2018
HPC network stack on ARM - Linaro HPC Workshop 2018
 
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
It just keeps getting better - SUSE enablement for Arm - Linaro HPC Workshop ...
 
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
Intelligent Interconnect Architecture to Enable Next Generation HPC - Linaro ...
 
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
Yutaka Ishikawa - Post-K and Arm HPC Ecosystem - Linaro Arm HPC Workshop Sant...
 
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
Andrew J Younge - Vanguard Astra - Petascale Arm Platform for U.S. DOE/ASC Su...
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening Keynote
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP Workshop
 
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainlineHKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
HKG18-501 - EAS on Common Kernel 4.14 and getting (much) closer to mainline
 
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and allHKG18-315 - Why the ecosystem is a wonderful thing, warts and all
HKG18-315 - Why the ecosystem is a wonderful thing, warts and all
 
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse HypervisorHKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
HKG18- 115 - Partitioning ARM Systems with the Jailhouse Hypervisor
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMU
 
HKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8MHKG18-113- Secure Data Path work with i.MX8M
HKG18-113- Secure Data Path work with i.MX8M
 
HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation HKG18-120 - Devicetree Schema Documentation and Validation
HKG18-120 - Devicetree Schema Documentation and Validation
 
HKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted bootHKG18-223 - Trusted FirmwareM: Trusted boot
HKG18-223 - Trusted FirmwareM: Trusted boot
 

Kürzlich hochgeladen

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 

Kürzlich hochgeladen (20)

Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

HKG18-411 - Introduction to OpenAMP which is an open source solution for heterogeneous system orchestration and communication

  • 2. Agenda ● OpenAMP Projects Overview ● OpenAMP Libraries ● Changes in Progress ● Future Improvements
  • 4. Introduction With today’s sophisticated SoCs there is often a need to integrate multiple runtime environments with multiple operating systems. This raises a lot of issues, such as: ● Lifecycle issues ○ Boot order, start one OS from another, tear down OS, reboot, … ● Communication ○ Message passing ○ Data sharing ● Resource handling ○ Memory, devices, interrupts, ○ Power management ○ … OpenAMP aims to address these and other issues in a standardized way, both through an open source project and through standardization by MCA.
  • 5. What is Needed to Be Able to Mix OSes? ● A standard “protocol” so OSes can interact without dependencies ○ On a given HW, any OS can interact with any other OS ■ Without special adaptation ○ On a shared memory system this is a set of data structures and conventions ■ e.g. the ring buffers in virtio ● A standard set of APIs for OS interactions ○ A low level API that abstracts underlying OS and HW ○ A set of lifecycle APIs ○ Messaging APIs ○ Other potential features ■ Proxy capabilities to make remote OS look like Linux process ■ Remote procedure calls, power management, device configuration, debug... ● Upstream Linux support for protocol and APIs ○ Linux is increasingly becoming the main OS in a multi-OS system ● Open Source implementation ○ Quickest way to adoption ○ Standardization by reference implementation
  • 6. What is OpenAMP? ● OpenAMP standardizes how Operating Systems interact ○ In particular between Linux and RTOS/bare-metal ○ In particular in a multicore heterogeneous systems ○ Includes: ■ Shared memory protocol for OS interactions (virtio) ■ Lifecycle APIs to start/stop/? other OSes (rproc) ■ Communication APIs to share data (rpmsg) ■ More to come ● Both a standardization effort and an open source project ○ MCA OpenAMP working group ○ Linarl LITE Open source project focuses on implementation and testing new ideas ● Guiding principles ○ Open Source implementations for Linux and RTOSes ○ Prototype and prove in open source before standardizing ○ Business friendly APIs and implementations to allow proprietary solutions
  • 8. OpenAMP Code Base ● The open source implementation source code: https://github.com/OpenAMP ● OpenAMP library: ○ https://github.com/OpenAMP/open-amp ○ rpmsg for message passing ○ virtio for memory sharing ○ remoteproc for remote life cycle management and resource assignment ● Libmetal library ○ https://github.com/OpenAMP/libmetal ○ libmetal for device management, I/O and shared memory access
  • 9. RPMsg Overview In asymmetric multiprocessor systems, the most common way for different cores to cooperate is to use a shared memory-based communication. Rpmsg is a shared memory based messaging bus that allows communication between processors. ● RPMsg Protocol Layer in OpenAMP ● RPMsg Protocol Layer in OpenAMP RPMsg VirtIO / VirtQueue / Vring Shared Memory, inter-core notification Transport Layer Media Access Control Layer Physical Layer Application VirtIO Master 1 VirtIO Master 2 RPMsg Endpoints RPMsg Endpoints Application Virtio Slave 1 RPMsg Endpoin Application Virtio Slave 1 RPMsg Endpoints RPMsg Pkg RPMsg P ● RPMsg Header Definition Source ep address (32bit) destination ep address (32bit) Length (16bit) flags (16bit) User payload reserved (32bit)
  • 10. Virtio Overview Virtio is an I/O virtualization framework, it is used for paravirtualization. OpenAMP uses virtio for manage shared memory. ● Virtio Architecture Front-end-drivers Linux Guest Back-end-drivers Device emulation KVM Hardware virtio ● Virtio in OpenAMP RPMsg virtio driver Remoteproc virtio device driver (virtio config ops, notification) Master Vring, virtio buffers transport Remoteproc virtio device driver (virtio config ops, notification) RPMsg virtio driver Slave Front-end-driver Back-end-driver virtio
  • 11. RPMsg Virtio Flow - Master to Remote Virtio Master to Remote Master Core RPMsgVirtio Ring (Vring0) Get transmission bufferDequeue from USED ring buffers Write RPMsg header and payload to the buffer Enqueue the buffer Enqueue to AVAIL ring buffers kick the virtio queue to notify the other core Remote Core RPMsg Virtio Ring (Vring0) Get received buffer Dequeue from AVAIL ring buffers Pass it to the user defined RPMsg endpoint callback Enqueue the freed buffer Enqueue to USED ring buffers kick the virtio queue to notify the other core
  • 12. RPMsg Virtio Flow - Remote to Master Virtio Remote to Master Master Core RPMsgVirtio Ring (Vring1) Get received bufferDequeue from USED ring buffers Pass it to the user defined RPMsg endpoint callback Enqueue the freed buffer Enqueue to AVAIL ring buffers kick the virtio queue to notify the other core Remote Core RPMsg Virtio Ring (Vring0) Get transmission buffer Dequeue from AVAIL ring buffers Write RPMsg header and payload to the buffer Enqueue the buffer Enqueue to USED ring buffers kick the virtio queue to notify the other core
  • 13. Virtio Based RPMsg Implementation Limitation ● RPMsg communication relies on the virtio master side to start the communication, not peer to peer ○ If one side is Linux, Linux has to be the virtio master, as Linux as virtio backend is not supported yet. ● It is mainly used to pass messages but not for big data sharing. ○ default rpmsg APIs requires copying data from application to the shared buffers ○ shared buffer size is fixed at initialization ○ How to mix control services and data services in the same pairs of vrings
  • 14. Remoteproc Overview ● Remoteproc provides user APIs to do life cycle management of the remote system and manage the resources of the remote system. ● It provides the following functions: ○ load remote system image ○ setup resources for the remote system ○ start the remote system ○ manage the resource of the remote system ○ suspend the remote system ○ restore the remote system ○ stop the remote system ○ release the resource of the remote system ○ shutdown the remote system and release its source Master Application pass image data to remoteproc Decode ELF image and obtain resource table if it exists. Carve-out memory for fw, request rsc for the remote. Create virtio device if it exists in resource table Application copy fw from storage to target memory. Application calls remoteproc to start remote subsystem Start the remote subsystem Firmware Creation Application RTOS/BM lib OpenAMP lib Resource table Carved out memory Virtio dev, vrings Remote Firmware ELF Remote RTOS/BM Boots Application calls remoteproc to pass resource table Create memory mapping based on Resource table Create Virtio device Application runs
  • 15. Remoteproc Resource Table A resource table is essentially a list of system resources required by the remote system. It may also include configuration entries. e.g. virtio configuration space.If needed, the remote firmware should contain this table as a dedicated ".resource_table" ELF section. rsc_table_version 32bit number_of_entries 32bit reserved 32bit offset of resource entry 32bit offset of resource entry 32bit ... vendor specific resource carved out resource devmen resource trace resource virtio device resource vendor specific resource resource type 32bit resource length 32bit resource properties carved out resource resource type 32 device address 32bit physical address 32bit length 32bit flags 32it reserved 32bit name 8x32 bit
  • 16. Libmetal Overview ● Libmetal is an abstraction layer across different OSes and hardware platforms environments to manage devices, handle devices interrupts and request memory access. ● It was initially derived from the OpenAMP “porting layer” to enable OpenAMP library to be used across different OSes and hardware platforms. It can be used independently to the OpenAMP library. OpenAMP Library User Application Libmetal library metal_device_open() metal_device_close() metal_irq_XXXX() metal_io_readN() metal_io_writeN() metal_io_block_read() metal_io_block_write() Linux Userspace/ RTOS/ Baremetal Hardware Peripherals Interrupts Memory
  • 18. What’s OpenAMP Supported Today ● Range of use cases: ○ Topologies: peer-to-peer, master-slave, and hierarchical ○ Interfaces: message passing, file system, block, graphics, network, ? ● Provide consistent and portable application interfaces across: ○ Environments (Linux kernel and user-space, FreeRTOS, Zephyr, bare-metal) ○ Processor architectures (Cortex-A53, Cortex-R5, MicroBlaze, x86, MIPS32) ○ Secure and non-secure worlds ○ Threads and processes (on Linux and RTOS) ○ Virtualized guests and containers (with hypervisors) ● Leverage hardware architecture ○ Processor ISA(A9, A53 64bit and R5), coherency, exclusive monitors, IOMMU Not yet supported
  • 19. Changes in Progress ● Enable OpenAMP / libmetal Zephyr support ○ Libmetal unit tests can run on Zephyr QEMU Cortex M3 platform ○ Zephyr is added to OpenAMP library cmake build ● Enable OpenAMP on Microcontroller ○ Standardize RPMsg, Remoteproc, virtio config ops APIs ○ restruct OpenAMP code base ■ decouple components features ● remoteproc life cycle management implementation ● remoteproc virtio config ops implementation ● virtio based RPMsg implementation ● libmetal shared memory operation implementation
  • 20. Future Improvements ● Testing ○ CI for OpenAMP libraries ■ Unit tests ■ Travis CI plugin in github ■ OpenAMP tests in Lava lab ● Extend remoteproc resource management APIs ○ resource table ■ extend carved out memory to cover shared memory owned by remote and host ■ extend to cover vendor resource ■ line up with the virtio config operations ● Extend virtio drivers support ○ Besides virtio rpmsg, support virtio net, virtio block, virtio console, and virtio balloon to enable software stacks such as network stack to build on top ● Facility to launch a remote application and improve the proxy service in Linux userspace ○ e.g. binfmt_misc deamon to attach/dettach a remote application, send/receive data to the remote
  • 21. Thank You Questions/Comments: jiaying.liang@linaro.org, arnaud.pouliquen@linaro.org, kumar.gala@linaro.org #HKG18 HKG18 keynotes and videos on: connect.linaro.org For further information: www.linaro.org