On 26.03.2025 13:42, Oleksii Kurochko wrote:
> 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).
> 
> According to the Unprivileged Architecture (version 20240411) specification:
> ```
> Table 74 summarizes the standardized extension names. The table also defines
> the canonical order in which extension names must appear in the name string,
> with top-to-bottom in table indicating first-to-last in the name string, e.g.,
> RV32IMACV is legal, whereas RV32IMAVC is not.
> ```
> According to Table 74, the h extension is placed last in the one-letter
> extensions name part of the ISA string.
> 
> `h` is a standalone extension based on the patch [1] but it wasn't so
> before.
> As the minimal supported GCC version to build Xen for RISC-V is 12.2.0,
> and for that version, h is still considered a prefix for the hypervisor
> extension but the name of hypervisor extension must be more then 1 letter
> extension, a workaround ( with using `hh` as an H extension name ) is
> implemented as otherwise the following compilation error will occur:
>  error: '-march=rv64gc_h_zbb_zihintpause': name of hypervisor extension
>         must be more than 1 letter
> 
> After GCC version 13.1.0, the commit [1] introducing H extension support
> allows us to drop the workaround with `hh` as hypervisor extension name
> and use only one h in -march.
> 
> [1] 
> https://github.com/gcc-mirror/gcc/commit/0cd11d301013af50a3fae0694c909952e94e20d5#diff-d6f7db0db31bfb339b01bec450f1b905381eb4730cc5ab2b2794971e34647d64R148
> 
> Signed-off-by: Oleksii Kurochko <[email protected]>

Acked-by: Jan Beulich <[email protected]>



Reply via email to