On Tue, 24 Jan 2023 at 00:01, Richard Henderson <richard.hender...@linaro.org> wrote: > > We will need 2 bits to represent ARMSecurityState. > > Do not attempt to replace or widen secure, even though it > logically overlaps the new field -- there are uses within > e.g. hw/block/pflash_cfi01.c, which don't know anything > specific about ARM. > > Signed-off-by: Richard Henderson <richard.hender...@linaro.org> > --- > include/exec/memattrs.h | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/include/exec/memattrs.h b/include/exec/memattrs.h > index 9fb98bc1ef..d04170aa27 100644 > --- a/include/exec/memattrs.h > +++ b/include/exec/memattrs.h > @@ -29,10 +29,17 @@ typedef struct MemTxAttrs { > * "didn't specify" if necessary. > */ > unsigned int unspecified:1; > - /* ARM/AMBA: TrustZone Secure access > + /* > + * ARM/AMBA: TrustZone Secure access > * x86: System Management Mode access > */ > unsigned int secure:1; > + /* > + * ARM: ArmSecuritySpace. This partially overlaps secure, but it is > + * easier to have both fields to assist code that does not understand > + * ARMv9 RME, or no specific knowledge of ARM at all (e.g. pflash). > + */ > + unsigned int space:2; > /* Memory access is usermode (unprivileged) */ > unsigned int user:1;
Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> I guess we aren't so tight on bits in this struct as to warrant keeping the extra RME info in a single bit (which should in theory be possible). thanks -- PMM