# Kconfig - general options signifying CPU capabilities of ARM SoCs

# Copyright (c) 2018 Nordic Semiconductor ASA.
# SPDX-License-Identifier: Apache-2.0

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_ARM_SAU
	bool
	select CPU_HAS_TEE
	help
	  MCU implements the ARM Security Attribution Unit (SAU).

config CPU_HAS_NRF_IDAU
	bool
	depends on SOC_SERIES_NRF91X
	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 CPU_HAS_FPU_DOUBLE_PRECISION
	bool
	depends on CPU_CORTEX_M7
	select CPU_HAS_FPU
	help
	  When enabled, indicates that the SoC has a double
	  floating point precision unit.

config HAS_SWO
	bool
	help
	  When enabled, indicates that SoC has an SWO output
