nuttx/arch/risc-v/src/common
Ville Juven 8a2b83c482 mm/kmap: Finalize kmap implementation for RISC-V
After this, RISC-V fully supports the kmap interface.

Due to the current design limitations of having only a single L2 table
per process, the kernel kmap area cannot be mapped via any user page
directory, as they do not contain the page tables to address that range.

So a "kernel address environment" is added, which can do the mapping. The
mapping is reflected to every process as only the root page directory (L1)
is copied to users, which means every change to L2 / L3 tables will be
seen by every user.
2023-11-23 16:38:41 -08:00
..
supervisor riscv/fpu: Restore correct lazy-FPU functionality 2023-07-31 07:48:53 -07:00
addrenv.h riscv/addrenv: Fix the user VMA end address 2023-09-29 22:34:40 +08:00
CMakeLists.txt cmake:init RISC-V cmake qemu-rv build 2023-10-26 21:01:46 +08:00
crt0.c
fork.S libs/libc/fork: add lib_fork implementation 2023-07-26 10:41:52 +02:00
Make.defs sched/task/fork: add fork implementation 2023-07-12 02:27:37 +08:00
pgalloc.h riscv-v/pgalloc.h: Return kernel vaddr for kernel RAM paddr 2023-10-09 18:59:25 +03:00
riscv_addrenv_kstack.c mm/alloc: remove all unnecessary cast for alloc 2023-08-30 14:34:20 +08:00
riscv_addrenv_perms.c arch/addrenv: Change group_addrenv_t to arch_addrenv_t 2023-01-27 23:17:01 +08:00
riscv_addrenv_pgmap.c mm/kmap: Finalize kmap implementation for RISC-V 2023-11-23 16:38:41 -08:00
riscv_addrenv_shm.c riscv/addrenv: Create utility function for dynamic mappings 2023-05-12 22:32:31 +08:00
riscv_addrenv_utils.c riscv_addrenv_utils.c: Determine page table flags by type of vaddr 2023-10-05 20:38:35 +08:00
riscv_addrenv.c riscv_addrenv: Fix static page table mapping (paddr instead of vaddr) 2023-11-02 21:52:23 +08:00
riscv_allocateheap.c
riscv_backtrace.c risc-v/backtrace: correct stack pointer if enable ARCH_KERNEL_STACK 2023-06-07 01:44:28 +08:00
riscv_checkstack.c Remove FAR from source code under 32bit arch and board 2023-09-16 19:12:13 +03:00
riscv_common_memorymap.h
riscv_cpuidlestack.c
riscv_cpuindex.c
riscv_cpuinfo.c Remove FAR from source code under 32bit arch and board 2023-09-16 19:12:13 +03:00
riscv_cpupause.c cpu_pause.c: fix typo 2023-10-14 00:26:31 -04:00
riscv_cpustart.c
riscv_createstack.c arch: fixed error in the calculation of nwords caused an out of bounds 2023-03-13 16:12:11 +09:00
riscv_doirq.c arch: update g_running_tasks when context switch occurred 2023-08-01 09:35:18 -07:00
riscv_exception_common.S riscv/fpu: Restore correct lazy-FPU functionality 2023-07-31 07:48:53 -07:00
riscv_exception.c assert: Distinguish between assert and exception 2023-05-03 14:49:32 +08:00
riscv_exit.c arch/dumponexit: unify dump on exit to common code 2023-11-15 08:28:25 -08:00
riscv_fork.c riscv/lazyfpu: Add option to disable lazy FPU 2023-07-31 07:48:53 -07:00
riscv_fork.h riscv/fpu: Restore correct lazy-FPU functionality 2023-07-31 07:48:53 -07:00
riscv_fpu.S riscv/lazyfpu: Add option to disable lazy FPU 2023-07-31 07:48:53 -07:00
riscv_fpucmp.c
riscv_getintstack.c arch: move stack and task dump to common code 2022-12-17 01:59:35 +08:00
riscv_getnewintctx.c arch/risc-v: Set Supervisor User Memory (access) for idle process too 2023-03-29 10:53:09 -03:00
riscv_hostfs.c hostfs: mask bit fields of not support 2023-09-23 05:28:57 +09:00
riscv_idle.c
riscv_initialize.c
riscv_initialstate.c riscv/kernel_stack: Use kernel stack to store the user context 2023-06-09 13:53:27 +08:00
riscv_internal.h riscv/lazyfpu: Add option to disable lazy FPU 2023-07-31 07:48:53 -07:00
riscv_ksp.c riscv/kernel_stack: Use kernel stack to store the user context 2023-06-09 13:53:27 +08:00
riscv_macros.S riscv/fpu: Restore correct lazy-FPU functionality 2023-07-31 07:48:53 -07:00
riscv_mdelay.c
riscv_mhartid.S
riscv_misaligned.c arm/dataabort: fix compile warning 2023-06-12 13:36:08 +08:00
riscv_mmu.c risc-v: SV32 MMU support for qemu-rv. 2023-03-29 22:15:19 +09:00
riscv_mmu.h riscv_addrenv_utils.c: Determine page table flags by type of vaddr 2023-10-05 20:38:35 +08:00
riscv_modifyreg32.c
riscv_mtimer.c riscv/barrier: Define more granular memory barriers 2023-06-14 16:14:57 -03:00
riscv_mtimer.h
riscv_nputs.c
riscv_percpu.c riscv/barrier: Define more granular memory barriers 2023-06-14 16:14:57 -03:00
riscv_percpu.h riscv/kernel_stack: Use kernel stack to store the user context 2023-06-09 13:53:27 +08:00
riscv_pgalloc.c group/group_addrenv: Move address environment from group -> tcb 2023-02-08 02:51:23 +08:00
riscv_pmp.c arch/risc-v: Simplify pmp_check_region_attrs sanity-checks 2023-10-23 13:10:59 -03:00
riscv_pthread_start.c
riscv_registerdump.c assert: show stacks with the sp from regs 2023-05-05 13:40:04 +08:00
riscv_releasestack.c
riscv_saveusercontext.S riscv/saveusercontext: Fix FPU state save 2023-07-31 07:48:53 -07:00
riscv_schedulesigaction.c arch: move [enter|leave]_critical_section 2023-07-27 11:34:09 +02:00
riscv_semihost.S
riscv_sigdeliver.c riscv/swint: Give the full tcb to the context switch routine 2023-07-31 07:48:53 -07:00
riscv_signal_dispatch.c
riscv_signal_handler.S
riscv_stackframe.c
riscv_swint.c riscv/fpu: Restore correct lazy-FPU functionality 2023-07-31 07:48:53 -07:00
riscv_switchcontext.c riscv/swint: Give the full tcb to the context switch routine 2023-07-31 07:48:53 -07:00
riscv_task_start.c
riscv_tcbinfo.c tcbinfo:remove total_num form tcbinfo. 2023-11-21 21:52:24 -08:00
riscv_testset.S
riscv_tls.c
riscv_udelay.c
riscv_usestack.c
riscv_vectors.S
Toolchain.defs Revert "make/archive: Use the full path name when matching or storing names in the archive" 2023-10-27 22:26:18 +08:00