[PATCH v4 0/7] Allow platform to handle load/store faults
Bo Gan
ganboing at gmail.com
Tue Mar 5 18:35:33 PST 2024
Sometimes a platform wants to trap-n-emulate special devices or filter
access to physical devices. This patch makes sbi_trap_handler to call
platform_ops.emulate_load/store and ask platform to fixup the fault.
v4 changes:
- Addressed comments from Anup -- sbi_trap related details should
not be visable to platform code.
- Minor fixes -- splitting patches and renames suggested by Anup.
v3 changes:
- Addressed comments from Anup by breaking down the patchset and
new sbi_platform_emulate_load/store helper functions.
- Reworked the return value of sbi_trap_ld/st_emulator to support
(>0) successful emulation (==0) trap_redirect (<0) real failure.
v2 changes:
- Added const qualifier to *orig_trap on load/store fault handlers.
That addressed Xiang W's comment.
- Applied clang-format to changed lines.
Bo Gan (7):
lib: sbi: rename sbi_misaligned_ldst.c to sbi_trap_ldst.c
include: sbi: rename sbi_misaligned_ldst.h to sbi_trap_ldst.h
lib: sbi: change prototype of sbi_trap_redirect
lib: sbi: change prototype of sbi_misaligned_load/store_handler
lib: sbi: abstract out insn decoding to unify mem fault handlers
include: sbi: add emulate_load/store handler to platform ops
lib: sbi: call platform load/store emulators
include/sbi/sbi_misaligned_ldst.h | 23 ---
include/sbi/sbi_platform.h | 53 +++++
include/sbi/sbi_trap.h | 2 +-
include/sbi/sbi_trap_ldst.h | 35 ++++
lib/sbi/objects.mk | 2 +-
lib/sbi/sbi_trap.c | 38 ++--
lib/sbi/{sbi_misaligned_ldst.c => sbi_trap_ldst.c} | 213 +++++++++++++++------
7 files changed, 265 insertions(+), 101 deletions(-)
delete mode 100644 include/sbi/sbi_misaligned_ldst.h
create mode 100644 include/sbi/sbi_trap_ldst.h
rename lib/sbi/{sbi_misaligned_ldst.c => sbi_trap_ldst.c} (54%)
--
2.7.4
More information about the opensbi
mailing list