本PR实现以下主要功能:
- SBI FWFT (Firmware Feature) 扩展支持
- KVM FWFT SBI 扩展支持
该功能合入以下补丁,均来自L0社区
1、PR 199 和 PR 207的bugfix,
475afa3 riscv: Fix the __riscv_copy_vec_words_unaligned implementation
33981b1 riscv: Fix missing __free_pages() in check_vector_unaligned_access()
61a74ad riscv: misaligned: fix sleeping function called during misaligned access handling
7b30b1b riscv: misaligned: Add handling for ZCB instructions
fd94de9 riscv: misaligned: factorize trap handling
453805f riscv: misaligned: enable IRQs while handling misaligned accesses
897e8ae riscv: misaligned: use get_user() instead of __get_user()
2f73c62 Revert "riscv: misaligned: fix sleeping function called during misaligned access handling"
2、fwft功能的前置补丁
SBI调用追踪、代码优化
56c1c1a riscv: Add tracepoints for SBI calls and returns
16badac riscv: Improve sbi_ecall() code generation by reordering arguments
替代指令修复
4410160 riscv: Fix unaligned access info messages
1ff95eb riscv: Fix RISCV_ALTERNATIVE_EARLY
KVM虚拟化调试支持和测试
edcbe90 RISC-V: KVM: Implement kvm_arch_vcpu_ioctl_set_guest_debug()
1df1fb5 RISC-V: KVM: Handle breakpoint exits for VCPU
f1c48c1 RISC-V: KVM: selftests: Add ebreak test support
3、fwft功能
非kvm处理
cf8651f riscv: sbi: add Firmware Feature (FWFT) SBI extensions definitions
a7cd450 riscv: sbi: remove useless parenthesis
99cf5b7 riscv: sbi: add new SBI error mappings
6d6d064 riscv: sbi: add FWFT extension interface
cf5a8ab riscv: misaligned: request misaligned exception from SBI
9f9f6fd riscv: misaligned: use on_each_cpu() for scalar misaligned access probing
1317045 riscv: misaligned: declare misaligned_access_speed under CONFIG_RISCV_MISALIGNED
4eaaa65 riscv: misaligned: move emulated access uniformity check in a function
7977448 riscv: misaligned: add a function to check misalign trap delegability
kvm处理
cf648c4 RISC-V: KVM: add SBI extension init()/deinit() functions
c046de8 RISC-V: KVM: add SBI extension reset callback
6b72fd1 RISC-V: KVM: add support for FWFT SBI extension
bb053f8 RISC-V: KVM: add support for SBI_FWFT_MISALIGNED_DELEG
3、fwft的一些代码优化
932131f riscv: Fix typo EXRACT -> EXTRACT
833bbb0 riscv: Strengthen duplicate and inconsistent definition of RV_X()
a601732 riscv: Move all duplicate insn parsing macros into asm/insn.h
本PR实现以下主要功能:
允许S-mode请求特定的硬件或软件特性启用
实现非对齐访问异常委托给S-mode,由内核直接处理
基于非对齐访问处理基础设施
支持在KVM虚拟化环境中测试异常委托
该功能合入以下补丁,均来自L0社区
1、PR 199 和 PR 207的bugfix,
475afa3 riscv: Fix the __riscv_copy_vec_words_unaligned implementation
33981b1 riscv: Fix missing __free_pages() in check_vector_unaligned_access()
61a74ad riscv: misaligned: fix sleeping function called during misaligned access handling
7b30b1b riscv: misaligned: Add handling for ZCB instructions
fd94de9 riscv: misaligned: factorize trap handling
453805f riscv: misaligned: enable IRQs while handling misaligned accesses
897e8ae riscv: misaligned: use get_user() instead of __get_user()
2f73c62 Revert "riscv: misaligned: fix sleeping function called during misaligned access handling"
2、fwft功能的前置补丁
SBI调用追踪、代码优化
56c1c1a riscv: Add tracepoints for SBI calls and returns
16badac riscv: Improve sbi_ecall() code generation by reordering arguments
替代指令修复
4410160 riscv: Fix unaligned access info messages
1ff95eb riscv: Fix RISCV_ALTERNATIVE_EARLY
KVM虚拟化调试支持和测试
edcbe90 RISC-V: KVM: Implement kvm_arch_vcpu_ioctl_set_guest_debug()
1df1fb5 RISC-V: KVM: Handle breakpoint exits for VCPU
f1c48c1 RISC-V: KVM: selftests: Add ebreak test support
3、fwft功能
非kvm处理
cf8651f riscv: sbi: add Firmware Feature (FWFT) SBI extensions definitions
a7cd450 riscv: sbi: remove useless parenthesis
99cf5b7 riscv: sbi: add new SBI error mappings
6d6d064 riscv: sbi: add FWFT extension interface
cf5a8ab riscv: misaligned: request misaligned exception from SBI
9f9f6fd riscv: misaligned: use on_each_cpu() for scalar misaligned access probing
1317045 riscv: misaligned: declare misaligned_access_speed under CONFIG_RISCV_MISALIGNED
4eaaa65 riscv: misaligned: move emulated access uniformity check in a function
7977448 riscv: misaligned: add a function to check misalign trap delegability
kvm处理
cf648c4 RISC-V: KVM: add SBI extension init()/deinit() functions
c046de8 RISC-V: KVM: add SBI extension reset callback
6b72fd1 RISC-V: KVM: add support for FWFT SBI extension
bb053f8 RISC-V: KVM: add support for SBI_FWFT_MISALIGNED_DELEG
3、fwft的一些代码优化
932131f riscv: Fix typo EXRACT -> EXTRACT
833bbb0 riscv: Strengthen duplicate and inconsistent definition of RV_X()
a601732 riscv: Move all duplicate insn parsing macros into asm/insn.h