[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 7/7] target/arm: Add CPU properties for most v8.3 PAC feature
From: |
Aaron Lindsay |
Subject: |
Re: [PATCH 7/7] target/arm: Add CPU properties for most v8.3 PAC features |
Date: |
Tue, 21 Feb 2023 16:35:35 -0500 |
On Feb 13 17:11, Peter Maydell wrote:
> On Thu, 2 Feb 2023 at 21:12, Aaron Lindsay <aaron@os.amperecomputing.com>
> wrote:
> >
> > Signed-off-by: Aaron Lindsay <aaron@os.amperecomputing.com>
> > ---
> > 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
- [PATCH 2/7] target/arm: Implement v8.3 QARMA3 PAC cipher, (continued)
- [PATCH 2/7] target/arm: Implement v8.3 QARMA3 PAC cipher, Aaron Lindsay, 2023/02/02
- [PATCH 4/7] target/arm: Implement v8.3 Pauth2, Aaron Lindsay, 2023/02/02
- [PATCH 5/7] targer/arm: Inform helpers whether a PAC instruction is 'combined', Aaron Lindsay, 2023/02/02
- [PATCH 6/7] target/arm: Implement v8.3 FPAC and FPACCOMBINE, Aaron Lindsay, 2023/02/02
- [PATCH 7/7] target/arm: Add CPU properties for most v8.3 PAC features, Aaron Lindsay, 2023/02/02