# Physical Memory Protection (PMP) configuration options

# Copyright (c) 2020 BayLibre, SAS
# SPDX-License-Identifier: Apache-2.0

config PMP_SLOT
	int "Number of PMP slot"
	default 8
	help
	  Depend of the arch/board. Take care to don't put value higher
	  than the Hardware allow you.

config PMP_POWER_OF_TWO_ALIGNMENT
	bool "Power of two alignment"
	default n
	select MPU_REQUIRES_POWER_OF_TWO_ALIGNMENT
	select GEN_PRIV_STACKS
	help
	  This option will reduce the PMP slot number usage but increase
	  the memory consumption.

config PMP_STACK_GUARD
	bool "Thread Stack Guard"
	default n
	help
	  Enable Thread Stack Guards via PMP

if PMP_STACK_GUARD

config PMP_STACK_GUARD_MIN_SIZE
	int "Guard size"
	default 16
	help
	  Minimum size (and alignment when applicable) of an stack guard
	  region, which guards the stack of a thread. The width of the
	  guard is set to 16 bytes, to accommodate the riscv
	  granularity.

endif # PMP_STACK_GUARD
