devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Rob Herring <robh+dt@kernel.org>
To: David Heidelberg <david@ixit.cz>
Cc: Kees Cook <keescook@chromium.org>,
	Anton Vorontsov <anton@enomsg.org>,
	Colin Cross <ccross@android.com>, Tony Luck <tony.luck@intel.com>,
	devicetree@vger.kernel.org,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	~okias/devicetree@lists.sr.ht
Subject: Re: [PATCH v2 4/4] dt-bindings: reserved-memory: ramoops: Convert txt bindings to yaml
Date: Thu, 14 Oct 2021 10:19:50 -0500	[thread overview]
Message-ID: <CAL_JsqLFsyUPd+yMB2gCbT2zc2BjeHwrdSF0r7uXV5g2EtJeZQ@mail.gmail.com> (raw)
In-Reply-To: <20211012181500.5309-4-david@ixit.cz>

On Tue, Oct 12, 2021 at 3:39 PM David Heidelberg <david@ixit.cz> wrote:
>
> Convert ramoops driver to the YAML syntax.

I don't have the rest of the series except patch 1 and neither does
lore it seems. The dependency for this is in my tree.

> v2:
>  - inherit reserved-memory properties
>  - switch to unevaluatedProperties
>
> Signed-off-by: David Heidelberg <david@ixit.cz>
> ---
>  .../bindings/reserved-memory/ramoops.txt      |  66 ---------
>  .../bindings/reserved-memory/ramoops.yaml     | 129 ++++++++++++++++++
>  2 files changed, 129 insertions(+), 66 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/reserved-memory/ramoops.txt
>  create mode 100644 Documentation/devicetree/bindings/reserved-memory/ramoops.yaml
>
> diff --git a/Documentation/devicetree/bindings/reserved-memory/ramoops.txt b/Documentation/devicetree/bindings/reserved-memory/ramoops.txt
> deleted file mode 100644
> index b571ef6dab0f..000000000000
> --- a/Documentation/devicetree/bindings/reserved-memory/ramoops.txt
> +++ /dev/null
> @@ -1,66 +0,0 @@
> -Ramoops oops/panic logger
> -=========================
> -
> -ramoops provides persistent RAM storage for oops and panics, so they can be
> -recovered after a reboot. This is a child-node of "/reserved-memory", and
> -is named "ramoops" after the backend, rather than "pstore" which is the
> -subsystem.
> -
> -Parts of this storage may be set aside for other persistent log buffers, such
> -as kernel log messages, or for optional ECC error-correction data.  The total
> -size of these optional buffers must fit in the reserved region.
> -
> -Any remaining space will be used for a circular buffer of oops and panic
> -records.  These records have a configurable size, with a size of 0 indicating
> -that they should be disabled.
> -
> -At least one of "record-size", "console-size", "ftrace-size", or "pmsg-size"
> -must be set non-zero, but are otherwise optional as listed below.
> -
> -
> -Required properties:
> -
> -- compatible: must be "ramoops"
> -
> -- reg: region of memory that is preserved between reboots
> -
> -
> -Optional properties:
> -
> -- ecc-size: enables ECC support and specifies ECC buffer size in bytes
> -  (defaults to 0: no ECC)
> -
> -- record-size: maximum size in bytes of each kmsg dump.
> -  (defaults to 0: disabled)
> -
> -- console-size: size in bytes of log buffer reserved for kernel messages
> -  (defaults to 0: disabled)
> -
> -- ftrace-size: size in bytes of log buffer reserved for function tracing and
> -  profiling (defaults to 0: disabled)
> -
> -- pmsg-size: size in bytes of log buffer reserved for userspace messages
> -  (defaults to 0: disabled)
> -
> -- mem-type: if present, sets the type of mapping is to be used to map the
> -  reserved region. mem-type: 0 = write-combined (default), 1 = unbuffered,
> -  2 = cached.
> -
> -- unbuffered: deprecated, use mem_type instead. If present, and mem_type is
> -  not specified, it is equivalent to mem_type = 1 and uses unbuffered mappings
> -  to map the reserved region (defaults to buffered mappings mem_type = 0). If
> -  both are specified -- "mem_type" overrides "unbuffered".
> -
> -- max-reason: if present, sets maximum type of kmsg dump reasons to store
> -  (defaults to 2: log Oopses and Panics). This can be set to INT_MAX to
> -  store all kmsg dumps. See include/linux/kmsg_dump.h KMSG_DUMP_* for other
> -  kmsg dump reason values. Setting this to 0 (KMSG_DUMP_UNDEF), means the
> -  reason filtering will be controlled by the printk.always_kmsg_dump boot
> -  param: if unset, it will be KMSG_DUMP_OOPS, otherwise KMSG_DUMP_MAX.
> -
> -- no-dump-oops: deprecated, use max_reason instead. If present, and
> -  max_reason is not specified, it is equivalent to max_reason = 1
> -  (KMSG_DUMP_PANIC).
> -
> -- flags: if present, pass ramoops behavioral flags (defaults to 0,
> -  see include/linux/pstore_ram.h RAMOOPS_FLAG_* for flag values).
> diff --git a/Documentation/devicetree/bindings/reserved-memory/ramoops.yaml b/Documentation/devicetree/bindings/reserved-memory/ramoops.yaml
> new file mode 100644
> index 000000000000..a21a27e84a6d
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/reserved-memory/ramoops.yaml
> @@ -0,0 +1,129 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/reserved-memory/ramoops.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> +
> +title: Ramoops oops/panic logger
> +
> +description: |
> +  ramoops provides persistent RAM storage for oops and panics, so they can be
> +  recovered after a reboot. This is a child-node of "/reserved-memory", and
> +  is named "ramoops" after the backend, rather than "pstore" which is the
> +  subsystem.
> +
> +  Parts of this storage may be set aside for other persistent log buffers, such
> +  as kernel log messages, or for optional ECC error-correction data.  The total
> +  size of these optional buffers must fit in the reserved region.
> +
> +  Any remaining space will be used for a circular buffer of oops and panic
> +  records.  These records have a configurable size, with a size of 0 indicating
> +  that they should be disabled.
> +
> +  At least one of "record-size", "console-size", "ftrace-size", or "pmsg-size"
> +  must be set non-zero, but are otherwise optional as listed below.
> +
> +maintainers:
> +  - Kees Cook <keescook@chromium.org>
> +
> +allOf:
> +  - $ref: "reserved-memory.yaml"
> +
> +properties:
> +  compatible:
> +    const: ramoops
> +
> +  reg:
> +    description: region of memory that is preserved between reboots
> +
> +  ecc-size:

