# Kconfig - Memory Protection Unit (MPU) configuration options

#
# Copyright (c) 2017 Synopsys
#
# SPDX-License-Identifier: Apache-2.0
#
config ARC_MPU_VER
	int
	prompt "ARC MPU version"
	range 2 4
	default 2
	help
	ARC MPU has several versions. For MPU v2, the minimum region is 2048 bytes;
	For MPU v3, the minimum region is 32 bytes

config ARC_CORE_MPU
	bool "ARC Core MPU functionalities"
	depends on CPU_HAS_MPU
	default n
	help
	  ARC core MPU functionalities

config MPU_STACK_GUARD
	bool "Thread Stack Guards"
	depends on ARC_CORE_MPU && !ARC_STACK_CHECKING
	select THREAD_STACK_INFO
	default n
	help
	  Enable thread stack guards via MPU. ARC supports built-in stack protection.
	  If your core supports that, it is preferred over MPU stack guard

config ARC_MPU
	bool "ARC MPU Support"
	depends on CPU_HAS_MPU
	select ARC_CORE_MPU
	default n
	help
	  Target has ARC MPU (currently only works for EMSK 2.2 ARCEM7D)
