Message ID | 1673611126-13803-1-git-send-email-quic_mojha@quicinc.com |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp233047wrt; Fri, 13 Jan 2023 04:11:53 -0800 (PST) X-Google-Smtp-Source: AMrXdXvp13AruG/r3EFD4W4YB2H4RMWSscvoZjdC8UTEAkBGA1K+qfvkr5C9JjUMbOk142hbIQJz X-Received: by 2002:aa7:910c:0:b0:58a:c289:feb6 with SMTP id 12-20020aa7910c000000b0058ac289feb6mr11364714pfh.17.1673611913644; Fri, 13 Jan 2023 04:11:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1673611913; cv=none; d=google.com; s=arc-20160816; b=AFFXcyJeuNQfNiQUj9QJRUzGJ9ixTFHqk8EJWSn5yXUG7UD62VEzn48Mn9LqMwcnd/ JOJxmZQDN1I5M7QU8M7a58Nvoc25ku1PpN7pt9fEmLoblEFVRRjoZnUwK8MVa6xSev7a 8oJBNoOfgUHhU/Q90lNXAqg5noJfXLdDssjf0VsgNikcZGjbPFbN6KJFYoMN58JDzaEF fiND493PobUFtF9vCiddOTxOS+aM8VRtfgwhA7XSJexwyT4VG5vLUleR+L1VGHLqFXkN ijkrBmBr0MAuFmpgXaa4LfKiCrowiTBLvDD/ukltyLGXfzHb+CE0wzB5Yt3XOcu9faij SFaA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:message-id:date:subject:cc:to:from :dkim-signature; bh=tUm6z8rhz5JYg4o8nm0MDjJ+lFRhmC9Z6zMZeJ23joo=; b=E+G6PBORR14SIlH6Yp8JTdPzGdHgUftpwaK8veDEW9s/C06sPBvJOeTwNcLTkS/ovf F0OPVbo7gjiTbKgH/NQPczfspO2iXKY9f7+o+IyrOBTzVq0kE/KgmrZzdB8pL0XEBLSS bLgs6SsR65bMMnATNBTzT1DDzK5hEenPMGVpcgnjuc2nGTOSZCoGD/Ln+bTgHMFLui7C aCrdpB0mkPiHxzseTsl/Mt+PePI8GxTU6LZghANjJ8+ffEXJsDY5pQVezy9SC5lnX63M lpExxYu8lWH/V+yAmL2oT1jaxQ/x69HnDd5GKt4vXLu+R1zgPnDHRXvnHg8Ap7jULDfn vZVw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=XOjEGu0n; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k4-20020a056a00134400b005766cd2128dsi1949153pfu.269.2023.01.13.04.11.40; Fri, 13 Jan 2023 04:11:53 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=XOjEGu0n; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=quicinc.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241358AbjAMMIk (ORCPT <rfc822;callmefire3@gmail.com> + 99 others); Fri, 13 Jan 2023 07:08:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45174 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233174AbjAMMHe (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Fri, 13 Jan 2023 07:07:34 -0500 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 21138E3; Fri, 13 Jan 2023 03:59:26 -0800 (PST) Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 30DBA0Jp030099; Fri, 13 Jan 2023 11:59:05 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : mime-version : content-type; s=qcppdkim1; bh=tUm6z8rhz5JYg4o8nm0MDjJ+lFRhmC9Z6zMZeJ23joo=; b=XOjEGu0nMYAKblUuw08qsV3r01MGl/7u8E/GR/NotQEIaHrrB3BzruXvA4ynXDqA6MfW 1JM4+DH39zqEiaRFxZVB7lNzk93ILNWz10Xu6qpli+/19jBDSXyVdUwJpmrvZQSDa7ar NmAHF8+7879PVggQKj8SJ8nrSkWyqv14ckuHSz/3K/YEfv8nPGBKD77a/KRcz9zZE3ZM aPdUmfW+3ufzrZijw4fUIImv7AbRM/JwXerlONjUxr6l7kJqHoGW27RX7SZf6sn8/4ti 6rlMbGyGrVFI1X0zHl6fvh3lPtdMKB530sJgSQd/MNbDB41J4wQB/qb7g4catUznBDyK aA== Received: from nasanppmta01.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3n2jghtk79-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 13 Jan 2023 11:59:05 +0000 Received: from nasanex01c.na.qualcomm.com (nasanex01c.na.qualcomm.com [10.45.79.139]) by NASANPPMTA01.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 30DBx4dq025641 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 13 Jan 2023 11:59:04 GMT Received: from hu-mojha-hyd.qualcomm.com (10.80.80.8) by nasanex01c.na.qualcomm.com (10.45.79.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.36; Fri, 13 Jan 2023 03:59:00 -0800 From: Mukesh Ojha <quic_mojha@quicinc.com> To: <keescook@chromium.org>, <gpiccoli@igalia.com>, <corbet@lwn.net>, <tony.luck@intel.com>, <robh+dt@kernel.org>, <krzysztof.kozlowski+dt@linaro.org> CC: <linux-hardening@vger.kernel.org>, <linux-doc@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <devicetree@vger.kernel.org>, Mukesh Ojha <quic_mojha@quicinc.com> Subject: [PATCH v2 1/3] dt-bindings: reserved-memory: ramoops: Update the binding Date: Fri, 13 Jan 2023 17:28:44 +0530 Message-ID: <1673611126-13803-1-git-send-email-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nasanex01c.na.qualcomm.com (10.45.79.139) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: 8eDys0jK4zvAYYr57p5RD86TQAo9kAma X-Proofpoint-ORIG-GUID: 8eDys0jK4zvAYYr57p5RD86TQAo9kAma X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.923,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-13_05,2023-01-13_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 spamscore=0 malwarescore=0 mlxscore=0 suspectscore=0 priorityscore=1501 phishscore=0 clxscore=1011 bulkscore=0 impostorscore=0 mlxlogscore=999 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301130080 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754909285998642876?= X-GMAIL-MSGID: =?utf-8?q?1754909285998642876?= |
Series |
[v2,1/3] dt-bindings: reserved-memory: ramoops: Update the binding
|
|
Commit Message
Mukesh Ojha
Jan. 13, 2023, 11:58 a.m. UTC
Update the ramoops region binding document with details
like region can also be reserved dynamically apart from
reserving it statically.
Signed-off-by: Mukesh Ojha <quic_mojha@quicinc.com>
---
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(-)
Comments
Subject: drop second/last, redundant "binding". The "dt-bindings" prefix is already stating that these are bindings. Your subject says nothing. Everything is "update". On 13/01/2023 12:58, Mukesh Ojha wrote: > Update the ramoops region binding document with details > like region can also be reserved dynamically apart from > reserving it statically. So what exactly can be here reserved dynamically? And what does it mean 'dynamically'? By whom? How is this property of hardware (not OS)? > > Signed-off-by: Mukesh Ojha <quic_mojha@quicinc.com> > --- > 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..54e46e8 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 > + > +oneOf: > + - required: > + - reg > + > + - required: > + - size There is no such property. You cannot require it. > > anyOf: > - required: [record-size] > @@ -142,3 +149,26 @@ examples: > }; > }; > }; > + > + - | > + / { > + compatible = "foo"; > + model = "foo"; > + #address-cells = <2>; > + #size-cells = <2>; > + > + reserved-memory { > + #address-cells = <2>; > + #size-cells = <2>; > + ranges; > + > + ramoops: ramoops_region { Node names should be generic, no underscores in node names. https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation Any reason in naming it differently then existing one? You have there example. > + compatible = "ramoops"; > + alloc-ranges = <0x0 0x00000000 0xffffffff 0xffffffff>; > + size = <0x0 0x10000>; /* 64kB */ > + console-size = <0x8000>; /* 32kB */ > + record-size = <0x400>; /* 1kB */ > + ecc-size = <16>; > + }; > + }; > + }; Best regards, Krzysztof
Hi Krzysztof, On 1/13/2023 5:34 PM, Krzysztof Kozlowski wrote: > Subject: drop second/last, redundant "binding". The "dt-bindings" prefix > is already stating that these are bindings. > > Your subject says nothing. Everything is "update". > I will fix this. > On 13/01/2023 12:58, Mukesh Ojha wrote: >> Update the ramoops region binding document with details >> like region can also be reserved dynamically apart from >> reserving it statically. > > So what exactly can be here reserved dynamically? And what does it mean > 'dynamically'? By whom? How is this property of hardware (not OS)? > Normally, for ramoops, already known physical address range from DDR are mentioned in Device tree which gets reserved from reserved-memory kernel framework(example 1 in this file). By being dynamic, I meant, with this we are letting the framework to get the size from a range of allowable address (<0x0 0x00000000 0xffffffff 0xffffffff>). Let me know, if you need more detail. >> >> Signed-off-by: Mukesh Ojha <quic_mojha@quicinc.com> >> --- >> 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..54e46e8 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 >> + >> +oneOf: >> + - required: >> + - reg >> + >> + - required: >> + - size > > There is no such property. You cannot require it. Forgot to mention this. --- a/Documentation/devicetree/bindings/reserved-memory/ramoops.yaml +++ b/Documentation/devicetree/bindings/reserved-memory/ramoops.yaml @@ -37,6 +37,20 @@ properties: reg: description: region of memory that is preserved between reboots + size: + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 1 + maxItems: 2 + description: > + Length based on parent's \#size-cells. Size in bytes of memory to + reserve. + + alloc-ranges: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: > + Address and Length pairs. Specifies regions of memory that are + acceptable to allocate from. + ecc-size: $ref: /schemas/types.yaml#/definitions/uint32 description: enables ECC support and specifies ECC buffer size in bytes @@ -119,6 +133,7 @@ oneOf: - reg - required: + - alloc-ranges - size > >> >> anyOf: >> - required: [record-size] >> @@ -142,3 +149,26 @@ examples: >> }; >> }; >> }; >> + >> + - | >> + / { >> + compatible = "foo"; >> + model = "foo"; >> + #address-cells = <2>; >> + #size-cells = <2>; >> + >> + reserved-memory { >> + #address-cells = <2>; >> + #size-cells = <2>; >> + ranges; >> + >> + ramoops: ramoops_region { > > Node names should be generic, no underscores in node names. > https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation > Thanks. > Any reason in naming it differently then existing one? You have there > example. ramoops@bfdf0000 is not valid after dynamic allocation of memory. Probably, will mention it as ramoops_region: ramoops { ?? -Mukesh > >> + compatible = "ramoops"; >> + alloc-ranges = <0x0 0x00000000 0xffffffff 0xffffffff>; >> + size = <0x0 0x10000>; /* 64kB */ >> + console-size = <0x8000>; /* 32kB */ >> + record-size = <0x400>; /* 1kB */ >> + ecc-size = <16>; >> + }; >> + }; >> + }; > > Best regards, > Krzysztof >
On Fri, 13 Jan 2023 17:28:44 +0530, Mukesh Ojha wrote: > Update the ramoops region binding document with details > like region can also be reserved dynamically apart from > reserving it statically. > > Signed-off-by: Mukesh Ojha <quic_mojha@quicinc.com> > --- > 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(-) > My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check' on your patch (DT_CHECKER_FLAGS is new in v5.13): yamllint warnings/errors: dtschema/dtc warnings/errors: Documentation/devicetree/bindings/reserved-memory/ramoops.example.dts:17.13-40: Warning (reg_format): /reserved-memory/ramoops@bfdf0000:reg: property has invalid length (8 bytes) (#address-cells == 2, #size-cells == 2) Documentation/devicetree/bindings/reserved-memory/ramoops.example.dtb: Warning (pci_device_reg): Failed prerequisite 'reg_format' Documentation/devicetree/bindings/reserved-memory/ramoops.example.dtb: Warning (pci_device_bus_num): Failed prerequisite 'reg_format' Documentation/devicetree/bindings/reserved-memory/ramoops.example.dtb: Warning (simple_bus_reg): Failed prerequisite 'reg_format' Documentation/devicetree/bindings/reserved-memory/ramoops.example.dtb: Warning (i2c_bus_reg): Failed prerequisite 'reg_format' Documentation/devicetree/bindings/reserved-memory/ramoops.example.dtb: Warning (spi_bus_reg): Failed prerequisite 'reg_format' /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/reserved-memory/ramoops.example.dtb: reserved-memory: ramoops@bfdf0000:reg:0: [3219062784, 65536] is too short From schema: /usr/local/lib/python3.10/dist-packages/dtschema/schemas/reg.yaml doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/1673611126-13803-1-git-send-email-quic_mojha@quicinc.com The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.
Hi, On 1/13/2023 5:34 PM, Krzysztof Kozlowski wrote: > Subject: drop second/last, redundant "binding". The "dt-bindings" prefix > is already stating that these are bindings. > > Your subject says nothing. Everything is "update". > > On 13/01/2023 12:58, Mukesh Ojha wrote: >> Update the ramoops region binding document with details >> like region can also be reserved dynamically apart from >> reserving it statically. > > So what exactly can be here reserved dynamically? And what does it mean > 'dynamically'? By whom? How is this property of hardware (not OS)? > >> >> Signed-off-by: Mukesh Ojha <quic_mojha@quicinc.com> >> --- >> 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..54e46e8 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 >> + >> +oneOf: >> + - required: >> + - reg >> + >> + - required: >> + - size > > There is no such property. You cannot require it. I was thinking, since this size is part reserved-memory.yaml and we have allOf: - $ref: "reserved-memory.yaml" Is your comment still applies? -Mukesh > >> >> anyOf: >> - required: [record-size] >> @@ -142,3 +149,26 @@ examples: >> }; >> }; >> }; >> + >> + - | >> + / { >> + compatible = "foo"; >> + model = "foo"; >> + #address-cells = <2>; >> + #size-cells = <2>; >> + >> + reserved-memory { >> + #address-cells = <2>; >> + #size-cells = <2>; >> + ranges; >> + >> + ramoops: ramoops_region { > > Node names should be generic, no underscores in node names. > https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation > > Any reason in naming it differently then existing one? You have there > example. > >> + compatible = "ramoops"; >> + alloc-ranges = <0x0 0x00000000 0xffffffff 0xffffffff>; >> + size = <0x0 0x10000>; /* 64kB */ >> + console-size = <0x8000>; /* 32kB */ >> + record-size = <0x400>; /* 1kB */ >> + ecc-size = <16>; >> + }; >> + }; >> + }; > > Best regards, > Krzysztof >
On 27/01/2023 13:29, Mukesh Ojha wrote: >>> +oneOf: >>> + - required: >>> + - reg >>> + >>> + - required: >>> + - size >> >> There is no such property. You cannot require it. > > I was thinking, since this size is part reserved-memory.yaml and > we have > > allOf: > - $ref: "reserved-memory.yaml" > > Is your comment still applies? Ah, you are right. It's ok. Best regards, Krzysztof
diff --git a/Documentation/devicetree/bindings/reserved-memory/ramoops.yaml b/Documentation/devicetree/bindings/reserved-memory/ramoops.yaml index 0391871..54e46e8 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 + +oneOf: + - required: + - reg + + - required: + - size anyOf: - required: [record-size] @@ -142,3 +149,26 @@ examples: }; }; }; + + - | + / { + compatible = "foo"; + model = "foo"; + #address-cells = <2>; + #size-cells = <2>; + + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + + ramoops: ramoops_region { + compatible = "ramoops"; + alloc-ranges = <0x0 0x00000000 0xffffffff 0xffffffff>; + size = <0x0 0x10000>; /* 64kB */ + console-size = <0x8000>; /* 32kB */ + record-size = <0x400>; /* 1kB */ + ecc-size = <16>; + }; + }; + };