From 3e8575c39e0078ca710cee36e7e1e4059efbf24b Mon Sep 17 00:00:00 2001 From: Ville Juven Date: Wed, 4 Oct 2023 15:57:29 +0300 Subject: [PATCH] riscv-v/pgalloc.h: Return kernel vaddr for kernel RAM paddr All kernel memory is mapped paddr=vaddr, so it is trivial to give mapping for kernel memory. Only interesting region should be kernel RAM, so omit kernel ROM and don't allow re-mapping it. --- arch/risc-v/src/common/pgalloc.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/risc-v/src/common/pgalloc.h b/arch/risc-v/src/common/pgalloc.h index 40da2980566..be39da0d3a0 100644 --- a/arch/risc-v/src/common/pgalloc.h +++ b/arch/risc-v/src/common/pgalloc.h @@ -75,6 +75,10 @@ static inline uintptr_t riscv_pgvaddr(uintptr_t paddr) { return paddr - CONFIG_ARCH_PGPOOL_PBASE + CONFIG_ARCH_PGPOOL_VBASE; } + else if (paddr >= CONFIG_RAM_START && paddr < CONFIG_RAM_END) + { + return paddr - CONFIG_RAM_START + CONFIG_RAM_VSTART; + } return 0; }