From beee77f372a3dc4b2ef7cbf4d8ab70aba19dddb4 Mon Sep 17 00:00:00 2001 From: Shell Date: Thu, 11 Jul 2024 11:00:04 +0800 Subject: feat: support ARCH_REMAP_KERNEL on libcpu/c906 (#9123) feat: [libcpu/c906] support ARCH_REMAP_KERNEL This change was necessary to enable the remapping of the kernel image to a high virtual address region on the c906 platform. Changes: - Introduced new configuration options `ARCH_REMAP_KERNEL`, and `ARCH_USING_ASID` under the `ARCH_RISCV64` section. - Updated MMU initialization and switching functions to incorporate remapping handling. - Modified page table setup for proper memory attribute settings. - Added support for early memory setup, kernel remapping - Added conditional compilation for ASID support in the `rt_aspace` struct, since this is not enable currently for most architecture. Signed-off-by: Shell --- components/mm/mm_aspace.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'components') diff --git a/components/mm/mm_aspace.h b/components/mm/mm_aspace.h index ff1429c305..8ce310804d 100644 --- a/components/mm/mm_aspace.h +++ b/components/mm/mm_aspace.h @@ -49,7 +49,11 @@ typedef struct rt_aspace struct rt_mutex bst_lock; struct rt_mem_obj *private_object; + +#ifdef ARCH_USING_ASID rt_uint64_t asid; +#endif /* ARCH_USING_ASID */ + } *rt_aspace_t; typedef struct rt_varea -- cgit v1.3.1