From: Krzysztof Kozlowski <krzk@kernel.org>
To: Ahmed Tiba <ahmed.tiba@arm.com>,
linux-acpi@vger.kernel.org, devicetree@vger.kernel.org
Cc: tony.luck@intel.com, bp@alien8.de, robh@kernel.org,
krzk+dt@kernel.org, conor+dt@kernel.org, catalin.marinas@arm.com,
will@kernel.org, linux-arm-kernel@lists.infradead.org,
rafael@kernel.org, linux-doc@vger.kernel.org,
Dmitry.Lamerov@arm.com, Michael.Zhao2@arm.com
Subject: Re: [PATCH 10/12] dt-bindings: ras: document estatus provider
Date: Wed, 17 Dec 2025 12:41:23 +0100 [thread overview]
Message-ID: <cd04e23a-9523-4d25-8240-29a0dffa0e75@kernel.org> (raw)
In-Reply-To: <20251217112845.1814119-11-ahmed.tiba@arm.com>
On 17/12/2025 12:28, Ahmed Tiba wrote:
> Add a binding for firmware-first CPER providers described via
> DeviceTree. It covers the shared status block, optional acknowledgment
> registers, interrupt versus polling modes and the SEA notification
> flag so non-ACPI platforms can describe their error sources.
>
> Signed-off-by: Ahmed Tiba <ahmed.tiba@arm.com>
> ---
> .../devicetree/bindings/ras/arm,ras-ffh.yaml | 95 +++++++++++++++++++
> MAINTAINERS | 1 +
> 2 files changed, 96 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/ras/arm,ras-ffh.yaml
>
> diff --git a/Documentation/devicetree/bindings/ras/arm,ras-ffh.yaml b/Documentation/devicetree/bindings/ras/arm,ras-ffh.yaml
> new file mode 100644
> index 000000000000..0d2acbf8e8a8
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/ras/arm,ras-ffh.yaml
What is ras? There is no such directory so some description would be
useful. Usually you do not get your own directory per binding.
> @@ -0,0 +1,95 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/ras/arm,ras-ffh.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Arm Firmware-First Handler (FFH) CPER provider
> +
> +maintainers:
> + - Ahmed Tiba <ahmed.tiba@arm.com>
> +
> +description: |
> + Some Arm platforms describe a firmware-first error handler that exposes a
> + Common Platform Error Record (CPER) buffer directly via DeviceTree. The OS
> + maps the buffer to consume the error records, and firmware signals that a new
> + record is ready either by asserting an interrupt or by relying on a periodic
> + poll. This binding describes the buffer and the associated notification
Do not describe what the binding does. Describe the hardware or firmware.
> + signal. If firmware delivers the error via Synchronous External Abort (SEA),
> + the optional sea-notify flag marks the source accordingly.
> +
> +properties:
> + compatible:
> + const: arm,ras-ffh
Again ras - what's that? Your patch or binding must explain that.
> +
> + reg:
> + minItems: 1
Why is this flexible?
> + items:
> + - description: CPER status block exposed by firmware
> + - description:
> + Optional 32- or 64-bit acknowledgment register. Firmware watches this
> + register and expects bit 0 to be written to 1 once the OS consumes the
> + status buffer so it can reuse the record.
> +
> + reg-names:
> + items:
> + - const: status
> + - const: ack
Does not match reg.
> +
> + interrupts:
> + maxItems: 1
> + description:
> + Optional interrupt used to signal that a new status record is ready. If
> + omitted, the OS relies on the polling interval property.
What OS is doing should not really matter. Either you have the interrupt
or not.
> +
> + poll-interval:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + minimum: 1
> + description:
> + Optional polling interval, in milliseconds, for platforms that cannot
> + route an interrupt.
That's OS policy, not suitable for binding.
> +
> + arm,sea-notify:
> + type: boolean
> + description:
> + Set if the platform delivers these errors as Synchronous External Aborts.
This is implied by the compatible, no?
> +
> +required:
> + - compatible
> + - reg
> +
> +allOf:
> + - if:
> + properties:
> + poll-interval: false
> + then:
> + required:
> + - interrupts
> + - if:
> + properties:
> + interrupts: false
> + then:
> + required:
> + - poll-interval
> + - if:
> + properties:
> + reg:
> + minItems: 2
> + then:
> + required:
> + - reg-names
Drop all this.
> +
> +unevaluatedProperties: false
I do not see any schema referenced.
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> + ras-ffh@fe800000 {
Node names should be generic. See also an explanation and list of
examples (not exhaustive) in DT specification:
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
If you cannot find a name matching your device, please check in kernel
sources for similar cases or you can grow the spec (via pull request to
DT spec repo).
> + compatible = "arm,ras-ffh";
> + reg = <0xfe800000 0x1000>,
> + <0xfe810000 0x4>;
> + reg-names = "status", "ack";
> + interrupts = <0 32 IRQ_TYPE_LEVEL_HIGH>;
Use proper defines.
Best regards,
Krzysztof
next prev parent reply other threads:[~2025-12-17 11:41 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-17 11:28 [PATCH 00/12] ras: share firmware-first estatus handling Ahmed Tiba
2025-12-17 11:28 ` [PATCH 01/12] ras: add estatus core interfaces Ahmed Tiba
2025-12-17 11:28 ` [PATCH 02/12] ras: add estatus core implementation Ahmed Tiba
2025-12-18 15:42 ` Mauro Carvalho Chehab
2025-12-19 14:35 ` Ahmed Tiba
2025-12-21 19:31 ` kernel test robot
2025-12-17 11:28 ` [PATCH 03/12] ras: add estatus vendor handling and processing Ahmed Tiba
2025-12-18 16:04 ` Mauro Carvalho Chehab
2025-12-19 14:49 ` Ahmed Tiba
2025-12-19 15:30 ` Mauro Carvalho Chehab
2025-12-19 18:11 ` Ahmed Tiba
2025-12-22 8:13 ` Mauro Carvalho Chehab
2025-12-29 15:01 ` Ahmed Tiba
2025-12-21 23:39 ` kernel test robot
2025-12-17 11:28 ` [PATCH 04/12] ras: add estatus queuing and IRQ/NMI handling Ahmed Tiba
2025-12-17 11:28 ` [PATCH 05/12] ras: flesh out estatus processing core Ahmed Tiba
2025-12-17 11:28 ` [PATCH 06/12] efi/cper: adopt estatus iteration helpers Ahmed Tiba
2025-12-17 11:28 ` [PATCH 07/12] ghes: prepare estatus hooks for shared handling Ahmed Tiba
2025-12-17 11:28 ` [PATCH 08/12] ghes: add estatus provider ops Ahmed Tiba
2025-12-17 11:28 ` [PATCH 09/12] ghes: route error handling through shared estatus core Ahmed Tiba
2025-12-17 11:28 ` [PATCH 10/12] dt-bindings: ras: document estatus provider Ahmed Tiba
2025-12-17 11:41 ` Krzysztof Kozlowski [this message]
2025-12-17 17:49 ` Ahmed Tiba
2025-12-18 6:48 ` Krzysztof Kozlowski
2025-12-18 10:22 ` Ahmed Tiba
2025-12-18 10:31 ` Ahmed Tiba
2025-12-19 9:53 ` Krzysztof Kozlowski
2025-12-19 10:37 ` Ahmed Tiba
2025-12-19 10:47 ` Ahmed Tiba
2025-12-17 11:28 ` [PATCH 11/12] ras: add DeviceTree estatus provider driver Ahmed Tiba
2025-12-18 12:13 ` Will Deacon
2025-12-18 13:42 ` Ahmed Tiba
2025-12-18 15:19 ` Will Deacon
2025-12-19 9:02 ` Ahmed Tiba
2025-12-19 13:00 ` Will Deacon
2025-12-19 17:21 ` Ahmed Tiba
2026-01-05 21:09 ` Will Deacon
2025-12-17 11:28 ` [PATCH 12/12] doc: ras: describe firmware-first estatus flow Ahmed Tiba
2025-12-21 1:35 ` [PATCH 00/12] ras: share firmware-first estatus handling Borislav Petkov
2025-12-29 11:54 ` Ahmed Tiba
2026-01-14 14:15 ` Borislav Petkov
2026-01-15 12:17 ` Ahmed Tiba
2026-01-20 11:15 ` Borislav Petkov
2026-01-26 10:58 ` Ahmed Tiba
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=cd04e23a-9523-4d25-8240-29a0dffa0e75@kernel.org \
--to=krzk@kernel.org \
--cc=Dmitry.Lamerov@arm.com \
--cc=Michael.Zhao2@arm.com \
--cc=ahmed.tiba@arm.com \
--cc=bp@alien8.de \
--cc=catalin.marinas@arm.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-doc@vger.kernel.org \
--cc=rafael@kernel.org \
--cc=robh@kernel.org \
--cc=tony.luck@intel.com \
--cc=will@kernel.org \
/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.