Skip to content

Commit 6aca353

Browse files
nordicjmrlubos
authored andcommitted
sysbuild: Add image selection for PPR core images
Allows selecting a core to be built for the PPR core on supported devices, with empty as the only user selectable image Signed-off-by: Jamie McCrae <[email protected]>
1 parent 1bc1718 commit 6aca353

File tree

3 files changed

+73
-0
lines changed

3 files changed

+73
-0
lines changed

sysbuild/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -902,6 +902,7 @@ include(ncs_sysbuild_extensions)
902902
include(${CMAKE_CURRENT_LIST_DIR}/extensions.cmake)
903903
include(${CMAKE_CURRENT_LIST_DIR}/appcore.cmake)
904904
include(${CMAKE_CURRENT_LIST_DIR}/netcore.cmake)
905+
include(${CMAKE_CURRENT_LIST_DIR}/pprcore.cmake)
905906
include(${CMAKE_CURRENT_LIST_DIR}/secureboot.cmake)
906907
include(${CMAKE_CURRENT_LIST_DIR}/mcuboot.cmake)
907908
include(${CMAKE_CURRENT_LIST_DIR}/hpf.cmake)

sysbuild/Kconfig.pprcore

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,56 @@ config SUPPORT_PPRCORE
66
bool
77
default y if SOC_NRF54H20_CPUAPP
88

9+
if SUPPORT_PPRCORE
10+
911
config PPRCORE_REMOTE_BOARD_TARGET_CPUCLUSTER
1012
string
1113
default "cpuppr" if SOC_NRF54H20_CPUAPP
14+
15+
menu "Peripheral processor core (PPR) configuration"
16+
depends on SUPPORT_PPRCORE
17+
18+
config SUPPORT_PPRCORE_EMPTY
19+
bool
20+
default y
21+
22+
config DEFAULT_PPRCORE_EMPTY
23+
bool
24+
25+
choice PPRCORE
26+
prompt "PPR core image"
27+
default PPRCORE_EMPTY if DEFAULT_PPRCORE_EMPTY && PPRCORE_REMOTE_BOARD_TARGET_CPUCLUSTER != ""
28+
depends on SUPPORT_PPRCORE
29+
30+
config PPRCORE_NONE
31+
bool "None"
32+
help
33+
Do not include a PPR core image in the build.
34+
35+
config PPRCORE_EMPTY
36+
bool "Empty"
37+
depends on SUPPORT_PPRCORE_EMPTY
38+
help
39+
Include empty image as the PPR core image to use.
40+
41+
endchoice
42+
43+
if !PPRCORE_NONE
44+
45+
config PPRCORE_IMAGE_NAME
46+
string
47+
default "empty_ppr_core" if PPRCORE_EMPTY
48+
help
49+
Name of PPR core image.
50+
51+
config PPRCORE_IMAGE_PATH
52+
string
53+
default "$(ZEPHYR_NRF_MODULE_DIR)/samples/basic/empty" if PPRCORE_EMPTY
54+
help
55+
Source directory of PPR core image.
56+
57+
endif # !PPRCORE_NONE
58+
59+
endmenu
60+
61+
endif # SUPPORT_PPRCORE

sysbuild/pprcore.cmake

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
#
2+
# Copyright (c) 2025 Nordic Semiconductor
3+
#
4+
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5+
6+
# Include PPR core image if enabled
7+
if(SB_CONFIG_SUPPORT_PPRCORE AND NOT SB_CONFIG_PPRCORE_NONE AND DEFINED SB_CONFIG_PPRCORE_IMAGE_NAME)
8+
# Calculate the PPR core board target
9+
string(REPLACE "/" ";" split_board_qualifiers "${BOARD_QUALIFIERS}")
10+
list(GET split_board_qualifiers 1 target_soc)
11+
list(GET split_board_qualifiers 2 target_cpucluster)
12+
set(board_target_pprcore "${BOARD}/${target_soc}/${SB_CONFIG_PPRCORE_REMOTE_BOARD_TARGET_CPUCLUSTER}")
13+
set(target_soc)
14+
set(target_cpucluster)
15+
16+
ExternalZephyrProject_Add(
17+
APPLICATION ${SB_CONFIG_PPRCORE_IMAGE_NAME}
18+
SOURCE_DIR ${SB_CONFIG_PPRCORE_IMAGE_PATH}
19+
BOARD ${board_target_pprcore}
20+
BOARD_REVISION ${BOARD_REVISION}
21+
)
22+
endif()

0 commit comments

Comments
 (0)