From patchwork Fri Feb 24 19:57:31 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gokul krishna Krishnakumar X-Patchwork-Id: 61428 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp1117477wrd; Fri, 24 Feb 2023 12:03:24 -0800 (PST) X-Google-Smtp-Source: AK7set9CPHPFbmVZZx5apmujOixwCbf+CDCDEYqTry9wcd1lZoXoeXj8GjB6TNQtMwfXbe0vWdLx X-Received: by 2002:a17:90b:1c10:b0:22c:aaaf:8dd9 with SMTP id oc16-20020a17090b1c1000b0022caaaf8dd9mr19369553pjb.47.1677269004348; Fri, 24 Feb 2023 12:03:24 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1677269004; cv=none; d=google.com; s=arc-20160816; b=u+Mt/0GopnnL7qcidiudNI1Phe7lIM3qZ+IfSeMYFld+RXZAWcGfacEAPq7BS3wXwm 6xpkZjZE2xI64Apllvlvi5tkHF/ULc7hUiBQM2tpNbz8Nb2smpKifA905CuRVKNNd4sf 4b5SDvFXAYhNgX3V7lJKn1BM0o8nzN0Ybk0TrGH2r7GJeku8HU9apxGdZLnx5pk8KHN1 hrZLqRZpmmjtTcpLPdNLvtFuaWA9CvXOR7inodbE2lcAPwS35r6s//YlUMc4hpp5MmYY f+GY7xrXEb3JizVRQP8ZlAvvapiTc29vSof6YUSbcDuz8RedseAQFZAM1Vo3mAo9rVQQ UlNA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=2KeglNGIGTjZRWimPDaOKRsBt+lnwUieaIjlGkQbDEM=; b=UQorTwtL53gvWZ3GGPHdlgM1/+mwIl7WbRJp1/aBjD066mNsgJ9mneVW8fWWBExavY lB8P2iPzLPCCq9CAYfZehhY1vg7IQrlNf8REs5VVPm4nQ13D9+enc3tiNV8u1tZJWYkk A4o67Fke5rz34LFU3TjOP+vZcyQnGQLhWVvZZJUCzRGKvuzK/0/jQO2JjLTvo0aGjY/K rl4ZG9rE9r/ZQN7J6CPLOgeBhQh+vo+34EClzJZXxRPJB9Z0YeAmzk8mo9v3aKMd0Msk HTt/XLzeYRh7n9QaObpkOpGNpwOUVUWr6Lmzt6k+URPE5jL0pa2V+5zGy+mt1ycoxSKV E9IA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@quicinc.com header.s=qcppdkim1 header.b="RpNaI/Y1"; 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 s196-20020a632ccd000000b00502fd7737f7si4806746pgs.659.2023.02.24.12.02.52; Fri, 24 Feb 2023 12:03:24 -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="RpNaI/Y1"; 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 S229619AbjBXT6t (ORCPT + 99 others); Fri, 24 Feb 2023 14:58:49 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49294 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229768AbjBXT6m (ORCPT ); Fri, 24 Feb 2023 14:58:42 -0500 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6962D231CC; Fri, 24 Feb 2023 11:58:21 -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 31OI9JNY010165; Fri, 24 Feb 2023 19:57:50 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-transfer-encoding : content-type; s=qcppdkim1; bh=2KeglNGIGTjZRWimPDaOKRsBt+lnwUieaIjlGkQbDEM=; b=RpNaI/Y1nYfjLN8TRjethsyGt9gGoMdllJpVCokcq0AaafYosEuJQvXZu3Tc2/oP0I24 sRd5CiDDT/rtCFZM+2scXbQl+vQPIqzWenSPsnqYo8sL4gVZVzDvyjlo5Xq6PMqMP7il 1qyBZUpismUbw+ACFgH3JKd38WsACWkEH662u6lpTq94eKM1UfNXHAPD8RzHHQbW32C9 DMd+0XQoIThuBt0cRkLdmR7n90nwNZPjjLjZ30EQ4rfD1YlX6ewHFND4HwFK2Kj+PQmP oqqfx28KRh4ECgpHV7B6TiFCkRrUYCxPszqtYinpokI1y9fDdD4RI0KQGeiOnP+Egw2N pw== Received: from nalasppmta04.qualcomm.com (Global_NAT1.qualcomm.com [129.46.96.20]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 3nwybwnrn4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 24 Feb 2023 19:57:50 +0000 Received: from nalasex01a.na.qualcomm.com (nalasex01a.na.qualcomm.com [10.47.209.196]) by NALASPPMTA04.qualcomm.com (8.17.1.5/8.17.1.5) with ESMTPS id 31OJvnAr023543 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 24 Feb 2023 19:57:49 GMT Received: from hu-gokukris-sd.qualcomm.com (10.80.80.8) by nalasex01a.na.qualcomm.com (10.47.209.196) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Fri, 24 Feb 2023 11:57:48 -0800 From: Gokul krishna Krishnakumar To: Andy Gross , Bjorn Andersson , Konrad Dybcio , Mathieu Poirier CC: Trilok Soni , Satya Durga Srinivasu Prabhala , Rajendra Nayak , "Elliot Berman" , Guru Das Srinagesh , Sibi Sankar , , , , Siddharth Gupta , Gokul krishna Krishnakumar Subject: [PATCH v4 2/2] remoteproc: qcom: Add full coredump fallback mechanism Date: Fri, 24 Feb 2023 11:57:31 -0800 Message-ID: <20230224195731.324-3-quic_gokukris@quicinc.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20230224195731.324-1-quic_gokukris@quicinc.com> References: <20230224195731.324-1-quic_gokukris@quicinc.com> MIME-Version: 1.0 X-Originating-IP: [10.80.80.8] X-ClientProxiedBy: nasanex01a.na.qualcomm.com (10.52.223.231) To nalasex01a.na.qualcomm.com (10.47.209.196) X-QCInternal: smtphost X-Proofpoint-Virus-Version: vendor=nai engine=6200 definitions=5800 signatures=585085 X-Proofpoint-GUID: T2g4fZZ1O8NP_BAvboV88nSDrTf7vvPG X-Proofpoint-ORIG-GUID: T2g4fZZ1O8NP_BAvboV88nSDrTf7vvPG X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.219,Aquarius:18.0.930,Hydra:6.0.562,FMLib:17.11.170.22 definitions=2023-02-24_14,2023-02-24_01,2023-02-09_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 lowpriorityscore=0 mlxlogscore=976 malwarescore=0 impostorscore=0 bulkscore=0 spamscore=0 mlxscore=0 priorityscore=1501 adultscore=0 phishscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2212070000 definitions=main-2302240158 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?1758744023815783383?= X-GMAIL-MSGID: =?utf-8?q?1758744023815783383?= From: Siddharth Gupta If a remoteproc's firmware does not support minidump but the driver adds an ID, the minidump driver does not collect any coredumps when the remoteproc crashes. This hinders the purpose of coredump collection. This change adds a fallback mechanism in the event of a crash. Signed-off-by: Siddharth Gupta Signed-off-by: Gokul krishna Krishnakumar --- drivers/remoteproc/qcom_common.c | 13 +++++++++++-- drivers/remoteproc/qcom_q6v5_pas.c | 1 + 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/drivers/remoteproc/qcom_common.c b/drivers/remoteproc/qcom_common.c index 7da3259be14a..280a5a821dca 100644 --- a/drivers/remoteproc/qcom_common.c +++ b/drivers/remoteproc/qcom_common.c @@ -173,12 +173,21 @@ void qcom_minidump(struct rproc *rproc, unsigned int minidump_id, */ if (subsystem->regions_baseptr == 0 || le32_to_cpu(subsystem->status) != 1 || - le32_to_cpu(subsystem->enabled) != MD_SS_ENABLED || - le32_to_cpu(subsystem->encryption_status) != MD_SS_ENCR_DONE) { + le32_to_cpu(subsystem->enabled) != MD_SS_ENABLED) { + return rproc_coredump(rproc); + } + + if (le32_to_cpu(subsystem->encryption_status) != MD_SS_ENCR_DONE) { dev_err(&rproc->dev, "Minidump not ready, skipping\n"); return; } + /** + * Clear out the dump segments populated by parse_fw before + * re-populating them with minidump segments. + */ + rproc_coredump_cleanup(rproc); + ret = qcom_add_minidump_segments(rproc, subsystem, rproc_dumpfn_t); if (ret) { dev_err(&rproc->dev, "Failed with error: %d while adding minidump entries\n", ret); diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c index 27d3a6f8c92f..d065f99b4c32 100644 --- a/drivers/remoteproc/qcom_q6v5_pas.c +++ b/drivers/remoteproc/qcom_q6v5_pas.c @@ -442,6 +442,7 @@ static const struct rproc_ops adsp_minidump_ops = { .start = adsp_start, .stop = adsp_stop, .da_to_va = adsp_da_to_va, + .parse_fw = qcom_register_dump_segments, .load = adsp_load, .panic = adsp_panic, .coredump = adsp_minidump,