Line data Source code
1 0 : /* 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_ */