From: Marc Zyngier <maz@kernel.org>
To: sashiko-reviews@lists.linux.dev
Cc: robh@kernel.org, krzk+dt@kernel.org, devicetree@vger.kernel.org,
conor+dt@kernel.org
Subject: Re: [PATCH v2 04/17] dt-bindings: timer: arm,arch_timer: Fix requirements for interrupt description
Date: Fri, 15 May 2026 10:18:28 +0100 [thread overview]
Message-ID: <868q9lxc7v.wl-maz@kernel.org> (raw)
In-Reply-To: <20260514213713.5D47FC2BCB3@smtp.kernel.org>
On Thu, 14 May 2026 22:37:07 +0100,
sashiko-bot@kernel.org wrote:
>
> Thank you for your contribution! Sashiko AI review found 3 potential issue(s) to consider:
> - [Critical] The schema permits omitting the EL3 secure timer but fails to make `interrupt-names` a required property, which allows configurations that fatally misroute interrupts and hang the system.
> - [Medium] The static `items` array with `minItems: 2` structurally fails to enforce the stated architectural rules and causes positional misalignment for valid configurations.
> - [Medium] The commit incorrectly asserts that the EL1 virtual timer IRQ is 'always required', which misrepresents ARMv7 hardware and contradicts existing device trees.
> --
>
> commit 01733bbba71a7bef01e5c0820740d8ab21f684f8
> Author: Marc Zyngier <maz@kernel.org>
>
> dt-bindings: timer: arm,arch_timer: Fix requirements for interrupt description
>
> This commit updates the arm,arch_timer binding to clarify the requirements
> for timer interrupts based on the implemented architecture. It raises the
> minimum number of interrupts to two and uses architectural terminology.
>
> > Follow the architecture by making it explicit that:
> > - the EL1 secure timer irq is required if EL3 is implemented
> > - the EL1 physical timer irq is always required
> > - the EL1 virtual timer irq is always required
>
> Is this description architecturally accurate for ARMv7?
>
> In ARMv7, Virtualization Extensions are optional, so hardware lacking these
> extensions does not implement a virtual timer. Existing device trees, such
> as arch/arm/boot/dts/rockchip/rv1108.dtsi, accurately reflect this by
> providing exactly two physical interrupts (secure and non-secure) and
> completely omitting the virtual timer.
This *is* valid for all known implementations of ARMv7, as the
architected timer is present only on implementations that have the
virtualisation extensions.
> Establishing the EL1 virtual timer as always required seems to contradict
> these valid hardware configurations.
That's because that DT was broken the first place.
>
> > diff --git a/Documentation/devicetree/bindings/timer/arm,arch_timer.yaml b/Documentation/devicetree/bindings/timer/arm,arch_timer.yaml
> > --- a/Documentation/devicetree/bindings/timer/arm,arch_timer.yaml
> > +++ b/Documentation/devicetree/bindings/timer/arm,arch_timer.yaml
>
> [ ... ]
>
> > @@ -33,13 +28,13 @@ properties:
> > - const: arm,armv7-timer
> >
> > interrupts:
> > - minItems: 1
> > + minItems: 2
> > items:
> > - - description: secure timer irq
> > - - description: non-secure timer irq
> > - - description: virtual timer irq
> > - - description: hypervisor timer irq
> > - - description: hypervisor virtual timer irq
> > + - description: EL1 secure physical timer irq, if EL3 is implemented
> > + - description: EL1 non-secure physical timer irq
> > + - description: EL1 virtual timer irq
>
> Will this static array structure cause positional misalignment and fail to
> enforce the stated requirements?
It always has been a problem, and this is worked around on the sole
platform affected by this (APM XGene) by having a dummy interrupt for
the secure timer.
We could add a separate requirement that interrupt names must be
provided if secure is not implemented, but I have no idea how to
specify this.
M.
--
Without deviation from the norm, progress is not possible.
next prev parent reply other threads:[~2026-05-15 9:18 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-14 15:09 [PATCH v2 00/17] arm64: Use EL2 virtual timer when running VHE Marc Zyngier
2026-05-14 15:09 ` [PATCH v2 01/17] ACPI: GTDT: Account for GTDTv3 size when walking the platform timer descriptors Marc Zyngier
2026-05-14 19:54 ` sashiko-bot
2026-05-15 9:51 ` Sudeep Holla
2026-05-15 11:23 ` Marc Zyngier
2026-05-15 12:52 ` Sudeep Holla
2026-05-14 15:09 ` [PATCH v2 02/17] ACPI: GTDT: Parse information related to the EL2 virtual timer Marc Zyngier
2026-05-14 15:09 ` [PATCH v2 03/17] clocksource/drivers/arm_arch_timer: Default to EL2 virtual timer when running VHE Marc Zyngier
2026-05-14 21:23 ` sashiko-bot
2026-05-15 8:30 ` Marc Zyngier
2026-05-14 15:09 ` [PATCH v2 04/17] dt-bindings: timer: arm,arch_timer: Fix requirements for interrupt description Marc Zyngier
2026-05-14 21:37 ` sashiko-bot
2026-05-15 9:18 ` Marc Zyngier [this message]
2026-05-14 15:09 ` [PATCH v2 05/17] arm64: dts: allwinner: Add EL2 virtual timer interrupt Marc Zyngier
2026-05-14 15:09 ` [PATCH v2 06/17] arm64: dts: amlogic: " Marc Zyngier
2026-05-14 15:09 ` [PATCH v2 07/17] arm64: dts: bst: " Marc Zyngier
2026-05-14 15:09 ` [PATCH v2 08/17] arm64: dts: exynos: " Marc Zyngier
2026-05-14 15:09 ` [PATCH v2 09/17] arm64: dts: freescale: " Marc Zyngier
2026-05-14 15:09 ` [PATCH v2 10/17] arm64: dts: intel: " Marc Zyngier
2026-05-14 15:09 ` [PATCH v2 11/17] arm64: dts: mediatek: " Marc Zyngier
2026-05-14 15:09 ` [PATCH v2 12/17] arm64: dts: nvidia: " Marc Zyngier
2026-05-14 15:09 ` [PATCH v2 13/17] arm64: dts: qcom: " Marc Zyngier
2026-05-14 23:06 ` sashiko-bot
2026-05-15 8:24 ` Marc Zyngier
2026-05-14 15:09 ` [PATCH v2 14/17] arm64: dts: realtek: " Marc Zyngier
2026-05-14 23:18 ` sashiko-bot
2026-05-15 8:23 ` Marc Zyngier
2026-05-14 15:09 ` [PATCH v2 15/17] arm64: dts: rockchip: " Marc Zyngier
2026-05-14 15:09 ` [PATCH v2 16/17] arm64: dts: sprd: " Marc Zyngier
2026-05-14 15:09 ` [PATCH v2 17/17] arm64: dts: xilinx: " Marc Zyngier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=868q9lxc7v.wl-maz@kernel.org \
--to=maz@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=krzk+dt@kernel.org \
--cc=robh@kernel.org \
--cc=sashiko-reviews@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.