qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 10/14] target/arm: do S1_ptw_translate() before address space


From: Rémi Denis-Courmont
Subject: Re: [PATCH 10/14] target/arm: do S1_ptw_translate() before address space lookup
Date: Tue, 03 Nov 2020 23:21:05 +0200

Le tiistaina 3. marraskuuta 2020, 21.54.48 EET Richard Henderson a écrit :
> On 11/2/20 2:57 AM, remi.denis.courmont@huawei.com wrote:
> > From: Rémi Denis-Courmont <remi.denis.courmont@huawei.com>
> > 
> > In the secure stage 2 translation regime, the VSTCR.SW and VTCR.NSW
> > bits can invert the secure flag for pagetable walks. This patchset
> > allows S1_ptw_translate() to change the non-secure bit.
> > 
> > Signed-off-by: Rémi Denis-Courmont <remi.denis.courmont@huawei.com>
> > ---
> > 
> >  target/arm/helper.c | 9 ++++++---
> >  1 file changed, 6 insertions(+), 3 deletions(-)
> > 
> > diff --git a/target/arm/helper.c b/target/arm/helper.c
> > index 4c86e4f57c..7c70460e65 100644
> > --- a/target/arm/helper.c
> > +++ b/target/arm/helper.c
> > @@ -10403,7 +10403,7 @@ static bool get_level1_table_address(CPUARMState
> > *env, ARMMMUIdx mmu_idx,> 
> >  /* Translate a S1 pagetable walk through S2 if needed.  */
> >  static hwaddr S1_ptw_translate(CPUARMState *env, ARMMMUIdx mmu_idx,
> > 
> > -                               hwaddr addr, MemTxAttrs txattrs,
> > +                               hwaddr addr, bool *is_secure,
> > 
> >                                 ARMMMUFaultInfo *fi)
> >  
> >  {
> >  
> >      ARMMMUIdx s2_mmu_idx;
> > 
> > @@ -10415,6 +10415,9 @@ static hwaddr S1_ptw_translate(CPUARMState *env,
> > ARMMMUIdx mmu_idx,> 
> >          int s2prot;
> >          int ret;
> >          ARMCacheAttrs cacheattrs = {};
> > 
> > +        MemTxAttrs txattrs = {};
> > +
> > +        assert(!*is_secure); /* TODO: S-EL2 */
> 
> Are you sure that you don't want to pass in txattrs via pointer instead?

That's possible too, and more like the existing code. Though I thought it 
clearer to pass only a pointer to the secure bit in/out, seen as that's the 
only in/out parameter.

> This change by itself looks questionable.  I guess I'll have to look
> forward to the other patch...


-- 
Rémi Denis-Courmont





reply via email to

[Prev in Thread] Current Thread [Next in Thread]