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_<bitop>, 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/
