Skip to content

【backport】RISC-V SBI FWFT 扩展支持 #239

@uestc-gr

Description

@uestc-gr

本PR实现以下主要功能:

  1. SBI FWFT (Firmware Feature) 扩展支持
  • 允许S-mode请求特定的硬件或软件特性启用

  • 实现非对齐访问异常委托给S-mode,由内核直接处理

  1. KVM FWFT SBI 扩展支持
  • 基于非对齐访问处理基础设施

  • 支持在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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions