Hi Tao, On 8/13/26 6:26 PM, Tao Tang wrote: > Temporarily: > - enable S_IDR1.SEL2, > - change AIDR to 0x2 to indicate SMMUv3.2, > - use smaller SID size and Cmd/Evt queue size. Each of those changes shall be carefully justified.
Weren't there any assumpion in previous patches that we supported 3.2. tbh I did not notice you changed it in the last patch. wrt that change we would need to be careful the 3.2 does not require us to implement new features besides secure stuff. Thanks Eric > > Signed-off-by: Tao Tang <[email protected]> > --- > hw/arm/smmuv3.c | 3 ++- > include/hw/arm/smmuv3-common.h | 6 +++--- > 2 files changed, 5 insertions(+), 4 deletions(-) > > diff --git a/hw/arm/smmuv3.c b/hw/arm/smmuv3.c > index 8e1de94fd17..19e080b6d25 100644 > --- a/hw/arm/smmuv3.c > +++ b/hw/arm/smmuv3.c > @@ -350,6 +350,7 @@ static void smmuv3_init_id_regs(SMMUv3State *s) > SMMU_IDR1_SIDSIZE); > sbank->idr[1] = FIELD_DP32(sbank->idr[1], S_IDR1, SECURE_IMPL, > s->secure_impl == ON_OFF_AUTO_ON); > + sbank->idr[1] = FIELD_DP32(sbank->idr[1], S_IDR1, SEL2, 1); > smmuv3_accel_idr_override(s); > } > > @@ -400,7 +401,7 @@ static void smmuv3_reset(SMMUv3State *s) > sbank->gerrorn = 0; > sbank->gbpa = SMMU_GBPA_RESET_VAL; > > - s->aidr = 0x1; > + s->aidr = 0x2; /* SMMUv3.2 */ > s->statusr = 0; > } > > diff --git a/include/hw/arm/smmuv3-common.h b/include/hw/arm/smmuv3-common.h > index ec442a85586..1afaece3df7 100644 > --- a/include/hw/arm/smmuv3-common.h > +++ b/include/hw/arm/smmuv3-common.h > @@ -311,9 +311,9 @@ REG32(IDR1, 0x4) > FIELD(IDR1, TABLES_PRESET, 30, 1) > FIELD(IDR1, ECMDQ, 31, 1) > > -#define SMMU_IDR1_SIDSIZE 16 > -#define SMMU_CMDQS 19 > -#define SMMU_EVENTQS 19 > +#define SMMU_IDR1_SIDSIZE 6 > +#define SMMU_CMDQS 10 > +#define SMMU_EVENTQS 10 > > REG32(IDR2, 0x8) > FIELD(IDR2, BA_VATOS, 0, 10)
