On Feb 13 17:11, Peter Maydell wrote:
> On Thu, 2 Feb 2023 at 21:12, Aaron Lindsay <[email protected]>
> wrote:
> >
> > Signed-off-by: Aaron Lindsay <[email protected]>
> > ---
> > target/arm/cpu.h | 5 +++
> > target/arm/cpu64.c | 81 ++++++++++++++++++++++++++++++++++++++--------
> > 2 files changed, 72 insertions(+), 14 deletions(-)
>
> Do we really need all these properties ? Generally we don't
> add CPU properties unless there's a good reason for the
> user (or the board/SoC code) to want to flip them. The
> more usual case is that we simply enable them on the 'max'
> CPU by setting the ID register fields appropriately.
Honestly, I wasn't sure where to draw the line... so I didn't. Though I
won't claim to have perfect knowledge of the evolution of this feature,
it felt like there were 4 distinct levels that I could imagine might be
wanted - I've starred those 4 below:
* 1) no PAC (APA/API=0b0000)
* 2) PAC without EPAC/Pauth2, QEMU's highest PAC implementation previous
to this patchset (APA/API=0b0001)
* 3) EPAC (APA/API=0b0010)
4) Pauth2 (APA/API=0b0011)
5) FPAC (APA/API=0b0100)
* 6) FPACCombined (APA/API=0b0101)
And I am not sure how likely 4) and 5) are to be implemented, but after
I was already up to 4, adding the last two more didn't feel like much
more!
I half-considered trying to make `pauth` a single option which took a
string instead of a handful of separate boolean arguments. The possible
options might be `pauth=off`, `pauth=no-epac` (no EPAC), `pauth=epac`,
`pauth=pauth2`, `pauth=fpac-combine`.
All this to say: I'm more than happy to take guidance here!
> Somewhere in this series you need to add documentation of
> the features being implemented to docs/system/arm/emulation.rst
> (just a one-liner per FEAT_whatever).
Will do in my next patchset based on what we decide upon above.
Thanks!
-Aaron