On 17.12.2025 17:54, Oleksii Kurochko wrote: > This commit introduces support for handling virtual SBI extensions in Xen.
Nit: As before, no "this commit" in commit messages, please. > The changes include: > - Added new vsbi/core.c and vsbi.h files to implement virtual SBI extension > handling. > - Modified traps.c to handle CAUSE_VIRTUAL_SUPERVISOR_ECALL by calling > vsbi_handle_ecall() when the trap originates from VS-mode. > - Updated xen.lds.S to include a new .vsbi.exts section for virtual SBI > extension data. > - Updated Makefile to include the new vsbi/ directory in the build. > - Add hstatus register to struct cpu_user_regs as it is needed for > a check that CAUSE_VIRTUAL_SUPERVISOR_ECALL happens from VS-mode. > Also, add storing/restoring of hstatus register in handle_trap(). > - Introduce vsbi_find_extension() to check if vsbi extension is supported > by Xen. For now it is called only inside vsbi/core.c, but in future > it is going to be called from other files. > - Introduce check_vsbi_ext_ranges() to check if there EIDs ranges > overlapping between extensions. > > The implementation allows for registration and handling of SBI > extensions via a new vsbi_ext structure and ".vsbi.exts" section, > enabling extensible virtual SBI support for RISC-V guests. > > Note: All EIDs are printed in the format #%#lx and all FIDs in #%#lu, as > the SBI spec uses these formats. Printing them this way makes it easier to > search for them in the SBI spec. Luckily the oddity exists only here: I don't think '#' would be very useful with 'u'. Jan
