soc: nordic: add vpr_launcher in sysbuild

`SB_CONFIG_VPR_LAUNCHER` can now be used in building a VPR target,
to enable automatic building of image that will launch the VPR.

Signed-off-by: Marcin Szymczyk <marcin.szymczyk@nordicsemi.no>
This commit is contained in:
Marcin Szymczyk 2024-04-10 12:34:07 +02:00 committed by Carles Cufí
commit 41b856f8dd
3 changed files with 46 additions and 0 deletions

View file

@ -0,0 +1,4 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
rsource "common/vpr/Kconfig.sysbuild"

View file

@ -0,0 +1,11 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
config VPR_LAUNCHER
bool "VPR launcher"
default y
depends on (SOC_NRF54H20_CPUPPR || SOC_NRF54L15_ENGA_CPUFLPR)
help
Include VPR launcher in build.
VPR launcher is a minimal sample built for an ARM core that starts given VPR core.
It is based on samples/basic/minimal with an appropriate snippet.

31
soc/nordic/sysbuild.cmake Normal file
View file

@ -0,0 +1,31 @@
# Copyright (c) 2024 Nordic Semiconductor ASA
# SPDX-License-Identifier: Apache-2.0
if(SB_CONFIG_VPR_LAUNCHER)
set(launcher_core "cpuapp")
string(REPLACE "/" ";" launcher_quals ${BOARD_QUALIFIERS})
list(LENGTH launcher_quals launcher_quals_len)
list(GET launcher_quals 1 launcher_soc)
list(GET launcher_quals 2 launcher_vpr)
string(REPLACE "cpu" "" launcher_vpr ${launcher_vpr})
if(launcher_quals_len EQUAL 4)
list(GET launcher_quals 3 launcher_variant)
set(launcher_vpr ${launcher_vpr}-${launcher_variant})
endif()
string(CONCAT launcher_board ${BOARD} "/" ${launcher_soc} "/" ${launcher_core})
set(image "vpr_launcher")
ExternalZephyrProject_Add(
APPLICATION ${image}
SOURCE_DIR ${ZEPHYR_BASE}/samples/basic/minimal
BOARD ${launcher_board}
)
string(CONCAT launcher_snippet "nordic-" ${launcher_vpr})
sysbuild_cache_set(VAR ${image}_SNIPPET APPEND REMOVE_DUPLICATES ${launcher_snippet})
endif()