SlideShare a Scribd company logo
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

More Related Content

What's hot

eBPF in the view of a storage developer
eBPF in the view of a storage developereBPF in the view of a storage developer
eBPF in the view of a storage developer
Richárd Kovács
 
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
Mr. Vengineer
 
Scheduling in Android
Scheduling in AndroidScheduling in Android
Scheduling in Android
Opersys inc.
 
Lcu14 107- op-tee on ar mv8
Lcu14 107- op-tee on ar mv8Lcu14 107- op-tee on ar mv8
Lcu14 107- op-tee on ar mv8
Linaro
 
SFO15-205: OP-TEE Content Decryption with Microsoft PlayReady on ARM
SFO15-205: OP-TEE Content Decryption with Microsoft PlayReady on ARMSFO15-205: OP-TEE Content Decryption with Microsoft PlayReady on ARM
SFO15-205: OP-TEE Content Decryption with Microsoft PlayReady on ARM
Linaro
 
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted FirmwareHKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
Linaro
 
LISA2019 Linux Systems Performance
LISA2019 Linux Systems PerformanceLISA2019 Linux Systems Performance
LISA2019 Linux Systems Performance
Brendan Gregg
 
Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016
Brendan Gregg
 
4章 Linuxカーネル - 割り込み・例外 3
4章 Linuxカーネル - 割り込み・例外 34章 Linuxカーネル - 割り込み・例外 3
4章 Linuxカーネル - 割り込み・例外 3
mao999
 
eBPF Basics
eBPF BasicseBPF Basics
eBPF Basics
Michael Kehoe
 
Implementation & Comparison Of Rdma Over Ethernet
Implementation & Comparison Of Rdma Over EthernetImplementation & Comparison Of Rdma Over Ethernet
Implementation & Comparison Of Rdma Over Ethernet
James Wernicke
 
Fun with Network Interfaces
Fun with Network InterfacesFun with Network Interfaces
Fun with Network Interfaces
Kernel TLV
 
Tutorial: Using GoBGP as an IXP connecting router
Tutorial: Using GoBGP as an IXP connecting routerTutorial: Using GoBGP as an IXP connecting router
Tutorial: Using GoBGP as an IXP connecting router
Shu Sugimoto
 
Introduction to open_sbi
Introduction to open_sbiIntroduction to open_sbi
Introduction to open_sbi
Nylon
 
Linux 4.x Tracing: Performance Analysis with bcc/BPF
Linux 4.x Tracing: Performance Analysis with bcc/BPFLinux 4.x Tracing: Performance Analysis with bcc/BPF
Linux 4.x Tracing: Performance Analysis with bcc/BPF
Brendan Gregg
 
Container Performance Analysis
Container Performance AnalysisContainer Performance Analysis
Container Performance Analysis
Brendan Gregg
 
Accelerating Envoy and Istio with Cilium and the Linux Kernel
Accelerating Envoy and Istio with Cilium and the Linux KernelAccelerating Envoy and Istio with Cilium and the Linux Kernel
Accelerating Envoy and Istio with Cilium and the Linux Kernel
Thomas Graf
 
Qemu device prototyping
Qemu device prototypingQemu device prototyping
Qemu device prototyping
Yan Vugenfirer
 
Qemu Pcie
Qemu PcieQemu Pcie

What's hot (20)

eBPF in the view of a storage developer
eBPF in the view of a storage developereBPF in the view of a storage developer
eBPF in the view of a storage developer
 
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
RISC-V : Berkeley Boot Loader & Proxy Kernelのソースコード解析
 
Scheduling in Android
Scheduling in AndroidScheduling in Android
Scheduling in Android
 
Lcu14 107- op-tee on ar mv8
Lcu14 107- op-tee on ar mv8Lcu14 107- op-tee on ar mv8
Lcu14 107- op-tee on ar mv8
 
SFO15-205: OP-TEE Content Decryption with Microsoft PlayReady on ARM
SFO15-205: OP-TEE Content Decryption with Microsoft PlayReady on ARMSFO15-205: OP-TEE Content Decryption with Microsoft PlayReady on ARM
SFO15-205: OP-TEE Content Decryption with Microsoft PlayReady on ARM
 
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted FirmwareHKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
HKG15-505: Power Management interactions with OP-TEE and Trusted Firmware
 
LISA2019 Linux Systems Performance
LISA2019 Linux Systems PerformanceLISA2019 Linux Systems Performance
LISA2019 Linux Systems Performance
 
Linux Porting
Linux PortingLinux Porting
Linux Porting
 
Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016Broken Linux Performance Tools 2016
Broken Linux Performance Tools 2016
 
