From: Bo Gan Date: Wed, 6 Mar 2024 02:35:39 +0000 (-0800) Subject: include: sbi: add emulate_load/store handler to platform ops X-Git-Tag: v1.5~84 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ddf3b649f1edd9eb5ad171c7faadf34acfb942f0;p=platform%2Fkernel%2Fopensbi.git include: sbi: add emulate_load/store handler to platform ops This patch allows the platform to define load/store emulators. This enables a platform to trap-and-emulate special devices or filter access to existing physical devices. Signed-off-by: Bo Gan Reviewed-by: Anup Patel --- diff --git a/include/sbi/sbi_platform.h b/include/sbi/sbi_platform.h index 2fb33e1..f962aa4 100644 --- a/include/sbi/sbi_platform.h +++ b/include/sbi/sbi_platform.h @@ -53,6 +53,7 @@ struct sbi_domain_memregion; struct sbi_ecall_return; struct sbi_trap_regs; struct sbi_hart_features; +union sbi_ldst_data; /** Possible feature flags of a platform */ enum sbi_platform_features { @@ -139,6 +140,13 @@ struct sbi_platform_operations { int (*vendor_ext_provider)(long funcid, struct sbi_trap_regs *regs, struct sbi_ecall_return *out); + + /** platform specific handler to fixup load fault */ + int (*emulate_load)(int rlen, unsigned long addr, + union sbi_ldst_data *out_val); + /** platform specific handler to fixup store fault */ + int (*emulate_store)(int wlen, unsigned long addr, + union sbi_ldst_data in_val); }; /** Platform default per-HART stack size for exception/interrupt handling */