[PATCH] riscv: Add AIA extension support (Smaia, Ssaia)

Christoph Müllner christoph.muellner@vrull.eu
Tue Nov 22 09:51:13 GMT 2022


On Fri, Nov 18, 2022 at 10:34 AM Nelson Chu <nelson@rivosinc.com> wrote:

> On Fri, Nov 18, 2022 at 5:08 PM Christoph Müllner
> <christoph.muellner@vrull.eu> wrote:
> >
> >
> >
> > On Fri, Nov 18, 2022 at 9:12 AM Nelson Chu <nelson@rivosinc.com> wrote:
> >>
> >> > +DECLARE_CSR(hvien, CSR_HVIEN, CSR_CLASS_SMAIA_AND_H,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >> > +DECLARE_CSR(hvictl, CSR_HVICTL, CSR_CLASS_SMAIA_AND_H,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >> > +DECLARE_CSR(hviprio1, CSR_HVIPRIO1, CSR_CLASS_SMAIA_AND_H,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >> > +DECLARE_CSR(hviprio2, CSR_HVIPRIO2, CSR_CLASS_SMAIA_AND_H,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >> > +DECLARE_CSR(hidelegh, CSR_HIDELEGH, CSR_CLASS_SMAIA_AND_H_32,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >> > +DECLARE_CSR(hvienh, CSR_HVIENH, CSR_CLASS_SMAIA_AND_H_32,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >> > +DECLARE_CSR(hviph, CSR_HVIPH, CSR_CLASS_SMAIA_AND_H_32,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >> > +DECLARE_CSR(hviprio1h, CSR_HVIPRIO1H, CSR_CLASS_SMAIA_AND_H_32,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >> > +DECLARE_CSR(hviprio2h, CSR_HVIPRIO2H, CSR_CLASS_SMAIA_AND_H_32,
> PRIV_SPEC_CLASS_NONE, PRIV_SPEC_CLASS_NONE)
> >>
> >> Just curious does the spec clarify these belonged to smaia? or should
> >> these just belonged to h?
> >
> >
> > The AIA spec says:
> > "If a hart implements the Privileged Architecture’s hypervisor
> extension, then the hypervisor and
> > VS CSRs listed in Table 2.3 are also added"
> >
> > So I think the way it is modeled is correct.
>
> So if we only enable ssaia and h, then we can only use virtual
> supervisor aia CSRs, but cannot use the hypervisor aia?  If that true,
> then looks good.
>

I double-checked, and that's not the case.
The hypervisor splits S-mode into HS and VS, but this has nothing to do
with Smaia.
Therefore all hypervisor and VS CSRs should be part of Ssaia.
I will fix that in a v3.

Thanks!


More information about the Binutils mailing list