4章 Linuxカーネル - 割り込み・例外 3
4章 Linuxカーネル - 割り込み・例外 34章 Linuxカーネル - 割り込み・例外 3
4章 Linuxカーネル - 割り込み・例外 3
 
eBPF Basics
eBPF BasicseBPF Basics
eBPF Basics
 
Implementation & Comparison Of Rdma Over Ethernet
Implementation & Comparison Of Rdma Over EthernetImplementation & Comparison Of Rdma Over Ethernet
Implementation & Comparison Of Rdma Over Ethernet
 
Fun with Network Interfaces
Fun with Network InterfacesFun with Network Interfaces
Fun with Network Interfaces
 
Tutorial: Using GoBGP as an IXP connecting router
Tutorial: Using GoBGP as an IXP connecting routerTutorial: Using GoBGP as an IXP connecting router
Tutorial: Using GoBGP as an IXP connecting router
 
Introduction to open_sbi
Introduction to open_sbiIntroduction to open_sbi
Introduction to open_sbi
 
Linux 4.x Tracing: Performance Analysis with bcc/BPF
Linux 4.x Tracing: Performance Analysis with bcc/BPFLinux 4.x Tracing: Performance Analysis with bcc/BPF
Linux 4.x Tracing: Performance Analysis with bcc/BPF
 
Container Performance Analysis
Container Performance AnalysisContainer Performance Analysis
Container Performance Analysis
 
Accelerating Envoy and Istio with Cilium and the Linux Kernel
Accelerating Envoy and Istio with Cilium and the Linux KernelAccelerating Envoy and Istio with Cilium and the Linux Kernel
Accelerating Envoy and Istio with Cilium and the Linux Kernel
 
Qemu device prototyping
Qemu device prototypingQemu device prototyping
Qemu device prototyping
 
Qemu Pcie
Qemu PcieQemu Pcie
Qemu Pcie
 

Similar to 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 Watkins
Ceph 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.pptx
tampham61268
 
Linux-Internals-and-Networking
Linux-Internals-and-NetworkingLinux-Internals-and-Networking
Linux-Internals-and-Networking
Emertxe Information Technologies Pvt Ltd
 
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 Device
Samsung Open Source Group
 
The sunsparc architecture
The sunsparc architectureThe sunsparc architecture
The sunsparc architecture
Taha 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 OpenCSD
Linaro
 
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
Kynetics
 
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 Systems
dairsie
 
OFI Overview 2019 Webinar
OFI Overview 2019 WebinarOFI Overview 2019 Webinar
OFI Overview 2019 Webinar
seanhefty
 
OpenPOWER Acceleration of HPCC Systems
OpenPOWER Acceleration of HPCC SystemsOpenPOWER Acceleration of HPCC Systems
OpenPOWER Acceleration of HPCC Systems
HPCC Systems
 
Embedded platform choices
Embedded platform choicesEmbedded platform choices
Embedded platform choices
Tavish 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 #IoT
Stéphanie Roger
 
State of ARM-based HPC
State of ARM-based HPCState of ARM-based HPC
State of ARM-based HPC
inside-BigData.com
 
BKK16-106 ODP Project Update
BKK16-106 ODP Project UpdateBKK16-106 ODP Project Update
BKK16-106 ODP Project Update
Linaro
 
[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
 

Similar to 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
 
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
 
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 - 갈라파고스의 이구아나, 인프라에 오픈소스를 올리다. 그래서 보이...
 

More from 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 Gallo
Linaro
 
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
Linaro
 
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
Linaro
 
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
Linaro
 
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
Linaro
 
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
Linaro
 
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 mainline
Linaro
 
HKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening KeynoteHKG18-100K1 - George Grey: Opening Keynote
HKG18-100K1 - George Grey: Opening Keynote
Linaro
 
HKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP WorkshopHKG18-318 - OpenAMP Workshop
HKG18-318 - OpenAMP Workshop
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 mainline
Linaro
 
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
Linaro
 
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
Linaro
 
HKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMUHKG18-TR08 - Upstreaming SVE in QEMU
HKG18-TR08 - Upstreaming SVE in QEMU
Linaro
 
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
Linaro
 
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 boot
Linaro
 

More from 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
 

Recently uploaded

GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
Guy Korland
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Inflectra
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
Product School
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
Product School
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 

Recently uploaded (20)

GraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge GraphGraphRAG is All You need? LLM & Knowledge Graph
GraphRAG is All You need? LLM & Knowledge Graph
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualitySoftware Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered Quality
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 

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