nuttx/arch/risc-v/include
Ville Juven 57127b9429 RISC-V: Initial support for CONFIG_BUILD_KERNEL
This implements initial support for kernel build (address environments,
page allocator) for RISC-V.

This is done a bit differently compared to the ARMV7 implementation:

- Support implemented for Sv39 MMU, however the implementation should be
  extensible for other MMU types also.
- Instead of preserving and moving the L1 references around, a canonical
  approach is used instead, where the page table base address register
  is switched upon context switch.
- To preserve a bit of memory, only a single L1/L2 table is supported,
  this gives access to 1GiB of virtual memory for each process, which
  should be more than enough.

Some things worth noting:
- Assumes page pool is mapped with vaddr=paddr mappings
- The CONFIG_ARCH_XXXX_VBASE and CONFIG_ARCH_XXXX_NPAGES values are
  ignored, with the exception of CONFIG_ARCH_DATA_VBASE which is used
  for ARCH_DATA_RESERVE
- ARCH_DATA_RESERVE is placed at the beginning of the userspace task's
  address environment
2022-04-29 02:02:15 +08:00
..
bl602 arch/risc-v: Remove dupped irq code from bl602 2022-01-21 00:44:43 +08:00
c906 arch/risc-v: Remove dupped irq code from c906 2022-01-21 00:44:43 +08:00
esp32c3 esp32c3: Simplify irq dispatch logic 2022-04-07 18:16:35 +02:00
fe310 arch/risc-v: Remove dupped irq code from fe310 2022-01-21 00:44:43 +08:00
k210 arch/risc-v: Remove dupped irq code from k210 2022-01-21 00:44:43 +08:00
litex arch/risc-v/src/litex/litex_sdio: add litesdcard peripheral driver 2022-03-30 02:35:27 +08:00
mpfs arch/risc-v: Remove dupped irq code from mpfs 2022-01-21 00:44:43 +08:00
qemu-rv arch/risc-v: Remove dupped irq code from qemu-rv 2022-01-21 00:44:43 +08:00
rv32m1 arch/risc-v: Merge mcause.h into irq.h 2022-01-22 14:57:05 +08:00
.gitignore Remove exra whitespace from files (#189) 2020-01-31 09:24:49 -06:00
arch.h RISC-V: Initial support for CONFIG_BUILD_KERNEL 2022-04-29 02:02:15 +08:00
barriers.h RISC-V: Add common data memory and instruction barriers 2022-03-18 18:20:12 +08:00
csr.h arch/riscv: Align the macro definition in csr.h 2022-04-02 14:08:37 +03:00
elf.h ELF64 support (#220) 2020-02-07 17:10:23 -06:00
inttypes.h arch/risc-v: Replace __LP64__ with CONFIG_ARCH_RV64 2022-01-04 23:22:43 +08:00
irq.h RISC-V: Combine 3 variables that depend on CPU amount into one 2022-04-12 01:59:35 +08:00
limits.h arch/risc-v: Refine Toolchain.defs 2021-12-28 00:30:10 -06:00
mode.h arch/riscv: Access [m|s]scratch through CSR_SCRATCH macro 2022-04-02 14:08:37 +03:00
setjmp.h arch/risc-v: Save/Load float register in setjmp 2022-03-09 10:15:54 +02:00
spinlock.h arch/risc-v: Replace __LP64__ with CONFIG_ARCH_RV64 2022-01-04 23:22:43 +08:00
stdarg.h arch: risc-V: Author Gregory Nutt: update licenses to Apache 2021-03-31 08:48:51 -07:00
syscall.h arch/risc-v: use STACK_FRAME_SIZE for in S-mode syscall asm 2022-04-04 12:05:53 +08:00
types.h arch/risc-v: Replace __LP64__ with CONFIG_ARCH_RV64 2022-01-04 23:22:43 +08:00