mirror of
https://github.com/RT-Thread/rt-thread.git
synced 2025-01-27 18:10:24 +08:00
65c9947225
* [libcpu] support for ARCH_REMAP_KERNEL These changes introduce support for the ARCH_REMAP_KERNEL configuration, which isolates kernel space in high virtual address regions. This feature is necessary to enhance memory protection and management by segregating user and kernel spaces more effectively. Changes: - Updated conditional macros to check for ARCH_REMAP_KERNEL instead of ARCH_KERNEL_IN_HIGH_VA in board initialization files to reflect the new configuration option. - Modified qemu-virt64-riscv Kconfig and SConstruct files to include and utilize ARCH_REMAP_KERNEL. - Created a new linker script `link_smart.lds` for smart linking in qemu-virt64-riscv. - Updated rtconfig.py to use a more flexible execution path setup. - Enhanced user address space definitions in `lwp_arch.h` to support the new virtual address mappings. - Adjusted kernel memory initialization and mapping logic in `c906/mmu.c` and `virt64/mmu.c` to account for high virtual address regions. - Added Kconfig option to enable ARCH_REMAP_KERNEL for RISCV64 architectures. - Enhanced memory setup functions to support new mapping scheme, including updates to early page table setup and address relocation logic. These modifications ensure that the system can utilize high memory addresses for the kernel, improving memory isolation and system stability. Signed-off-by: Shell <smokewood@qq.com> * fixup: CI run failed * bsp: default config without using smart * fixup: static checks * restore rt_hw_mmu_kernel_map_init for D1 --------- Signed-off-by: Shell <smokewood@qq.com>
70 lines
1.3 KiB
Plaintext
70 lines
1.3 KiB
Plaintext
mainmenu "RT-Thread Project Configuration"
|
|
|
|
config BSP_DIR
|
|
string
|
|
option env="BSP_ROOT"
|
|
default "."
|
|
|
|
config RTT_DIR
|
|
string
|
|
option env="RTT_ROOT"
|
|
default "../../"
|
|
|
|
config PKGS_DIR
|
|
string
|
|
option env="PKGS_ROOT"
|
|
default "packages"
|
|
|
|
source "$RTT_DIR/Kconfig"
|
|
source "$PKGS_DIR/Kconfig"
|
|
source "driver/Kconfig"
|
|
|
|
config BOARD_QEMU_VIRT_RV64
|
|
bool
|
|
select ARCH_RISCV64
|
|
select ARCH_CONTEXT_EXTEND
|
|
select RT_USING_COMPONENTS_INIT
|
|
select RT_USING_USER_MAIN
|
|
select RT_USING_CACHE
|
|
select ARCH_MM_MMU
|
|
select ARCH_REMAP_KERNEL
|
|
select RT_USING_HW_ATOMIC
|
|
default y
|
|
|
|
config ENABLE_FPU
|
|
bool "Enable FPU"
|
|
default y
|
|
|
|
config ENABLE_VECTOR
|
|
bool "Using RISC-V Vector Extension"
|
|
default n
|
|
|
|
if ENABLE_VECTOR
|
|
choice
|
|
prompt "Vector Registers Length in Bits"
|
|
default ARCH_VECTOR_VLEN_128
|
|
|
|
config ARCH_VECTOR_VLEN_128
|
|
bool "128"
|
|
|
|
config ARCH_VECTOR_VLEN_256
|
|
bool "256"
|
|
endchoice
|
|
endif
|
|
|
|
config RT_USING_USERSPACE_32BIT_LIMIT
|
|
bool "Enable userspace 32bit limit"
|
|
default n
|
|
|
|
config RT_USING_VIRTIO_MMIO_ALIGN
|
|
bool "Open packed attribution, this may caused an error on virtio"
|
|
default n
|
|
|
|
config ARCH_USING_NEW_CTX_SWITCH
|
|
bool
|
|
default y
|
|
|
|
config __STACKSIZE__
|
|
int "stack size for interrupt"
|
|
default 4096
|