From nobody Fri Dec 19 07:50:55 2025 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 35E19309F0D for ; Tue, 4 Nov 2025 07:36:15 +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=1762241776; cv=none; b=Bly2lphfK/wOrw0tc9YAnisPFuj5iRjfTdpM7SmXotjlEKaQ/dLtx1+arxzYiTsiEHvNytSpFiebOAGOpKcHYMxdW9SUahKOBCeHSWCUQ3xgdLwfAT6Buqd8Vly34MZhzSuZl6i0w05m1d4d4zui+19cd7kRByj6f5jBIw2/3iE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762241776; c=relaxed/simple; bh=5S7bewqa2P4aC46GNTPc3Wfn3h92qyoaFLzlTIsn9fM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=f2Ei7TBhEUoKUSzM1WTrpZn4nrM+/EdAEAzPwmRT+IFXAajmC82PvC2juEOdikTINZbjLeYCQudxLE8DOqtUNETRYWBtcal1PD3QO+6KzdB33B+iwJiNMuWZ5YLaDrq0+bY+W6JyP5FsnqQETOXLU3CLTEdj35DanxN9nAuUMBY= 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=TINRY+51; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=c5+G9GpS; 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="TINRY+51"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="c5+G9GpS" 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 5A43Th3B3667744 for ; Tue, 4 Nov 2025 07: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= PFM8hA0K00Qfpbxy4GnLDAkU4MBb9gQY5AMWZmJe2JE=; b=TINRY+51DS8ZAnwZ JF6RQKbEZySryXEXzT2DjsgP1CViNFrQcOyK/MQrTWFua9MhAWkXsQetgT4wi7uF 8pDKnnknniLxOJjOvuH8tz2hm59jykuCKZ7R1ABvo9Dp50MSDP8M0h4Qmqg/4x0K 5pNJXdOsSRIASdqVSrNc3QvIjcSLR68olUsvN7rrRpJLgXIOiriIaV+2k2WfeC02 znDKf0POfOLBCzpDlueJMdGbjE9b5GIa38uoLKAvHEGwOHRh1bH7vx3mbG4PW7qM fGTZ+v/ptgKwBIHnGjheqY5e425SrTFv1m6BAlLLlUy7vq8krbleG/rO2vXbEdEh 8AaC6Q== 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 4a70ffj3dv-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 04 Nov 2025 07:36:14 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-340c261fb38so3332720a91.0 for ; Mon, 03 Nov 2025 23:36:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1762241774; x=1762846574; 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=PFM8hA0K00Qfpbxy4GnLDAkU4MBb9gQY5AMWZmJe2JE=; b=c5+G9GpSNC5uUsvbmfhgK9cIUnpmZ4W3bEktla7QNMDexRJHtQ8kSZoqxNr9YD/1E8 9mED3SXGI5sWslH+mIdKxl9iNNj8ru5gT0dOPG/4PjCB6pAiBCDjzCVoSzJJ1udXyGk6 wEZRE+9SZgPR5B3wdZOFzm+zwwNK+ypV60bybh2k+hr2UPP1zxAwJSCiIvEC3/V+qJNr UARO/IXdrINJoikzBdwmiujAdHGxQYfwAxksxqHHCTBcAMPqpskjy4p4HRkt1BIfLFzC gymspcSltHlv53VDgQk2bKcEvgvdXJZW1h0N4Cg1wXsxsPms42KcfQ+kUrzRl2+i265h 6dzA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762241774; x=1762846574; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=PFM8hA0K00Qfpbxy4GnLDAkU4MBb9gQY5AMWZmJe2JE=; b=doLJcL1Qo5uKaxXrwsshRj4ENJHuoprYy7AZfK6AZmtVVwuNaTp7Tpdpvbuex8VZKG w5QUxXNlPjoGrOv4XzIubZevviX0rRFdcaMoIBVcccu5oYmFNJU/Vs21LZ8ZciQmEUQm Mqty4D1uZNI9PI2E7+5Dpr1DphHdESJnMaN6zQJH0vMGXd+I3SQYfdhYfUTM1Hfv7H9L XsUZ90OxC6t3lPnSdjn/HiSI3KYH8aoVFOiuQXrcwbK24jiDSfwWT0OBAskAX+Is9KK+ WrY8RQAUPqHQ8LVlj/C6TIxqEOSawlQFNn1FAA4fkUrlUWhnL3TGQFrIpHiI3j7qCUDI KVIQ== X-Forwarded-Encrypted: i=1; AJvYcCXswjHdrz6raKoofxegZuH5oGrBV8Tt4jzzGEk/OxsDIG8q78Zqj+NXtwUUWPgW++tr3G0cnidBv2my+z0=@vger.kernel.org X-Gm-Message-State: AOJu0YyPPvd7nUKCvrmEEdxSzJwdMZSjCQPugGXiy80x1V6cZud8FRST fLhkHo7QLcgBCJ7tcT8/GHt/5bmSq1vWLPTL3K+3XD84oGyoQykuArcS272qpePo8Zk+synTQ/7 IN3wm/QWCVwpLwzOt4BgWrLfPNi+uo/W3pE1w1YCifViBNeE6nKWji4wdICmT1Bf8gBM= X-Gm-Gg: ASbGncthcE88Y/2ray99ddES819UMu+gaNiu14S0w2fUCAMeePMIJdF5D/Rrv1Pm6YR Zzb23SQxR+Oa9Uoe4T1LueUiBc+DQGzKZE6DEgxjzf6ryAVjyAupQ26sf1XrM8zvAhckkSKpzQ4 m0pmDS8p+wHSe3znfHQiOiSFP+AMzWDUO1GFhOm6LDY2tgf+l5rg/AL0aEo+3bnN6j+KJKtvdsL Bv4TbWXjG7khZ652RyuzDPI6GHHi0kxy59LGWcX2MyMtLTqhK3o7yPAYiGfP/7i40h+C/JarXfU oKe600bfjfMQDaUXhxwRGi8Mxuce8FeVeSh5yCloVeJeOIotKcE+zSd9E2zUH/9KPmbcFIMo8fU RpRJdksHqi0UVVc2vlwYe++Lk9w== X-Received: by 2002:a17:90b:4ece:b0:313:1c7b:fc62 with SMTP id 98e67ed59e1d1-3408307ea8fmr17567606a91.22.1762241773557; Mon, 03 Nov 2025 23:36:13 -0800 (PST) X-Google-Smtp-Source: AGHT+IEzBEHTkjPgdkIwUI7lWkEQRpIDa20jvrpWkfugq5bytrrXQmYVQgd0I7u9hQ6Go4ioLIm17A== X-Received: by 2002:a17:90b:4ece:b0:313:1c7b:fc62 with SMTP id 98e67ed59e1d1-3408307ea8fmr17567555a91.22.1762241772931; Mon, 03 Nov 2025 23:36:12 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3415c8b5cfcsm3484367a91.19.2025.11.03.23.36.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Nov 2025 23:36:12 -0800 (PST) From: Mukesh Ojha Date: Tue, 04 Nov 2025 13:05:41 +0530 Subject: [PATCH v6 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: <20251104-kvm_rproc_v6-v6-1-7017b0adc24e@oss.qualcomm.com> References: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@oss.qualcomm.com> In-Reply-To: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@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=1762241765; l=1163; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=5S7bewqa2P4aC46GNTPc3Wfn3h92qyoaFLzlTIsn9fM=; b=xmcHbhegIJZig8VyD7U17RKCKojxbLdOTD7/frVeqLBpUy8FgnYDoeV+4fh8p9om1T1Yn8YMf oL0YwuEoYhVDiIFOe++KpSNVufWoimeI/nvKwW9tcFWOOeWyda5pp3S 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=esbSD4pX c=1 sm=1 tr=0 ts=6909acee 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=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=vdhzk_XxDewY554Buq8A:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: Uh8T3ncG54EW3wczB2NqcdyHBlZ5v0xm X-Proofpoint-ORIG-GUID: Uh8T3ncG54EW3wczB2NqcdyHBlZ5v0xm X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTA0MDA2MSBTYWx0ZWRfXwc/0CayClyqI h0qMODTouGHxgTxd5NjlGWE++E69Td6BICnGhZUAZ4aqVLB/SpkzfMJpV4Be5ge8k8igoSbJ2uw 7pqnB2rQV4cNIIWQXtqCJZ45ozWQu9E4txEymqIvq/P7l4+7mdQwfBdZ5glmaWIVVEr8WAVGmPj 5Pq6JrWi31Qc4dpFMjgCkZwn5USZxqVuP0aUZ70LIzEx8hlp8YHWtx9ZiRguHTIm/NghoOWs0mG TJSJcKGOLfiQ4rJVhGotEDrKx7W53J9R+2RWJQlT4cTAByHLunDyD0s9eplSUoX1Mw0uWmapNku skwfuIeRvnnSw19gTSs6SbPNjJrsEsD5p/aMFBtfqGifBGZ1xW7lFksDknuTrOuEA3jDBDfDDsM 8GnPXE4pod7Vrdn2u2QTdaNScB2uBw== 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-03_06,2025-11-03_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 clxscore=1015 priorityscore=1501 adultscore=0 phishscore=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 spamscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511040061 Most Qualcomm platforms feature Gunyah hypervisor which handles IOMMU configuration for remote processor and when it is not present, the operating system must perform these configurations instead and for that firmware stream should be presented to the operating system. Hence, add iommus property as 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 Fri Dec 19 07:50:55 2025 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 BEFF530B53A for ; Tue, 4 Nov 2025 07:36:18 +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=1762241780; cv=none; b=Za3gXqnmHKy/9htjggOYijC/1GtwUbYEnWrHcH1z9GxOKEpmox6bLweXa8bKEeU8kaVBJqteaHIWBQODtFXxITUrUYQ4xyiHc4vsnvy/BwOOs15gKZCIn6PPZhpyirvHVW6HTYzJm1Z9FFqyV+rZj7Y2bJ4dJrgonKZZpsaD3EI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762241780; c=relaxed/simple; bh=FmKGIfydpIBvZwHLGbtykFwsfVO47sNP+uEYs4V3KtI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KQ4rERBq5vYxWJaEZLao2DTWY5y1rqSi5zq/9fiD7knJSnwa9V+8icNGD2XR+usuvOtfWNV3Ztu494vTiAVuYl/uT1XRDg+rh41Jxa20E6AajqH1BL5ociY62/7X5eA0UZgyS7E2dmjP2bMI3D1VoEWPav2CbWHxxnQRQboai6w= 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=Wp/FNPGT; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=cI5j7OYb; 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="Wp/FNPGT"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="cI5j7OYb" 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 5A43DJQV3595028 for ; Tue, 4 Nov 2025 07:36:18 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= LqXRNN5WgLhy970VZ7+bHvuWbBP7UIoDXfqq5soCIW8=; b=Wp/FNPGTlUw0CQot majLNEPt2dZeq+WVsPM1J8lavB2b4ZupyDrhpja/jGg7y7ABn1wjnTgvhIcJJTGs 0LpnPWSFd66YRrHiHZDVJZ+ZCYCq1vSNld6t/8/xjzZnXrzHAR0N8hul6h5GznSg 04VLfGMSUr2r9KAHN5GGRIF1rfueCvnvb9Qdhuu7xjQuYdiX2y4dmk2I9q4Hbzat jujGD66rp5ipyAl3oY7ijCVH+M0RkeGu8RvFzgxTo8o29mP+pdVXSqD0c6rTrKmA 9/BTGM1bGwX78bSPAJ7EBeLZGnGe/k2/mEOFyW61UHd+bh0xNQO/OBy6bOzNdI+Q qlg6hQ== Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4a70exj33t-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 04 Nov 2025 07:36:18 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-33da21394adso6324608a91.1 for ; Mon, 03 Nov 2025 23:36:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1762241777; x=1762846577; 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=LqXRNN5WgLhy970VZ7+bHvuWbBP7UIoDXfqq5soCIW8=; b=cI5j7OYb3eW6Cyt+HZCpTkne17fCCsiwMHG8fIUD58NXQWyvpAHf5biuum6F3rnTcX tIs40iKB80MbLGbtNkg2rg91WVwlINPWVPr+CiiGcJSNbhsz7fojVt8zcFtUWtNmdcSF nq+O9dT4CzxOCX+lxI2GHb0tf5+CtFv/yiHFLQONjpsw9yA/4gGIA4hxktBzBOlDD4Gm pRsBlE/OfzoN0ZY5eMS8yVQQhqOrA1+roKOtKaPJJvmljLL6uEkYYogLO/fIyZS/fUB5 0+T+VralA6/5E+xumYmPSAhJsBpWN/TCCcd9zxUoAunaECbbNQGIehFYet5OBoDd+ahn PXcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762241777; x=1762846577; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=LqXRNN5WgLhy970VZ7+bHvuWbBP7UIoDXfqq5soCIW8=; b=FwG70mQVuzES9LPGDheKXsQ7K2wxQaECVCVpJYJRpFkYsfXjpxfp9fsltkVi9/DE4H S58A6WWqkGEqOxsJW0O9XoySsS0s9g/UeJuCbYUYq/xyB/igUxzERoi8E7b+cfEQFDu9 tMNdXFFu7CoOX/oJiVF/393wdIiK7PfiF7pxNkiWC/zEE6J1Gft3HBii/yccUjCRVSFu c77xPbVfeFn/ibAP6feEW2T9PZGjqbekgVpWVVOiOHA7DQUlTG0uw/WoJ0lyBhDfvK4L KT5i9AKjTveQYEUPpqy6hLXL3SbiiEe/PbXBslv1PdTTCr7DPf2q6cm+s/u8WXJBHNx0 sl/Q== X-Forwarded-Encrypted: i=1; AJvYcCVvkLVwR5ynY+z5MizaFhAR/A5RNKlahYy2E9osuEFdll8ublXsvis048crknJWY2iO3sYkk4RyMGEFwyc=@vger.kernel.org X-Gm-Message-State: AOJu0YyVMabau2/WAiSMO4TlbR3SWWNspAjbzZnUsCwOvi3ANEpMVcNx MsD91in1eyQYWJ6kHvf2+AY730KNgQ1wekEWKXw+cVTvcNCgZUVMt13cEyJoQ6b3HMHbOqeftkX JHp3qDHnNqJYI2emzNGkwMty80aJfC0J6C8pzYZq0ggZNQrY0GIuQgd1Gx4KgPj4Cx+8= X-Gm-Gg: ASbGnctORZwjxZKBes8xIt+IzaMvoBaFy6ayTM74MmTMrwMLbYer1QoO6OkVLQhvU++ IVcOTsclgcsL3CAwtsSjj5crSVJVRMtnRS8HURTm5qSKm1VO/aWKgHHeRyqQc+CrlgLoeI/gYCO vU9CeCWB5pDWQluRMF8v1B4UXjnKY5Dw4VAki4FCPkv0XpeoXMp2wK496Ls9AbfZ3EmdK9xtix0 pUYnRMPVn1wfE4DJLIBDVqFqWu+U10cxCgw7/URb1dAhA2UpvMdOU1SmKd2fA6l+EkkWaNnles5 dAI7WArgI3POwo/Pi0nkH9APfzd5SUAlJa5FZJNyZu/XvF+t4SDVeY5KlB/PRyVUhfwJ80k9inr 0q+lsVenzoH1hTn2q5ChSvtkO1Q== X-Received: by 2002:a17:90b:2b44:b0:340:f05a:3ed3 with SMTP id 98e67ed59e1d1-340f05a4111mr11890995a91.17.1762241777215; Mon, 03 Nov 2025 23:36:17 -0800 (PST) X-Google-Smtp-Source: AGHT+IFC0zzraVPxykKEoWBCgsKtSlR9peX7tZKI1998OGHVxAi0b3AuVr6yJ9IR0P1G35ZoVuRFiw== X-Received: by 2002:a17:90b:2b44:b0:340:f05a:3ed3 with SMTP id 98e67ed59e1d1-340f05a4111mr11890952a91.17.1762241776608; Mon, 03 Nov 2025 23:36:16 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3415c8b5cfcsm3484367a91.19.2025.11.03.23.36.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Nov 2025 23:36:16 -0800 (PST) From: Mukesh Ojha Date: Tue, 04 Nov 2025 13:05:42 +0530 Subject: [PATCH v6 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: <20251104-kvm_rproc_v6-v6-2-7017b0adc24e@oss.qualcomm.com> References: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@oss.qualcomm.com> In-Reply-To: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@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=1762241765; l=701; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=FmKGIfydpIBvZwHLGbtykFwsfVO47sNP+uEYs4V3KtI=; b=JaZMbmQPwIaJzEwbqi26osYgo8y3y8kiIBl0iE5kn5gZ4x4ye9GXg/gks3sL/Cs7FcDBR7nMs zO734FNyCQcAIWUJKEm+gpEv0OfPdPdaWUU5dlR2GEWi4HhpZmqmNwx 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=APHuRV3Y c=1 sm=1 tr=0 ts=6909acf2 cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=QKOBHnd7J3GditHIzEoA:9 a=QEXdDO2ut3YA:10 a=iS9zxrgQBfv6-_F4QbHw:22 X-Proofpoint-GUID: I5Ndy_4_M3VkxApXw4i2pOh4QYKPv2vU X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTA0MDA2MSBTYWx0ZWRfX7YBVPJmtxXgL Vw5SghVfkD1ITbv0vWZncunFPxfJytg334Xhln96CAQOuyRGZtqK4MiGYBHcOOVcRjqbuQ2hO1z 4Lqt9AedHAS5uVm2+fb0BxrrdX2ofVBvghShEabL9dXsQkRADwbmXzqlKha4dWhNrKIs+7webJJ tEUawNOqcy7nL+KW/TnkKxJRGUHZyVdEb7QZR73zIg6fNuzhDkElHVM6dnj3PkBilFQ7l64MNXR iqvtafZ3p6DX1Ui3OsCDK2XQi1uqmxKcYGGn7aQ9svMO/rj0zv9FQ0Xe4sfzmRhZ9PyFECeIqFq jLU0FFIdbpQBMun1sCauTJpXJ64Qi1fJA1y+HpsAeZ81Dy7z0VFoy/wN8B0UFbUjg+j/OfO9fC9 9SYFP4u2uz22dVsJ+y2TQygwaiE+Kw== X-Proofpoint-ORIG-GUID: I5Ndy_4_M3VkxApXw4i2pOh4QYKPv2vU 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-03_06,2025-11-03_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 clxscore=1015 impostorscore=0 priorityscore=1501 phishscore=0 suspectscore=0 adultscore=0 bulkscore=0 spamscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511040061 Remove some redundant piece of code to save some machine cycle. 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 Fri Dec 19 07:50:55 2025 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 57AB430ACE0 for ; Tue, 4 Nov 2025 07:36:23 +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=1762241785; cv=none; b=ZvopFtAf9kcLFuh6T/tn2wstQI7Dh9e1gOsTQB5AeVANCtcSiw4YD2+izM1TJEJjz+iCnEiJRVXUA+mIZYoXoROTGMBGEXNpkROeb7aA7/25zXXBXksOXV/xuqHKtbaK9h00+qUpoU/z345WwO1bsIPBV/g408qBT7jGpdDKe6Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762241785; c=relaxed/simple; bh=VOuOqf5s/VXmQ4/n2mXrZS+xom6wjqVjpYUDEQ7bQ/w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=A6VOWGCuMwwudoob0nFR+fWTowcyulDHgpSyRfBT8Ab1LHs5MxKGXolCwIm7rk71fLHYfkvtuRouaX9+4KjSTbUu8WvaCARVTku0xkTIc/nT33R3y2z1GbM7xx0Jjz3NQ1qpZOK7M5lKS8uCwntzFMhra86NrKf175KYup6rOM4= 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=E8cR5q3D; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=QBX5R/cF; 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="E8cR5q3D"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="QBX5R/cF" 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 5A43JTvw3744533 for ; Tue, 4 Nov 2025 07:36:22 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= T6TjcEvFUXKY8cVK2RdiT+HmYg/PxQRxdMt6O3kLtQU=; b=E8cR5q3DPydOtoUd O7OkjUO9QtmRPDAyNVudq7YSftIT8HkecUzPNGXlp1NzLCn+tcl6bSujihw34xIy Obdo7Mb6qepJfg0JzMn2CK77kCItzegUvm8hsGd4rNjUk/2fOqIa/+7rHsMv8fIs WevLFaP198/iLDNI2ob/4AAJCw23Q/CuY8keL+TBiKFO/L00q21+yNUikBB5TDDr HfqDRpDs7GpD/YvT0q+rF9k4RaSz5D3UlEQhTxp97AVbl+QcoZmWWhSFlexlhXDq dYEXozMRn8QsTXdLRCNSYkKpTXLK0HU8nbyQ3hOn2xg35g77F+ZSZDdKR1vXk1sb JwZfpA== 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 4a70kca3h6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 04 Nov 2025 07:36:22 +0000 (GMT) Received: by mail-pf1-f198.google.com with SMTP id d2e1a72fcca58-76e2ea9366aso5048004b3a.2 for ; Mon, 03 Nov 2025 23:36:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1762241781; x=1762846581; 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=T6TjcEvFUXKY8cVK2RdiT+HmYg/PxQRxdMt6O3kLtQU=; b=QBX5R/cFYaX41xiAJH1P2K4M75i+nZ90QdS06nc4g9HLF20AXOnMxCgLoECO5g+0qH hCfAdhcuyXqJnrTPDa3xrjs8GdEFrEvcR+zP1Oc6KI72OPwT9uQaF8g0d+6JrPa6dXHg n3rR2vqsX1uqx9FdhmFubVNpbXhek4b9soriF+YciR+pmRNCo1QITqQj1g1AUUX0TzB6 /qezrE80gBHZ0HpU25EIjQB+H1r0O5gIp6HE63To3q++UbQ0MVM0HgjW7kpg4YQn+jrb 04yNATjkwzaBOfdTolrID0bLakRpe8rd7+n7cSiswVk5z4tT4I0ttkdYJ/2Q8HsfSolP 0CtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762241781; x=1762846581; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=T6TjcEvFUXKY8cVK2RdiT+HmYg/PxQRxdMt6O3kLtQU=; b=jpX8NH7DsfMfbXUlY10yv06FBgo+wd9KmP+JbGM7+vgUWDNQhscTI5NF9VBv4Vcu4p xoaEUEpVS+1IdCQDS2wrYWZxB3CsAjXdg4CDOlFIOSm8NlQk5NZ6oZVtAE3Fn2M86Rcn 2crOHU3mbeY2I1YoM18e4KFDJbqm/FAywA55+KBLriTmD+FQ46gXb5g7kbgWnNVanJ1N b1A/Z1VtQb6OyPCKi8A3yGQQMhu02o7SHdETqufDOrD5T4mpOLbGlp/xslwiMZNGaJcT 1fG14KXVtcVvYjggKdPN0dppIgrkLbZ9CLwbW0QtlzSv9prYl+p2CXtSjIHZ2WBouSZ9 mzSw== X-Forwarded-Encrypted: i=1; AJvYcCUkJOaIptf837lEJyH7w9dEQGk8Pi4K5/yymFbALETUOfYE0ePbums9BoSsPnrQDMyB4FxOgYk0/t4auRw=@vger.kernel.org X-Gm-Message-State: AOJu0Yy/OfV7F2JjhNrx5T34v4NrcJzziLGKfZJM98gEEk6FTcTctGBl ZTXkuV1xaRvq8Wkky/W3ZQJymJHxag09dsN02c5WTCgnGfpIUhT7jCKrXU7RDve5lkcguPjDDK9 r6pXv6UwqNbyh8mcwont5VXqecKSU6jW4Tkzwt5qx9igXPEvF2u1d5ktLm0VBIEVVIqI= X-Gm-Gg: ASbGncsEXy3mGbsIONTN8Hi3FFIuL/I0pxrLBSmckidamwjoP5ax3KhjH8/0GtIQCnH jHMyAPubrUZy9FilP9yvKePFxSn6rxNlVjNEOseYd6+M7+PYblS92NnSpZ8qYbvrHhSAQEhVNsO n5eooQRWxEnexoqAHzubcuSGdvOL1k2go60u4p35V/MjYQeJFdWg4Ej34pFcxSI+Szy5E5dZaRR CGUpJQbNWp6LFeXRRKrLMY/ouL1NkFb+VWPEnIJTn6dcWmm9kKS9c5IGue9yffSlGZ5vHfrt/gg ewdS8AJLyq4hmvAzrlmBfN/54aW+QNEAPNYScvfjU0HOjBXmNlZjqmjVNZ3i8ZnLjPS7J1I5qNp eVeSFUCHNrDL0W8I1zlBusEyFwQ== X-Received: by 2002:a05:6a20:3c90:b0:342:b36:57eb with SMTP id adf61e73a8af0-348c9d6a9c8mr19434246637.2.1762241781214; Mon, 03 Nov 2025 23:36:21 -0800 (PST) X-Google-Smtp-Source: AGHT+IFCy004iXy7dW+VAzovaUFE9/SwtgH8PZExWgCCD3/vyHxwMWvbOIsX79sc9/froyhzP7qBww== X-Received: by 2002:a05:6a20:3c90:b0:342:b36:57eb with SMTP id adf61e73a8af0-348c9d6a9c8mr19434202637.2.1762241780484; Mon, 03 Nov 2025 23:36:20 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3415c8b5cfcsm3484367a91.19.2025.11.03.23.36.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Nov 2025 23:36:20 -0800 (PST) From: Mukesh Ojha Date: Tue, 04 Nov 2025 13:05:43 +0530 Subject: [PATCH v6 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: <20251104-kvm_rproc_v6-v6-3-7017b0adc24e@oss.qualcomm.com> References: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@oss.qualcomm.com> In-Reply-To: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@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=1762241765; l=6055; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=VOuOqf5s/VXmQ4/n2mXrZS+xom6wjqVjpYUDEQ7bQ/w=; b=zj+Xz78tc7/i1WynN+G9YdAyqI4Ax5yTqQFGw4wN75zvcnYV+I574Xf3omt7SNWN+LtVWpOI9 HsuFopfBv0lACgxf4T0UXdUYG67GIe3yTNk0jDmjadIqRKm+6/TLY4y X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTA0MDA2MSBTYWx0ZWRfXwo0PiB1TIOwJ PxPpVoOs7gOr1vMpIxbl40nqxpbPFlJobPyomBisMGsq85S+Wqvg3ah8/OQ6rbwXuVksdlwDBBF oZ6/pYTDjQsQ/tjVF/qHUT5LPACnw1ocj8pIWN1ydFOA2DJ8OAck70NeBDkM5Nl7udcHxyFTXJF okOO0EuBfpHi2XY20gnE4H5GeMmaxk2HxwIreqBDWoU9rR/+unOf3uXSzmdTPEfJ0YL4mCwkt6d qWa8x3iy5OWWmJ8YiYa4AmgB6Lwz3HFlNHSI/b1sq3oWnA1iZvCsWqprXpezC154FYb+sP2K4Eu qWCowFgqWRn8WQp1+H7hc2a3m1TidiK2mWdK+RJtxmGYcN8CuYrta2JMEOxKHNEy63k7SusQCh4 9uXOBUj8fRs/2BPeaVqsNKcW7U9UEg== X-Proofpoint-GUID: D9lvs5_2WNFbqeBINrKBLySg6Jmj7zqi X-Proofpoint-ORIG-GUID: D9lvs5_2WNFbqeBINrKBLySg6Jmj7zqi X-Authority-Analysis: v=2.4 cv=TIJIilla c=1 sm=1 tr=0 ts=6909acf6 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=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=bcWw3dkznkfw-y6_B5AA:9 a=QEXdDO2ut3YA:10 a=IoOABgeZipijB_acs4fv:22 a=cvBusfyB2V15izCimMoJ: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-03_06,2025-11-03_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 spamscore=0 clxscore=1015 bulkscore=0 adultscore=0 impostorscore=0 lowpriorityscore=0 suspectscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511040061 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 Signed-off-by: Mukesh Ojha Reviewed-by: Konrad Dybcio --- 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 Fri Dec 19 07:50:55 2025 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 7E7B930C602 for ; Tue, 4 Nov 2025 07:36:27 +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=1762241789; cv=none; b=C0VWIg0RNb36KVAnW5s0qBG89pwRe3Yz3ZVxFF7XAGyDqIVhlpbSn4TpS8jAxQgjXc8xrzlRxyrWU5IiIhzGoFH/GNi0/EhhyfEj62t/IuxAKClfTptndiL/lz3Im9SzU/NByQ/wyC1RV6T6wlKYe/oSOFA9iapjnAYVgle1Z+o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762241789; c=relaxed/simple; bh=rmozCYG/Ljsh7GMxYF8mDZZkLJE6jlmjxWPOEdA8pAM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GXcZKfkG+jVXpXLM07XgtWwom7ppHtMOClHpzv4FvePElTJLslisr90FPyQyLzxypyW3HuZPemRWU83QjAfw480f0aQbOW+FeGaRTeXXa3ho1C84zjW2St68l03FYC5DPh84sj/9AAH8OmvwM3cqVipNd5gG/SRmKh8LobYsoPo= 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=fPltCVYY; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Fsuk6wdr; 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="fPltCVYY"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Fsuk6wdr" 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 5A43P6tw905295 for ; Tue, 4 Nov 2025 07:36:26 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= 7Qkl41O9bWIzcRWMGMULQ4Tz0JkXETLeZtykrnuB7Cs=; b=fPltCVYYx7KHgHuI KcIXtu/xL06sVM+Ttm9YkKsbgBnOonaluJL1y62qGuG/xDvG/hBACiXM7z4cKs3H aKvGwswg01HrrCbnNoQofNrlHilPoNuW14ZZOCg5fmsncNSFdcjorMNxJxMVPGbe axCMRkMnQWqEdastXgfqO5+1t1zos5gRVEUtO6ITERuB1E7nQJBPUPMhMvjYnwXM XmuMfu7/dYxMynHeUX26DT+BOzUOiCva/wrA9L/22r6JmSVjMSep+0M6xIsZU7HX RHa3mcICtSlB/MFhlOHZPttMoCic9641o9da+AT+Cr4BP/SbJM4MLaN1x2T1qSHH rAoLMw== 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 4a79jjrkp1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 04 Nov 2025 07:36:26 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-b95d06db747so2197968a12.1 for ; Mon, 03 Nov 2025 23:36:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1762241785; x=1762846585; 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=7Qkl41O9bWIzcRWMGMULQ4Tz0JkXETLeZtykrnuB7Cs=; b=Fsuk6wdreaEU1gk/Mw7BzftpGMLaIYZXSi+wwBcvTs7AM3jK/FK63cW1FAxMIp17Fg A7pbvB4tFKosZ5p0oTGamFbzwEuu18iyhBuLBJn1XHOyelgPeQK9qI0R3/mhnAsB5NCM pSFdngBauT0znkoNw0Kt6UDu6AcIB8HQHJ16HjA03CvNc5OnIMXle1FruUqyTyhOJxTJ 01iFlWt7NMi34mfPdDUStOWXFoJQznNicXzPtNdwSqFMl7NjUrYSYL3XqDuRAIOYx+0O WUchsohIg68gvxwb1C0vuv+3XL9ItT+A+px8i7oCFUibmcKuwDeyrZdpKdYmLtI6sk6l lZ4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762241785; x=1762846585; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=7Qkl41O9bWIzcRWMGMULQ4Tz0JkXETLeZtykrnuB7Cs=; b=UMOZcYGFgQyda2kqf/AJK/c6QRLgDCxStQ7jtT5ona+izG0EfUaf2343ZaypMpm7ti UZi99tlX32cWZoI8vENYYVqb66YmahSZo4ToJXIhQ8mak6Y8RajFxCL9E0A630F7VKXr WJ4LbZHj/u4DKLk09RFrnLvhpvYvT5AyueTxVnF25DKXCEvcZVBUKXOu7WiMiHV8NQLm VOdBq8fDuTMudzPNsILj4IoCH/bEftqCGloOzgjY9EmqLA6TY1FMEKniM1T7ZTVpKyAQ RLeGyBIljoNajNu0HYhV7Du1gLsWr26rBS8dQJ0SOUaJyf8d1LqSNmVaMwC+hBoQBlIQ Yyjg== X-Forwarded-Encrypted: i=1; AJvYcCURredW7FwSYqxIfF22/IxstotDiL021bAuJnSRlhr34zuKO4NR3nkqFK0N9RQn/fsAlYWjuGszZn1GV2w=@vger.kernel.org X-Gm-Message-State: AOJu0YyCPJsJyCKS1urGugnqviI84z7rQ44U4ADSQ+XQz49GzFU+9+vt NhGssgo1OMggPoBInTfxtMQd58QnOTYMKMtwKKOlfESSG7fj0mkoJ5eEkXxFqJXESgXnSJCWHxV NIQcM8MvCiqpLbkbiQMGchpRz2PKkJ8oF+vZbuKTd9N97kgP1fXfktG0kqaZMVuCA4vI= X-Gm-Gg: ASbGncv0blinw4drnLzGijCqUQVl44Tf+nmOch/DRicbLap7F0e6w85PZpmKIvidJZV +4qwUMSNlszjo+15iRXGQ4jfoqocrxIq74xs+xn/S3Gu43xvAjY966YEpuVYyKZyMURyIXtwMlq tYEkW+3r1rCWZvJE2wrLXtG0GS3fVj7nC9rwHR7q6ptihWWaqjQ/LDCs+S/kH5kGvoVVZkfGUjH VQEEP3LyOVLblHLq0+/mRDYRPoNNuqneQPJnVvicKRnBBIhryRQu/3k0a56QGwN+cZEzTBC7Xu5 wgOelp+mF1gQVOolQCVcCl65NIfw8v+Rr9Dbb7jXz47uBWr+oMmDzqJpDwIZSNP4OwzKikcXKi+ BXtFN42XILtOSzsUO0XIHXn2NXw== X-Received: by 2002:a17:90b:3fc3:b0:340:9d78:59 with SMTP id 98e67ed59e1d1-34171851b38mr2755158a91.3.1762241785014; Mon, 03 Nov 2025 23:36:25 -0800 (PST) X-Google-Smtp-Source: AGHT+IGrWhNz/5lskpuFXtezZ31p252KcTwTvxSVuYrLyKHiTLuk29MoKj9eV/9jO7V6f926JNJ16w== X-Received: by 2002:a17:90b:3fc3:b0:340:9d78:59 with SMTP id 98e67ed59e1d1-34171851b38mr2755146a91.3.1762241784284; Mon, 03 Nov 2025 23:36:24 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3415c8b5cfcsm3484367a91.19.2025.11.03.23.36.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Nov 2025 23:36:23 -0800 (PST) From: Mukesh Ojha Date: Tue, 04 Nov 2025 13:05:44 +0530 Subject: [PATCH v6 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: <20251104-kvm_rproc_v6-v6-4-7017b0adc24e@oss.qualcomm.com> References: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@oss.qualcomm.com> In-Reply-To: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@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=1762241765; l=4074; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=rmozCYG/Ljsh7GMxYF8mDZZkLJE6jlmjxWPOEdA8pAM=; b=oOYzziovTwf6Ughn9dTJjh36FrBQQ3aU98ekJTlAytEDzcwSaVT42Kg9NHMFnRam5HFDUiO2K t2dV/5qGkInBjN8dwqinAKUETXkbfspfCL6NXI7MLNAdK1f9F60idO1 X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-GUID: Hjqr10N2O_IMkuVwx3sH39skqLV5cKBo X-Proofpoint-ORIG-GUID: Hjqr10N2O_IMkuVwx3sH39skqLV5cKBo X-Authority-Analysis: v=2.4 cv=TuPrRTXh c=1 sm=1 tr=0 ts=6909acfa 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=FtZ2CgB1kwCBZN0VdloA:9 a=QEXdDO2ut3YA:10 a=3WC7DwWrALyhR5TkjVHa:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTA0MDA2MSBTYWx0ZWRfX5ylM1/zd+DlJ yGyahuf5jsPvPT9IEeeqwbyvMJIq56NOaAh7EFPRrDiwN8DipkGDIbZR6rBpeVbi/UY5Nsocl0f vfKHQ6eRJWBvqvyBR4WcX0plJM9wfS1f7V1ypSXY5qfS6AbNGtCl/tLaXWrP5w4gOj/cfUJq3aA /WQi8cAJbKRDkWwv0qs3akbeLSEbgQaFVJ8tCPivXQvzt+WhrI+vSOQnG4MucdnJwyneQiUclWO Tx9+TMuphHixk+eXuFgCKvTUwplVKHZCmsEry8u0INRf1ertYOt3HO8bA8+YM68iK4DtDPrX0BP QLqj/NNj3GU1Df2zkuTd+5qCrKGKjXLA1PAq2wAmHBX6/IHwD8M7ABeTOcHOUnyFbz0Aox72lPB EQMifHGwsIqgr/2GYRZd9gXDtOaD/g== 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-03_06,2025-11-03_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 adultscore=0 priorityscore=1501 phishscore=0 spamscore=0 clxscore=1015 malwarescore=0 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-2511040061 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 | 36 ++++++++++++++++++++++++++++++= ++++ include/linux/firmware/qcom/qcom_scm.h | 10 ++++++++++ 2 files changed, 46 insertions(+) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_= scm.c index 0a0c48fca7cf..5a525dbd0a2e 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -558,6 +558,42 @@ 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; + + ctx->metadata =3D devm_kzalloc(dev, sizeof(*ctx->metadata), GFP_KERNEL); + if (!ctx->metadata) + return ERR_PTR(-ENOMEM); + + 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..f574fdf88eaa 100644 --- a/include/linux/firmware/qcom/qcom_scm.h +++ b/include/linux/firmware/qcom/qcom_scm.h @@ -72,6 +72,16 @@ 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; + struct qcom_scm_pas_metadata *metadata; +}; + +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 Fri Dec 19 07:50:55 2025 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 26CED30C611 for ; Tue, 4 Nov 2025 07:36:31 +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=1762241792; cv=none; b=Szv2qC4rt4qraE6Wit6Q6Sp6hOWyd1P+QfIWN+Tvm67810A87lnUwwynyM/0DEJY5ULP92atL/AxzG35tM3omLF1AD3aBbVkC8TXJRLj6ZMzbEulHFvDNu9e5BY85HOBJIrqeNkhNRovtAbdLI1QkG5JBZOye9PAeF82cR82AG4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762241792; c=relaxed/simple; bh=NeKDjYIbjo1Oal+5KuqFVZoba+/aaNW17DV8LMoQ9+s=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=be0P0yZAZSLrRRYzambFPoFk0ej/YsXWjSIWf+c8xxWm3roNz1Wa25D6NaHkgkFzD/n4zq3zm9sreYI7Zbbgxi21C3WQVYbHSeFQOYyyGbeKftVfqeEVU3cvqfu5ts552XFH8Bo66UetG9d394lFRcHEYCG90l8LYJ19qD2g4sU= 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=L4f81BcE; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=e6W2gjaZ; 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="L4f81BcE"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="e6W2gjaZ" 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 5A42dIPs3693411 for ; Tue, 4 Nov 2025 07:36:30 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= d97WbPBAAj8jm5QgVA8aRnvCTYiuAwbB9XK9NKYdkW8=; b=L4f81BcEjbAX8RC0 WkYq7vEtdLF6xGT9GQYQ/dHMSTAGBCaR4Fiuuw9Acjy8J7bz3cLwTZ7e4tFsNSIE 4g7mS+YNoHjPXm4Hy/RiBR4G/ejubv9pa+R6HfBJjd1g4Aly+OVSKk8nSNHmOSlG 18h2BEZnCKy0Ur4Cz21BZmJ1b57K8rS3RJit4IunpnD2qtE2b0cc5mQpNdv44SE4 infq/0Qls+CV4f6a2uZXAcQyLVIqB6NzDiXpefQo4XMIpMXev+wjxeKCRzMwQcTB uy7Pj9bBe5sYf6+C4YSIvq1pN2StU4Z/nwazSM2ljd4v7hLYCn+qwgs2pvO1OZ1j CiuMWQ== Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4a6u8b31x4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 04 Nov 2025 07:36:30 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-340bc4ef67fso3924192a91.3 for ; Mon, 03 Nov 2025 23:36:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1762241789; x=1762846589; 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=d97WbPBAAj8jm5QgVA8aRnvCTYiuAwbB9XK9NKYdkW8=; b=e6W2gjaZnpzCbMoLLHn8oCdy96YFhqWd0Rj2Zhnf588wljuKutX6IV9oglgZE740HI ZcykT2+SKKTw4Fxmk2hTO/1x2xuPKVwrJHMCjNe6IUGCxeLwkPcONcwI63iMD0zq9BGg Jv8g/6pMvAhAofNUzmXfE9pwpfNyqZ+56KKZcvwdQS4SV+Ow6+bvbB2/UHKk1jMpzSPR IneGcqtoaDNkwBAWF87ysKi7h3NiU0lVJK52mOmDxM4bEuuN8Vf8ABNMNFszF5SBcG4I pvb4sWxDrZVaoDjvxJ7+JT7B2oFKTXrxCpoLbkteMsJJ2iA6MqAp6iU8obZub9cdgwly h7gQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762241789; x=1762846589; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=d97WbPBAAj8jm5QgVA8aRnvCTYiuAwbB9XK9NKYdkW8=; b=DegOCUMAaAspq1h40QJuq8MPQe85ThF9eVwD7O+JMD/cff1+CJLYQvWtegYqmR+U9R 6npff7pRT7NqHFeNnX5AT/z35zOM9tG3gPthJ0Zw/athpY2tJx30GkcrJ/GoIpDX8MOa qXhXOWdumHWpNfR851Whbiv/0YuSIGKEDnFOsxh2ISyXhTMYbODvxyODypfbJCKVwfjN vlq4xDEQyZu83hik42OTV7SC2BXtbAcl9ACxV9eeODl0MJK7F+D/lsqZzHCRbJ3VQSZs 3J95KFxci/n2a3cWmyLlhcLxZ6MovFz51VdPP/ExExtmZPeUxjBJ1//wkpsJE7ArW5P4 v1BQ== X-Forwarded-Encrypted: i=1; AJvYcCWclfbqRatxLNOgZisKSgdsT1qwZJYne5gDWZ1vcuS9V7bSATlfn2dWpWa9fTY2c+qChSBiM/ITk0rTyOc=@vger.kernel.org X-Gm-Message-State: AOJu0Yw6mzFsEkQ28/mwvVmlRuf2hb99Fxaa+vbTLlVJx5KYAhvxshaZ iJ/uki2DSAbp0OYnKeiyNHFnJ1SKW2k6EkisZxzgjtNBC4I0Q43MhQbL1fIfJZBU7D/4rYecQj4 YhW12Cvvm7Z6O353sxuZ+Us8TCI0zIKBzF5hdoereFWItyd35S5IgLJPe/XtYEIPAql4= X-Gm-Gg: ASbGnctQqJPBP5ksaFtc9BMdSQ+jvKNpT15ENkuBJnWPMVWyZBAQ3bj151JIWu7xHQI librazZ9bQv0VJyAbdbv2VVO2ZdCOaWzx8q8SviyBVMExTWQtVyb7/VLVPqJHUqjSjshNAvzAtE Af1xIewzwI8A3rqCtdXin2+b2p7zyFy3pMnhKgA9L1AsrRCM0+V3fDWmbkObzb8jKkLgVit472F Qlyf4qeLU2iBg1/c9/XT/KreXw1nxTvoZPGV5qONP1vb055X8gnCFDrQ6OYfBQXujw9B71kX5tB dstTXUIfV8OcjyPvrva8T3RqJlMVopVXMUORMzac3VvUE2FdTODGSxAGySrk8NGJvfixRIb/7Nt YIiIrJ1yQxcWl0It7Z7vj4PUV4A== X-Received: by 2002:a17:90b:5350:b0:33e:2934:6e11 with SMTP id 98e67ed59e1d1-34082fdb7e5mr21342468a91.11.1762241788779; Mon, 03 Nov 2025 23:36:28 -0800 (PST) X-Google-Smtp-Source: AGHT+IEYTtQHzA7mU6/j4yf1qT/m2z2vP1d6UxqNfAT51CtchxjC/JKis6Fy8PLsBb+Sk3whhBWuhg== X-Received: by 2002:a17:90b:5350:b0:33e:2934:6e11 with SMTP id 98e67ed59e1d1-34082fdb7e5mr21342415a91.11.1762241788031; Mon, 03 Nov 2025 23:36:28 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3415c8b5cfcsm3484367a91.19.2025.11.03.23.36.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Nov 2025 23:36:27 -0800 (PST) From: Mukesh Ojha Date: Tue, 04 Nov 2025 13:05:45 +0530 Subject: [PATCH v6 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: <20251104-kvm_rproc_v6-v6-5-7017b0adc24e@oss.qualcomm.com> References: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@oss.qualcomm.com> In-Reply-To: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@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=1762241765; l=9321; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=NeKDjYIbjo1Oal+5KuqFVZoba+/aaNW17DV8LMoQ9+s=; b=yROXrtXiw8OGwOMpERQ8jJN8+h4TK3N+huQe12NTUGl8pO08h9AgmGay93fQR3JhSL2X+HgZv BQCtIgMmPhzDeRIhipa18ycmbO+Xng4eHtyPf0HY4xKMQWqrYotVwZs X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTA0MDA2MSBTYWx0ZWRfXwYshG/LdlZGL zYvl5jjOlged2W58Br8KgJ9aU74Uni2T0mUvFSGEk1ekc7448TSYnPCdM1ugWjKv8gZQIbkmiHH pOAuMfmLgnbShgQxxir/B/QePPP/QhnN6dRMr1oxgl+SDw3o3QoSIZ/8VB5nyikoGhgCeJE4aoS w7Vc1gepqMOO1JT4z/oY2osk6xF3/00T5HrRFx/qStvBXAbESt7GVsdjIuU3fj+dh9W6bHhxKni 7iGZAO0gkAULPIs+fKBH+YENff1geEz4eEQ3z4J5/QQVJVEnCm6g5/98hg+M0nkmhUV4v9HXO9G v58beuLN6zHgGXZXy3UMXwXtdiCzh0MPFdFm9UWirOHvC97KOLyVw3AhK+GerypJbHWQWZO81PG kHAlJUSFPfRCg0XFfAtKOCT1xC75Zw== X-Proofpoint-GUID: _gmGWnnHf1Su2UT6Eveb7zay3OfLSSid X-Authority-Analysis: v=2.4 cv=Ha8ZjyE8 c=1 sm=1 tr=0 ts=6909acfe cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=A6wE2Gzpztn23p2hnU8A:9 a=QEXdDO2ut3YA:10 a=iS9zxrgQBfv6-_F4QbHw:22 X-Proofpoint-ORIG-GUID: _gmGWnnHf1Su2UT6Eveb7zay3OfLSSid 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-03_06,2025-11-03_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 spamscore=0 lowpriorityscore=0 malwarescore=0 clxscore=1015 phishscore=0 suspectscore=0 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511040061 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. Signed-off-by: Mukesh Ojha --- drivers/firmware/qcom/qcom_scm.c | 25 +++++++++++++--------- drivers/remoteproc/qcom_q6v5_pas.c | 38 ++++++++++++++++++++++++------= ---- drivers/soc/qcom/mdt_loader.c | 4 ++-- include/linux/firmware/qcom/qcom_scm.h | 4 ++-- include/linux/soc/qcom/mdt_loader.h | 6 +++--- 5 files changed, 49 insertions(+), 28 deletions(-) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_= scm.c index 5a525dbd0a2e..9cdd152da592 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -603,7 +603,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. * @@ -612,8 +612,9 @@ 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) { + struct qcom_scm_pas_metadata *mdt_ctx; dma_addr_t mdata_phys; void *mdata_buf; int ret; @@ -665,9 +666,10 @@ int qcom_scm_pas_init_image(u32 pas_id, const void *me= tadata, size_t size, if (ret < 0 || !ctx) { dma_free_coherent(__scm->dev, size, mdata_buf, mdata_phys); } else if (ctx) { - ctx->ptr =3D mdata_buf; - ctx->phys =3D mdata_phys; - ctx->size =3D size; + mdt_ctx =3D ctx->metadata; + mdt_ctx->ptr =3D mdata_buf; + mdt_ctx->phys =3D mdata_phys; + mdt_ctx->size =3D size; } =20 return ret ? : res.result[0]; @@ -676,16 +678,19 @@ 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) + struct qcom_scm_pas_metadata *mdt_ctx; + + mdt_ctx =3D ctx->metadata; + if (!mdt_ctx->ptr) return; =20 - dma_free_coherent(__scm->dev, ctx->size, ctx->ptr, ctx->phys); + dma_free_coherent(__scm->dev, mdt_ctx->size, mdt_ctx->ptr, mdt_ctx->phys); =20 - ctx->ptr =3D NULL; + mdt_ctx->ptr =3D NULL; } EXPORT_SYMBOL_GPL(qcom_scm_pas_metadata_release); =20 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 f574fdf88eaa..2905587dcd17 100644 --- a/include/linux/firmware/qcom/qcom_scm.h +++ b/include/linux/firmware/qcom/qcom_scm.h @@ -83,8 +83,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 Fri Dec 19 07:50:55 2025 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 C93C330B50F for ; Tue, 4 Nov 2025 07:36:34 +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=1762241796; cv=none; b=PLAzYVjAZb1Ap9cwmXy76TxVFglmjmauKPmDeDy3SZ7wlADcxS4IZSgRrVYZHdka/0LB5Wkeb+EIk1vY+FYQmPs8gH/ayaqayOxGTqiRjLhtWHTm7uUdn1661n/TEJTLrZTXPyrYIa/69T+75Gt2h/FUmwT0oACUCo6l46Ia6Ao= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762241796; c=relaxed/simple; bh=iSmU3/X+HtLXbDnGxOipwzxim2WZlEsSp7frdNDuVEY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=T24V4JkBwFJnFP8wkJYFHUQqBTjNYOkEkciAFpQROyUvmxhSO9z5K+7e5cXXOIuHtzw8+KbE8sp3UCK3O9wKDkCO+6U7NVbEWtQSPPN4hZkddPOAc0e0Rcwq7sOedqNmhNdufHHoPGmcleYJv2N18zbO6wyEqZQB1qRWj6DC0+E= 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=h/9eeHeH; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=IL9hp2fo; 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="h/9eeHeH"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="IL9hp2fo" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5A42ChpW3682841 for ; Tue, 4 Nov 2025 07:36:33 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= vavCqxPgT/mS8RNiu7Esfm9e/ZvRfzrt7fzsRF3r3Yw=; b=h/9eeHeH0pIDPKsq NtH5FhwFo6+FLQ42zDSmZGZHq+TX+bWRmfSeVCwWa0ANJ8uB3xIvJ8eA5RLgsZgc XIT2/MVC0Wme81JcLW3dBsWIgzyoqgvGMgEBvgpQS/W9MToszKoHt40cjzFZy4yR bX29qtSfFDcphkc6AWIZnItz/rxpkfnRAWlFpkCM9XDOX3iVmACWRsCteyhx/dEV KbVYHKkN4B0lvuKBmXktUmuF/59ej1z5SAKkZZBl+r8f94zITmLlaBUKCgLLhH6e J3ODQvNq0oMykwcFUhbMQZh16ufjZanirpHklUn5DHqplI5i45EMi5zhksgEWrtu 5ds4Mg== Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4a6xjqthqs-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 04 Nov 2025 07:36:33 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-332560b7171so5213098a91.0 for ; Mon, 03 Nov 2025 23:36:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1762241793; x=1762846593; 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=vavCqxPgT/mS8RNiu7Esfm9e/ZvRfzrt7fzsRF3r3Yw=; b=IL9hp2foemRLQhzoC/j8+CmtkSVnKZ/NOA5sRA5KRfIyxSChpn9RDVSr3thMDSsUpx HQWybm2u6tsRx6cZKtjMObgFWATHAfzulm8rNWqo+kGLNviecipVTpInc+AGiJJbggF5 RpykoyrmLR0XlydJ0WIiMFuTLjEE5Bxa5+hKkYDLZRbZmynXbLPSiMf4Z93dHyVm0/NV 8ssCRTloVM7y3xk1eH8GiNXMbywfSvijbxHvo5+ZoTmV/izl040/M3sdDa6KyxQYGR/D 0sVh1SHExsc9bh4clmIHSfx0yQpS0ty/AnUXllw4EUXKszEl5ISetumwB3mu9OJo57JF nAPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762241793; x=1762846593; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=vavCqxPgT/mS8RNiu7Esfm9e/ZvRfzrt7fzsRF3r3Yw=; b=QR+akft4u0Kzf6h3UuMJGlsWCMHNnLzxI6e40E9qevUNEqHp+XLIa+W1UykLnDbo0U DvaOwuaR8CdzDvH9B5RxGWuggIX7Rg64BlgmSoUHNgaECTOkJM44H/RZPOZ1nQjNYcv0 PhKx2uiYh+zMMQebncvnCknKkYsNY5IZ47WJaXZl0tUU2Ik40uJOoFU3gbudfxoq6CAI qmrst/lwFbeTN+FH3RV+A6RM+IilR6D8D6lvsiha4wrr3h5zGoKej7IO1m/0474NDtXi 0GdeupJIAStk9u+uZWkSxAAXoWZyIohPn3aiU8/HtTqxNtXEWVhg1oNhE3lVnRH63vI4 1aEw== X-Forwarded-Encrypted: i=1; AJvYcCU1dwEyA0BVahzD1a27yjgEULlPlz6av1XIdWSiO6HNH/+HyvT5EKDvI6S4D6T70CNXg7qaODQulFOpnqg=@vger.kernel.org X-Gm-Message-State: AOJu0Yy3sUqD9aq0szZDmnQOn/8D06+EaXYEOdQBcviNz1JEO9Qbe/7R RyAbjSHmf5Zp9XuH5sqoHWzMQCl2kKWUfv/ENYNJunOVtlzYYX3ClwjUfkScT8xIX/uxLbi2aIm 9Rh66riJupeD9ifZTdC0bryr9/CQFHTTzDpaQzvRp57Dy5bc+asPH4ln5FSIxhVNPtJ8= X-Gm-Gg: ASbGncv6VdUmVmNwevZjjFx6nKebee3Z9eKW3OeELD3RWt3sdsn56tatcJ7/07Hdc3Q HUPNCQ5pYLCqjOHD2jFd28FC4la3Nh/ihEcLa6r0nVQnWqY/mqZZo2DOiAjf+QXkflwanpjhLOd oYOm3bx+8ezRAG+0NKcku4NYPlXVISeR/CX0QVSRKNoFpZ8tjUYBd0y0ejoiGf+lG47YyvvyRaY Pq5pSQVAvU3GICqjxeok0qkLjagSl2j3sRH5VwgsMRKAFYCaNekPmM+l6i9m+RL+9T5DYsZsHVI pHFryQz72UpuRH+Ha38MKMsI4ZCjmvikKhtW4sa+WesCCdwXkrQ6pONv36pvOw4IUKxHQp7o7rj M/FQymBYPdWgpuwwyRo3oRMOmHw== X-Received: by 2002:a17:90b:2dc7:b0:341:1a50:2ea9 with SMTP id 98e67ed59e1d1-341718e877bmr2898564a91.16.1762241792343; Mon, 03 Nov 2025 23:36:32 -0800 (PST) X-Google-Smtp-Source: AGHT+IHSrcZj/TqeJdj2ge+mKKhSSdgLaFqWApr9mX6pP2aNG32jQlezJFb7S9/tn3ZslxIM2v+pXA== X-Received: by 2002:a17:90b:2dc7:b0:341:1a50:2ea9 with SMTP id 98e67ed59e1d1-341718e877bmr2898517a91.16.1762241791643; Mon, 03 Nov 2025 23:36:31 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3415c8b5cfcsm3484367a91.19.2025.11.03.23.36.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Nov 2025 23:36:31 -0800 (PST) From: Mukesh Ojha Date: Tue, 04 Nov 2025 13:05:46 +0530 Subject: [PATCH v6 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: <20251104-kvm_rproc_v6-v6-6-7017b0adc24e@oss.qualcomm.com> References: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@oss.qualcomm.com> In-Reply-To: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@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=1762241765; l=5648; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=iSmU3/X+HtLXbDnGxOipwzxim2WZlEsSp7frdNDuVEY=; b=YYX+Wk5P+6lFrCsY16XiKCwsUw4ZE6TUdYXhtsBNt15hmlv5BkHHB7zjnS1a1YD8vDJxTH7eS +pWP910klePA62fPYP4BrlEIUrP+Wmh9zb85z5x7JY2WqP9QwT/c336 X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-GUID: nOFMabVq0aomGHrZrf9HEg6PmgqE27sX X-Proofpoint-ORIG-GUID: nOFMabVq0aomGHrZrf9HEg6PmgqE27sX X-Authority-Analysis: v=2.4 cv=criWUl4i c=1 sm=1 tr=0 ts=6909ad01 cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==: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=iS9zxrgQBfv6-_F4QbHw:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTA0MDA2MSBTYWx0ZWRfXx+PcIEOYQvXa KxblAbfuGVLPtJts1Mo5LasaA/Ubv2pSTt1V4QguUn+jrjDjk9Y247auQGDi/5C7SpNKSmK7wa7 CmoucNPOID6qzltTpocCb/oHh2TpPUFzTiS8IZ1GiYFjjwu8OEqEyHnbp3lyMUYobn15wUoK+B7 GqwDKJ+d+ZK9fOl+v6ic8NoTaifYKFHDpIB0OLYoGL3uly3Ck7mO5R7SayhYCgZqJ1fESsdwOnq XUo+HfvNh/sGg0A62nfQ3HCyzpq0q3EXt4E9aHpN3gkmpXcM8VJy2P5UbsyH5KpfNyq5fgNM4Bp oOKqgJ/vmBuigXZ+ytmDrV2Cp3v1U8Vaq2VO+nldmWrQS087JGclpbbSMHmUtaI/HX+jNHQ6Ad1 F8wAz3xOnKnxC3bQ66AtlkBwRycMnw== 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-03_06,2025-11-03_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 priorityscore=1501 lowpriorityscore=0 phishscore=0 impostorscore=0 clxscore=1015 spamscore=0 suspectscore=0 bulkscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511040061 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(). Signed-off-by: Mukesh Ojha Reviewed-by: Konrad Dybcio --- 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 Fri Dec 19 07:50:55 2025 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 9745B309F0E for ; Tue, 4 Nov 2025 07:36:37 +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=1762241799; cv=none; b=UXWrD7po3lw2qCI6qhuVqHbD0HEHbEqsjsCjeYq2axOHUUEVyS6E6dkKHGgBrZUViVdXSjFVo8UMpE+u2RXrAP3+VzHFuZ7tAIKBSVNoFeljldMaRQap/CWbqXRwoaANoBsh3JoTlA22fvzkl4RVEJK6mQ7yeodyyYX9beA5Jx8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762241799; c=relaxed/simple; bh=IgJd8v2AuQ5h7J9K4ztsTFSTdDzPjtfIhiy/ExbSkDc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=bLNzM3HxzhQu814d6EYmfHF6VCxtqLvpyQxHoOv4VDteEEgb9lGOiCZ5JSlz50gDGKUoeEgwwkrHGg9i/6praESmi37w8HfCqSTEVzv0jAvjFoK0bjEFGH4MdnJMtcQMbG8JLMRcJC0E8BVvpkKYvTOeofJi4Rz84i7cHjMWsVg= 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=gRLFyKFo; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=a+G1o+bU; 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="gRLFyKFo"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="a+G1o+bU" 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 5A43JubN3595039 for ; Tue, 4 Nov 2025 07:36:37 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= gxFt64IACkHxpr/2thDxM/WcQ6QkXbNtppEqSKeog5k=; b=gRLFyKFoedAq0pny j06WhMdkTlT6XFOan6NBY2X0VZVP0BbPGITo6OkZlsbCvuRtNXPtt506MWGIOtAk gUeyqBllUx1Ei8HU7xtM882kHbDgXZyMlfTWn2Uq44l6C+/5iSI0BWIB/qLZZ25G Bu3iwJPbVkiMKHXgq+Df0ZyuGQ7oaFni22mrOTgWq+h4lVo+c1eFYcRBk+XUDRsC 1VQABnvu8kRec9U++WSomA30ETBA0YiiQk9pl+vvfgeM+uiDCSJjQSgUBV0+bDT/ TzMl1dTvJWaHU2Qb4njbpYS/RssbvEQ1JUBkO2UqxXdA7cOKJDQj+ZdAEQ7PQlF2 ZRzubA== 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 4a70exj352-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 04 Nov 2025 07:36:36 +0000 (GMT) Received: by mail-pf1-f199.google.com with SMTP id d2e1a72fcca58-782063922ceso4923827b3a.0 for ; Mon, 03 Nov 2025 23:36:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1762241796; x=1762846596; 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=gxFt64IACkHxpr/2thDxM/WcQ6QkXbNtppEqSKeog5k=; b=a+G1o+bUgNW8p068995cRol32wUn36wHZNFPSGcg/4BSHDNSPoHBnImNEA+4DyOSDM hVxTIzjrxIYzXwyYLAxZ8jmDK5jpSzfTx5oUTfhdFfQJCJNcJ5ML9Why+K3mlO7k//5W p5d06cqFvl5MDrcEsVyx6z6X5BAuDAJL6HIS9gQiqez45k5fBW0lv/WmPWg4U2iD/8JP Qr6tHs/1aOhxKsDJn3mhdc7V0qwWFUmt6G0bhWFwPnoJiHvJdpJneK7JT4wKGmMWjToI AOhp5W3F86QY0V8E+ydG8BZ5Ogby0B+UeJMnfhw0SR7rBsVbYUX5H7SDL/F9AirWQFqW wEOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762241796; x=1762846596; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gxFt64IACkHxpr/2thDxM/WcQ6QkXbNtppEqSKeog5k=; b=HDSeFkJUCohcxQKD5EaEr80/9XIT1ftzvMINrnG6GYjQc1PSn/HeC5iF5rcscyvnPt LvzbUAWRiX5xoIAMcUGkqrwbu8MfyPPJDv6hnyAR2c1fuOhoD7SGlC90ngkU3jLQt8e3 z+BuYPSRWbn0NGeS8mUEtXZGzvx7+lAc7C5TVsPrjiCRkCEQzSuw+Yatfc0boZIKd3p2 7YlybuhLs94ZuFbVRo804bmX7QkeqwQPFbNvDzUFxcNPsgPluHNOUpMHMVKiMPY1Zg65 k9BKBlY+fEmckK8lZXE6w1fBKvJmC2WrYkWfrPdkcI4VqDH6nje6n0K1s8x7kQXJm+4n 4Q4A== X-Forwarded-Encrypted: i=1; AJvYcCXd+LaIdKoAhj449ksMdNRijCtSqvrT45kM7J4MlSvb9moUOenF3sAgSiEwHLREtanNqPmDodiUMWzzccg=@vger.kernel.org X-Gm-Message-State: AOJu0YxYD1sHOjeVrAa+dqSA7VMIsrH93JpCu3iFY8eO5WsPr0x1E8Q4 /MM7/Y6QvQkouJAajr/b5AiDA1jRcNDnx1h1MDoOoXyEC1mXG7lyEjSIcfGajUfIt7Au7WegIWl GJTftxc4mF6MB6FOZWtXg73PKSqT2sj8iRy9nOmy046h1C8Vu/t3jZbeCl348SVXxx5k= X-Gm-Gg: ASbGncuzkBbBPCO/aCTN8EMdD5+yKAn1Do+9xpcKRMqvyewkR34D1O3qhZaNOPROhA1 JvheQkne1ik7/BlL13Tm7E1mtC1ga9m+RlXfPUSPRw7ASvFOu5wNAJbF08u2dzEg4XLDJC+nbv2 +dhEAZWCme/gtC+57M4x4cXC9T81Boi2MBrVyzzFnBwcO7e1W2pxQJJzw4JGsCvW/lmLAw/rGle zQhohJ7o8kW+sjt/p5j7ViIb7oHGinVSslFKQ3RGZXk5pjpo4Ap+3t/dlmoXpAh//Ap+pJKP0PB HjMh4dV87AeNX7XPK0tLe3o13c2ZMyUbUcw9kgpwHbcFSUf9LaNGUUPBChjtelXt6HJRh1sM1TZ p23D9UgmPXMe6ns38SsU4h42N+w== X-Received: by 2002:a05:6a20:12c5:b0:340:d065:c8b3 with SMTP id adf61e73a8af0-348cbda98cdmr21785730637.36.1762241795986; Mon, 03 Nov 2025 23:36:35 -0800 (PST) X-Google-Smtp-Source: AGHT+IHVkSheBD7jeuhilirZUvz4pmc9UWEEngpenb1X47kZBC/NHbiFgx/oUSc1WlDbJCoQcZtLog== X-Received: by 2002:a05:6a20:12c5:b0:340:d065:c8b3 with SMTP id adf61e73a8af0-348cbda98cdmr21785688637.36.1762241795309; Mon, 03 Nov 2025 23:36:35 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3415c8b5cfcsm3484367a91.19.2025.11.03.23.36.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Nov 2025 23:36:34 -0800 (PST) From: Mukesh Ojha Date: Tue, 04 Nov 2025 13:05:47 +0530 Subject: [PATCH v6 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: <20251104-kvm_rproc_v6-v6-7-7017b0adc24e@oss.qualcomm.com> References: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@oss.qualcomm.com> In-Reply-To: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@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=1762241765; l=3481; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=IgJd8v2AuQ5h7J9K4ztsTFSTdDzPjtfIhiy/ExbSkDc=; b=Bm73j3i+o6j4OtiPbLXW3vsi+2tK6G8GxXt4XDvXWtTLtZ0RPvKnvXAKzDcjI4gh7aR/NX9zz Mc341T/9vnQDSyCvfDJ6rMSwdQU6/A0rOHkKsXOYsaJqDbbFOWbk32V 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=APHuRV3Y c=1 sm=1 tr=0 ts=6909ad04 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=Z4Sw7GGoVt5sTUwIiKwA:9 a=QEXdDO2ut3YA:10 a=OpyuDcXvxspvyRM73sMx:22 X-Proofpoint-GUID: I8m0k5tRfpKrE9RB-c7Pykt2ThiJuXuy X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTA0MDA2MSBTYWx0ZWRfX/CKkTixJEp2v I9BtIhoPxYcc9H54Aa3bv4UpnszmF9GMiT/eS5Ay7BRUcu5jCi6lGEAs0j+IfoRjV2Lyuq0oWCd Uy4A2WP0mDmcXuyYuVWl7P4Dd0WZvkyOFJs/Vl6KOOlmPPYWU/SrOc3RU5/nGIR6XY62IwuCDde hyT5ra+HK7EBzNE1MnugJqaEwxKsHKcmOk8GxqZl+5h7Im7y1yvKZKL/7QaMVaqD9hMx22dQTfy YsX8t84HblI62S3hEQpOH59/2nYh67WBOVdDzhvT5+/aCF0PshNkK6q08+VgzbFlPZzpe12YyJP /mu1f67CgBcs0+5CMiJbdH6tMhJpS3A01w9wqvYvnhY+dHbkC0LXg+fss7xGtq5A/ywDBGUnv+N 9cjjfTOEJdFObqV9s407hegpjQ9e6Q== X-Proofpoint-ORIG-GUID: I8m0k5tRfpKrE9RB-c7Pykt2ThiJuXuy 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-03_06,2025-11-03_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 clxscore=1015 impostorscore=0 priorityscore=1501 phishscore=0 suspectscore=0 adultscore=0 bulkscore=0 spamscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511040061 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. Signed-off-by: Mukesh Ojha Reviewed-by: Konrad Dybcio --- 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 Fri Dec 19 07:50:55 2025 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 0CE7F3016E4 for ; Tue, 4 Nov 2025 07: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=1762241803; cv=none; b=m8K6N1XCMt8umXhh++N8N9HAQWsw6hDy5RGKP0rpDMT3s9Ru4Q09YxpGasOTH9sqiTLskkcjxLyNdG5l9OqCINA6OGocbigpb6XguqPaHcsOQJWHvuf3A4FKYC8yZYHzqzgoU5zO0+jHlzNKRXIVBAvhGxSH6ZznE0yIgtQjmsI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762241803; c=relaxed/simple; bh=f7VXfKs4se9v8TY2Jj18kfT0kRZEWFOC/ZbGamMdPyQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=WXfspmlOf+K7Vsy2w3Cw2an6LoMlvOkKKnbV9wywH7BhF7IhDJBj/KHsAWF36nkM5wccbK7T/3l9oUPiC6PUy8CEiwYCMMU8MYRwDQQrSGeBzfqWGQyQj+m0aPUFLM5MsRr6+IyZ/YbPay88UsJhsAuC7H4fBrINXQWhD+heErk= 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=mH8u2Deb; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=QSOwch4W; 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="mH8u2Deb"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="QSOwch4W" 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 5A43aefg3846633 for ; Tue, 4 Nov 2025 07:36:41 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= u8fTGgl6J89LxhsYpqGgdlY6OnIJwv4clHy1l+1tA0c=; b=mH8u2Deb5UvvFkEK jK1hvA2jxW67WCsQ5HbUhzfEzLMr/kK6bZ/kT9QJ5DEIH6L0PnOiiYxYbeon3iuU k9ikqF5STHn2EKxZe5bnFulqtZeY+EDKvUbT4PBhVymKrJCCfAW0k/LttM8WJrIm scZDHb2b+xztO55aUBsDfUv6rzeNbnCQkSf9HlJk52Uh8n2MWbzz5XB5wQerIigl 1BOFfycZnlvmK+yy870BXjWmTbUufgqokcrzMyCvHn4Z4ZSzvVKZVvM7XvzThxJR yqychzZ5PaZ4PZKpoidnS43U0kuaQDqjfz8yNxev1T4PkAB7Efec3Nkc7vBKEkzf MqBzZA== 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 4a70f1j3af-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 04 Nov 2025 07:36:40 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-34029b3dbfeso6498723a91.3 for ; Mon, 03 Nov 2025 23:36:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1762241800; x=1762846600; 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=u8fTGgl6J89LxhsYpqGgdlY6OnIJwv4clHy1l+1tA0c=; b=QSOwch4Wc7jNY9/D0Qm5PqRT5BYm2sql1u5vZlbCK5LshksP+eY8PSfPozBodI/k2E ntlulBBASvXdi9PtUzoezwM495m0DONz52W5lGVCx7g4FaRE/LNea8+7ToSg7EQgGOU1 7IWM3dgxSAX9TriKcm6VKyhoiaW6iU4FbpDBcGGtkgP0aJPIA7j4tixqYfoFdH4EHeGB eaFY1ObqyDMpsnFYB8OOeo/KLgmFRYeNp9NxHoi2jIc/Q9UyuASSWmLaHey817MZ0rY5 EkVcCEvMLukSLKKR03YOCL6BqHZGNzPnREU8FMpdVOXLo8h524/1vvwDYuiwKxkkntFG 4rpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762241800; x=1762846600; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=u8fTGgl6J89LxhsYpqGgdlY6OnIJwv4clHy1l+1tA0c=; b=JF96Do3YKj/I4qlxWwIyjdmlxFZ7MimE0bOirn0oXl4VGTR//KvwCh8OnFww/PIpyh cNqjNJPy5DToQUL2HIJ+YwxvgTnVvUC5916Ac2ab766/mfQJ8CjOPgSz0+mj8kspYALc ZmsksyolKQrkwElKyGqyWvQE1/6Khah2dnNQ7+a4uEIjVh4sXwDNnAGaOjakTR0Y2c4p MDoPeQJ8kaNs9b3UwuFpb/CVy5sU5jcl8zw24xcz88jgF5Lz6aTYkLP5RoQf9jdDHd2p D0yVabo42TRJgfaMZuLf1HALSwJDFGQ4EOSAwhkp1LVGi1hpKp8CBXt30678yKI5ggtQ fySA== X-Forwarded-Encrypted: i=1; AJvYcCU+Nq2OrEWjmWz8aZAowPcpSO+pgy07grCB1NghsLKUn8KZplJVC3wrz+3TWOZK5EINb3B0sN6Ex+Aw2os=@vger.kernel.org X-Gm-Message-State: AOJu0Yy2WnV6PF768JeHLDvI3Ub5709WkZW5JhTUE/A4kp23eMKx/yVL kR0SySI9MB6uCvttll16I4jz/jOacT3ZeAoatbmTZ6ZNfFMnAeWNUUQES6mQL7IV5t64Y3PjhgU C3cJUV3T7w/jw6XyikGdE84vwetsD8/+fGNdzcaQMZNiSvyBzlTZifaFq03GjazB3iA8= X-Gm-Gg: ASbGncsPCWNpKaemaJAGwqDP+oaeVaWIlnMBgRrE5jxD/GhpxdAMOYNslCfbMGgIisv TKgiyAPB2OVsERHKrB0WM6FzVP4nFso71+5ynw4QzL1CDdFHjAekK07yFbQqYZqumyoiTww6pbl 3/441ZZXw5CJ6+NOty8TazmVaSHfDqwo+IdkSWA7w/9uRx6HA0hUMRtq70TSo2ajC/rIMrqNGC4 nyUJRzPBi/fPvVfox8imQUvJJ4kPhxs+puHigPJpEnUrH0y34OJ4Wzudtr/mPNf+pr+7kXV/XTu BVf4I/P4lh6Sn3iG0yPZnJ76+EAEB1RNyRyOFpDGbt0Mccit7i3P2Ty0sGgPF02Ym3EqIgqllac AzVCQgpY8q8+GNODUZwu4dSj6UA== X-Received: by 2002:a17:90b:2789:b0:341:88ba:bdda with SMTP id 98e67ed59e1d1-34188babf0emr578034a91.31.1762241799762; Mon, 03 Nov 2025 23:36:39 -0800 (PST) X-Google-Smtp-Source: AGHT+IFyebbjIzDryaQRpDZJO+LTJ16iG+lKvxXXGziZyVCKMfstPlAHg2easMtTJQXVyofBYcO2LQ== X-Received: by 2002:a17:90b:2789:b0:341:88ba:bdda with SMTP id 98e67ed59e1d1-34188babf0emr577987a91.31.1762241799006; Mon, 03 Nov 2025 23:36:39 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3415c8b5cfcsm3484367a91.19.2025.11.03.23.36.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Nov 2025 23:36:38 -0800 (PST) From: Mukesh Ojha Date: Tue, 04 Nov 2025 13:05:48 +0530 Subject: [PATCH v6 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: <20251104-kvm_rproc_v6-v6-8-7017b0adc24e@oss.qualcomm.com> References: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@oss.qualcomm.com> In-Reply-To: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@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=1762241765; l=4512; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=f7VXfKs4se9v8TY2Jj18kfT0kRZEWFOC/ZbGamMdPyQ=; b=XBh4X15hxAfOK2LhgsfA//Vzq1ZgSEXmYNkLwsE4R2bb3G3eByKdNddJDYQKp/zYnZKuE0GN3 GiSdvHEXbnTAJovzlBeBVkBeo85kBtdFfYBtgZw2iJTbzLVmaXuARzG 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=JLQ2csKb c=1 sm=1 tr=0 ts=6909ad09 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=EUspDBNiAAAA:8 a=XGel9bHSJmg9pP0w-tEA:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTA0MDA2MSBTYWx0ZWRfXyC5Ugcqil3Ev zRqtSDuWoJwXyR/yhCoMfSQ4S9fLLwIiBDEAT885SBPuac8hrRYHafhy4QqXt8qwDW0sGlaeGAy drNGAeaRFdzSQV9u+mDy7+zzdIvpBtawmo2rwRUCK5QX5Vx3d/1A5yzYbjvYSWSIjbWgdvP6evJ Cmc5Tm1YVZeVe2Tjgra3pLc3Tfzo7IlTo1P3SOvmQp4mw8Jx53DtxhTtFd+y31Eh7QdjhPBwl+f nla8416Dgg/jfGrGCzbS7dSsCRVi08ehF4JIxxCDD1l815Dg9YvNdamUTRx3B4+V/gWeEYd1+F2 aug7M51Ibh2syC9+JXFSf8gdGw1aJgGSmfuxTpuCP0XcsuQpLX6sMiUwBF6KpMj9ObYIjswaomf sBoWDakWYnah7qrcf5AT4ZfYsshqAQ== X-Proofpoint-ORIG-GUID: YgrObQdHObMzCTXz7xFQGlcoysHHTC6O X-Proofpoint-GUID: YgrObQdHObMzCTXz7xFQGlcoysHHTC6O 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-03_06,2025-11-03_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 bulkscore=0 phishscore=0 adultscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 impostorscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511040061 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 9cdd152da592..283e6cff550b 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -772,6 +772,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 2905587dcd17..345ddcd53b42 100644 --- a/include/linux/firmware/qcom/qcom_scm.h +++ b/include/linux/firmware/qcom/qcom_scm.h @@ -78,6 +78,7 @@ struct qcom_scm_pas_context { phys_addr_t mem_phys; size_t mem_size; struct qcom_scm_pas_metadata *metadata; + bool has_iommu; }; =20 void *devm_qcom_scm_pas_context_init(struct device *dev, u32 pas_id, phys_= addr_t mem_phys, @@ -89,6 +90,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 Fri Dec 19 07:50:55 2025 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 E25AF30E0E4 for ; Tue, 4 Nov 2025 07:36:45 +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=1762241807; cv=none; b=FvFVF4iTDqRnmAsfiAaS3Yhp7Mvg9nOgsayuCT3viuEOaopXoH3NE38bUp1dlqMzGrlA5FWY4wejfrkjxrYfWN7pY8/SnJbVC3Ip91z1m1wJAR+KSQFkOi/uO2smbXHEiv13vxJEco5uREqeF6COUSGSVcZm76qz6OgVsWYGsrQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762241807; c=relaxed/simple; bh=PbJrbcMV5OQXvUmba6W2EyJeHOnn3O6dM5VwlxqyAHE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Fly1+PnP7MRiBNd+O2zl5Fb9cfQxIZNQchACbSleqklxj5EqQuRtI81fRcqI0MmiaWi8LemA0nksV8A8ZBiRG6ldqSOVB8bk5X/5JIZ/4j3KGsneVdWeUh53DicvkAauK82OLmC76rbonJQ0h/fiOtOHVK8DbTFdhZ5+/92Sczs= 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=lsEdF8u3; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=gWwRc3Rh; 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="lsEdF8u3"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="gWwRc3Rh" 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 5A43Brvx3845956 for ; Tue, 4 Nov 2025 07:36:45 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= kPbFoot/G28aWoO/MaPJmFPz/1E0upU6UFcMCVJwwY0=; b=lsEdF8u35QuGb7pg e9Ev5GMrk+jyYFBchcFJnFqUqd2O6jvK0Rb9mHKn3WvgoWd4827HTqBJhu4u/OoL IWPbRHb5KBaGWBCSAKRrsxy2vBIa53aKJbrlPxpohF+BRm5v3ZQIQ8/k1hrUNuLR mGc+ZSojtXqtIFkc/su8TOJ3GonLr8I1SrLUWUjqbq1gLxT8PVx1XXhViIRCQ4GR +RKUPi55CG4Q8Gw5ixbP+MP10SgyJbfFTYvDGmsrkGlEK6leHaGMJVUXMMx1QPHf gZ84nwc6NDG3kriExUWdnPgfcb5xqWCjWEiQWEKxMekD77/kM8tlWKNpO1tB5BTm OW+nvQ== Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4a70f1j3aq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 04 Nov 2025 07:36:44 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-33da1f30fdfso13654269a91.3 for ; Mon, 03 Nov 2025 23:36:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1762241804; x=1762846604; 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=kPbFoot/G28aWoO/MaPJmFPz/1E0upU6UFcMCVJwwY0=; b=gWwRc3RhwwgubIlnuSGj9TdDMDAypTgDMGwToV1EbOb3xot99LOs5IajyeMVW1stv1 BhjNf6fNzcx0yPhe9Ai1uqyF0H2vAmH+eDIx3JluuYpb6dcFLK/5CKm74oDlTFUFa0Tb IMsm4xbWYsQbEj4+SKDki2bbUi5H7gJrGS14gUbdK5Z5nFbio2fxuUV1ppCxPZk52J2g xii9mIPjaRFkB+Trs7hXDYhcOxb44w2A8x33JbX2iCcRtVR/i0Y+ZBI/jPEK7N96gEno 1/rRrVvKs5k6iJGw/yQw62oZuYaxu+OhYZXQLY/34XvoXliPNzMPz2byWEGdFQiaEcCm Yy6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762241804; x=1762846604; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=kPbFoot/G28aWoO/MaPJmFPz/1E0upU6UFcMCVJwwY0=; b=minCtJNCZ9dRtwVh9VFMh3+ffhCTzTOW3pbqozBe1X5ypX0Owgc97wlj2yxg5E7DPx RiJdMx8jI1oD44SzpdYfZit3eP7B1lOW6zxCTBmX1rNOuNRf72oE0XPGeHbfpDqkrzbz xXwiY2JcvxL+JoaZiyWoYZNS42wHpUVqyqJrzy/ymTkUKuDFo+bjxntSqcEYlwEkWLG+ y37pGqzuYcwpHf9HXuDDWZA+HnoYPhiI4Jt3AF2nEtxYfWw6Les3iTgGelHQHRGgNC3A njZDDJoUshBNYlIR9v0eMjqgDhvVrAwVegse1F7ROUA5paE0S8XNWe0V23k4GIJ3OtrA TRYg== X-Forwarded-Encrypted: i=1; AJvYcCVdm7avnr7fxJ0yCraSV59kVyDK3qm4oIQ1Ob9pBJGO+MJBRFZDcM+kIjSWkE1hRsjsTGTjeYmYgDBnsEY=@vger.kernel.org X-Gm-Message-State: AOJu0YyMU16S/EvdJpjIlJRaBot2jZxW7sYpg8BCrV+woK14TduryI/t R08CpYI+1U+X/w0DlQ748wvhbdaCAEQTpG9/B5sRDR+ID7Tc7y7CeZRrqsallP0JZqsf9dYmV2M 7jkwu4qHW5dPdlCZMCIM1dTBB0WMTnfHsR5cnp5hzlIZ9v2G0tvy1Ay8BZM5WSXxY+iY= X-Gm-Gg: ASbGncvpCR+RfvFPf1eAaOH6JJtUAiLZlWuAEf0QadA/Uftq+PtqetHyGACB278GNjn qGhm8vDwxYNld8euhEVKMv781pFJjIUWW+7KZNPoSEetgMsxwy6SuQ9Zj67BNTzDcc+mulLDMKQ t/p6HhFaRE+G+fitFXo/DoUM+zQy/SZBIFvrQu8kR3T2cp1QK31g+EjbhLOtqDT22Y8+qZIJeIK 1s7OTRYW1x/sMT9oyF6hz+2Iv+CFbGSbGfD5EFws4hbuYNDkLDZurnT4HbhboXTdotouUJ3glpi rcA5/e+Fu0o4et3K9X+lTJqt/Krd1ogrAierdnjG7V7Vd0cLPdGXaFZW5tBfPc8qotqCLI51vwt wOKHWtLkB4ub0xHTdoYCf6jl8eA== X-Received: by 2002:a17:90b:2652:b0:340:e517:4e05 with SMTP id 98e67ed59e1d1-340e5174ec2mr10690603a91.12.1762241803696; Mon, 03 Nov 2025 23:36:43 -0800 (PST) X-Google-Smtp-Source: AGHT+IF0poKGRTwX3X1vXN2ehIc/WfMWsh6tS+a4/ooPcVm665vDtBh4mGQCgYtkQuMf+iUIWBUX9Q== X-Received: by 2002:a17:90b:2652:b0:340:e517:4e05 with SMTP id 98e67ed59e1d1-340e5174ec2mr10690554a91.12.1762241802996; Mon, 03 Nov 2025 23:36:42 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3415c8b5cfcsm3484367a91.19.2025.11.03.23.36.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Nov 2025 23:36:42 -0800 (PST) From: Mukesh Ojha Date: Tue, 04 Nov 2025 13:05:49 +0530 Subject: [PATCH v6 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: <20251104-kvm_rproc_v6-v6-9-7017b0adc24e@oss.qualcomm.com> References: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@oss.qualcomm.com> In-Reply-To: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@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=1762241765; l=2861; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=PbJrbcMV5OQXvUmba6W2EyJeHOnn3O6dM5VwlxqyAHE=; b=Mhc1hm2OcwjJzV543dwWxcWQUiOOgPbo6bLHA9sacoL8aRdZl3pwmri4h843tmt/2JVZ1ZPmU s7cbaw4dYQxBsqfRnM9g4oYpgJnm9oy7TTk9ljOiTkwzXWI4GJdCXHW 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=JLQ2csKb c=1 sm=1 tr=0 ts=6909ad0c cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==: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=iS9zxrgQBfv6-_F4QbHw:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTA0MDA2MSBTYWx0ZWRfXxjf4oEaJhS5Q AUS6Rq8dglmBbyQbPQ8xVqBH/E2AJRL+WwUOy6H64ABi1TRzBBDLL8TcfLnBYMFd1nsE+dB7dTq ydz74VvVee+8itT1GZbV2UC0zo8rLzE3F8x03ZVDNzNELQ6IEiSMNsPaO28/ecU0LbVMGJDZOfw 1SoMiSNxyzZByL6ViCIHKAM9WM9j9js+OJuY+GhhzWkYmU2g9TBt+837hX7NC6tm4RU6s3VpO5F r1d3etpvsbrvRznrepL/uw1pI9nlXdAZU+jvb2cLYK30jUfbaPUBuAficwwz7XlpZ/bH//AGCTw x24qfdNB5EHFv9/I/4rkM9h+UJDGn7E+hul3aSsk3XUm442FrULE7N516AADQ+LXTzjKvxUgTea 7hzOPs1hNWAWI/Y/3pJ85qQb79+x7A== X-Proofpoint-ORIG-GUID: Im7u69zEK9sKvgYdQBkF4TuTiX-3DGTi X-Proofpoint-GUID: Im7u69zEK9sKvgYdQBkF4TuTiX-3DGTi 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-03_06,2025-11-03_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 bulkscore=0 phishscore=0 adultscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 impostorscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511040061 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 Signed-off-by: Mukesh Ojha Reviewed-by: Konrad Dybcio --- 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 283e6cff550b..aabdef295492 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -594,6 +594,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 @@ -615,17 +646,10 @@ int qcom_scm_pas_init_image(u32 pas_id, const void *m= etadata, size_t size, struct qcom_scm_pas_context *ctx) { struct qcom_scm_pas_metadata *mdt_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 @@ -646,23 +670,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 Fri Dec 19 07:50:55 2025 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 D026F30E843 for ; Tue, 4 Nov 2025 07:36:48 +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=1762241810; cv=none; b=uEAL1Ciy9fHPPISY+eCc70biubMM3JdycxQjJbFWKQKhnxj0sTEIhjy/ZTAhLVJvDFZRwLGBO2Q/9cfzQUPWGCFZhYDnEyiSDyRdnnJIEgm40pjl0f+dsdEKA5nYP3Q2ibevQ2xlDJDkqWb7zAoiwmxDRLj4Cc1a+pJr9FdXSjE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762241810; c=relaxed/simple; bh=jHKanraOrHEA4wVchAje3yOn5cqKuVeh1+NXKfMc8NM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=uO1HSCFexVuER9Q8Q5kxAULRiTJ/JF76iosSsfVdTr3LqLXt7AeJRn7NqLqwUKLsozX+3L5vDOwAUkwhYYXlCM+HfvosVrvgBmA1a30xkNKsIBbW34fXwveAWqPVZOpNTcvy1IMgjp1pnkNPW79z7eFyfjjim/BAGOKDPsfcRzQ= 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=Wzo05kZz; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Qqjl9cL8; 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="Wzo05kZz"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Qqjl9cL8" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5A434hwY3616705 for ; Tue, 4 Nov 2025 07:36:48 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= HeYU+B3c3Q+vTu3kdwO0nN56OnhgVZNR+2+kSV51GUw=; b=Wzo05kZzmTnI2+T8 t5lax0FDgDvSLdKuFTkLC4RmndHp/FsEkLv3g9GJVRnRWi9vTZitYsI3t1dobbhU wZCuc9m3j/pBR2qKeYT7rpoMRD3EtezupynesTVUP7/ii1xbOvyQCc0D4nBXtTiz NkXugQ8insiUgCq/hBLLOTSllylMVMcv2FgIDxoVgGE0hdZJN/JSCY1YR4tGyY0W H3KUBLX6JiuRyuEUc52ZCQSZOs5mJU++iuz4Os3TSsERbOCd0PKUGnbQ0mNV/3CE /YZHmiL5FGeQkQ8NW/Q7uOBuAKBihwM+EvO0a01vYdeEhKrGgVIWZYI+xmQNRTBo qYG3zQ== 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 4a70fht2yc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 04 Nov 2025 07:36:48 +0000 (GMT) Received: by mail-pg1-f200.google.com with SMTP id 41be03b00d2f7-b630753cc38so9948917a12.1 for ; Mon, 03 Nov 2025 23:36:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1762241807; x=1762846607; 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=HeYU+B3c3Q+vTu3kdwO0nN56OnhgVZNR+2+kSV51GUw=; b=Qqjl9cL8JK3NGIE1ilKJySal3ZG/+uNgqgGv+r3dmyiTRa4beZ+6MQ9JpgbxFVspeM s96dqOzhWMVNWXNzxT3ORl77Mpl4VyvbCK/ZGGIj3rf/UIFiTgmP2hFQt+UtHx4EjzEH xtyQj9P3WOHUno1d2jODyAq8MRyvN9uFZr9VoERoXOREvH6il8BFPNCEaWxcjCkdzvGM C3Fe4b3KKb07uIDz0Ql2ByQcOPcjOR/ckXgQkpF1IpBDi+SP5x8blWZbNc+D72FZ5DxU QOcGtZi+YPljvGqTMMhJWOKDjHoufK/csQknG6VRxgX1zgX1ngmlF9XepdlcN0qLmHPU bpWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762241807; x=1762846607; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HeYU+B3c3Q+vTu3kdwO0nN56OnhgVZNR+2+kSV51GUw=; b=mlH60LzQlQN241A+Cq7TwYtMHAduMgawV0gZaczDG1QH6+OGe6L+rIVRQQY6RGbo44 u7xKABPYj/CueizcUOrPYChFbsBxziBFwug6nSGKi8ejsq1DeK3u/ui9zEv1JqyZ33U8 2iSgDFhEbuC5qJ+4DBTIpMftU+qnCn9Eo+oD5OUxo8lGxx+Zw5VWQiWGtNZVVMkZvBd7 WkKg1mQ0f8xfrD6bxa2D7Xt1ABC07CyPpoiozQ2qg2siHY0AiczcP7kcZo+FLyPArzpI mAb4D/mywRCEYik97WIDOf3gi2V0YoVhTxP+yBejME84UATd8OL5l/YOGrWZNtezFAfu mxYQ== X-Forwarded-Encrypted: i=1; AJvYcCUla8DBpH/Xd2aQw2zHOjESNsiKh97KPXRBaSXzf+rUNqYTlXPdaldHrD65qMUh3mwFwMJ4n9ddl8EOM2Q=@vger.kernel.org X-Gm-Message-State: AOJu0YxaileKnrQZQ4Z1fD67oxNi+wI7Vqfd6ZUjnLOQT+W7iZHBj5FS EE5mLGhooumi2iSWRU7PCFXQzdaayOaIrOlY3rKt+110sQgE9+mi0lr6qOkFM0XpwxULWj0QzbV lmQDhZNCKNFkbs937CZ4IlKu8h2Yg3oqeV99XGqxO2WQzHssbgzOQKBhnZyG5cQrk+w/8dd5ezC I= X-Gm-Gg: ASbGncvP3jwf5JO7vHq3xPBnvR+3hDHexoLVAsYdYwAN7XsEcpVyBSJNU4ln/Q+8T1L kpSHDfxWb4PvrisApfDeiGRVIo4cMIpW9mskr1M8UjoH3F3+0BzMUct0Yj/bMC9F201oFsfyYIN 7qBfNu8lwF2fIBSSP3lXhhd+FSmCtRQCy7K9zmnjDdNBorTbdoTZnG8SkBjIKVAV+naE1jFI2pO 4CZpoPnXePSvP6Z1UIfiWUPC2ZA9ttAVORXJTsjuKEp/0ILG/SV73sJqRWHI66knwyQaYIUgtmG erZCim+yEUHdyIMqceoTK+DGEoT1u5RNaKFPuS28yi6nDw9LOEDX9CSn81O4ixRc4M6OQdH4JTW v4cFjFHaD1KVRNrWIUlV0ogGduA== X-Received: by 2002:a17:902:d4c4:b0:295:9db1:ff32 with SMTP id d9443c01a7336-2959db2085amr109034235ad.48.1762241807218; Mon, 03 Nov 2025 23:36:47 -0800 (PST) X-Google-Smtp-Source: AGHT+IHpfEAN1PLytB3qEo/p/sLyJSXLV9KSQt6TqyGBqMolto056kpsAwVModwBzcd4TQPHOTiYog== X-Received: by 2002:a17:902:d4c4:b0:295:9db1:ff32 with SMTP id d9443c01a7336-2959db2085amr109033925ad.48.1762241806615; Mon, 03 Nov 2025 23:36:46 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3415c8b5cfcsm3484367a91.19.2025.11.03.23.36.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Nov 2025 23:36:46 -0800 (PST) From: Mukesh Ojha Date: Tue, 04 Nov 2025 13:05:50 +0530 Subject: [PATCH v6 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: <20251104-kvm_rproc_v6-v6-10-7017b0adc24e@oss.qualcomm.com> References: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@oss.qualcomm.com> In-Reply-To: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@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=1762241765; l=2601; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=jHKanraOrHEA4wVchAje3yOn5cqKuVeh1+NXKfMc8NM=; b=fdvnZ530B5W8QH0VYExztLyTq/xmlM9pRXL2DXQMcol6tCs+zK86Y9+d3dS/Nf5PR5x0xEuGt mLjGZT2lBhQC+RLOL6O5uutQinWdojKunlS+iKFt53e0PWU+3aiGhVb X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTA0MDA2MSBTYWx0ZWRfX3v9o6RY1T2nG HV4u61/QnO8vQBdeXA82Qnt/QQATgdV+cvtGlbZ7qiyisacnh93ktFgp2XIPF31j4cbaCc3usl7 NqFCz3gxLU00rZ08TMJm5WOneEJZaxsbb9GY2pH12pKZFDmFI3nYLc9B2kiVNKXqWLRiViTy/KU /mQskeZLjLs2O6oWYx3SmO5zi8Jo5eiVW0vJpZulSCZgRhMR/ACFXiL3Sb5zyHIiZcQvn6O4ldw zTn7464mrzf8NgDyIbBF4/moX4rWXX8ZIqjZondIGlVNIg7Hk5eXznL7MJyJbzoT6Efhx8vWXaB HzSSyjvnHn8j6JFyk6KCTWfPrDH8FZvnnSP9k8tBIyBcxfaG1v061Xj+1qGXXUe+X9sqqNRYEF4 /3WQXOfETorVKFf9t83i3mFZ+70XhA== X-Proofpoint-ORIG-GUID: TUYb1RTi0mfyaXLS7ABuHG5NKpM8kACu X-Authority-Analysis: v=2.4 cv=CbsFJbrl c=1 sm=1 tr=0 ts=6909ad10 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=08WIqK_J-xaQODWVIAIA:9 a=QEXdDO2ut3YA:10 a=3WC7DwWrALyhR5TkjVHa:22 X-Proofpoint-GUID: TUYb1RTi0mfyaXLS7ABuHG5NKpM8kACu 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-03_06,2025-11-03_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 bulkscore=0 impostorscore=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 malwarescore=0 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511040061 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 --- drivers/firmware/qcom/qcom_scm.c | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_= scm.c index aabdef295492..9d3e45ec73ac 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -625,6 +625,33 @@ 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_pas_metadata *mdt_ctx; + 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 { + mdt_ctx =3D ctx->metadata; + mdt_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 @@ -651,6 +678,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 @@ -696,7 +726,10 @@ void qcom_scm_pas_metadata_release(struct qcom_scm_pas= _context *ctx) if (!mdt_ctx->ptr) return; =20 - dma_free_coherent(__scm->dev, mdt_ctx->size, mdt_ctx->ptr, mdt_ctx->phys); + if (ctx->has_iommu) + qcom_tzmem_free(mdt_ctx->ptr); + else + dma_free_coherent(__scm->dev, mdt_ctx->size, mdt_ctx->ptr, mdt_ctx->phys= ); =20 mdt_ctx->ptr =3D NULL; } --=20 2.50.1 From nobody Fri Dec 19 07:50:55 2025 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 706D030E85E for ; Tue, 4 Nov 2025 07:36:53 +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=1762241815; cv=none; b=mGi9ZzZOCDpOpxs5r/HnVe3Wk+p5Ux3WmK/29Ci9+mznXR0Yefgb2sNr8PVLZZEf7fQlKwfJVuGOT9OlO4oMBqVZmGZaanYi/M8gWdyb4LyGnVxJ4MINQhMMJiUv3rplQAx7k2xQva6TXPT9EvlDWAgvDwdiWyO/NOE4kQyOa2k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762241815; c=relaxed/simple; bh=s7s7sOF79lQQCASxTvnJsYq2tTEsPAx3qwKM1EyhZCs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jzBjJ3qhBO9xeaDC29/Efig1EPfJblNeoiMjMcRvxXyHkGO3GIC20SCuQyN32w5FR4rZvur2GGMLhdXBShV+FsnFETcHKdH+1OuCskBwldm9Kn3Fh5exc7HAtYXYWrBbU27a4CSuOVUTWDcp2+7phYgn3pWhDq+heW/+QK7iEpU= 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=o4kB+Yhq; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=R/5uaTo9; 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="o4kB+Yhq"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="R/5uaTo9" 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 5A43cPlo3744542 for ; Tue, 4 Nov 2025 07:36:52 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= ZjgwmRlItSYeMiNR8SKnTdTbcpETK7V9rbhJ9i9SeHo=; b=o4kB+YhqdrZ0j5N3 boKN5FYSRnVhMplMATFbIr9OmXroOzLBLaoRm/5FBvyl30I0TjcuLJ97f0YesemX 10z+tOxxXOeT4xh5qqZtmV4ceakru2YOUdqDSKGJKvg2Pfswf6xkYf8qXoD3rIul iQGzGZvd+x3kgzQu60Z9rKfXV431ZR+6Q6S3ynrlcooxudzVFTrpFyHJhqP/B8j0 jpW/d2Ts+6rhdDrvy1y5x1OEiyd7LQ2NbowDFvdmgEg2QlXCDt/OEtjQMpmlCTxB XbhYtALj/tjFuYfPNFSgB9lwcglpBfNNwC0SB3qm4asEEbYdWOgeaKADdoTd6EPc jTJ6LA== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4a70kca3kq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 04 Nov 2025 07:36:52 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-286a252bfbfso130301865ad.3 for ; Mon, 03 Nov 2025 23:36:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1762241811; x=1762846611; 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=ZjgwmRlItSYeMiNR8SKnTdTbcpETK7V9rbhJ9i9SeHo=; b=R/5uaTo9nSOk54X5k3VS9GQCzdfcL6HB8UG1C0dsnhbMD+SZT/Yg7CjThgdGqQThEw EM19SY9o113awm6beQ+uyBbK9XTQE6oOKt8S/JObmqbGkiZA8qQM1b309Tga0cUAqiUb duNfS0ozhnQDz++S266q80w6qjqOyFfl6L2epe7KoHtn7NmM9ctGh2xfQdm768DLTR1A 8HCCHtcfaZaKqhtu/hwi/7DVhTgnkHrsuFcrmf4U7ZnmWqOyZw5NDNQQD4FCJRoqbO3b rNXCZJyg0kyYjHeVxY07ebO7Sl12mxhGLH//A7l4nWTnXDHAz2v16T4lUJILVPDDS89S YrBA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762241811; x=1762846611; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ZjgwmRlItSYeMiNR8SKnTdTbcpETK7V9rbhJ9i9SeHo=; b=Xz41hm4JCW9leNbgjP919X4PsaIgYbRv1/MTTET4+RkHgLtEWTU+a0y25T7O55xGBR W1EpOXlE8EZ0zxmrUPDDE35PQMW1xiVow0srMLWVV74JXcKoxST7rSipeA0H+ZyJx1OU hGpIV8BNiYJf4iIKZDAifnqbPTWM5I1v5UGQYbbbFzO2/Jy34buPJcylI/8AyXv32s1V MmgKX5Q+CKFYxzKl7YNgwKB36nM3pzNgpPYSYOUdHRCen8miizKFIcYYRHSJkvWAAgRB v0A2GBrKSov/2ocby+RFW6McB9Lu0vskCNmeOdu+tgxIfjipN2uPhZ7togBo5sWiSNLz /llg== X-Forwarded-Encrypted: i=1; AJvYcCW2wcZ4WHvPVA1Br040THPDtqbnz8MlQ46WBRGK3a97DGmaKf41d+NnNxidbI2Ad6yHNCws3ps/ux4ixU8=@vger.kernel.org X-Gm-Message-State: AOJu0YytK6kBeJeD6u1hJ4p6KtdnDFPHPM6WChF4LbejShtvSQ8JHfRT v6WcdaVWD8KWVc6j93ckcCwmfQhSyWTj4oGaRF8JP/7lZSm+P7PZhPgscJRQQpjonHzi4gfX+/9 Q3Y86aQpRD+gwoq6XyGWG+Rwch5aSHmeLyw319e1seejMCWQEyv7yO0nz955Y07Obb0M= X-Gm-Gg: ASbGnctAgrUgUC8zS6bUjBOePIX7a0EaMQUcq/9CLY95ACN3YTPBlD6DzYUZe2s2PYm +UG2gQDJlI4T6zXZTV4ZOH/lk1cmtNFJWzi7RjS7rR83aEdVeSXULnUtrkUVxw4S2B3CCPdIX3V +jep0l71Nht3RZTA5gqiRSbqmB1og8MGOtlXHkrjJHES8ysoxH182vt8Y0xCjyWMfOxiAOPNquh oeEoSy9TTZKOmP0+mcJMktZbZQLVWn8R/bQF6yliSmBMiIiTVIhm0Pk9oDPz79/4EfAk5Jelh9P QFq6JxpBtr+9yzxZoYI2lWwaFUuobPLMTgt0//6Wuotu7jTBWrmc8O3bWAnTskKYKUC7qOlDfyl JJ7E+1J3FjT69FVCg6XeUMqD7MQ== X-Received: by 2002:a17:902:cf0e:b0:295:592f:94a3 with SMTP id d9443c01a7336-295592f95ddmr137469425ad.48.1762241811082; Mon, 03 Nov 2025 23:36:51 -0800 (PST) X-Google-Smtp-Source: AGHT+IHiz5vTizlqbrn/gaWJE+2JCvCD4NjTSsZizWh6d2Dl8Zt6Mo+0QunSihEUJbqKbV/1j1ABbQ== X-Received: by 2002:a17:902:cf0e:b0:295:592f:94a3 with SMTP id d9443c01a7336-295592f95ddmr137469125ad.48.1762241810442; Mon, 03 Nov 2025 23:36:50 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3415c8b5cfcsm3484367a91.19.2025.11.03.23.36.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Nov 2025 23:36:49 -0800 (PST) From: Mukesh Ojha Date: Tue, 04 Nov 2025 13:05:51 +0530 Subject: [PATCH v6 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: <20251104-kvm_rproc_v6-v6-11-7017b0adc24e@oss.qualcomm.com> References: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@oss.qualcomm.com> In-Reply-To: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@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=1762241765; l=9143; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=s7s7sOF79lQQCASxTvnJsYq2tTEsPAx3qwKM1EyhZCs=; b=ylK348kSJn44nv3mHDl0bOnQoysxnQDfffV4aJDjy4fJpkjs7RV9Js32DwWvKoV+RpMAARAz8 teLyIO/474pCLV3AcILTxe88Vn3tJlZg2gkXbdwMFH3tnpomYxp1XiP X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTA0MDA2MSBTYWx0ZWRfXz4pszdh9tsod us0+M1yCuhbQwvTZU296/3PI0cFHpxHz8r1C/wtOgxKgSoUi+mhgeYK0Wch0MaGxX9JCY6gzEl/ dJ6x2I9Mz/3nm7U4qlIfozO5+tbfyQBuruNzGYTQv75GCcju/UXjNiAyHf0s630eScPFg5/komN uruNl8wEfMV1owIFE4tFhjsC52PjlKJ5rz8mh/51tL1iN85ILuOaUEZcBTVfN7urXkoREl3xflw VT01JvqS80GbB0P+B0LfEaXigi5IbaYDFUgjbwPxEUS9RlRWbNMIGKZC5yAu0CDdRc3jNEaBubs K7w5CiYGfqFNwpazEzqfyUTk7dz2B2TPVPOhqAnuiTOkiF+oFzmvqkYpJ9mhWmkoxYaxKAylxWU rcIVX0Ah3haHpX++i5GQrnZQ5DMD9w== X-Proofpoint-GUID: ycbo6b8j1DsDIbBiuuq0NlUm2mePHeqh X-Proofpoint-ORIG-GUID: ycbo6b8j1DsDIbBiuuq0NlUm2mePHeqh X-Authority-Analysis: v=2.4 cv=TIJIilla c=1 sm=1 tr=0 ts=6909ad14 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==: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=324X-CrmTo6CU4MGRt3R: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-03_06,2025-11-03_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 spamscore=0 clxscore=1015 bulkscore=0 adultscore=0 impostorscore=0 lowpriorityscore=0 suspectscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511040061 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 | 157 +++++++++++++++++++++++++++++= ++++ drivers/firmware/qcom/qcom_scm.h | 1 + include/linux/firmware/qcom/qcom_scm.h | 4 + 3 files changed, 162 insertions(+) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_= scm.c index 9d3e45ec73ac..5769d9a400e4 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 @@ -776,6 +781,158 @@ 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) +{ + 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); + + 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 345ddcd53b42..f19fdabaa3f2 100644 --- a/include/linux/firmware/qcom/qcom_scm.h +++ b/include/linux/firmware/qcom/qcom_scm.h @@ -90,6 +90,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 Fri Dec 19 07:50:55 2025 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 54B3830F808 for ; Tue, 4 Nov 2025 07:36:57 +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=1762241819; cv=none; b=D1lPnkswSTDTpvoqG8xRiSx8Z34OocSdN8ZG5DzyV003p22qAMh96kKu1qhKsVTB9fIYLyDoTKw8mhFqAS1VspRIGvtng/KF8tF2iY48RLlA0J8dIabQwtYFy6AIPCBrQF4aty2ggXC6MUaWrjfR4LU7jUDmLN1S7Ks4ZoasbG4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762241819; c=relaxed/simple; bh=SPbBPSi10R6lHblb1vpzpsFayZmQBr0aoeBUarYvBas=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=U3LnKRjhQl22KuKm8c088YGa+HT+HVUvNljx9AUt0QHKrlhExQfaQTmDNG5IlOl/9FUJN1kKkx5si4teLesavl7QKFNRYHlnnf0d5M/cQm1i2B2etXwmrGrWJ/lPtLY2xwIrPgVPyuapWwprs6kg7R4JCjAnHNRDmgJNUKUclGg= 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=WHAwzN++; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ITjnEyjV; 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="WHAwzN++"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ITjnEyjV" 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 5A437hga3744532 for ; Tue, 4 Nov 2025 07:36:56 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= QN79bYgLExrHMDLw3jtkYM5FTuW1mphr8s/36p5UKqM=; b=WHAwzN++1n7wudld lEIM7fj3duHH8WmYX7cxJMW7xLJnxSkejADlBtBflai9h+lYKXQpR86O3tNvSm0L unoSsXuqzRwjgOxvyG5gmPFNAKc9jk8He/CPVEz5s2QfW62nWuTa6xPyKNy0y8pc Dhb+l/+D25EhTuV2O5SM8OUENDv9h5+xW38gsm6Juj3hR6MaebxCIprDoRcYEnFN 7ilvma888vMj2ix8ss7nqjUMRa8u8xIlDRzz02XFWi3DZhJ4VSCzIkemj+1qkc1r Z3wQn3DsNv17JH7fQe1A0mm3DhuIGXormyPxC+ceIyEn4/T5dQ90Oswvs+JlQ6Di atv3qg== Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4a70kca3m7-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 04 Nov 2025 07:36:56 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-332560b7171so5213305a91.0 for ; Mon, 03 Nov 2025 23:36:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1762241815; x=1762846615; 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=QN79bYgLExrHMDLw3jtkYM5FTuW1mphr8s/36p5UKqM=; b=ITjnEyjVCb/rQ1rloRkOzTlxSmiItNd5VgYx7RxuJrGHLTSKf1ix4VOYvzx1yXnsTe pvaS4OzFEbYq7lwE3Fdm2EwKEmrFag6vS0p61e43EwUIDyuJ6mYT1WP9jrB3Bv8J52SA WutTth56JwszwkR7fxon146PvqWNltFGfDsi65sBQP9GDsVT/vJuGUuZWkUR6Y91avSF 62wzKohI5lQwC64gAnGL8ughBMqiIfUw8Q7yktE7VKD623o2O3YtuCS6/IFoft3qW1bg KijvVD86YJg7JJJvA1JiuliNvW1Ml7etVB2gw/ardLbQB+MIZucDQnzJ4MG4Ojpq+Idc LjYA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762241815; x=1762846615; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QN79bYgLExrHMDLw3jtkYM5FTuW1mphr8s/36p5UKqM=; b=kwolj9IhApvRoKlmrWE23ffyGf3015m4qf2pkVG0MDxvmGx8mUgd49YNhpkzp3Qi5S RXNa0W5mWVy7rUeLB4UvT/taAgWxy9o5URpRQ6vwd5VSxPolxngIBUFBcc8DWM6kfgxC /NicSxHS1jwLoDv/zJYdef+7Um0LrOxcosNbfJlnOD1BVjknwL811jcLJUxZHDA7EM4i p78V/zHb4CplFasicR2UGwbQSJsuwA6Xf66YRyFH+NkV8cs+uyfvM7uv1xhKYQv9yJLT CBWt/Lok/96jThvr9L/6mxZC9qVBUanEcgqjMYdYWiTSHR0VHy+cT/oTUm+8z7jbocRJ 17UQ== X-Forwarded-Encrypted: i=1; AJvYcCWqEoyyobTboOdBizX55xDE5TsLVM+vbNk/ooZqK/Z1JTjYKtymfkEy/wRdv8vp92Kh/QcDkq8bocFGEjI=@vger.kernel.org X-Gm-Message-State: AOJu0YzcFJQoOI7zCnKN+Z7b2FqE/85GSwZoAS7zN3u7HnOY/D/3zOxj fpFItKd7OxAAsKtf+Pwad23hxxMypreKpF9cpB3YYwJ4MCJhOgKDHyg6NWSzkAL6pNKsTmdwGRE pOVOjM7laNQkJKtdUcxLcOhsAd9Htei9omf5LmjLr65AFwpR1mWpQERZdKZN6fpxQzmY= X-Gm-Gg: ASbGncu+JwyrkfM3D8fo6tqrvRB8kQuJ7qjmt+ZBv2tXs1qLPkGhZreBDaV0dTi6SRb yJXm+wM+FjJypWk/hH0QEbK/qVbQFakrzGJ9ErpOpN99Gw3AnRS+C7UjipSvyybH7tPwMMihf8h +nHOiqgSixYzVe+BJ1A4F/S/cp9aRuKzafvN1oYDZCHaI9BuN1UREYTcsug09HrwEBFJuABVSb+ NqhlHt/aqltO2YNG5Ku5J44PL5qpe+JedfqsgwqgNnxbqPkr42BskZ07D9fqb2JWs+oN4tOSDE9 AI4ojX8eSVHcEW7uSDHSovIR4q7dYDBLJrMe/1kDa8RD3SUDYGadOn7IN0WJKbJ9HLsVfByny5+ pJBFDlIA9otL1QTc+NW1mUtQH+w== X-Received: by 2002:a17:90b:518c:b0:33d:ad58:cb6a with SMTP id 98e67ed59e1d1-3417187536dmr2597613a91.8.1762241814873; Mon, 03 Nov 2025 23:36:54 -0800 (PST) X-Google-Smtp-Source: AGHT+IH/DMF+EhMqUVtc2g9eEHl4gKchAJbU8OscDik87oWC0apUaH5ar1uUgv3iGcIE1UDZCfpn5w== X-Received: by 2002:a17:90b:518c:b0:33d:ad58:cb6a with SMTP id 98e67ed59e1d1-3417187536dmr2597566a91.8.1762241814220; Mon, 03 Nov 2025 23:36:54 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3415c8b5cfcsm3484367a91.19.2025.11.03.23.36.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Nov 2025 23:36:53 -0800 (PST) From: Mukesh Ojha Date: Tue, 04 Nov 2025 13:05:52 +0530 Subject: [PATCH v6 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: <20251104-kvm_rproc_v6-v6-12-7017b0adc24e@oss.qualcomm.com> References: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@oss.qualcomm.com> In-Reply-To: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@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=1762241765; l=4665; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=SPbBPSi10R6lHblb1vpzpsFayZmQBr0aoeBUarYvBas=; b=x4jQH2sLeXvW02fYEgGlcX6Tivl1hQxt/Rf8NiqrZhz9/Z/HL73VufuzT8YaDeQK2aa5DbHPT KS4CUvEtFFMCoqpVWasUPxQrRkjRII3Ir4CohYicaQ/HHgmkQ/8xHy9 X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTA0MDA2MSBTYWx0ZWRfXyH61HVBeYHod R3BhqhZXZAh/QVGdktQRsPJDeVxYMAm6pNXlwZf8k8ADxw6GFbgJ+4bLTwOv4zPmuzLynlXDtZY YPKjGt0N/QFnNZB6eJq4JoGP244Gt1/t6lCNHwAzYqgfxR/+uffnm1oDRy92RQqhTRP2nIKBcIM 0F9P8T47lqstXpz8GgDXI5qWWBB8L1ReEhgRaEP+QgF5OfmfiIgZ/Mk3zyV1bepQRD3niLNPFi5 gxAOaRhfaOX6LBiTT9ExvDgizm/CZSTQPSoh8Ok79P2ByGxnwikwlBPPeBSrJqJI5LACToJlHx6 Rxz1A93GaLj8CioSoTwevubzchvgHHeXyIzQpgTFGtFeteQ95sWByQhu0k6izHY8izXWVLdsdM4 pODNa27ijYRbRLRiDypMzrHPMX14rQ== X-Proofpoint-GUID: YjelffTUOor-OoIG4S1rkoUG99nAbINL X-Proofpoint-ORIG-GUID: YjelffTUOor-OoIG4S1rkoUG99nAbINL X-Authority-Analysis: v=2.4 cv=TIJIilla c=1 sm=1 tr=0 ts=6909ad18 cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==: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=iS9zxrgQBfv6-_F4QbHw: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-03_06,2025-11-03_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 malwarescore=0 spamscore=0 clxscore=1015 bulkscore=0 adultscore=0 impostorscore=0 lowpriorityscore=0 suspectscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511040061 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..a8d3d2e9a70e 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; + + /* + * Qualcomm remote processor may rely on static and dynamic resources for + * it to be functional. For most of the Qualcomm SoCs, when run with Guny= ah + * or older QHEE hypervisor, all the resources whether it is static or dy= namic, + * is managed by present hypervisor. Dynamic resources if it is present f= or + * a remote processor will always be coming from secure world via SMC call + * while static resources may be present in remote processor firmware bin= ary + * or it may be coming from SMC call along with dynamic resources. + * + * 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 Fri Dec 19 07:50:55 2025 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 EDC8C30F947 for ; Tue, 4 Nov 2025 07:37:00 +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=1762241822; cv=none; b=NNplW1/em9NSh7UypxbATp9D4xoSwJ94PBsPQQvwuk59kDWH/OgNDwfsQ9ZVlnIAd8CoVoXGUX3eDOS9D99GVT7PJ07sLwdzcOLYeUy2nmiQTp5KS3xLpoZH3+4USYJnbWs/QID7D2w6Qdqz+BWflEVBU4uWcUUrdLgzVjYuhUc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762241822; c=relaxed/simple; bh=WElPtVnlh+C1PSgldb6zWFPdJuCyxq0WGV9rXeZJ+rw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Yokg1orgY11Xx1z5SjdK49lks68iwXcDQSgjZyEmK9i5hK7/CEFkYn8ushpqnfvdK5kS22MNVFEE+wIc5gFpBrlT6DFyGoy1y4IDJIS5EGRJ5ALNLoLr1XPN7fdA3znDSJPHb7un8VyvkuCY7Aoal5vWdL42doeTJxbAah6ciwo= 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=iaiIhBg5; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=dn5Ryl0j; 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="iaiIhBg5"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="dn5Ryl0j" 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 5A429Eh8697093 for ; Tue, 4 Nov 2025 07:37:00 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= ttv0A/uYCNoEfTOIueJ0Teu2hpiw4Qf158DWOAthokg=; b=iaiIhBg5GBKSlZcT 4Z18dxVW7K45Lyna7uXFKfri4v2siZLCohcIU8fLWwBaODqzvAp8SqqIBEf9uKHR dZpsbABzsHZbQhw9HZCsU1VIUVQCmgbE/HBn0StFsdmhKVLYov94UQwa5Vga568z E756XNk3O3FOGVm5gCl0CTU3QfD5a+Z8aP8gRMMnStbIuu0kD3OWlPM/2OVpC6Dj vzsfY3k2fwo/XTizVHE4TK+HY9gMY6htwFHSinQcFFvV9e7vdOFEo0P04nGeMHBb mm6O/dv+N7BLTG2shN0j4/+vjA7kLnYHWYcZBoJipkgl0fIzGJH/1mt9k3OYG98V 0EJD7A== 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 4a78eqrsss-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 04 Nov 2025 07:36:59 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-3418c17d21dso69559a91.2 for ; Mon, 03 Nov 2025 23:36:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1762241819; x=1762846619; 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=ttv0A/uYCNoEfTOIueJ0Teu2hpiw4Qf158DWOAthokg=; b=dn5Ryl0jVFyjI1z0UCDLqpMbV3e2x41UlpcBqXdXW2DWuYjFrOkJiDPdrr8pXVWzXA Lmmz92EMCDbmi/IpaDA89GXx04TwS/60OSxe+Ze3z749KD62UIXwcSEMNNcbGRbha9Ms Y93MhkzW6xgAGW4jdgbzIEx26gVvNsnFrCzEjhzU1HD2MiQHm5Mb2ZE88qg/YeOlsbBq 9GaQYf/dqPE2O/NH1nz+fx6GxyCerXHMWQWzBAf86kR99x1vYNBL/l+D6R/KSR72wOmY T3jxXGH2ULoa78aEuOx4NuJnu9/EiVOzoDmPxgbDz2fdZHY8PnhjCLfGQ9bfIRAYetkL garA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762241819; x=1762846619; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ttv0A/uYCNoEfTOIueJ0Teu2hpiw4Qf158DWOAthokg=; b=hq2C8KexRx4zIO9QyiiZH5UFHj5iuVqGa8JLoApnofq1zNhsztCud1Iz5WREiKLLdH DmxgMyoCxe5sYRow92c5+EqQ1KuU9kZ6kTeWcduw25wZCmTINVYoK+dpTwiK3vyarAon 2ZiOSz9OVZ0Xk9S67yEVmsmLtPwzvihvflO0h8N0g7U6JwLQZfNkde9//vcYzVr/nz6F +hoc0LmfgaQ/DpMr3mLeBJP5RNlJnighdgz82TXw8MCnVeGmedB25upfJgwu/QZuaZzL ROaApxnAN0IMfI4P39F1CJDA1xscHuIL3XL5rbZfTUGKeyulusm8cvN8q4aPy0001R6I Gj4w== X-Forwarded-Encrypted: i=1; AJvYcCXc39VdSel6T/VeSb3Ws1YD0G/Z2heVUXevYHmfB4XzimJnV/9/hsJmRCpuGDyFrXaMlUlppmuHST+1l2M=@vger.kernel.org X-Gm-Message-State: AOJu0Yz6pfhEHcLocBpU5UE7OeQrH9oin3l+LKT5hXGpXMn9JjPVhnj+ T85wSVSnU9mMgAZB3aly3L5GqPePTXmUYp8gfUIZxNsN9JjUlF4OyHzucLw5fdg71Ap1amiZP7b eCSs7f8EFbcnKghRtH2SMlqnMOniaDv6I4mODmY2DUtIYVA3+JCqcUMDvTH/7dy43omg= X-Gm-Gg: ASbGncvE9XSO+gzz9MFD5+ilHwxrqQFTyxD4C3BSjS8o2zMp73PIIdh3SHiiz1VqYMe DUMybYjM25YIa67FqP60zvcNfn1NT0mWd3YTUUk5xoF49RQcLOHsaZiGqhqhceJqXfE7E+Xz7CY KYxSLJu7uNh5mGJ6qr+snBulczLRoZUKzuvaWhC1PO/THYwdv1VlBzkyCw+uEAMTF1eavXG9ty4 pYYrP+h2v2XTVwQONC1E0STGE683dH74JeLOkcx98lbvUoyQhhxvlz+XqzLV7sP06lrghVqdo2E QyNKDwFdIYN2WCSIdx0O2VsO0J+HnQz2XjkpROTk7J7w21ewMb0n8AfxRaMi+2b7dkD+S2DxvoE 67fxb/NhiCRHNSPgYU0VqWkDjeg== X-Received: by 2002:a17:90b:2e4b:b0:341:8bdd:5cf3 with SMTP id 98e67ed59e1d1-3418bdd5d5dmr304457a91.7.1762241818725; Mon, 03 Nov 2025 23:36:58 -0800 (PST) X-Google-Smtp-Source: AGHT+IFzgRpt33g8LH+r/hUNLLbndg+nf7J0Iu8VGs80RcMH+Ykfd+QAkTkyhAw+/oQsik5bSPDVNg== X-Received: by 2002:a17:90b:2e4b:b0:341:8bdd:5cf3 with SMTP id 98e67ed59e1d1-3418bdd5d5dmr304401a91.7.1762241817990; Mon, 03 Nov 2025 23:36:57 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3415c8b5cfcsm3484367a91.19.2025.11.03.23.36.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Nov 2025 23:36:57 -0800 (PST) From: Mukesh Ojha Date: Tue, 04 Nov 2025 13:05:53 +0530 Subject: [PATCH v6 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: <20251104-kvm_rproc_v6-v6-13-7017b0adc24e@oss.qualcomm.com> References: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@oss.qualcomm.com> In-Reply-To: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@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=1762241765; l=5426; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=WElPtVnlh+C1PSgldb6zWFPdJuCyxq0WGV9rXeZJ+rw=; b=e6KOrcaoVF+JgTkvZ7OssMAQH1daA6mX+N7uC9YUPf6nUAxgDb+EvwuXEQys0RhH7EU4BKY5M eGewFwwExulDjoTa9scKsHp8ITiWWbmmzECSPyQfgZcb0aftxymeCaM X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTA0MDA2MSBTYWx0ZWRfX1q2O0nYMPvbX SUGzm6j1yZW21KLikShjBdX6wKqADbQraEd0z2n1Ap7KtROYBeKsE/eL2yxVRciaAk14BCDW9Ha MGAqTsL9svLZCYE5Vjb9QcLirtHBotR/cQDZRuyEiQTTeNoLDxO4ArYnv8ZltNmGXUn88GcPLXt LKaROvJCuxHOhjgkv06idZedBWVuEFBeI54GZPda1Kr/7aksK7G295wpHuvjoFVblYUq934PbZ8 MGZ7gS/O8DxHV4Zrlnf7KL9HQOkmXgsGhyLjXDuyPs248LY1jyi4uSEt+1U/6UD9r76u/KIqzLs vwbckGxY74Sf/OnufokwOtkwZsOz58aQroj0eIJ8T51vuW2RfF4ZtX5Fsd6RFRBRiQQl07CMUgF hpQrw8CLXA11mdrEmwDWrErDVxZZEw== X-Authority-Analysis: v=2.4 cv=fofRpV4f c=1 sm=1 tr=0 ts=6909ad1b 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=EUspDBNiAAAA:8 a=58pnfTnN0ARRJNaB1lkA:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-ORIG-GUID: RncjmhLEOM5ZtWQQu3qnrephJvQ8I9YB X-Proofpoint-GUID: RncjmhLEOM5ZtWQQu3qnrephJvQ8I9YB 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-03_06,2025-11-03_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 suspectscore=0 clxscore=1015 adultscore=0 priorityscore=1501 malwarescore=0 impostorscore=0 lowpriorityscore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511040061 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 a8d3d2e9a70e..59196a13e3a1 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 Fri Dec 19 07:50:55 2025 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 9AD7F30FF2A for ; Tue, 4 Nov 2025 07:37:04 +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=1762241826; cv=none; b=ILj2V8mzLMTqtvBcrK0c7SuUgp6/hpzyZxny890C+wFl4oZuerutewTPWLie+HXMSSjP+C8XJ7Mwwx3GKwzKzoN0XJ3IM/7iULxwnyuMPsVjVmetZHEmDrJJyIIMY81l1LgcMJ75Wb7g1iqrhdjzM+0T1/uXWsvQT7xtr7bAF8A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762241826; c=relaxed/simple; bh=uRDqwnYIZZpnXYckK3LJYkQkz8Z734oXrxzphtus+RQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=T5453hzdwAeW0weJJ36qnzoJlUWJncHNGrOBI9l7yVCLq3Fp7UgL43/O2V8zZgML3OttObo+AyOUlDBgMEyn2NDRSaNPmJffExScM8rNlGYGU7yAfYyUTWyxGMRLff76CG8TwcwPcpyhczBjYDC091KJOhQl9RQ4lxTZRKYSIoQ= 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=HYaozc/z; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Pjs6vCQQ; 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="HYaozc/z"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Pjs6vCQQ" 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 5A43PnYq906717 for ; Tue, 4 Nov 2025 07:37:03 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=HYaozc/zkMn8F2eB OrGVRHENxoaWNrwfjb2Ls3ej8M9KzQ99ps9LIz2zDJGEy2HkRH0D0kQQuOi3m/6/ wWQqKZmI93UBCaBa/KWJ4oHEScDBTbRdpnfKoTxWUVhV7qMmuolVy8UeiKQh9gb0 Zb0NcqVMY3h18sqN78Q0Il6d6PZ0Xj4dv4mp3X/8HZcbheGLOZp4cmCv1xEoJwYI vC0wyUPFzPNJUuaW81Xt6MaWggtHrHzpPL509Qv6Sw/HTRcAQpxzedfiF86OSc1D 5BM+WG6QpmZFF7FXPS2NL7y0NTYD73lbIflCE0DN6UZ0WfnPVn37NdqDO25/bSMj l1/Q2Q== 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 4a79jjrks6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 04 Nov 2025 07:37:03 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-33da21394adso6326343a91.1 for ; Mon, 03 Nov 2025 23:37:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1762241823; x=1762846623; 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=Pjs6vCQQP2UAGi+JrSvCK3WgEyziLXNAqPXTVNBIiDQz0GI9KBduuVTGGyZ812Sejm KrBMv6pyGCBIpZiWyC4naM9NkVq9gE+D9nBtj119GuctMQ/ZBu+wzBREXED8o0OYIuMk NEE23w15f6agi+Z0s7m1yfYKNjlZj/ULVE1EfRRPNzd0cW8GPA0uF/4Pxn9KYFPUQIfe cSdGeyBwT54vJKsbq4ZecrSOV9zp6OosD/0peeB643oR/6zwAwUpdPlEokza8Y+FCV5x /bCcX6Y5CC7nv8IjNttFVf/XctkvaUubemN+v+KyW+S1ES4q9wKVFxdIyeeqS3zJWhAL ct+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762241823; x=1762846623; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=IEpFo0lEJkHbippaH0NrsqLZL5lxGXEOzc/fjU/RBLU=; b=mPTUrOg/2WGOW8E8dMxP/iX5v08yp5Hwdl8M3JuXFkdFdWR2ljK770HJhI+EJnY2We 2AM/oUwa/Rc0pDdeUV67GKb/+Txwvt8O+A/J/YJKmknRgLMmfAqkBdGbbQAcNmBz2LX+ F8p3SZQHPhnqeVys2N/a77gOv2fzOCxKrSF+goTPp3d+XTznFvFEmsOUqbQXgbC6+rP6 GmAaGJm5f1DWJmkT7w+oaXYD4aOMlNwzx5sQv4f/zOP9RlGRE64+2aS6Vta1AFcRmit0 QEF3mQyzA6LbkHoBgpYqF2fs4NiRfvnQal8NAuYGG+V70OuRo6mP27fXfHodJZ5NslKL XJBg== X-Forwarded-Encrypted: i=1; AJvYcCXa/L/wGyiOrf1NxpJNQnzsif3PNOMuSGCz3MDilhKWDfCY8CEAU7WAIb+TFjOniepyg1dYfFge5UCEcAg=@vger.kernel.org X-Gm-Message-State: AOJu0Yw9pVALJPRkRjp1xag2sFyN+VyAUwEgke+8H2qkxrKKdGEaXid6 fNTRauujaB+zgRsZw4TOrte7vpWdP1cHt5j63W9jdbfOGddspwHgvuXOHpnhSFrPA63+1fvPaNz Miiae7nfpK4kEVFMCQ4hNGh6VQ19PWgESe1RVLgPy06bXaforwYqL40C3xZUDoyl+6GA= X-Gm-Gg: ASbGncvSUU4U4R8E9pnLyMnq7S5Ol+Nmz557WG3VrcC8X5xKtcmxxUc9vP/4HPaX/bF ET/9wIUQ4k4/6D+56+F6U8Bod+FulX0c6wRc0y/58dTHzDnFuLVNjW0UgTRUY1OG1fmcMCceQdv B6zVkCFTOgevCe1gVml8Vj6LHyn0I5UrKAXn96L12MKo12zAgy6fFL7lJN0mVfD7iJPvNunyoCc mCViv4eSDnezvFPHLpUz8xq1hLFIehcEqXri9YYOqkrmbgaF6pxPaZPF5TaeoK1I34DEsKgr7Bp EuQ4fhLx0bRAb1dXS/hElVvskkRbFiuHmQLYCNtG7cBAOFcsWt6C73d08BcoL5W5eaiTyqWEhQo 96lz3/Y9OLGdVytT8gCvIBOiarA== X-Received: by 2002:a17:90b:1804:b0:341:124f:4746 with SMTP id 98e67ed59e1d1-341124f5655mr7592850a91.31.1762241822402; Mon, 03 Nov 2025 23:37:02 -0800 (PST) X-Google-Smtp-Source: AGHT+IFKUZYkJDI1dLf0j5qnVJIPisBR1j8rmg9RpXmafX6fRnKyEMx1Js5oZiQ88R0lDTd2L+Qg3w== X-Received: by 2002:a17:90b:1804:b0:341:124f:4746 with SMTP id 98e67ed59e1d1-341124f5655mr7592791a91.31.1762241821692; Mon, 03 Nov 2025 23:37:01 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3415c8b5cfcsm3484367a91.19.2025.11.03.23.36.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 03 Nov 2025 23:37:01 -0800 (PST) From: Mukesh Ojha Date: Tue, 04 Nov 2025 13:05:54 +0530 Subject: [PATCH v6 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: <20251104-kvm_rproc_v6-v6-14-7017b0adc24e@oss.qualcomm.com> References: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@oss.qualcomm.com> In-Reply-To: <20251104-kvm_rproc_v6-v6-0-7017b0adc24e@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=1762241765; l=3311; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=uRDqwnYIZZpnXYckK3LJYkQkz8Z734oXrxzphtus+RQ=; b=70EsHNzLm0gWjM3OspS2EzG7Y816+qEMPjBVEodfRcAwLpAteTX2HBDS13lkYDcOZVel3JWlp +tg0Rk14Cq+DnCJq4mSm6xQlp41z3+YBqUUxTsoEi3IO9wlEctdszYg X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-GUID: wbA1teiWV3ghNrNWUDWW7_kzpsnqIYje X-Proofpoint-ORIG-GUID: wbA1teiWV3ghNrNWUDWW7_kzpsnqIYje X-Authority-Analysis: v=2.4 cv=TuPrRTXh c=1 sm=1 tr=0 ts=6909ad1f 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=EUspDBNiAAAA:8 a=OUqdy03oI2q1KQI58CwA:9 a=QEXdDO2ut3YA:10 a=eSe6kog-UzkA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTA0MDA2MSBTYWx0ZWRfX/sneEW6QRs+t 1bpTf8rkmoqOQzc3oAUxfkMr7uVLAJfhFase93Rqhgu7WIHYX1WavqQsJXsodlaBoKKsQaQPGWm Gy+/GUcDkme0Fk48zoHTXBB0/qcVt77Yu+h4befPMr0fcKwEv37Reih9+i3ezsw+O6aTIQVt03n fr7p/IEW8RWNG0uvaRjQRpg0R2zmoYmqKFAAKd1JbuSyBOkEz++TQde5u+bBA2YJEY4Y6XFt3K9 d0vprOaWENOrwopCwk515nMxaMQhJRTOiRZFt1E407lhmHaovR8fPutJRFUpzdmH7sv3HkOnzD2 Uf6+O7zrn2oWkWqWkb6O8fR1tWVCJYy/Hg2qaFo9oOOp7bskpQdavRo1iStd7aQ27fzT7z7FRbf Bp6Ojwnlr+pBVnQ/uy5DoIlS8ycwcQ== 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-03_06,2025-11-03_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 adultscore=0 priorityscore=1501 phishscore=0 spamscore=0 clxscore=1015 malwarescore=0 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-2511040061 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