1 /* 2 * Copyright (c) 2021 Arm Limited (or its affiliates). All rights reserved. 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 #ifndef ZEPHYR_INCLUDE_ARCH_ARM64_MM_H_ 7 #define ZEPHYR_INCLUDE_ARCH_ARM64_MM_H_ 8 9 #if defined(CONFIG_ARM_MMU) 10 #include <zephyr/arch/arm64/arm_mmu.h> 11 /* 12 * When mmu enabled, some section addresses need to be aligned with 13 * page size which is CONFIG_MMU_PAGE_SIZE 14 */ 15 #define MEM_DOMAIN_ALIGN_AND_SIZE CONFIG_MMU_PAGE_SIZE 16 #elif defined(CONFIG_ARM_MPU) 17 #include <zephyr/arch/arm64/cortex_r/arm_mpu.h> 18 /* 19 * When mpu enabled, some section addresses need to be aligned with 20 * mpu region min align size which is 21 * CONFIG_ARM_MPU_REGION_MIN_ALIGN_AND_SIZE 22 */ 23 #define MEM_DOMAIN_ALIGN_AND_SIZE CONFIG_ARM_MPU_REGION_MIN_ALIGN_AND_SIZE 24 #endif 25 26 #ifndef _ASMLANGUAGE 27 28 struct k_thread; 29 void z_arm64_thread_mem_domains_init(struct k_thread *thread); 30 void z_arm64_swap_mem_domains(struct k_thread *thread); 31 32 #endif /* _ASMLANGUAGE */ 33 34 #endif /* ZEPHYR_INCLUDE_ARCH_ARM64_MM_H_ */ 35