リネオブログ

OpenAMP on i.MX8 - Yocto Linux with FreeRTOS #2

2020 年 05 月 20 日   Linux 技術ネタ

Porting requirements of OpenAMP on a heterogeneous core SoC

The OpenAMP Framework uses libmetal to provide abstractions that allow for porting of the OpenAMP Framework to various software environments (operating systems / bare metal environments) and machines (processors/platforms). Porting of OpenAMP to your platform needs:

  • add your system environment support to libmetal
    • Need to add system/machine support to lib/system/<SYS>/ directory in libmetal repository.
  • Implement your platform specific remoteproc driver.
    • Need to implement platform specific remoteproc driver to use remoteproc life cycle management APIs. The remoteproc driver platform specific functions are defined in this file: lib/include/openamp/remoteproc.h.
  • Define your shared memory layout and specify it in a resource table.
    • Need to define shared memory location in device tree. After that, user can use remoteproc APIs to run application on a remote processor.

OpenAMP on FreeRTOS

As with upstream Linux 3.4.x kernel onward all the required components required for OpenAMP is available. RPMsg character driver, remoteproc driver and virtio are part of the kernel. As we can see from the previous diagram, the open AMP implementation is only required for FreeRTOS.

The Implementation of OpenAMP is not yet done on i.MX8MQ's M4. i.MX7 has a similar implementation of OpenAMP in FreeRTOS. We were considering this as a reference. An i.MX8MQ M4 core based system driver configuration is required to make this work. This is a time consuming process as it is a porting work on M4 Core. This is TBD.

The FreeRTOS release for i.MX8MQ M4 core already have the NXP implementation of OpenAMP. They have named it as RPMsg_lite.

RPMsg-Lite

RPMsg-lite is a lightweight implementation of the Remote Processor Messaging (RPMsg) protocol. The RPMsg protocol defines a standardized binary interface used to communicate between multiple cores in a heterogeneous multicore system.

Compared to the RPMsg implementation of the Open Asymmetric Multi Processing (OpenAMP) framework (open-amp ), the RPMsg-Lite offers a code size reduction, API simplification, and improved modularity. On smaller Cortex-M0+ based systems, it is recommended to use RPMsg-Lite.

The RPMsg-Lite is an open-source component developed by NXP Semiconductors and released under the BSD-compatible license. Below is the difference between OpenAMP RPMsg implementation and RPMsg-lite

   
Component / Configuration Flash [B] RAM [B]
OpenAMP RPMsg / Release (reference) 5547 456 + dynamic
RPMsg-Lite / Dynamic API, Release 3462 56 + dynamic
Relative Difference [%]

~62.4% ~12.3%
RPMsg-Lite / Static API (no malloc), Release

2926 352
Relative Difference [%] ~52.7% ~77.2%

Working of RPMsg-lite

Working of RPMsg-lite

Next : OpenAMP on i.MX8 - Yocto Linux with FreeRTOS #3

Yocto Project 公式実践講座 5 月 ~ 7 月 開催分 受講お申込み受付中!
Yocto Project よもやま話
新企画「Yocto Project よもやま話」の連載を始めます
新企画「Yocto Project よもやま話」の連載を始めます

2022 年 04 月 28 日 Yocto Project よもやま話

Linux 技術ネタ
イベントレポート
ET & IoT 2021 レポート
ET & IoT 2021 レポート

2021 年 12 月 01 日 イベントレポート

組込み総合技術展 Embedded Technology 2019 レポート
組込み総合技術展 Embedded Technology 2019 レポート

2019 年 12 月 13 日 イベントレポート

組込み総合技術展 関西 ETWest2019 レポート
組込み総合技術展 関西 ETWest2019 レポート

2019 年 06 月 20 日 イベントレポート

リクルート
違うズラ
違うズラ

2018 年 10 月 26 日 リクルート

信州で人生がかわる
信州で人生がかわる

2018 年 07 月 24 日 リクルート

新入社員インタビュー
新入社員インタビュー

2017 年 02 月 28 日 リクルート

北小野通信
入笠山ハイキング その 2
入笠山ハイキング その 2

2019 年 10 月 09 日 北小野通信

入笠山ハイキング その 1
入笠山ハイキング その 1

2019 年 10 月 09 日 北小野通信

氷の世界
氷の世界

2019 年 01 月 22 日 北小野通信

ソリューション統括部
シリコンバレー探検記 2019 ~番外編~
シリコンバレー探検記 2019 ~番外編~

2019 年 12 月 10 日 ソリューション統括部

シリコンバレー探検記 2019 ~後編~
シリコンバレー探検記 2019 ~後編~

2019 年 12 月 10 日 ソリューション統括部

シリコンバレー探検記 2019 ~前編~
シリコンバレー探検記 2019 ~前編~

2019 年 12 月 10 日 ソリューション統括部

マーケティング統括部
大成功決起大会!!(ET2019)
大成功決起大会!!(ET2019)

2019 年 12 月 13 日 マーケティング統括部

ESEC 2019 決起大会
ESEC 2019 決起大会

2019 年 04 月 25 日 マーケティング統括部

シリコンバレー探検記 その 2
シリコンバレー探検記 その 2

2018 年 12 月 18 日 マーケティング統括部