From: Wojciech Zmuda <[email protected]>

This patch set adds support of Avenger96 boards based on
STMicro STM32MP157AAC 2xCortex-A7+2xCortex-M4 SoC.
The support consists of:
 - cloning dependencies i.e. STM32 HAL and OpenAMP framework,
 - adding STM32MP1 and Avenger96 $MACHINE config files.

Verification:

1. Build an example app for Avenger96:

   $ DISTRO=zephyr MACHINE=96b-avenger96 bitbake zephyr-philosophers

2. Please be aware that Avenger96's Cortex-M4 core can be
   programmed and got out of reset only by software running
   on the Cortex-A7 core, e.g. by U-Boot or Linux. Therefore,
   despite the SoC can enter DFU mode, it cannot be used
   for programming the M4 firmware. This example uses Linux.

3. Linux has to be built with remoteproc support. This can
   be verified with simple dmesg inspection:

   root@stm32mp1-av96:~# dmesg | grep remoteproc
   [    2.336231] remoteproc remoteproc0: m4 is available

4. Transfer the example app to the board, e.g. using scp.
   The elf is located as usual in build/tmp-newlib/deploy/images/96b-avenger96/.

5. On the board, check the expected location of the fimrware image.
   Empty path defaults to /lib/firmware. You can leave them as
   they are and copy the Zephyr ELF file to the location pointed
   by them or you can echo the new path and image name.

   root@stm32mp1-av96:~# cat /sys/module/firmware_class/parameters/path
   <empty>

   root@stm32mp1-av96:~# cat /sys/class/remoteproc/remoteproc0/firmware
   rproc-m4-fw

6. After the image path and name are configured, start the M4 core:

   root@stm32mp1-av96:~# echo start > /sys/class/remoteproc/remoteproc0/state
   remoteproc remoteproc0: powering up m4
   remoteprocroc remoteproc0: Booting fw image rproc-m4-fw, size 591544
   rproc-srm-core m4@0:m4_system_resources: bound 
m4@0:m4_system_resources:m4_led (ops 0xc0be1210)
   remoteproc remoteproc0: remote processor m4 is now

7. Firmware output can be inspected with:

   root@stm32mp1-av96:~# cat /sys/kernel/debug/remoteproc/remoteproc0/trace0
   Philosopher 5 [C:-2]        STARVING
   Philosopher 3 [P: 0]    DROPPED ONE FORK
   Philosopher 3 [P: 0]  THINKING [  25 ms ]
   Philosopher 2 [P: 1]   EATING  [  425 ms ]
   Philosopher 3 [P: 0]        STARVING
   Philosopher 4 [C:-1]        STARVING
   Philosopher 4 [C:-1]    HOLDING ONE FORK
   Philosopher 4 [C:-1]   EATING  [  800 ms ]
   Philosopher 3 [P: 0]    HOLDING ONE FORK
   Philosopher 2 [P: 1]    DROPPED ONE FORK
   Philosopher 2 [P: 1]  THINKING [  725 ms ]
   Philosopher 1 [P: 2]   EATING  [  225 ms ]

Wojciech Zmuda (3):
  zephyr-kernel: clone STM32 HAL
  zephyr-kernel: clone OpenAMP
  conf: machine: add 96boards Avenger96 support

 classes/zephyr-kernel-src.bbclass                     |  6 ++++++
 conf/machine/96b-avenger96.conf                       |  8 ++++++++
 conf/machine/include/stm32mp1-cortex-m4.inc           | 11 +++++++++++
 recipes-kernel/zephyr-kernel/zephyr-kernel-common.inc |  2 ++
 4 files changed, 27 insertions(+)
 create mode 100644 conf/machine/96b-avenger96.conf
 create mode 100644 conf/machine/include/stm32mp1-cortex-m4.inc

-- 
2.25.1

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#51739): https://lists.yoctoproject.org/g/yocto/message/51739
Mute This Topic: https://lists.yoctoproject.org/mt/78952280/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to