Hi Daniel,

Both '_reserved1' and '_reserved2' fields are only for padding
MemTxAttrs struct to be 8-byte [1], so I remove a 1-byte reserved
field when adding 'world_id' field to it.
Is it ok for you? Or you think it is better to separate them.


[1]
commit 5014e33b1e00d330f13df33c09a3932ac88f8d94
Link: https://lore.kernel.org/r/[email protected]

Thanks!

On Sat, Aug 9, 2025 at 8:34 PM Daniel Henrique Barboza
<[email protected]> wrote:
>
>
>
> On 4/17/25 7:52 AM, Jim Shu wrote:
> > RISC-V WorldGuard will add 5-bit world_id (WID) to the each memory
> > transaction on the bus. The wgChecker in front of RAM or peripherals
> > MMIO could do the access control based on the WID. It is similar to ARM
> > TrustZone NS bit, but the WID is 5-bit.
> >
> > The common implementation of WID is AXI4 AxUSER signal.
> >
> > Signed-off-by: Jim Shu <[email protected]>
> > ---
> >   include/exec/memattrs.h | 8 ++++++--
> >   1 file changed, 6 insertions(+), 2 deletions(-)
> >
> > diff --git a/include/exec/memattrs.h b/include/exec/memattrs.h
> > index 8db1d30464..7a6866fa41 100644
> > --- a/include/exec/memattrs.h
> > +++ b/include/exec/memattrs.h
> > @@ -54,6 +54,11 @@ typedef struct MemTxAttrs {
> >        */
> >       unsigned int pid:8;
> >
> > +    /*
> > +     * RISC-V WorldGuard: the 5-bit WID field of memory access.
> > +     */
> > +    unsigned int world_id:5;
> > +
> >       /*
> >        * Bus masters which don't specify any attributes will get this
> >        * (via the MEMTXATTRS_UNSPECIFIED constant), so that we can
> > @@ -63,8 +68,7 @@ typedef struct MemTxAttrs {
> >        */
> >       bool unspecified;
> >
> > -    uint8_t _reserved1;
> > -    uint16_t _reserved2;
> > +    uint16_t _reserved1;
>
> Is 'reserved2' unused? Not sure why you ended up removing it in this patch.
>
> If it's really unused it's ok to remove it but this should be done in 
> separate.
>
>
> Thanks,
>
> Daniel
>
>
> >   } MemTxAttrs;
> >
> >   QEMU_BUILD_BUG_ON(sizeof(MemTxAttrs) > 8);
>

Reply via email to