Nathan Chen <[email protected]> writes:
> On 3/19/2026 5:20 AM, Markus Armbruster wrote:
[...]
>>> diff --git a/hw/arm/smmuv3.c b/hw/arm/smmuv3.c
>>> index 79018f8d66..c67819d6f2 100644
>>> --- a/hw/arm/smmuv3.c
>>> +++ b/hw/arm/smmuv3.c
>>> @@ -1984,6 +1984,10 @@ static bool smmu_validate_property(SMMUv3State *s,
>>> Error **errp)
>>> error_setg(errp, "ssidsize auto mode is not supported");
>>> return false;
>>> }
>>> + if (s->oas != OAS_MODE_44 && s->oas != OAS_MODE_48) {
>>> + error_setg(errp, "OAS can only be set to 44 or 48 bits");
>>> + return false;
>>> + }
>>
>> So, OasMode values other than 44 and 48 are currently useless. Correct?
>
> Yes, in an earlier version we had only implemented auto, 44, and 48 for
> OasMode, but we included the other OasMode values according to the SMMUv3
> spec after receiving feedback to do so.
I'm not sure that's a good idea. Not an objection, mind. I'm just
giving you something to consider.
If we define exactly the values that work, query-qmp-schema can tell
management applications which values work. Whether that's useful I
can't say.
It falls apart as soon as different devices implement different values.
Do we expect that to happen?
If we stick to defining all values, maybe rephrase the error message to
express it's an implementation restriction? Entirely up to you.