From 3b2e688bafd7a7840b36fc8002d169da87ac98a7 Mon Sep 17 00:00:00 2001 From: Nikodem Kastelik Date: Thu, 24 Oct 2024 14:16:00 +0200 Subject: [PATCH] [nrf fromlist] soc: nordic: nrf54l15: fix APPROTECT handling To configure APPROTECT on nRF54L15 different set of MDK symbols must be used. Additionally, nRF54L15 does not support loading APPROTECT configuration from the UICR in runtime. Upstream PR #: 80366 Signed-off-by: Nikodem Kastelik (cherry picked from commit 015b317bc3242161f731a14a76333ad6c5d7f47d) --- modules/hal_nordic/nrfx/CMakeLists.txt | 9 ++++++--- soc/nordic/Kconfig | 24 +++++++++++++++++++++--- 2 files changed, 27 insertions(+), 6 deletions(-) diff --git a/modules/hal_nordic/nrfx/CMakeLists.txt b/modules/hal_nordic/nrfx/CMakeLists.txt index cb4fe5f43d9..caf7002b30a 100644 --- a/modules/hal_nordic/nrfx/CMakeLists.txt +++ b/modules/hal_nordic/nrfx/CMakeLists.txt @@ -75,11 +75,14 @@ zephyr_compile_definitions_ifdef(CONFIG_SOC_NRF9230_ENGB_CPUPPR NRF9230_ENGB_XXA zephyr_compile_definitions_ifdef(CONFIG_NRF_APPROTECT_LOCK ENABLE_APPROTECT) zephyr_compile_definitions_ifdef(CONFIG_NRF_APPROTECT_USER_HANDLING - ENABLE_APPROTECT_USER_HANDLING) + ENABLE_APPROTECT_USER_HANDLING + ENABLE_AUTHENTICATED_APPROTECT) zephyr_compile_definitions_ifdef(CONFIG_NRF_SECURE_APPROTECT_LOCK - ENABLE_SECURE_APPROTECT) + ENABLE_SECURE_APPROTECT + ENABLE_SECUREAPPROTECT) zephyr_compile_definitions_ifdef(CONFIG_NRF_SECURE_APPROTECT_USER_HANDLING - ENABLE_SECURE_APPROTECT_USER_HANDLING) + ENABLE_SECURE_APPROTECT_USER_HANDLING + ENABLE_AUTHENTICATED_SECUREAPPROTECT) zephyr_library_compile_definitions_ifdef(CONFIG_NRF_TRACE_PORT ENABLE_TRACE) diff --git a/soc/nordic/Kconfig b/soc/nordic/Kconfig index e0063b858ed..f76b1d19acc 100644 --- a/soc/nordic/Kconfig +++ b/soc/nordic/Kconfig @@ -98,15 +98,24 @@ config NFCT_PINS_AS_GPIOS choice NRF_APPROTECT_HANDLING bool "APPROTECT handling" - depends on SOC_SERIES_NRF52X || SOC_NRF5340_CPUNET || \ - SOC_NRF5340_CPUAPP || SOC_SERIES_NRF91X + depends on SOC_SERIES_NRF52X || SOC_SERIES_NRF53X || SOC_NRF54L15_CPUAPP || \ + SOC_SERIES_NRF91X + default NRF_APPROTECT_DISABLE if SOC_NRF54L15_CPUAPP default NRF_APPROTECT_USE_UICR help Specifies how the SystemInit() function should handle the APPROTECT mechanism. +config NRF_APPROTECT_DISABLE + bool "Disable" + depends on SOC_NRF54L15_CPUAPP + help + When this option is selected, the SystemInit() disables + the APPROTECT mechanism. + config NRF_APPROTECT_USE_UICR bool "Use UICR" + depends on SOC_SERIES_NRF52X || SOC_SERIES_NRF53X || SOC_SERIES_NRF91X help When this option is selected, the SystemInit() function loads the firmware branch state of the APPROTECT mechanism from UICR, so if @@ -131,14 +140,23 @@ endchoice choice NRF_SECURE_APPROTECT_HANDLING bool "Secure APPROTECT handling" - depends on SOC_NRF5340_CPUAPP || SOC_SERIES_NRF91X + depends on SOC_NRF5340_CPUAPP || SOC_NRF54L15_CPUAPP || SOC_SERIES_NRF91X + default NRF_SECURE_APPROTECT_DISABLE if SOC_NRF54L15_CPUAPP default NRF_SECURE_APPROTECT_USE_UICR help Specifies how the SystemInit() function should handle the secure APPROTECT mechanism. +config NRF_SECURE_APPROTECT_DISABLE + bool "Disable" + depends on SOC_NRF54L15_CPUAPP + help + When this option is selected, the SystemInit() disables + the secure APPROTECT mechanism. + config NRF_SECURE_APPROTECT_USE_UICR bool "Use UICR" + depends on SOC_NRF5340_CPUAPP || SOC_SERIES_NRF91X help When this option is selected, the SystemInit() function loads the firmware branch state of the secure APPROTECT mechanism from UICR,