From nobody Sun Feb 8 20:35:00 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E93B932ED31 for ; Thu, 13 Nov 2025 10:36:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030177; cv=none; b=iUwC38HKawDo1TUz/gD8j35O7db/CRrD6eujihJNiXOAd57E9+OCk2OyxhUESyl2BJRzpfHRXFqetz/itFXmQ+MhQLdvFO46yUBfrkGFINurprK+0+L1botUrLs1m+7Xy0ArexzZGktIe6hK2nl+b5xy1heZtPHcH9LlxTRuCdk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030177; c=relaxed/simple; bh=fkI0IV5pKXD+Z8pE0/I4omqNa0GvsOuaX0Z626kXB7M=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ns4YkFJP+VsJLVb0cL4A5mk8zRD1bJHlEXG4JaACyudU0PyUekyb+xNZFNNtJZGevQpi4seEKnb/j3i9LYuQ4opL6J7GTT2l1qGT8P0aJXjmCeSdLfGwy0tefoBUXCPVuPNkfgrzMmVKb9pY7ceuxvjJOdXdihdm5tuESonkQ9Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=SyUek2PK; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=AyWvpCr4; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="SyUek2PK"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="AyWvpCr4" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AD8d6qV2993501 for ; Thu, 13 Nov 2025 10:36:14 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= QAPzsylvQAf0leJxcPm7SZsbOhaaSA1OJ2ImRJF3POY=; b=SyUek2PKr/5RKRoh dK+MfEFkIuFN6p/hmQn1CqjeSl58Imvau8nK8/s88R1Qqqk2mfauBchhgm1edBOI 0nxdVgYuxUEs9SkHSAfgJD/gFMPlGxkHfzRn70dYLtOz1whvrDcikKKtZWuzIVIP Q6vzsMA3hHWDbWBB07Ri6CPS8j12VUpDQPdfmKZxrVfv/ZPut6ilrxxtiAXjkM41 We93YblO07qklWwYFENro6ww/Apv7a7Rr9MJnsNU0dxVV6xY1xCamcVdnf3Xix7j nmH8s5QEZ9xHOS6ub8yrgDGktfMfD8cWDD1bCKB2MDmaQh2o55CtDLUIUBBVmWFa AROzAQ== Received: from mail-pf1-f200.google.com (mail-pf1-f200.google.com [209.85.210.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ad47jhvrb-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 13 Nov 2025 10:36:13 +0000 (GMT) Received: by mail-pf1-f200.google.com with SMTP id d2e1a72fcca58-7a153ba0009so1448139b3a.1 for ; Thu, 13 Nov 2025 02:36:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763030173; x=1763634973; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=QAPzsylvQAf0leJxcPm7SZsbOhaaSA1OJ2ImRJF3POY=; b=AyWvpCr4bvNrMZ+fdX/9WAOMBB/JtizGNNL2SzWgghL1k4UZBzipwk+h1qyUF3Ar9C D2qLpWpx0TqFGME3TFSiPMKMSGwFUomCugGQIR2OPW1H1V9r9nzhhBkYNTM3x8VHjeaY 4h7KA2Wq5HvXkazESRP9YMPAmI2EhFQ2h40f+WsCQbs/K44jAiTlL8h0VRJ1bkj3L66W VpDprbMgJKMg+LAvdMN2j99iGGNLNzmvRP1KdJ4m4MbTbxxKFoi9Jm6b2SedJ5ZXxJCq PEDt1UM+Yuax67jKRazHDGgMe8T0JmEfU/bpcSIjbL/Hz55OhgYpi9X5XlGrDHVjFAJf WuTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763030173; x=1763634973; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=QAPzsylvQAf0leJxcPm7SZsbOhaaSA1OJ2ImRJF3POY=; b=tmxZ3jPZ3qAi2yRZavY5nXMojT/3o49P1vKelW2Yd/Luab4ws+BF8kaaPWl4t43tCG kARSBscjGlR1i2te3lGvHQIXAqdd3eVNvnw7Jirz5blFlPn5MjHrvJBlnJF0hL6YTvnx U2k2qzDuY2G92v3wFY8/kLhSKOfJVP6tsp1W+PgN8uvVplympQp36fns+ylJgPwgS2j2 irtHh6wG4QmAu/noivo3Q8FfpKmH/Tg1pv8k4+GAcNdkN4CAtZIsiGiWpynY4SoIRlGa ttGKNW7uSc2eMfZ8Db4luzIMlIGi0wAOSwpbmdSZDVQXbFmuWiXYwZ+gAi+GpJ5GMLf+ 52Sw== X-Forwarded-Encrypted: i=1; AJvYcCVfrm9gJWvg80qTUh/nBbNI5PchhXpnTV6wWr/mt5BeWSaGgIZhXTlIZqixO5C7/neMeVnksRBTA9qGiUc=@vger.kernel.org X-Gm-Message-State: AOJu0YzyOyjo5pq5RdHOK4b8DJmUZ3dPI50i2OnOx80VsEXhHKrBjV/V XNOTht82cCkU7xtwewZe2bmtYzaAIJY3drBhDH69tF4DBJH6n7kDQuUMLN+Lb5KbSYQtP337jWS hgFEJZ0uHXXZkRPcEC3Lf5tlnAcdpQXY6/846j4PURs1jNtjrTcnBVA2DbuopEPqWHqU= X-Gm-Gg: ASbGncsLNQqS33pbRgs6TUWD1iPUSkTKlQjvv+RyrIOcQg+yfyTns+GjEHH8zspB6K6 b4Q8Fbtf6B2CBk4WZ74CWfm6LOxL8SJ8LGMu/7UEUWEwYD/Kr7n+npZR/N4IGQc/KEruv4CYN91 9Ce4rVt5UWJL/VVWq5hxWT0dvxBjbV3HU/FXFIhLJNWcMinfnynOgb7BElir6SSEYtL8zHQZ7/A ZVmcvpAXr5bMIQ4uZ71EUS6blwUIf4xXYCaEb3m47oaU6FKeQRerrXt1A9DS5yQOjNdb7Uhl56o diIUcyJRj57ZVMpXAFs1w7tKcHI/El0f/YIV/uFdfsOosgtQ6oW5tsGh2djw324cBk6PeKd/u+2 EsqYAZ93LOMQSSpl/NS3ySaSUGw== X-Received: by 2002:a05:6a00:3a07:b0:7ae:fea:e928 with SMTP id d2e1a72fcca58-7b7a46ff5ffmr8505601b3a.18.1763030172643; Thu, 13 Nov 2025 02:36:12 -0800 (PST) X-Google-Smtp-Source: AGHT+IHdWLsFxzN1Qeb7Ay7FtILT6BOrn+z9PA4q9aNMwHkP3I487Ru0WW9RlwaWtIoOpnyunhqFCw== X-Received: by 2002:a05:6a00:3a07:b0:7ae:fea:e928 with SMTP id d2e1a72fcca58-7b7a46ff5ffmr8505547b3a.18.1763030172006; Thu, 13 Nov 2025 02:36:12 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7b9250d2d16sm1886922b3a.22.2025.11.13.02.36.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Nov 2025 02:36:11 -0800 (PST) From: Mukesh Ojha Date: Thu, 13 Nov 2025 16:05:51 +0530 Subject: [PATCH v7 01/14] dt-bindings: remoteproc: qcom,pas: Add iommus property Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251113-kvm-rproc-v7-v7-1-df4910b7c20a@oss.qualcomm.com> References: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> In-Reply-To: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Bryan O'Donoghue , Mukesh Ojha X-Mailer: b4 0.14-dev-f7c49 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763030164; l=1346; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=fkI0IV5pKXD+Z8pE0/I4omqNa0GvsOuaX0Z626kXB7M=; b=z9edZJO08bBDewte2/znOlY4lNVMe64h7yw0x7TMliKqjw9A/NcCqwVM2ocm3j0ihXnADUzPw zaylC4D4E+xAYdxMiQGeSYdAlrbeP/fDaWUjLTvelWPtNvB4JjRZPEs X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTEzMDA3OCBTYWx0ZWRfX5W8cEvKn7Fsy hywHqGXBjJghBx+6TzaSuaarpFSAFTBGilhsZoSPOTZaHAwP4ZTiZ0iPmfGqyjv+5PEgHe4RtBe SnURF1shBFb5kVkiLN0QP3RuW8p2KztMUEzFyw1RSVOUnUc0uD8FatTFEFSLorNPmBXrj3E4c2v hgLm7F+Gd5x4tVhtMizUgX7O+z1pF8rHGl3Rq0M/iFCEnjCqn5yaKu9MIkXJcF6ldnydzYVhi16 LAYokSKYQJhcQhmmZwWNUhCzpMx+5lPWX+u9zWEKropqTiMR+K+rhSyuv2z2sNAtNuMhHbIBmuN YuMzH6bOx4IHyaK8w3JcxY9FGx/W//YZeFiLrfK3ZGGxSa6L0qfHXb1ql1H761EMR/8NMUiAy3q sM9WsOOKOAHNjuzhTW+ikSSUbiCwGg== X-Proofpoint-GUID: bD6uDzr2hayUf4TpmKa6ceNsGXD11EeO X-Authority-Analysis: v=2.4 cv=A5Fh/qWG c=1 sm=1 tr=0 ts=6915b49d cx=c_pps a=mDZGXZTwRPZaeRUbqKGCBw==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=nDsJnkO8JLPJ0mjf3QIA:9 a=QEXdDO2ut3YA:10 a=zc0IvFSfCIW2DFIPzwfm:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: bD6uDzr2hayUf4TpmKa6ceNsGXD11EeO X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-13_01,2025-11-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 priorityscore=1501 clxscore=1015 spamscore=0 phishscore=0 adultscore=0 impostorscore=0 lowpriorityscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511130078 On most Qualcomm platforms, the Qualcomm Hypervisor Execution Environment (QHEE) is either used as a standalone hypervisor or co-exists as a module with the Gunyah hypervisor. When QHEE is present, it configures firmware streams for remote processors. If QHEE is not available, the operating system must perform these configurations instead and for that remote processor firmware stream should be presented to the operating system. To support this, add the iommus property as an optional property for PAS-supported devices. Acked-by: Rob Herring (Arm) Reviewed-by: Bryan O'Donoghue Signed-off-by: Mukesh Ojha --- Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.y= aml b/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml index 63a82e7a8bf8..68c17bf18987 100644 --- a/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml +++ b/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml @@ -44,6 +44,9 @@ properties: - const: stop-ack - const: shutdown-ack =20 + iommus: + maxItems: 1 + power-domains: minItems: 1 maxItems: 3 --=20 2.50.1 From nobody Sun Feb 8 20:35:00 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7CF3533345D for ; Thu, 13 Nov 2025 10:36:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030180; cv=none; b=SvZe4bn8PIaZn7LzvLQZ3l1WLhIW/Wigt0J1fngc+HBZqYgVkllUB7qRo929Exk/OrhNrHpHzAutoqd8fuai15/NvVaE7URqq3PYBnBzijZZlqspHGrCnyouqloGpC2J5FXd8wUy6bccNEQf6Q24x/fwTkRbtYt+SGFd5O7gMyc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030180; c=relaxed/simple; bh=4OHWHDjFq2jAK9+Bld2fkj3MwlJ5JU6OOThT1NP9j4s=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lqxJHlNEFIVkp8yJKQMh+ViY9yyZU7CVLJoEsHic9Ape6P/HjFvTVR87cn0d1k/Ku8u5QoEI9ZV1ZhGxbpU8hymph5er1GMP94D15tL6M80/dJCxx9801qXlkWjc3jB9UuLQhy5sHC3CK0sGxvvsyk/ad5pLmy60QCfRfTZaEvk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=aI/3G6za; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Vot7FCS5; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="aI/3G6za"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Vot7FCS5" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AD9GFRb2962626 for ; Thu, 13 Nov 2025 10:36:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= AR4qgOv39nCgYv9wQSzT0BQbLvoJwKdb29TlFdA6Xsk=; b=aI/3G6zaLd2sKtwi s5Tiyek8O7Bm69Fx/yNglGsvnukWY5owLK9AItiBXPF+vLUflWUFKOw5wTZVPxGv 6mgmZy7pHc6HP483ehbQnBLYDLoUzXd7vVKkW1uVPBBBoOzG8mlZ3YyxFD0FxAOJ +brnRTQuaDSAW13UwGs41o9BrQjT80RhxLsjJOqdA1qHTqB23wLSaB2CDM2PSifi i1qnAjKDFkazEsfVnB1iu10+9hGIokBlBxKQ57hivs/UvtgQ9mCepVud+EmZ0/ST zMWC6dhvknbvViytP9W9NnXN2gOvxwHfp3g/9vqv13H2NG1r0bcPyHESXWuOv5Uz CtO/rg== Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4acwbpu79v-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 13 Nov 2025 10:36:17 +0000 (GMT) Received: by mail-pf1-f198.google.com with SMTP id d2e1a72fcca58-7b90740249dso1492490b3a.0 for ; Thu, 13 Nov 2025 02:36:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763030177; x=1763634977; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=AR4qgOv39nCgYv9wQSzT0BQbLvoJwKdb29TlFdA6Xsk=; b=Vot7FCS5/7gq0BQHJkyaUAn7WRXWU5HMoUEeSkK5oB6SCG9z+6bdQtx1GApzRwVurG 780EX+KN1rnqGeITbRW0H31tLeFbJRPgFnsfHo6Km2fcG1kAnQA9yyWW+pJXZdV2iTeo QIQwxB7TqrUCMdrXW3AJGkDuaogRCzv595PnpwC+Vp/3qMMblF35l0koClSp7PFyeRxO xrzkxoVGUHS1GDNqpL2f3juH2tn2yeL1poOpx+c6VxStmmetZLp91D+XDQI5h6FZ57t1 JGGuslwW79YUBSwhzb3qbMuhCLrzSYUTKN2aPG2CjD/hvac3qyHy/7ToeZahltoeDILv x3IQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763030177; x=1763634977; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=AR4qgOv39nCgYv9wQSzT0BQbLvoJwKdb29TlFdA6Xsk=; b=Gdb831nMmM2Q5C0DU0vxjHOGoybZp9pJx6DcyGHVwWVq2umF3Svj3ObQimWRuAIpeI ljVTNuo8P5tPU54GeESpj1/6OUt8QKRn3C0/Aveg3F+rMbg4Rwz0GorMq2iaJ/e0E/TQ LJWrinhMTrL4eTxLIvtj+lF2HMUsP+VV65Xlx6Due22PTb35nKvntVO/1xUEcvXeH1Zc WVN7bpCGBJ7OcGJG1miFTZnWvTyYqxdzB8oBIA9C7B0AXR54PzSPrvHMSF7jcyR7BS0b w6OjvtU15c2vBIW1/eP7cNQZYVvGEx8Wz/fXG53dmAhmZ+HhT8rdlo2Pw+7eev5QCqfs AjCQ== X-Forwarded-Encrypted: i=1; AJvYcCWYk/Qqe6BcZeOz76myMQ78n5IrjzMl0rklVXPb3qUdUq/lN9TkUQDdVqtrnmWNDc51IJaZDbs6VFscD1s=@vger.kernel.org X-Gm-Message-State: AOJu0Ywq15f+PqO7qwDzErdagPswLp/tD3Ghk3ROYFVrTfcfpwzeJVum m9m4GtNix+VzbRvAEUHW08GUghoM5a1GxLZmHSQjqMQDEfBRlhNyGB/RECpW2vMzA33z9QTPRe1 Pbnf+4WJpmGAFr6vgKR6f1Dh1Nrz/asLuAE7hApZEfnVCii0oI/dm4RTrXhx/X5KS4/Q= X-Gm-Gg: ASbGncvBmxWq3l6xS50sWUn0tU1gd3AxDMJd8oIj8apcZ3VSufz8deKEtHx2SrWXxmL uYmGpuh3wHJMYFx3ZwBuuGYVHuechmOWFivO6dZGRM03Cr12S5McF+Agj0IXwZ3u4QIGK2NXfYO 22sHSpUXoMn1Y4C9fyKBUJFUpGHTTr2Q1sKFefRg2mZnLpfGys2trj5IbE94VK5JWZ4WCLE+sru BxYNhHxS/KcMjD7aXWHxFesY2Kv3QrNtpmRXinZV/4v7ypI/Q1IxS1w4qJOGG9nYJf0jxkMQvkI TCZTd/fNmCIzi7ehu9bvF9lG0c2xLi11JcR9iZutrkCtBudTWU0PH2yGIwZIFkTtWOaXv4f6vdL wxS3PEoVPt1lr3IFbXfZnjvANcw== X-Received: by 2002:a05:6a00:3d47:b0:7aa:9e4d:b693 with SMTP id d2e1a72fcca58-7b7a4edd4a6mr8524552b3a.17.1763030176300; Thu, 13 Nov 2025 02:36:16 -0800 (PST) X-Google-Smtp-Source: AGHT+IGGIq6p3zYaQkOGcAJjI+TPTb7shKZI9xkbDN5N3p8QV8KTQjYB+x/iWASM6JrTmUJjbM6j7Q== X-Received: by 2002:a05:6a00:3d47:b0:7aa:9e4d:b693 with SMTP id d2e1a72fcca58-7b7a4edd4a6mr8524500b3a.17.1763030175582; Thu, 13 Nov 2025 02:36:15 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7b9250d2d16sm1886922b3a.22.2025.11.13.02.36.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Nov 2025 02:36:15 -0800 (PST) From: Mukesh Ojha Date: Thu, 13 Nov 2025 16:05:52 +0530 Subject: [PATCH v7 02/14] firmware: qcom_scm: Remove redundant piece of code Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251113-kvm-rproc-v7-v7-2-df4910b7c20a@oss.qualcomm.com> References: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> In-Reply-To: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Mukesh Ojha X-Mailer: b4 0.14-dev-f7c49 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763030164; l=906; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=4OHWHDjFq2jAK9+Bld2fkj3MwlJ5JU6OOThT1NP9j4s=; b=w318Bx7r90h+xljy776NCBKlBZscTjUwXmchks0oHl7B2ii5+sjpDI+SxMgAzllPteVRLK8/D vd+vLj9aDZ7CVdPuR0c9KIiD2pEmgBVuUnJP07VuH43cYMqBKxCuxiJ X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Authority-Analysis: v=2.4 cv=NvjcssdJ c=1 sm=1 tr=0 ts=6915b4a1 cx=c_pps a=m5Vt/hrsBiPMCU0y4gIsQw==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=pWxEDRe995Kf1ot4LjYA:9 a=QEXdDO2ut3YA:10 a=IoOABgeZipijB_acs4fv:22 X-Proofpoint-GUID: sPQ2YJGS-qcqIF_H44HXxJZvVy7bfF_d X-Proofpoint-ORIG-GUID: sPQ2YJGS-qcqIF_H44HXxJZvVy7bfF_d X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTEzMDA3OCBTYWx0ZWRfX3oP187owVbp3 3mOucEuSk/ez7UUc4HcUN7iZ7Zkcl1k/21RY1zfHXg/7eQYGp+X6G1WVLhVV2CrUTCxRBxsJtkB KgbPS4/6ybDjMYo3ckymiGIyiUybz0dTWQWcIZEDT6W83xOWo7bu426a6emQMYucG7jnZ//jdTx KEGbUG7QeejZgkfHWzF1L6D61RLIRxDnQXBNSlTzy91xPSMmjF/Fm4o6vGgXsFvAh/w01cbPoI7 8c7uvclSNGhogg4QbmBB1E3huAwYwlzohboaHD6A8x4PE+p0G688ypYNxsloVvQ3iM7vbE6FW+P wKxTupj/t+cqeNLBcUVMD4aGfHsBqwnoHw0WlzUivS11lzZrOTmXx8X7kN3T4lofCcHLXCMZqP0 UGRRoh8P5Ku9o0MzS7AZJn8xXVDUqQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-13_01,2025-11-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 spamscore=0 suspectscore=0 phishscore=0 bulkscore=0 priorityscore=1501 malwarescore=0 adultscore=0 lowpriorityscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511130078 The qcom_scm_pas_metadata_release() function already frees the allocated memory and sets ctx->ptr to NULL. Resetting ctx->phys and ctx->size to zero is unnecessary because the context is expected to be discarded after release. Lets removes redundant assignments. Signed-off-by: Mukesh Ojha --- drivers/firmware/qcom/qcom_scm.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_= scm.c index e777b7cb9b12..26969bcd763c 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -650,8 +650,6 @@ void qcom_scm_pas_metadata_release(struct qcom_scm_pas_= metadata *ctx) dma_free_coherent(__scm->dev, ctx->size, ctx->ptr, ctx->phys); =20 ctx->ptr =3D NULL; - ctx->phys =3D 0; - ctx->size =3D 0; } EXPORT_SYMBOL_GPL(qcom_scm_pas_metadata_release); =20 --=20 2.50.1 From nobody Sun Feb 8 20:35:00 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B6CBE3346A2 for ; Thu, 13 Nov 2025 10:36:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030184; cv=none; b=IwRdjCR+npC2o+Hkw1OwFvudyX/lq4s1/OFPh4JQeNxFaJY+HRbfdpHHJTl2QBx7GaNsNeWTzvubzGEC1g0+MZKg7BRKihxf0yYY91vej5dN8OIxtiJoidWrwiJ0bbbc6IM0WXwxfKXEozvwlp9asr5ZI5oDjBUIgaywj2OA4M0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030184; c=relaxed/simple; bh=KUuA5AXV3d7PwlEmiR2ZurS0DdJb3IamebuV5ckZzmM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RKQIR7HxzGBDqezhX0ioLfj7NjCSem2HdmMu9QegWHOGxJX0almL0a00dgypfVqmejbVyzkorCkAeWG0WVDxuRFHuJaRxaZhC3YudeD7G6wVmQ6AYZS8+6vrChkqpmmPbIBdeDXN2kXD/sl8tDfGIaCrAr/FgNvMHUTkST14lcA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=oEzeGaTP; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=BDgrNk+3; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="oEzeGaTP"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="BDgrNk+3" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AD6hV4n3801092 for ; Thu, 13 Nov 2025 10:36:21 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= iEVZCcztr9EOYMu31Bx8peC82HjT/I+z2RQHL73/z+w=; b=oEzeGaTPcLXbdd0b +BxNL8yur2kVgJUH6kSIi0v9Z3BC5PTFzFu2ndJkLSVHWDFBlxg0l5NKA28wIZwS yp++D94Ljq67DKq2L1CLc+QtZugWbgDfB7qo/ZlecifVihqPoQ9txfq5vtvckwJZ DyP/1kGLu+EAZvXKfwMbhi+wZFpgvgBLP9+as0iOK2/3LBiZS6R8DEr75113CuN4 QAI/5gJumM11VAOuC4ZiRQT2PslABmsSaW56gZx4+IKpS3YdloiTOwsJ2mmBDi1l XaM7Wr6u3DV9PPW53+JL5k+Ufq6EK93BtuUqmpMBZgX1LfRnb4BZW3sfwddhURW2 02Xw7A== Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4adaam8qhk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 13 Nov 2025 10:36:21 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-343e17d7ed5so707080a91.0 for ; Thu, 13 Nov 2025 02:36:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763030180; x=1763634980; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=iEVZCcztr9EOYMu31Bx8peC82HjT/I+z2RQHL73/z+w=; b=BDgrNk+3kAVYE/RRx/AUcm25ae8io+rHHNhSw0PsvBmXH6bxMy5zj/rG3SSdLKZsRY lYxRbSw0xuu2nb8ZwFDty5C+lZYrEtFJvsNhq5LdQDWYhERcwLBcEyyAsjQ82hbkaGDp hgYGXhUdoiSuUXcACBd7WzvXDZB/5vP8gkh8aeNLXVJyGKuSsljz4WncydYUMflqQg5/ aROvVhyKUSV/+x1DS/Ifp9ex9quc25XWLAEgnLG7+8qkJjMCIH17R3bRjYyzPAJxifKo moOBzSvjcCHVwXmSGDXrdRcmcObDPf0JsO1PWlb4aDtjKv5t3QVjSs7Vd2wt2T+76qBC 34Iw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763030180; x=1763634980; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=iEVZCcztr9EOYMu31Bx8peC82HjT/I+z2RQHL73/z+w=; b=Prenreey9yIGIjuj7LtZANNT4pHioj6LxapeyZFXrKvVraxV5K+sNPwW8vFW26DGPt E49YqafeT1G/QlhkfdSD6sxfeiVX7Lc9tSMm0rctQGClyngt3RG4qUJxdB8QkoPgeKAO HXFQpUZpkC+atYCiDlrIOv+Aa6BO+GYCFfc2C+QD4rDPcbnWvHom0OpbgP0ktMvID6+C 61mL8oxm4vzKBjrMKSZzNf83KBzTeYUgbzpl4fqHtAMYN9VMhXnmTTTx9lS/RfnSq2Uz ZVEOpYcvZpe2VjlM5Pda6pxUO8ZXxB4Y4Dbzx5PblVy2pWF3Lrv4GjNJv5ut5YUHd4Th yLew== X-Forwarded-Encrypted: i=1; AJvYcCXrDaRqSQpVrNcVhpLhxduCzJDfcd1pl24DJrRRhvTtqRw85MsQn3HCvyKQWCodBoy6eZNaKeaVyDosUsw=@vger.kernel.org X-Gm-Message-State: AOJu0YyNPM/z7T1ZRoQN/Qg5xkQYwK/IQCPWBxF9boL5tfh8TMVbR6fl xrRJSXnW2qQHeSwV5zl9En3NZNJbOvUqZ8F9csM34E5mlageS41dmzxyE2dzE+AML0rHEQh1qpJ dO3VM56M2bVeivN7lpK1Pa8Mx1WHZSTt6jPsZCiCK50p2VmmmaxwuUZdLI2jVp3Gw1vM= X-Gm-Gg: ASbGnctJ0sU58SbIrvaR1MfTfR6JquHUoKz3QgOAjUCcR98JK1XsYIqW9KwsWjiy5z9 imID/6f5UbLlsz+zABVLxicwL+JZF1TBlDLQq1/pl4u4TH8Y2HuIZ2kBSsBngwzfd/iEccPGuay 7hXzyn84Xd/MMhW8sVZaIFivOXhcaoLt8HEHhjjBSgk6/stZnCIPLwqXOBNfsYmBm8C3rxfHMPw f4gNINmXdLEIfzXrZ07UBJH/CDmDUTw7o57UBOdBpazReBczdSWbeI1fUz3S35jay/LrKVV99N8 ++3ws+BoOW5cbPBJkvqqpZM2FYUlyqJMSvl/V5UDijIwv655e51d41CYemW1LUAxhEjNS4wkFA7 Zq4yAG2un9UfW7WESjJhyo2LczA== X-Received: by 2002:a17:90a:e183:b0:340:b912:536 with SMTP id 98e67ed59e1d1-343ddee978amr7486683a91.31.1763030180297; Thu, 13 Nov 2025 02:36:20 -0800 (PST) X-Google-Smtp-Source: AGHT+IF8UmCTjeTUjhTTxUciQIXJWRRu9xo+X+SKD4RSpBnnRCMZwQfw0qhhEkDdcvGeBMHTkvMpWg== X-Received: by 2002:a17:90a:e183:b0:340:b912:536 with SMTP id 98e67ed59e1d1-343ddee978amr7486623a91.31.1763030179631; Thu, 13 Nov 2025 02:36:19 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7b9250d2d16sm1886922b3a.22.2025.11.13.02.36.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Nov 2025 02:36:19 -0800 (PST) From: Mukesh Ojha Date: Thu, 13 Nov 2025 16:05:53 +0530 Subject: [PATCH v7 03/14] firmware: qcom_scm: Rename peripheral as pas_id Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251113-kvm-rproc-v7-v7-3-df4910b7c20a@oss.qualcomm.com> References: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> In-Reply-To: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Bryan O'Donoghue , Konrad Dybcio , Mukesh Ojha X-Mailer: b4 0.14-dev-f7c49 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763030164; l=6116; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=KUuA5AXV3d7PwlEmiR2ZurS0DdJb3IamebuV5ckZzmM=; b=J8ybH+HJ2/Bn6GKHF4ZbJkQuofWMoXbmGQ1NVkQaZfJr63kLsJkb30sa3TyPQH+nC53FbEtLo d7aBjmCFhePAWwh61FKgClhKSmOIJLj0RqKsLxlxS7xakXDxwXAXg4r X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTEzMDA3OCBTYWx0ZWRfXy4OCKpPtSoi9 okQH9eKoHoDYjGfZPJP0G2qdwsc8F54srOMS0jE+JWz/34aGC6OR/7MUOBo7EBaoaHZt7k5VpU/ /neV9gjs7AQ5qH5jMCky+ZUSuEUywMIcVxv1X0eAq/S6lGOF7U+Hb0jBA/Ge+mBm8WzP4bU+awE 8b8KHpVk8GhH5hr720bAPsrp6WhYla0T5ouCxFtdJcOW+r4aDZWo3MYrl/3ID2uGwnqmkjs9yoe 1wryS1Crqfgz0P24FkVGZjzhne4YfD6b7Jg3xi4reX/mZWU83lxa0C8X09VQcygMdJWZs2ewl/n xljJuA/CJtuTzxG9TQGkKXMlbLERnzBBxJW6m1tD45lZMWyDJeFgCiZkO2+x/T3/WWObnddAiGb RnLkfvWdah7f7CRwoLgS4FzlUDKT9A== X-Authority-Analysis: v=2.4 cv=d4f4CBjE c=1 sm=1 tr=0 ts=6915b4a5 cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=bcWw3dkznkfw-y6_B5AA:9 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: HdGN5O0yxL8ebjSDSTl0tNShShZp3m8q X-Proofpoint-GUID: HdGN5O0yxL8ebjSDSTl0tNShShZp3m8q X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-13_01,2025-11-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 bulkscore=0 priorityscore=1501 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511130078 Peripheral and pas_id refers to unique id for a subsystem and used only when peripheral authentication service from secure world is utilized. Lets rename peripheral to pas_id to reflect closer to its meaning. Reviewed-by: Bryan O'Donoghue Reviewed-by: Konrad Dybcio Signed-off-by: Mukesh Ojha --- drivers/firmware/qcom/qcom_scm.c | 30 +++++++++++++++--------------- include/linux/firmware/qcom/qcom_scm.h | 10 +++++----- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_= scm.c index 26969bcd763c..0a0c48fca7cf 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -562,7 +562,7 @@ static void qcom_scm_set_download_mode(u32 dload_mode) * qcom_scm_pas_init_image() - Initialize peripheral authentication service * state machine for a given peripheral, using the * metadata - * @peripheral: peripheral id + * @pas_id: peripheral authentication service id * @metadata: pointer to memory containing ELF header, program header table * and optional blob of data used for authenticating the metadata * and the rest of the firmware @@ -575,7 +575,7 @@ static void qcom_scm_set_download_mode(u32 dload_mode) * track the metadata allocation, this needs to be released by invoking * qcom_scm_pas_metadata_release() by the caller. */ -int qcom_scm_pas_init_image(u32 peripheral, const void *metadata, size_t s= ize, +int qcom_scm_pas_init_image(u32 pas_id, const void *metadata, size_t size, struct qcom_scm_pas_metadata *ctx) { dma_addr_t mdata_phys; @@ -585,7 +585,7 @@ int qcom_scm_pas_init_image(u32 peripheral, const void = *metadata, size_t size, .svc =3D QCOM_SCM_SVC_PIL, .cmd =3D QCOM_SCM_PIL_PAS_INIT_IMAGE, .arginfo =3D QCOM_SCM_ARGS(2, QCOM_SCM_VAL, QCOM_SCM_RW), - .args[0] =3D peripheral, + .args[0] =3D pas_id, .owner =3D ARM_SMCCC_OWNER_SIP, }; struct qcom_scm_res res; @@ -656,20 +656,20 @@ EXPORT_SYMBOL_GPL(qcom_scm_pas_metadata_release); /** * qcom_scm_pas_mem_setup() - Prepare the memory related to a given periph= eral * for firmware loading - * @peripheral: peripheral id + * @pas_id: peripheral authentication service id * @addr: start address of memory area to prepare * @size: size of the memory area to prepare * * Returns 0 on success. */ -int qcom_scm_pas_mem_setup(u32 peripheral, phys_addr_t addr, phys_addr_t s= ize) +int qcom_scm_pas_mem_setup(u32 pas_id, phys_addr_t addr, phys_addr_t size) { int ret; struct qcom_scm_desc desc =3D { .svc =3D QCOM_SCM_SVC_PIL, .cmd =3D QCOM_SCM_PIL_PAS_MEM_SETUP, .arginfo =3D QCOM_SCM_ARGS(3), - .args[0] =3D peripheral, + .args[0] =3D pas_id, .args[1] =3D addr, .args[2] =3D size, .owner =3D ARM_SMCCC_OWNER_SIP, @@ -697,18 +697,18 @@ EXPORT_SYMBOL_GPL(qcom_scm_pas_mem_setup); /** * qcom_scm_pas_auth_and_reset() - Authenticate the given peripheral firmw= are * and reset the remote processor - * @peripheral: peripheral id + * @pas_id: peripheral authentication service id * * Return 0 on success. */ -int qcom_scm_pas_auth_and_reset(u32 peripheral) +int qcom_scm_pas_auth_and_reset(u32 pas_id) { int ret; struct qcom_scm_desc desc =3D { .svc =3D QCOM_SCM_SVC_PIL, .cmd =3D QCOM_SCM_PIL_PAS_AUTH_AND_RESET, .arginfo =3D QCOM_SCM_ARGS(1), - .args[0] =3D peripheral, + .args[0] =3D pas_id, .owner =3D ARM_SMCCC_OWNER_SIP, }; struct qcom_scm_res res; @@ -733,18 +733,18 @@ EXPORT_SYMBOL_GPL(qcom_scm_pas_auth_and_reset); =20 /** * qcom_scm_pas_shutdown() - Shut down the remote processor - * @peripheral: peripheral id + * @pas_id: peripheral authentication service id * * Returns 0 on success. */ -int qcom_scm_pas_shutdown(u32 peripheral) +int qcom_scm_pas_shutdown(u32 pas_id) { int ret; struct qcom_scm_desc desc =3D { .svc =3D QCOM_SCM_SVC_PIL, .cmd =3D QCOM_SCM_PIL_PAS_SHUTDOWN, .arginfo =3D QCOM_SCM_ARGS(1), - .args[0] =3D peripheral, + .args[0] =3D pas_id, .owner =3D ARM_SMCCC_OWNER_SIP, }; struct qcom_scm_res res; @@ -770,18 +770,18 @@ EXPORT_SYMBOL_GPL(qcom_scm_pas_shutdown); /** * qcom_scm_pas_supported() - Check if the peripheral authentication servi= ce is * available for the given peripherial - * @peripheral: peripheral id + * @pas_id: peripheral authentication service id * * Returns true if PAS is supported for this peripheral, otherwise false. */ -bool qcom_scm_pas_supported(u32 peripheral) +bool qcom_scm_pas_supported(u32 pas_id) { int ret; struct qcom_scm_desc desc =3D { .svc =3D QCOM_SCM_SVC_PIL, .cmd =3D QCOM_SCM_PIL_PAS_IS_SUPPORTED, .arginfo =3D QCOM_SCM_ARGS(1), - .args[0] =3D peripheral, + .args[0] =3D pas_id, .owner =3D ARM_SMCCC_OWNER_SIP, }; struct qcom_scm_res res; diff --git a/include/linux/firmware/qcom/qcom_scm.h b/include/linux/firmwar= e/qcom/qcom_scm.h index a55ca771286b..a13f703b16cd 100644 --- a/include/linux/firmware/qcom/qcom_scm.h +++ b/include/linux/firmware/qcom/qcom_scm.h @@ -72,13 +72,13 @@ struct qcom_scm_pas_metadata { ssize_t size; }; =20 -int qcom_scm_pas_init_image(u32 peripheral, const void *metadata, size_t s= ize, +int qcom_scm_pas_init_image(u32 pas_id, const void *metadata, size_t size, struct qcom_scm_pas_metadata *ctx); void qcom_scm_pas_metadata_release(struct qcom_scm_pas_metadata *ctx); -int qcom_scm_pas_mem_setup(u32 peripheral, phys_addr_t addr, phys_addr_t s= ize); -int qcom_scm_pas_auth_and_reset(u32 peripheral); -int qcom_scm_pas_shutdown(u32 peripheral); -bool qcom_scm_pas_supported(u32 peripheral); +int qcom_scm_pas_mem_setup(u32 pas_id, phys_addr_t addr, phys_addr_t size); +int qcom_scm_pas_auth_and_reset(u32 pas_id); +int qcom_scm_pas_shutdown(u32 pas_id); +bool qcom_scm_pas_supported(u32 pas_id); =20 int qcom_scm_io_readl(phys_addr_t addr, unsigned int *val); int qcom_scm_io_writel(phys_addr_t addr, unsigned int val); --=20 2.50.1 From nobody Sun Feb 8 20:35:00 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7D9A9330327 for ; Thu, 13 Nov 2025 10:36:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030188; cv=none; b=eMQKW99rPbSoxhKT7/HzgaWtjCKIlwoQcoPjP84E4TPS7JxmwbOjut6mKAJQ/0VVNiBhHZAhFz2xtlUMK0tT3u9F2xOgLh3Ql+Zlbb0l8/lmoSz5m9mkCMRHMMAAZPOTZshFsgA4+KM/Tc2kVqXbhImt9RD72MDKU0PeXB4PiPU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030188; c=relaxed/simple; bh=VVCR+ENypbBKO+M86kQWm+8VtQ4AQkNx4S2dX6qeqes=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gyA6aFsbmBBJGXnCxYtoBa2eLiEhoEZsa04JcpRxBmXG/dGP6cUd00SpT6fX4cO9uL3ekY9LsYkFXRJcLPzr4wBz1ZVJLt9JT/+m8V43IEB2pnycKxz5SNb281XuDsYYGzE+GYfZ9zZFgxdH/aPvsP/ZmqXD78XTuCxGJv6sLsw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=RIghybrT; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=AyRNGeNo; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="RIghybrT"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="AyRNGeNo" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5ADAHHDf4097082 for ; Thu, 13 Nov 2025 10:36:25 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= rR/0l88aDcNP0Dih5MxWezK9voyuEZTIWNeSppsdn8s=; b=RIghybrTaMxsMxOM 8olBtVdmtx7ZA1obXqx1uNdIAVICziDnOmdDRlylNJCcG98c5eQtdDQ7nabMYchn pp6R4Z9BW0glPdCggwGfGczeHZKGMV/ofJu/vroAe1EpTJ+Ety4eKKos/WxDGyes kyO35EaxHkTONd7qsyOVDVtJbw9q1Y7XFuW/EAVLBc5gtc0yN9ei1SXWSZJh4ftR rLC+XRquKEjDk2fP3k2pq3n7WwjFz9DBuP1bCzpi/CPCp2/NnagbGgKH66zLTxWZ 0npXC21vHCOU+U8WSaFMDbqxASzFhzy4VX+q102etLsihCVb/rUPA8Kq5XxMsQwF bQ0jbw== Received: from mail-pg1-f199.google.com (mail-pg1-f199.google.com [209.85.215.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4addetr1q3-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 13 Nov 2025 10:36:25 +0000 (GMT) Received: by mail-pg1-f199.google.com with SMTP id 41be03b00d2f7-b630b4d8d52so586001a12.3 for ; Thu, 13 Nov 2025 02:36:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763030184; x=1763634984; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=rR/0l88aDcNP0Dih5MxWezK9voyuEZTIWNeSppsdn8s=; b=AyRNGeNo0DJWwKdxR+jDZdokI0Ym2rk+BTGy4u2gC3BqggP5kz5hiW11J846rgJmst TI32YIAPM3LlWr6XM7h6zXugh7mreVaspmUEZ7GpAvT3i19ZJ3pdzI6sDGeC0mkPl0rQ rio6aOaYXsM9a81/K1ItuEHnD67PJ1JHZjX1xZ1dvzh6ITttjHmUfP6jugQJ7BumVj07 UsGdGk+8M/8KNSbtESXl6USa4vZ+zKJ5JZvSqqPtTDYPuYLSnQHHNEzPKu6fF6XSb94n GT+2wj9yXSwXBpbfS4i0bqwcsETxDG8394BDFfdz4AH0AXPwzEPcWoBxCRBKgrITc3K1 /06g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763030184; x=1763634984; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=rR/0l88aDcNP0Dih5MxWezK9voyuEZTIWNeSppsdn8s=; b=vRHXZaE6csxjo5+kTTj8MubgFDsVSUbqprn85v7X+YGujDM89ZQrA48PkTral2fUt6 3XbtIi7jpRcSGiWZ13YX1/ioq069tJ3WZuHG0jnfETjEJUOberxJ18rU95aegh8+YVQ1 gojircceQLFKkDltPmzenrwiFnO0gkM+cwpp3lbXMkhXtqBD1IXOpfiEQJaeDvNf0twZ PsEtFmqLzkHIpct01QqKhFsVbS1B7iiMV5XVzp0eHFgM+rmdWD9KkNhreXSmS3rzh48P YmaJIds2nUeVdZ99+JFUCku1eMckU3p0BKQl/mY2j3gtaNHumD9X19CQoRFZI6/ali+X /LzA== X-Forwarded-Encrypted: i=1; AJvYcCVmGJil5+aDJRCKLuyHjSTrbEvShOK1EoxK/Y6ZX/dvCQBbuqzJAIxgLJt07HR1cvo20+jc3CQa28+E12w=@vger.kernel.org X-Gm-Message-State: AOJu0YwZZ/6pY6UpNwvquKnq9i7J6u3jgOPqPji3ONSqHy9m2s1+R3VC 0n0/BK467QRiI2mGhdYHGpzuHqf2QXlM9/0XI8akRMkAfFLc32Yt0MJb7QcKJ3LOe3ewsoNl00x gz5KF74LAE4KW8H2VsmPIDAa9JNLWngHns3hjF0n8jzWYx8Ii913xEg7vH7I214roMWs= X-Gm-Gg: ASbGncvmHvLex978aCeS8NZjjangUkH2EGKAhD1PVSSCs+q4fs1oUy6sV0EogVbAyuq Yf4pGpLcaf5eZSg3dH0Qa0BJy4G8jd1kwfdro+ZIKKPF7VeDrO+kBONWB+dg3wuRD7H6AWUt+4D HPXrGuNTVdsaKRq5CY/iemFb0POdkBvCuItMMTASGz0KtEtCkcr5EoiIhuVRan0fc7ZEprT7zB9 w43tFA+FHZgoXgZTjS9kxF6l1wPC3svBaM/JSjO3w3Wst08D4qwMT8yodMqGQlyJWJsmBh+KU5d vOr570hAHUclzH0v1lcErBg2jCojZeeU9A6G/wxHj17+1DiRKpoo6Dc8OOe/w5Ns8LmaWnB7R6y Lw63BtFUH7HaYByPfNqOLIUOJXg== X-Received: by 2002:a05:6a20:94ca:b0:2ea:41f1:d54a with SMTP id adf61e73a8af0-3590c216599mr9041040637.55.1763030183817; Thu, 13 Nov 2025 02:36:23 -0800 (PST) X-Google-Smtp-Source: AGHT+IGE/WGRXIgdKDakNktZ0qm+S+LvqAvui3zQTOhtcocikgATOeehZpZplyPg0+JiJJmaF0kF3w== X-Received: by 2002:a05:6a20:94ca:b0:2ea:41f1:d54a with SMTP id adf61e73a8af0-3590c216599mr9040998637.55.1763030183216; Thu, 13 Nov 2025 02:36:23 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7b9250d2d16sm1886922b3a.22.2025.11.13.02.36.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Nov 2025 02:36:22 -0800 (PST) From: Mukesh Ojha Date: Thu, 13 Nov 2025 16:05:54 +0530 Subject: [PATCH v7 04/14] firmware: qcom_scm: Introduce PAS context initialization helper function Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251113-kvm-rproc-v7-v7-4-df4910b7c20a@oss.qualcomm.com> References: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> In-Reply-To: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Mukesh Ojha X-Mailer: b4 0.14-dev-f7c49 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763030164; l=3953; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=VVCR+ENypbBKO+M86kQWm+8VtQ4AQkNx4S2dX6qeqes=; b=cC/tf3rnrqqWy8CWtId4ou3nEUEHC8IlJxTfvNaPOg8RIyscvS9Fvgv9tVY7E5Fju0KRnigbR 5bXSF8CNs9WDvnIx0/VvU7goRrOcp9Ll3rVlFqfpZMy/rwk9QMTf4L0 X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-GUID: ndUAD6FkEpccf_ddr0q2EEOIvdFtfuCK X-Proofpoint-ORIG-GUID: ndUAD6FkEpccf_ddr0q2EEOIvdFtfuCK X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTEzMDA3OCBTYWx0ZWRfX4YEQQC1Oj8rR VQMfv2843N0KYrnQzCgm78fR87AsfXYmbbkNYoIz++Oq7W4fKLyqPJlbQGNE8jnSxxhyIfAGe1a JM+OSoDm/cyCyowtdIWFGefJFRaPB8dOWbhRVRzqk1F+EFeCRfRS2Ea/c+/TQGrvk40NFSoGMyt 036+Hu5xruj9uPPrukLp5uWZ1LsalCu10QtFJ+BvqU+zmop7CDvBwSkUgJgupJMaymeO+lCZ2zP OeU24ENUciIOOJALT1YxebxXc3UpaAlAQOGpOEgZJtUdbetCMDRys5tr22e6CTW33/onYUGDAFS XNqV3wIpLEXUSldzDysEgu90YNqKvHgLEkk8L5Bwh3xAxlj+Apq9fFxYKVSUzpTeqTt8chmJTTM vqgDIxPrvMtcZL2RQ0g+j5ynK0e5Bw== X-Authority-Analysis: v=2.4 cv=QZNrf8bv c=1 sm=1 tr=0 ts=6915b4a9 cx=c_pps a=Oh5Dbbf/trHjhBongsHeRQ==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=FtZ2CgB1kwCBZN0VdloA:9 a=QEXdDO2ut3YA:10 a=_Vgx9l1VpLgwpw_dHYaR:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-13_01,2025-11-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 adultscore=0 phishscore=0 suspectscore=0 spamscore=0 priorityscore=1501 impostorscore=0 bulkscore=0 malwarescore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511130078 When the Peripheral Authentication Service (PAS) method runs on a SoC where Linux operates at EL2 (i.e., without the Gunyah hypervisor), the reset sequences are handled by TrustZone. In such cases, Linux must perform additional steps before invoking PAS SMC calls, such as creating a SHM bridge. Therefore, PAS SMC calls require awareness and handling of these additional steps when Linux runs at EL2. To support this, there is a need for a data structure that can be initialized prior to invoking any SMC or MDT functions. This structure allows those functions to determine whether they are operating in the presence or absence of the Gunyah hypervisor and behave accordingly. Currently, remoteproc and non-remoteproc subsystems use different variants of the MDT loader helper API, primarily due to differences in metadata context handling. Remoteproc subsystems retain the metadata context until authentication and reset are completed, while non-remoteproc subsystems (e.g., video, graphics, IPA, etc.) do not retain the metadata context and can free it within the qcom_scm_pas_init() call by passing a NULL context parameter and due to these differences, it is not possible to extend metadata context handling to support remoteproc and non remoteproc subsystem use PAS operations, when Linux operates at EL2. Add PAS context data structure and initialization helper function. Signed-off-by: Mukesh Ojha --- drivers/firmware/qcom/qcom_scm.c | 32 ++++++++++++++++++++++++++++++= ++ include/linux/firmware/qcom/qcom_scm.h | 12 ++++++++++++ 2 files changed, 44 insertions(+) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_= scm.c index 0a0c48fca7cf..e4eb7f3ab7a5 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -558,6 +558,38 @@ static void qcom_scm_set_download_mode(u32 dload_mode) dev_err(__scm->dev, "failed to set download mode: %d\n", ret); } =20 +/** + * devm_qcom_scm_pas_context_init() - Initialize peripheral authentication= service + * context for a given peripheral + * + * PAS context is device-resource managed, so the caller does not need + * to worry about freeing the context memory. + * + * @dev: PAS firmware device + * @pas_id: peripheral authentication service id + * @mem_phys: Subsystem reserve memory start address + * @mem_size: Subsystem reserve memory size + * + * Upon successful, returns the PAS context or ERR_PTR() of the error othe= rwise. + */ +void *devm_qcom_scm_pas_context_init(struct device *dev, u32 pas_id, phys_= addr_t mem_phys, + size_t mem_size) +{ + struct qcom_scm_pas_context *ctx; + + ctx =3D devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL); + if (!ctx) + return ERR_PTR(-ENOMEM); + + ctx->dev =3D dev; + ctx->pas_id =3D pas_id; + ctx->mem_phys =3D mem_phys; + ctx->mem_size =3D mem_size; + + return ctx; +} +EXPORT_SYMBOL_GPL(devm_qcom_scm_pas_context_init); + /** * qcom_scm_pas_init_image() - Initialize peripheral authentication service * state machine for a given peripheral, using the diff --git a/include/linux/firmware/qcom/qcom_scm.h b/include/linux/firmwar= e/qcom/qcom_scm.h index a13f703b16cd..dd07dce7833a 100644 --- a/include/linux/firmware/qcom/qcom_scm.h +++ b/include/linux/firmware/qcom/qcom_scm.h @@ -72,6 +72,18 @@ struct qcom_scm_pas_metadata { ssize_t size; }; =20 +struct qcom_scm_pas_context { + struct device *dev; + u32 pas_id; + phys_addr_t mem_phys; + size_t mem_size; + void *ptr; + dma_addr_t phys; + ssize_t size; +}; + +void *devm_qcom_scm_pas_context_init(struct device *dev, u32 pas_id, phys_= addr_t mem_phys, + size_t mem_size); int qcom_scm_pas_init_image(u32 pas_id, const void *metadata, size_t size, struct qcom_scm_pas_metadata *ctx); void qcom_scm_pas_metadata_release(struct qcom_scm_pas_metadata *ctx); --=20 2.50.1 From nobody Sun Feb 8 20:35:00 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BA20033509B for ; Thu, 13 Nov 2025 10:36:29 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030191; cv=none; b=BRF0x2Bq/kW5MgghwNRyGKeLycyNd/oJHGtiZRkHMErREO9Z4Cuekiu1uU/sRhh638g+2w48G89ZHBAa9rBj5oaC4kmn+4m2yp9woERiXGmwiOrNyw8GrKH6u37yAM3eRnwIedL+hKuDTl/z2cp67rvxd8cnr2epEt1mtSf93XA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030191; c=relaxed/simple; bh=C3Ley1QLmPG1XuMOkdJxmCMYyeY9BMVS2vkIgtbl3p8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Gr/sAtlHaDDLVe1RDajx1BJlfoK3XuZgThqonKS31uLrkCBV4qvqPOJBAUywiRNYgnpQf0zuaPgUxkG6LjOfHcNqcNgkBehHgcJTSwfn3WOvoGUEg0Sw50DXY4mPT/pM5gt7/MLeuOkz8DvcCd201JMzKX9Ci+jHsWNG9OpeRG8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=I2WDlJPK; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=b5xO78qg; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="I2WDlJPK"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="b5xO78qg" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AD4wKxv3336564 for ; Thu, 13 Nov 2025 10:36:28 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= ASEm9fX8+VVkA1BJSl3kYhAYISeC3QO/YbGUHvANDO8=; b=I2WDlJPKsyfB4pvy ajmbYnogCL7lLDE5F/meBn9komSPuqMcfvyEeTVgvSqsg8mFw5Gv0ZScb26P6W2z yMdfNZrLiZtKOIU7eHFUUVqe8/+tXlM81gpC11vdsGOaVIdWK5H1vWzePid6sK4l u6FTRO2PSFkdkAQ71z/mhic0NH/sJhJDffKff0Q1chOlBTb8oHdrC35PP/Jh4lbA v9tklnAkStsNa7kVFgAHnmB1dgt+/ADqoMH1QEobmAwMWFb44b98iNe65vCCFlFb flZ6OoWAHeZtdR9P9+X+oPPM7vqhUrMM/8p+eEDUL9cLYl71Q/wVZIZuQkTeCoUu /BTRhg== Received: from mail-pf1-f197.google.com (mail-pf1-f197.google.com [209.85.210.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ad8sa11x2-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 13 Nov 2025 10:36:28 +0000 (GMT) Received: by mail-pf1-f197.google.com with SMTP id d2e1a72fcca58-7aa148105a2so648165b3a.1 for ; Thu, 13 Nov 2025 02:36:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763030188; x=1763634988; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=ASEm9fX8+VVkA1BJSl3kYhAYISeC3QO/YbGUHvANDO8=; b=b5xO78qg1esTepb3Ev8H0yTNFXc+oX5eHbnSw/5SgJPNxKHNzGFvuqzvJLQb9G0oxv F9zMRFjdiL59nJOMVoQjagnzpfM2ULVVkhitCEshucghSC05qWtd/f0vLT2lqQg99SOS Mg1ddtJmUCTOgkwsNHYJAuZGBgkwJ/O4kunl9v7ymzv1P74mergp8uTkmNQz5j5C7PEM lo4GBafpO0bCOLl368tLlfsO0UMef7lvym0ALv3jbqq/o0i4TYbv8O2OW3Won9eHolA9 jhh3iajkJ1MPWnwQ+zt6Suzox/v+UIbZu2osMGKYgpdBT3pTQCHnNhwN70tfjk8xVRUd 7FBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763030188; x=1763634988; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=ASEm9fX8+VVkA1BJSl3kYhAYISeC3QO/YbGUHvANDO8=; b=jUAsvOZ8vQuh3xkVHrqWSbD849Bhz+XXaDfRsEgyxCH7K1+mKBVm6DtBZB5+Jh08m+ /RfvwvMAIWC2ByRKOrluupb8K2yoPfPaz5ZvRn23vGkJjHcMhm1lpaFgx0KgAxnb3Kzi yxECMviiSevvFNEPk71Elussa976+5NoNdSxjliN54t3rqPqx/tq8GxlFEEFdqbH9mD4 3j5qe6hEHKDAZeAcBYpfB4WsxOEFG5Iz+j9IinYlgQDkrQV2HUKQzxdB2TGmSSasL7Ju aB+++s26lK+H31qqgK/vd+0lg7pOQ5M9UoJxjqaY35B6aJfzEN0e6BGsbPw622OHAG7v 06hg== X-Forwarded-Encrypted: i=1; AJvYcCUrdb2tc+ee63JBGEzV4zCK5Ugoc0XoTvTfkTpLPAKps1h+71rJZd/sf1/wV06Gd7ACek1ufYXsXHgH8Ps=@vger.kernel.org X-Gm-Message-State: AOJu0YwY2BsxsILUtnjzmqY/O3iMvQ15EaN/ZuZsumDwWyuFXkjhlZHp aLZl4nvkit1sobKzAXWUSO9yXjl0TavuTYFf7vG0v1S2sUB3NlU2tHAskxbfUut4sYOTEQFZamm /9M06W1JDO4bslL4TrJNk5mOLyDqH7JT/QEdsEJqYzdNeKmg+HEGf/0zSvZ4sEZmuQuM= X-Gm-Gg: ASbGncuEAv1vtAQbKPLv1+0l5UDm0QJURCp+rHoPK6leFPY0AYCdfHnY3zNZx4skeXP vYPSNQHBQRciW+i73IdJinRAqzfp8Mu0+OZgISBINLQ7x2HI/2vVzrpfuHD4lhwEJXMdTxTrxyL N15A1SQ+1VcTSDfoPdI57Bcu60N9CVY8c6pci38k8qRz6jO2MUWtvl4Hz6pHLdXXp/BP969Z2sG tX46FMs+ECQ3ocuGBwoOJ+oaIhtkZKJo9ysbGJmPoyx3bKsRhoEGg5dT6KzJ1lNWWVH6J1MbP30 pMPJI3VPofJmJaFxjNh6/4AeAuacKeqKMBwFkixyJLNoV/Kimn9Y2A3HtyKLOThJrSOjvbA4hB1 SKeGj5ef1j4DcYr10NHz/268mig== X-Received: by 2002:aa7:8c02:0:b0:7b8:10b9:9bec with SMTP id d2e1a72fcca58-7b810b99e59mr4473867b3a.19.1763030187446; Thu, 13 Nov 2025 02:36:27 -0800 (PST) X-Google-Smtp-Source: AGHT+IHraKJ7FzEJcufdUYlZuKtORYDrA89UcotFb9PTETB2MnHOmHUvyU/2tLG7D0FAABtjVlywIw== X-Received: by 2002:aa7:8c02:0:b0:7b8:10b9:9bec with SMTP id d2e1a72fcca58-7b810b99e59mr4473835b3a.19.1763030186811; Thu, 13 Nov 2025 02:36:26 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7b9250d2d16sm1886922b3a.22.2025.11.13.02.36.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Nov 2025 02:36:26 -0800 (PST) From: Mukesh Ojha Date: Thu, 13 Nov 2025 16:05:55 +0530 Subject: [PATCH v7 05/14] remoteproc: pas: Replace metadata context with PAS context structure Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251113-kvm-rproc-v7-v7-5-df4910b7c20a@oss.qualcomm.com> References: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> In-Reply-To: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Mukesh Ojha X-Mailer: b4 0.14-dev-f7c49 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763030164; l=8846; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=C3Ley1QLmPG1XuMOkdJxmCMYyeY9BMVS2vkIgtbl3p8=; b=PPiy48q2winq0kmlAb6vA28TJQm4wOYk29FxzITEZVdTLh6w9mv+OqdAsJktUV89Zg4M5xhi9 zp9Gc+KAVjJCzKG+6dbZLWBdClsmtH0G+nY8A6fl4RsPkKb0tjDd84K X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-GUID: 5IUHCXk6veUAx8wAwzTXqVNsF8a_sqyu X-Proofpoint-ORIG-GUID: 5IUHCXk6veUAx8wAwzTXqVNsF8a_sqyu X-Authority-Analysis: v=2.4 cv=dcGNHHXe c=1 sm=1 tr=0 ts=6915b4ac cx=c_pps a=rEQLjTOiSrHUhVqRoksmgQ==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=FPhKjH8jRcijH9SIsZwA:9 a=QEXdDO2ut3YA:10 a=2VI0MkxyNR6bbpdq8BZq:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTEzMDA3OCBTYWx0ZWRfX/nrKhOFDMeN3 /2CanA9KYlcAUA4mQVdWxKdRo3FtE1vi8okFRHT6YAukUr+mRo0KNMGoKoN/9bIMEKrIfPy0YGx WgwomyZBD68yUK7Gd/UryWSsn2jedgLWkChHCeBzpw5sv45KKu6lsVi9xG73NpiX87JJA7+HTk2 zQBI3dNwP2vYo/PDm1908Ghek3svE3O1m8ANSWfAbMlkRkYrj+28xDBq4Jl6EvbBcg25wFKNfLM x6odMkOFspESYjdLo6R4T5zLV1p7KLo1ec7FQUxxr6vRAvniSk3cyxGIOoVoMJe7Kyu9tyeyclm FBZI5lkNku0Tx48rLvzL9KMUBRbe4zUzvZy5pE7M9rd78WcIPqsEX9Y0IsX9YiPEMkZP17srTl5 vv/TiaMulYw/CxxoDYmCKMIap7IdWg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-13_01,2025-11-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 malwarescore=0 lowpriorityscore=0 phishscore=0 suspectscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511130078 As a superset of the existing metadata context, the PAS context structure enables both remoteproc and non-remoteproc subsystems to better support scenarios where the SoC runs with or without the Gunyah hypervisor. To reflect this, relevant SCM and metadata functions are updated to incorporate PAS context awareness and remove metadata context data structure completely. Signed-off-by: Mukesh Ojha --- drivers/firmware/qcom/qcom_scm.c | 8 +++---- drivers/remoteproc/qcom_q6v5_pas.c | 38 ++++++++++++++++++++++++------= ---- drivers/soc/qcom/mdt_loader.c | 4 ++-- include/linux/firmware/qcom/qcom_scm.h | 10 ++------- include/linux/soc/qcom/mdt_loader.h | 6 +++--- 5 files changed, 38 insertions(+), 28 deletions(-) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_= scm.c index e4eb7f3ab7a5..ba28b5d6254e 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -599,7 +599,7 @@ EXPORT_SYMBOL_GPL(devm_qcom_scm_pas_context_init); * and optional blob of data used for authenticating the metadata * and the rest of the firmware * @size: size of the metadata - * @ctx: optional metadata context + * @ctx: optional pas context * * Return: 0 on success. * @@ -608,7 +608,7 @@ EXPORT_SYMBOL_GPL(devm_qcom_scm_pas_context_init); * qcom_scm_pas_metadata_release() by the caller. */ int qcom_scm_pas_init_image(u32 pas_id, const void *metadata, size_t size, - struct qcom_scm_pas_metadata *ctx) + struct qcom_scm_pas_context *ctx) { dma_addr_t mdata_phys; void *mdata_buf; @@ -672,9 +672,9 @@ EXPORT_SYMBOL_GPL(qcom_scm_pas_init_image); =20 /** * qcom_scm_pas_metadata_release() - release metadata context - * @ctx: metadata context + * @ctx: pas context */ -void qcom_scm_pas_metadata_release(struct qcom_scm_pas_metadata *ctx) +void qcom_scm_pas_metadata_release(struct qcom_scm_pas_context *ctx) { if (!ctx->ptr) return; diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q= 6v5_pas.c index 158bcd6cc85c..729e7b9bc183 100644 --- a/drivers/remoteproc/qcom_q6v5_pas.c +++ b/drivers/remoteproc/qcom_q6v5_pas.c @@ -117,8 +117,8 @@ struct qcom_pas { struct qcom_rproc_ssr ssr_subdev; struct qcom_sysmon *sysmon; =20 - struct qcom_scm_pas_metadata pas_metadata; - struct qcom_scm_pas_metadata dtb_pas_metadata; + struct qcom_scm_pas_context *pas_ctx; + struct qcom_scm_pas_context *dtb_pas_ctx; }; =20 static void qcom_pas_segment_dump(struct rproc *rproc, @@ -211,9 +211,9 @@ static int qcom_pas_unprepare(struct rproc *rproc) * auth_and_reset() was successful, but in other cases clean it up * here. */ - qcom_scm_pas_metadata_release(&pas->pas_metadata); + qcom_scm_pas_metadata_release(pas->pas_ctx); if (pas->dtb_pas_id) - qcom_scm_pas_metadata_release(&pas->dtb_pas_metadata); + qcom_scm_pas_metadata_release(pas->dtb_pas_ctx); =20 return 0; } @@ -241,7 +241,7 @@ static int qcom_pas_load(struct rproc *rproc, const str= uct firmware *fw) =20 ret =3D qcom_mdt_pas_init(pas->dev, pas->dtb_firmware, pas->dtb_firmware= _name, pas->dtb_pas_id, pas->dtb_mem_phys, - &pas->dtb_pas_metadata); + pas->dtb_pas_ctx); if (ret) goto release_dtb_firmware; =20 @@ -255,7 +255,7 @@ static int qcom_pas_load(struct rproc *rproc, const str= uct firmware *fw) return 0; =20 release_dtb_metadata: - qcom_scm_pas_metadata_release(&pas->dtb_pas_metadata); + qcom_scm_pas_metadata_release(pas->dtb_pas_ctx); =20 release_dtb_firmware: release_firmware(pas->dtb_firmware); @@ -306,7 +306,7 @@ static int qcom_pas_start(struct rproc *rproc) } =20 ret =3D qcom_mdt_pas_init(pas->dev, pas->firmware, rproc->firmware, pas->= pas_id, - pas->mem_phys, &pas->pas_metadata); + pas->mem_phys, pas->pas_ctx); if (ret) goto disable_px_supply; =20 @@ -332,9 +332,9 @@ static int qcom_pas_start(struct rproc *rproc) goto release_pas_metadata; } =20 - qcom_scm_pas_metadata_release(&pas->pas_metadata); + qcom_scm_pas_metadata_release(pas->pas_ctx); if (pas->dtb_pas_id) - qcom_scm_pas_metadata_release(&pas->dtb_pas_metadata); + qcom_scm_pas_metadata_release(pas->dtb_pas_ctx); =20 /* firmware is used to pass reference from qcom_pas_start(), drop it now = */ pas->firmware =3D NULL; @@ -342,9 +342,9 @@ static int qcom_pas_start(struct rproc *rproc) return 0; =20 release_pas_metadata: - qcom_scm_pas_metadata_release(&pas->pas_metadata); + qcom_scm_pas_metadata_release(pas->pas_ctx); if (pas->dtb_pas_id) - qcom_scm_pas_metadata_release(&pas->dtb_pas_metadata); + qcom_scm_pas_metadata_release(pas->dtb_pas_ctx); disable_px_supply: if (pas->px_supply) regulator_disable(pas->px_supply); @@ -779,6 +779,22 @@ static int qcom_pas_probe(struct platform_device *pdev) } =20 qcom_add_ssr_subdev(rproc, &pas->ssr_subdev, desc->ssr_name); + + pas->pas_ctx =3D devm_qcom_scm_pas_context_init(pas->dev, pas->pas_id, + pas->mem_phys, pas->mem_size); + if (IS_ERR(pas->pas_ctx)) { + ret =3D PTR_ERR(pas->pas_ctx); + goto remove_ssr_sysmon; + } + + pas->dtb_pas_ctx =3D devm_qcom_scm_pas_context_init(pas->dev, pas->dtb_pa= s_id, + pas->dtb_mem_phys, + pas->dtb_mem_size); + if (IS_ERR(pas->dtb_pas_ctx)) { + ret =3D PTR_ERR(pas->dtb_pas_ctx); + goto remove_ssr_sysmon; + } + ret =3D rproc_add(rproc); if (ret) goto remove_ssr_sysmon; diff --git a/drivers/soc/qcom/mdt_loader.c b/drivers/soc/qcom/mdt_loader.c index a5c80d4fcc36..fe35038c5342 100644 --- a/drivers/soc/qcom/mdt_loader.c +++ b/drivers/soc/qcom/mdt_loader.c @@ -234,13 +234,13 @@ EXPORT_SYMBOL_GPL(qcom_mdt_read_metadata); * @fw_name: name of the firmware, for construction of segment file names * @pas_id: PAS identifier * @mem_phys: physical address of allocated memory region - * @ctx: PAS metadata context, to be released by caller + * @ctx: PAS context, ctx->metadata to be released by caller * * Returns 0 on success, negative errno otherwise. */ int qcom_mdt_pas_init(struct device *dev, const struct firmware *fw, const char *fw_name, int pas_id, phys_addr_t mem_phys, - struct qcom_scm_pas_metadata *ctx) + struct qcom_scm_pas_context *ctx) { const struct elf32_phdr *phdrs; const struct elf32_phdr *phdr; diff --git a/include/linux/firmware/qcom/qcom_scm.h b/include/linux/firmwar= e/qcom/qcom_scm.h index dd07dce7833a..94daf3aa89fc 100644 --- a/include/linux/firmware/qcom/qcom_scm.h +++ b/include/linux/firmware/qcom/qcom_scm.h @@ -66,12 +66,6 @@ int qcom_scm_set_warm_boot_addr(void *entry); void qcom_scm_cpu_power_down(u32 flags); int qcom_scm_set_remote_state(u32 state, u32 id); =20 -struct qcom_scm_pas_metadata { - void *ptr; - dma_addr_t phys; - ssize_t size; -}; - struct qcom_scm_pas_context { struct device *dev; u32 pas_id; @@ -85,8 +79,8 @@ struct qcom_scm_pas_context { void *devm_qcom_scm_pas_context_init(struct device *dev, u32 pas_id, phys_= addr_t mem_phys, size_t mem_size); int qcom_scm_pas_init_image(u32 pas_id, const void *metadata, size_t size, - struct qcom_scm_pas_metadata *ctx); -void qcom_scm_pas_metadata_release(struct qcom_scm_pas_metadata *ctx); + struct qcom_scm_pas_context *ctx); +void qcom_scm_pas_metadata_release(struct qcom_scm_pas_context *ctx); int qcom_scm_pas_mem_setup(u32 pas_id, phys_addr_t addr, phys_addr_t size); int qcom_scm_pas_auth_and_reset(u32 pas_id); int qcom_scm_pas_shutdown(u32 pas_id); diff --git a/include/linux/soc/qcom/mdt_loader.h b/include/linux/soc/qcom/m= dt_loader.h index 8ea8230579a2..07c278841816 100644 --- a/include/linux/soc/qcom/mdt_loader.h +++ b/include/linux/soc/qcom/mdt_loader.h @@ -10,14 +10,14 @@ =20 struct device; struct firmware; -struct qcom_scm_pas_metadata; +struct qcom_scm_pas_context; =20 #if IS_ENABLED(CONFIG_QCOM_MDT_LOADER) =20 ssize_t qcom_mdt_get_size(const struct firmware *fw); int qcom_mdt_pas_init(struct device *dev, const struct firmware *fw, const char *fw_name, int pas_id, phys_addr_t mem_phys, - struct qcom_scm_pas_metadata *pas_metadata_ctx); + struct qcom_scm_pas_context *pas_ctx); int qcom_mdt_load(struct device *dev, const struct firmware *fw, const char *fw_name, int pas_id, void *mem_region, phys_addr_t mem_phys, size_t mem_size, @@ -39,7 +39,7 @@ static inline ssize_t qcom_mdt_get_size(const struct firm= ware *fw) =20 static inline int qcom_mdt_pas_init(struct device *dev, const struct firmw= are *fw, const char *fw_name, int pas_id, phys_addr_t mem_phys, - struct qcom_scm_pas_metadata *pas_metadata_ctx) + struct qcom_scm_pas_context *pas_ctx) { return -ENODEV; } --=20 2.50.1 From nobody Sun Feb 8 20:35:00 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B6BD63321C4 for ; Thu, 13 Nov 2025 10:36:33 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030196; cv=none; b=VsfinbcKYJ3ad1Rk8ejlqoIC5JsTA+ER2RzGWN+vpjuglGYiVQrAs7QrRtJs59ArIGBDRyw0I0e2bdwvqRTSixAr9UR+3wIMUCo1pHYbFf2wohXW4zLKtNaI3duNgIH/URR0qTXyovKPzMkzA+naMfbtc/TtKulFWdgNvouaqfA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030196; c=relaxed/simple; bh=HxGHSN2cQ3gu+FaVPlop+jwgb/w1KNBxNEMyTx7qQU8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=uDUOsYekFWIWxR2pytXmcarrVwo1nZIc75oS/ofgxYjK58Kh4axjrhJRbCcGBjnzc3fjSRot/hqzgoKtqp5Jz0x+hNWj8zSFgWHo95RcRubAZniN2AOxyO+4TtUz9V6sbosYFFgc6An987gE0NTrMs22uzNCmqe9yTAGRGQ1UOU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=B0gNBxjn; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=cmLO8dgP; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="B0gNBxjn"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="cmLO8dgP" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AD4wX3q3336750 for ; Thu, 13 Nov 2025 10:36:32 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= GBLDUCNvzpusWvvnDqSd4IuiE27v+XlQxH1m2+gil9c=; b=B0gNBxjnOQw72VfO JCYyGGWAzgBFN84gjun7mJoi+WiXk1x0bUHUcB69tcRhnilWqZ7W/qaUVp0tz/kO pWhrXCTgKO8kmq4qnlVnCNbL+WpPnmoGWvuXARITMepYywgnycDz0G5Z9a1G5rYL S9VZJ3ssgBDz75Pbm78AofEV+wdHAdKIv3+amMs89hzeyNrJ/mB11XDpnuumYl8u Z01klEN92U0WiMQeQqxs572Fk9t3NIpZME+IjgEo3xsaEV1ROlJ0Ml1T5l9eQkLM FkTaW+cYBkWzf7zHE5Ewx1PC+JVLGZjsRlkbnOHqBKg+FLFmZDieI31gu3KGPo4R xZcZqQ== Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ad8sa11x6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 13 Nov 2025 10:36:32 +0000 (GMT) Received: by mail-pf1-f198.google.com with SMTP id d2e1a72fcca58-7900f597d08so700296b3a.1 for ; Thu, 13 Nov 2025 02:36:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763030192; x=1763634992; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=GBLDUCNvzpusWvvnDqSd4IuiE27v+XlQxH1m2+gil9c=; b=cmLO8dgPN4eDmTW9gm6CVMehZE7J3Y1KCmGttC6FprqRDp0Be+p/eVccJByuCrv/Nh ImtOzpc8RwsxWjg/TyLJtHLzVmaFV5uj24mzXxxwd0o9+PO/2KTGuGaK0HiGeXnu2NNW P9NnsTFabvcHVpVoDSdrFTgcBg8THw9invWua1lWK0cFARg2Wg88hajNXR/ecWm4dhaG neosSasa8S1I3nF4x4Ays0RpLLaQPBq8xwZCKm5tndAKU2FMvZt/chMrg8emG9fshBIe 5noEspPHvxIuFHTirOHGr9rwS80qHYkdPXcnjDhSkP5IwMos2HOZKZRUaTfS609dRTqi otEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763030192; x=1763634992; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=GBLDUCNvzpusWvvnDqSd4IuiE27v+XlQxH1m2+gil9c=; b=dD1pTQs8kVdW8xyTDZanPt/GlU7eeopwNG6s0tY3GCXgXYthNBpVho18WpWqV2PWOe Rb25AlvT62so1Or7jGBhHs1lhOOVNeC+XI17vTA22qKru+qX9ClbIAciB3s/m2q/I3NF ExYMCFz1WVebSWhKF6MjYSNEH8Vau93yWsxsQ7BAeABWimTRLWKPA5QsPTNlSukPKKFs SiH4x2879dJfqo2FdJKTbSdswxVhiMcY7JkiE/7rRw9PvcyuGbX3BjNAaRaIgfqu1RxQ Tv69WfyQwZeaegym2lDhd2RcS5YLABfxTEdLKdZ8b0cUT4J6kFWtZ0mioLESzx1Zk0+g 14fQ== X-Forwarded-Encrypted: i=1; AJvYcCW+tv6rs0uP/rgwfAZyX/LzP5IcgwRRPSg6sDMWfqxrH63ZbcwBdCkaP0P+nsUmiQasglqRc52Qbe0RE6I=@vger.kernel.org X-Gm-Message-State: AOJu0YwMz9v/1SBBRL5r4PtCSWK664CtthkI/gildPYk7mlN4KuIoAVJ 52xS/J3Sn/jKMaRFCu0GXaWPZLNImBhcdZrc7+M2GsXE1O5HLCilScaiI/Hg9CoGHCQxKJ3pSvK /3qfhedYQtuO+086zy7fearx93szA9OmRCh5HItE2CUqksinXE1AB6kKc6aBRdMeUI2c= X-Gm-Gg: ASbGncsLpfKt1LsVS9re4sFyRYEULEObSubWI5Ioedwr0n+gbMdGuLhdDZyRuJfafsd UzqIim0xVLab9OhZbEPmf6OtscKTe/4BFj1bxq16rWsVGePQFkWs0dIgfqT6PFR/mKGRbTQ0J3W 130PcZYhIql1xgFoD6rRBKCT4wze4+z0HtBdFxdyhKE7vinHNulycCNUwbbPlXms++XqTrvHq/Q KDblrr8KfFLqAhoCDJAfXPVtEHp1Mx28mzZ5ICiq/xb4Mi+ymSxJW9cT1zCGyzWqehuPpMT9o7b 9Pn42r4QextCidvdPernthGuVry7asy6RWJjqILmI6hfe8V57JH9HSOl/Ktr2wHxYrXzQofx3Dc +UvQ8nMHBi9dEd/j1bW3At1YVUg== X-Received: by 2002:a05:6a00:a8a:b0:7b7:5dc5:75b8 with SMTP id d2e1a72fcca58-7b7a54bd537mr7291001b3a.29.1763030191311; Thu, 13 Nov 2025 02:36:31 -0800 (PST) X-Google-Smtp-Source: AGHT+IFidGfe+xfKhxmR4W0jnBWRPVni0eg7nxdS4NdAF6hWNVtVMm/b4NIl0U6PHkEgxiJzdXRsqA== X-Received: by 2002:a05:6a00:a8a:b0:7b7:5dc5:75b8 with SMTP id d2e1a72fcca58-7b7a54bd537mr7290953b3a.29.1763030190624; Thu, 13 Nov 2025 02:36:30 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7b9250d2d16sm1886922b3a.22.2025.11.13.02.36.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Nov 2025 02:36:30 -0800 (PST) From: Mukesh Ojha Date: Thu, 13 Nov 2025 16:05:56 +0530 Subject: [PATCH v7 06/14] soc: qcom: mdtloader: Add PAS context aware qcom_mdt_pas_load() function Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251113-kvm-rproc-v7-v7-6-df4910b7c20a@oss.qualcomm.com> References: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> In-Reply-To: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio , Mukesh Ojha X-Mailer: b4 0.14-dev-f7c49 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763030164; l=5709; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=HxGHSN2cQ3gu+FaVPlop+jwgb/w1KNBxNEMyTx7qQU8=; b=s4Q5f1vm5edxvzi9RhuifDMkCfchvW/gCF2WYx2f2S81/g5jqJfgKmkhYI1ZZKg8v0a348HVU kYOkatfyBTCB1pRAprWwaJDZby+bYn55bRRUNDcnhmK43szHwRSnC02 X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-GUID: E2H9JCEkgVYlSL-TmZEShClndBixfEk8 X-Proofpoint-ORIG-GUID: E2H9JCEkgVYlSL-TmZEShClndBixfEk8 X-Authority-Analysis: v=2.4 cv=dcGNHHXe c=1 sm=1 tr=0 ts=6915b4b0 cx=c_pps a=m5Vt/hrsBiPMCU0y4gIsQw==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=tZ3jCLSBV7jl1JjQXpgA:9 a=QEXdDO2ut3YA:10 a=IoOABgeZipijB_acs4fv:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTEzMDA3OCBTYWx0ZWRfX+10//ia7FGPY AngAdF8h68O2z3r5qv4FeIcVS3IL3cizMwfYgnyhnutHJ6eXKzWZ6gKYjTJDdyUfcmJlEcqQiJK hPTJrO2o/etDcXg9ViBJpNMA0r5/o0T8ae3nbTWHHbJaisCeVcKpRUjIKgYw7DMmj9MPRr0kaVU EtRZhcXKg/9AuGZF+DPwIXHQsF/qx3LojBej7PmkCgaR7gsRcDr69Vo/dJy7TEGUi+ojyNbQvWZ KH4h+2iupAhyBUgedhnXdhaQTw9A7m4/8ufCAugxC+hayb/Hp0/0k0f02f9W0ZNzYCYC2KNXDde 6geBhEyEXKVoHTpVKLerh+KQcoJxmBjt/zMhCFAg9c3gJWrjj+corBx9LdeGznbFmoa12+ymLDt BCUdlD5sV3tAJhnhlT8dS+vVbMZNYQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-13_01,2025-11-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 malwarescore=0 lowpriorityscore=0 phishscore=0 suspectscore=0 clxscore=1015 impostorscore=0 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511130078 Introduce a new PAS context-aware function, qcom_mdt_pas_load(), for remote processor drivers. This function utilizes the PAS context pointer returned from qcom_scm_pas_ctx_init() to perform firmware metadata verification and memory setup via SMC calls. The qcom_mdt_pas_load() and qcom_mdt_load() functions are largely similar, but the former is designed for clients using the PAS context-based data structure. Over time, all users of qcom_mdt_load() can be migrated to use qcom_mdt_pas_load() for consistency and improved abstraction. As the remoteproc PAS driver (qcom_q6v5_pas) has already adopted the PAS context-based approach, update it to use qcom_mdt_pas_load(). Reviewed-by: Konrad Dybcio Signed-off-by: Mukesh Ojha --- drivers/remoteproc/qcom_q6v5_pas.c | 24 +++++------------------- drivers/soc/qcom/mdt_loader.c | 32 ++++++++++++++++++++++++++++++++ include/linux/soc/qcom/mdt_loader.h | 10 ++++++++++ 3 files changed, 47 insertions(+), 19 deletions(-) diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q= 6v5_pas.c index 729e7b9bc183..9feee2cb1883 100644 --- a/drivers/remoteproc/qcom_q6v5_pas.c +++ b/drivers/remoteproc/qcom_q6v5_pas.c @@ -239,15 +239,9 @@ static int qcom_pas_load(struct rproc *rproc, const st= ruct firmware *fw) return ret; } =20 - ret =3D qcom_mdt_pas_init(pas->dev, pas->dtb_firmware, pas->dtb_firmware= _name, - pas->dtb_pas_id, pas->dtb_mem_phys, - pas->dtb_pas_ctx); - if (ret) - goto release_dtb_firmware; - - ret =3D qcom_mdt_load_no_init(pas->dev, pas->dtb_firmware, pas->dtb_firm= ware_name, - pas->dtb_mem_region, pas->dtb_mem_phys, - pas->dtb_mem_size, &pas->dtb_mem_reloc); + ret =3D qcom_mdt_pas_load(pas->dtb_pas_ctx, pas->dtb_firmware, + pas->dtb_firmware_name, pas->dtb_mem_region, + &pas->dtb_mem_reloc); if (ret) goto release_dtb_metadata; } @@ -256,8 +250,6 @@ static int qcom_pas_load(struct rproc *rproc, const str= uct firmware *fw) =20 release_dtb_metadata: qcom_scm_pas_metadata_release(pas->dtb_pas_ctx); - -release_dtb_firmware: release_firmware(pas->dtb_firmware); =20 return ret; @@ -305,14 +297,8 @@ static int qcom_pas_start(struct rproc *rproc) } } =20 - ret =3D qcom_mdt_pas_init(pas->dev, pas->firmware, rproc->firmware, pas->= pas_id, - pas->mem_phys, pas->pas_ctx); - if (ret) - goto disable_px_supply; - - ret =3D qcom_mdt_load_no_init(pas->dev, pas->firmware, rproc->firmware, - pas->mem_region, pas->mem_phys, pas->mem_size, - &pas->mem_reloc); + ret =3D qcom_mdt_pas_load(pas->pas_ctx, pas->firmware, rproc->firmware, + pas->mem_region, &pas->mem_reloc); if (ret) goto release_pas_metadata; =20 diff --git a/drivers/soc/qcom/mdt_loader.c b/drivers/soc/qcom/mdt_loader.c index fe35038c5342..c868b9c416e6 100644 --- a/drivers/soc/qcom/mdt_loader.c +++ b/drivers/soc/qcom/mdt_loader.c @@ -486,5 +486,37 @@ int qcom_mdt_load_no_init(struct device *dev, const st= ruct firmware *fw, } EXPORT_SYMBOL_GPL(qcom_mdt_load_no_init); =20 +/** + * qcom_mdt_pas_load - Loads and authenticates the metadata of the firmware + * (typically contained in the .mdt file), followed by loading the actual + * firmware segments (e.g., .bXX files). Authentication of the segments do= ne + * by a separate call. + * + * The PAS context must be initialized using qcom_scm_pas_context_init() + * prior to invoking this function. + * + * @ctx: Pointer to the PAS (Peripheral Authentication Service) con= text + * @fw: Firmware object representing the .mdt file + * @firmware: Name of the firmware used to construct segment file names + * @mem_region: Memory region allocated for loading the firmware + * @reloc_base: Physical address adjusted after relocation + * + * Return: 0 on success or a negative error code on failure. + */ +int qcom_mdt_pas_load(struct qcom_scm_pas_context *ctx, const struct firmw= are *fw, + const char *firmware, void *mem_region, phys_addr_t *reloc_base) +{ + int ret; + + ret =3D qcom_mdt_pas_init(ctx->dev, fw, firmware, ctx->pas_id, ctx->mem_p= hys, + ctx); + if (ret) + return ret; + + return __qcom_mdt_load(ctx->dev, fw, firmware, mem_region, ctx->mem_phys, + ctx->mem_size, reloc_base); +} +EXPORT_SYMBOL_GPL(qcom_mdt_pas_load); + MODULE_DESCRIPTION("Firmware parser for Qualcomm MDT format"); MODULE_LICENSE("GPL v2"); diff --git a/include/linux/soc/qcom/mdt_loader.h b/include/linux/soc/qcom/m= dt_loader.h index 07c278841816..7d57746fbbfa 100644 --- a/include/linux/soc/qcom/mdt_loader.h +++ b/include/linux/soc/qcom/mdt_loader.h @@ -23,6 +23,9 @@ int qcom_mdt_load(struct device *dev, const struct firmwa= re *fw, phys_addr_t mem_phys, size_t mem_size, phys_addr_t *reloc_base); =20 +int qcom_mdt_pas_load(struct qcom_scm_pas_context *ctx, const struct firmw= are *fw, + const char *firmware, void *mem_region, phys_addr_t *reloc_base); + int qcom_mdt_load_no_init(struct device *dev, const struct firmware *fw, const char *fw_name, void *mem_region, phys_addr_t mem_phys, size_t mem_size, @@ -52,6 +55,13 @@ static inline int qcom_mdt_load(struct device *dev, cons= t struct firmware *fw, return -ENODEV; } =20 +static inline int qcom_mdt_pas_load(struct qcom_scm_pas_context *ctx, + const struct firmware *fw, const char *firmware, + void *mem_region, phys_addr_t *reloc_base) +{ + return -ENODEV; +} + static inline int qcom_mdt_load_no_init(struct device *dev, const struct firmware *fw, const char *fw_name, void *mem_region, --=20 2.50.1 From nobody Sun Feb 8 20:35:00 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 34174336ECC for ; Thu, 13 Nov 2025 10:36:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030198; cv=none; b=lmASenzdizNLARizX0fEbub+LR8c6FkGYBmNvmgZE/x26U8UoCYsQLCSbKauinhAwvVTBaDp3wFDeSTUuPYal9IM2lSfjLN4gVLQF47bZSMcL2J4M/+2X29yRZ+Tw7oJjGnC9H51E5sQttSYRYDmPPQKG1SdGUpz3ZmHP5CGLbc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030198; c=relaxed/simple; bh=sR2Ps2lw9nzZ+bYua3j4sYHBEEiYZdHNjXgtG1qfdqo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=UHfBT3nd/Jk6KsjRU+paEgLJsC4NlItQ2poJAUwcxp9/qK8V6cYXqSWgm39HYIjuKJgVStYpdnkhn15KAvmtd5tyGBDVNyfjwXvzKvPYv2YtCokJgI7N2VjSLNOYZCle7+aCydmQcUfuCvaR96tOC7YCudllDAsH/PHO9xU629g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=JjIwNnrx; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=cad+GRJ6; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="JjIwNnrx"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="cad+GRJ6" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AD6i1ci3802201 for ; Thu, 13 Nov 2025 10:36:36 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= S+x3WyP8FcQUjHqUOnYmnesnZx4d2cDTurzD4JP7xHo=; b=JjIwNnrx61Mm6Tzh s1Qrt38OMRUDarEuZTDP2kyKNmQAbIvYvkIWjH4ayd53QYkNW0l68yYxOPubsGY7 GTQhA73MQgw/7dsngh1zlU+qhCH6/XSCbjCBwq5uLSBKJK7W6thXXXZMNxa7Xucl mddu7EogHHuIkbdh8qzhUnopD04kZm50qbn7vkaKOlyA+v61ayfXVxEK+ZfPX4Kb ClTM5F5iOfZ8U4npksY5Rkofjj3VcZkCz7l71fL0RwpwzHyziswiP+tFXsGu1hYl l4sd6TaaoxRQC/jAr06Cm37w9I3Vl6o1bJhvJeur/ygc1SNkzpnCXuiL3UgOv61f QBU6gQ== Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4adaam8qjg-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 13 Nov 2025 10:36:36 +0000 (GMT) Received: by mail-pf1-f198.google.com with SMTP id d2e1a72fcca58-7ae3e3e0d06so584491b3a.0 for ; Thu, 13 Nov 2025 02:36:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763030195; x=1763634995; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=S+x3WyP8FcQUjHqUOnYmnesnZx4d2cDTurzD4JP7xHo=; b=cad+GRJ6p6eN7Y4d7pvtnKiv0ljZTs46OukrwBGK+AKsPJI+ZiuHf8Rdx2FzXyVeSy uTjtuibJLUx29HtgQ6c2yr5BEZ0CGi4bR2boIjpeZ8cn/S3mUG2wcrJhBOyIk++h4Br3 YVl1h/7mr3KE+0KgQlcnpBb/gAY893vMiXV2VYHTPGQDlEPE9ICPf55n9/D9oGVINOlk HAe1megVNRyKwMTpeiaTFj2a/n89bh1EqlH5KJQRDSjwVSCQbYT7M+T6YVrA4LP0LjPp CwU0etju3BnYhmlGHy1tkwLBmPi0H3VsnawpeXD47t6rL2wYxxdfre2Z9W9pIDn2VxsQ oY0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763030195; x=1763634995; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=S+x3WyP8FcQUjHqUOnYmnesnZx4d2cDTurzD4JP7xHo=; b=GJIsSzCgrEm0wgCpP70WNGujgdarqJMIZgeL0OiPgXeH/nTT5MsIZvi3zTTMJeK672 JxI4P7nvOp6+LaBB4Q+tq0LtdiPy9yG/DWMYjfLXv990RfaoasCzujCBrqwujpkUX5wC NvtWarA9IKKsmaG9yxlUZKfx70opxGHR+y5GoP1o2bm0oss5AQWiVcXW66jqhgdYlsvw M9Z8PZwKy/CE3T8/SLj4OvRHd7jq2vAr8ndhpFyUQjR/SmdA5avcjD2EkHwqJWQLb8bY i0sSQvo3nTM0HWqRLW1QPpNspqo65V9DPvyPU944+SH2OBxOPJB963/t3h6yraDYzQyZ 3n0Q== X-Forwarded-Encrypted: i=1; AJvYcCVgYjdS9QK5hCyvbB7MUIdXP1tU7pg4hLZAmaki+Zximp3yv85SADIeq/r133hY8bDki3a7mfrrwp8nl8Q=@vger.kernel.org X-Gm-Message-State: AOJu0YzFz+U33VRKO5xGcUgpJ0ZcAWcz+oj6ySbQNnYuOkjGd5cMZmwl XwT95iVL/Ce+f3pGsWqhzQAh8pLVrTkIOcaO7wVahyXB0+pLjInh++4Yg/LFEUalOk1C2rMSTPy KiGjOYbp7vCMgzOIRkKgttJ5WAXu5J0Lup5XOzeWLzIxl+1OhBDiI1B9l34FY/A6+L/s= X-Gm-Gg: ASbGncvFPUlSARxYdwqvLax7uGEazvqdIbk9bUcm5z7AvRVA4yTiZzHFmP1YVTghjZ/ L9jC6c70xSt4b8f1bXTRh++Uy3j6gF18PwpUy+rEqMe0eFu1PNKIGRm4iBFz938p0t5wuJAx/+m kwqRNWhuF5EwBlBqbCGgDEY/4hrzCsiV8upOVxTkkN6r99grsiIOatiTOqJgGDPpa4LPlJBHdzm fDjGTZxYS2ub+fF2pO+o+G77gK5X7Rcj+pzYkRsb9IB+9aUyyNoFvOyfB8AB9zQWG6lDLtTjAt3 TroqIUj5KY3duYYWCuHNwSF6RpUIZsIOH1UGInKWtOSI8D6AkfjtXaMlPnJ8Mw2lQuvULniBY1A iBWznJ253JKA02tdTLn0kD/YjMw== X-Received: by 2002:a05:6a00:12ea:b0:7a2:70f5:c83f with SMTP id d2e1a72fcca58-7b7a2f909afmr7233638b3a.10.1763030195095; Thu, 13 Nov 2025 02:36:35 -0800 (PST) X-Google-Smtp-Source: AGHT+IEIiAV1A4E1ud/5n0c893Cjn+gwxzkTEe2Xfpp4EgzeF/5jmXVI0AQQf0DDA0VLVXEF8QQx3g== X-Received: by 2002:a05:6a00:12ea:b0:7a2:70f5:c83f with SMTP id d2e1a72fcca58-7b7a2f909afmr7233585b3a.10.1763030194431; Thu, 13 Nov 2025 02:36:34 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7b9250d2d16sm1886922b3a.22.2025.11.13.02.36.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Nov 2025 02:36:34 -0800 (PST) From: Mukesh Ojha Date: Thu, 13 Nov 2025 16:05:57 +0530 Subject: [PATCH v7 07/14] soc: qcom: mdtloader: Remove qcom_mdt_pas_init() from exported symbols Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251113-kvm-rproc-v7-v7-7-df4910b7c20a@oss.qualcomm.com> References: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> In-Reply-To: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio , Mukesh Ojha X-Mailer: b4 0.14-dev-f7c49 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763030164; l=3542; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=sR2Ps2lw9nzZ+bYua3j4sYHBEEiYZdHNjXgtG1qfdqo=; b=Yj547KL64hO2JMhCaMZvDrLUIU5yZdFC89NxuZ9uOydHfVOSzDfU3Z7X+WaBywJu/ywOaHZKw ehEoumiE9A7CwGuHC0BAP35lqq5UKZfF5gCLb4u8KW8pr0GQXSBJHWv X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTEzMDA3OCBTYWx0ZWRfX6FCSsQrgOgEZ R5fZR7y+HkbxcCWtpacAH99pAJYV7nWAS4mCmrHguDWLxC8tggHW5aGlWbltEprVcAvlOyFWRsM JDfSA5VlBgxGgeogFphqiz6VppwN86Mbr8Xv3REKPrC8dsBN5lNX49ImUEWB3QWT8pQPugzhBZy jYqiGAp8klrullc8DH/Srjx5xSTbBQjhb7nNPdVwOrjatBkHSu0BDwSLAs4fyWBM8LM9LWulba5 ZTREw/I1LVuaDFVaOjmWJXWkkheWC9hXK9ZmjWNHu1yAekF6OknPu/OZw5Uf2BnBr4CF68GtWvy /inzqarL7aQjdRqzXCErvwmAYzYCA9S3JDAuu1JMo57odyyZ1/zjO/vXmq2dyrRFhUrw0qaczjU kEQvaqmRe311bZ9EnC5KQGUo6+Tzxw== X-Authority-Analysis: v=2.4 cv=d4f4CBjE c=1 sm=1 tr=0 ts=6915b4b4 cx=c_pps a=m5Vt/hrsBiPMCU0y4gIsQw==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=Z4Sw7GGoVt5sTUwIiKwA:9 a=QEXdDO2ut3YA:10 a=IoOABgeZipijB_acs4fv:22 X-Proofpoint-ORIG-GUID: 9njmzuRXWws9xDThj6T-w98PTt5sXsFV X-Proofpoint-GUID: 9njmzuRXWws9xDThj6T-w98PTt5sXsFV X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-13_01,2025-11-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 bulkscore=0 priorityscore=1501 malwarescore=0 phishscore=0 suspectscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511130078 qcom_mdt_pas_init() was previously used only by the remoteproc driver (drivers/remoteproc/qcom_q6v5_pas.c). Since that driver has now transitioned to using PAS context-based qcom_mdt_pas_load() function, making qcom_mdt_pas_init() obsolete for external use. Removes qcom_mdt_pas_init() from the list of exported symbols and make it static to limit its scope to internal use within mdtloader. Reviewed-by: Konrad Dybcio Signed-off-by: Mukesh Ojha --- drivers/soc/qcom/mdt_loader.c | 13 ++++++------- include/linux/soc/qcom/mdt_loader.h | 10 ---------- 2 files changed, 6 insertions(+), 17 deletions(-) diff --git a/drivers/soc/qcom/mdt_loader.c b/drivers/soc/qcom/mdt_loader.c index c868b9c416e6..13b52b8064e0 100644 --- a/drivers/soc/qcom/mdt_loader.c +++ b/drivers/soc/qcom/mdt_loader.c @@ -238,9 +238,9 @@ EXPORT_SYMBOL_GPL(qcom_mdt_read_metadata); * * Returns 0 on success, negative errno otherwise. */ -int qcom_mdt_pas_init(struct device *dev, const struct firmware *fw, - const char *fw_name, int pas_id, phys_addr_t mem_phys, - struct qcom_scm_pas_context *ctx) +static int __qcom_mdt_pas_init(struct device *dev, const struct firmware *= fw, + const char *fw_name, int pas_id, phys_addr_t mem_phys, + struct qcom_scm_pas_context *ctx) { const struct elf32_phdr *phdrs; const struct elf32_phdr *phdr; @@ -302,7 +302,6 @@ int qcom_mdt_pas_init(struct device *dev, const struct = firmware *fw, out: return ret; } -EXPORT_SYMBOL_GPL(qcom_mdt_pas_init); =20 static bool qcom_mdt_bins_are_split(const struct firmware *fw) { @@ -456,7 +455,7 @@ int qcom_mdt_load(struct device *dev, const struct firm= ware *fw, { int ret; =20 - ret =3D qcom_mdt_pas_init(dev, fw, firmware, pas_id, mem_phys, NULL); + ret =3D __qcom_mdt_pas_init(dev, fw, firmware, pas_id, mem_phys, NULL); if (ret) return ret; =20 @@ -508,8 +507,8 @@ int qcom_mdt_pas_load(struct qcom_scm_pas_context *ctx,= const struct firmware *f { int ret; =20 - ret =3D qcom_mdt_pas_init(ctx->dev, fw, firmware, ctx->pas_id, ctx->mem_p= hys, - ctx); + ret =3D __qcom_mdt_pas_init(ctx->dev, fw, firmware, ctx->pas_id, ctx->mem= _phys, + ctx); if (ret) return ret; =20 diff --git a/include/linux/soc/qcom/mdt_loader.h b/include/linux/soc/qcom/m= dt_loader.h index 7d57746fbbfa..82372e0db0a1 100644 --- a/include/linux/soc/qcom/mdt_loader.h +++ b/include/linux/soc/qcom/mdt_loader.h @@ -15,9 +15,6 @@ struct qcom_scm_pas_context; #if IS_ENABLED(CONFIG_QCOM_MDT_LOADER) =20 ssize_t qcom_mdt_get_size(const struct firmware *fw); -int qcom_mdt_pas_init(struct device *dev, const struct firmware *fw, - const char *fw_name, int pas_id, phys_addr_t mem_phys, - struct qcom_scm_pas_context *pas_ctx); int qcom_mdt_load(struct device *dev, const struct firmware *fw, const char *fw_name, int pas_id, void *mem_region, phys_addr_t mem_phys, size_t mem_size, @@ -40,13 +37,6 @@ static inline ssize_t qcom_mdt_get_size(const struct fir= mware *fw) return -ENODEV; } =20 -static inline int qcom_mdt_pas_init(struct device *dev, const struct firmw= are *fw, - const char *fw_name, int pas_id, phys_addr_t mem_phys, - struct qcom_scm_pas_context *pas_ctx) -{ - return -ENODEV; -} - static inline int qcom_mdt_load(struct device *dev, const struct firmware = *fw, const char *fw_name, int pas_id, void *mem_region, phys_addr_t mem_phys, --=20 2.50.1 From nobody Sun Feb 8 20:35:00 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 290B4334C11 for ; Thu, 13 Nov 2025 10:36:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030202; cv=none; b=G2JUDOdmR9zP5up5nmfJZZL5jti4qaplAo5y5B6cUWiBwRoi31nthQFYbPZaaYqNbVQJDG7VNxFIULWlTXp2WJwpSRTz68LR3xJq6DB6HZ64Ut4sxcpJ+O6z9kldA9VWunJ7tFxiOj9UKf8y6EpJV/gendcws2L7Exvq9vRddEE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030202; c=relaxed/simple; bh=fTjoksev6NSdPOE7J+AhEJwpfMDv/+Zt/Wrlk/KJAC8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Ui8XSxD6Km7Oa5/0x1pnDG0Ub2Mm6FGz1tUXHecgX4duR7PHlBMRfIoUOMBw2YyMkB3ty2O2U///yRuxOP/nLH4TpiOHhCidd34BUyJ8gHDJUm4ikbXlqo+3Hvkxv+sEzaCn+VjPAi6JXwZpgC0R+UZ6W+iSvj/+Wag4nAvO7Hc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=ojTVvO+q; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Paywa9Mn; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="ojTVvO+q"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Paywa9Mn" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AD8YddH2993638 for ; Thu, 13 Nov 2025 10:36:40 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 57ueJYK719oVT/uBqCyzf3ryZv6JEk0H+rqU0vfXro0=; b=ojTVvO+qeTUZRnWi h74oJZG+YjG9dUAGXdH3+tDkeE2hKF3Te1yhfeyv2gTfPKPxg/CBGize0PVQYhyZ pZwIDnSo0+Bkcu1ohLxSoZ6MUGNzkjTwrbRYCa6+PTgwpNo1Xnm4EYb395vT5uzZ yLVi+7+lXt9sJa0Go/wC0QOjgP6QBosTAslIYfaK5UoNmF2IqEYTjdk/8ReHgQpL MUo9bla0diq3PgWOe9Qu+Bizs0D7/hYzX3Rn27NPhiLZXPXOeCK3HCyO60rxTpou BK36h/Xak0ZkqONOn3gLtr6g+6zNkZByUKofMGK4VxyMqpWwUiwFW4ncjm2pK4RJ yzklqw== Received: from mail-pf1-f197.google.com (mail-pf1-f197.google.com [209.85.210.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ad47jhvsy-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 13 Nov 2025 10:36:39 +0000 (GMT) Received: by mail-pf1-f197.google.com with SMTP id d2e1a72fcca58-7aac981b333so622062b3a.2 for ; Thu, 13 Nov 2025 02:36:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763030199; x=1763634999; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=57ueJYK719oVT/uBqCyzf3ryZv6JEk0H+rqU0vfXro0=; b=Paywa9Mnb3nUfmcH2OEgRwu5mTihAWsHWoHzuvNvZCgdfjgomY/LhvoeEI6oMNQ9GK ESSwv3X0u/WWsJvYNjNO/i1iTy1ROCxcSdezrNmz3UhKWoX18kwNMnOEPrdIpja9dzO/ DGiydE9frQlMDwnN7RRN1fvbxcf4MEI2ZY9rSleAkhezQ6SxmyYNk6MjqCqMv8NqyLCs 4UZf1jejI44psd/p2aDQF3KK0si28reao/AkOQ/9AC770sLOrdLyM5pdMBNwgF5ZuXUC DQM204fEP+7ihSzphkatasLybe9tDp36+z9y0n6Tz8snx3z5Ybf//Hl8JS3IyApQXfiI sAFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763030199; x=1763634999; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=57ueJYK719oVT/uBqCyzf3ryZv6JEk0H+rqU0vfXro0=; b=Qqq11RJfyAaGniguXz6alb/A5YGznBLElPsrE0CjT2Stbly6+njWRkeTNUgx0cmetN rFnwyJl6Y/Y3i+Efwstr8WZtT0k37t+psJQptibOnhtkj3pWoiLQ1YmrJcn8eBuUMEvu 5hmILogg3G/OJ6BkWvpwjGFXPkM4/QFYYYhrPLg55T71Hs54gMrkc3K5toJroaTENF0k TLf0wtIQcfNgiWBfWaQmjN+6myBJnSZhRom2oiC/TWM6ZHp0C6LGaRQpe9mL6cqxSG1+ i47RCKD9RAjVwkQAjfy3T+eTOKTTvVVN81l8I9QrCQzK4lW/gZf2Oi7XYvm1GcwTKngU v2/A== X-Forwarded-Encrypted: i=1; AJvYcCVbJn5Rg1XQwl/EZeof1yzgGZHr1YbaoQ86oAGjr5z52M1Nv+SB4HiyJ23se8h5rIG2Y4RA8yfKr6b2a/4=@vger.kernel.org X-Gm-Message-State: AOJu0YxwRfjBA6gCK8897HCe47rGD7yBHspRCPtlENEWdoAOEYrNATie JeavnNX65331TrjxEPybhhnUIfddEs+0gsdGo5dDYC7ClCFcNslFA5z7vfVtkPGK+oRlrrh4u1T 2Nb7860rOgo2J1b8+D37iDiS4FGMqypRE1JFUL/3/a/s/dU8SUIF/wGA/wNgeHX5pZ/A= X-Gm-Gg: ASbGnctliPXPpyRSsOG4im8C14aS5GMSwl23JchncUY8LXuu9XySCvT0PsrLYZDiGVP UoA4ZCsmwwD5s+UQFoJLt+AbolqXr1ByzvRMObE0LV2RVX1zp6E5rlkuJ6MegPMHdb7QumUkGFG uAEAqmaGFySrkzy2pj7c1Yc83lLIu6ZPJGsJDtNkYiguDVcQJcGDCCh2W5ZI1Qvl4MsBopvGH8N leUWLX7rz/l2j1kjr9agzol91tbuDWIECEjuklkAnRy4SFxnrDfjCUiGI5WMbR2vCYFGYbu//0i DZLDpKO594fdmYpzRq+JMXKFfvJXz/06Zal1HIzRT+IvGufHhLWqsSFskd4nfXLq6Ipys/EWgra hr9SnOFoJ+8UmJqY7jWB1fhCGiw== X-Received: by 2002:aa7:9f4a:0:b0:7b8:383d:8706 with SMTP id d2e1a72fcca58-7b8383d9ceemr5110956b3a.18.1763030198765; Thu, 13 Nov 2025 02:36:38 -0800 (PST) X-Google-Smtp-Source: AGHT+IFY1XfjujpWXtu3a8hAbzT70O9BoYL8drTuLVZXmHo0Uv7PJ8TP7RToqZbKFTrDLuGpWscZ+A== X-Received: by 2002:aa7:9f4a:0:b0:7b8:383d:8706 with SMTP id d2e1a72fcca58-7b8383d9ceemr5110915b3a.18.1763030198037; Thu, 13 Nov 2025 02:36:38 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7b9250d2d16sm1886922b3a.22.2025.11.13.02.36.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Nov 2025 02:36:37 -0800 (PST) From: Mukesh Ojha Date: Thu, 13 Nov 2025 16:05:58 +0530 Subject: [PATCH v7 08/14] firmware: qcom_scm: Add a prep version of auth_and_reset function Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251113-kvm-rproc-v7-v7-8-df4910b7c20a@oss.qualcomm.com> References: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> In-Reply-To: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Mukesh Ojha X-Mailer: b4 0.14-dev-f7c49 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763030164; l=4475; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=fTjoksev6NSdPOE7J+AhEJwpfMDv/+Zt/Wrlk/KJAC8=; b=DqGnoxhJ4Pq4/3B9CxegA3jPcBh0483Tyj81cM0Ey8W3aLtmUu8mJppZhHHZL6TTap1k1Je7N JvbdhWcTbKzDydbqsBYqwi8MFERKkOMqcHY+OjL4n5kZxqN0RAhnWKs X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTEzMDA3OCBTYWx0ZWRfXzed8Z2rm22i0 xE2eVx4rEzBuwIRBMqddHdwMk5WKb4SADEPQC/sTFMbxklBSEbk2e/uwtZKQJNmx+GNtGLg3OQC HX65oFnuwn2CiOF7Ocd/QCQj0DeTCuQRjNUvo2UGZ1Jo1svLZVyjHPh3vDU+q0RpSiTXiFbAE62 /3Sdv0USAT/s8b9ing9FI1XrThezopEar6QgGR4hzdXk92qGBVSiU2UFVk2mvajdFceyxrFq3ir SNhc5FiAydFrV2Ilfzqbzm7SChJDcQrMkCOxjggwPIR73lWv8TiHXiBU8972KXCoBvV8HuwxXu5 ZCdRnYTslHe68eVugeyd+JNZx30ChS4JGTLCHlIKian8iOZY8ZFGUQtU/QdoWRXL6PKD/uDo4vp 1l0jupMWBSones5Oqbmj56B1xDYVDw== X-Proofpoint-GUID: -2x-67-wpYWEb2w5Kq3qhvpKSeowkBic X-Authority-Analysis: v=2.4 cv=A5Fh/qWG c=1 sm=1 tr=0 ts=6915b4b8 cx=c_pps a=rEQLjTOiSrHUhVqRoksmgQ==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=XGel9bHSJmg9pP0w-tEA:9 a=QEXdDO2ut3YA:10 a=2VI0MkxyNR6bbpdq8BZq:22 X-Proofpoint-ORIG-GUID: -2x-67-wpYWEb2w5Kq3qhvpKSeowkBic X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-13_01,2025-11-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 priorityscore=1501 clxscore=1015 spamscore=0 phishscore=0 adultscore=0 impostorscore=0 lowpriorityscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511130078 For memory passed to TrustZone (TZ), it must either be part of a pool registered with TZ or explicitly registered via SHMbridge SMC calls. When Gunyah hypervisor is present, PAS SMC calls from Linux running at EL1 are trapped by Gunyah running @ EL2, which handles SHMbridge creation for both metadata and remoteproc carveout memory before invoking the calls to TZ. On SoCs running with a non-Gunyah-based hypervisor, Linux must take responsibility for creating the SHM bridge before invoking PAS SMC calls. For the auth_and_reset() call, the remoteproc carveout memory must first be registered with TZ via a SHMbridge SMC call and once authentication and reset are complete, the SHMbridge memory can be deregistered. Introduce qcom_scm_pas_prepare_and_auth_reset(), which sets up the SHM bridge over the remoteproc carveout memory when Linux operates at EL2. This behavior is indicated by a new field added to the PAS context data structure. The function then invokes the auth_and_reset SMC call. Signed-off-by: Mukesh Ojha --- drivers/firmware/qcom/qcom_scm.c | 48 ++++++++++++++++++++++++++++++= ++++ include/linux/firmware/qcom/qcom_scm.h | 2 ++ 2 files changed, 50 insertions(+) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_= scm.c index ba28b5d6254e..550707f2b46d 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -763,6 +763,54 @@ int qcom_scm_pas_auth_and_reset(u32 pas_id) } EXPORT_SYMBOL_GPL(qcom_scm_pas_auth_and_reset); =20 +/** + * qcom_scm_pas_prepare_and_auth_reset() - Prepare, authenticate, and rese= t the + * remote processor + * + * @ctx: Context saved during call to qcom_scm_pas_context_init() + * + * This function performs the necessary steps to prepare a PAS subsystem, + * authenticate it using the provided metadata, and initiate a reset seque= nce. + * + * It should be used when Linux is in control setting up the IOMMU hardware + * for remote subsystem during secure firmware loading processes. The prep= aration + * step sets up a shmbridge over the firmware memory before TrustZone acce= sses the + * firmware memory region for authentication. The authentication step veri= fies + * the integrity and authenticity of the firmware or configuration using s= ecure + * metadata. Finally, the reset step ensures the subsystem starts in a cle= an and + * sane state. + * + * Return: 0 on success, negative errno on failure. + */ +int qcom_scm_pas_prepare_and_auth_reset(struct qcom_scm_pas_context *ctx) +{ + u64 handle; + int ret; + + if (!ctx->has_iommu) + return qcom_scm_pas_auth_and_reset(ctx->pas_id); + + /* + * When Linux running @ EL1, Gunyah hypervisor running @ EL2 traps the + * auth_and_reset call and create an shmbridge on the remote subsystem + * memory region and then invokes a call to TrustZone to authenticate. + * When Linux runs @ EL2 Linux must create the shmbridge itself and then + * subsequently call TrustZone for authenticate and reset. + */ + ret =3D qcom_tzmem_shm_bridge_create(ctx->mem_phys, ctx->mem_size, &handl= e); + if (ret) { + dev_err(__scm->dev, "Failed to create shmbridge for PAS ID (%u): %d\n", + ctx->pas_id, ret); + return ret; + } + + ret =3D qcom_scm_pas_auth_and_reset(ctx->pas_id); + qcom_tzmem_shm_bridge_delete(handle); + + return ret; +} +EXPORT_SYMBOL_GPL(qcom_scm_pas_prepare_and_auth_reset); + /** * qcom_scm_pas_shutdown() - Shut down the remote processor * @pas_id: peripheral authentication service id diff --git a/include/linux/firmware/qcom/qcom_scm.h b/include/linux/firmwar= e/qcom/qcom_scm.h index 94daf3aa89fc..42621770edd2 100644 --- a/include/linux/firmware/qcom/qcom_scm.h +++ b/include/linux/firmware/qcom/qcom_scm.h @@ -74,6 +74,7 @@ struct qcom_scm_pas_context { void *ptr; dma_addr_t phys; ssize_t size; + bool has_iommu; }; =20 void *devm_qcom_scm_pas_context_init(struct device *dev, u32 pas_id, phys_= addr_t mem_phys, @@ -85,6 +86,7 @@ int qcom_scm_pas_mem_setup(u32 pas_id, phys_addr_t addr, = phys_addr_t size); int qcom_scm_pas_auth_and_reset(u32 pas_id); int qcom_scm_pas_shutdown(u32 pas_id); bool qcom_scm_pas_supported(u32 pas_id); +int qcom_scm_pas_prepare_and_auth_reset(struct qcom_scm_pas_context *ctx); =20 int qcom_scm_io_readl(phys_addr_t addr, unsigned int *val); int qcom_scm_io_writel(phys_addr_t addr, unsigned int val); --=20 2.50.1 From nobody Sun Feb 8 20:35:00 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B7E4833120B for ; Thu, 13 Nov 2025 10:36:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030206; cv=none; b=i6XysnSw6Gu+lOntBhwCFEk5tQj9OtkJGZ0cFpDqoueHUQ7OXGBoN3Z4TG1bHzcU3Amu0RCfYV+qEsoKxkL9mJbVz48OqfvS/d5Sr70gHuYPdhXgoBUYh+lDcZ0n4GcDRHcuHtA4eEkviHJoCLKtKJgqJRnOgyI078TjORjJ5zk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030206; c=relaxed/simple; bh=Rixybg0nsr13QM27UZ58Fss8pUWR5Y6GFHVIXzlNn1Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ApDuEL5M9joef6Tq/oSpYpx7SyThw1cL0t3FD5130c7gXw1lV7VH1A9IdMcNuHYRj4VU86evXO6gP1bEofSlJBQ8cPsCWpy2ozEp+wOk38rMAFhrlgh47vMHbOJ9g3qRb30FpeIHNLXdk3M/i1kjEE91bPDRPCm0X00/gx2L92M= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=UnZDl55D; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=SQ1USp21; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="UnZDl55D"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="SQ1USp21" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AD94Hv03114059 for ; Thu, 13 Nov 2025 10:36:44 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= PcEo95RGQd3sGnxFzyabPD6ez+nlwUdDEO/uN/UXRGQ=; b=UnZDl55DnG9pu9qt BRfzjMKSwGCWxBUatefjb43mjyEM3rclauYU1sOGEvQgRjsZvLIyv3HGSSiDDMvk I49maBeNhd3Cv2uBivT3XIL4UN9zk4QK7Hp+RwYuZOIOBD4qmVOh0AGn3AgmoixX GKJ6bB4xU4tcJYuwFVh/rsNLDAp3MFGLyNp8AsQgzSNRd7/7xI+VM+h4kJLMkPrY GeJoK279/ybFpRAYe5UbUSQmySD628hZQmh49X90ZlSLB7FcGUa5PHlmsCK5cXbC Tvv11j07CxHMSKPlZWRC9GFl5prYg7421/rjUFI8I+q9ntBhok6LTE+do6e/w8Rc WkNG7A== Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4acuw4bg18-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 13 Nov 2025 10:36:43 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-343daf0f38aso929045a91.3 for ; Thu, 13 Nov 2025 02:36:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763030203; x=1763635003; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=PcEo95RGQd3sGnxFzyabPD6ez+nlwUdDEO/uN/UXRGQ=; b=SQ1USp219kgQaPfql6WB38O8lqCJ5aidM82CHvvn4t/8BGWHagrmMvnvdj1J5FDM5a FrTiB8QAZApKSbuEYflf/+Q8QpuBf3i1rjDfbBOGVP/xw2Aw991U1pnZHk/L+oyVct5d 4j1HUmwJQnLOvqd4H7QVYUF3meZE0gZVa8cacgwoE9WIDJ9sGjP2Zj2H1A1jWFh/xQit tmXG3as+/TqZQJIz3vuB2wFDlrlwUiROQaP0V73CdHs+8Keczyl1ODCN8n0uYeaegOW9 wq5zkyeubnuDG4NJ5VKI9vPA5zUZxBHU7MK8y4cSwn1o3sJfDsZzrvIRkQ9t3s85qVGk AuPw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763030203; x=1763635003; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=PcEo95RGQd3sGnxFzyabPD6ez+nlwUdDEO/uN/UXRGQ=; b=lwunmPJwlQANmp09jGz1PjbrElOxz2ZsvmPjgAHW+ZH7svt8om+86Ld+O57wgkh3un SvImbSi4XQb9gaSoTIP5L4+3AE2Ssb2K/MZEzoATDwM6xJkwt++8+FFJUWQT3R14gtJ3 IFjxvpv4qLi5U1DeXHpvARKrxEt1Uy43fmbcG+jTIhh7D25ZKPQXcQwThMTlfaoRngdH oYtUiW61BmLN7Fx8ymTzOZNIaIo54NK6Pm81mTR/pgrsgykt0/GTWQrKVAE5Eewd42xC Ns03a3k5jsXEzKMQrnUZADMdh00Xn9ypiqC/JM7OgodKiMxctnFgAV5gjQ1Qjc3pgIkX DF6w== X-Forwarded-Encrypted: i=1; AJvYcCXL55vaMC1C/4WszuSYWbNr/UqtFUwRq6Ju1QeGmdZAnkIggv7E3OvDmgjWwDL/1Bk3ajHDpxyM00bw1LU=@vger.kernel.org X-Gm-Message-State: AOJu0YznEkN+Zy5vw7tKAspsd8s7YZObPu5SNYbEHmXC234XFPhvMBfY 0Sn3ClXTwI6gr836bBVOT9C9y1qFncWdTsFWLvN8y5GYVXtdTxdI9iiDMDWOZIu02nppPdRs9Dt EsIArI/M2PjYeNCoHGVOXKLO1I0FgxlXZ8SYfTtHbOcADlD05kiipt7ixrc8IWvvdpSDjCxDOtJ Q= X-Gm-Gg: ASbGncszZgkOopxPgpNX4S0lcRD3b0xVlU+/9O4x5JUYXGzaZ/ZFwjZK18uUfG+VaKi KCS0NT4KaETGi4xM2QUtanueNiHimFG9Rsx3ZnRfvgr3AGYs67IV+WtCc4p/z5NLgH3iNB0OuDV j+vLT9tclychx0gh+wh5wTj7KZr2ThBDERFm1nROSw3iv3PtxCeZ/ho2cXWy0Yr+kUEbPpNlm3N 1xpx++jxvPfK9z2p4QBChXL+KXVaVdDrnjFm2t/F+pQvfoQvKXtNt/gZLLheV4q7/afOsx0D2bC aTTHgBK80Sqp6qBQGDhAuR2z85OVWXFDZRc/5mjdbelBcjNrs+fZNr8j7WrODkZa4UPt0SiWbgi kGoxSuXlIHEIsWp2AAR+ZpRTeVg== X-Received: by 2002:a17:90b:3b52:b0:340:d511:e164 with SMTP id 98e67ed59e1d1-343dde8a8f4mr7289071a91.19.1763030202823; Thu, 13 Nov 2025 02:36:42 -0800 (PST) X-Google-Smtp-Source: AGHT+IE9NPj80JXCoZnsGrN6R/U0j3ZrmSWpSgxRDBU1ba/XJeQ9MOHyZg+Bw/xjGnVsiTx3sM6kqQ== X-Received: by 2002:a17:90b:3b52:b0:340:d511:e164 with SMTP id 98e67ed59e1d1-343dde8a8f4mr7289028a91.19.1763030202110; Thu, 13 Nov 2025 02:36:42 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7b9250d2d16sm1886922b3a.22.2025.11.13.02.36.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Nov 2025 02:36:41 -0800 (PST) From: Mukesh Ojha Date: Thu, 13 Nov 2025 16:05:59 +0530 Subject: [PATCH v7 09/14] firmware: qcom_scm: Simplify qcom_scm_pas_init_image() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251113-kvm-rproc-v7-v7-9-df4910b7c20a@oss.qualcomm.com> References: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> In-Reply-To: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Bryan O'Donoghue , Konrad Dybcio , Mukesh Ojha X-Mailer: b4 0.14-dev-f7c49 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763030164; l=2933; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=Rixybg0nsr13QM27UZ58Fss8pUWR5Y6GFHVIXzlNn1Y=; b=oaQRTVkCrSII61AJEfLhhD5zuum9iVDoqDeXjj00zyjuT7CjuoWX7+6TZq2bGWajZtBeY9AR/ Qp+KwdIJZfbBvZ5xso6pwzV+ltUmUeEleEvhZ3pQsjGBtfawHSVbzV2 X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-ORIG-GUID: oPd3vR6vQKCE4KuvdIZvGMZqG6MpxC5D X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTEzMDA3OCBTYWx0ZWRfX3LszxIgCO3nN N5OAcLFBsOD9EizDQXwL0fXQNcu0KaXDWOasDk5dTb98obpMSisqJAPf8OXQ/yhi6U86xi/ezhr eCsWKNprbraFftASyGmlWYBn3sK22lxjoYGhm/q+Avzz4RQr0r2gCmizWWs7ZB55hQSFQktc4Ir u3uuYQtqyawxALrzZUlPXfK8N5sbDJGWtcHRjLx2RCs1vas+D4GULAJsgUe6aiQdY/xuV40pJox TmshibjmygDQYChVT0fKmWZJQhSWMkd4+pHraS2/G9K7NX7a1ZJ4davC08nthXxXPCKknpxsAwN GTN9hElR6YJFykTFCZP6+e019afc3ZFhOSX84C/OKxOUWDcA7CpeKj1uFr/ckjGjHXQCterUv4m uedvpeOar4Gjsrydnq2q2+wyKktxDQ== X-Authority-Analysis: v=2.4 cv=F+Bat6hN c=1 sm=1 tr=0 ts=6915b4bb cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=4CDOrE8EU7KXtL0i2UkA:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: oPd3vR6vQKCE4KuvdIZvGMZqG6MpxC5D X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-13_01,2025-11-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 spamscore=0 malwarescore=0 phishscore=0 bulkscore=0 adultscore=0 priorityscore=1501 impostorscore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511130078 Simplify qcom_scm_pas_init_image() by making the memory allocation, copy and free operations done in a separate function than the actual SMC call. Reviewed-by: Bryan O'Donoghue Reviewed-by: Konrad Dybcio Signed-off-by: Mukesh Ojha --- drivers/firmware/qcom/qcom_scm.c | 58 +++++++++++++++++++++++-------------= ---- 1 file changed, 33 insertions(+), 25 deletions(-) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_= scm.c index 550707f2b46d..1d8a2c537c44 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -590,6 +590,37 @@ void *devm_qcom_scm_pas_context_init(struct device *de= v, u32 pas_id, phys_addr_t } EXPORT_SYMBOL_GPL(devm_qcom_scm_pas_context_init); =20 +static int __qcom_scm_pas_init_image(u32 pas_id, dma_addr_t mdata_phys, vo= id *metadata, + size_t size, struct qcom_scm_res *res) +{ + struct qcom_scm_desc desc =3D { + .svc =3D QCOM_SCM_SVC_PIL, + .cmd =3D QCOM_SCM_PIL_PAS_INIT_IMAGE, + .arginfo =3D QCOM_SCM_ARGS(2, QCOM_SCM_VAL, QCOM_SCM_RW), + .args[0] =3D pas_id, + .owner =3D ARM_SMCCC_OWNER_SIP, + }; + int ret; + + ret =3D qcom_scm_clk_enable(); + if (ret) + return ret; + + ret =3D qcom_scm_bw_enable(); + if (ret) + goto disable_clk; + + desc.args[1] =3D mdata_phys; + + ret =3D qcom_scm_call(__scm->dev, &desc, res); + qcom_scm_bw_disable(); + +disable_clk: + qcom_scm_clk_disable(); + + return ret; +} + /** * qcom_scm_pas_init_image() - Initialize peripheral authentication service * state machine for a given peripheral, using the @@ -610,17 +641,10 @@ EXPORT_SYMBOL_GPL(devm_qcom_scm_pas_context_init); int qcom_scm_pas_init_image(u32 pas_id, const void *metadata, size_t size, struct qcom_scm_pas_context *ctx) { + struct qcom_scm_res res; dma_addr_t mdata_phys; void *mdata_buf; int ret; - struct qcom_scm_desc desc =3D { - .svc =3D QCOM_SCM_SVC_PIL, - .cmd =3D QCOM_SCM_PIL_PAS_INIT_IMAGE, - .arginfo =3D QCOM_SCM_ARGS(2, QCOM_SCM_VAL, QCOM_SCM_RW), - .args[0] =3D pas_id, - .owner =3D ARM_SMCCC_OWNER_SIP, - }; - struct qcom_scm_res res; =20 /* * During the scm call memory protection will be enabled for the meta @@ -641,23 +665,7 @@ int qcom_scm_pas_init_image(u32 pas_id, const void *me= tadata, size_t size, =20 memcpy(mdata_buf, metadata, size); =20 - ret =3D qcom_scm_clk_enable(); - if (ret) - goto out; - - ret =3D qcom_scm_bw_enable(); - if (ret) - goto disable_clk; - - desc.args[1] =3D mdata_phys; - - ret =3D qcom_scm_call(__scm->dev, &desc, &res); - qcom_scm_bw_disable(); - -disable_clk: - qcom_scm_clk_disable(); - -out: + ret =3D __qcom_scm_pas_init_image(pas_id, mdata_phys, mdata_buf, size, &r= es); if (ret < 0 || !ctx) { dma_free_coherent(__scm->dev, size, mdata_buf, mdata_phys); } else if (ctx) { --=20 2.50.1 From nobody Sun Feb 8 20:35:00 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E9D1D33507B for ; Thu, 13 Nov 2025 10:36:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030209; cv=none; b=G5N7/K7uKmfQCihPrY1NVTOtYDscSKreJdfMMueL7EkHyXENZyk/KolX0anQir70iCRMsAmoWPxpMD5pb7Jx47M/F3XJc2ldMr75hOsejxxCnOI9uvXYTNipm0/VurkQs21OeL9/XpENesClwPeo6FUEYzzR+SwIUGkDx8eh5WU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030209; c=relaxed/simple; bh=K5AD4MS8Ep7hajHBXS/zPrrGUHN+ZQvv9zBkPOPyBR8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qhey6rqKXfj2pfN1LYw7pT0Seka76LewHRp9LkacBcPpo++LgKONuiMdH5K9avVMICGd8/pAkSMDKOTot1IjLQtaaRBy6OE9fvpEyZLi6UABDKcpw4IKnP4IWtMrLKADQmNqiniJ/Q8rMUYEpcEEF2yiD9UcizWIvQ65PwUvS8o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=jmzgqgUC; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=VC7cIgTE; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="jmzgqgUC"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="VC7cIgTE" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AD8tb5D3114164 for ; Thu, 13 Nov 2025 10:36:47 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= tz5oxegOpV9wqnYLDAnAOnc8hojI0YEC3J8gLErT30E=; b=jmzgqgUCEN06FNi8 B8Xl1nSluHMbE0KDMEqndrTTmdrAW4/dn+EOmZN0cM7XlhkNRgl2+/HEQ2fhjD4F 4O3rgE0G4g216+lkGWgkaomYyiA4LLYa03uXJHGFh046cO296dFhJPsstWYK/k18 LEif5bUVaLCygcEQf4TpH3qiZLvCElzb7X8FN17ZtyLCJO3rqjkeUYz1Ycz4SNIY /JsEyyDTgG9w4MgZFgAQ4N4+SqPZPlXdChPVrUqI/0XDPoVdY8VGiiKJdYXDpe28 mFI5M7PFKpxBBcSdoAEpx5MtFxx5Fxu+WBYO/1gN+Al22NTQufs6LeP3dgqFoxQI nkARFw== Received: from mail-pf1-f199.google.com (mail-pf1-f199.google.com [209.85.210.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4acuw4bg1f-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 13 Nov 2025 10:36:47 +0000 (GMT) Received: by mail-pf1-f199.google.com with SMTP id d2e1a72fcca58-7b4933bc4aeso636663b3a.2 for ; Thu, 13 Nov 2025 02:36:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763030207; x=1763635007; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=tz5oxegOpV9wqnYLDAnAOnc8hojI0YEC3J8gLErT30E=; b=VC7cIgTEheNrzhVz4m9F6g2Is2vzMDKGpOq5jAhruSr21dNpbdrE+TxY86Qfm0Er8G bmFnwxb6K9qTYqPItV4ndAYdUev+yyNwEbPHZUrhQJgT2rg2vpOgbRYUEYBUop7Y+guE gGPsJAqQVNsWR/GeiLP+pi1tluS58NO4H4WAev2OFhZdw9yQ1jKTnEaEr3dIdmrEn9vC BoWD04DPpu3Se8wNlXgftAr/7AqcunSAdwj2Qg4im4xalIlFl7czImlEdx/TZFyE5v0J q05+m/kvdQI8ceyJarnqYmD2VGTZ/pausg3eu4YYDEw9X3Z89t2Hd9LywKKuj5O/nfmL 0V7g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763030207; x=1763635007; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=tz5oxegOpV9wqnYLDAnAOnc8hojI0YEC3J8gLErT30E=; b=v9zcDcyT8LSCVu1fyJYTxe/y0rtU7292HWQM6vdOdu4+pizJGLa4QM0TPIfT88N1Hf bEK0H0SI/5uKqT+vSdjHyFChZVIb0IXxaH5YYz4oHSg1BKmhgIJM7WI7MWUpNia9wNTG hp38j1E3igjEa5433jCOMU1YBF/u8cavIcRgZYM/Udnk+QBDcyMgL7Nf3Vm49G/67jL3 c/NmaUF4NzZPbMVSLKwv1PdLO1RIDSuRjeZ+MXryoN4mHUdstPDJyB/fFes4URebNG7+ O9IJNiYtvtXNBpSVwr2TIpa9asD9v2E8SNBoGrrepDSP9o+62kKplegTif1uVxHgERsT 0uFg== X-Forwarded-Encrypted: i=1; AJvYcCVIrtNu07s9PqkpssY6a0mwePVSJ7OA2GQdNR6t0ACJvXZsQtBRsjCShGpvKvARFcFU71SKIpPiVJiyg1o=@vger.kernel.org X-Gm-Message-State: AOJu0YyJr0Ay+gJwsNQCf9A4yZxwGSKXbNykP894B7gKZatDNcS9VxkF xdnD3jsRQe6rEWeYe2YPrAZvpZtaM2X7NKBVyfHGZfflK7SEPcr5CTktUYzYoQUM3S6/3zyBGNi 4oXEej24Gnoxz5GKBFLAAhPzMWVSRjp8kiVTYRRk7yHuuCtX+DbBV6q8WGqrkdA5mZS0= X-Gm-Gg: ASbGncuwBTIKSCvafCpleEt+0vYjguyXtR+mQbWis4/Wk4Z9LfEo4x+Y+UDJxu9CW/t hlgeJBSmIOTkihCMGLSLTULTJ9GNHKyaoPdveKwop4EdfzpZbO8B/6futUVQMfy+PQ6AdJcgFhm hnyx0jQHwSo/aBtgb6tqw95mvwyjtjCSXNRoNbdFVOrxxAY/rQ9k4/z9i3bV/vEKZEC+ld12uRg xJ200LL2KECT8qrGeXhQAb7I567BafMrfOgX/qeuo62SiR3y5WgJVevOKowaelBZ5zVxzayL1NI L5eXc8GXIzOrIhQMt54VPvrzFekibT1N0oUvoxi3LteLdIzttTbl0gJsEbhX2zx0Brhts2BR00D Q5Ih1FW7cpSiN32rsiEDaRAm0Qg== X-Received: by 2002:a05:6a00:2287:b0:7a2:6c61:23fc with SMTP id d2e1a72fcca58-7b7a2b92da3mr6960949b3a.10.1763030206458; Thu, 13 Nov 2025 02:36:46 -0800 (PST) X-Google-Smtp-Source: AGHT+IE/WKDiCM2UOrMWgSAoR7ZDfPT2yc3wUHejCPKn29YFtjPwMnE39+X/wjvHSar2LPQwCJgk6Q== X-Received: by 2002:a05:6a00:2287:b0:7a2:6c61:23fc with SMTP id d2e1a72fcca58-7b7a2b92da3mr6960914b3a.10.1763030205815; Thu, 13 Nov 2025 02:36:45 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7b9250d2d16sm1886922b3a.22.2025.11.13.02.36.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Nov 2025 02:36:45 -0800 (PST) From: Mukesh Ojha Date: Thu, 13 Nov 2025 16:06:00 +0530 Subject: [PATCH v7 10/14] firmware: qcom_scm: Add SHM bridge handling for PAS when running without QHEE Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251113-kvm-rproc-v7-v7-10-df4910b7c20a@oss.qualcomm.com> References: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> In-Reply-To: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Mukesh Ojha X-Mailer: b4 0.14-dev-f7c49 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763030164; l=2476; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=K5AD4MS8Ep7hajHBXS/zPrrGUHN+ZQvv9zBkPOPyBR8=; b=IcKOznaNl4sz1EXhicKw1RV3lBUoHCmqELDUGl1+01BWVW4upKK+HhJDoP5jg4MW90VBsLxDU 47EjUoTpFQyDsyatel4b7984Ae4UX8LRTKu1Z0oDcWzfQ3Q9mhUYsn+ X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-ORIG-GUID: 6lATmqVxQRCguRshpu3M89xM61I-0wvU X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTEzMDA3OCBTYWx0ZWRfXydJJNQtDkgxi QLtvAWgYz5ArmqKNjXk+7fpm06AzK927OM24WxULm0o00O2GDQCheV4GKJvcmMMVrKcnXG2OUgv 7lcfn6GW05m5qrwSPOv/HaYIdRyFTokV9ttL7uDtFPPTYOXJDP+26i+J4Fbao2/m0kT2xF5Q4v4 w6KZjPEe2WICoqP8BwM1Oj1dZi4ONOsTBl6UNc2q7FI7dcLTlbQsBS8AjlOi82R2bgcSHHxHcw/ qf/YGD/vtjY6g2Zz82cKTcOHrSPecg9f3PIz811JWRyFNpXPK/veQZICD5SO8AN98EgE3uolUGd 2zGvmo4+NzmtAnzGxGK7F8y4n8OcR2mECW9ZfbJzYu98MnjDBja+wz3dKlLVnDeV9yng5oyuhAp 0JcWGmiBR2mLPEbQCd6f+EZqPOqEEw== X-Authority-Analysis: v=2.4 cv=F+Bat6hN c=1 sm=1 tr=0 ts=6915b4bf cx=c_pps a=WW5sKcV1LcKqjgzy2JUPuA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=08WIqK_J-xaQODWVIAIA:9 a=QEXdDO2ut3YA:10 a=OpyuDcXvxspvyRM73sMx:22 X-Proofpoint-GUID: 6lATmqVxQRCguRshpu3M89xM61I-0wvU X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-13_01,2025-11-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 spamscore=0 malwarescore=0 phishscore=0 bulkscore=0 adultscore=0 priorityscore=1501 impostorscore=0 lowpriorityscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511130078 On SoCs running with a non-Gunyah-based hypervisor, Linux must take responsibility for creating the SHM bridge both for metadata (before calling qcom_scm_pas_init_image()) and for remoteproc memory (before calling qcom_scm_pas_auth_and_reset()). We have taken care the things required for qcom_scm_pas_auth_and_reset(). Lets put these awareness of above conditions into qcom_scm_pas_init_image() and qcom_scm_pas_metadata_release(). Signed-off-by: Mukesh Ojha Reviewed-by: Konrad Dybcio --- drivers/firmware/qcom/qcom_scm.c | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_= scm.c index 1d8a2c537c44..cab4723eb33d 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -621,6 +621,30 @@ static int __qcom_scm_pas_init_image(u32 pas_id, dma_a= ddr_t mdata_phys, void *me return ret; } =20 +static int qcom_scm_pas_prep_and_init_image(struct qcom_scm_pas_context *c= tx, + const void *metadata, size_t size) +{ + struct qcom_scm_res res; + phys_addr_t mdata_phys; + void *mdata_buf; + int ret; + + mdata_buf =3D qcom_tzmem_alloc(__scm->mempool, size, GFP_KERNEL); + if (!mdata_buf) + return -ENOMEM; + + memcpy(mdata_buf, metadata, size); + mdata_phys =3D qcom_tzmem_to_phys(mdata_buf); + + ret =3D __qcom_scm_pas_init_image(ctx->pas_id, mdata_phys, mdata_buf, siz= e, &res); + if (ret < 0) + qcom_tzmem_free(mdata_buf); + else + ctx->ptr =3D mdata_buf; + + return ret ? : res.result[0]; +} + /** * qcom_scm_pas_init_image() - Initialize peripheral authentication service * state machine for a given peripheral, using the @@ -646,6 +670,9 @@ int qcom_scm_pas_init_image(u32 pas_id, const void *met= adata, size_t size, void *mdata_buf; int ret; =20 + if (ctx && ctx->has_iommu) + return qcom_scm_pas_prep_and_init_image(ctx, metadata, size); + /* * During the scm call memory protection will be enabled for the meta * data blob, so make sure it's physically contiguous, 4K aligned and @@ -687,7 +714,10 @@ void qcom_scm_pas_metadata_release(struct qcom_scm_pas= _context *ctx) if (!ctx->ptr) return; =20 - dma_free_coherent(__scm->dev, ctx->size, ctx->ptr, ctx->phys); + if (ctx->has_iommu) + qcom_tzmem_free(ctx->ptr); + else + dma_free_coherent(__scm->dev, ctx->size, ctx->ptr, ctx->phys); =20 ctx->ptr =3D NULL; } --=20 2.50.1 From nobody Sun Feb 8 20:35:00 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BCAFF33A02D for ; Thu, 13 Nov 2025 10:36:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030213; cv=none; b=Q+Q4yZ1ow9AL+Hvyh+EtffGYu0SWg8Yy/2yXJXA4977iej7crzXs3odzNOQ44lDfT1JLasfN1vp0AvZHqIimlOQfUF3hEGWCBRw5YpNmsOLljOKlPFinertsAEWihISvts/K02NE68Yp0/w+n26DGp6MiJ18Z7hr0pz8RCNRNts= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030213; c=relaxed/simple; bh=djomGe7rq3iTFxovMJE0vHDodzk7Kxb/jVnEstLyEoE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sXM1HiyN8MTy3WpFVa0UJUnIxuc5xo4Io0S4Gs3Fe/CMte5AYCEJUkv5K8/UOGBlTIiXpxb0AezETRWvfiTsOCDveW1yKbdrfGXCgCWxO02gLenwBYkxPJtFmOMqJOxWzcSFeySsTicv1J85XhIHxAjQjUXJ+XXnCCjYHFLEJrE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=ZXz614r3; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=BgO5mf5e; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="ZXz614r3"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="BgO5mf5e" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AD65gJ53563291 for ; Thu, 13 Nov 2025 10:36:51 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= C9WCKwTbuAdm6P15kNxE8kItfpAlknREEeI4Awhab2s=; b=ZXz614r3wYirWTep ZQHxBp3oiRzYryag2eKKx6KveAM+72J55+LtfKroonCDewedzYpis7FwCjyyuaXg AqVQS9j8SS/87PkEn4oDpSvAc/1Olft0U82F0gbgfm9nrJvheTTwlWp7Hs4A0eY3 nCSveZndDZObM4bBjwOrTxBjLZR9v0ZTEuk93LKCWruS0Taqrbd1HeMF12Rg+kar S7Ld8HFlfs7R4fvbK+KY3CY5kVhh4ATIU3gGjnLBELJqtBWv+hZ6PMmeAW1Da8yv PyCvsIACv4F2Q/zf8iI1ZK6pwSDwxmkXXLYjFgY7R9YMH6FsazyM7bgf5HXnPLEN +NnAag== Received: from mail-pg1-f200.google.com (mail-pg1-f200.google.com [209.85.215.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ad9rvgtuc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 13 Nov 2025 10:36:51 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-ba265ee0e34so568057a12.2 for ; Thu, 13 Nov 2025 02:36:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763030210; x=1763635010; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=C9WCKwTbuAdm6P15kNxE8kItfpAlknREEeI4Awhab2s=; b=BgO5mf5e5y9JIPbj15QVT+VTPUdzIhwHcp9rrgOTOvRTMpDg5adzeHO76PQ5D2VXUh MWQMaoERU9iBAV48HS4CHqRk1E0aG3DKuiEvhlLBrhR4qnUCRrfSyn2rFAp44Mo122PV RBwrA/eE8Swgko+1OZGSCCudahU2Izhr4I1pHAXzI0FEVdThkCc1YgKdpeLfbF0klq6l NymlwHfehsxMzCSJuEx1WxPkDtB6nccxGBOOr/gmyJp1IvGn6umOp9FsRblLFvhk0J5D gL7ejc1umhkyhfkZtIXM+WoFFGgvpYaD3swOwzFYRHCrfqLJF31c/8nfyGpLqq3UbO3W y12w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763030210; x=1763635010; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=C9WCKwTbuAdm6P15kNxE8kItfpAlknREEeI4Awhab2s=; b=AWEYwxl8JYBaVg/yCH33v98DW3b+YdNiHfUJlQ1TcGN9Zs/NPfWIHg9BFp62Tkb4cc BI3oNcNgHjp2Euh5gpkuJwWmn6fbe2itBzC2F8zfd49nW+H2Ojr9m/xtD4evb/QNa1NS S2g7ArZgP7zVG/v9PXvYHNSnNPDdwx7K/3kyAWD4RuulmuILyd8vUrhVbohCOwBAqqQn Te1pXYP2NIlZ0K0HMIIgB5Rwam/Ifq8+uT7yGIwupcO29JcEmbWV5v56YG9KqSG32Qc6 SzSNKf8P4sQHW7Aaby24hnTOUofwtUFd6pepXntKg+kzUXc3xk3qt8Ek9zl09X8sAKhe EhAw== X-Forwarded-Encrypted: i=1; AJvYcCU/2xZbrvyjNNg/JABm9lAir5n/lJMIVT/UFXOT17omFyxn0Ruh2vYexUCTEIpknMhDAvsJhC+LOZ7CwnE=@vger.kernel.org X-Gm-Message-State: AOJu0Yx8lGJbGNHdwx2KDp18764jPb3vfFVv4P2GuH49wGW3m9KlBzOD 2QQ6pbPXrhKKsHpsu1pNLVi1O1vyOiKE2zxobHJypgDpbNYEboBx8aePNB/EK9A6UT7NyhYvc7o keWVa7nXDpWYg8QHOkxI0PdGRJREsz+x+Lloh5tuFt4Jl03c7R11dYxgrkiTehNdwRzw= X-Gm-Gg: ASbGncsm6US4aEHT53xT1NVTP+GUJdB/xZyx7ckpWd8GvhLSYgZ7mjCz8LNU0Yd8W7j +btJI9Afvw3T1pDjDNjrY4evyn47HDRghej+2ybojghvcHdbAr0tty2maNfLcwDKnBp3263etm2 c25aFNQeFvrqIYdevo3toQMdmuM9cMSA4GGkBTFksLNVMx2MCpvvpqvhoXuxOOsD3LKFG4MUkRS QlLIg4m8C9VO8aynuOG1U/C6XwSgzKAQmtpNeInIlRYAllxc8MQfSVoQzY+RHk2A+BGxYtQCj4n 7l7J4ynu2xJb4rP1xO6OP91utU76Ec0c51Up9InfEIsyPlsjkfLUPFO0F5p4eJgfonlg4+IlXDQ IlQV2JZ/WjOI4Jksj/HemBdAmug== X-Received: by 2002:a05:6a20:3d07:b0:342:1265:158f with SMTP id adf61e73a8af0-3590b51e999mr8810049637.51.1763030210198; Thu, 13 Nov 2025 02:36:50 -0800 (PST) X-Google-Smtp-Source: AGHT+IGOoEsGUkKs8KZ9AdnKukZ0rvPwRIAO6ZSx89TxXB2N4KAn2xfBBrzm+7GlMbpZpn4Ka2Bz2g== X-Received: by 2002:a05:6a20:3d07:b0:342:1265:158f with SMTP id adf61e73a8af0-3590b51e999mr8810005637.51.1763030209465; Thu, 13 Nov 2025 02:36:49 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7b9250d2d16sm1886922b3a.22.2025.11.13.02.36.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Nov 2025 02:36:49 -0800 (PST) From: Mukesh Ojha Date: Thu, 13 Nov 2025 16:06:01 +0530 Subject: [PATCH v7 11/14] firmware: qcom_scm: Add qcom_scm_pas_get_rsc_table() to get resource table Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251113-kvm-rproc-v7-v7-11-df4910b7c20a@oss.qualcomm.com> References: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> In-Reply-To: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Mukesh Ojha X-Mailer: b4 0.14-dev-f7c49 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763030164; l=9189; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=djomGe7rq3iTFxovMJE0vHDodzk7Kxb/jVnEstLyEoE=; b=2yNfcdo7Bk7m3xYLd89AOeiFfCnsDfEtVQXfhjNIunjbVpC76x+YU6eyPXHI28uTSb5Uo1WTi 0HXXEh7BQsFD9KsJ0O5XpzO0VwuQddeCSoEZrFvd7nFtNI+1lZ1ZHbD X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Authority-Analysis: v=2.4 cv=XrX3+FF9 c=1 sm=1 tr=0 ts=6915b4c3 cx=c_pps a=oF/VQ+ItUULfLr/lQ2/icg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=KFEUUOXM5gBsW3BA6b4A:9 a=QEXdDO2ut3YA:10 a=3WC7DwWrALyhR5TkjVHa:22 X-Proofpoint-ORIG-GUID: odnXY9tbc493LVMVbS7pOXMTtrzVqFi0 X-Proofpoint-GUID: odnXY9tbc493LVMVbS7pOXMTtrzVqFi0 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTEzMDA3OCBTYWx0ZWRfXzFUHEN6aJoF1 a3ONEARRgP2j6Ww5g01U9HO+D3Q+SoS+WU/sQF1rL4cWGaXyJjlH91IUGSb23knR5fGb6ai6k/e ZrLB8y4nj5MZWzDnaYyRYJ6GmF0bDb8UJWdTOIaH93/h/BR5VOxkxKoABdwY6AGu79TbKhtKkmA N6S3Ku9TIFXRFPQPS6TsatSsY05se8QJAVwl7Vx5bkY6Yy8qPHCSB4boCqtZWLCGWGm2PfeNxzs utDbldKzU2j/V9M1i4SE9/lXFhZEN8RyQAb+dZ23LtfHeqH679lc4PKFMts13GNzFwJK2iaqS7K TDeo9T8uhLXDeNZ5dy4eB3ygWT5WKG2LoX2HAJ3/DcvcWW90xXjkQfadptQWdf71ehKdW6+H8v/ 7mPl+M0pTnu90wv/MqJdqYCcweR+oQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-13_01,2025-11-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 bulkscore=0 spamscore=0 clxscore=1015 impostorscore=0 phishscore=0 adultscore=0 suspectscore=0 malwarescore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511130078 Qualcomm remote processor may rely on Static and Dynamic resources for it to be functional. Static resources are fixed like for example, memory-mapped addresses required by the subsystem and dynamic resources, such as shared memory in DDR etc., are determined at runtime during the boot process. For most of the Qualcomm SoCs, when run with Gunyah or older QHEE hypervisor, all the resources whether it is static or dynamic, is managed by the hypervisor. Dynamic resources if it is present for a remote processor will always be coming from secure world via SMC call while static resources may be present in remote processor firmware binary or it may be coming qcom_scm_pas_get_rsc_table() SMC call along with dynamic resources. Some of the remote processor drivers, such as video, GPU, IPA, etc., do not check whether resources are present in their remote processor firmware binary. In such cases, the caller of this function should set input_rt and input_rt_size as NULL and zero respectively. Remoteproc framework has method to check whether firmware binary contain resources or not and they should be pass resource table pointer to input_rt and resource table size to input_rt_size and this will be forwarded to TrustZone for authentication. TrustZone will then append the dynamic resources and return the complete resource table in output_rt More about documentation on resource table format can be found in include/linux/remoteproc.h Signed-off-by: Mukesh Ojha --- drivers/firmware/qcom/qcom_scm.c | 158 +++++++++++++++++++++++++++++= ++++ drivers/firmware/qcom/qcom_scm.h | 1 + include/linux/firmware/qcom/qcom_scm.h | 4 + 3 files changed, 163 insertions(+) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_= scm.c index cab4723eb33d..0b156709af38 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #include =20 @@ -111,6 +112,10 @@ enum qcom_scm_qseecom_tz_cmd_info { QSEECOM_TZ_CMD_INFO_VERSION =3D 3, }; =20 +enum qcom_scm_rsctable_resp_type { + RSCTABLE_BUFFER_NOT_SUFFICIENT =3D 20, +}; + #define QSEECOM_MAX_APP_NAME_SIZE 64 #define SHMBRIDGE_RESULT_NOTSUPP 4 =20 @@ -764,6 +769,159 @@ int qcom_scm_pas_mem_setup(u32 pas_id, phys_addr_t ad= dr, phys_addr_t size) } EXPORT_SYMBOL_GPL(qcom_scm_pas_mem_setup); =20 +static int __qcom_scm_pas_get_rsc_table(u32 pas_id, void *input_rt, size_t= input_rt_size, + void **output_rt, size_t *output_rt_size) +{ + struct qcom_scm_desc desc =3D { + .svc =3D QCOM_SCM_SVC_PIL, + .cmd =3D QCOM_SCM_PIL_PAS_GET_RSCTABLE, + .arginfo =3D QCOM_SCM_ARGS(5, QCOM_SCM_VAL, QCOM_SCM_RO, QCOM_SCM_VAL, + QCOM_SCM_RW, QCOM_SCM_VAL), + .args[0] =3D pas_id, + .owner =3D ARM_SMCCC_OWNER_SIP, + }; + void *input_rt_buf, *output_rt_buf; + struct resource_table *rsc; + struct qcom_scm_res res; + int ret; + + ret =3D qcom_scm_clk_enable(); + if (ret) + return ret; + + ret =3D qcom_scm_bw_enable(); + if (ret) + goto disable_clk; + + /* + * TrustZone can not accept buffer as NULL value as argument Hence, + * we need to pass a input buffer indicating that subsystem firmware + * does not have resource table by filling resource table structure. + */ + if (!input_rt) + input_rt_size =3D sizeof(*rsc); + + input_rt_buf =3D qcom_tzmem_alloc(__scm->mempool, input_rt_size, GFP_KERN= EL); + if (!input_rt_buf) { + ret =3D -ENOMEM; + goto disable_scm_bw; + } + + if (!input_rt) { + rsc =3D input_rt_buf; + rsc->num =3D 0; + } else { + memcpy(input_rt_buf, input_rt, input_rt_size); + } + + output_rt_buf =3D qcom_tzmem_alloc(__scm->mempool, *output_rt_size, GFP_K= ERNEL); + if (!output_rt_buf) { + ret =3D -ENOMEM; + goto free_input_rt_buf; + } + + desc.args[1] =3D qcom_tzmem_to_phys(input_rt_buf); + desc.args[2] =3D input_rt_size; + desc.args[3] =3D qcom_tzmem_to_phys(output_rt_buf); + desc.args[4] =3D *output_rt_size; + + /* + * Whether SMC fail or pass, res.result[2] will hold actual resource table + * size. + * + * if passed 'output_rt_size' buffer size is not sufficient to hold the + * resource table TrustZone sends, response code in res.result[1] as + * RSCTABLE_BUFFER_NOT_SUFFICIENT so that caller can retry this SMC call = with + * output_rt buffer with res.result[2] size. + */ + ret =3D qcom_scm_call(__scm->dev, &desc, &res); + *output_rt_size =3D res.result[2]; + if (!ret) + memcpy(*output_rt, output_rt_buf, *output_rt_size); + + if (ret && res.result[1] =3D=3D RSCTABLE_BUFFER_NOT_SUFFICIENT) + ret =3D -EAGAIN; + + qcom_tzmem_free(output_rt_buf); + +free_input_rt_buf: + qcom_tzmem_free(input_rt_buf); + +disable_scm_bw: + qcom_scm_bw_disable(); + +disable_clk: + qcom_scm_clk_disable(); + + return ret ? : res.result[0]; +} + +/** + * qcom_scm_pas_get_rsc_table() - Retrieve the resource table in passed ou= tput buffer + * for a given peripheral. + * + * Qualcomm remote processor may rely on both static and dynamic resources= for + * its functionality. Static resources typically refer to memory-mapped ad= dresses + * required by the subsystem and are often embedded within the firmware bi= nary + * and dynamic resources, such as shared memory in DDR etc., are determine= d at + * runtime during the boot process. + * + * On Qualcomm Technologies devices, it's possible that static resources a= re not + * embedded in the firmware binary and instead are provided by TrustZone H= owever, + * dynamic resources are always expected to come from TrustZone. This indi= cates + * that for Qualcomm devices, all resources (static and dynamic) will be p= rovided + * by TrustZone via the SMC call. + * + * If the remote processor firmware binary does contain static resources, = they + * should be passed in input_rt. These will be forwarded to TrustZone for + * authentication. TrustZone will then append the dynamic resources and re= turn + * the complete resource table in output_rt. + * + * If the remote processor firmware binary does not include a resource tab= le, + * the caller of this function should set input_rt as NULL and input_rt_si= ze + * as zero respectively. + * + * More about documentation on resource table data structures can be found= in + * include/linux/rsc_table.h + * + * @ctx: PAS context + * @pas_id: peripheral authentication service id + * @input_rt: resource table buffer which is present in firmware bin= ary + * @input_rt_size: size of the resource table present in firmware binary + * @output_rt: buffer to which the both static and dynamic resources w= ill + * be returned. + * @output_rt_size: TrustZone expects caller should pass worst case size f= or + * the output_rt. + * + * Return: 0 on success and nonzero on failure. + * + * Upon successful return, output_rt will have the resource table and outp= ut_rt_size + * will have actual resource table size, + */ +int qcom_scm_pas_get_rsc_table(struct qcom_scm_pas_context *ctx, void *inp= ut_rt, + size_t input_rt_size, void **output_rt, + size_t *output_rt_size) +{ + unsigned int retry_num =3D 5; + int ret; + + do { + *output_rt =3D kzalloc(*output_rt_size, GFP_KERNEL); + if (!*output_rt) + return -ENOMEM; + + ret =3D __qcom_scm_pas_get_rsc_table(ctx->pas_id, input_rt, + input_rt_size, output_rt, + output_rt_size); + if (ret) + kfree(*output_rt); + + } while (ret =3D=3D -EAGAIN && --retry_num); + + return ret; +} +EXPORT_SYMBOL_GPL(qcom_scm_pas_get_rsc_table); + /** * qcom_scm_pas_auth_and_reset() - Authenticate the given peripheral firmw= are * and reset the remote processor diff --git a/drivers/firmware/qcom/qcom_scm.h b/drivers/firmware/qcom/qcom_= scm.h index a56c8212cc0c..50d87c628d78 100644 --- a/drivers/firmware/qcom/qcom_scm.h +++ b/drivers/firmware/qcom/qcom_scm.h @@ -105,6 +105,7 @@ int qcom_scm_shm_bridge_enable(struct device *scm_dev); #define QCOM_SCM_PIL_PAS_SHUTDOWN 0x06 #define QCOM_SCM_PIL_PAS_IS_SUPPORTED 0x07 #define QCOM_SCM_PIL_PAS_MSS_RESET 0x0a +#define QCOM_SCM_PIL_PAS_GET_RSCTABLE 0x21 =20 #define QCOM_SCM_SVC_IO 0x05 #define QCOM_SCM_IO_READ 0x01 diff --git a/include/linux/firmware/qcom/qcom_scm.h b/include/linux/firmwar= e/qcom/qcom_scm.h index 42621770edd2..5c87c7e431e8 100644 --- a/include/linux/firmware/qcom/qcom_scm.h +++ b/include/linux/firmware/qcom/qcom_scm.h @@ -86,6 +86,10 @@ int qcom_scm_pas_mem_setup(u32 pas_id, phys_addr_t addr,= phys_addr_t size); int qcom_scm_pas_auth_and_reset(u32 pas_id); int qcom_scm_pas_shutdown(u32 pas_id); bool qcom_scm_pas_supported(u32 pas_id); +int qcom_scm_pas_get_rsc_table(struct qcom_scm_pas_context *ctx, void *inp= ut_rt, + size_t input_rt_size, void **output_rt, + size_t *output_rt_size); + int qcom_scm_pas_prepare_and_auth_reset(struct qcom_scm_pas_context *ctx); =20 int qcom_scm_io_readl(phys_addr_t addr, unsigned int *val); --=20 2.50.1 From nobody Sun Feb 8 20:35:00 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6D2E233554C for ; Thu, 13 Nov 2025 10:36:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030217; cv=none; b=jLMZmYNaQdT47y1VSi00UFWOk85mewx9k+JUsHvSKUj9Est1Pu75KW2fp7AQLwTNXYYhRvKnui5NB1R52EC3Q3x99XP/+M3+NaR36+GPgGjK+fO5xHe3c9DURDMjAd3sCPvIHMQu5MD3maKx844Xk7HFJE79jFK0DCCL0+HM/sk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030217; c=relaxed/simple; bh=gNFGaJcn5TMSmEg3QDtGPUJyOv4mdDqVk1oZU1qyXro=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=sfnn/xOHdOsoeGQ01ovma498goaIm3dI9vp3PgWikEb4Gq1paq1qb3KgZIpm77ojBxv4ENS8Q5IufwewvVCC6ySRl5snHzvQQ5ynfItmOmE7e1TceZEszeP+UCXE6DL51etTijzicKKaR5kXyxG01yb6SsX0hoxaQvvPJaveR/s= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=TFAR2ck9; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=DXFnXgGo; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="TFAR2ck9"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="DXFnXgGo" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AD6r7Lu3874466 for ; Thu, 13 Nov 2025 10:36:54 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= DVcACkzc6UFDGxyaiXY4/RxZa0iDaHOdQK63tga8N7s=; b=TFAR2ck9RjNLdlGZ d//YkyT/PIV4s0UDsBJaAGcctJTf2Nb/V6ueaB7jdSB5o2z4HhBdY7qiLqkCeEf1 KLYdxOipidWESImje0IskBe12OWAo2gFWkHWUhRniyzybmw8jAJGMzr8vjEV2ngr I/jfMdDsRsw75Bhp7axmVscRYH+dKycWY8GIRRt3zoWqM8w5GkTlkddBh3I6OY+j GdA1bHv3IjXd6JbrImGdMTY7K7CjJLSgkc33wQissqjKXxzNDEg5TRXO5je0HTwc m5uG2/xJl4E/U5jwqwIZnuGhukkqMGfROP9nHsQ/Jl45dImfQ7xiHAf1xY6MA5LG J7s4WA== Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4adaeurpns-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 13 Nov 2025 10:36:54 +0000 (GMT) Received: by mail-pf1-f198.google.com with SMTP id d2e1a72fcca58-7b89c1ce9cfso637248b3a.2 for ; Thu, 13 Nov 2025 02:36:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763030214; x=1763635014; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=DVcACkzc6UFDGxyaiXY4/RxZa0iDaHOdQK63tga8N7s=; b=DXFnXgGo3rtmo5qDaaMAjsX72RWScqceD/KhYWe6bfb17Ell8adwlWw4INh4eZx5pI z3RTNBeeAufwkr96u2vXnZ9XQtW102epjGKwHx7wNG4xHN3SJst/tZ6M6EHDf5QPWURz X/QBlGN474gDZhwmJIG9rC4bX+16h7P9uQdgOomUfVRWmMVdZDVGEfNrrCfp+UViZcS6 tq/vfaIn2hohV03NChNFVLSoeUffWbhJlTb0W0j4S9eXyzPxlYw0DmfoVmSSoW8u2ozs 22HUsU0C02F02e/ZJTtF7hnDXZuFuzkmlnMcTXK0z00ZO/1d4Riy1U17GBBpTsll1YT4 BulA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763030214; x=1763635014; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=DVcACkzc6UFDGxyaiXY4/RxZa0iDaHOdQK63tga8N7s=; b=KZgrzfV3hJd+PrbSXnPu+EzBs//ZS9q8fyANp58neEu/FFhhZWB/69k42bO6nsDZKu Ak732LjaFA8+Jnv35toU+HFrht3w8homFcMO4OI5JvRLFebg0+oDuN0aT2ibDZr/RrRN QCN/aSKWR/Au00jxJW3WAAxwaIkb+TKA61pS50FQszUG9m3s8iSwjDMEOdYkbNYue+SU WiwOPOC4wxYMiFM1gE1rgXh867vU7bE7cR06qngxoU473lyZZAF9fxf5/BZH8GoCNL0k w/fW6LtJKPNWhI9pKTMMDfz4trkccSaTXVFYNq1Pwqabl43bTMwMCm0rpI8gf/lQBvxf 4C2Q== X-Forwarded-Encrypted: i=1; AJvYcCWAaCFLghTv+v2KmpF8/YSnsBtHDBpPw2rBU3XkCS62w25eaex4EVNfLv5tEI9PB02oNlk/3Qesjyg/OHo=@vger.kernel.org X-Gm-Message-State: AOJu0Yw+zlc3X//FTkWOYYzfvfwDb4TruABwJdYl8tyb+50FVRcbd3uB ZNyvVkvoth/PmBIey49eN7/IoNBpwgU/DSKsu0v2HV9iaDb2ZK8+ocZm1OREHxyVP3jmUdAIf9e cW2Fr0ibDFrB8Ps/4JK9fB4fyL1gIohwSI0XK+RPHSqbcI+Hw4yvYnVOG7L3gO3aDQQs= X-Gm-Gg: ASbGncvzILFuZwE3yn+9qTl/8duFIDX/bsXO/OJMlmCDLTaeA6B9I7NbYGf/TiSDSBm uPKbirybtrQQ6DZDjopcnuOw5ttCkSqkGqcuOMaxnRhcZby7RedaPrkvXRX5rEJHgC3em1u+VlS c+ExOXGww1liThf6I0NsOBRSZOgmhiznVA2tTBkjYNP/f+w4M6fWniWj0vATJ3LSIJSCb/e9gkV rTUHF+M1mtFkD3ZIKvk1lWWB6AK/UD8DgLzLTYI+CbSAy3mwQWGps7ohihPNuFF8VjqxmETVcrm E/vPCXmUH46aZoCSahNtCiHg2HYG+E+awA226PpGql1Lmm2mS9XrlKrbaufGbeIoQm7QjmQMTL2 CFzlF3mF0ahf+jR0WU8QAZ2NQSA== X-Received: by 2002:a05:6a00:3a0b:b0:77f:4a83:8f9 with SMTP id d2e1a72fcca58-7b7a27a4772mr7658228b3a.2.1763030213819; Thu, 13 Nov 2025 02:36:53 -0800 (PST) X-Google-Smtp-Source: AGHT+IFxq35Ja6M8j8qXL1e87FxDKjwn3Su1a5HLcrnebGrba+IQOfNtC+hxBzMwmCGecf2dHAMDuw== X-Received: by 2002:a05:6a00:3a0b:b0:77f:4a83:8f9 with SMTP id d2e1a72fcca58-7b7a27a4772mr7658181b3a.2.1763030213102; Thu, 13 Nov 2025 02:36:53 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7b9250d2d16sm1886922b3a.22.2025.11.13.02.36.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Nov 2025 02:36:52 -0800 (PST) From: Mukesh Ojha Date: Thu, 13 Nov 2025 16:06:02 +0530 Subject: [PATCH v7 12/14] remoteproc: pas: Extend parse_fw callback to fetch resources via SMC call Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251113-kvm-rproc-v7-v7-12-df4910b7c20a@oss.qualcomm.com> References: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> In-Reply-To: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Mukesh Ojha X-Mailer: b4 0.14-dev-f7c49 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763030164; l=4670; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=gNFGaJcn5TMSmEg3QDtGPUJyOv4mdDqVk1oZU1qyXro=; b=xfzgF18zN7nU476EbvNyJhq7AnffdauLgIFlutQ9BTRvvepkjkz1/qLq0P+59JJM/eNG4CkAk 3INPb6QNtEVCMp7o3PuC6wLRaFL6qfTyMA/TeyAftgjLsXkaIfURQnK X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-ORIG-GUID: p6tp4D139fbb9o_Zd7RppqBBgPMoyPG7 X-Proofpoint-GUID: p6tp4D139fbb9o_Zd7RppqBBgPMoyPG7 X-Authority-Analysis: v=2.4 cv=JPI2csKb c=1 sm=1 tr=0 ts=6915b4c6 cx=c_pps a=m5Vt/hrsBiPMCU0y4gIsQw==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=KMz1R6K7GWUeRkMKapkA:9 a=QEXdDO2ut3YA:10 a=IoOABgeZipijB_acs4fv:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTEzMDA3OCBTYWx0ZWRfXysOsthdP/+us dVdXpOmxLoWgeYuleUlL2QqDpYs66s4M43mWuoRMvJFWNFc7zGEETlHUJX4jBk9Wec2B7yOVYF9 rwUYSLDsht/aLOCdmwKitV54ZIDkyvT1MIq9HBclXMpd9beHtTk/MA3GFpiimDF+Y6NqHDaFJ33 cbaX6zJISmua34NbMnSQne2UUhU74tpkrJa9DKVrF6iYh8PqL1v24xFdajtRYXDwXQ+ovygK72B /yjEU5Sgu+4HuQg5/l0TsiPj7TSJziHkBjDo/IfDE0enprcNZlzPkSEXf1mwm7jyeiCynbC0VNN AMqWwDsRAb+neX8O0G1qgeRN62CO0yq4EPPj+MzjeLsMZJpnZ2fESBEZD1IbF8y4/DLspON4mS5 BxRVsdgbOYXpywEnh+YQdsMIp0Gjrg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-13_01,2025-11-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 priorityscore=1501 spamscore=0 adultscore=0 impostorscore=0 malwarescore=0 lowpriorityscore=0 bulkscore=0 clxscore=1015 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511130078 Qualcomm remote processor may rely on static and dynamic resources for it to be functional. For most of the Qualcomm SoCs, when run with Gunyah or older QHEE hypervisor, all the resources whether it is static or dynamic, is managed by the hypervisor. Dynamic resources if it is present for a remote processor will always be coming from secure world via SMC call while static resources may be present in remote processor firmware binary or it may be coming from SMC call along with dynamic resources. Remoteproc already has method like rproc_elf_load_rsc_table() to check firmware binary has resources or not and if it is not having then we pass NULL and zero as input resource table and its size argument respectively to qcom_scm_pas_get_rsc_table() and while it has resource present then it should pass the present resources to Trustzone(TZ) so that it could authenticate the present resources and append dynamic resource to return in output_rt argument along with authenticated resources. Extend parse_fw callback to include SMC call to get resources from Trustzone and to leverage resource table parsing and mapping and unmapping code from the remoteproc framework. Signed-off-by: Mukesh Ojha --- drivers/remoteproc/qcom_q6v5_pas.c | 60 ++++++++++++++++++++++++++++++++++= ++-- 1 file changed, 58 insertions(+), 2 deletions(-) diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q= 6v5_pas.c index 9feee2cb1883..4d00837db58d 100644 --- a/drivers/remoteproc/qcom_q6v5_pas.c +++ b/drivers/remoteproc/qcom_q6v5_pas.c @@ -34,6 +34,7 @@ #define QCOM_PAS_DECRYPT_SHUTDOWN_DELAY_MS 100 =20 #define MAX_ASSIGN_COUNT 3 +#define MAX_RSCTABLE_SIZE SZ_16K =20 struct qcom_pas_data { int crash_reason_smem; @@ -413,6 +414,61 @@ static void *qcom_pas_da_to_va(struct rproc *rproc, u6= 4 da, size_t len, bool *is return pas->mem_region + offset; } =20 +static int qcom_pas_parse_firmware(struct rproc *rproc, const struct firmw= are *fw) +{ + size_t output_rt_size =3D MAX_RSCTABLE_SIZE; + struct qcom_pas *pas =3D rproc->priv; + struct resource_table *table =3D NULL; + void *output_rt; + size_t table_sz; + int ret; + + ret =3D qcom_register_dump_segments(rproc, fw); + if (ret) { + dev_err(pas->dev, "Error in registering dump segments\n"); + return ret; + } + + if (!rproc->has_iommu) + return ret; + + ret =3D rproc_elf_load_rsc_table(rproc, fw); + if (ret) + dev_info(&rproc->dev, "Error in loading resource table from firmware\n"); + + table =3D rproc->table_ptr; + table_sz =3D rproc->table_sz; + + /* + * The resources consumed by Qualcomm remote processors fall into two cat= egories: + * static (such as the memory carveouts for the rproc firmware) and dynam= ic (like + * shared memory pools). Both are managed by a Qualcomm hypervisor (such = as QHEE + * or Gunyah), if one is present. Otherwise, a resource table must be ret= rieved + * via an SCM call. That table will list all dynamic resources (if any) a= nd possibly + * the static ones. The static resources may also come from a resource ta= ble embedded + * in the rproc firmware instead. + * + * Here, we call rproc_elf_load_rsc_table() to check firmware binary has = resources + * or not and if it is not having then we pass NULL and zero as input res= ource + * table pointer and size respectively to the argument of qcom_scm_pas_ge= t_rsc_table() + * and this is even true for Qualcomm remote processor who does follow re= moteproc + * framework. + */ + ret =3D qcom_scm_pas_get_rsc_table(pas->pas_ctx, table, table_sz, &output= _rt, + &output_rt_size); + if (ret) { + dev_err(pas->dev, "Error in getting resource table: %d\n", ret); + return ret; + } + + kfree(rproc->cached_table); + rproc->cached_table =3D output_rt; + rproc->table_ptr =3D rproc->cached_table; + rproc->table_sz =3D output_rt_size; + + return ret; +} + static unsigned long qcom_pas_panic(struct rproc *rproc) { struct qcom_pas *pas =3D rproc->priv; @@ -425,7 +481,7 @@ static const struct rproc_ops qcom_pas_ops =3D { .start =3D qcom_pas_start, .stop =3D qcom_pas_stop, .da_to_va =3D qcom_pas_da_to_va, - .parse_fw =3D qcom_register_dump_segments, + .parse_fw =3D qcom_pas_parse_firmware, .load =3D qcom_pas_load, .panic =3D qcom_pas_panic, }; @@ -435,7 +491,7 @@ static const struct rproc_ops qcom_pas_minidump_ops =3D= { .start =3D qcom_pas_start, .stop =3D qcom_pas_stop, .da_to_va =3D qcom_pas_da_to_va, - .parse_fw =3D qcom_register_dump_segments, + .parse_fw =3D qcom_pas_parse_firmware, .load =3D qcom_pas_load, .panic =3D qcom_pas_panic, .coredump =3D qcom_pas_minidump, --=20 2.50.1 From nobody Sun Feb 8 20:35:00 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8657B33B958 for ; Thu, 13 Nov 2025 10:36:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030221; cv=none; b=fcAvCvodetuYCt5CuxuShxUtHhIyxdbfMI8aBVqCZXqTQLcuKo62UcHZx8s2MxxEv7UivzYAyv6jtZC9MsQy15Uwj4juzHOQ8DUQByL6jBv0O2XozzC/PpCAegLLJ4KvTT8fkE8od93QBGSvN8/b8WnF6CvjWNIdoHjIa5j3+x0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030221; c=relaxed/simple; bh=OnBXexvPOA9/+OrKQYQZ0RkoCnUmiqQ/pRYhrYePNl0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QZWe6QhSthLB/J1SXah6ZwnDMI/LC+HZKZGIqOJDih34epklLCqa/GFzodJaKE08ZTSqDvQQNAfGzqZ/y6VD57gsJ3KYotO34IRQJkLMJeb7I17gnn8XU7H3YSN3eM7YFnSV0cYa7+5a2zf3H9w8FaB7/qDQrMZ8UMWaKUrqtcs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=hh0nZRQ9; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=c9RFsmme; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="hh0nZRQ9"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="c9RFsmme" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5ADAHKE34097150 for ; Thu, 13 Nov 2025 10:36:58 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= dhiOZd1ozJ6FUJM7vSxZzhvThMcfA2U8BRuEp1Tt30A=; b=hh0nZRQ9ijxfbqvc kh23lwbw1oTmiwjU+I86zSSNnoV4KX0Y87ZF30Dp8Axr/GC5j04ARclAq2qwRrqG mO3d+QAgWQzS3h6KAdLoR194ZU1LayYnDzAaiuZNbxvnIicTtaWeSV9dwYFbRqyi SkVuvm92ymoTjw3WedQZMM1P6CxiexOVTldXaShr00fMMWUS5/FwD//Zl3u33GKw rjC6vroJbyQhYh6Yq+ibQ5GkfhdfndKyh7FcfL3Jmv3dAll6KRyewxuQTTJQdYrG ctKr4AP1Yw43Lf7RQZxQ5vy4208B6p11/iA+5YjrYIjW9dOL83QL5Eyg0kcTDJv1 UStPfA== Received: from mail-pf1-f200.google.com (mail-pf1-f200.google.com [209.85.210.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4addetr1ru-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 13 Nov 2025 10:36:58 +0000 (GMT) Received: by mail-pf1-f200.google.com with SMTP id d2e1a72fcca58-7a26485fc5dso673604b3a.1 for ; Thu, 13 Nov 2025 02:36:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763030217; x=1763635017; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=dhiOZd1ozJ6FUJM7vSxZzhvThMcfA2U8BRuEp1Tt30A=; b=c9RFsmmeA5Ys+WxCaMUjPY34dy6TilH/DqOSo5K2N9jJtbQB7nenwEGRFLD2J/r8jG ncub4rB9hshj7KO8d5DNHjpt87XqPT9+1m9KpQKFZmuAklTWYq28saHZ6XwA2kmGRPOY CE34lMz4soMsnOYSagZzDXF09Dqpl4og5sEAmvzswKLrSNfmdG0mO5t4c0E0nlo54ahC 9IFBIhrIG7AxaIgw8Mo3Pl72OdY1h0Uf0997ne+beyeJm57OZnsJfH704xX4rCIRX9e4 4UO15/yo/MwMZZ41ApsQwildkHYDeoMDbpnNBJ9ZuHho384+leEySxysejWQ9lMynXO2 oRQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763030217; x=1763635017; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=dhiOZd1ozJ6FUJM7vSxZzhvThMcfA2U8BRuEp1Tt30A=; b=o3hgZHMNUK4PaZbGrGEUR1XPKJ4OC1JinDo+AEdwknsnpfsScvUb8HRKgBrNlahjcI qtSeBWwmEzFyotiqM/+xj2WUhMLGhzv5Bny6IIeiZTtwFSfR0TfRlLtu6SEo06SvVhSi V7YL52ml/CAs+8gtIcFwEkCHnszSgMO3eggH1B0fNc/PDNLIfdoH9czFxM6oDmj6BIBm 6Sd25Sa+7oOegsR2MixhFzAOGYhSNmUCYDzGWN4OACMBa43zHuZt4xwOiUrS1/4HhIlg VeCxC/JYgJNCoerS0XEHRirYHzQsXzxX8M1pC2fPb4GzbkCoPkK6urh9ZzwYiFERW1/z 9AEA== X-Forwarded-Encrypted: i=1; AJvYcCXfhL28kLptq2/W7VgQ3Gwu9ZN2WFImT56rSeLky0Zpb4mGM1q/e1ihZULTPgoSBcqTSGjBsQo6/KBVkQ8=@vger.kernel.org X-Gm-Message-State: AOJu0YzPNdx6HiSJpYUorVzeyEILDzKCsz3CetMbkJQI5CPFjudjnivY 92aC0m85kwBZo5tuVcSbZMxD8UEXxBSL14LD6L9hUm39RvlB0zkQYZ0z4bPei4v+QyxCgM4JxtR /CvUeayqHlJk6Dg0ZhmLK7OgtOr76OCFRlKrCnKl+fZOoVWjjcdNL9pKVhtoCsXW0PFo= X-Gm-Gg: ASbGnctmYa19ieNbIerdn9WMIkq2uuLJVvda2lFF7BvNhd+Wtm+i+1fvvnV4haswURC AGhpo7/pWZCpngFLPk+iWJ/JEacAnfPJpeElipEp4PT34OakLSKwbLMscx+99K0GTTmfWYvl3uo Q2xAB6EmvGAAhhRtuNeGGaaJQ3D3/WhABSc4/GCDN9WSx0za3ihwudLxFngQbn4shQT5p7RnWdt DvXg5WteqizLOvju2nOJvhY+vMWmYavlVZ8B6IhqBxv5LEdYp7kncm26RqiBE9R9V1mlViC2Ejf PgZuIXl/vzrRlCUzU7eDAgrK3AWCqfs5bRcOOG5oZmMfWUErGlst+7pML+DEPJaSCmFRVrVnn3f 11Qub2APBc8O6MAl2JtgAQlwUbw== X-Received: by 2002:a05:6a00:1910:b0:7aa:93d5:820f with SMTP id d2e1a72fcca58-7b7a57a44c6mr6459135b3a.30.1763030217276; Thu, 13 Nov 2025 02:36:57 -0800 (PST) X-Google-Smtp-Source: AGHT+IEUAOm8aOdE4IINS06BTfK2WnfNkoItVCuEiKrMNLRKofTX0+fs82r4Qw/JrI3wR9t6cwE2xw== X-Received: by 2002:a05:6a00:1910:b0:7aa:93d5:820f with SMTP id d2e1a72fcca58-7b7a57a44c6mr6459115b3a.30.1763030216696; Thu, 13 Nov 2025 02:36:56 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7b9250d2d16sm1886922b3a.22.2025.11.13.02.36.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Nov 2025 02:36:56 -0800 (PST) From: Mukesh Ojha Date: Thu, 13 Nov 2025 16:06:03 +0530 Subject: [PATCH v7 13/14] remoteproc: qcom: pas: Enable Secure PAS support with IOMMU managed by Linux Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251113-kvm-rproc-v7-v7-13-df4910b7c20a@oss.qualcomm.com> References: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> In-Reply-To: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Mukesh Ojha X-Mailer: b4 0.14-dev-f7c49 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763030164; l=5426; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=OnBXexvPOA9/+OrKQYQZ0RkoCnUmiqQ/pRYhrYePNl0=; b=skfkthgGZNrdR6wIDPAQJnF1RNpybS2/03La+smAiLORXtHwPVqlUxL9r97FO6gKXonE6Jax4 ULW5HtArPMnDgiBV5GuwtqP7GxIKy9OfCMhchTiOg+1TVqr+HhlrRXI X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-GUID: MzYWMEC0c_tgwGZziz5WidUwMSEB3CAs X-Proofpoint-ORIG-GUID: MzYWMEC0c_tgwGZziz5WidUwMSEB3CAs X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTEzMDA3OCBTYWx0ZWRfX1yw4PzLwYC3e /jqhBH6tfjLMz+jPHb+UUiWEh7gm12rAEa3HKlklNWEakwITqoElJ5jyuLYkx8SJY9FhoLlXXWg M+33up4TQ6jlqYMkNq1fPKQkMpjhIvGsRGcHq1A/Hxu9yTmetwdMBpTfkJIEjUobuKYN/0eDwog o/mIw2qMMrI3CQL0TGSHvGw0J+2qsr9uU/kmVni+dEIdruAxXN5J7eLxOJ3O0188AbxMcdqiYIY qtRhvfQkswr3KGEq1JDE+E4Z8nxaAdtyPghlw4ac2c9asoD27eYkHgDdp6ofzlLeKtGW9ogdydG i63HIIJXZDIIgiZh+2o8vaFADaFgF3qX1VqSFiZ9zmqI2OqFxYjA4uSBR3algUgfyOa9m+Ng0OT QO6hDUZ9JUFZTwakjTFLCwhBGfSlVA== X-Authority-Analysis: v=2.4 cv=QZNrf8bv c=1 sm=1 tr=0 ts=6915b4ca cx=c_pps a=mDZGXZTwRPZaeRUbqKGCBw==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=58pnfTnN0ARRJNaB1lkA:9 a=QEXdDO2ut3YA:10 a=zc0IvFSfCIW2DFIPzwfm:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-13_01,2025-11-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 adultscore=0 phishscore=0 suspectscore=0 spamscore=0 priorityscore=1501 impostorscore=0 bulkscore=0 malwarescore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511130078 Most Qualcomm platforms feature Gunyah hypervisor, which typically handles IOMMU configuration. This includes mapping memory regions and device memory resources for remote processors by intercepting qcom_scm_pas_auth_and_reset() calls. These mappings are later removed during teardown. Additionally, SHM bridge setup is required to enable memory protection for both remoteproc metadata and its memory regions. When the aforementioned hypervisor is absent, the operating system must perform these configurations instead. When Linux runs as the hypervisor (@ EL2) on a SoC, it will have its own device tree overlay file that specifies the firmware stream ID now managed by Linux for a particular remote processor. If the iommus property is specified in the remoteproc device tree node, it indicates that IOMMU configuration must be handled by Linux. In this case, the has_iommu flag is set for the remote processor, which ensures that the resource table, carveouts, and SHM bridge are properly configured before memory is passed to TrustZone for authentication. Otherwise, the has_iommu flag remains unset, which indicates default behavior. Enables Secure PAS support for remote processors when IOMMU configuration is managed by Linux. Signed-off-by: Mukesh Ojha --- drivers/remoteproc/qcom_q6v5_pas.c | 48 ++++++++++++++++++++++++++++++++++= ---- 1 file changed, 43 insertions(+), 5 deletions(-) diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q= 6v5_pas.c index 4d00837db58d..efb83e0374db 100644 --- a/drivers/remoteproc/qcom_q6v5_pas.c +++ b/drivers/remoteproc/qcom_q6v5_pas.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -256,6 +257,22 @@ static int qcom_pas_load(struct rproc *rproc, const st= ruct firmware *fw) return ret; } =20 +static void qcom_pas_unmap_carveout(struct rproc *rproc, phys_addr_t mem_p= hys, size_t size) +{ + if (rproc->has_iommu) + iommu_unmap(rproc->domain, mem_phys, size); +} + +static int qcom_pas_map_carveout(struct rproc *rproc, phys_addr_t mem_phys= , size_t size) +{ + int ret =3D 0; + + if (rproc->has_iommu) + ret =3D iommu_map(rproc->domain, mem_phys, mem_phys, size, + IOMMU_READ | IOMMU_WRITE, GFP_KERNEL); + return ret; +} + static int qcom_pas_start(struct rproc *rproc) { struct qcom_pas *pas =3D rproc->priv; @@ -290,11 +307,15 @@ static int qcom_pas_start(struct rproc *rproc) } =20 if (pas->dtb_pas_id) { - ret =3D qcom_scm_pas_auth_and_reset(pas->dtb_pas_id); + ret =3D qcom_pas_map_carveout(rproc, pas->dtb_mem_phys, pas->dtb_mem_siz= e); + if (ret) + goto disable_px_supply; + + ret =3D qcom_scm_pas_prepare_and_auth_reset(pas->dtb_pas_ctx); if (ret) { dev_err(pas->dev, "failed to authenticate dtb image and release reset\n"); - goto disable_px_supply; + goto unmap_dtb_carveout; } } =20 @@ -305,18 +326,22 @@ static int qcom_pas_start(struct rproc *rproc) =20 qcom_pil_info_store(pas->info_name, pas->mem_phys, pas->mem_size); =20 - ret =3D qcom_scm_pas_auth_and_reset(pas->pas_id); + ret =3D qcom_pas_map_carveout(rproc, pas->mem_phys, pas->mem_size); + if (ret) + goto release_pas_metadata; + + ret =3D qcom_scm_pas_prepare_and_auth_reset(pas->pas_ctx); if (ret) { dev_err(pas->dev, "failed to authenticate image and release reset\n"); - goto release_pas_metadata; + goto unmap_carveout; } =20 ret =3D qcom_q6v5_wait_for_start(&pas->q6v5, msecs_to_jiffies(5000)); if (ret =3D=3D -ETIMEDOUT) { dev_err(pas->dev, "start timed out\n"); qcom_scm_pas_shutdown(pas->pas_id); - goto release_pas_metadata; + goto unmap_carveout; } =20 qcom_scm_pas_metadata_release(pas->pas_ctx); @@ -328,10 +353,16 @@ static int qcom_pas_start(struct rproc *rproc) =20 return 0; =20 +unmap_carveout: + qcom_pas_unmap_carveout(rproc, pas->mem_phys, pas->mem_size); release_pas_metadata: qcom_scm_pas_metadata_release(pas->pas_ctx); if (pas->dtb_pas_id) qcom_scm_pas_metadata_release(pas->dtb_pas_ctx); + +unmap_dtb_carveout: + if (pas->dtb_pas_id) + qcom_pas_unmap_carveout(rproc, pas->dtb_mem_phys, pas->dtb_mem_size); disable_px_supply: if (pas->px_supply) regulator_disable(pas->px_supply); @@ -387,8 +418,12 @@ static int qcom_pas_stop(struct rproc *rproc) ret =3D qcom_scm_pas_shutdown(pas->dtb_pas_id); if (ret) dev_err(pas->dev, "failed to shutdown dtb: %d\n", ret); + + qcom_pas_unmap_carveout(rproc, pas->dtb_mem_phys, pas->dtb_mem_size); } =20 + qcom_pas_unmap_carveout(rproc, pas->mem_phys, pas->mem_size); + handover =3D qcom_q6v5_unprepare(&pas->q6v5); if (handover) qcom_pas_handover(&pas->q6v5); @@ -758,6 +793,7 @@ static int qcom_pas_probe(struct platform_device *pdev) return -ENOMEM; } =20 + rproc->has_iommu =3D of_property_present(pdev->dev.of_node, "iommus"); rproc->auto_boot =3D desc->auto_boot; rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_NONE); =20 @@ -837,6 +873,8 @@ static int qcom_pas_probe(struct platform_device *pdev) goto remove_ssr_sysmon; } =20 + pas->pas_ctx->has_iommu =3D rproc->has_iommu; + pas->dtb_pas_ctx->has_iommu =3D rproc->has_iommu; ret =3D rproc_add(rproc); if (ret) goto remove_ssr_sysmon; --=20 2.50.1 From nobody Sun Feb 8 20:35:00 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F04A833BBB8 for ; Thu, 13 Nov 2025 10:37:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030224; cv=none; b=AdzIdqPh20fnRfU4m6K5MwYtZS+OnejC/UqBE47XSA+iDl7cIr2j5VlY62lmLvhgDEDyeNEHxIqyq7Kj8HAKHHtxWnz6kUk4wfZz0aCa6j1CiCuxGjznzITDu+msKHtRC+bnjZfo3hx4znL4WT+mEhaLi4gaHszLL95E77TeBMA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763030224; c=relaxed/simple; bh=uRDqwnYIZZpnXYckK3LJYkQkz8Z734oXrxzphtus+RQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=uzFiyRpR7fUeX+nWJXDg+QfRrDuyOp9xVl2hXT2SR0iee0hYKpncxgzpdCgV+v8DD+RbRvCRfcTh2b/PWKjm8pC8zq2YgJ0ar9dPImFIVYOQQwNKilvmQFlTRdkqi45u370XJ4xVuS53rRyvb9awSn7cjhKFe8ebHj2lzOtd0xQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=Xgk10/om; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=EU4V22XZ; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="Xgk10/om"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="EU4V22XZ" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AD6r2dS3874094 for ; Thu, 13 Nov 2025 10:37:02 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= IEpFo0lEJkHbippaH0NrsqLZL5lxGXEOzc/fjU/RBLU=; b=Xgk10/omaLkRPScg jRkXFq/bS+BR6vtqYJEu1E25C+1LUWgMCD4pacHlemYdnuHV77NMB5hPDPjQXuuW ZLo4GNcAc0yGqkJoJW64bvWxbr9tvNm1opbeWUSWVdNihL9d0xRAJHLwLUYwAHH2 nQRhnzK4re2J8mcib1F+TygXdyma/EsuFbp9KcAlG5UxYJV3JcYHw7BeM3AuA0af YWp1rpU5zkhi6uw5g8SasZOQlpFT7TqZVQb3cfZUbi2swr7VMKDIWYGjuOey4Xe3 PvrKCWKe63oW6v+N5DLdItBobTk81HfcYRGttJNGXq7jqCWdvDtWATqIUEHPja5W 0kfKAw== Received: from mail-pf1-f199.google.com (mail-pf1-f199.google.com [209.85.210.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4adaeurpp5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 13 Nov 2025 10:37:02 +0000 (GMT) Received: by mail-pf1-f199.google.com with SMTP id d2e1a72fcca58-7b9208e1976so645784b3a.1 for ; Thu, 13 Nov 2025 02:37:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763030221; x=1763635021; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=IEpFo0lEJkHbippaH0NrsqLZL5lxGXEOzc/fjU/RBLU=; b=EU4V22XZzGMc2qbhTn47qX9f/pkRZRrNBx0L7VVX0QFpF9ikcdmQUmB9hwjGyFtEA2 JmfCRZG1veZgCDM4V7h+8HldkMUUM8SMDCy2KSd5kcllFKHOIg1XZjIHo2FQV/3MpynW zq6Yve/VrUHqbBNzXusYC7XYMy/R0JrdA0skZfK39mGGt/L234eW2Ikiv61H+SDk3pOI xwDMyBcayOMS751A4H6s/D9OMsjHfucp9ZW4cAFSArFGyIoN0ClxSV77N7efp+2OoHWu FG9+bVlUwAIK+J3IXBKAT5KSAbwrIJ49TAdqdRhOAAD7OmvsQ2SqzEWv3Hz6wGX0WGPA qG1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763030221; x=1763635021; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=IEpFo0lEJkHbippaH0NrsqLZL5lxGXEOzc/fjU/RBLU=; b=wZ0GsS/RkNi26+k38ZbveH5Bq/uHFVAPnoVvpeA0unHZn9OCSOSnX0ACBiQpxdwGiE z4sYmo5Z4PQbMnLoCPaAovU6iwa7l7z3p9KbHmanpMbJZrChdbAbiN6MgZSF/V6j9dLr mEKzXKnpEtUZJ0LlpLaU2l6k8aZBA23lLyj36DL5UzZM4DHGJ/txBj1VOKQm8ffr5cX0 RKsJXihSPDa1iU2HpeUPWsbZGRppfrwvLpAJYppfGwavW6rw2VbLoRf6B5YK7U9dcz7v ZkJ7XRrGBEM6hIImPVJ0fehAnFA1h2YJzPZnhTxS0lc0ghx1bFXviUHlOXm4J6zaYcz3 z5Ug== X-Forwarded-Encrypted: i=1; AJvYcCVcAv/ONkb60GPNw8EwyHjRL8I+WVulj43DA5qUdjE95pmLHckqVGLl9ng+nVKIuMOwxrnTHWySSs+d3Mc=@vger.kernel.org X-Gm-Message-State: AOJu0YzD0Q0pVutPrrzrl0FP2/glaA+ItwUiGEwQQMCFLf374vNujJQo Ob+SNygUbNiU5fsC6xcKvaPZgzzUt6Z9LexY5bz0wJnP4udQLIAQXrBTlg6nPuZtW6K5RqFplqb KL5UAvN297hJl0SnAVepuXJrNVHjk99NdnThUbv2wQ8pEEXma/OmReKH6ijsFwPsvklc= X-Gm-Gg: ASbGnctvWyHg43W74baiaK4Fiy2ocAbBGAf0wPf+UnYPIbmXanS4oBAuZKTEY5t25G4 0cvIRHP5RNIbTmRFPrWSGncAAC6P7Mu2r6M0pCbYnTYH+2Wg1wG+oHwgUiGOq5pqndtSBj3jUUQ Z+4i9O3oEomanlxo0XUFc4dJ1Szt9F9+jjZLEe4jCk4CveRJmFZ4oFg01H18gp2gE5rJw+xzm9G BRTSI5DW3n78MgB5cvKkQUpUrQ2xTX7l9zxbLVoMeGmYlqPSm07pD6sxoTmbNpt1U7BTXRqvpKN BvQKoi8LI0nXB0q7w0m20E0badKApS8VplfjQiOlcKOmS4Bg74mmMSWLRQbPEM2/rKRRGFEio3B DBVQk2VKvuKAnZpIeFWX8fxFrgg== X-Received: by 2002:a05:6a00:2f8c:b0:7b8:d791:2609 with SMTP id d2e1a72fcca58-7b8d7a06c06mr2374783b3a.30.1763030221027; Thu, 13 Nov 2025 02:37:01 -0800 (PST) X-Google-Smtp-Source: AGHT+IHRJk/LYHNL0N2BjvD4SL5cUmuMhD/H2i9MP9tcPGbheHI9p2inDU/usuYhfwIs0BIGeSWgnA== X-Received: by 2002:a05:6a00:2f8c:b0:7b8:d791:2609 with SMTP id d2e1a72fcca58-7b8d7a06c06mr2374750b3a.30.1763030220313; Thu, 13 Nov 2025 02:37:00 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7b9250d2d16sm1886922b3a.22.2025.11.13.02.36.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 13 Nov 2025 02:37:00 -0800 (PST) From: Mukesh Ojha Date: Thu, 13 Nov 2025 16:06:04 +0530 Subject: [PATCH v7 14/14] arm64: dts: qcom: Add EL2 overlay for Lemans Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251113-kvm-rproc-v7-v7-14-df4910b7c20a@oss.qualcomm.com> References: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> In-Reply-To: <20251113-kvm-rproc-v7-v7-0-df4910b7c20a@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Mukesh Ojha X-Mailer: b4 0.14-dev-f7c49 X-Developer-Signature: v=1; a=ed25519-sha256; t=1763030164; l=3311; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=uRDqwnYIZZpnXYckK3LJYkQkz8Z734oXrxzphtus+RQ=; b=7A/Z6ut0FKWK8v4j5lsxhBkzvdLVVNjQoKLYVy/nG06nfHEdk+4dGvaBwFlbP+rIwP1xtjq3Q 9+E5GbDuGRjD76kPfrec64vXG+0j/gJDjMKcnKlNtow3A48ki07w2hD X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-ORIG-GUID: eLGlB7atQdqSGHjfxI8J-4RQT-OtfRIs X-Proofpoint-GUID: eLGlB7atQdqSGHjfxI8J-4RQT-OtfRIs X-Authority-Analysis: v=2.4 cv=JPI2csKb c=1 sm=1 tr=0 ts=6915b4ce cx=c_pps a=WW5sKcV1LcKqjgzy2JUPuA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=OUqdy03oI2q1KQI58CwA:9 a=QEXdDO2ut3YA:10 a=eSe6kog-UzkA:10 a=OpyuDcXvxspvyRM73sMx:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTEzMDA3OCBTYWx0ZWRfX8xvai3fMBpjE enQLXzJ3dV3VxG3kMFfwVnNlsWQ9EYgQARu2RjvSzpNevGXUdNSNn0Kjbzbn0euH+r+rMWvEZa0 vRH7QqAfTi4f3p4CRDEih6NS1W2bcZlQtAVUEMJHoK+YnCUxsducghCj9jvTs0A2zv8JNRr5dZ/ t6plPA4C46pR6j3q/kTAd7Vy5T0HOZNNddm+Y9ugvmkGDm3GYmzRoQ5tMSLfpXLXWJaL7SDo31m BDYHxXMOhHbhIqjWsCUj1T5j7RaUHz6JCP/3E2ESHkTy3z0TWc7JnF22ZfUoe67DlFmz6M89mbN eA7SfigWJhXESTCKOBOWkJ2AHP8hL47uPGpFWM/efWpq3knm5ClKtz3G6Tya8P58asKd2Sow6hx wBkvDs4J3nFOpiaFTK6geB/nJ/eojw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-13_01,2025-11-12_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 priorityscore=1501 spamscore=0 adultscore=0 impostorscore=0 malwarescore=0 lowpriorityscore=0 bulkscore=0 clxscore=1015 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511130078 All the Lemans IOT variants boards are using Gunyah hypervisor which means that, so far, Linux-based OS could only boot in EL1 on those devices. However, it is possible for us to boot Linux at EL2 on these devices [1]. When running under Gunyah, remote processor firmware IOMMU streams is controlled by the Gunyah however when Linux take ownership of it in EL2, It need to configure it properly to use remote processor. Add a EL2-specific DT overlay and apply it to Lemans IOT variant devices to create -el2.dtb for each of them alongside "normal" dtb. [1] https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-4/boot-deve= loper-touchpoints.html#uefi Signed-off-by: Mukesh Ojha --- arch/arm64/boot/dts/qcom/Makefile | 10 ++++++++ arch/arm64/boot/dts/qcom/lemans-el2.dtso | 41 ++++++++++++++++++++++++++++= ++++ 2 files changed, 51 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/M= akefile index 6f34d5ed331c..56efd90b7a5e 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile @@ -37,6 +37,10 @@ lemans-evk-camera-dtbs :=3D lemans-evk.dtb lemans-evk-ca= mera.dtbo =20 dtb-$(CONFIG_ARCH_QCOM) +=3D lemans-evk-camera-csi1-imx577.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D lemans-evk-camera.dtb + +lemans-evk-el2-dtbs :=3D lemans-evk.dtb lemans-el2.dtbo + +dtb-$(CONFIG_ARCH_QCOM) +=3D lemans-evk-el2.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D monaco-evk.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D msm8216-samsung-fortuna3g.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D msm8916-acer-a1-724.dtb @@ -142,6 +146,12 @@ dtb-$(CONFIG_ARCH_QCOM) +=3D qcs8300-ride.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D qcs8550-aim300-aiot.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D qcs9100-ride.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D qcs9100-ride-r3.dtb + +qcs9100-ride-el2-dtbs :=3D qcs9100-ride.dtb lemans-el2.dtbo +qcs9100-ride-r3-el2-dtbs :=3D qcs9100-ride-r3.dtb lemans-el2.dtbo + +dtb-$(CONFIG_ARCH_QCOM) +=3D qcs9100-ride-el2.dtb +dtb-$(CONFIG_ARCH_QCOM) +=3D qcs9100-ride-r3-el2.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D qdu1000-idp.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D qrb2210-rb1.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D qrb4210-rb2.dtb diff --git a/arch/arm64/boot/dts/qcom/lemans-el2.dtso b/arch/arm64/boot/dts= /qcom/lemans-el2.dtso new file mode 100644 index 000000000000..af35039946e3 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/lemans-el2.dtso @@ -0,0 +1,41 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ + +/* + * Lemans specific modifications required to boot in EL2. + */ + +/dts-v1/; +/plugin/; + +&iris { + /* More driver work is needed */ + status =3D "disabled"; +}; + +/* + * When running under Gunyah, remote processor firmware IOMMU streams is + * controlled by the Gunyah however when we take ownership of it in EL2, + * we need to configure it properly to use remote processor. + */ +&remoteproc_adsp { + iommus =3D <&apps_smmu 0x3000 0x0>; +}; + +&remoteproc_cdsp0 { + iommus =3D <&apps_smmu 0x21c0 0x0400>; +}; + +&remoteproc_cdsp1 { + iommus =3D <&apps_smmu 0x29c0 0x0400>; +}; + +&remoteproc_gpdsp0 { + iommus =3D <&apps_smmu 0x38a0 0x0>; +}; + +&remoteproc_gpdsp1 { + iommus =3D <&apps_smmu 0x38c0 0x0>; +}; --=20 2.50.1