1 of 4

STMicroelectronics demonstration:

Use of upstream Linux and Zephyr for

inter-processor communication

1

2 of 4

STM32MP157 platform introduction

2

  • Hardware:

The STM32MP157F SoC embeds:

    • Arm® Cortex®-A7 dual core
    • Arm® Cortex®-M4

  • Software:
    • Cortex®-A7: ST OSS Yocto distribution based on upstream repositories:
                  • Linux kernel 6.0
              • Arm Trusted Firmware 2.7.0
              • U-Boot 2022.10
              • OP-TEE 3.19.0-rc1

    • Cortex®-M4: Zephyr 3.2 ( integrating OpenAMP v2022.04) with openamp system reference example

3 of 4

Legend

Demo 1: Preloading of a firmware by U-Boot and Linux attachment for RPMsg communication

3

Cortex-M4

Cortex-A7 Secure (TZ)

Cortex-A7 Non-Secure

Runtime services

Boot chain

ROM Code

ROM

power on

CoProcessor

Zephyr Firmware

FSBL-A

Application framework

User space

Kernel

Secure OS

SSBL

Linux Applications

Trusted Applications

Linux

U-Boot

TF-A BL2

OP-TEE

Loads

(Loads &) Calls

ST

Community

Community + demo

3rd Party/Customer

: Trusted boot

RPMsg

    • The Zephyr Firmware is loaded and started by the U-Boot before booting Linux�
    • The Linux “attaches” to the coprocessor. It configures the VirtIO to initiate the RPMsg protocol

4 of 4

virtio

Demo 2 : upstreamed RPMsg services usage

4

"rpmsg-client-sample“ service

rpmsg

ST

Community

OpenAMP system reference

shared memory

Legend

/dev/rpmsg_ctrl0

User space

kernel

rpmsg-utils

remoteproc

stm32_rproc

rpmsg char

virtio

rpmsg ctrl

rpmsg TTY

RPMsg-virtio

rpmsg client sample

/dev/rpmsg<X>

/dev/ttyRPMSG<x>

rpmsg

"rpmsg-tty“ service

end point

end point

"rpmsg-raw“ service

end point

end point

Zephyr Threads

Cortex-A7

Cortex-M4