From patchwork Fri Jan 27 16:00:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mukesh Ojha X-Patchwork-Id: 49476 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp909729wrn; Fri, 27 Jan 2023 08:04:15 -0800 (PST) X-Google-Smtp-Source: AK7set+FkvhS7txcZBnGGpo5O7QmijxiKRWNL85eqqsqz3cv58Cj811JjvZFQFYUD0aoQY4myBjB X-Received: by 2002:a17:906:eca1:b0:87e:a34b:9e2b with SMTP id qh1-20020a170906eca100b0087ea34b9e2bmr756458ejb.28.1674835455662; Fri, 27 Jan 2023 08:04:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1674835455; cv=none; d=google.com; s=arc-20160816; b=eoi3OsTPMWAvGP3kC3ixcuyTTw3JhFkxJBEx0T5Ok8V5vtYld7VIbFOfQpOa6Busa2 YiEFSq41GIcIScCZeo36kDFywuLCZ7x8WnlV7QcugijN/X7Qxn/KJxZP1cwFH5/6QmW3 +HzXjpivCKIzsF8wjaZ1zrC2eMQsou9byTBmDMe/ohPhclo17Y6Gu6kla0aFQjUxJaeO h2uuTCZygTKcSzbkTxMG6N1tZ9XnbW+NCRy7sSO3pTzmfKCmARdb3Ybe7/gxxNO+RIqu lbpyReIZK9tiUZP1M642WK5LFjpGiHkZMJ7WcMNEmkW+nLou9Xijue+8F5I+bEr1dpdD BWvQ== 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=/S22GBkuN8cVeMhaytVE3/ENZ87v5s8LO6nyMoxDA20=; b=mHwgXZQG8f8OmMX4DdECI6OfSqt3j3zpKUEO8/h1cJMoSgNnzg5UMaR+njMQFXoUUz YeM1TF+AobVu5K43LKLefMhnuoDqyhV717l6r08Ao1nfbJ7qdZuJG6kG6g8bsmdSExLE NTxpxNlLN8Tvu7JH8dckBgiKnJ8DOLfOhQz6E7+SznydSj9L4B73ij+/qBS9wwqL5WCM MCMVDGSxFrLnS1LVoszygVF1iv/y5NaU23xUF3nMZd1zFAIbJ8KOVd+38xQCMl/Jn2eL LKEOw6ky6bc342NXkAzR5CVFztBVFIoLg4Oy4r3V6gRt7vW+BQvR6ctpMYQBaa5ArDyR 8jXQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=bVWQfxJ9; 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 ev2-20020a17090729c200b00879d5f8afbfsi3067081ejc.794.2023.01.27.08.03.35; Fri, 27 Jan 2023 08:04:15 -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=bVWQfxJ9; 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 S233859AbjA0QCf (ORCPT + 99 others); Fri, 27 Jan 2023 11:02:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57306 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229456AbjA0QC3 (ORCPT ); Fri, 27 Jan 2023 11:02:29 -0500 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 325418B063; Fri, 27 Jan 2023 08:02:01 -0800 (PST) Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 30RFavqC021454; Fri, 27 Jan 2023 16:01:16 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=/S22GBkuN8cVeMhaytVE3/ENZ87v5s8LO6nyMoxDA20=; b=bVWQfxJ9nVf+D7QwGRMEqInO3q9qTiWkFdTTcPEqzze5qG8Y3FA8PeVU6dzcHZnWpUFJ JmZ1jJXDvQu1BbEqYC67IS9Sb2Ssya8NuIZE1FDo8Z5ahckIb4nON41jzdjT7mQLmNIY zZg8HKgkEOzjH8hRsdw3nO1oH4dGuneaBAxQrimEjMYhOsb9WiGHEWjdqxGzp/RNefsF +WZmCeof63uqmQnP7ECfifR2TlOSH4GqwCmradvou6nCN199efaRTrKVxiutRNdmhGJW LJsQqH3DDJaoMsz4uXEcLFVMNWfaa69En59g0vr3tLUX4NwIQuhVwm8zvUQ16xP7t/PR VQ== Received: from nasanppmta04.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3ncchxrggh-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 27 Jan 2023 16:01:16 +0000 Received: from nasanex01c.na.qualcomm.com (nasanex01c.na.qualcomm.com [10.45.79.139]) by NASANPPMTA04.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 30RG19V1021597 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 27 Jan 2023 16:01:09 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, 27 Jan 2023 08:01:06 -0800 From: Mukesh Ojha To: , , , CC: Mukesh Ojha , Kees Cook , Tony Luck , "Guilherme G . Piccoli" , Rob Herring , Krzysztof Kozlowski Subject: [PATCH v4 1/2] dt-bindings: ramoops: Inherit reserve memory property Date: Fri, 27 Jan 2023 21:30:51 +0530 Message-ID: <1674835252-31954-1-git-send-email-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.7.4 MIME-Version: 1.0 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-ORIG-GUID: VmMSqO6Cn7xkm1WzqPYAvWqmB6PsJMMJ X-Proofpoint-GUID: VmMSqO6Cn7xkm1WzqPYAvWqmB6PsJMMJ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-27_09,2023-01-27_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 bulkscore=0 suspectscore=0 priorityscore=1501 impostorscore=0 phishscore=0 spamscore=0 clxscore=1011 adultscore=0 mlxscore=0 mlxlogscore=999 malwarescore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301270148 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,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: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756192262961550564?= X-GMAIL-MSGID: =?utf-8?q?1756192262961550564?= 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. Cc: Kees Cook Cc: Tony Luck Cc: Guilherme G. Piccoli Cc: Rob Herring Cc: Krzysztof Kozlowski Signed-off-by: Mukesh Ojha --- 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 + +oneOf: + - required: + - reg + + - required: + - size 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>; + }; + }; + }; From patchwork Fri Jan 27 16:00:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mukesh Ojha X-Patchwork-Id: 49475 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp909563wrn; Fri, 27 Jan 2023 08:04:01 -0800 (PST) X-Google-Smtp-Source: AMrXdXs0ya3UCcneIlfRb3LomXyE6VQRkQM5/pHIGjaUUj3usc1th1eQ+uQSYrl1TrHIYpoxSvYx X-Received: by 2002:a17:907:1621:b0:870:34c:97df with SMTP id hb33-20020a170907162100b00870034c97dfmr64339937ejc.4.1674835441060; Fri, 27 Jan 2023 08:04:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1674835441; cv=none; d=google.com; s=arc-20160816; b=nHr4PODECS7jjwIjX6JncjapMcBaJrWsFDHlChizYB51B79j4FVy5y2ek6z0GOgfDs 4grBs75kfKCCrbesj+yI7B8mGX0fGwD/YS1QwRDKlb2MCN93JxAqk4W4e1mtjO84PrSc +Dd6kV17KsOoF5ddnsnLFqmsWH5HOVQa8dqcDJgJvQfGbuNLE5W1b5f4/oARh/KXYJkc +6sOQMq34LZp/M79RsQocH4xeOtWN+91xx8k6PampLqPxv1lMQNjno7gL/Hd8wCkXRlZ CWUw7Ypj1KJhjx2zT7tLwxU3HvH301s8MUYtJSJSdLLgtV869obFn2RrEFqSF7sFuzvJ 3GKQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:mime-version:references:in-reply-to:message-id :date:subject:cc:to:from:dkim-signature; bh=0tcHV/Dlv4ShFcIEmal26a+260D96f+aRw22smTtopg=; b=KMOGTvG3/Z9N5WmlGgYsqaeytcjMcLUyqY47NsPTXYx7WB8nvPQIN4YiABANJDrhXb azuv6v1K7sbs7XQ9Jry+Kol9Vpiz5/xiJIghRHTtIwlNXU+uUOzLwwMsvbPaIdNLscY8 Qu3Hk0YVd0SNZdi+slQnCkTuoZ5tOuFw5xMA6TZT+0Zg8q+1gpkS1dWSbSZRLyVnSXKE ODme+ZKzAP1xH10hfPh3SHQubfYHD/LF+M9MZWj6SMJ1uiB2Tm9ytsjqPMgF8mfKhU98 mEf381NnlHA7JXJtFNomX59nl9OAXODd7cgxiaKl5r6vcIp+gnqDcOb+rGwCfuojLiEE i9+w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=XCeVdyiJ; 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 cp17-20020a17090793d100b0087bd6ca2cb3si1959726ejc.357.2023.01.27.08.03.30; Fri, 27 Jan 2023 08:04:01 -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=XCeVdyiJ; 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 S233052AbjA0QCa (ORCPT + 99 others); Fri, 27 Jan 2023 11:02:30 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57300 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231701AbjA0QC2 (ORCPT ); Fri, 27 Jan 2023 11:02:28 -0500 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7A6368662B; Fri, 27 Jan 2023 08:01:58 -0800 (PST) Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 30RFe8eR015045; Fri, 27 Jan 2023 16:01:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=quicinc.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-type; s=qcppdkim1; bh=0tcHV/Dlv4ShFcIEmal26a+260D96f+aRw22smTtopg=; b=XCeVdyiJahzmOHaQQU1tZo3A+xdL46kAJY4/fDJ6QJJhm4/oSQZ0Gh1hevWeNdASHAdJ VCWpqgKxE3V5iykoDQO5/aP3lT3/ibD7BKEVbm955XGbI2resdFyJ9/7pUJOPGWLC9Xm GSm/pLdMyuoAwKDS+noPq6o6/eFHMX1iMkfxzn3RykEs5aYrFzS7tkQv/8slcE41p65x Vui8LEO7J1qX8ulnl3hsnVEsdT76GUigZAlm9hOh/0jjYOFnU4vs/9x9xM9u7wUYUvzk U2VGWiSbCyANfWf/cA5ybeTAAoL4t2EmJyJuxSNyhZ0GqIQg3zpdChOYiGw9Wvpy2SPJ 4g== Received: from nasanppmta01.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3ncheyr1sr-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 27 Jan 2023 16:01:17 +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 30RG1GGO024374 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 27 Jan 2023 16:01:16 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, 27 Jan 2023 08:01:13 -0800 From: Mukesh Ojha To: , , , CC: Mukesh Ojha , Kees Cook , Tony Luck , "Guilherme G. Piccoli" , Jonathan Corbet Subject: [PATCH v4 2/2] pstore/ram: Rework logic for detecting ramoops Date: Fri, 27 Jan 2023 21:30:52 +0530 Message-ID: <1674835252-31954-2-git-send-email-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1674835252-31954-1-git-send-email-quic_mojha@quicinc.com> References: <1674835252-31954-1-git-send-email-quic_mojha@quicinc.com> MIME-Version: 1.0 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-ORIG-GUID: 1PNxq6JX5Cssz7Mn4WBvlVKsFESOd5Yh X-Proofpoint-GUID: 1PNxq6JX5Cssz7Mn4WBvlVKsFESOd5Yh X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.122.1 definitions=2023-01-27_09,2023-01-27_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 phishscore=0 adultscore=0 mlxscore=0 clxscore=1015 bulkscore=0 mlxlogscore=999 spamscore=0 suspectscore=0 lowpriorityscore=0 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301270148 X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW,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: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756192247396220793?= X-GMAIL-MSGID: =?utf-8?q?1756192247396220793?= 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. Also, some of the platforms might be still expecting dedicated memory region for ramoops node where the region is known beforehand and platform_get_resource() is used in that case. So, add logic to detect the start and size of the ramoops memory region by looking up reserved memory region with of_reserved_mem_lookup() api when platform_get_resource() fails also update the ramoops documentation, Cc: Kees Cook Cc: Tony Luck Cc: "Guilherme G. Piccoli" Cc: Jonathan Corbet Signed-off-by: Mukesh Ojha --- Changes in v4: - Updated the minor change in documentation. Changes in v3: - Merged 2/3 and 3/3 into one. https://lore.kernel.org/lkml/1673611126-13803-2-git-send-email-quic_mojha@quicinc.com/ https://lore.kernel.org/lkml/1673611126-13803-3-git-send-email-quic_mojha@quicinc.com/ Changes in v2: - Addressed the comments made by kees and Guilherme in v1. Documentation/admin-guide/ramoops.rst | 25 ++++++++++++++++++++++--- fs/pstore/ram.c | 18 +++++++++++++----- 2 files changed, 35 insertions(+), 8 deletions(-) diff --git a/Documentation/admin-guide/ramoops.rst b/Documentation/admin-guide/ramoops.rst index e9f8514..f701fab 100644 --- a/Documentation/admin-guide/ramoops.rst +++ b/Documentation/admin-guide/ramoops.rst @@ -16,8 +16,9 @@ survive after a restart. Ramoops concepts ---------------- -Ramoops uses a predefined memory area to store the dump. The start and size -and type of the memory area are set using three variables: +Ramoops uses both predefined and dynamically memory area to store the dump. +The start and size and type of the memory area are set using three +variables: * ``mem_address`` for the start * ``mem_size`` for the size. The memory size will be rounded down to a @@ -70,7 +71,8 @@ Setting the ramoops parameters can be done in several different manners: B. Use Device Tree bindings, as described in ``Documentation/devicetree/bindings/reserved-memory/ramoops.yaml``. - For example:: + + Example of statically reserved ramoops region:: reserved-memory { #address-cells = <2>; @@ -85,6 +87,23 @@ Setting the ramoops parameters can be done in several different manners: }; }; + Example of dynamically reserved ramoops region:: + + reserved-memory { + #address-cells = <1>; + #size-cells = <1>; + ranges; + + ramoops_region: ramoops { + compatible = "ramoops"; + alloc-ranges = <0x00000000 0xffffffff>; + size = <0 0x100000>; + record-size = <0x4000>; + console-size = <0x4000>; + }; + }; + + C. Use a platform device and set the platform data. The parameters can then be set through that platform data. An example of doing that is: diff --git a/fs/pstore/ram.c b/fs/pstore/ram.c index ade66db..17c9f46 100644 --- a/fs/pstore/ram.c +++ b/fs/pstore/ram.c @@ -20,6 +20,7 @@ #include #include #include +#include #include "internal.h" #include "ram_internal.h" @@ -643,6 +644,7 @@ static int ramoops_parse_dt(struct platform_device *pdev, { struct device_node *of_node = pdev->dev.of_node; struct device_node *parent_node; + struct reserved_mem *rmem; struct resource *res; u32 value; int ret; @@ -651,13 +653,19 @@ static int ramoops_parse_dt(struct platform_device *pdev, res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) { - dev_err(&pdev->dev, - "failed to locate DT /reserved-memory resource\n"); - return -EINVAL; + rmem = of_reserved_mem_lookup(of_node); + if (!rmem) { + dev_err(&pdev->dev, + "failed to locate DT /reserved-memory resource\n"); + return -EINVAL; + } + pdata->mem_size = rmem->size; + pdata->mem_address = rmem->base; + } else { + pdata->mem_size = resource_size(res); + pdata->mem_address = res->start; } - pdata->mem_size = resource_size(res); - pdata->mem_address = res->start; /* * Setting "unbuffered" is deprecated and will be ignored if * "mem_type" is also specified.