System requirements =================== The following extensions are expected to be supported by a system on which Xen is run: - H: Provides additional instructions and CSRs that control the new stage of address translation and support hosting a guest OS in virtual S-mode (VS-mode). - Zbb: RISC-V doesn't have a CLZ instruction in the base ISA. As a consequence, __builtin_ffs() emits a library call to ffs() on GCC, or a de Bruijn sequence on Clang. Zbb extension adds a CLZ instruction, after which __builtin_ffs() emits a very simple sequence. The similar issue occurs with other __builtin_, so it is needed to provide a generic version of bitops in RISC-V bitops.h - Zihintpause: On a system that doesn't have this extension, cpu_relax() should be implemented properly. - SVPBMT is mandatory to enable changing the memory attributes of a page. For platforms that do not support SVPBMT, it is necessary to introduce a similar mechanism as described in: https://lore.kernel.org/all/20241102000843.1301099-1-samuel.holland@sifive.com/