1# ARM TrustZone-M core configuration options
2
3# Copyright (c) 2018 Nordic Semiconductor ASA.
4# SPDX-License-Identifier: Apache-2.0
5
6config ARM_TRUSTZONE_M
7	bool "ARM TrustZone-M support"
8	depends on CPU_HAS_TEE
9	depends on ARMV8_M_SE
10	help
11	  Platform has support for ARM TrustZone-M.
12
13if ARM_TRUSTZONE_M
14
15menu "ARM TrustZone-M Options"
16depends on ARM_SECURE_FIRMWARE || ARM_NONSECURE_FIRMWARE
17
18comment "Secure firmware"
19	depends on ARM_SECURE_FIRMWARE
20
21comment "Non-secure firmware"
22	depends on !ARM_SECURE_FIRMWARE
23
24config ARM_SECURE_BUSFAULT_HARDFAULT_NMI
25	bool "BusFault, HardFault, and NMI target Secure state"
26	depends on ARM_SECURE_FIRMWARE
27	help
28	  Force NMI, HardFault, and BusFault (in Mainline ARMv8-M)
29	  exceptions as Secure exceptions.
30
31config ARM_FIRMWARE_HAS_SECURE_ENTRY_FUNCS
32	bool "Secure Firmware has Secure Entry functions"
33	depends on ARM_SECURE_FIRMWARE
34	help
35	  Option indicates that ARM Secure Firmware contains
36	  Secure Entry functions that may be called from
37	  Non-Secure state. Secure Entry functions must be
38	  located in Non-Secure Callable memory regions.
39
40config ARM_NSC_REGION_BASE_ADDRESS
41	hex "ARM Non-Secure Callable Region base address"
42	depends on ARM_FIRMWARE_HAS_SECURE_ENTRY_FUNCS
43	default 0
44	help
45	  Start address of Non-Secure Callable section.
46
47	  Notes:
48	  - The default value (i.e. when the user does not configure
49	  the option explicitly) instructs the linker script to
50	  place the Non-Secure Callable section, automatically,
51	  inside the .text area.
52	  - Certain requirements/restrictions may apply regarding
53	  the size and the alignment of the starting address for
54	  a Non-Secure Callable section, depending on the available
55	  security attribution unit (SAU or IDAU) for a given SOC.
56
57config ARM_FIRMWARE_USES_SECURE_ENTRY_FUNCS
58	bool "Non-Secure Firmware uses Secure Entry functions"
59	depends on ARM_NONSECURE_FIRMWARE
60	help
61	  Option indicates that ARM Non-Secure Firmware uses Secure
62	  Entry functions provided by the Secure Firmware. The Secure
63	  Firmware must be configured to provide these functions.
64
65config ARM_ENTRY_VENEERS_LIB_NAME
66	string "Entry Veneers symbol file"
67	depends on ARM_FIRMWARE_HAS_SECURE_ENTRY_FUNCS \
68	        || ARM_FIRMWARE_USES_SECURE_ENTRY_FUNCS
69	default "libentryveneers.a"
70	help
71	  Library file to find the symbol table for the entry veneers.
72	  The library will typically come from building the Secure
73	  Firmware that contains secure entry functions, and allows
74	  the Non-Secure Firmware to call into the Secure Firmware.
75
76endmenu
77
78endif # ARM_TRUSTZONE_M
79