Re: [PATCH v4 1/2] dt-bindings: ramoops: Inherit reserve memory property

From: Krzysztof Kozlowski
Date: Fri Jan 27 2023 - 15:05:28 EST


On 27/01/2023 17:00, Mukesh Ojha wrote:
> The reserved memory region for ramoops is assumed to be at a
> fixed and known location when read from the devicetree. This
> is not desirable in an environment where it is preferred the
> region to be dynamically allocated at runtime, as opposed to
> being fixed at compile time.
>
> So, update the ramoops binding by inheriting some reserve memory
> property to allocate the ramoops region dynamically.

Where is the update which adds "inheriting"?

>
> Cc: Kees Cook <keescook@xxxxxxxxxxxx>
> Cc: Tony Luck <tony.luck@xxxxxxxxx>
> Cc: Guilherme G. Piccoli <gpiccoli@xxxxxxxxxx>
> Cc: Rob Herring <robh+dt@xxxxxxxxxx>
> Cc: Krzysztof Kozlowski <krzysztof.kozlowski+dt@xxxxxxxxxx>
> Signed-off-by: Mukesh Ojha <quic_mojha@xxxxxxxxxxx>
> ---
> Changes in v4:
> - Addressed comment made by Krzysztof on ramoops node name.
>
> Changes in v3:
> - Fixed yaml error and updated commit text as per comment.
>
> Change in v2:
> - Added this patch as per changes going to be done in patch 3/3
>
> .../bindings/reserved-memory/ramoops.yaml | 34 ++++++++++++++++++++--
> 1 file changed, 32 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/reserved-memory/ramoops.yaml b/Documentation/devicetree/bindings/reserved-memory/ramoops.yaml
> index 0391871..8741626 100644
> --- a/Documentation/devicetree/bindings/reserved-memory/ramoops.yaml
> +++ b/Documentation/devicetree/bindings/reserved-memory/ramoops.yaml
> @@ -10,7 +10,8 @@ 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.
> + subsystem. This region can be reserved both statically or dynamically by
> + using appropriate property in device tree.
>
> 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
> @@ -112,7 +113,13 @@ unevaluatedProperties: false
>
> required:
> - compatible
> - - reg

This is okay, but:

> +
> +oneOf:
> + - required:
> + - reg
> +
> + - required:
> + - size

I now keep wondering - why do you need this?

>
> anyOf:
> - required: [record-size]
> @@ -142,3 +149,26 @@ examples:
> };
> };
> };
> +
> + - |
> + / {
> + compatible = "foo";
> + model = "foo";
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + reserved-memory {
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges;
> +
> + ramoops_region: ramoops {
> + compatible = "ramoops";
> + alloc-ranges = <0x00000000 0xffffffff>;
> + size = <0x0 0x10000>; /* 64kB */
> + console-size = <0x8000>; /* 32kB */
> + record-size = <0x400>; /* 1kB */
> + ecc-size = <16>;
> + };
> + };
> + };

This example does not bring anything new for the ramoops. It's an
example for reserved-memory to show usage with alloc-ranges. There is
nothing useful here in terms of ramoops, so I think it should be dropped.

Best regards,
Krzysztof