1# Memory Protection Unit (MPU) configuration options 2 3# Copyright (c) 2017 Synopsys 4# SPDX-License-Identifier: Apache-2.0 5 6config ARC_MPU_VER 7 int "ARC MPU version" 8 range 2 8 9 default 2 10 help 11 ARC MPU has several versions. For MPU v2, the minimum region is 2048 bytes; 12 For other versions, the minimum region is 32 bytes; v4 has secure features, 13 v6 supports up to 32 regions. Note: MPU v5 & v7 are not supported. 14 15config ARC_CORE_MPU 16 bool "ARC Core MPU functionalities" 17 help 18 ARC core MPU functionalities 19 20config MPU_STACK_GUARD 21 bool "Thread Stack Guards" 22 depends on ARC_CORE_MPU && ARC_MPU_VER !=2 23 help 24 Enable thread stack guards via MPU. ARC supports built-in stack protection. 25 If your core supports that, it is preferred over MPU stack guard. 26 For ARC_MPU_VER == 2, it requires 2048 extra bytes and a strong start address 27 alignment, this will bring big waste of memory, so no support for it. 28 29config ARC_MPU 30 bool "ARC MPU Support" 31 select MPU 32 select SRAM_REGION_PERMISSIONS 33 select ARC_CORE_MPU 34 select THREAD_STACK_INFO 35 select GEN_PRIV_STACKS if !(ARC_MPU_VER = 4 || ARC_MPU_VER = 8) 36 select MPU_REQUIRES_POWER_OF_TWO_ALIGNMENT if !(ARC_MPU_VER = 4 || ARC_MPU_VER = 8) 37 select MPU_REQUIRES_NON_OVERLAPPING_REGIONS if (ARC_MPU_VER = 4 || ARC_MPU_VER = 8) 38 select ARCH_MEM_DOMAIN_SUPPORTS_ISOLATED_STACKS 39 select MEM_DOMAIN_ISOLATED_STACKS 40 help 41 Target has ARC MPU 42