# Kconfig - Memory Protection Unit (MPU) configuration options

#
# Copyright (c) 2017 Linaro Limited
#
# SPDX-License-Identifier: Apache-2.0
#

config ARM_CORE_MPU
	bool "ARM Core MPU functionalities"
	depends on CPU_HAS_MPU
	select THREAD_STACK_INFO
	default n
	help
	  ARM Core MPU functionalities

config MPU_STACK_GUARD
	bool "Thread Stack Guards"
	depends on ARM_CORE_MPU
	default n
	help
	  Enable Thread Stack Guards via MPU

config ARM_MPU
	bool "ARM MPU Support"
	depends on CPU_HAS_MPU
	depends on SOC_FAMILY_ARM || SOC_FAMILY_STM32 || SOC_FAMILY_NRF || SOC_FAMILY_IMX || SOC_FAMILY_SAM
	select ARM_CORE_MPU
	select ARCH_HAS_EXECUTABLE_PAGE_BIT
	select MPU_REQUIRES_POWER_OF_TWO_ALIGNMENT
	default n
	help
	  MCU has ARM MPU

config NXP_MPU
	bool "NXP MPU Support"
	depends on CPU_HAS_MPU
	depends on SOC_FAMILY_KINETIS
	select ARM_CORE_MPU
	select ARCH_HAS_EXECUTABLE_PAGE_BIT
	default n
	help
	  MCU has NXP MPU

config MPU_ALLOW_FLASH_WRITE
	bool "Add MPU access to write to flash"
	depends on ARM_MPU || NXP_MPU
	default n
	help
	  Enable this to allow MPU RWX access to flash memory
