Re: [PATCH] dt-bindings: timer: Add QEMU compatible strings

From: Marc Zyngier
Date: Sat Sep 17 2022 - 14:48:14 EST


On Sat, 17 Sep 2022 17:51:20 +0100,
Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> wrote:
>
> On 16/09/2022 14:30, Jean-Philippe Brucker wrote:
> > QEMU uses both "arm,armv8-timer" and "arm,armv7-timer" as compatible
> > string. Although it is unlikely that any guest relies on this, we can't
> > be certain of that. Therefore, add these to the schema. Clean up the
> > compatible list a little while at it.
> >
> > Signed-off-by: Jean-Philippe Brucker <jean-philippe@xxxxxxxxxx>
>
> I guess you wanted to say QEMU uses "arm,armv8-timer" followed by
> "arm,armv7-timer", because otherwise I would understand it that either
> that or that. Anyway, is it a valid (virtualized) hardware? Is ARMv8
> timer really, really compatible with ARMv7 one?

Yes. There isn't a shred of difference between the two in the earlier
revisions of the ARMv8 architecture, and none of the differences
introduced in later revisions are exposed to DT anyway.

> I don't think we should document invalid setups out-of-tree, just
> because they are there, and something like this was also expressed by Rob:
> https://lore.kernel.org/all/20220518163255.GE3302100-robh@xxxxxxxxxx/

This is, on the contrary, something that is perfectly valid. For
example, a system running a 32bit OS on a 64bit system is perfectly
entitled to expose both (v8 because that's what the HW is, v7 because
that's what the OS is the most likely to understand).

You may find it odd, but that:

- expresses something that is actually required

- is what I, as the original author of this binding, have always
considered valid

- has been valid for a long time (10+ years) before you decided it
suddenly wasn't

I understand that the "DT police" has high standards, but this has
been around for much longer, and it isn't because the conversion to
schema is imperfect that you can rewrite history.

As for the patch, I'd remove the QEMU reference and the deprecation.
This format is perfectly allowed, and is in use in most VMMs out
there. Yes, DT is an ABI.

Thanks,

M.

--
Without deviation from the norm, progress is not possible.