From: Himanshu Chauhan Date: Wed, 12 Jul 2023 04:34:36 +0000 (+0530) Subject: lib: sbi: Map/Unmap debug console shared memory buffers X-Git-Tag: v1.4~130 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0ad866067d7853683d88c10ea9269ae6001bcf6f;p=platform%2Fkernel%2Fopensbi.git lib: sbi: Map/Unmap debug console shared memory buffers With Smepmp enabled, it is necessary for shared memory from S/U mode to be mapped/unmapped before and after read/write of the memory region. This patch maps the debug console shared memory before accessing it. Signed-off-by: Himanshu Chauhan Reviewed-by: Anup Patel --- diff --git a/lib/sbi/sbi_ecall_dbcn.c b/lib/sbi/sbi_ecall_dbcn.c index 8e68729..18cd6c8 100644 --- a/lib/sbi/sbi_ecall_dbcn.c +++ b/lib/sbi/sbi_ecall_dbcn.c @@ -14,6 +14,7 @@ #include #include #include +#include static int sbi_ecall_dbcn_handler(unsigned long extid, unsigned long funcid, const struct sbi_trap_regs *regs, @@ -46,10 +47,12 @@ static int sbi_ecall_dbcn_handler(unsigned long extid, unsigned long funcid, regs->a1, regs->a0, smode, SBI_DOMAIN_READ|SBI_DOMAIN_WRITE)) return SBI_ERR_INVALID_PARAM; + sbi_hart_map_saddr(regs->a1, regs->a0); if (funcid == SBI_EXT_DBCN_CONSOLE_WRITE) *out_val = sbi_nputs((const char *)regs->a1, regs->a0); else *out_val = sbi_ngets((char *)regs->a1, regs->a0); + sbi_hart_unmap_saddr(); return 0; case SBI_EXT_DBCN_CONSOLE_WRITE_BYTE: sbi_putc(regs->a0);