From patchwork Fri Jan 27 15:10:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mukesh Ojha X-Patchwork-Id: 49458 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp885797wrn; Fri, 27 Jan 2023 07:13:27 -0800 (PST) X-Google-Smtp-Source: AMrXdXsq52QI7ZH0nzVwdE7G6uV86mQntWpMBydQiAOtNyZrt7aLFl4QidwnnLraZu49PyEz4fOM X-Received: by 2002:a05:6402:380b:b0:492:bf3d:1a15 with SMTP id es11-20020a056402380b00b00492bf3d1a15mr48458311edb.1.1674832407362; Fri, 27 Jan 2023 07:13:27 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1674832407; cv=none; d=google.com; s=arc-20160816; b=ecuuVLO8GtYD2/fPBrzfDTEl93cHNfHzFkokigHiuEkxrnxCbaP5lCbtGgh/2be1d1 nKFC/gCpJK2Os68Zh0gtWtcUrB34jzSy/4+58KLkVciqGRZVrbeGXD/CV4sMfbS7EX2f F9ISbPLpC585GNgBJIRnn2grclXdjtpSbQpBTzD1POA+uXuscvgfhJNKQxVUQ9VBkO+o yYt/SuaSYTpA9dJrgbn5gtMO+a55CNZ93027P9Zgz9b7L9WIXenn9gEqsFg5UOfD1w0l 4fnfVF+GFUbJVmWbAgROYd2rQ7MGmLPX5zZ1s3ToCSQ/UkAx+ctw8D3mJAv6Mrl12AnF GE+A== 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=91idBUbdIfOr0IZ3DR2hHSVL5JCnzTMJNpoHN5YShWg=; b=LOE8hgK/fCECLRGB6gAaehiy36m/FKeB7NZ+jQNnbGsdavIlxWQoyaa9ObJLZvg+Zx eIwTeXSjWw8QLDUPziLnx/5kmYlQeecIKWqC7Oxb4kNk1t1azn+6oSWUEJCWaFW2QXCn W30VylYlF2REMkNvsTrj3LOePrifg/9ObI3wOxiDQ0UlpuASrMYFgniK7TZ+gk6VtXn3 nI9l+lKpmDyLqgShi699N/0F1Y2Ouw5oB5ywQ5HJsJSW9a01QftWFbSDdkr1oYCYIdaE pIpOpkR4k7772zJoXG45PXFAtvJgD8WrJEuS1sFxdndieAV3PcV36ygFXSGQ9lQNisTh DDRg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b=hS2IeEjN; 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 z5-20020a50eb45000000b00499c424f683si5053678edp.223.2023.01.27.07.13.02; Fri, 27 Jan 2023 07:13:27 -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=hS2IeEjN; 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 S234290AbjA0PLf (ORCPT + 99 others); Fri, 27 Jan 2023 10:11:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44834 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234253AbjA0PLe (ORCPT ); Fri, 27 Jan 2023 10:11:34 -0500 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3929080179; Fri, 27 Jan 2023 07:11:23 -0800 (PST) Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 30RDlNHZ021451; Fri, 27 Jan 2023 15:11:09 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=91idBUbdIfOr0IZ3DR2hHSVL5JCnzTMJNpoHN5YShWg=; b=hS2IeEjNEoZ5VmW+mtHdbH/aEeFblPqGHt95S/rSTSeZTNhk4eFE+EI2NQcReFbm31SC J2du9HnKeWtqszCFQbx3aY4znIP1OYYWpK/0WIcLN1dOAo0v6WyQWO6UrZqGQ/5cMnXe i+Op+q6xnskzJgdwEaSFV/14mzaGxsr2b/4RU4EE6o2pHhSOBYntF5W56gO7pMcevUPq VEOTuz4kWXpJZ4SeMECoO6pKDFfR/OU8NgB1jVS/zLBvevYBXNgZt0N3L1bZUqTWWx1x q07bk0O1PYpGvhv1KcjWokwJUeysLrrGfttBdaKgICRQIFd+uF7Q4MJeabE5dAxcBlnP fQ== Received: from nasanppmta04.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3nbyma1m4p-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 27 Jan 2023 15:11:09 +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 30RFB8Ch024156 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 27 Jan 2023 15:11:08 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 07:11:05 -0800 From: Mukesh Ojha To: , , , CC: Mukesh Ojha , Kees Cook , Tony Luck , "Guilherme G . Piccoli" , Rob Herring , Krzysztof Kozlowski Subject: [PATCH v3 1/2] dt-bindings: ramoops: Inherit reserve memory property Date: Fri, 27 Jan 2023 20:40:35 +0530 Message-ID: <1674832236-6754-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: mBHyGmpBQl6jFonsw6XyjZMtziCOeB7h X-Proofpoint-GUID: mBHyGmpBQl6jFonsw6XyjZMtziCOeB7h 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 mlxscore=0 bulkscore=0 spamscore=0 clxscore=1015 impostorscore=0 lowpriorityscore=0 phishscore=0 suspectscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301270143 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: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756189066383910217?= X-GMAIL-MSGID: =?utf-8?q?1756189066383910217?= 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 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: ramoops_region { + 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 15:10:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mukesh Ojha X-Patchwork-Id: 49459 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp885962wrn; Fri, 27 Jan 2023 07:13:47 -0800 (PST) X-Google-Smtp-Source: AMrXdXsFoLxUhHVArNHzSQcqR5coCuYy40wZt52scHHhvwnZtnkmMyclNimBI/4ryEvx+FoBkiIU X-Received: by 2002:a05:6402:4305:b0:49b:4711:f4b4 with SMTP id m5-20020a056402430500b0049b4711f4b4mr50495422edc.0.1674832426979; Fri, 27 Jan 2023 07:13:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1674832426; cv=none; d=google.com; s=arc-20160816; b=0We3H0W7HbGAuGpkBPYVv/aVNmOWVmp8ivsbDAaT6jBZlONw3uX2fQPQiyG5lel5LG SSex7v3I7DyowUfNxGuMq8QfcGHHX9XPN50pXUSBRQCHgypSdYc2YEfhvCkA4fQqSBqD SpqKUN2XbT/gfcHUSXJFbp/NtjmflKlnIzimw+nCM6fMPAA82mfCRRJpmaLlqY477yob gQzYDUhOwvjrFQHff8l0h0B+7sxngTjsDBDXGBLOTeXAk5ebrC1UsILenj0SGHXh3ypR BPiW3+Jq37VT34Eu4UWf01rqQQWdt+/rkcyQ+bTGzfTrzrElrUjwcINVTMQ02pusGgpd zXDQ== 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=1jlvNCE9cJaCe8gaYSf9W0/ZAru7UYQmH2Cf3/64PhM=; b=nMHu4yHemfuK/QvfkF29mFFYdzSQl5omiVDD+0jGfwudg9MHd2GSNJjCZnVP/S826F Yd2fMHAcmo962LS2+9IXskhi2Zh4ZcvDtaVzD8hzIZeBLfIPF3I/K3LS3piVyqVFSomg 6u8D1nNg79HRw1jSMXS/XiN+Kvz7/CftEHygXbI8WLKO+RdP28ItKFELeHIZPj3XM3lC W/U8Ct6+C5A3cE+BAc9iJLcCIbCm3sCM9rhTr+UJkWMeG0MhcbTMy2P7rqRZ1uOONji2 qEPDBLFNldXXLvEKjgwS4R7gYxXAu4reec+3OjNkhbS04+NXsv/GTrRb7Fm6VYrkZJD/ NMZQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b="ChYi6zR/"; 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 o18-20020a50c292000000b004a0e8d82badsi4303091edf.617.2023.01.27.07.13.23; Fri, 27 Jan 2023 07:13:46 -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="ChYi6zR/"; 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 S234303AbjA0PLi (ORCPT + 99 others); Fri, 27 Jan 2023 10:11:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44902 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234276AbjA0PLe (ORCPT ); Fri, 27 Jan 2023 10:11:34 -0500 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AFA928497E; Fri, 27 Jan 2023 07:11:24 -0800 (PST) Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 30RElaZY003863; Fri, 27 Jan 2023 15:11:14 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=1jlvNCE9cJaCe8gaYSf9W0/ZAru7UYQmH2Cf3/64PhM=; b=ChYi6zR/GiwtAE8+VKdLkYni9r93wiIpKKH000XveWnuBQxHxUQOP7FZogqPHgbkrJnf CclJgHWNLn6jS9TDXRhakLMEKk0JlVppXIF/SNbvcWtFhGk7DzFNuWWrtrOIfXxiKWoQ IWguEjGNxp4bwxa3aPeRliWNWF+kvjqwEriv6Svw4/5NU40aSYw3t8n8viai98wyFO4R Asi7IasPymMCHkiI55OH8rNh8RhJ+Xohf6XBdFtb+/2kYeAqubhIwcY88HrpUMimx++e NzOsndPDptl1ig0i1U0Y8gyLxMtw2E3ZF8CIY+efjpGRLgoN2q2/v0OCxe7P+V8N/xct bw== Received: from nasanppmta04.qualcomm.com (i-global254.qualcomm.com [199.106.103.254]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3ncavc0jp0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 27 Jan 2023 15:11:14 +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 30RFBDGY024612 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 27 Jan 2023 15:11:13 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 07:11:10 -0800 From: Mukesh Ojha To: , , , CC: Mukesh Ojha , Kees Cook , Tony Luck , "Guilherme G. Piccoli" , Jonathan Corbet Subject: [PATCH v3 2/2] pstore/ram: Rework logic for detecting ramoops Date: Fri, 27 Jan 2023 20:40:36 +0530 Message-ID: <1674832236-6754-2-git-send-email-quic_mojha@quicinc.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1674832236-6754-1-git-send-email-quic_mojha@quicinc.com> References: <1674832236-6754-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-GUID: q-YUuMj3-EfMQtwdLzArUpIvEDonGQ-Y X-Proofpoint-ORIG-GUID: q-YUuMj3-EfMQtwdLzArUpIvEDonGQ-Y 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 malwarescore=0 clxscore=1015 lowpriorityscore=0 spamscore=0 phishscore=0 suspectscore=0 adultscore=0 mlxlogscore=999 impostorscore=0 priorityscore=1501 bulkscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2301270143 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: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1756189086475139477?= X-GMAIL-MSGID: =?utf-8?q?1756189086475139477?= 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 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@8f000000 { + 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.