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)


Reply via email to