Giter Site home page Giter Site logo

open-amp's Introduction

open-amp

This repository is the home for the Open Asymmetric Multi Processing (OpenAMP) framework project. The OpenAMP framework provides software components that enable development of software applications for Asymmetric Multiprocessing (AMP) systems. The framework provides the following key capabilities.

  1. Provides Life Cycle Management, and Inter Processor Communication capabilities for management of remote compute resources and their associated software contexts
  2. Provides a stand alone library usable with RTOS and Baremetal software environments
  3. Compatibility with upstream Linux remoteproc and rpmsg components
  4. Following AMP configurations supported a. Linux master/Generic(Baremetal) remote b. Generic(Baremetal) master/Linux remote
  5. Proxy infrastructure and supplied demos showcase ability of proxy on master to handle printf, scanf, open, close, read, write calls from Bare metal based remote contexts.

OpenAMP Source Structure

|- lib/
|  |- common/     # common helper functions
|  |- virtio/     # virtio implemnetation
|  |- rpmsg/      # rpmsg implementation
|  |- remoteproc/ # remoteproc implementation
|  |  |- drivers  # remoteproc drivers
|  |- proxy/      # implement one processor access device on the
|  |              # other processor with file operations
|  |- system/     # os specific implementation
|  |  |  |- generic/ # E.g. generic system (that is baremetal)
|  |  |  |  |- machine/ # machine specific implmentation for the system
|  |- include/     # header files
|  |  |- machine/ # machine specific header files
|  |  |- system/  # system specific header files
|- apps/        # demontrastion/testing applicaitons
|  |- machine/  # common files for machine can be shared by applications
|               # It is up to each app to decide whether to use these files.
|  |- system/   # common files for system can be shared by applicaitons
|               # It is up to each app to decide whether to use these files.
|- obsolete     # It is used to build libs which may also required when
|               # building the apps. It will be removed in future since
|               # user can specify which libs to use when compiling the apps.
|- cmake        # CMake files

OpenAMP library libopen_amp is composed of the following directorys in lib/:

  • common/
  • virtio/
  • rpmsg/
  • remoteproc/
  • proxy/
  • system/

OpenAMP Compilation

OpenAMP uses CMake for library and demonstration applicaiton compilation.

Example to compile Zynq MP SoC R5 generic(baremetal) remote:

$ mkdir build
$ cd build/
$ cmake ../open-amp -DCMAKE_TOOLCHAIN_FILE=zynqmp_r5_generic -DWITH_OBSOLETE=ON -DWITH_APPS=ON
$ make DESTDIR=$(pwd) install

The OpenAMP library will be generated to build/usr/local/lib directory, headers will be generated to build/usr/local/include directory, and the applications executables will be generated to build/usr/local/bin directory.

  • -DWITH_OBSOLETE=ON is to build the libxil.a.
  • -DWITH_APPS=ON is to build the demonstration applications.

Example to compile Zynq A9 remote:

$ mkdir build
$ cd build/
$ cmake ../open-amp -DCMAKE_TOOLCHAIN_FILE=zynq7_generic -DWITH_OBSOLETE=on -DWITH_APPS=ON
$ make DESTDIR=$(pwd) install

Supported System and Machines

For now, it supports:

  • Zynq generic slave
  • Zynq generic master
  • ZynqMP R5 generic slave

Known Limitations:

  1. In rpc_demo.c(the remote demonstration application that showcases usage of rpmsg retargetting infrastructure), the bindings for the flag input parameter in open() system call has been redefined. The GCC tool library bindings for this input argument is different between arm-xilinx/none-eabi, and arm-linux-eabi toolchains. For this reason, redefinition is required for compatibility with proxy on Linux master.

For using the framework please refer to the documents present in the /docs folder. Subscribe to the open-amp mailing list at https://groups.google.com/group/open-amp.

open-amp's People

Contributors

wjliang avatar eanjum avatar kinjalp27 avatar michalprincnxp avatar samsor avatar jacobmcnamee avatar edgarigl avatar arvindraghuraman avatar weif avatar marian-cingel-fsl avatar

Watchers

Mark Fine avatar Joshua Gross avatar Fergus Noble avatar Gareth McMullin avatar Colin Beighley avatar James Cloos avatar Leith Bade avatar  avatar Mikko Kurkela avatar  avatar  avatar Valeri Atamaniouk avatar Swift Navigation Slack Bot avatar  avatar Prasenjit Sengupta avatar  avatar Roman Gezikov avatar  avatar Dmitry Tatarinov avatar Juha Roström avatar  avatar  avatar  avatar  avatar Stefan Witanis avatar  avatar  avatar  avatar Astha Keshan avatar  avatar  avatar  avatar  avatar

Forkers

enemra ljbade

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.