modules: tf-m: add TF-M profile choice
We add a Kconfig choice for the TF-M profile, in TF-M's Kconfig file. The reason for that is to be able to easily enable additional configurations, depending on the profile type being selected. We also enhance the documentation of TFM_PROFILE, stressing that there is now also profile_large available as an option. TFM_PROFILE is now made hidden, forcing the users to select one of the available choice symbols. IF the TFM_PROFILE is set to something other than "none", then certain options shall be made hidden, namely, IPC and isolation level, as they are determined by the profile setting. Signed-off-by: Ioannis Glaropoulos <Ioannis.Glaropoulos@nordicsemi.no>
This commit is contained in:
parent
79c1019e85
commit
b80ad4c4b3
1 changed files with 42 additions and 7 deletions
|
|
@ -64,12 +64,39 @@ config TFM_KEY_FILE_NS
|
||||||
firmware images.
|
firmware images.
|
||||||
|
|
||||||
config TFM_PROFILE
|
config TFM_PROFILE
|
||||||
string "The build profile used for TFM Secure image."
|
string
|
||||||
depends on BUILD_WITH_TFM
|
depends on BUILD_WITH_TFM
|
||||||
|
default "profile_small" if TFM_PROFILE_TYPE_SMALL
|
||||||
|
default "profile_medium" if TFM_PROFILE_TYPE_MEDIUM
|
||||||
|
default "profile_large" if TFM_PROFILE_TYPE_LARGE
|
||||||
help
|
help
|
||||||
Build profile used to build tfm_s image. The available values are
|
Build profile used to build tfm_s image. The available values are
|
||||||
profile_medium and profile_small. The default profile does not need
|
profile_large, profile_medium and profile_small. The default profile
|
||||||
to have this configuration set.
|
does not need to have this configuration set.
|
||||||
|
|
||||||
|
choice TFM_PROFILE_TYPE
|
||||||
|
prompt "TF-M build profile"
|
||||||
|
depends on BUILD_WITH_TFM
|
||||||
|
default TFM_PROFILE_TYPE_NOT_SET
|
||||||
|
help
|
||||||
|
The TF-M build profile selection. Can be empty (not set),
|
||||||
|
small, medium or large. Certain profile types enable other
|
||||||
|
TF-M configuration options, namely, the IPC model and the
|
||||||
|
isolation level.
|
||||||
|
|
||||||
|
config TFM_PROFILE_TYPE_NOT_SET
|
||||||
|
bool "TF-M build profile is not set"
|
||||||
|
|
||||||
|
config TFM_PROFILE_TYPE_SMALL
|
||||||
|
bool "TF-M build profile: small"
|
||||||
|
|
||||||
|
config TFM_PROFILE_TYPE_MEDIUM
|
||||||
|
bool "TF-M build profile: medium"
|
||||||
|
|
||||||
|
config TFM_PROFILE_TYPE_LARGE
|
||||||
|
bool "TF-M build profile: large"
|
||||||
|
|
||||||
|
endchoice
|
||||||
|
|
||||||
choice TFM_CMAKE_BUILD_TYPE
|
choice TFM_CMAKE_BUILD_TYPE
|
||||||
prompt "The build type for TFM"
|
prompt "The build type for TFM"
|
||||||
|
|
@ -93,12 +120,17 @@ config TFM_CMAKE_BUILD_TYPE_DEBUG
|
||||||
endchoice
|
endchoice
|
||||||
|
|
||||||
config TFM_ISOLATION_LEVEL
|
config TFM_ISOLATION_LEVEL
|
||||||
int "Isolation level setting."
|
int "Isolation level setting." if TFM_PROFILE_TYPE_NOT_SET
|
||||||
range 1 3
|
range 1 3
|
||||||
depends on BUILD_WITH_TFM
|
depends on BUILD_WITH_TFM
|
||||||
|
default 1 if TFM_PROFILE_TYPE_SMALL
|
||||||
|
default 2 if TFM_PROFILE_TYPE_MEDIUM
|
||||||
|
default 3 if TFM_PROFILE_TYPE_LARGE
|
||||||
help
|
help
|
||||||
Manually set the required TFM isolation level. Possible values are
|
Manually set the required TFM isolation level. Possible values are
|
||||||
1,2 or 3; the default is set by build configuration.
|
1,2 or 3; the default is set by build configuration. When TF-M
|
||||||
|
Profile option is supplied, do not allow manual setting of the
|
||||||
|
isolation level, as it is determined by the profile setting.
|
||||||
|
|
||||||
config TFM_BL2
|
config TFM_BL2
|
||||||
bool "Add MCUboot to TFM"
|
bool "Add MCUboot to TFM"
|
||||||
|
|
@ -187,10 +219,13 @@ config TFM_PARTITION_AUDIT_LOG
|
||||||
interface so it may not be enabled together with IPC option.
|
interface so it may not be enabled together with IPC option.
|
||||||
|
|
||||||
config TFM_IPC
|
config TFM_IPC
|
||||||
bool "IPC"
|
bool "IPC" if TFM_PROFILE_TYPE_NOT_SET
|
||||||
|
default y if (TFM_PROFILE_TYPE_MEDIUM || TFM_PROFILE_TYPE_LARGE)
|
||||||
help
|
help
|
||||||
When enabled, this option signifies that the TF-M build supports
|
When enabled, this option signifies that the TF-M build supports
|
||||||
the PSA API (IPC mode) instead of the secure library mode.
|
the PSA API (IPC mode) instead of the secure library mode. When
|
||||||
|
TF-M Profile option is supplied, do not allow manual setting of
|
||||||
|
the IPC mode, as it is determined by the profile setting.
|
||||||
|
|
||||||
config TFM_REGRESSION
|
config TFM_REGRESSION
|
||||||
bool "Regression tests"
|
bool "Regression tests"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue