2015-07-28 22:05:39 +08:00
|
|
|
# Kconfig - ARM core configuration options
|
|
|
|
|
|
|
|
#
|
|
|
|
# Copyright (c) 2015 Wind River Systems, Inc.
|
|
|
|
#
|
2017-01-19 09:01:01 +08:00
|
|
|
# SPDX-License-Identifier: Apache-2.0
|
2015-07-28 22:05:39 +08:00
|
|
|
#
|
|
|
|
|
|
|
|
config CPU_CORTEX
|
|
|
|
bool
|
|
|
|
# Omit prompt to signify "hidden" option
|
|
|
|
default n
|
|
|
|
help
|
2017-12-13 23:08:21 +08:00
|
|
|
This option signifies the use of a CPU of the Cortex family.
|
2015-07-28 22:05:39 +08:00
|
|
|
|
|
|
|
config CPU_CORTEX_M
|
|
|
|
bool
|
|
|
|
# Omit prompt to signify "hidden" option
|
|
|
|
default n
|
|
|
|
select CPU_CORTEX
|
2016-11-21 00:08:53 +08:00
|
|
|
select ARCH_HAS_CUSTOM_SWAP_TO_MAIN
|
2017-01-14 00:46:53 +08:00
|
|
|
select HAS_CMSIS
|
2017-04-11 00:30:51 +08:00
|
|
|
select HAS_FLASH_LOAD_OFFSET
|
2017-05-12 04:37:01 +08:00
|
|
|
select HAS_DTS
|
2017-09-26 20:59:35 +08:00
|
|
|
select ARCH_HAS_STACK_PROTECTION if ARM_CORE_MPU
|
2017-12-09 02:22:49 +08:00
|
|
|
select ARCH_HAS_USERSPACE if ARM_CORE_MPU
|
2015-07-28 22:05:39 +08:00
|
|
|
help
|
2017-12-13 23:08:21 +08:00
|
|
|
This option signifies the use of a CPU of the Cortex-M family.
|
2015-07-28 22:05:39 +08:00
|
|
|
|
2016-11-26 22:20:15 +08:00
|
|
|
config CPU_HAS_SYSTICK
|
|
|
|
bool
|
|
|
|
# Omit prompt to signify "hidden" option
|
|
|
|
default n
|
|
|
|
help
|
2017-12-13 23:08:21 +08:00
|
|
|
This option is enabled when the CPU has systick timer implemented.
|
2016-11-26 22:20:15 +08:00
|
|
|
|
2018-03-12 00:21:47 +08:00
|
|
|
config BUILTIN_STACK_GUARD
|
|
|
|
bool "Thread Stack Guards based on built-in ARM stack limit checking"
|
|
|
|
depends on CPU_CORTEX_M_HAS_SPLIM
|
2018-03-12 05:29:25 +08:00
|
|
|
select THREAD_STACK_INFO
|
2018-03-12 00:21:47 +08:00
|
|
|
default n
|
|
|
|
help
|
|
|
|
Enable Thread/Interrupt Stack Guards via built-in Stack Pointer
|
|
|
|
limit checking. The functionality must be supported by HW.
|
|
|
|
|
2017-09-26 20:59:35 +08:00
|
|
|
config ARM_STACK_PROTECTION
|
|
|
|
bool
|
|
|
|
default y if HW_STACK_PROTECTION
|
2018-03-12 00:21:47 +08:00
|
|
|
select BUILTIN_STACK_GUARD if CPU_CORTEX_M_HAS_SPLIM
|
|
|
|
select MPU_STACK_GUARD if (!BUILTIN_STACK_GUARD && ARM_CORE_MPU)
|
2017-09-26 20:59:35 +08:00
|
|
|
help
|
2018-03-12 00:21:47 +08:00
|
|
|
This option enables either:
|
|
|
|
- The built-in Stack Pointer limit checking, or
|
|
|
|
- the MPU-based stack guard
|
|
|
|
to cause a system fatal error
|
2017-12-13 23:08:21 +08:00
|
|
|
if the bounds of the current process stack are overflowed.
|
2018-03-12 00:21:47 +08:00
|
|
|
The two stack guard options are mutually exclusive. The
|
|
|
|
selection of the built-in Stack Pointer limit checking is
|
|
|
|
prioritized over the MPU-based stack guard.
|
2017-09-26 20:59:35 +08:00
|
|
|
|
2018-03-02 04:15:54 +08:00
|
|
|
config ARM_SECURE_FIRMWARE
|
|
|
|
bool
|
|
|
|
default n
|
|
|
|
help
|
2018-05-22 18:00:16 +08:00
|
|
|
This option indicates that we are building a Zephyr image that
|
|
|
|
is intended to execute in Secure state. The option is only
|
|
|
|
applicable to ARMv8-M MCUs that implement the Security Extension.
|
|
|
|
|
2018-03-02 04:15:54 +08:00
|
|
|
This option enables Zephyr to include code that executes in
|
|
|
|
Secure state, as well as to exclude code that is designed to
|
2018-05-22 18:00:16 +08:00
|
|
|
execute only in Non-secure state.
|
2018-03-02 04:15:54 +08:00
|
|
|
|
|
|
|
Code executing in Secure state has access to both the Secure
|
|
|
|
and Non-Secure resources of the Cortex-M MCU.
|
|
|
|
|
|
|
|
Code executing in Non-Secure state may trigger Secure Faults,
|
|
|
|
if Secure MCU resources are accessed from the Non-Secure state.
|
|
|
|
Secure Faults may only be handled by code executing in Secure
|
|
|
|
state.
|
|
|
|
|
2018-05-27 04:17:11 +08:00
|
|
|
menu "Architecture Floating Point Options"
|
2016-05-16 23:21:02 +08:00
|
|
|
depends on CPU_HAS_FPU
|
|
|
|
|
2016-06-30 03:42:09 +08:00
|
|
|
choice
|
|
|
|
prompt "Floating point ABI"
|
|
|
|
default FP_HARDABI
|
|
|
|
depends on FLOAT
|
|
|
|
|
|
|
|
config FP_HARDABI
|
|
|
|
bool "Floating point Hard ABI"
|
|
|
|
depends on FLOAT
|
|
|
|
help
|
2017-12-13 23:08:21 +08:00
|
|
|
This option selects the Floating point ABI in which hardware floating
|
|
|
|
point instructions are generated and uses FPU-specific calling
|
|
|
|
conventions
|
2016-06-30 03:42:09 +08:00
|
|
|
|
|
|
|
config FP_SOFTABI
|
|
|
|
bool "Floating point Soft ABI"
|
|
|
|
depends on FLOAT
|
|
|
|
help
|
2017-12-13 23:08:21 +08:00
|
|
|
This option selects the Floating point ABI in which hardware floating
|
|
|
|
point instructions are generated but soft-float calling conventions.
|
2016-06-30 03:42:09 +08:00
|
|
|
|
|
|
|
endchoice
|
|
|
|
|
2016-05-16 23:21:02 +08:00
|
|
|
endmenu
|
|
|
|
|
2015-07-28 22:05:39 +08:00
|
|
|
source "arch/arm/core/cortex_m/Kconfig"
|
2017-03-16 22:28:35 +08:00
|
|
|
|
|
|
|
if CPU_HAS_MPU
|
|
|
|
source "arch/arm/core/cortex_m/mpu/Kconfig"
|
|
|
|
endif
|