OpenAMP Kick Off XILINX INTERNAL.

Similar documents
Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

OpenAMP Framework for Zynq Devices

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

High-performance vnic framework for hypervisor-based NFV with userspace vswitch Yoshihiro Nakajima, Hitoshi Masutani, Hirokazu Takahashi NTT Labs.

Operating System Organization. Purpose of an OS

Example of Standard API

Full and Para Virtualization

Virtualization for Hard Real-Time Applications Partition where you can Virtualize where you have to

An Implementation Of Multiprocessor Linux

SDN software switch Lagopus and NFV enabled software node

Android Virtualization from Sierraware. Simply Secure

WHITEPAPER INTRODUCTION TO CONTAINER SECURITY. Introduction to Container Security

Sierraware Overview. Simply Secure

CS 377: Operating Systems. Outline. A review of what you ve learned, and how it applies to a real operating system. Lecture 25 - Linux Case Study

Virtualization Technologies and Blackboard: The Future of Blackboard Software on Multi-Core Technologies

2972 Linux Options and Best Practices for Scaleup Virtualization

Enabling Technologies for Distributed Computing

Virtualization: Hypervisors for Embedded and Safe Systems. Hanspeter Vogel Triadem Solutions AG

Enhancing Hypervisor and Cloud Solutions Using Embedded Linux Iisko Lappalainen MontaVista

Agent Languages. Overview. Requirements. Java. Tcl/Tk. Telescript. Evaluation. Artificial Intelligence Intelligent Agents

ODP Application proof point: OpenFastPath. ODP mini-summit

x86 ISA Modifications to support Virtual Machines

DOWNLOAD COURSE PRESENTATIONS. Scan to download course presentations

