Skip to content

Asymmetric multiprocessing (AMP) #3065

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
zephyrbot opened this issue Jan 20, 2017 · 7 comments
Closed

Asymmetric multiprocessing (AMP) #3065

zephyrbot opened this issue Jan 20, 2017 · 7 comments
Assignees
Labels
area: Drivers area: IPC Inter-Process Communication Feature A planned feature with a milestone LTS Long term release branch related priority: medium Medium impact/importance bug
Milestone

Comments

@zephyrbot
Copy link
Collaborator

zephyrbot commented Jan 20, 2017

Reported by Anas Nashif:

Add support for AMP on multi core systems where Zephyr will run side by side with a different OS like Linux or where we have 2 instances of zephyr running on two individual cores serving different tasks.

(Imported from Jira ZEP-1604)

@zephyrbot
Copy link
Collaborator Author

@zephyrbot zephyrbot added area: Drivers area: IPC Inter-Process Communication Enhancement Changes/Updates/Additions to existing features labels Sep 23, 2017
@nashif nashif added Feature A planned feature with a milestone and removed Enhancement Changes/Updates/Additions to existing features labels Sep 23, 2017
@zephyrbot zephyrbot mentioned this issue Sep 23, 2017
1 task
@nashif nashif added LTS Long term release branch related priority: medium Medium impact/importance bug labels Nov 2, 2017
@nashif nashif added this to the v1.11.0 milestone Dec 12, 2017
@galak galak mentioned this issue Dec 12, 2017
38 tasks
@galak
Copy link
Collaborator

galak commented Dec 13, 2017

I've asked @wjliang to get a build integration of OpenAMP & libmetal for Zephyr. We intend to than look at code size to be similar to rpmsg-lite.

https://github.com/OpenAMP/open-amp
https://github.com/OpenAMP/libmetal

@carlescufi
Copy link
Member

carlescufi commented Dec 13, 2017

@skordal @ioannisg FYI

@skordal
Copy link

skordal commented Feb 6, 2018

I have been looking a little into the differences between OpenAMP and RPMsg-Lite, while working with the two libraries. Some thoughts about each of them:

OpenAMP

  • Seems to be targeted mostly at applications where Linux is run on the host processor
  • Provides functionality to manage remote processors (load firmware, boot remote processor, etc)
  • Requires that a shared resource table is set up between the processors
  • Uses heap memory, allocates several large structures on the heap
  • Dependent on libmetal as OS/RTOS abstraction layer, in addition to implementation of platform-specific operations for each processor

RPMsg-Lite

  • Simplified/reduced API and feature set compared to OpenAMP
  • Provides an API that allows static allocation of instance structs (some heap is still used for semaphores)
  • Has separate abstraction layers for environment (must be ported for each) and platform
  • In my tests, produced smaller compiled code than OpenAMP

@nashif
Copy link
Member

nashif commented May 31, 2018

in 1.12 now

@nashif nashif closed this as completed May 31, 2018
@Jeepgoing
Copy link

hi all,
i am now using nxp lpc54102, have we support this chip in the future? lpc54114's flash is 256k, i need mcuboot+parameter storage+m4 image+m0 image, i think it is difficult to OTA. lpc54102 have 512k flash, i can design application program more easily with it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: Drivers area: IPC Inter-Process Communication Feature A planned feature with a milestone LTS Long term release branch related priority: medium Medium impact/importance bug
Projects
None yet
Development

No branches or pull requests

8 participants