1# Nordic Semiconductor nRFx MCU line
2
3# Copyright (c) 2016-2018 Nordic Semiconductor ASA
4# SPDX-License-Identifier: Apache-2.0
5
6config SOC_FAMILY_NRF
7	select SOC_COMPATIBLE_NRF
8	select PLATFORM_SPECIFIC_INIT
9	bool
10
11if SOC_FAMILY_NRF
12config SOC_FAMILY
13	string
14	default "nordic_nrf"
15
16source "soc/arm/nordic_nrf/Kconfig.peripherals"
17source "soc/arm/nordic_nrf/*/Kconfig.soc"
18
19config NRF_SOC_SECURE_SUPPORTED
20	def_bool !TRUSTED_EXECUTION_NONSECURE || (BUILD_WITH_TFM && TFM_PARTITION_PLATFORM)
21	help
22	  Hidden function to indicate that 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 NRF_MPU_FLASH_REGION_SIZE
29	hex
30	default 0x1000
31	depends on HAS_HW_NRF_MPU
32	help
33	  FLASH region size for the NRF_MPU peripheral.
34
35config NRF_BPROT_FLASH_REGION_SIZE
36	hex
37	default $(dt_node_int_prop_hex,$(DT_CHOSEN_ZEPHYR_FLASH),erase-block-size)
38	depends on HAS_HW_NRF_BPROT
39	help
40	  FLASH region size for the NRF_BPROT peripheral (nRF52).
41
42config NRF_ACL_FLASH_REGION_SIZE
43	hex
44	default $(dt_node_int_prop_hex,$(DT_CHOSEN_ZEPHYR_FLASH),erase-block-size)
45	depends on HAS_HW_NRF_ACL
46	help
47	  FLASH region size for the NRF_ACL peripheral.
48
49config NFCT_PINS_AS_GPIOS
50	bool "[DEPRECATED] NFCT pins as GPIOs"
51	depends on $(dt_has_compat,$(DT_COMPAT_NORDIC_NRF_NFCT))
52	select DEPRECATED
53	help
54	  Two pins are usually reserved for NFC in SoCs that implement the
55	  NFCT peripheral. This option switches them to normal GPIO mode.
56	  HW enabling happens once in the device lifetime, during the first
57	  system startup. Disabling this option will not switch back these
58	  pins to NFCT mode. Doing this requires UICR erase prior to
59	  flashing device using the image which has this option disabled.
60
61	  NFC pins in nRF52 series: P0.09 and P0.10
62	  NFC pins in nRF5340: P0.02 and P0.03
63
64	  This option is deprecated, please use devicetree to configure NFCT
65	  pins as GPIOS like this:
66
67	  &uicr {
68	      nfct-pins-as-gpios;
69	  };
70
71choice NRF_APPROTECT_HANDLING
72	bool "APPROTECT handling"
73	depends on SOC_SERIES_NRF52X || SOC_NRF5340_CPUNET || \
74		   (SOC_NRF5340_CPUAPP && !TRUSTED_EXECUTION_NONSECURE) || \
75		   SOC_SERIES_NRF91X
76	default NRF_APPROTECT_USE_UICR
77	help
78	  Specifies how the SystemInit() function should handle the APPROTECT
79	  mechanism.
80
81config NRF_APPROTECT_USE_UICR
82	bool "Use UICR"
83	help
84	  When this option is selected, the SystemInit() function loads the
85	  firmware branch state of the APPROTECT mechanism from UICR, so if
86	  UICR->APPROTECT is disabled, CTRLAP->APPROTECT will be disabled.
87
88config NRF_APPROTECT_LOCK
89	bool "Lock"
90	help
91	  When this option is selected, the SystemInit() function locks
92	  the firmware branch of the APPROTECT mechanism, preventing it
93	  from being opened.
94
95config NRF_APPROTECT_USER_HANDLING
96	bool "Allow user handling"
97	depends on !SOC_SERIES_NRF52X
98	help
99	  When this option is selected, the SystemInit() function does not
100	  touch the APPROTECT mechanism, allowing the user code to handle it
101	  at later stages, for example, to implement authenticated debug.
102
103endchoice
104
105choice NRF_SECURE_APPROTECT_HANDLING
106	bool "Secure APPROTECT handling"
107	depends on (SOC_NRF5340_CPUAPP && !TRUSTED_EXECUTION_NONSECURE)
108	default NRF_SECURE_APPROTECT_USE_UICR
109	help
110	  Specifies how the SystemInit() function should handle the secure
111	  APPROTECT mechanism.
112
113config NRF_SECURE_APPROTECT_USE_UICR
114	bool "Use UICR"
115	help
116	  When this option is selected, the SystemInit() function loads the
117	  firmware branch state of the secure APPROTECT mechanism from UICR,
118	  so if UICR->SECUREAPPROTECT is disabled, CTRLAP->SECUREAPPROTECT
119	  will be disabled.
120
121config NRF_SECURE_APPROTECT_LOCK
122	bool "Lock"
123	help
124	  When this option is selected, the SystemInit() function locks the
125	  firmware branch of the secure APPROTECT mechanism, preventing it
126	  from being opened.
127
128config NRF_SECURE_APPROTECT_USER_HANDLING
129	bool "Allow user handling"
130	depends on !SOC_SERIES_NRF52X
131	help
132	  When this option is selected, the SystemInit() function does not
133	  touch the secure APPROTECT mechanism, allowing the user code to
134	  handle it at later stages, for example, to implement authenticated
135	  debug.
136
137endchoice
138
139config NRF_TRACE_PORT
140	bool "nRF TPIU"
141	depends on !SOC_SERIES_NRF51X
142	help
143	  Enable this option to initialize the TPIU (Trace Port Interface
144	  Unit) for tracing using a hardware probe. If disabled, the trace
145	  pins will be used as GPIO.
146
147config NRF_STORE_REBOOT_TYPE_GPREGRET
148	bool "Set GPREGRET to reboot type (DEPRECATED)"
149	depends on SOC_SERIES_NRF51X || SOC_SERIES_NRF52X
150	depends on REBOOT
151	depends on !RETENTION_BOOT_MODE
152	select DEPRECATED
153	help
154	  If this option is enabled, then the parameter supplied to the
155	  sys_reboot() function will be set in the GPREGRET register.
156
157	  This has been replaced with the bootmode part of the retention
158	  subsystem, which should be used instead.
159
160endif # SOC_FAMILY_NRF
161