| # Memory Protection Unit (MPU) configuration options |
| |
| # Copyright (c) 2017 Synopsys |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| config ARC_MPU_VER |
| int "ARC MPU version" |
| range 2 8 |
| default 2 |
| help |
| ARC MPU has several versions. For MPU v2, the minimum region is 2048 bytes; |
| For other versions, the minimum region is 32 bytes; v4 has secure features, |
| v6 supports up to 32 regions. Note: MPU v5 & v7 are not supported. |
| |
| config ARC_CORE_MPU |
| bool "ARC Core MPU functionalities" |
| help |
| ARC core MPU functionalities |
| |
| config MPU_STACK_GUARD |
| bool "Thread Stack Guards" |
| depends on ARC_CORE_MPU && ARC_MPU_VER !=2 |
| 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. |
| For ARC_MPU_VER == 2, it requires 2048 extra bytes and a strong start address |
| alignment, this will bring big waste of memory, so no support for it. |
| |
| config ARC_MPU |
| bool "ARC MPU Support" |
| select MPU |
| select SRAM_REGION_PERMISSIONS |
| select ARC_CORE_MPU |
| select THREAD_STACK_INFO |
| select GEN_PRIV_STACKS if !(ARC_MPU_VER = 4 || ARC_MPU_VER = 8) |
| select MPU_REQUIRES_POWER_OF_TWO_ALIGNMENT if !(ARC_MPU_VER = 4 || ARC_MPU_VER = 8) |
| select MPU_REQUIRES_NON_OVERLAPPING_REGIONS if (ARC_MPU_VER = 4 || ARC_MPU_VER = 8) |
| help |
| Target has ARC MPU |