These all need a type reference.

> +    description: enables ECC support and specifies ECC buffer size in bytes
> +    default: 0 # no ECC
> +
> +  record-size:
> +    description: maximum size in bytes of each kmsg dump
> +    default: 0
> +
> +  console-size:
> +    description: size in bytes of log buffer reserved for kernel messages
> +    default: 0
> +
> +  ftrace-size:
> +    description: size in bytes of log buffer reserved for function tracing and profiling
> +    default: 0
> +
> +  pmsg-size:
> +    description: size in bytes of log buffer reserved for userspace messages
> +    default: 0
> +
> +  mem-type:
> +    description: if present, sets the type of mapping is to be used to map the reserved region.
> +    default: 0
> +    enum:

s/enum/oneOf/

Or drop 'const' below and make the descriptions comments.

> +      - const: 0
> +        description: write-combined
> +      - const: 1
> +        description: unbuffered
> +      - const: 2
> +        description: cached
> +
> +  unbuffered:
> +    deprecated: true
> +    description: |
> +      use mem_type instead. If present, and mem_type is not specified,
> +      it is equivalent to mem_type = 1 and uses unbuffered mappings to map
> +      the reserved region (defaults to buffered mappings mem_type = 0).
> +      If both are specified -- "mem_type" overrides "unbuffered".
> +
> +  max-reason:
> +    default: 2 # log oopses and panics
> +    description: |
> +      If present, sets maximum type of kmsg dump reasons to store.
> +      This can be set to INT_MAX to store all kmsg dumps.

maximum: 0x7fffffff

> +      See include/linux/kmsg_dump.h KMSG_DUMP_* for other
> +      kmsg dump reason values. Setting this to 0 (KMSG_DUMP_UNDEF), means the
> +      reason filtering will be controlled by the printk.always_kmsg_dump boot
> +
> +  param:
> +    description: if unset, it will be KMSG_DUMP_OOPS, otherwise KMSG_DUMP_MAX.

Define names are nice, but not helpful for defining constraints.

> +
> +  no-dump-oops:
> +    deprecated: true
> +    description: |
> +      Use max_reason instead. If present, and max_reason is not specified,
> +      it is equivalent to max_reason = 1 (KMSG_DUMP_PANIC).
> +
> +  flags:
> +    default: 0
> +    description: |
> +      If present, pass ramoops behavioral flags
> +      (see include/linux/pstore_ram.h RAMOOPS_FLAG_* for flag values).
> +
> +unevaluatedProperties: false
> +
> +required:
> +  - compatible
> +  - reg
> +
> +anyOf:
> +  - required: [record-size]
> +  - required: [console-size]
> +  - required: [ftrace-size]
> +  - required: [pmsg-size]
> +
> +examples:
> +  - |

Add '/ { ' so the example is created at the root node.

> +    reserved-memory {
> +      #address-cells = <1>;
> +      #size-cells = <1>;
> +      ranges;
> +
> +      ramoops@bfdf0000 {
> +        compatible = "ramoops";
> +        reg = <0xbfdf0000 0x10000>; /* 64kB */
> +        console-size = <0x8000>;    /* 32kB */
> +        record-size = <0x400>;      /*  1kB */
> +        ecc-size = <16>;
> +      };
> +    };
> +
> --
> 2.33.0
>

      reply	other threads:[~2021-10-14 15:21 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-12 18:14 [PATCH v2 1/4] arm64: dts: qcom: SMxxxx: drop msg-size property from ramoops David Heidelberg
2021-10-12 18:14 ` [PATCH v2 2/4] arm64: dts: qcom: sm6350: fix typo in ecc-size property David Heidelberg
2021-10-12 18:14 ` [PATCH v2 3/4] arm64: dts: qcom: sm6350: remove compatible leftover from ramoops node David Heidelberg
2021-10-12 18:15 ` [PATCH v2 4/4] dt-bindings: reserved-memory: ramoops: Convert txt bindings to yaml David Heidelberg
2021-10-14 15:19   ` Rob Herring [this message]

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=CAL_JsqLFsyUPd+yMB2gCbT2zc2BjeHwrdSF0r7uXV5g2EtJeZQ@mail.gmail.com \
    --to=robh+dt@kernel.org \
    --cc=anton@enomsg.org \
    --cc=ccross@android.com \
    --cc=david@ixit.cz \
    --cc=devicetree@vger.kernel.org \
    --cc=keescook@chromium.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tony.luck@intel.com \
    --cc=~okias/devicetree@lists.sr.ht \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).