[PATCH 6/6] lib: sbi: Map/Unmap debug console shared memory buffers before and after read/write
Anup Patel
apatel at ventanamicro.com
Tue Jul 4 06:28:23 PDT 2023
On Tue, Jun 20, 2023 at 8:09 PM Himanshu Chauhan
<hchauhan at ventanamicro.com> wrote:
Simplify the patch subject to:
"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.
>
> Signed-off-by: Himanshu Chauhan <hchauhan at ventanamicro.com>
> ---
> lib/sbi/sbi_ecall_dbcn.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/lib/sbi/sbi_ecall_dbcn.c b/lib/sbi/sbi_ecall_dbcn.c
> index e0b892c..3724d70 100644
> --- a/lib/sbi/sbi_ecall_dbcn.c
> +++ b/lib/sbi/sbi_ecall_dbcn.c
> @@ -14,6 +14,7 @@
> #include <sbi/sbi_ecall_interface.h>
> #include <sbi/sbi_trap.h>
> #include <sbi/riscv_asm.h>
> +#include <sbi/sbi_hart.h>
>
> static int sbi_ecall_dbcn_handler(unsigned long extid, unsigned long funcid,
> const struct sbi_trap_regs *regs,
> @@ -43,10 +44,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);
> --
> 2.34.1
>
>
> --
> opensbi mailing list
> opensbi at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/opensbi
Otherwise it looks good to me.
Reviewed-by: Anup Patel <anup at brainfault.org>
Regards,
Anup
More information about the opensbi
mailing list