From 34d6c7caa79e3fb7a791f1c6a2fed203ecde497c Mon Sep 17 00:00:00 2001 From: Jaxson Han Date: Thu, 15 Jul 2021 16:34:02 +0800 Subject: [PATCH] arm64: cortex_r: Move mpu code to a better place This patch mainly moves mpu related code from arch/arm64/core/cortex_r/mpu/ to arch/arm64/core/cortex_r/ and moves the mpu header files from include/arch/arm64/cortex_r/mpu/ to include/arch/arm64/cortex_r/ Signed-off-by: Jaxson Han --- arch/arm64/core/CMakeLists.txt | 3 +-- arch/arm64/core/Kconfig | 2 +- arch/arm64/core/cortex_r/{mpu => }/Kconfig | 0 arch/arm64/core/cortex_r/{mpu => }/arm_mpu.c | 2 +- arch/arm64/core/cortex_r/mpu/CMakeLists.txt | 7 ------- include/arch/arm64/cortex_r/{mpu => }/arm_mpu.h | 3 ++- soc/arm64/arm/fvp_aemv8r/arm_mpu_regions.c | 2 +- 7 files changed, 6 insertions(+), 13 deletions(-) rename arch/arm64/core/cortex_r/{mpu => }/Kconfig (100%) rename arch/arm64/core/cortex_r/{mpu => }/arm_mpu.c (98%) delete mode 100644 arch/arm64/core/cortex_r/mpu/CMakeLists.txt rename include/arch/arm64/cortex_r/{mpu => }/arm_mpu.h (99%) diff --git a/arch/arm64/core/CMakeLists.txt b/arch/arm64/core/CMakeLists.txt index b3d0731414d..84013f2b5b6 100644 --- a/arch/arm64/core/CMakeLists.txt +++ b/arch/arm64/core/CMakeLists.txt @@ -17,6 +17,7 @@ zephyr_library_sources( zephyr_library_sources_ifdef(CONFIG_FPU_SHARING fpu.c fpu.S) zephyr_library_sources_ifdef(CONFIG_ARM_MMU mmu.c mmu.S) +zephyr_library_sources_ifdef(CONFIG_ARM_MPU cortex_r/arm_mpu.c) zephyr_library_sources_ifdef(CONFIG_USERSPACE userspace.S) zephyr_library_sources_ifdef(CONFIG_GEN_SW_ISR_TABLE isr_wrapper.S) zephyr_library_sources_ifdef(CONFIG_IRQ_OFFLOAD irq_offload.c) @@ -28,6 +29,4 @@ if ((CONFIG_MP_NUM_CPUS GREATER 1) OR (CONFIG_SMP)) zephyr_library_sources(smp.c) endif () -add_subdirectory_ifdef(CONFIG_ARM_MPU cortex_r/mpu) - zephyr_cc_option_ifdef(CONFIG_USERSPACE -mno-outline-atomics) diff --git a/arch/arm64/core/Kconfig b/arch/arm64/core/Kconfig index cd654d9acbd..32e1dfec0ed 100644 --- a/arch/arm64/core/Kconfig +++ b/arch/arm64/core/Kconfig @@ -137,7 +137,7 @@ config ARMV8_R Protected Memory System Architecture (PMSA) based on a Memory Protection Unit (MPU). It supports the A32 and T32 instruction sets. -rsource "cortex_r/mpu/Kconfig" +rsource "cortex_r/Kconfig" endif # CPU_AARCH64_CORTEX_R diff --git a/arch/arm64/core/cortex_r/mpu/Kconfig b/arch/arm64/core/cortex_r/Kconfig similarity index 100% rename from arch/arm64/core/cortex_r/mpu/Kconfig rename to arch/arm64/core/cortex_r/Kconfig diff --git a/arch/arm64/core/cortex_r/mpu/arm_mpu.c b/arch/arm64/core/cortex_r/arm_mpu.c similarity index 98% rename from arch/arm64/core/cortex_r/mpu/arm_mpu.c rename to arch/arm64/core/cortex_r/arm_mpu.c index 6a21cdc3188..fb49b8d32f6 100644 --- a/arch/arm64/core/cortex_r/mpu/arm_mpu.c +++ b/arch/arm64/core/cortex_r/arm_mpu.c @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #define LOG_LEVEL CONFIG_MPU_LOG_LEVEL diff --git a/arch/arm64/core/cortex_r/mpu/CMakeLists.txt b/arch/arm64/core/cortex_r/mpu/CMakeLists.txt deleted file mode 100644 index 2c050149947..00000000000 --- a/arch/arm64/core/cortex_r/mpu/CMakeLists.txt +++ /dev/null @@ -1,7 +0,0 @@ -# Copyright (c) 2021 Arm Limited (or its affiliates). All rights reserved. - -# SPDX-License-Identifier: Apache-2.0 - -zephyr_library() - -zephyr_library_sources(arm_mpu.c) diff --git a/include/arch/arm64/cortex_r/mpu/arm_mpu.h b/include/arch/arm64/cortex_r/arm_mpu.h similarity index 99% rename from include/arch/arm64/cortex_r/mpu/arm_mpu.h rename to include/arch/arm64/cortex_r/arm_mpu.h index b29ce0ddc93..23b22932a09 100644 --- a/include/arch/arm64/cortex_r/mpu/arm_mpu.h +++ b/include/arch/arm64/cortex_r/arm_mpu.h @@ -8,7 +8,6 @@ #ifndef ZEPHYR_INCLUDE_ARCH_ARM64_CORTEX_R_MPU_ARM_MPU_H_ #define ZEPHYR_INCLUDE_ARCH_ARM64_CORTEX_R_MPU_ARM_MPU_H_ -#ifndef _ASMLANGUAGE /* * Convenience macros to represent the ARMv8-R64-specific configuration * for memory access permission and cache-ability attribution. @@ -183,6 +182,8 @@ } #endif /* CONFIG_MPU_ALLOW_FLASH_WRITE */ +#ifndef _ASMLANGUAGE + struct arm_mpu_region_attr { /* Attributes belonging to PRBAR */ uint8_t rbar : 5; diff --git a/soc/arm64/arm/fvp_aemv8r/arm_mpu_regions.c b/soc/arm64/arm/fvp_aemv8r/arm_mpu_regions.c index 942112598d4..e5f3aa8890d 100644 --- a/soc/arm64/arm/fvp_aemv8r/arm_mpu_regions.c +++ b/soc/arm64/arm/fvp_aemv8r/arm_mpu_regions.c @@ -5,7 +5,7 @@ #include #include -#include +#include #define DEVICE_REGION_START 0x80000000UL