129 lines
4.1 KiB
Plaintext
129 lines
4.1 KiB
Plaintext
# ARM architecture configuration options
|
|
|
|
# Copyright (c) 2014-2015 Wind River Systems, Inc.
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
menu "ARM Options"
|
|
depends on ARM
|
|
|
|
config ARCH
|
|
default "arm"
|
|
|
|
config CPU_CORTEX
|
|
bool
|
|
help
|
|
This option signifies the use of a CPU of the Cortex family.
|
|
|
|
config ARM_CUSTOM_INTERRUPT_CONTROLLER
|
|
bool
|
|
help
|
|
This option indicates that the ARM CPU is connected to a custom (i.e.
|
|
non-GIC or NVIC) interrupt controller.
|
|
|
|
A number of Cortex-A and Cortex-R cores (Cortex-A5, Cortex-R4/5, ...)
|
|
allow interfacing to a custom external interrupt controller and this
|
|
option must be selected when such cores are connected to an interrupt
|
|
controller that is not the ARM Generic Interrupt Controller (GIC) or
|
|
the Cortex-M ARM Nested Vectored Interrupt Controller (NVIC).
|
|
|
|
When this option is selected, the architecture interrupt control
|
|
functions are mapped to the SoC interrupt control interface, which is
|
|
implemented at the SoC level.
|
|
|
|
N.B. Since all Cortex-M cores have a NVIC, if this option is selected it
|
|
is assumed that the custom interrupt control interface implementation
|
|
assumes responsibility for handling the NVIC.
|
|
|
|
config CODE_DATA_RELOCATION_SRAM
|
|
bool "Relocate code/data sections to SRAM"
|
|
depends on CPU_CORTEX_M
|
|
select CODE_DATA_RELOCATION
|
|
help
|
|
When selected this will relocate .text, data and .bss sections from
|
|
the specified files and places it in SRAM. The files should be specified
|
|
in the CMakeList.txt file with a cmake API zephyr_code_relocate(). This
|
|
config is used to create an MPU entry for the SRAM space used for code
|
|
relocation.
|
|
|
|
config ARM_ON_ENTER_CPU_IDLE_HOOK
|
|
bool
|
|
help
|
|
Enables a hook (z_arm_on_enter_cpu_idle()) that is called when
|
|
the CPU is made idle (by k_cpu_idle() or k_cpu_atomic_idle()).
|
|
If needed, this hook can be used to prevent the CPU from actually
|
|
entering sleep by skipping the WFE/WFI instruction.
|
|
|
|
config ARM_ON_ENTER_CPU_IDLE_PREPARE_HOOK
|
|
bool
|
|
help
|
|
Enables a hook (z_arm_on_enter_cpu_idle_prepare()) that is called when
|
|
the CPU is made idle (by k_cpu_idle() or k_cpu_atomic_idle()).
|
|
If needed, this hook can prepare data to upcoming call to
|
|
z_arm_on_enter_cpu_idle(). The z_arm_on_enter_cpu_idle_prepare differs
|
|
from z_arm_on_enter_cpu_idle because it is called before interrupts are
|
|
disabled.
|
|
|
|
config ARM_ON_EXIT_CPU_IDLE
|
|
bool
|
|
help
|
|
Enables a possibility to inject SoC-specific code just after WFI/WFE
|
|
instructions of the cpu idle implementation.
|
|
|
|
Enabling this option requires that the SoC provides a soc_cpu_idle.h
|
|
header file which defines SOC_ON_EXIT_CPU_IDLE macro guarded by
|
|
_ASMLANGUAGE.
|
|
|
|
The SOC_ON_EXIT_CPU_IDLE macro is expanded just after
|
|
WFI/WFE instructions before any memory access is performed. The purpose
|
|
of the SOC_ON_EXIT_CPU_IDLE is to perform an action that mitigate issues
|
|
observed on some SoCs caused by a memory access following WFI/WFE
|
|
instructions.
|
|
|
|
rsource "core/Kconfig"
|
|
rsource "core/Kconfig.vfp"
|
|
|
|
# General options signifying CPU capabilities of ARM SoCs
|
|
config CPU_HAS_ARM_MPU
|
|
bool
|
|
select CPU_HAS_MPU
|
|
help
|
|
This option is enabled when the CPU has a Memory Protection Unit (MPU)
|
|
in ARM flavor.
|
|
|
|
config CPU_HAS_NXP_MPU
|
|
bool
|
|
select CPU_HAS_MPU
|
|
help
|
|
This option is enabled when the CPU has a Memory Protection Unit (MPU)
|
|
in NXP flavor.
|
|
|
|
config CPU_HAS_CUSTOM_FIXED_SOC_MPU_REGIONS
|
|
bool "Custom fixed SoC MPU region definition"
|
|
help
|
|
If enabled, this option signifies that the SoC will
|
|
define and configure its own fixed MPU regions in the
|
|
SoC definition. These fixed MPU regions are currently
|
|
used to set Flash and SRAM default access policies and
|
|
they are programmed at boot time.
|
|
|
|
config CPU_HAS_ARM_SAU
|
|
bool
|
|
select CPU_HAS_TEE
|
|
help
|
|
MCU implements the ARM Security Attribution Unit (SAU).
|
|
|
|
config CPU_HAS_NRF_IDAU
|
|
bool
|
|
select CPU_HAS_TEE
|
|
help
|
|
MCU implements the nRF (vendor-specific) Security Attribution Unit.
|
|
(IDAU: "Implementation-Defined Attribution Unit", in accordance with
|
|
ARM terminology).
|
|
|
|
config HAS_SWO
|
|
bool
|
|
help
|
|
When enabled, indicates that SoC has an SWO output
|
|
|
|
endmenu
|