How To Write A Windows Operating System (Windows) (For Linux) (Windows 2) (Programming) (Operating System) (Permanent) (Powerbook) (Unix) (Amd64) (Win2) (X

Chapter 5 Cloud Resource Virtualization

Chapter 14 Virtual Machines

High Performance or Cycle Accuracy?

ELEC 377. Operating Systems. Week 1 Class 3

Introduction to Virtual Machines

KVM, OpenStack, and the Open Cloud

KVM, OpenStack, and the Open Cloud

Distributed File Systems

KVM: A Hypervisor for All Seasons. Avi Kivity avi@qumranet.com

Network Virtualization Technologies and their Effect on Performance

Intel DPDK Boosts Server Appliance Performance White Paper

BHyVe. BSD Hypervisor. Neel Natu Peter Grehan

KeyStone Multicore. Ecosystem

Virtual Machines. COMP 3361: Operating Systems I Winter

Enabling Technologies for Distributed and Cloud Computing

System Structures. Services Interface Structure

TFE listener architecture. Matt Klein, Staff Software Engineer Twitter Front End

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

Operating Systems. Lecture 03. February 11, 2013

Virtual Private Systems for FreeBSD

Xeon+FPGA Platform for the Data Center

Chapter 2: OS Overview

Open Network Install Environment (ONIE) LinuxCon North America 2015

OpenPOWER Outlook AXEL KOEHLER SR. SOLUTION ARCHITECT HPC

Device Management Functions

Oracle Linux Strategy and Roadmap

Oracle Linux Overview. Presented by: Anuj Verma Title: Senior Pre-Sales Consultant

Virtualization for Cloud Computing

VMware Server 2.0 Essentials. Virtualization Deployment and Management

Kernel Types System Calls. Operating Systems. Autumn 2013 CS4023

Notes and terms of conditions. Vendor shall note the following terms and conditions/ information before they submit their quote.

Useful USB Gadgets on Linux

Windows Server Virtualization & The Windows Hypervisor

Analysis of Open Source Drivers for IEEE WLANs

Advanced Computer Networks. Network I/O Virtualization

Operating System Structures

A Data Centric Approach for Modular Assurance. Workshop on Real-time, Embedded and Enterprise-Scale Time-Critical Systems 23 March 2011

Lecture 17: Mobile Computing Platforms: Android. Mythili Vutukuru CS 653 Spring 2014 March 24, Monday

Sun xvm VirtualBox Product Overview

The Lagopus SDN Software Switch. 3.1 SDN and OpenFlow. 3. Cloud Computing Technology

Linux Driver Devices. Why, When, Which, How?

Saisei and Intel Maximizing WAN Bandwidth

Going Linux on Massive Multicore

PikeOS: Multi-Core RTOS for IMA. Dr. Sergey Tverdyshev SYSGO AG , Moscow

Virtualization Technology. Zhiming Shen

Embedded Linux Platform Developer

An Analysis of Wireless Device Implementations on Universal Serial Bus

CHAPTER 15: Operating Systems: An Overview

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

How do Users and Processes interact with the Operating System? Services for Processes. OS Structure with Services. Services for the OS Itself

Security Overview of the Integrity Virtual Machines Architecture

Parallels Mac Management v4.0

CS222: Systems Programming

Chapter 2 System Structures

RED HAT ENTERPRISE VIRTUALIZATION

Private Cloud Management

Extending Tizen Native Framework with Node.js

InfiniBand Software and Protocols Enable Seamless Off-the-shelf Applications Deployment

KVM: Kernel-based Virtualization Driver

Chapter 13 Embedded Operating Systems

Xen Project 4.4: Features and Futures. Russell Pavlicek Xen Project Evangelist Citrix Systems

Red Hat Satellite Management and automation of your Red Hat Enterprise Linux environment

Date: December 2009 Version: 1.0. How Does Xen Work?

Red Hat Network Satellite Management and automation of your Red Hat Enterprise Linux environment

CPS221 Lecture: Operating System Structure; Virtual Machines

Knut Omang Ifi/Oracle 19 Oct, 2015

KVM Architecture Overview

Best Practises for LabVIEW FPGA Design Flow. uk.ni.com ireland.ni.com

Virtualization. Jia Rao Assistant Professor in CS

Using Chroot to Bring Linux Applications to Android

Open Source in Network Administration: the ntop Project

DevOps with Containers. for Microservices

Enterprise-Class Virtualization with Open Source Technologies

Hardware accelerated Virtualization in the ARM Cortex Processors

Transcription:

OpenAMP Kick Off

Agenda Overview of OpenAMP Governance: 30 Minutes OpenAMP vs OpenAMP MCA Working Group: 15 Minutes Introduction to OpenAMP project and current capabilities: 15 Minutes Overview of Identified Gaps in OpenAMP and Evolving OpenAMP: 25Minutes NXP OpenAMP modification: 15 Minutes What s in the Next Release: 5Minutes Total Meeting Time: 120 Minutes Page 2

OpenAMP Maintenance OpenAMP Maintenance: http://openampgithubio/docs/contributingmd Notes: OpenAMP next release: 201604 Gaps: OpenAMP and Linux kernel upstream There is currently no plan to line up with Linux kernel There is an maintainer ship gap about the rpmsg/remoteproc in kernel needs to pick up Page 3

What is OpenAMP? An Open Source project Today driven by Mentor Graphics and Xilinx Also used by Micrium, NXP Based on existing open source technologies in Linux Clean-room implementation for non-linux kernel code OpenAMP today Multiple licenses (GPL for Linux kernel, BSD for rest) Shared memory protocol virtio Lifecycle APIs remoteproc Messaging rpmsg Proxy technologies to emulate Linux processes More in future Page 4

OpenAMP Software Simplifies Deployment of Heterogeneous Systems System Wide Applications Linux VxWorks Free RTOS Bare Metal uc- OSII Nucleus Bare Metal Bare Metal Bare Metal Bare Metal OpenAMP SW A53 A53 A53 A53 R5 R5 MB MB MB MB Provides a Layer for Applications Standard API s that allow applications to be ported across processors and operating systems System Development Provides a wide rage of capabilities needed to deploy applications across asymmetric computing elements Inter-OS & Inter Processor Communication Send messages back and forth OS Management Provides booting/rebooting of processors

RT Process Make AMP Look Like Linux Use standard Linux process concept to manage other OS Compile application meant to run on RTOS linking to RTOS and OpenAMP libraries Put application executable (ELF file) in the Linux file system Boot Linux as normal on main processors Start application through special OpenAMP launch program, runs in supervisor mode Handles select system(ie open/close/read/write/ ) calls through RPC Terminate RT process like any other process Regular Process RTProc 1 Proxy RTProc 2 Proxy printf( Hello\n ); open( confdat,rd); Linux File System Serial Port RTProc2 (BM/Exec) RTProc1 (RTOS) AMP Framework (rpmsg) Core 0 Core 1 Core 2 Core n Page 6

Current OpenAMP Structure Management and messaging frameworks are two key components The management framework is named remoteproc The messaging framework is named rpmsg Memory Application remoteproc rpmsg Linux Kernel Linux Code/Data Bare metal Code/Data Ring Buffers Buffer memory Application rpmsg remoteproc Bare Metal Page 7

OpenAMP Gaps Page 8

Landscape Overview Job Scheduling Dispatch Serialization Publish Subscribe ISV Ecosystem Products Persistence Routing Zero Copy Messaging OpenAMP Project Page 9

OpenAMP Needs Maximal Leverage of Hardware Capabilities Processor capabilities IPI, mailbox, DMA data movers Variety of Coherent and Non-Coherent Interconnects Flexibility Across Broad Range of Use Cases Life-cycle and Discovery Options (Master-Slave, Registered Peer-to-Peer, ) Messaging and add-ons (RPC, Pub-Sub, etc) Filesystem, Block Device, Network interfaces, and more Consistency and Portability Across threads and processes (Linux, RTOS, and Baremetal) Across Xen/KVM guests (Linux, RTOS, and Baremetal) Across processors (A53, R5, MicroBlaze) Across interconnects (AXI, PCIe, and more) Page 10

Current OpenAMP Design Gaps Targets a narrow problem domain Strictly master-slave, no peer-to-peer; Linux is master only Linux support oriented towards kernel clients; not user-space applications Remoteproc/rpmsg only; cannot support MCAPI, XenBus/XenStore, etc Lack of consistent API Raw device/ioctl interface in user-space Linux BareMetal interfaces do not carry into user-space Linux Structural problems Zynq/ZynqMP code splattered all over; includes standalone library code, etc Not modular/composible Not self-test capable Page 11

Evolving OpenAMP Inclusive, not exclusive Provide a toolkit, not enforce a policy Support multiple usage models: master-slave, hierarchical, peer-to-peer, Support multiple APIs, Protocols, and Platform architectures Focus on user-space applications, not kernel Use existing kernel infrastructure for user-space I/O; follow design patterns of DPDK/ODP/ Avoid need for pushing new kernel ABIs upstream (rpmsg device/sockets/ ) Support linux-generic target User-space inter process/thread comms using VirtIO (SHM rings, futex for kick/notify) Replaces Zynq/ZynqMP as primary target; allow removal of extraneous baremetal code from OpenAMP Necessary for self-contained self-tests within the OpenAMP code base Composable components Build out reusable and pluggable components with well-defined class based interfaces Components configured and selected through Autoconf/Cmake like mechanisms?? How to manage shared devices Eg timer, interrupt controller, and so on Will need to be put in the documentation on this constraint Page 12

OpenAMP Components APIs MCAPI, MRAPI, MTAPI, Baremetal RPMSG APIs DPDK PMD, ODP PktIO, TCF? CF? Others? Protocols Virtio Protocols (Rpmsg, block, plan9, serial, VirGL, ) Registry Protocols (SHM, DBUS, ) Other Protocols (TCF?) Channels Memory rings (SPSC, SPMC, MPSC, MPMP) Virtio Unix sockets; TCP/IP (ZMQ? Other?) Platform Support Shared Memory (Raw physical memory, Linux-SHM hugepages, CMA, dma-buf, ) Events/Notifications (pipe, futex, WFE/SEV, Mailbox/IPI, ) Control (power mgmt, heartbeat, ) Page 13

Evolving OpenAMP Architecture (Available) OpenAMP virtio rpmsg remoteproc proxy Porting Layers + linux user-space Page 14

UIO VFIO LibSysfs LibHugeTLBFS Evolving OpenAMP Architecture (Next) Commercial AMP Solution Space (Mentor, WindRiver, Enea, ) OpenAMP virtio rpmsg remoteproc proxy Platform Zynq ZynqMP-R5 ZynqMP-A53 MicroBlaze libmetal (OS Adaptation) Atomics Locks Shmem I/O Mem Bus Device IRQ DMA Linux Generic (bare metal) RTOS Page 15

What s going into Next Release (By the end of April) Release Branch will be created by March,only bug fixes will go in OpenAMP source code restruct Obsolete what s not belong to OpenAMP library, such as the OpenAMP app dependent libraries Clean Zynq/ZynqMP dependent code from the library Easier for non-master-slave model A more centralized place for platform specific implementation Easier to add support for more compilers OpenAMP on Linux Userspace (Not in) Easier for Linux user applications to use OpenAMP Easier for Users to try OpenAMP on Linux One step forward to application focus, don t need to worry if the communication parties on the same system or not Easier for upstreaming LibMetal (Not in) Legal review Test suites? The existing basic applications demos: function test suite, echo_test, matrix multiplication, and rpc demo Welcome contributions Support flat binary format in remoteproc Linux kernel changes: sysfs for messaging Post features for Oct release by the end of March Page 16

OpenAMP Roadmap Post features for Oct release by the end of March Features in roadmap: Libmetal (201610) Linux userspace support (201610) 64bit address space support Support flat binary format in remoteproc Linux kernel changes: sysfs for messaging Page 17

OpenAMP over Linux processes A B rpmsg rpmsg virtio remote proc remote proc virtio Unix Socket Page 18

OpenAMP Between Linux process and Another processor A B rpmsg rpmsg virtio remote proc remote proc virtio IPI Page 19

NXP OpenAMP Modification Notes: NXP introduces introruce queueing rpmsg APIs Another option from Cyril: in the callback, can transfer buffer ownership to application Page 20