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_ */
|