1# Nordic Semiconductor nRFx MCU line
2
3# Copyright (c) 2016-2018 Nordic Semiconductor ASA
4# SPDX-License-Identifier: Apache-2.0
5
6# This file is contains Zephyr build system Kconfig references and is not
7# re-usable outside the Zephyr tree.
8
9config SOC_FAMILY_NORDIC_NRF
10	select SOC_COMPATIBLE_NRF
11	select PLATFORM_SPECIFIC_INIT if ARM
12
13if SOC_FAMILY_NORDIC_NRF
14
15rsource "common/Kconfig.peripherals"
16rsource "*/Kconfig"
17
18config NRF_SOC_SECURE_SUPPORTED
19	def_bool !TRUSTED_EXECUTION_NONSECURE || (BUILD_WITH_TFM && TFM_PARTITION_PLATFORM)
20	depends on !SOC_SERIES_NRF54HX
21	help
22	  Hidden function to indicate that the soc_secure functions are
23	  available.
24	  The functions are always available when not in non-secure.
25	  For non-secure the functions must redirect to secure services exposed
26	  by the secure firmware.
27
28config BUILD_WITH_TFM
29	default y if TRUSTED_EXECUTION_NONSECURE
30	help
31	  By default, if we build for a Non-Secure version of the board,
32	  enable building with TF-M as the Secure Execution Environment.
33
34if BUILD_WITH_TFM
35
36config TFM_FLASH_MERGED_BINARY
37	default y
38	help
39	  By default, if we build with TF-M, instruct build system to
40	  flash the combined TF-M (Secure) & Zephyr (Non Secure) image
41
42config TFM_LOG_LEVEL_SILENCE
43	default y if !$(dt_nodelabel_has_prop,uart1,pinctrl-names)
44	help
45	  Disable TF-M secure output if the uart1 node has not assigned GPIO
46	  pins using pinctrl.
47
48config TFM_NRF_NS_STORAGE
49	bool "TF-M non-secure storage partition"
50	default y
51
52endif # BUILD_WITH_TFM
53
54
55config NRF_MPU_FLASH_REGION_SIZE
56	hex
57	default 0x1000
58	depends on HAS_HW_NRF_MPU
59	help
60	  FLASH region size for the NRF_MPU peripheral.
61
62config NRF_BPROT_FLASH_REGION_SIZE
63	hex
64	default $(dt_node_int_prop_hex,$(DT_CHOSEN_ZEPHYR_FLASH),erase-block-size)
65	depends on HAS_HW_NRF_BPROT
66	help
67	  FLASH region size for the NRF_BPROT peripheral (nRF52).
68
69config NRF_ACL_FLASH_REGION_SIZE
70	hex
71	default $(dt_node_int_prop_hex,$(DT_CHOSEN_ZEPHYR_FLASH),erase-block-size)
72	depends on HAS_HW_NRF_ACL
73	help
74	  FLASH region size for the NRF_ACL peripheral.
75
76config NFCT_PINS_AS_GPIOS
77	bool "[DEPRECATED] NFCT pins as GPIOs"
78	depends on $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_NFCT))
79	select DEPRECATED
80	help
81	  Two pins are usually reserved for NFC in SoCs that implement the
82	  NFCT peripheral. This option switches them to normal GPIO mode.
83	  HW enabling happens once in the device lifetime, during the first
84	  system startup. Disabling this option will not switch back these
85	  pins to NFCT mode. Doing this requires UICR erase prior to
86	  flashing device using the image which has this option disabled.
87
88	  NFC pins in nRF52 series: P0.09 and P0.10
89	  NFC pins in nRF5340: P0.02 and P0.03
90
91	  This option is deprecated, please use devicetree to configure NFCT
92	  pins as GPIOS like this:
93
94	  &uicr {
95	      nfct-pins-as-gpios;
96	  };
97
98choice NRF_APPROTECT_HANDLING
99	bool "APPROTECT handling"
100	depends on SOC_SERIES_NRF52X || SOC_NRF5340_CPUNET || \
101		   SOC_NRF5340_CPUAPP || SOC_SERIES_NRF91X
102	default NRF_APPROTECT_USE_UICR
103	help
104	  Specifies how the SystemInit() function should handle the APPROTECT
105	  mechanism.
106
107config NRF_APPROTECT_USE_UICR
108	bool "Use UICR"
109	help
110	  When this option is selected, the SystemInit() function loads the
111	  firmware branch state of the APPROTECT mechanism from UICR, so if
112	  UICR->APPROTECT is disabled, CTRLAP->APPROTECT will be disabled.
113
114config NRF_APPROTECT_LOCK
115	bool "Lock"
116	help
117	  When this option is selected, the SystemInit() function locks
118	  the firmware branch of the APPROTECT mechanism, preventing it
119	  from being opened.
120
121config NRF_APPROTECT_USER_HANDLING
122	bool "Allow user handling"
123	depends on !SOC_SERIES_NRF52X
124	help
125	  When this option is selected, the SystemInit() function does not
126	  touch the APPROTECT mechanism, allowing the user code to handle it
127	  at later stages, for example, to implement authenticated debug.
128
129endchoice
130
131choice NRF_SECURE_APPROTECT_HANDLING
132	bool "Secure APPROTECT handling"
133	depends on SOC_NRF5340_CPUAPP || SOC_SERIES_NRF91X
134	default NRF_SECURE_APPROTECT_USE_UICR
135	help
136	  Specifies how the SystemInit() function should handle the secure
137	  APPROTECT mechanism.
138
139config NRF_SECURE_APPROTECT_USE_UICR
140	bool "Use UICR"
141	help
142	  When this option is selected, the SystemInit() function loads the
143	  firmware branch state of the secure APPROTECT mechanism from UICR,
144	  so if UICR->SECUREAPPROTECT is disabled, CTRLAP->SECUREAPPROTECT
145	  will be disabled.
146
147config NRF_SECURE_APPROTECT_LOCK
148	bool "Lock"
149	help
150	  When this option is selected, the SystemInit() function locks the
151	  firmware branch of the secure APPROTECT mechanism, preventing it
152	  from being opened.
153
154config NRF_SECURE_APPROTECT_USER_HANDLING
155	bool "Allow user handling"
156	depends on !SOC_SERIES_NRF52X
157	help
158	  When this option is selected, the SystemInit() function does not
159	  touch the secure APPROTECT mechanism, allowing the user code to
160	  handle it at later stages, for example, to implement authenticated
161	  debug.
162
163endchoice
164
165config NRF_TRACE_PORT
166	bool "nRF TPIU"
167	depends on !SOC_SERIES_NRF51X
168	help
169	  Enable this option to initialize the TPIU (Trace Port Interface
170	  Unit) for tracing using a hardware probe. If disabled, the trace
171	  pins will be used as GPIO.
172
173endif # SOC_FAMILY_NORDIC_NRF
174