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 <smokewood@qq.com>
This commit is contained in:
Shell
2024-07-11 11:00:04 +08:00
committed by GitHub
parent 6180dabab3
commit beee77f372
4 changed files with 85 additions and 17 deletions

View File

@@ -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