From nobody Mon Feb 9 14:04:53 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 033F73587DF for ; Wed, 17 Dec 2025 16:35:09 +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=1765989311; cv=none; b=DBGNP6m1z6Mc78sQ6p8cYNUzKttNQO+7oyrDTi8mYuLjhwkSBYlrm+flx/YYRF8FOwe81Zih+IQmctRYIhGDnlgv/xi/P+RpxjWdAbvC2IB9nsLS6lePtsl31SCRhO7LMsgmex7UmqmDnopinNkJ2+ZRxCENpltGEmIHq+NVbEA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765989311; c=relaxed/simple; bh=fkI0IV5pKXD+Z8pE0/I4omqNa0GvsOuaX0Z626kXB7M=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=upj5CJiyEGlfrD9YtkIcMwb6AKe7Km24H3N8SzlkY67kAynmpEcEQ4DCOkaVcaUFhUfuHojypEO24Olm79kBCFAtk0eNsbm4wp9xLU3FwLoGyzCK6dejU8kmtc23QUkNVJCm/XTZqsM/YmXmojJt3ReapyMD+oNNoRvqNSKQC7Q= 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=gqB55hmb; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=jWhd5hCD; 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="gqB55hmb"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="jWhd5hCD" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BHCKxTO2042763 for ; Wed, 17 Dec 2025 16:35:09 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= QAPzsylvQAf0leJxcPm7SZsbOhaaSA1OJ2ImRJF3POY=; b=gqB55hmbAYs5+DIz ICGBpSpOvVuvHpxaSZzb/b06z9O72t6LsjWxax0qDJLbb2/EUDqlnf16tsJb68Hf y8ir8xl0nf2niqkc3diMwIRzoeJHeitB1fdKN00hPw0WHVRqSf5iYuwTYRyDvI14 kJdTJp8QCSGAPc4d4SuMPDycEqBb7rzTsBo5edx6Xuqc9i6TVY2Cy8dOMsA0Sqru zky0l4gegd7WOZrIBL3mkFONsktFoN8E4QbuyF9TtYLL4m8BFrw6xCi+tUQn5+TM U4C40h4MLc48Z2PagV8IMkZ8GNnSbrSVi6RLRFxgiuc1idC5RZA2j/dkbsOO2iYW OCSOpw== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b3fj1u815-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 17 Dec 2025 16:35:09 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2a089575ab3so59011695ad.0 for ; Wed, 17 Dec 2025 08:35:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765989308; x=1766594108; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=QAPzsylvQAf0leJxcPm7SZsbOhaaSA1OJ2ImRJF3POY=; b=jWhd5hCD1TPhfqC6NnpdVNW0PAW6LQqmCDrABYGyxxu6ypd4w2JHJoSDakSlsWhFUq 64oWW2MiH/OxR9nEmbK4KS932JI5/coJE0Wwq3xcg5COQdWCYf85BzYKPBXx69mT+/NK Iht8exylzzKZmtmNX8vt5ngX3d/jPfatyjZI9xGJNKyJJTEm3Q4DALoC/7Wim4ENJIHT gN0TJmQ+gs7v2SSkiJaRtfubjFcakpxK/Z5o3B1r1RykhUSnCqAGY4HPo+wmJp2GC0fx xMMDOisoinrg4EQ3Wmk+jw4svjgPmYUJHLySXTTeJbXTANIFNGmBEXN2+HivSYoDzkBB OrUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765989308; x=1766594108; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=QAPzsylvQAf0leJxcPm7SZsbOhaaSA1OJ2ImRJF3POY=; b=E2H1tQ+bXbz9VfwR3oGP15mdmadJQNQwdMy9istIkn0G+Pgw47jPLxi1nLAo9FvzJx 9B0hpu88s1L8aEB325/2Ygvex+CqYvP4epJ6lonm78OYtvpD3Fo8RS1xXFxkANHX168Q BJJsT8f6FyWZmdHvJ3m01Umyu1g0ZeCK28Vw6kdO85BmDX0Xsmyc2Sfx+Zpo3MtVGyjV bSPEtTJnk0ucsAp6u1gciwb8zIkuahI+/dX+ebRD/PAFdB4xVhhPpsD/SmrwO7v6Ns5+ TwZZaCxicUntwM/2O80Huli9YRcZC/pUeleQdlggnmXAb2PiZM577DCJdrMTsRjwAyAN XWig== X-Forwarded-Encrypted: i=1; AJvYcCV6BLHCmtIGgF8KHHFeg4S3O7qi3skvUabIg6yjaOf+cke5iB1Gfs9I6i1qDorL1lhQtSoyz0759R3Ve/E=@vger.kernel.org X-Gm-Message-State: AOJu0Ywbk3E8jClnptmRXWRo4xNkJaIGOeXOvaZKH3mPGTfSpCaOvJh8 aoChXNYiiKoGypmm7pB7Yk71lBOh5BIhz0aE2jo+pEghTZjdWKlO2hzdpqIE2sQfyBvVV8Mi+AB ZsnAjJ6Rfj7PTE0SH7pcJa+g/wOXdFqHUWNHxV4UVDIis1tpy9057nLyrBi2firo7Lp8= X-Gm-Gg: AY/fxX6B/3QXEYPwi32tDc8xQYWAbHMAU/5OXWSWYQMFD/RdXuoCdPpSFULZHLTUmie /AN/ydRI0N8hQ9BYZrmOhVvHlJY38i/cjJvr+Bzdspu2za19o2IsFMx+6Evk903ZFWiGWKdkotY IvHm0YjBkJJLsWyZsO/oPXzq5CkZU2KC3SQSMX3Ewx+X0zX6TLk8GGYRDK4FHfC0k+CBXd26xIE wU2g8NTNjkdIOrYpdxik6fk38lb11ZcgEfz9Wf4Mq4zMZg4Fuds5k99jTyYhlPIxhMSLBxh8P0A k7uhtCG9YIfMaw1H25aEQRBR6lGG0fSey8oaYt6xOGhblF/AeUo6PktvJg5Y6GbGsi38t/gohyZ T8YSNSL9KJ34yZJ6Ms84aC2Ju2xLEq5DSa0t7 X-Received: by 2002:a17:903:40c5:b0:2a0:9fc8:a98b with SMTP id d9443c01a7336-2a09fc8b009mr133318475ad.40.1765989308192; Wed, 17 Dec 2025 08:35:08 -0800 (PST) X-Google-Smtp-Source: AGHT+IHFZjMR3LK/rVvOPFe4PMiFfY0LCdsriHF9Dve2JHTFXJJn+pLlf/et8QtwVDemMNI/yUJxKw== X-Received: by 2002:a17:903:40c5:b0:2a0:9fc8:a98b with SMTP id d9443c01a7336-2a09fc8b009mr133318045ad.40.1765989307577; Wed, 17 Dec 2025 08:35:07 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29ee9b36af7sm204721055ad.18.2025.12.17.08.35.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:35:07 -0800 (PST) From: Mukesh Ojha Date: Wed, 17 Dec 2025 22:04:37 +0530 Subject: [PATCH v9 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: <20251217-kvm_rproc_v9-v9-1-ab7ac03e0ff1@oss.qualcomm.com> References: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@oss.qualcomm.com> In-Reply-To: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@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=1765989299; l=1346; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=fkI0IV5pKXD+Z8pE0/I4omqNa0GvsOuaX0Z626kXB7M=; b=Vo+xHZl6vaYm1DqkxHAcltW+hqiy/OHXdM3AVnRMWNOA0Uxl4zwKclZ+sZPq3Ww/LZmruxDE/ g+Ei7rwGNgdBEcDSbdgyU8S1gZ0oflkU/gfWRRBk+UVJ3w1vYN3x3YD X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE3MDEzMSBTYWx0ZWRfX6k37ni1IZZfj +T4TvKLSj9Xje6nvfhTer3Xm0qWs96QY1VPPxntMEaW/QUuWSfBvxCMN5j3sL7/noNFc2keTh7D TBIGclKgPFIfau+nfI89inknS9BCIg+ly8lD8dVm9t1Ul3C6TN3lbDx6D2Fk4aJbzb5jgtD1GK3 8vmy5HVFj5Gu59nYK8tp2UGdE3wfX2/kkJz7m9b8qcc4QkpoaDNTsI4i0WT+Rpvf1Kz61mAzlNN KBRXtrJA55ma4ABzMFjcyX6Lhn1Czkz9Ve0rYPkFEegCWT5jPK1MOG/cgPPRMlPASsVtuLjIZnh 9qadEsRbJkysMK0MvzHF2qRojLt07s21/XIyHEbHHxUwKdm8eyfItFEnyYrrorO4u5THXHTaR2Z Js3TNisaAyfOEeWnQ3y/5D8mpzER0A== X-Proofpoint-ORIG-GUID: s7CpOX-6jHdvx8_RM80oIsnACq0hkwLm X-Proofpoint-GUID: s7CpOX-6jHdvx8_RM80oIsnACq0hkwLm X-Authority-Analysis: v=2.4 cv=edgwvrEH c=1 sm=1 tr=0 ts=6942dbbd cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=nDsJnkO8JLPJ0mjf3QIA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02: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-12-17_03,2025-12-16_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 spamscore=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 adultscore=0 priorityscore=1501 phishscore=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-2512170131 On most Qualcomm platforms, the Qualcomm Hypervisor Execution Environment (QHEE) is either used as a standalone hypervisor or co-exists as a module with the Gunyah hypervisor. When QHEE is present, it configures firmware streams for remote processors. If QHEE is not available, the operating system must perform these configurations instead and for that remote processor firmware stream should be presented to the operating system. To support this, add the iommus property as an optional property for PAS-supported devices. Acked-by: Rob Herring (Arm) Reviewed-by: Bryan O'Donoghue Signed-off-by: Mukesh Ojha --- Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.y= aml b/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml index 63a82e7a8bf8..68c17bf18987 100644 --- a/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml +++ b/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml @@ -44,6 +44,9 @@ properties: - const: stop-ack - const: shutdown-ack =20 + iommus: + maxItems: 1 + power-domains: minItems: 1 maxItems: 3 --=20 2.50.1 From nobody Mon Feb 9 14:04:53 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EDE5E358D33 for ; Wed, 17 Dec 2025 16:35:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765989316; cv=none; b=OkCLqAkOWQ7ma34Bimb8hgfuwAKOzWTjhKGlMPea9piAL/a0jSJD0NjYchnvVr+DHf/HWvkNW3cqCcyfR4644Ue3EvC4M4lxrjTrKEh/y5GAeZdKBmU/BG1V/sfE2U/EDmivcBL5+8VMi2IGKXTA/+c9RkUiwVWYWTG+5jNSGZg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765989316; c=relaxed/simple; bh=yBYzqc0S1JphVHuD2j55BlKNRj4RzOO+Sg8ufDQtOo0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=quPPFPm82wyh+hcqz/I8Ma5pJBBYOD+5gcdBBHDnLJSmVhunZ87vsp2MvpuPuqlvQQ3vbcN286xItwvvMKj+tsxjm/3iJ/692/gveb93gCu5eFFdJgYV9p5C8AgJ2IKw85dY2z+THzrBYE07LX+te6SY3XHH+O7MyP90kMuqbu8= 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=cyIBGjY7; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=bMo5IQiQ; 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="cyIBGjY7"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="bMo5IQiQ" 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 5BHEvRe22720272 for ; Wed, 17 Dec 2025 16:35:13 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= IGO99rWItnnwo77g8rlfsZqn5NHrWegTLAN6ef6NdU4=; b=cyIBGjY7ANvNA+F5 LJrlVHP63kNG7nisScP5ZdNcrl9T6qC/Hg2Rz1ucGlj4RwZ8vZxqQzm71QaaGd4O /3Lvao4/3HXaQR0PCA+uLMWS3o4eFzYbqNfNTuogdUAM2rnPwldVCQy2iGBNeook 60HcQDD0Qemff/elvDJtKKAWpdNyPHAvgTrxFEIGW56gkYSKqET0/XU/az26LoxA bDFI1RUMyLCr5KdL9FLYwZ8SONt93f3lZ2YlP8bE8hevkWRioBDVfLk4epmypFEg KgxRHYerq9hs/NJfO5jroqYcWwGugjlSe76gfX6DIVARnKtZF7HlEn8X8JFsJm9b yypnvw== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b3xr58cry-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 17 Dec 2025 16:35:13 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2a13be531b2so41964925ad.2 for ; Wed, 17 Dec 2025 08:35:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765989313; x=1766594113; 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=IGO99rWItnnwo77g8rlfsZqn5NHrWegTLAN6ef6NdU4=; b=bMo5IQiQgZ512Og1XbzqodYVpo5KVeYvYR4hHsqqWizzpZmP3mAQi4rdaMBNmh2DOf kjOp6r452dbnpLWJaBfnHRV/V6YHIgEBFqpFWTD6OkZYYaP9zxQ/mLdRZwlcZgLjIrik /CH7YlBtUJccOSmfvxajd9HkX9vPzGVvvFdjx94AvwtGHyXWCW3CxT4AgRWu0MzFW7CY lzncVlyhQwi7YYJ/V0s84rREgmjLLxejuOfG7Rk/oLbTYvzSxU9JFaH0raZssWcB+DI3 dQE8w/MfXXbEIMCNqJy6ye882hNhjAUMc1i2K4Vd177Z/EJjqq7hac3QmZv/T4gTlZaL p+gQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765989313; x=1766594113; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=IGO99rWItnnwo77g8rlfsZqn5NHrWegTLAN6ef6NdU4=; b=hicpgYanyy9u/uoUZPf9Pf70DOmsSiW6jN0Qp3tpYNC03/VeA1PL1rtecTCmsKoQxx kOSa8Q24pg/cGAXOgjOsTg6WUalXtpPal89E/DoEViCQZPjW3yCQByNnY82XR6A0EYwB QR3eGbV6Esw7T+VBE9ELtJYxvyx5MjukoeLCMUxPmDeyWnFvCKrDQADZxlKbj3y8YyBH CcWaPlWpIU9lBJhMdPm2q1N/48ldRqFmBI8WkZpk6r23Dh3l20oshHMirblpO8aDF+h7 ZG8MXTw2nUWvyz5oKG2Du/geV1jmwMrFmMFAf9iaYHfImmeyYDKeQjVHnmaBTH/Utp9E heFg== X-Forwarded-Encrypted: i=1; AJvYcCVqpzkX9VoKQWn7VPmGHW82sac7jRDfP7oNaotu23hoHZW0wcnnUCvFyJjeJIMNLKs5qW2uytY/U4Wi5ig=@vger.kernel.org X-Gm-Message-State: AOJu0YxhDt5NUEmUc5dTvczqrRjIBY3XMTowf5eO0Cr8bgPZuR8VwkeY IcjOim1ycSjuX4yVCVSE/c1Rx4FB0sojh97rP333z+ipFgwNsLd15Oq+ZgAePfS9Lhviabo6Ckl db0rNLNchIAOyi0oCf81/5kJQNvOGjKNXvQzfUoK7yAhXbHKLBbvpF6VYRA5oc5bSAtQ= X-Gm-Gg: AY/fxX7sWwQQJb53LkF7+9YIM0enGFFeBu0t7Lwx+CT3hyxfTOrTA19pQguSgy6j9h8 M7Twu1VDHXXgtDdeW8ZZGbfjqdSZBM6bHE80P+OKU1lw69FmgfYMES/2ZkIqiPVZhsfeRRGYYkL fJFMGPQ5/DaJ7KbRlqbappjLPlc89gpzFRqjawB3f799/NAzQ7FlqQyoTCCKXskzCJBgfRvLDk3 N8AgdgvXGSqsFyfer7iYSYFITTq/2/yW3d7mReL1vJi/yGL5a0dCw11c6vGxmd7gIiZH94AnsJ5 AKlYaU6XNQ+3b3zwYAWz6RSWw2aDgFNsjhu7p3FyEOPL3A6aJi865lvCfffWUDtnPmWI8YRyOwJ fPGtItvEHX3nDFWiQoFi2GZHRpZ+3u0pcRVvf X-Received: by 2002:a17:903:3bad:b0:297:d45b:6d97 with SMTP id d9443c01a7336-29f23e3618emr197363725ad.14.1765989312023; Wed, 17 Dec 2025 08:35:12 -0800 (PST) X-Google-Smtp-Source: AGHT+IGu76/RdEU0SDBR8aBaXkqghR90u41/dQnfZUGn0J4HlRjXSeRxIKQx+zyA6K+BSJUGHSMFJQ== X-Received: by 2002:a17:903:3bad:b0:297:d45b:6d97 with SMTP id d9443c01a7336-29f23e3618emr197363235ad.14.1765989311371; Wed, 17 Dec 2025 08:35:11 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29ee9b36af7sm204721055ad.18.2025.12.17.08.35.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:35:11 -0800 (PST) From: Mukesh Ojha Date: Wed, 17 Dec 2025 22:04:38 +0530 Subject: [PATCH v9 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: <20251217-kvm_rproc_v9-v9-2-ab7ac03e0ff1@oss.qualcomm.com> References: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@oss.qualcomm.com> In-Reply-To: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@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=1765989299; l=906; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=yBYzqc0S1JphVHuD2j55BlKNRj4RzOO+Sg8ufDQtOo0=; b=/2jf6vhjy4QLGEOUszAhuO/B64Iqi4w47ebi05Xomx0kqSrrIt2AibMsclR/gJU8gCF/b+VKt sPH2d2qYjiJCMwLNWI/qf5tj5R8+TQ0ctn0KvFVsmp6EWCXAH1faTHK X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-GUID: QflIhgLKLjBbHT8Od5Yn4sR5mta5d0Y9 X-Authority-Analysis: v=2.4 cv=DsBbOW/+ c=1 sm=1 tr=0 ts=6942dbc1 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=pWxEDRe995Kf1ot4LjYA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE3MDEzMSBTYWx0ZWRfXwyN0N/8SKw6y tBm27E9lkgLmD6yDUzsLTrwEZ68VFki2B1frUh1ZrpQSwv7PduEm0ngZX71a8juXPS/2KPLQ5Z4 YUmAWEV2dL8VM8nofiRPWbdeXrjrPxw2fZIs0T3lZFh9ekjQpcgwpPvX8rbbCTzN+61yKi5i2Kv SUv/Pjv71VCOB7ZZd5KttUyjL9b2edIy7mMO/L/avNC0ESBIHiFeG4G2TLO/TWbqy2iTG43Ml2y 98uJdK8PGF3qB7LTYa43poCZ5INy9QpSKLeJyEgXs7FDRPCuF/B4bq+122RXm3u8y9n4qv83Wvb hwv80DPG2xRrs0qZ8Y6NPGKe7VS300o54T+4/d+jbD5o0V/EbnUdGKmbxd1kr/oH23rSqQFB78H dXC4Ag1zbwJPJKkp2wJ8/uYolu4jIw== X-Proofpoint-ORIG-GUID: QflIhgLKLjBbHT8Od5Yn4sR5mta5d0Y9 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-12-17_03,2025-12-16_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 priorityscore=1501 impostorscore=0 spamscore=0 adultscore=0 clxscore=1015 bulkscore=0 malwarescore=0 phishscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512170131 The qcom_scm_pas_metadata_release() function already frees the allocated memory and sets ctx->ptr to NULL. Resetting ctx->phys and ctx->size to zero is unnecessary because the context is expected to be discarded after release. Lets removes redundant assignments. Signed-off-by: Mukesh Ojha --- drivers/firmware/qcom/qcom_scm.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_= scm.c index 1a6f85e463e0..6461408c58a3 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 Mon Feb 9 14:04:53 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 11EC73596F0 for ; Wed, 17 Dec 2025 16:35:17 +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=1765989319; cv=none; b=tVUZ4BVwrX6VCFu+Sb57RxMbpfIG2IoiCMw5NIjsjYf1mKLgrVfUSK3lUUM5pbq7+EpB2Pk5x9PJN52UIttuL2q92BCqcaHjH+nwMhHdaHkcp86y7iU/tLlXxe43Bvu5iqB2OyxNHB6ZyO7Hd3JmeX/H1Dy+0cpgOhulGov05zA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765989319; c=relaxed/simple; bh=DXdutyHAGcYbnJrVjnnSAQBl6WcuD1qzcR4ar6uGI8g=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KrEDRLDUDNbeF/o/tHC9WCaltJm8ri3nFmekVow8GaFsXXKf4u2YWCYWQJD880TU9qXsxXyKXEWcDiUPDMOFH8+cm3M7AYwHOzggGI5SPVEQnbUFFxb2nzMV/qWSrVY6s+mCPWLAIZAuTT8S81symQa7dmIuIf1R7awpczWDBwA= 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=WlbvmvgQ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=L8JcdEAH; 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="WlbvmvgQ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="L8JcdEAH" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BHCKrMI2673983 for ; Wed, 17 Dec 2025 16:35:17 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= jYA8LoV9oh1HLOGoD/V4Psqum98OyLmu1K1Z5QHU490=; b=WlbvmvgQbfHOfcja isLWUW2mJ0yFdd1LZImhTQM4+A5XIPZCkTkHhcW5o02fkiwNsyeLs57o4NZ/G/BS wqPLme1VMU9CpSzwpf6J422tAQXfas5XQIpQkplZ0BEZIr1JeoC5QbyDP/+cSkTZ pE6MqwPAn0pp1Uv3qeG1YXiPUohVzXMlASKKqS3xFvLXsx1PuCsNlS7ELLLJ8geT bBKM4IrSEcmBeMOxEEw/zj9+Y4H/PSv9iBGOBK+X3xARf4btxbkRLaULjm4Slfnt s9bKM+Hsodz7WfgzMUlfMgoG9hVQFDXhbIeWhz6bOH4kae0MquUCCFLSO3OGT6WB ZNQxJw== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b3myj2dew-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 17 Dec 2025 16:35:17 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-29f1f69eec6so63706705ad.1 for ; Wed, 17 Dec 2025 08:35:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765989317; x=1766594117; 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=jYA8LoV9oh1HLOGoD/V4Psqum98OyLmu1K1Z5QHU490=; b=L8JcdEAHMuj5LS6L4wyXCmzjYci3/tbXv16QI77mpeTs3KvVVaFGZsbBZ4Sd7StWs2 3NdQpsy/MXp0ZK0NWqEe5+ICnsWhl57bGATbggstrG2MFm/G6EaH87dfDwtABivVT3W7 Z5Xhp3Tpp1iPLzMntt3+GM7WhdEDP0jBUq2M6Wp0J2jRSpobICSF8YRMf3TOsDd3IN+8 98h6rgm1C1h/l+SSjtX0SeFEexEUATQ6MQK8CPviu/truO5PtnjGUADrs+jVxurN9pXs P3xUQy1fO0WiMYC+9BeYep8fPsVZuZ8UdcL4xpLB4cwTEpiRdRUDVECpYBt7JKOLpKTB raGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765989317; x=1766594117; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=jYA8LoV9oh1HLOGoD/V4Psqum98OyLmu1K1Z5QHU490=; b=qeNghjMl9eqZExtPttSG8AVk/XLPLJiDF8TSaiZ1BUyMvdegzTMA/JQ2eDztN+ZMEd fprw7JffCqENlemaqhRK31m1lbJM6LfXXsbqL/IUugkoc+KYpactQyPf3XjV0L/iC95c RoAwGiisi3O7y4P8rTPUirsxXYVL5OEVgM6Rq/RU93J79rI/P0g07ssaq6irYY4pAoMC ++hpvbiXarqyjRqp8Zu7XE0yTEUwAX4Ckb0UhUDNS3KjZoJUbqWs+xH62vzUS+Z3Dfe5 Zl7Ph+FoK7GjZGSPWkVLS3yvn4GB5FnBBF4+pPGOvJyExxlJM138MDxsJ305lS8DJ1jh O4gA== X-Forwarded-Encrypted: i=1; AJvYcCV+zH9VD+GpsiTlPFmo6tkTYAQFjvwVbVR+IoyLmr8PSaO+jf/UlT/Pmf1VjTJ1yv6EONGoq8LnGdoccsA=@vger.kernel.org X-Gm-Message-State: AOJu0YzaIh00OsOgkHJ9Hzodu4T/k29KvLZTYKnN7+i2Kx32QgPljPkB SLwjjtMcdrq3vU5ImsQPqzo9ZvZUcohXJ0vZqtiU5abxC22WMK0TlS2+KjUIVIr2Ryvrn8EDRf2 zn9+nKc/rhHkTv1ejBsC3XXtATu05YudmmyJDLdYCQLWTtJU9Ii6qEU4vxO4pUfuyyPI= X-Gm-Gg: AY/fxX7YWk0REdwbGNg1ZDX0BvYcGiH0OE+Le4T9ZaZIgHINbaB5VZ78BzvNnlI4fX0 gttwkHft0i+caZHIBQ+bJJweIDclQa1QsW04SYwcvXCN2RQmkVNJOyxsYiVBy8/rz40VZHt8Bd8 rChqztzhDV8OkBIDKcWuzlPetS6H934IQsPsGlq+q2xNBXflSdFX9BjDzHYhpC5QaNGyNfrbtSr tbNm4qtJY+PZVw+TrU6uNqKHu8QeDGO7flx0k4ECgunIIAvQcqRhDZusGE48giTHzlDlXD6XJA5 MTXZYUkDYGEhv/EpUt1/eif43edDPVsqqexuLomv0vHq3GsAwu3B7uauMAuvT+MSkVkRxaEAeod QH49irm2ykVytdx5nDsRMkjDOh/lJ6d1uwGRH X-Received: by 2002:a17:902:e94d:b0:295:6d30:e25f with SMTP id d9443c01a7336-29f243879d8mr183053455ad.53.1765989316367; Wed, 17 Dec 2025 08:35:16 -0800 (PST) X-Google-Smtp-Source: AGHT+IEmKEFM+BwlVSmYcrEzhY1oJ+NNet8XTffvuffrvJ2KSerrby1UaksydNS0f3S/KAtKvq2nlg== X-Received: by 2002:a17:902:e94d:b0:295:6d30:e25f with SMTP id d9443c01a7336-29f243879d8mr183052975ad.53.1765989315650; Wed, 17 Dec 2025 08:35:15 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29ee9b36af7sm204721055ad.18.2025.12.17.08.35.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:35:15 -0800 (PST) From: Mukesh Ojha Date: Wed, 17 Dec 2025 22:04:39 +0530 Subject: [PATCH v9 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: <20251217-kvm_rproc_v9-v9-3-ab7ac03e0ff1@oss.qualcomm.com> References: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@oss.qualcomm.com> In-Reply-To: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Bryan O'Donoghue , Konrad Dybcio , Mukesh Ojha X-Mailer: b4 0.14-dev-f7c49 X-Developer-Signature: v=1; a=ed25519-sha256; t=1765989299; l=6116; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=DXdutyHAGcYbnJrVjnnSAQBl6WcuD1qzcR4ar6uGI8g=; b=1Y3hAZdmBvnICDXoSOp4PzRSVuCgqtnfRuzaw5VMvNY9KVu7PqddbDIJiQNlG0395ZqeV5Pon FmzOQ1VnkEVBrW/sDThCH9ndaEwNQIn2OcjONb1JyBu+zsDH2oMHzPv X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE3MDEzMSBTYWx0ZWRfX6jSeJSGmJE91 /ZarFgx3z4F8i51vECxNAOe+ixdw25BmVqiZP8uG928kOriV2cU6QyCLC4koefLLbQiTKMXhNFz hltuZ+iD1tKh+/5f9pJ0t+RC3i1NzsHuNYv0LuyYIMZE4LYBWw3wBvo0nbFQcfN/cQEpbPuFRjT RWSd+KIpevECho2wm8Qzj68X+kJS57LSgMk2iGsPT7d7q2/fR4mt2J2UhjpW+4+SpDq7Hd8HNmQ IrNAhH3/Jg/HXPOSy5EeTc9bzcQskMuuSRKN5yCMgQyKtcP6MPh3Vn03/PDw/8NU8+KaKKaNmWy uRuON5ac4ZqkGKbZR5s7sBVkuomzlv/IVPNiI8064idFwwHF6goUBkGDH2A+ADcIAFfi0zPhVeg +WeonRI3kjPrnKAM+mIomDL1DIke8g== X-Proofpoint-ORIG-GUID: p4C7lEP8EyFfde1Q9imGL1IXV3xjJgYw X-Authority-Analysis: v=2.4 cv=CtOys34D c=1 sm=1 tr=0 ts=6942dbc5 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=bcWw3dkznkfw-y6_B5AA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-GUID: p4C7lEP8EyFfde1Q9imGL1IXV3xjJgYw 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-12-17_03,2025-12-16_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 clxscore=1015 impostorscore=0 spamscore=0 phishscore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512170131 Peripheral and pas_id refers to unique id for a subsystem and used only when peripheral authentication service from secure world is utilized. Lets rename peripheral to pas_id to reflect closer to its meaning. Reviewed-by: Bryan O'Donoghue Reviewed-by: Konrad Dybcio Signed-off-by: Mukesh Ojha --- drivers/firmware/qcom/qcom_scm.c | 30 +++++++++++++++--------------- include/linux/firmware/qcom/qcom_scm.h | 10 +++++----- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_= scm.c index 6461408c58a3..1e1057638e98 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 Mon Feb 9 14:04:53 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C3E6636215F for ; Wed, 17 Dec 2025 16:35:21 +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=1765989323; cv=none; b=V3L7MbNceo40mb4SdWbYrZRxPhp2BTadFdpF4kKPmctyT3/gg11F6vw5s+6gD9KI5j7ykHu0r4Pak4Br20o9jeRFm1uK8AEVCuqIYcMMXrn+Ji53kCbPGf7FjRhBT/Ax1k/ExwcqGssMDRegv7ClMN46aw5nyfdplJ8IeBSuBBw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765989323; c=relaxed/simple; bh=MTke/QM0PFjN8QJGwMVznBklB/oOZJSHHEy6N6Uhs2I=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=oNoCH9TnlcwSv+t2SwMKh7aXpry0Z5fs5hJeHM+TOLytA0IbaSnFVWCuPFqR2bH6dlOdBBabSmgzwSfF0uNRidD+esd80JUO3TZcQL1TVZf9XudUSxHdwQWnYf82TjofOItNdryjQ91oDJBpNBCK2QuXnLpJdg0+ryoxwPFOCvs= 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=Y3dAjfRa; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=AsDtlY/N; 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="Y3dAjfRa"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="AsDtlY/N" 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 5BHCL0FK2502769 for ; Wed, 17 Dec 2025 16:35:21 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= RAAYF+70CB9eB3ACXAKpYiBOB9FD0mSsanrWwDwQLqE=; b=Y3dAjfRadBO7r21m c6UXwUoqGL4OpqGvN3b/bF0Iimc7Gf0BdTmSqE2nwG5PSw8bEgwU4QM8YFbgStUS WKlsh8+sDln1EbIapbcLOslXZt7WeTgCajavTLBbwMqQq36yb7770nFwybqGpiG7 DCPBYhYBH6+6mVznuyPybLxmEqbQpDuzG+6dJB3r1yTGIaikBcUnNe3ftsnubuER +IG6iVFF7iyyTEW0htiWSDgabaSBjLt5kHQ5EWO7ktHrFAHV5ZkdE8a0qaP0iFVH ANrb1wiWZsdsIDJXG8tj2n2sTVYYs9H1n7wdTDyKcG46wUiXSE3eIP2RojZQJ/FE pIuNwQ== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b3rqa9pmm-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 17 Dec 2025 16:35:21 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2a0fe4ade9eso41706375ad.0 for ; Wed, 17 Dec 2025 08:35:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765989320; x=1766594120; 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=RAAYF+70CB9eB3ACXAKpYiBOB9FD0mSsanrWwDwQLqE=; b=AsDtlY/NgutsUy/9gogioMyQ/yHx/Vi4fR/748SKzJbSRLMNLpZze+UfB/Js8vX++M yM7nUIay6LDAsc9rAS0K/aoWe6YR65fARTpRC+MGjxxkttmlzn56i08wevJjDnfxExD/ UjpDS5WHx+nvhLsfORxryyBA0q6YlOj0myNgRLwWGASqFu4lGlsqtRdiiDWVEklHeeX0 qTSBGFrcYLVttLAqeKxR4Luj7cVGAJnv2BQDETsT7BXNJDe940rzM1h3qM+buJrSb5Ni UeR72ej+7/ktyUC7QWmv8r4SpbY/+QIZBWp8jRK+nYe0dEWXZfDbPVzzEwdoqmoj8wgn cf6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765989320; x=1766594120; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=RAAYF+70CB9eB3ACXAKpYiBOB9FD0mSsanrWwDwQLqE=; b=k5gi2GIlZC0+Nf7XHf+uTW20784kNJQDvRg6qBIF2W7X8byRgn8WA7uns7hkcPktCy OfEM8lZRFzEONQVwc3U4hYT2N8E1wVcQM8dxM2TMVnAo+EebhrejUADMmqbw64l96Mov mJkiKBUqBZAfje8uvTicWAQa5BXGA0QOb8G5mi4JRHlOD/mWCJRKdl3fOS3G2+Db3OPE SJWAVkuqXOUESOrGc5uyl9Y7rz1gQaGRDYrSo1yGBgaZleWvR6UbjtsMd1/Svcp4M/Yt gRIx8pe+D3NORk4FhEf54yEEbIQaXBUyIvIyL1xOgzAnZi2sE8qwy/cTzZtjoP1H6iY+ uw+g== X-Forwarded-Encrypted: i=1; AJvYcCVm9MrDW+P3Y7w7Nsal9xpKGAEGmEWKRcUKFitZv4iXgFJAwNMKt/Il4do1MCiF4pUx24CWFhL5Cu3D5QY=@vger.kernel.org X-Gm-Message-State: AOJu0Ywyy5nITyfg7c0PeO6tA4rJYmqLIySdVcfxrAQ/Ddl0Mt90oPTP mMLUmIhj11Xke0cZh/bWmBmP0NygeR9v5OcW3+VaMhGuIxakwkdMRGMnw6U1/1OVzzlX7HKCHIg 6dyrdn5prJPxI/c2+bVNN4h2XO+x27ZSJy+YpjqFAk4VCZeVWnxWtlKhlNDP2dmBI3qA= X-Gm-Gg: AY/fxX4wTChHq60EqL9iB1sNbxoebBw/Qt2TP1KtwdVdXs47odeLhAW0J/SP2a/F5jo wrFbChkAePlogLIDLgs1/j5nvl7QnY+gPV3Sv0qbHgewWxAOJCpQeS6oMxjb/+IptC6Y7BhbMRA Bgpb18HO23tsVrrMZ9DtqZ+KN0py6t5n2l/0e4Xypotqh1aCBBVGLuvJ9fXbpZeBYENkridNwVh jntG9q9Ik4jrRUHZMQbDsGuytXDRPte+jVf5oSHJybd9erTiPyQ3CX0APuw7tryrTVQAv3FpFof c618nHvKpmB7dgSPOxGM6ZYf7U9nac0nh05YljtTekPPbX9PjuiFn/Wt/OJkBXnbAumaGdp34Dn 4B9uc62WA4MChYvKCTV8V37xmTfH/dumQf3XN X-Received: by 2002:a17:902:e5cb:b0:296:2b7a:90cd with SMTP id d9443c01a7336-29f2404b710mr169876505ad.32.1765989320111; Wed, 17 Dec 2025 08:35:20 -0800 (PST) X-Google-Smtp-Source: AGHT+IFwOv9nHjP6e4rUF3j6KYca1AcLzLfSlGw7UOAw1YHneczpAa76mOInSGYfud6yFOrzEM7JDw== X-Received: by 2002:a17:902:e5cb:b0:296:2b7a:90cd with SMTP id d9443c01a7336-29f2404b710mr169876255ad.32.1765989319461; Wed, 17 Dec 2025 08:35:19 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29ee9b36af7sm204721055ad.18.2025.12.17.08.35.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:35:19 -0800 (PST) From: Mukesh Ojha Date: Wed, 17 Dec 2025 22:04:40 +0530 Subject: [PATCH v9 04/14] firmware: qcom_scm: Introduce PAS context allocator 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: <20251217-kvm_rproc_v9-v9-4-ab7ac03e0ff1@oss.qualcomm.com> References: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@oss.qualcomm.com> In-Reply-To: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@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=1765989299; l=4036; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=MTke/QM0PFjN8QJGwMVznBklB/oOZJSHHEy6N6Uhs2I=; b=8qm9J440ImkkEOrX9lhBxIjnEf8H3iYB7vQriZ/Zw7s7iQ9LpFfqX3Q4Pp2Q0i8Y8D19CPWTj frbqu0b1cYSCXMcjCT55EsnHZZeaxy9vRY+TmHbVM8jM0pi0FxcfPRK X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-ORIG-GUID: bLeP9zclXN3RI_FUyzoi7z2UZMaTHMIw X-Authority-Analysis: v=2.4 cv=ALq93nRn c=1 sm=1 tr=0 ts=6942dbc9 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=FtZ2CgB1kwCBZN0VdloA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE3MDEzMSBTYWx0ZWRfX4WgKRXQpQiDo zrmM1MS0UMgh0PVJAZHMxoKL8RLbQ4QYW9vYBr/SpslrYofEOSy39QXuBCYLwi/Gg7lKy3HsYhv mHoIRnhGI7nH6lz6vfQORKXannnQnllJgLuDj4LiJ9GwGRLculowAHfKmnLoS+oK0XtTeEfw5bS tPSJ4tX6asqfOjvnb7Dh4FZz17X9RgmhdyWss8q+YpQBNLbhENqxA/pu3+NROAEa6tRH2KD8ath jNmCSSEjTq/4r5EqrxjWQVU4Sz9hnuEm+0okYqdEgUP72+WE5r46Qxxd+dULRhRGZ/00nBdIcGa VWZMo8p1RYtoNYyfuvzNSah64mfdfoaHWU2p98BsDsMSjrJggZZUM4MVezifNujnPmcJDysh3gw K9ZLFmqy0QIbGnZZyvJcYLLuCowxYQ== X-Proofpoint-GUID: bLeP9zclXN3RI_FUyzoi7z2UZMaTHMIw 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-12-17_03,2025-12-16_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 suspectscore=0 phishscore=0 impostorscore=0 spamscore=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-2512170131 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 allocator helper function. Signed-off-by: Mukesh Ojha --- drivers/firmware/qcom/qcom_scm.c | 34 ++++++++++++++++++++++++++++++= ++++ include/linux/firmware/qcom/qcom_scm.h | 14 ++++++++++++++ 2 files changed, 48 insertions(+) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_= scm.c index 1e1057638e98..5162c02f5f88 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -558,6 +558,40 @@ 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_alloc() - Allocate 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 + * + * Returns: The new PAS context, or ERR_PTR() on failure. + */ +struct qcom_scm_pas_context *devm_qcom_scm_pas_context_alloc(struct device= *dev, + u32 pas_id, + phys_addr_t mem_phys, + size_t mem_size) +{ + struct qcom_scm_pas_context *ctx; + + ctx =3D devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL); + if (!ctx) + return ERR_PTR(-ENOMEM); + + ctx->dev =3D dev; + ctx->pas_id =3D pas_id; + ctx->mem_phys =3D mem_phys; + ctx->mem_size =3D mem_size; + + return ctx; +} +EXPORT_SYMBOL_GPL(devm_qcom_scm_pas_context_alloc); + /** * 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..5045f8fe876d 100644 --- a/include/linux/firmware/qcom/qcom_scm.h +++ b/include/linux/firmware/qcom/qcom_scm.h @@ -72,6 +72,20 @@ struct qcom_scm_pas_metadata { ssize_t size; }; =20 +struct qcom_scm_pas_context { + struct device *dev; + u32 pas_id; + phys_addr_t mem_phys; + size_t mem_size; + void *ptr; + dma_addr_t phys; + ssize_t size; +}; + +struct qcom_scm_pas_context *devm_qcom_scm_pas_context_alloc(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 Mon Feb 9 14:04:53 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DE4F034D900 for ; Wed, 17 Dec 2025 16:35:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765989328; cv=none; b=sj2K/OaLMdiVDz0Y+sXgtR/PyuXQdf99MM6tGlYFuIAi1ouylFK+M6R4TolMPYs7trz1sEghAXvReCM9cCy7smzW0XzZwGAVTOk2GeTaaS8cTDFw3qjCmwuEmi0UJzAAlUKCEKz1RTUuSiSIeDdIg1HihGbTg4TXjWeJDQH8AhU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765989328; c=relaxed/simple; bh=pJUGPpu5glL2PXZtxuhzRlV7CJHJhDbKuBaPBx2/JMo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jshsL1EXgRCeao4qsTlY+nDHn/j0bsKU6FFREkcNsveGP6bk7DijK9uugqm0+6Fls4HhQHg8QnWesLP0Yqde2fTD52eqgdcL+18v2scfh1Povc0GO3VGXnWZsYc3uia+/VUyI64FnZnx1g68irnsMKTggOef3z1koezT9MOX1Gc= 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=ISCpe+le; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=HytMWneV; 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="ISCpe+le"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="HytMWneV" 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 5BHCL9JW3002293 for ; Wed, 17 Dec 2025 16:35:25 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= 3nFyfw1ZJGyPAD1wbud4RUYkiACfuPdWcD8wAsIs/YQ=; b=ISCpe+leJk86XvtQ dbUII2CGUzDrR3yFWGwNj3oWfB8tke6ayy7IkNlfaAiSSoQoAVOuiz1+dreClRsK dNNDv8JbedAhzJF8VIao9K2RmpZWe9afMdgItpIaD2/4+IfxpaZT1/0LwhTrAOtK EuPT00nVnWBppOpfEPcziHISE197eA61zFCmdgcwtVo6/Zagrx/kG5N/DaCJ+XYR cJrt33UGIlZvwtaiCoHe7Xkv7eJ+vfV8n6CFOl+aUDR12MJEn4AOVwK/Lt3S81tE fuS5UbntJhdi5ryXvg+xIq2Fu55KWBv6HPOLA1aHl9ZJgmyjTJf9FL5D2CX8QEJj 85Frsw== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b3n332c5f-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 17 Dec 2025 16:35:25 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2a0e952f153so107024015ad.0 for ; Wed, 17 Dec 2025 08:35:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765989324; x=1766594124; 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=3nFyfw1ZJGyPAD1wbud4RUYkiACfuPdWcD8wAsIs/YQ=; b=HytMWneVvmEvyeOmZwAbcYlqyrbzJuSVMWSf+7RIb58ACJzUwxDJq1066mwFAF1uBT P30RRZEoSXXazrOEgrtpqNcr7ELATJO1zqWVYckZaVKnKtOE/m+OOrySm40xsHUzTCkT Vj7xpNEt/DoURROMcSwxiKKywvIL7XKKzZ1QOyDXvin53KKuVeAqRgtaBeywzuArZuVR qf3txX7SNcoYCD2oWi4m1H9pKxnsNHDYGnhDhUSuJs4sFGg1ov+YhdR/PlAlzTs8MPgZ OUVZ0mjtkPxOhvjUiIJXTjS26k2MNLj8cJhJHjhEohYAtxSOyJhn7DU1e9hPgkCXJMoe UMUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765989324; x=1766594124; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=3nFyfw1ZJGyPAD1wbud4RUYkiACfuPdWcD8wAsIs/YQ=; b=bIy+C1sc3VAn7z6F/j+s+G2pPSa3j03rREfm1+R+pLZCFC+d9Q2rHgR6RkDFuX+QBr tKysAzxCU8TaSSmgL6eSI/lvQ1SrlkSNyLE2as/cGYCf2B6H7vCazi5Y0Jv17t4sU19D vLGWFFM2Ev32a5+rax23PrhWnWHcYsvE1WC2B5eYVbpY1K+GTJrtD7D9ld+6zNwdPLhI 0mMWEBqUcuB7RKFVlzoAVTdt1pOo7aAu7lPV+hGj5SrX/blxStm4+suxy13X/0LH7RWl 9lUxXtfg9zTWMv2T5IZwZKJ72t7XZyOjEfjRpzO2eYqHtdIGe0oW5SZKHJv1VLtGIUt3 LNPQ== X-Forwarded-Encrypted: i=1; AJvYcCVlJ4/i5bzOjgg/PHqLVMOhRI9RPLNukF+JOP1dv/tQwpbRhHWPILUtFNzZal4EVSwuqcXN4ZGdFTUCW1o=@vger.kernel.org X-Gm-Message-State: AOJu0YzDRWIZP5lYaYtKGrnuoJN9iJhrwZLvnnSrGvcch0hibw0bHxSB 6sobrIhE7D9+wPLeP2bHNc7YkJms+xFK8amID/m4o1A+pIAWyJGawDNXofHQXhzYnw7wvYpVkg6 2xLk0HTUQ6rL7RIoPR/B5i3890z3v9/x+ShjDsdStrshoEzuvo3jCldwl1whMxgDD9AQ= X-Gm-Gg: AY/fxX6jyPRW2N5h7Um0PUs3TJJSvuX3tdilJGUy+aX4IfRTiJ5pTMu8F1xKzk9lmiQ QsIQc2njYWI7Ix+l/YqXOkRIiz+GVesQgzyKYJYAefMI8y6tQFGHwwVnTaAd+cRXbEYjV3/lwx9 V9ynUXr3zY305QBWvDsCJLY5dzuoJO/8fo6bjihqHaWk0W332JlkZiTo6JNsP/foeHNe/J2KsUR LoTq8eCT+fTLgDXGzuP1AXQJd/lSh3scoCqrOooBgfFj0Ej8CDGFVSWuIMoTGpn7MaPUlwGrZ8l h/+JYUG+XRbjovI9Na4TkX3+E/YofdrfC9njSuvacHaw965b907DttnDnEJ2JNXbnIFW1vqUDcX 5oHu3mgZxQkVlwp5IoCno4pbwiz9UCrp/eJTx X-Received: by 2002:a17:903:38cc:b0:2a0:d43f:c934 with SMTP id d9443c01a7336-2a0d43fcb3cmr113433615ad.8.1765989324263; Wed, 17 Dec 2025 08:35:24 -0800 (PST) X-Google-Smtp-Source: AGHT+IFFqUhi856/bUEz/n5MhCMDYlrXvI/HDnq0Dt7qEie5rTmdw44V+dM0ehL0f/6ZzPKxZ1RvAw== X-Received: by 2002:a17:903:38cc:b0:2a0:d43f:c934 with SMTP id d9443c01a7336-2a0d43fcb3cmr113433135ad.8.1765989323290; Wed, 17 Dec 2025 08:35:23 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29ee9b36af7sm204721055ad.18.2025.12.17.08.35.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:35:22 -0800 (PST) From: Mukesh Ojha Date: Wed, 17 Dec 2025 22:04:41 +0530 Subject: [PATCH v9 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: <20251217-kvm_rproc_v9-v9-5-ab7ac03e0ff1@oss.qualcomm.com> References: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@oss.qualcomm.com> In-Reply-To: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@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=1765989299; l=8850; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=pJUGPpu5glL2PXZtxuhzRlV7CJHJhDbKuBaPBx2/JMo=; b=CybVlcZVMw6wUGv8feTNzBJqgHWyEEzrhyRsh22uOtb58u8xAz7B4GZxqO+wHeXp8DlHyBUnv eoHqS96RCOsAfS4Pxfd6+N7FDqr+MsZHii7ikCn1o6BP9uSZHUgw98x X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE3MDEzMSBTYWx0ZWRfX4HGJ/ljjnDoR e8FGzoQ4PwNdv1xRXren7a+xLCGsICfaxdLWqao2stLtmWOFJ4K86v1KaZVZmJJZM62MkJtyns9 t86kT6Chqp7ykivA+8KSAHRJDcYHXWJ/uSnhKqrkpxv5NRPd4tAvOAp2SnEdcrwPVMfmYmwMKZs rLXWURlPXuH3Wermb6CxQLEYzEQS11QS9YCrBVV7cYjfku+7ZBaSB4aButLCAfI/YdxgbNR+n1+ JBjmXhA7ol2ImXthvexEvXG/JDwDDfWdtvQKNhlLfbd01wJIoJUBKkEBYqSu1zUVUY/QXOs/4Tq clYMZ+A9JlMgZvEVECVCNAZDAwjdEdxVV5605ii/ltl+ubKOCzsWzOEwd1yG4cy8HKKA5PA21zD CX97JJQm4AAGuAKFO6xWjh5WPfeYPQ== X-Proofpoint-GUID: hgnYzh12fYFMxN7PaZhggGWEhqzecjzE X-Proofpoint-ORIG-GUID: hgnYzh12fYFMxN7PaZhggGWEhqzecjzE X-Authority-Analysis: v=2.4 cv=U82fzOru c=1 sm=1 tr=0 ts=6942dbcd cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=FPhKjH8jRcijH9SIsZwA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC: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-12-17_03,2025-12-16_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 bulkscore=0 impostorscore=0 malwarescore=0 priorityscore=1501 adultscore=0 clxscore=1015 spamscore=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-2512170131 As a superset of the existing metadata context, the PAS context structure enables both remoteproc and non-remoteproc subsystems to better support scenarios where the SoC runs with or without the Gunyah hypervisor. To reflect this, relevant SCM and metadata functions are updated to incorporate PAS context awareness and remove metadata context data structure completely. Signed-off-by: Mukesh Ojha --- drivers/firmware/qcom/qcom_scm.c | 8 +++---- drivers/remoteproc/qcom_q6v5_pas.c | 38 ++++++++++++++++++++++++------= ---- drivers/soc/qcom/mdt_loader.c | 4 ++-- include/linux/firmware/qcom/qcom_scm.h | 10 ++------- include/linux/soc/qcom/mdt_loader.h | 6 +++--- 5 files changed, 38 insertions(+), 28 deletions(-) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_= scm.c index 5162c02f5f88..4edd475ef848 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -601,7 +601,7 @@ EXPORT_SYMBOL_GPL(devm_qcom_scm_pas_context_alloc); * 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. * @@ -610,7 +610,7 @@ EXPORT_SYMBOL_GPL(devm_qcom_scm_pas_context_alloc); * qcom_scm_pas_metadata_release() by the caller. */ int qcom_scm_pas_init_image(u32 pas_id, const void *metadata, size_t size, - struct qcom_scm_pas_metadata *ctx) + struct qcom_scm_pas_context *ctx) { dma_addr_t mdata_phys; void *mdata_buf; @@ -674,9 +674,9 @@ EXPORT_SYMBOL_GPL(qcom_scm_pas_init_image); =20 /** * qcom_scm_pas_metadata_release() - release metadata context - * @ctx: metadata context + * @ctx: pas context */ -void qcom_scm_pas_metadata_release(struct qcom_scm_pas_metadata *ctx) +void qcom_scm_pas_metadata_release(struct qcom_scm_pas_context *ctx) { if (!ctx->ptr) return; diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q= 6v5_pas.c index 52680ac99589..bfcb65aed008 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); @@ -760,6 +760,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_alloc(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_alloc(pas->dev, pas->dtb_p= as_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 c239107cb930..b125140100db 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 5045f8fe876d..ad69b51fe6fc 100644 --- a/include/linux/firmware/qcom/qcom_scm.h +++ b/include/linux/firmware/qcom/qcom_scm.h @@ -66,12 +66,6 @@ int qcom_scm_set_warm_boot_addr(void *entry); void qcom_scm_cpu_power_down(u32 flags); int qcom_scm_set_remote_state(u32 state, u32 id); =20 -struct qcom_scm_pas_metadata { - void *ptr; - dma_addr_t phys; - ssize_t size; -}; - struct qcom_scm_pas_context { struct device *dev; u32 pas_id; @@ -87,8 +81,8 @@ struct qcom_scm_pas_context *devm_qcom_scm_pas_context_al= loc(struct device *dev, 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 Mon Feb 9 14:04:53 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9149034E244 for ; Wed, 17 Dec 2025 16:35:30 +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=1765989332; cv=none; b=Qh1pafLG5TD7XRmUKhgXXjOCRmnYZ04jorKWMhDO/4vHdR1wjoOcYoETMQBo7/lyyj2GnKAgVmCIhfwzGTUoCFdkZQGwaaX9VRsJYia7IuG/ia3niEkEHvae8KLTmdH/WrSA0rvYizZf2cVeNaPMjfGcbu1hVRFLiaY2XOTcBqc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765989332; c=relaxed/simple; bh=6F8K/zkrX0qeC580/xJB2YdjtX5REOOH8FpswaScz30=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=MKgFGTbV1JqcUInoRV/OzcXXOZDN7QvuyuGpDmDq0ea76VDWzh+n6XgM+UgIjBF+dPbc7oUfgSRjOTAn5iZ+nXDeGjAbxaWZEAfLPtGJggYPfsi4zDmxMwczghF7smV4gkoSEXZEHfP/IWj/JcUO5zKDImjTZFYhLn+6RV3tAEs= 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=TEfSZCf0; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=KW29utnr; 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="TEfSZCf0"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="KW29utnr" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BHCKoXm2042720 for ; Wed, 17 Dec 2025 16:35:29 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= 786iM0/9dnDx7bEo0CycJSZKYjOjPKU4LuDUpimk85w=; b=TEfSZCf0zni3Jk7Y 6Gglc7j851J8LIPJTssUoaXG4XuwsF9x0RO/O1O00Lnq9Oh9mk/WuCRpE33CaKOR D6iHYdt6fzDrgso8/FKZ8H8YvG2WbaFPjMVXVtGqmbwAhUzJDu6NCnfnVv1c0yJj sGCWYZeePF7VHbDkAQvnfeG/ZXg+U9tHp+k+LyehLN5NPGk9szfcw4dzL3lPWApb QiO/Je6W7EI41KyIkMKyPkd3XXtV5aTWjbmNq3LBQx1UiZOra/FRb2qD69Uzyjdx xwY0dIJ45w9Dg857V5hmN/0J9Ae6EyVAO0/ktTIC4NUrAfyLJgXdOUd9KQZl1s2a GWzaIg== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b3fj1u83w-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 17 Dec 2025 16:35:29 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-29f1450189eso6934135ad.1 for ; Wed, 17 Dec 2025 08:35:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765989328; x=1766594128; 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=786iM0/9dnDx7bEo0CycJSZKYjOjPKU4LuDUpimk85w=; b=KW29utnraKGSrH3yW2ckqglEVR8oejBsfa5HJrU4wD+pjgY6o32YrCd3W0IIzixdJy RZINxGS5wecObn0shdS4SVi08TZlSYNG0r9JYyywsgV7uCYV8EhMoERtq1030FdimYgg uVkUQx/HyH2cUeWUQziZ/LoSfDl+LFM94buBvbgjELSrw67QraEtOYsEbUWOP/bMW9Yu +JBGHnQY/J4cN9+Pxsb7Vs5xJPoLonFgize+kma+rs3nDgFVDkY9UJGRaiSQw2HgXZBR FsJVE37aRqdpQFOAJxkXYZsec3Dfp+jplFpomUTxf0ohLMiLDaENIdUPfzqJfOXy4dnY sggA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765989328; x=1766594128; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=786iM0/9dnDx7bEo0CycJSZKYjOjPKU4LuDUpimk85w=; b=hlnafzRrg5tpgUsFVYRyH5zR4pD/eaAIDdnyeAtD6ODhOb8Z6sAPHnzyu8v3noat2+ 39af1bkWS0szhpIt1qoN/xylZPD3kkajcV5WOLEPxKrrZ8MJxj2mv9UwSUSnJQCMYBM1 TuSnzYF0OYPr+uCrelHOjP0TIhTkR8XzOk0gUvqXwtR9wO1dOcK57fqbALR2EhNE+Nam 1ch8HkfSzU4kpu+vjl1vbnCL7Y7fiV4+ZdgQDC/C32uupV+Dc1gtlpXHGoFKZLZJbMCm 53hUP6xswWC6+VaOYnzSb+wT+kChof+Nl46ii5J5lCVXDzGqRTu2jHLpz32MIyY5zc13 yrnQ== X-Forwarded-Encrypted: i=1; AJvYcCXQ3LCzxkvdl5iU6GmI1Kdr+Sdk0MQPLBM5UVdIYx+yE3X9BAW61y0R8p/y9c+tdkKdkaNc7AvVaa9Ysu8=@vger.kernel.org X-Gm-Message-State: AOJu0YyoMIv12z0lsu7N4ox2vRlhFM+AtZB6qlfRN5rzMlXjIL1OvKd6 VwjLnhgoql36BIQhxwoHTdtXNbt4J9LzmtAXZh1/2mlnafWL1Fdkvm8qXipSorbV815YDW2ofyJ 2gCwbg1UFH4L3eAJhtkVJNXUmL17gWJLrPsUNeGt3Au8XN3P9Cdzfs1YlHBYCWHR9APo= X-Gm-Gg: AY/fxX595ytZ8wP+J068pLQPHgwYLzZojFYMoU8jz2yqIOrq5iN8TjK6Gr5/dnLKeX+ WTQGpovtnF4BnNBHbsp9u1ODEqDiSBrDTysRfdW6a67vApn9IVUK7qMUBQgI2HK8S5248Zvce/a O45Jd5VjXPWI7gHRWiGa+SoYYwtvgooDYkl8DTLsN3Xt2CwYTJqfukaXATEGlHZduZs3ioFWzmd IJpSVh+INGMRsiTFdSRx7cQtVz3yhmVej4OgRZ7uy1u8IdJa/xJPZ67PyVwz8XPy8qtTmqD/Hxt PV5dFYFOivy0JG9XCwbGRpCX26lfyL/rRBhwmaPb4HGOhCWT8OnAquotRyujfuikeZIQrvBNy66 r4EhPG70BX9mzVGokCoG6H4WBKO5db4ICT/aj X-Received: by 2002:a17:902:e542:b0:2a0:f0e5:74eb with SMTP id d9443c01a7336-2a2cab2bd2amr81045ad.28.1765989328107; Wed, 17 Dec 2025 08:35:28 -0800 (PST) X-Google-Smtp-Source: AGHT+IHsXaMJdpsrhK5fLovOkWw7stgnK2NdCk0m7p1NGBrLYBj77YlQmcA22h8/7HFWHsnBETbGPQ== X-Received: by 2002:a17:902:e542:b0:2a0:f0e5:74eb with SMTP id d9443c01a7336-2a2cab2bd2amr80645ad.28.1765989327492; Wed, 17 Dec 2025 08:35:27 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29ee9b36af7sm204721055ad.18.2025.12.17.08.35.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:35:27 -0800 (PST) From: Mukesh Ojha Date: Wed, 17 Dec 2025 22:04:42 +0530 Subject: [PATCH v9 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: <20251217-kvm_rproc_v9-v9-6-ab7ac03e0ff1@oss.qualcomm.com> References: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@oss.qualcomm.com> In-Reply-To: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio , Mukesh Ojha X-Mailer: b4 0.14-dev-f7c49 X-Developer-Signature: v=1; a=ed25519-sha256; t=1765989299; l=5691; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=6F8K/zkrX0qeC580/xJB2YdjtX5REOOH8FpswaScz30=; b=21fsj2CTmQL9BwFKV88aPEWlIJfrq8cTzidFVBR8fysHYqxSR7N7J3RJ+SdwPUJga1Bz2aLJK rmUov0+y2QCATZLqgAmf3pFqOh3OXL4RIC1DSISd2K6dNGPXH6SziIx X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE3MDEzMSBTYWx0ZWRfXyuyPv3Ori9eY LT3oncWvRURIHgK14GIjbfSOtsIk1D06Xh4d7H6fDhAxPINsBVTnlBN2nu9kks80TubOZR4SqSa nmY+c0S/Ew2tXZDufI4rsDjDJde+9qc79O47MJ3z0rap86cua/9zMNUVvWbrH8H0b29pZZIYUXY /qPidpYEf/OWneD8d6GQPmkZy9zREwuEEcJ4nzNtFDPdqZfNTWydC/XIDwtlEjVb+8h8+uEuGBY 1m586TS+Pe9ZgeU/Djqa3BkvoaUiOo9E2xBFKuqJ3z7wrgFnOuAOmWFi/j2b6i8w59ZVxuRMN/g G3Zd85PkCDuiojtO8bvyuGZk2DWJoABUyDjsU1esNEmlkSKnyniCcWcfTPeSXlqxcKXsn8UQZik 5qsGiBx4Jksbm/pW+3tKAUfRbL2qTw== X-Proofpoint-ORIG-GUID: -nnbtR_C9kcOKxV1BMjEsXD5FQ8X36zM X-Proofpoint-GUID: -nnbtR_C9kcOKxV1BMjEsXD5FQ8X36zM X-Authority-Analysis: v=2.4 cv=edgwvrEH c=1 sm=1 tr=0 ts=6942dbd1 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=lkfLrt0I0aiTJqoH1swA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC: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-12-17_03,2025-12-16_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 spamscore=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 adultscore=0 priorityscore=1501 phishscore=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-2512170131 Introduce a new PAS context-aware function, qcom_mdt_pas_load(), for remote processor drivers. This function utilizes the PAS context pointer returned from qcom_scm_pas_ctx_init() to perform firmware metadata verification and memory setup via SMC calls. The qcom_mdt_pas_load() and qcom_mdt_load() functions are largely similar, but the former is designed for clients using the PAS context-based data structure. Over time, all users of qcom_mdt_load() can be migrated to use qcom_mdt_pas_load() for consistency and improved abstraction. As the remoteproc PAS driver (qcom_q6v5_pas) has already adopted the PAS context-based approach, update it to use qcom_mdt_pas_load(). Reviewed-by: Konrad Dybcio Signed-off-by: Mukesh Ojha --- drivers/remoteproc/qcom_q6v5_pas.c | 24 +++++------------------- drivers/soc/qcom/mdt_loader.c | 31 +++++++++++++++++++++++++++++++ include/linux/soc/qcom/mdt_loader.h | 10 ++++++++++ 3 files changed, 46 insertions(+), 19 deletions(-) diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q= 6v5_pas.c index bfcb65aed008..f746d2f39a1d 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 b125140100db..50c6a3c6b2a3 100644 --- a/drivers/soc/qcom/mdt_loader.c +++ b/drivers/soc/qcom/mdt_loader.c @@ -478,5 +478,36 @@ int qcom_mdt_load(struct device *dev, const struct fir= mware *fw, } EXPORT_SYMBOL_GPL(qcom_mdt_load); =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_no_init(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 Mon Feb 9 14:04:53 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CA71A354ADD for ; Wed, 17 Dec 2025 16:35:33 +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=1765989335; cv=none; b=ChUM5OuHnCub6fJ2n2J4FvekIXX+2M4mYIYq/pJ64YjAEzCVpjhgS3m3alRn9kK0F6oTCB1lK3oBWfSmnhjQBL43fx4PCKhxZId5PDaxGNstKv0gu24/7aU+/7PoVf5vGPC7o8WVoYbAhCdSHH2rR589sTM14DbvaiVat968ZXg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765989335; c=relaxed/simple; bh=FAxVohbaSqYOeL1tiCXnhoUqP1k3h7eieaHb5VvFGf8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=MCmBg6gAwjXSs+7BkMIMQFT2JBYbeWfpy2EuuNOKNNE0aUC9tduGIrgTPUcx1/17o619+3H58vkLvBrotVG6GF8IDjU8YC4YzokvqLA+WL6lKqLpT039aXPFdi7O80yp2m3A+AAtmV8gspCwZ55Bx3S4lAX4t+FjB5ZDvhuL5tc= 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=WfcKZJaM; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Zvl7RtjL; 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="WfcKZJaM"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Zvl7RtjL" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BHCLDMt2684405 for ; Wed, 17 Dec 2025 16:35: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= YGBJ3wXs+b7+nyeDhGQJtyljMMb0eEpcnD47PuoXhNo=; b=WfcKZJaMQ8TMSyLt M02v1gRmrQlh2rlcquwUuQx2GbxvGHvhh4GwLijVAgC068SglFyFwBdk4jc7bErF ovXMhFinklzbxn7UJZfEN+vCeI82ggU74o8p9ssI16+AgPS2Bn5/Nu+Jy4FtTHAn Dwdg48trRdS61iTaamkzHbj+0B7a4gxb1V74jt1Ko/FUK8JuwOMHsaBTi7BAirQu NmRh+YE6iVn9TGHaX2IJHdySekdUnffUovnjZA1VhJ9GA46bjyPSxPH0NX6kfxWJ m1DFibirFFLG9peCtzMK4aR1/JAVGwG/0RsxfebrC+uZY5yxlZJd5HvrxK6I3mpn rm6/GQ== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b3kketm47-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 17 Dec 2025 16:35:32 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2a0a0bad5dfso86030805ad.0 for ; Wed, 17 Dec 2025 08:35:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765989332; x=1766594132; 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=YGBJ3wXs+b7+nyeDhGQJtyljMMb0eEpcnD47PuoXhNo=; b=Zvl7RtjLYzleqKRgy2e0eymMKkv3yzcKUrOdhBVhtzXpj+kC0pDBUFNwE6R6Z7E4wb JUrkP8SW5YT3WDol5jDcmaOyWnpkzC7aT/zXuFM8WLoral9f3oMpO8e7RxD0hua8hvf8 sGu9u/lCiNSHGQkRVn4+jaEKDqz6C9Odh9ht9x8ZMeCCYr+QkBD/YhSG2uUuju1m0l3I WL9ZaZY1HQaHx8iAoPm7GRJZY2FC0MJ95SVLxxlgLQXehqlX5NeNAkGgqbTclab6Ssmr lkx7PrjWUawSSrw6VbVe0FVCeSDY6+kjs+QMMbA98SjFCc+y6KFyMByw8bV2r1QjQbDe kaMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765989332; x=1766594132; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=YGBJ3wXs+b7+nyeDhGQJtyljMMb0eEpcnD47PuoXhNo=; b=Za1whcocW2PSB+RZCjJJTQowtqR61+K9frb3kxpwicRGhblclFwIBe5fuac2n9CCG0 ExSCbJAkx/qhbiuhHNFmGyOP8/aM5pnpGMWJTo3NLmPV6/VKif+hHKXKdypKB26TC0dy urlHJNrklACiOmhEvQ8+zAyI3UeGytV+0MCnSr2FvRuMge24BmBxtpEzRkkXD/lay1yA DZT5+bRjML4j4PwhgIDaoWKro6tSW67MU8ZWDP19xgXfa1TT+Vr2dfWk+/xFPysnRB/J tl+mg+6PdXeW4bLo45DpBIuQ4BjwS8x3s9q1N6jP9FDZ9Er+NCrsBYNwJALy/X2YqXle 8sBQ== X-Forwarded-Encrypted: i=1; AJvYcCVWVCRh7PPam83mIG7ZMgWUBTRZdQVCh5WmqeWJRXUlDBYL3uI4mM/Kr71EYCRaKZQXGC5+vBx0jGnHk5g=@vger.kernel.org X-Gm-Message-State: AOJu0YySPuVbZoYmxvztN3oTeKP8NJdfZ5wkZI1mxRoB8xeBISUFyA0c N4QZ7B/J3MpzOT6QBR0DxNZskZ+Uh6IGYWCDmrpwRy0ZHmx5jVF8lwqVLFn/lRFvYipUARcEUuP cJYht/NyojykI16u/fG9DK64tiRVj7N1oOJGOz9fm2ONpGDf33JR57kwESYM1dF/MrNw= X-Gm-Gg: AY/fxX6eeWg3BDII6yFoLp+1k2x3z8u/CuFa4uxnZUE5qvZL0R8jWIviN9+N/lKzPMV 5IxdS/1mYansWYLKh6Sm/MjHCv9UQAIDsfO1tiw87qe0HiLx0FOa1kSgGkI3CXHdkJWl+gV/Haq wrmOWdmMOGFir2BeF1G0QP0BEPBtOUSCuW7FMdkJffAvv0fbfiV5McLvUqoiHu53jvdQYe8yjm8 Pf2Xt9scNx0vejNpU5hmBvusFGUStJNhvmrfF41OxIcQrmYukfBavQYcRRxHrtg9iox4drncV2W VYVeYTLbp1jKFXWsIoKunBK7gwPL2XkO7A0Mt/0nDwZ7pj0IJnRqxbHiBmRKJfro/9Hi6B9EHRa gwZ3SYmKKWZm7ltfEjY7SkyV2CaoLzxsKZP2M X-Received: by 2002:a17:903:198b:b0:2a0:d59e:ff67 with SMTP id d9443c01a7336-2a0d59f0258mr107033085ad.38.1765989332162; Wed, 17 Dec 2025 08:35:32 -0800 (PST) X-Google-Smtp-Source: AGHT+IEYgRpzdDXsmzuKXAZFeBMmQaeSzJ0GI/Lnsu7gljh0MviilVmNKvIedyUebebrTOwmGMz+pA== X-Received: by 2002:a17:903:198b:b0:2a0:d59e:ff67 with SMTP id d9443c01a7336-2a0d59f0258mr107032695ad.38.1765989331500; Wed, 17 Dec 2025 08:35:31 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29ee9b36af7sm204721055ad.18.2025.12.17.08.35.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:35:31 -0800 (PST) From: Mukesh Ojha Date: Wed, 17 Dec 2025 22:04:43 +0530 Subject: [PATCH v9 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: <20251217-kvm_rproc_v9-v9-7-ab7ac03e0ff1@oss.qualcomm.com> References: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@oss.qualcomm.com> In-Reply-To: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio , Mukesh Ojha X-Mailer: b4 0.14-dev-f7c49 X-Developer-Signature: v=1; a=ed25519-sha256; t=1765989299; l=3524; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=FAxVohbaSqYOeL1tiCXnhoUqP1k3h7eieaHb5VvFGf8=; b=6UMU+GKj+lHADAJD13/SwbP2YBESFQ+mYB1+HWQdnaMF9y9VwLRQnPMT0a7AvkVhs9/PZnnpb Xc403LqhbcUDVXFsq/YZ/s6sUEsg5LPWzHDAr6Opzky2ob2aWUjCjZ5 X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE3MDEzMSBTYWx0ZWRfX2IaSYRzW3fbT eY7O3+kvz//25Yw4wpq1C/U6hG6axr7LJ8Yt3PbP2LjsDID8iQrsZMJFKqcexOSy/wJR1YwFWEm C6p4NJUDpAiEhm93vZ/uN/VGjO+rV8UkOhbpkob3ADe5s331Q3rLZkDi2YcQa8K5xzmcUTwNCPt CwEEQRdXhGu8l6mAblhO6b159up0oQMjkPAbjYN34oJ1N3ln310rabW+mTfKXBqgvOZLCK0Q1yj 86zp42GGgqY8Ij81qyIYHSyRcZU6fXqF+BCDahCO12lgTjeUiKWzVZEI7ebwxPpd0NPUWjnEm7f JHrgQTFJXbp1Ei9TGNQzRihJSQMava0DXxa8XGzxPreN4RHGDshNaLgyK4DWaqouLoa77Wl1v0t wkfuRKUXqKvc6MDS+XHWF6Io7dahDQ== X-Proofpoint-GUID: 7OI2RUCnF0fZWnSZWt9uKjS6NEkaFhSu X-Authority-Analysis: v=2.4 cv=Fcw6BZ+6 c=1 sm=1 tr=0 ts=6942dbd4 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=Z4Sw7GGoVt5sTUwIiKwA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-ORIG-GUID: 7OI2RUCnF0fZWnSZWt9uKjS6NEkaFhSu 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-12-17_03,2025-12-16_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 clxscore=1015 malwarescore=0 spamscore=0 suspectscore=0 impostorscore=0 priorityscore=1501 phishscore=0 bulkscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512170131 qcom_mdt_pas_init() was previously used only by the remoteproc driver (drivers/remoteproc/qcom_q6v5_pas.c). Since that driver has now transitioned to using PAS context-based qcom_mdt_pas_load() function, making qcom_mdt_pas_init() obsolete for external use. Removes qcom_mdt_pas_init() from the list of exported symbols and make it static to limit its scope to internal use within mdtloader. Reviewed-by: Konrad Dybcio Signed-off-by: Mukesh Ojha --- drivers/soc/qcom/mdt_loader.c | 11 +++++------ include/linux/soc/qcom/mdt_loader.h | 10 ---------- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/drivers/soc/qcom/mdt_loader.c b/drivers/soc/qcom/mdt_loader.c index 50c6a3c6b2a3..054abc81e76d 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) { @@ -469,7 +468,7 @@ int qcom_mdt_load(struct device *dev, const struct firm= ware *fw, { int ret; =20 - ret =3D qcom_mdt_pas_init(dev, fw, fw_name, pas_id, mem_phys, NULL); + ret =3D __qcom_mdt_pas_init(dev, fw, fw_name, pas_id, mem_phys, NULL); if (ret) return ret; =20 @@ -500,7 +499,7 @@ 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 Mon Feb 9 14:04:53 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 50C3934D4F0 for ; Wed, 17 Dec 2025 16:35: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=1765989340; cv=none; b=NHR3A9adhjsWmy3Xm8UVOZJCO8aSvy36ynZK4/4GpMZw9NI5/wNs1GJjMSFJ3n+PRpUw9D6RJaHCHD0FdffX7h8CN4eBmZbeohZD2m7TMg0Q7UADl6W6UsdExrfNUz2AqKXv8ToSUrN9bMHqvlXJoo1zMSPAYgD6wr2wIhl2ZrQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765989340; c=relaxed/simple; bh=MURXPkpEC/xOXXV+7Hny+kxua83YDbtkof0k87rP6lo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lpTlnQ1DpPS0PglOB470oGLKywW9ITcBiD6smvgD4z6lgGq48G0YhKtb650Ryi4wCtj4WLz1rQkwhyqFXP3uGfMSWVdZc/6LXO1s+YU4aRe9Q/OKAHeHl4LQTt5a3+qkPOqGuCImEYptLRoVEun3tO8AbSvs72RIB5Q4nAKoGEw= 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=exmRTUtY; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=QoLSh34o; 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="exmRTUtY"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="QoLSh34o" 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 5BHCKqlW330694 for ; Wed, 17 Dec 2025 16:35:36 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= qT5BFepzd7rbt0hfArrMBQl3VS+HZqO+X5pcltw8Y8Q=; b=exmRTUtYrmKPDdAH yCVirK3m0XynGCRwdqQA7/34RKWTNm+8VRwEvVxka0bf+8GSwrYdP0CnK3acAEwY K/QY6ns24EsEjRRqZgD4RBQd+fVTpOZcj58Phs/j/NOOfGq6zhKg0x+ZtS2otGeS lyY2nKLu4ioJJvChH2U93z7Pu/fMMiDafnk/1XcF5XR3oWOtYfvX3sNvGoxMpB2N FssvBlJvy2F3mCjjFzCBlaALiBkVBbt5oCgmT616rDo47ycBKyH93m4mCcJiBaLU BiMVsi3eJlaE/oYg1ORP7PC2RG9D60fmHNevRC+9KKO7PsSLb8e+0Nj5YKPkLKdL PxPQhw== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b3t8e18th-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 17 Dec 2025 16:35:36 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-29f8e6a5de4so60763245ad.2 for ; Wed, 17 Dec 2025 08:35:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765989336; x=1766594136; 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=qT5BFepzd7rbt0hfArrMBQl3VS+HZqO+X5pcltw8Y8Q=; b=QoLSh34oiItFRIEMU/wz34gLdrsowuFD7ATAKLT3kU5EytZ4vqFF85LNCSpb8ESgPY LA+s9iuReXBQWOQ0sGQgpXB72RmvKtlm38M/qf4oELi5BbH1KrmNsNLPzpaul8pUYF9f 2DtSNVOQXKbap7Twr0MW5qknIR+xN3pZrOF3Nz1N8va/TozlAckluBnuHBj1dTHNWDIn hMgybqwEJte0uyMpDoSdnQ+pAKtSvIuajyNV2X3fTw5sMqIK4WB5E/4SdSV887juQSY7 m9vXcrzU27as2t7TDedZ6Wx5wHkDdDwNnl3I0HAh1I/tnMGLKTyxkMgHlFuDkaGbMbSN GHlA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765989336; x=1766594136; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=qT5BFepzd7rbt0hfArrMBQl3VS+HZqO+X5pcltw8Y8Q=; b=URv/Aub+FRdI7WNZwYFCJJQRr3ZLfPeKOyl+HuRyjA0eRKcv5kMRuY5w4lSvK0NXN0 ZoUqdxfV7KQpxF58pLYXQWwsLtPfIW106OHTjTbbjCaiimvZvRYTE7TvX5rnMRXfXISU 5fEA2utJpDVmq2gjbi8rFlMfjd2Tw2nt4nRSjTA4luT5WFH+lqntFrZxQ9hIGSW86BI0 bpQ2uIncQvEnnf6HpsXE7wUXdXICdrHhjTrMfGk8WKTC6qvHSvhzrg8ZY7e2qsUj1eyN 0+mHEK18CNo16Offd0LqWh8m0kwawf9qyZNxrdA5Ry135TBrCsC5IxaoUitvngrS0sHI hewA== X-Forwarded-Encrypted: i=1; AJvYcCUDMG2xkjKY+02NvHzYYosdHA92j+Xjp9W6OFEJUnZer+K/LMvOSTa463NqF+taVA40845VaBVT709uZNs=@vger.kernel.org X-Gm-Message-State: AOJu0Yy7GLzkf66alXik0nGkQxwgmFY5uLe03PzQRxy9GUldykICYzyM 3xYUFfXwkFPuXrbA4AZ26frsWrQxQy8EfurhKAWGF3HVF0bDvYGnpsYap2GycZXqp9xY5rVFvSY 7NIuC0+W9LqKGgFoy3rkIdRw0SjxKiRVi9qulp8bYDHPjHjMNsxIyowsYjM+z6opRq6k= X-Gm-Gg: AY/fxX77tltLw2u1isLMRRqkS3NWd2S9UqY2zdU3thwZwTeGSQRyw/j/uydBfFS0weU AUAeNNMyiL8cwJ6LnXTnzcUhtTUTzTHfxYrS4JqQVIFAKwRfvnhaNe3PE4FEPsaiHGEza4plGRs tk2x+idw6n6tpTklql6z+r3+aOJH9iuj719fedzpgxmec4H6DR5pbrEuEsIRI0BlFmK9Os75mEq ibPdRpO37kBAlifeqXdYWEf7chJILBafHAKsPjrDQYXPaUlcpzEM28ds45FX5TIShc08qzO+dxd bzJ7Uty9EDtN+xfpLAGayh18DxRO6pGHL5CDbCniBAJ59+TGZ+DZalY7ZIa+HO8i0zJn+KZ5MR/ VYnhTEZb+w/5FbXgBkig2oo6+6mP3l3l51dp4 X-Received: by 2002:a17:902:f608:b0:295:99f0:6c66 with SMTP id d9443c01a7336-29f240492c0mr166298705ad.36.1765989335847; Wed, 17 Dec 2025 08:35:35 -0800 (PST) X-Google-Smtp-Source: AGHT+IEzCuL08VsU30g18T5c0uG2WctXHpSQj/0LFKTcJ+aiLepK+rXLcud8l7XHVxe2Y9+DofgMbA== X-Received: by 2002:a17:902:f608:b0:295:99f0:6c66 with SMTP id d9443c01a7336-29f240492c0mr166298455ad.36.1765989335293; Wed, 17 Dec 2025 08:35:35 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29ee9b36af7sm204721055ad.18.2025.12.17.08.35.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:35:35 -0800 (PST) From: Mukesh Ojha Date: Wed, 17 Dec 2025 22:04:44 +0530 Subject: [PATCH v9 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: <20251217-kvm_rproc_v9-v9-8-ab7ac03e0ff1@oss.qualcomm.com> References: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@oss.qualcomm.com> In-Reply-To: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@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=1765989299; l=4371; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=MURXPkpEC/xOXXV+7Hny+kxua83YDbtkof0k87rP6lo=; b=ObETDsUYWpEwoGAOUYSBHqeMjTtOcABj8MqcUdIQxxkBXMXUfc7FhVEVrwnHzaiRtERGFYm1q +WQlp4QAVR3BH95FInqUTnvSpVRYkjQNLEVKAfroPdXyfNwQmse4xVA X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE3MDEzMSBTYWx0ZWRfX/rDbQCxPFN3K R4ZlGyqi3PIGhtBU3/uuM7toRBbcxNNIXo+ybAgcxb/Tyy7UCOgdZQKGD3765r8uCD2dnrMQC10 pLrsPutH40WUcqt0Ne/z9MKS7j3E1ykj+cHTd74sFl5sKz0YnvLFNV2oPmAj/sbHEdvu3RT9IJ6 mY5IuTcJjxNOrtdrIDvdUUVfale0ZbDCA4RRdKsJHK9Rv3788+PzP4Ud+tGAoTpl2t6VH8d6Ott Fe+sCPr9nhHw5XQ29oa6eGkNeFVFhmzwe/7kbawNps4nuB+dz+DZrzCO1GES26xB3bSTa2dK50k sdCGxzHTOotXPP6dV1P374Qp2e4EljJJEkdH+RNLfVjD5K1GQDAAy/XAw8rUIfqXwK50wxf/yRM npwAck+V5Ygx7/ArtEakpbFG001nPQ== X-Proofpoint-GUID: 7S4oST8xSOAlcprNwE88A3Kp7-l7ryAh X-Proofpoint-ORIG-GUID: 7S4oST8xSOAlcprNwE88A3Kp7-l7ryAh X-Authority-Analysis: v=2.4 cv=EsHfbCcA c=1 sm=1 tr=0 ts=6942dbd8 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=kRiLafTeVKqDyNwm7Q0A:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC: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-12-17_03,2025-12-16_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 bulkscore=0 priorityscore=1501 suspectscore=0 impostorscore=0 clxscore=1015 lowpriorityscore=0 phishscore=0 spamscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512170131 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 | 47 ++++++++++++++++++++++++++++++= ++++ include/linux/firmware/qcom/qcom_scm.h | 2 ++ 2 files changed, 49 insertions(+) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_= scm.c index 4edd475ef848..d3783166fea1 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -765,6 +765,53 @@ 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; + + /* + * 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. + */ + if (!ctx->use_tzmem) + return qcom_scm_pas_auth_and_reset(ctx->pas_id); + + /* + * 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) + 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 ad69b51fe6fc..d6d83888bb75 100644 --- a/include/linux/firmware/qcom/qcom_scm.h +++ b/include/linux/firmware/qcom/qcom_scm.h @@ -74,6 +74,7 @@ struct qcom_scm_pas_context { void *ptr; dma_addr_t phys; ssize_t size; + bool use_tzmem; }; =20 struct qcom_scm_pas_context *devm_qcom_scm_pas_context_alloc(struct device= *dev, @@ -87,6 +88,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 Mon Feb 9 14:04:53 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BC4603587C8 for ; Wed, 17 Dec 2025 16:35:42 +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=1765989344; cv=none; b=YX45hIr7caASAZhxQ0q1L/iu6aKAHS6owzB8pqvxUhzjC1FEFfqZaMz/39OF6YjbVSJp3gMqTne0sbzoB8FuSlK+QZAiNNMts1uM4Ahatt+z6A3I8qYsf4a2kJkN8nGIYIwYLSiwKzdw4Wq1CAcPMpcvr237adRCTC0i6xxnN7k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765989344; c=relaxed/simple; bh=pM4mmlZ5nFXTHkk3VIa4nwnosLDFYYB1BLQ8kvsmvPY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=XECHj3epS35bzqINjSjaCpMJRp/akaMjKE9AlRTHGgnS2YCFIYcFjwX36x+vcCq4hviZhwNA3dWzu38xGf3uKQQMRy7zP+50VoQg8GkUNbaCdLxBvmSlUmAJJHQwSJH8svEZktJ6lvribz1SUwM2vmKnVn2YlZuxe7G7av7vWfU= 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=mruSXSbQ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Ty3gaeqj; 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="mruSXSbQ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Ty3gaeqj" 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 5BHCKngS2764396 for ; Wed, 17 Dec 2025 16:35: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= f5iS/QfPo41o29sper4O46Z1M/HTU3Zvne2daPdF9aY=; b=mruSXSbQePG+IlNN r43ZXIIkPLTA1p1VpRfqOLD60HCN49saGGAntrn68cGCkJisAuGIjHBZKBV1D9iw n/3waPRPox20WztBWJ+1u5SMML5atr1PIbd+zowDxTVb8NDwI5CmG8DgWSggsNyv vPa4hZfejqgDxUMRARbd2i6ABSOAhdHg9fcfr4b0SXIuOnLBOteJkHh7BzI4eS1h El2yxiKJsHh8Bvrpu7A12VN6iXAsuoy9sfrVO640g1BgJNkcm3FA4g/MVKPM4QjE gRsSbbUKpW+uDpGsYSOQmhaU3IlwUG3qqq6GxzWbw0BJQ0sdpmQkJKkQpfLEW0I9 2gUj6Q== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b3fefk718-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 17 Dec 2025 16:35:41 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2a0fe4ade9eso41709575ad.0 for ; Wed, 17 Dec 2025 08:35:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765989340; x=1766594140; 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=f5iS/QfPo41o29sper4O46Z1M/HTU3Zvne2daPdF9aY=; b=Ty3gaeqjh2Az7ub/aMAp1TZrQ3lea/x3jSUpUDeXJcsOH7pJ+weHw6mUmpORiIpTH0 TJ+z1eeMLsjsid1nYVMB3Vvja3DfMlWzA3vQC0ICsZ4ycDEocOcst6RFJBfL9QWHetXe NOV0Twvr+dnvL+U0PEMwjerfgruDCgTIoptxsw0tAGukqvtEmHzIcLWiqMVgz4dtEY5c aE3fRSOajCyejDp0EhNzZKAOnvHbhltUJ6UHq1GSXXryy10j5agW+ieJptRuQELjIBN5 dyeR+8ZpZH5SKYt4v+YO6fhSkzcUdDuTylm6Gx9uPLZDcdgGehhAtDNArq3H7/IzWyzx tlvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765989340; x=1766594140; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=f5iS/QfPo41o29sper4O46Z1M/HTU3Zvne2daPdF9aY=; b=i2WjCPwA7Xog7AXCeAaKGoZB1vawvuHxZOU8LuStrwvEzyJ2imEvDoCbWAZgctl7RX JsaGDqWWOwecn40BBwsG19ilIS4uba3eO+xjaYg5s9ezXtl6JYXQZyETw746IhVB9KYs PubDKKgV9XoX41kul7Jd9rXM02Q2tXhv46HsrvNjNJKottax+QxtBO9QQpG6bAOMkuJp NeRnH3aUeueQZ8cY3QUfF6oIaRTHx8zkb3C6UfoFFQETWFehdgV84xoGVK9AyAjiWN4c RO+bjqbLXLvOBMotp5+VutmYIsBPipCb65zH+QZrBolKVdZoZYWfGq/cCQ7PqMQUHPGZ oZTw== X-Forwarded-Encrypted: i=1; AJvYcCXjBFOr5MIP2zeNLQd+6/3dWrQZECZuVTUzuk9B1v3qaEyZqurrFphXTiC3viGQIt7DaYXf/s2Bjey9pZ0=@vger.kernel.org X-Gm-Message-State: AOJu0Yx0dmApQXNVBVvy7oCeXNu7jEVSIze3GGjR9ExvCSCGhiiF5i+6 ip6blJ7CVrHm7lrTDc3n/1dfP+qc1OEpY4UM5gr4r7PbX2hZMMabKIW79WiRnw8bJQbqqOI1xW8 XeAQsmgXlr58lolOGk6uITJuGSeN/kfK876qLhiBELDM/niA5P9TqmIoq0SgUceYTxd8= X-Gm-Gg: AY/fxX7Ez5o2lv4TEdx7Qcjcypbh6DwyuRw0d2Gr/pKBsRNpN9tMCxl2eXc7PCqVFZm qNqLR8KnTKK2zefJpqfLeIC8vMMPqmDnqJNb8zLSTcxKZBdCiXv3VqoIGUA3s5hPdged58b1+0E fsa/Tp5yiHuv5ScXPfKmyKgudyzpVwGzoFsoK8gOKYCIQh/ajo/yVt9y0zDJg9xUiSKSKoShwOB 8ZBHg7VjF5XCanFhddvwDIV0GrYnu+hLoqNzkdge/c5QosUOxhg6wgqRyqfPI4dmTk2iaFgFss3 CpmPTwfaWGG0c7ViIEkf7xDi+jJ8x4t8cTBt59+EyEH2x6uf2dcO8Y7wu6lp9dUe3LxTqCJppt9 z23+0HuKxmT0HkWONHucTF1U9VKW4frKjwoSB X-Received: by 2002:a17:902:e546:b0:298:efa:511f with SMTP id d9443c01a7336-29f24141337mr196993765ad.39.1765989340103; Wed, 17 Dec 2025 08:35:40 -0800 (PST) X-Google-Smtp-Source: AGHT+IEX+SdviMUWiyVuzsMz3Ld5ddaGjWVNejk86tyENDi0xG+nJsPKOiPr9ks+l6i9iU1J2qEoVw== X-Received: by 2002:a17:902:e546:b0:298:efa:511f with SMTP id d9443c01a7336-29f24141337mr196993465ad.39.1765989339556; Wed, 17 Dec 2025 08:35:39 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29ee9b36af7sm204721055ad.18.2025.12.17.08.35.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:35:39 -0800 (PST) From: Mukesh Ojha Date: Wed, 17 Dec 2025 22:04:45 +0530 Subject: [PATCH v9 09/14] firmware: qcom_scm: Refactor 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: <20251217-kvm_rproc_v9-v9-9-ab7ac03e0ff1@oss.qualcomm.com> References: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@oss.qualcomm.com> In-Reply-To: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Bryan O'Donoghue , Konrad Dybcio , Mukesh Ojha X-Mailer: b4 0.14-dev-f7c49 X-Developer-Signature: v=1; a=ed25519-sha256; t=1765989299; l=3096; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=pM4mmlZ5nFXTHkk3VIa4nwnosLDFYYB1BLQ8kvsmvPY=; b=PkXc98LnM72sFveXgFVB9OLdTInURlN58d49dShyLcvhIT3GhUG4xOcFKM00/ZpsRnEOVKjv/ 9nIWdAqXn//Dj5qkmpo0bHLGHJhqh0cTvb8oRbyY1OXIOEZ1Z3Vn7oZ X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE3MDEzMSBTYWx0ZWRfXwixvBI3LfYR6 kFPLvAojOmtpnghqoDMumQVe79sN50TVTGEiEgXU3ApQRvEfFrJPrfZwIQPGy+qQwnEG0JtOhWf xIL4Doaub0YJ/tzIZ5CKtpJtWy6NtNyfAFh9c6hsmhezknB+61V1svnS5ywTOCDNgBrUsHg2OTc 2fpoXCEJHUaycCx46nC4DumQoFNmHtvTAXupMOutPR70lxJmA6G+EfzA0yEpw6lF53Ixo3ig9xu wM9VfdDLu9u016Jf/de32G2tjlBFS2BTa9FcaHeUro5k178XfOxkYKhz7m/hhGblbhJVfOM0VlP OWKrZJauei2ZpWuvQN649E/I2VP1JdschuAmijaoIMCjdt0FmNLlnUX5+Br7kKrQ7bwsAYdq3uF 4PD7FYhkZ5Y2OjeABzDKKKk3V1lX5g== X-Proofpoint-ORIG-GUID: 0iM9mJPFTM4d0lKOKx_RRjhdIBIrbAzx X-Proofpoint-GUID: 0iM9mJPFTM4d0lKOKx_RRjhdIBIrbAzx X-Authority-Analysis: v=2.4 cv=R48O2NRX c=1 sm=1 tr=0 ts=6942dbdd cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=EGCBOWN0xxkO3F07DQYA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02: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-12-17_03,2025-12-16_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 phishscore=0 malwarescore=0 spamscore=0 impostorscore=0 adultscore=0 priorityscore=1501 clxscore=1015 suspectscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512170131 Refactor qcom_scm_pas_init_image() by moving the memory allocation, copy, and free operations to a higher-level function, and isolate the actual SMC call in a separate function. The main intention is to allow flexibility for different allocators and to respect any constraints that the allocator API may impose before invoking the actual SCM function. Reviewed-by: Bryan O'Donoghue Reviewed-by: Konrad Dybcio Signed-off-by: Mukesh Ojha --- drivers/firmware/qcom/qcom_scm.c | 58 +++++++++++++++++++++++-------------= ---- 1 file changed, 33 insertions(+), 25 deletions(-) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_= scm.c index d3783166fea1..bc3b8dc7d3e4 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -592,6 +592,37 @@ struct qcom_scm_pas_context *devm_qcom_scm_pas_context= _alloc(struct device *dev, } EXPORT_SYMBOL_GPL(devm_qcom_scm_pas_context_alloc); =20 +static int __qcom_scm_pas_init_image(u32 pas_id, dma_addr_t mdata_phys, + 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 @@ -612,17 +643,10 @@ EXPORT_SYMBOL_GPL(devm_qcom_scm_pas_context_alloc); int qcom_scm_pas_init_image(u32 pas_id, const void *metadata, size_t size, struct qcom_scm_pas_context *ctx) { + struct qcom_scm_res res; dma_addr_t mdata_phys; void *mdata_buf; int ret; - struct qcom_scm_desc desc =3D { - .svc =3D QCOM_SCM_SVC_PIL, - .cmd =3D QCOM_SCM_PIL_PAS_INIT_IMAGE, - .arginfo =3D QCOM_SCM_ARGS(2, QCOM_SCM_VAL, QCOM_SCM_RW), - .args[0] =3D pas_id, - .owner =3D ARM_SMCCC_OWNER_SIP, - }; - struct qcom_scm_res res; =20 /* * During the scm call memory protection will be enabled for the meta @@ -643,23 +667,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, &res); if (ret < 0 || !ctx) { dma_free_coherent(__scm->dev, size, mdata_buf, mdata_phys); } else if (ctx) { --=20 2.50.1 From nobody Mon Feb 9 14:04:53 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BE46034DB72 for ; Wed, 17 Dec 2025 16:35:46 +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=1765989348; cv=none; b=Xg0hMB5ylJHRZllUFbkXp/FZvAzZRtVQCyWcBCG1J9z9MVFaqIetzWgTbF8IGuIpERo4kMSgQaHKOuetum246FrbL4rXED4dCHLIBRFbCc0FyL5cVCgUTNLgJeC6c1OaM7hHUagNGO53wHg3209LnN44qbnKGNws/22VzNE76gU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765989348; c=relaxed/simple; bh=ZJpp3JWRDZ2GnhkciNneFccjAnU3FfTec7KHfaDs7Ss=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=T50IWUWN72aTOFjEPQDmB0jFkW0nIVDjhOk4rhukqjnwwXwXXS1VIvgvc4Yd9hC72IjdkE20lLHw7F2v6dLHod/FcUP1fK0Hz8SrUgr8+E4eWbWrn5B5TieqlgPZ3kgsMcwXp93ndAbgSuMOSGA5kiDn1XeA4kmklGPfFB1LxWs= 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=mX1ZrzeA; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=cFiHlo5X; 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="mX1ZrzeA"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="cFiHlo5X" 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 5BHCKr5I3048747 for ; Wed, 17 Dec 2025 16:35: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= Y+OM//gLCwtklbAUofXvGKyOMQPiApxnK1IIT6gaceE=; b=mX1ZrzeAwTjRfsKB 7IjMf9+Ynvme+QAGQwlV8Q9OwEDWIW/9qOzZJxQOuInTSui6++aw5QLvNwyCnMtu t+PJJggc6bgsxOjYzRXeRSLIzpgQzo5CYNSnHirchv7ZEiv9HAjZ/JQ0lxJtj+7k 8LcoZm8PaR8lvKnCnQkJyRjDqxefqsdc73SJSCGwbjcP/JlHMUNwiY6jOcdHnmrI JJkuZ0Hwgq2iZiipX6HktKH5kChs055bulIk69S8fkTLszUf6SuHeMeYlpHCYP4I 6wH70fKar8/C5NEluN/ZMnMPQgBvqOGcrsZ3aPOGuhXqwE7/faf3Fnlo++DU08HZ pqLXpQ== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b3jgqar9h-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 17 Dec 2025 16:35:45 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2a0c495fc7aso54925185ad.3 for ; Wed, 17 Dec 2025 08:35:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765989345; x=1766594145; 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=Y+OM//gLCwtklbAUofXvGKyOMQPiApxnK1IIT6gaceE=; b=cFiHlo5XvrG5AjoJZIKKhkwDcz+7d+UrvelnQBWwLS1PksqN0kIGKclX+kBgFqav90 bQ42w194U2F+PyTsa/gdEPzJnPhXqixZO9pWlWHGYIwIIdXPxggZNrA73+tuNOJsJcSo rLaupyKM7B1YO+H5iSyIfDvuDnu14l7p3shwAm3+n50hrpcJRyLadg5bHG9m4ZjyJzJ7 h+UDBkuujDrMzHlwtNcQB/atJbvxk6GINPTganEvBtp7AIi5LT4jiQZxzK2zWcxnIIxu jTdt9mcYRI/G51EZQb8vr1Ygq/QJBru+bkh0EEq3ASdVKMVYtTG1KVTbMETBToUW+0vA DGbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765989345; x=1766594145; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Y+OM//gLCwtklbAUofXvGKyOMQPiApxnK1IIT6gaceE=; b=avlrNCiEVEgWSzYM9GT3H7kUS1ahla8QftLNrUgA68DbtSD5ZUbsypx4Ix9wpA1orv kiLhSbr5CK8t+LjwncPv6h2N5M1TDROr0+bHIlx1XVtAx+YiMmQQKDndEga/u4UScujA 1qU6BYHWNeLXyCe77B5IRSnTYapUNl+WgQpSDTKSZOl87KQd27wbH0huwSxXyYnrVUPY wUgSyVmii3Q6c6ga5uqd3gCex52QCaaDwfuiCIw4ROiG8jgTYmwYQeCP8ddJec/6eypQ af2styKCsI/qoKsvs18AHEdYIoRSavnk2YSuiXwkwCigYyDn3+hPLVsizRJZeIDdMgDw ccOw== X-Forwarded-Encrypted: i=1; AJvYcCVTXPbZaW59plPLIaZNvNlrEe6SpP5OpN0AIBrZNOATtv4CQ71EUcIBfmV9DUgpon+jtPFC7BXnZZ40FqY=@vger.kernel.org X-Gm-Message-State: AOJu0YxFbjrU6OofiAiJNpKm2O/6uJpyzREdicWcjGMf+U+Zf/b35em0 6opkkoJjdaa4RW0wyvhoQcxRfuWUhX4GmV1+X/Q2rgil3T1VWfCbsNHWCcS9XzpleIzDAQ2WJRy jFKxYT+xR7V/71UZylyuANljXdsS4b2orNrR0FDh2rE3Et0ZtayuSxlU+0+k8xzqNl7g= X-Gm-Gg: AY/fxX7M5xdJJ2H6z+/NOjULQnmf7Qy+4+z+kPwMFP17VODIIxnepOJ5SFOqiPBaX5B ItgFba6w8fiW3EVwboGr53lZmwJBkNY7WC+FgyZf7SCD3qUxp4Zz8YQw03k4tAV0XRfohCO9L8P jmBmCskOEVxR9rMNnJGT2fiafNo8nzdGcDk83YIntlZdbegtDEjcyC7ot6q38QBVyINdpfn7hgZ PGg01+nlSkH0TrGEYdSWjkHRhN1N/7rcQhN9wddadsNZhzCDIX2RVx18YBf00NbrtClIajc5kTt XQoo1KUHire2MZZpjw+xOhMgFRW3WtdpMAqZBYpWgG5R8x2OhIGUFe6cH1jyjtGb5JfgiveP+MH pbJelbPaZ0uVwju11Y06l9i8j8tN6CoDIKcj2 X-Received: by 2002:a17:902:da8c:b0:2a0:bd93:4dbf with SMTP id d9443c01a7336-2a0bda2946cmr136309985ad.13.1765989344208; Wed, 17 Dec 2025 08:35:44 -0800 (PST) X-Google-Smtp-Source: AGHT+IGxk8EC2iuBNKVxQi6FD2QZfoSwG++mxObmlHXqMkY+kzfmt2HFyK6oOK+NSSC19kzQ4oZPmA== X-Received: by 2002:a17:902:da8c:b0:2a0:bd93:4dbf with SMTP id d9443c01a7336-2a0bda2946cmr136309675ad.13.1765989343577; Wed, 17 Dec 2025 08:35:43 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29ee9b36af7sm204721055ad.18.2025.12.17.08.35.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:35:43 -0800 (PST) From: Mukesh Ojha Date: Wed, 17 Dec 2025 22:04:46 +0530 Subject: [PATCH v9 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: <20251217-kvm_rproc_v9-v9-10-ab7ac03e0ff1@oss.qualcomm.com> References: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@oss.qualcomm.com> In-Reply-To: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio , Mukesh Ojha X-Mailer: b4 0.14-dev-f7c49 X-Developer-Signature: v=1; a=ed25519-sha256; t=1765989299; l=2509; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=ZJpp3JWRDZ2GnhkciNneFccjAnU3FfTec7KHfaDs7Ss=; b=UHye5xh8LIVlYeAJ0tlM5lFW90FxijLZBwYiUBeuwTCEld1f9pnWwQGlVafxE2HEPF0caPqZC aZbBWgM6h0XA/W1Y1C5xwPwQcAU/wytk8AG+ahm9HcYvAIOpFSJtOB/ 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=VLjQXtPX c=1 sm=1 tr=0 ts=6942dbe1 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=08WIqK_J-xaQODWVIAIA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE3MDEzMSBTYWx0ZWRfX4Z2UNUonmmKS kCangxyL+GV2339uq8EZiGjpQQqi8XcxGccA45rncLMf1NlKmuojXWznkJCPG32tBD7Owj6ves6 1UwISYiZBqPXj/5TyqjtP6Aj6PLxISGVu0FGqdMM+ITgR9OhLqI0l/DFyz+zRe/bmmZ9Tt7MXUw MsE3hiL2Y/g9RhcwELvq49TU+Z2Hz4Z1+ChGlBkAes/C4EgfNVH4pRI84UFANhhIjBywI1FNQz9 JllblNXkDJlZnWnBMtiPY4g7LPpL6Tq/fTtCjOrDwIPxEd4HzsKwCKNFseG0t4j4PygfwS1bEb2 hAQce9T1gXzUHVOUm+LX5tU2rNvHVz4HAQyPDR42GQwXUw4HeqabPxhtghda6wwtNGBTrHSbVDs DwmRgO8gWVV4I8sQYRSUltaksEN/QQ== X-Proofpoint-ORIG-GUID: xYGrOph_RoC-ddlEmFIy5Gzxe4bRf_6E X-Proofpoint-GUID: xYGrOph_RoC-ddlEmFIy5Gzxe4bRf_6E 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-12-17_03,2025-12-16_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 adultscore=0 suspectscore=0 bulkscore=0 malwarescore=0 priorityscore=1501 impostorscore=0 clxscore=1015 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512170131 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(). Reviewed-by: Konrad Dybcio Signed-off-by: Mukesh Ojha --- drivers/firmware/qcom/qcom_scm.c | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_= scm.c index bc3b8dc7d3e4..4ce892d8fb25 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -623,6 +623,30 @@ static int __qcom_scm_pas_init_image(u32 pas_id, dma_a= ddr_t mdata_phys, return ret; } =20 +static int qcom_scm_pas_prep_and_init_image(struct qcom_scm_pas_context *c= tx, + const void *metadata, size_t size) +{ + struct qcom_scm_res res; + phys_addr_t mdata_phys; + void *mdata_buf; + int ret; + + mdata_buf =3D qcom_tzmem_alloc(__scm->mempool, size, GFP_KERNEL); + if (!mdata_buf) + return -ENOMEM; + + memcpy(mdata_buf, metadata, size); + mdata_phys =3D qcom_tzmem_to_phys(mdata_buf); + + ret =3D __qcom_scm_pas_init_image(ctx->pas_id, mdata_phys, &res); + if (ret < 0) + qcom_tzmem_free(mdata_buf); + else + ctx->ptr =3D mdata_buf; + + return ret ? : res.result[0]; +} + /** * qcom_scm_pas_init_image() - Initialize peripheral authentication service * state machine for a given peripheral, using the @@ -648,6 +672,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->use_tzmem) + 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 @@ -689,7 +716,10 @@ void qcom_scm_pas_metadata_release(struct qcom_scm_pas= _context *ctx) if (!ctx->ptr) return; =20 - dma_free_coherent(__scm->dev, ctx->size, ctx->ptr, ctx->phys); + if (ctx->use_tzmem) + qcom_tzmem_free(ctx->ptr); + else + dma_free_coherent(__scm->dev, ctx->size, ctx->ptr, ctx->phys); =20 ctx->ptr =3D NULL; } --=20 2.50.1 From nobody Mon Feb 9 14:04:53 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EDDCB3587DF for ; Wed, 17 Dec 2025 16:35:50 +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=1765989352; cv=none; b=MUKRrM4L8iNji/uMOiLCrXWx7Q6h0J+vfNV3fu6noewoUwcr3S8kjpGUNFypuikvNtp9St46Yfj7el6aoYTKP70R+xeQEWcrYoRWB3FSHr1e3w/H3yn2m/kzev5tLcgqAI6+B7aMh3iCF+24vGKPaPliuFjx8IpJOJg6Jj828Bk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765989352; c=relaxed/simple; bh=zLbZUBAz3OsEv5CPTK00x2QcznyPaIeKJ8kyHvbExRc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mCBUA3O3JN/HPQ+O/YanauPuq8pYgu245RpV/ceW3Z3AUvB8OoM7Pe83Ok+IqGDBCmiUcIj0lNx3FOEHY24biFTIXOy35+n+IcnMMQae3ok+AZPyU+J2afZ1G6MTS1I32iLIZs0+2JMVvb38BqVCoZH3BLcLTxcvsC+znDKE98k= 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=Qjhl7rFO; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=a7JeooHe; 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="Qjhl7rFO"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="a7JeooHe" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BHCL2fx2675006 for ; Wed, 17 Dec 2025 16:35:50 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= po5GLfe8Pc+JIoowc3HqSrvGc7tQKe1kRH4Urylq0LY=; b=Qjhl7rFOR8YdhnL/ LQ91BhuA13O4sATKjNetgFYIjDquAfYvVdiSj7H6DxAji19yEsknX4VgYxwEl98E QT8DRDh65WPwgWQ4zUcr+dJY4FhX0maE7laH98Rq8BiRMMrgPtkmmKX97igKe9Wx AEOjP1fcZA47KxQYaPicoGYrONRORBW/s5YuaqqPymxyc6VXL8h3+/hCATDVrEB0 6YiYGsI+u4Re42SuZ3xOEsubR8P4yC9tszSsHPzX3ZCBoL6V3CqKv/SrPP6s8CFI b8K1XsHLhCpGleZuC36UNxJAOT6BCeVMONl2pUYriFlWL19I8OGBYu0qwJc55nMD GBcz5w== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b3myj2dhc-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 17 Dec 2025 16:35:50 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2a0fe4ade9eso41711515ad.0 for ; Wed, 17 Dec 2025 08:35:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765989348; x=1766594148; 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=po5GLfe8Pc+JIoowc3HqSrvGc7tQKe1kRH4Urylq0LY=; b=a7JeooHefZ898x4+yIVKYkrYc6aL1dGc+F4nIM3kVboHKWPKH5nX9MhvC6g9XMvWnt W7tCBHUHtc/yzo/DMUej2F0vin7oNnXvzUEI4wVt4bdPVq7isn5WUDgoWODfwZLFWkGf NJ+LL1i8eHdFXSYj8OdnJsZeHnHzngGojwDKO/8aX1n1S71aX8I2E/X7il+onPfOSWVM sQGdAfytFk6GQSSUE/j3HZ3o/djjeMUqMV9vpZbUjXJ9pCDKuzqhLAoN5W4UKIHZ66Fz CgtbHYe7mK9qHtmHmkfEfrGSqswKr/TvebDjaNHiZjSG9nVX65M48d6ya37s07x2G2+b ArIQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765989348; x=1766594148; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=po5GLfe8Pc+JIoowc3HqSrvGc7tQKe1kRH4Urylq0LY=; b=uDaVnbSKBUikDK2FSD4B2yz0yvK0Olq2vROYepTFQLsZrjb83QfyAzLN6C3ddZADPx kW6l12DqxZId7Ws8loI8XRyRdC9F3qeNjLRPwEWxKDBEHmTb1dIlKLQLVX/Jhk2eMW3a V8buBmXym/n8ytmgtlUOJH8zfhOpJbzm9sk8OY1NIcWWq+Y9iq3+oz+ODBb0tFaApPLB SrvFva7GJ65WakIiJiZ1tkym1FqIQRg+yma5R2aI2BIYmH+vj+m1YWzyEJvy3NB0PCuK geLf7GG5qUmaTbTW/jF9NC6iXTLyeInypWeCRxHIuxRvix0beggLMB3+jLcl7G0Xdp/j oPqQ== X-Forwarded-Encrypted: i=1; AJvYcCUwzFq9A7uGYLZ4vV7mRLGltze3MqyaMexAYo1ZJfCrrZqokhNaBTw/GCOF1V12TsrKt6hHu7uOt24X61k=@vger.kernel.org X-Gm-Message-State: AOJu0Yy0Qq9XxyNJUGq3P+J9vkOJ2KP8X6fy3HPWJYFZjliZ1cj4ekEv 5+9xL1XYrnhe2vuUDa6S9Qm2ZD1eo5dNh7W+Kxi1BOSlJCL3vbANusej3N5TCuMOrwCbEq73PxE E+a4H437+8GJ6RoynF7Lk5WSUQ76sWSz1GFqSA6XUYiyJUQi0YsFsRkVI8qvDQVsHDRc= X-Gm-Gg: AY/fxX53QmRH/g+fktWRMXO9rtsmwI8pJb+S2fVK87YH4s2ZMd/2g50p6yDUX+ZiX+f pOShMv3LHwO0bvahvUjZeKr1hiwFpV+xNapKIdZ5vhkU00mB99mOxOkCHgQucdbOSNvbDxCu/jL jmm7UHirpBJ9D7kvcodB0fGqkchRBj0VFe2gzgoOsheVtWpkd3x6FBD+Br5uxLk0cxzQRbk11Rd qY5vGBK2H30qAb9uHptQ7mxQL5fxX4Lf8Jeogcrj4VLVQ+bi4V+bbweaE81t1Ycw/ijak5uDi7B AunC/7ujGwF6kWKrzr5mfXjBH/zK5KjHwIU7kuxO2UiUF0z8X/9b2KCF6KE0YLG4KEJqNahnB18 P5XMSQ/PaGNOHvBODnqHojj7LqDTM1VyZBVTs X-Received: by 2002:a17:903:289:b0:2a1:243:94a8 with SMTP id d9443c01a7336-2a1024396b4mr121499205ad.49.1765989348114; Wed, 17 Dec 2025 08:35:48 -0800 (PST) X-Google-Smtp-Source: AGHT+IGxuz62cgD708eigbhZOGRVkxkHSfIexe9A4AyWbsdy35q4EHrmY9GTFYPq4i7LqFOj6RZujA== X-Received: by 2002:a17:903:289:b0:2a1:243:94a8 with SMTP id d9443c01a7336-2a1024396b4mr121498785ad.49.1765989347406; Wed, 17 Dec 2025 08:35:47 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29ee9b36af7sm204721055ad.18.2025.12.17.08.35.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:35:47 -0800 (PST) From: Mukesh Ojha Date: Wed, 17 Dec 2025 22:04:47 +0530 Subject: [PATCH v9 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: <20251217-kvm_rproc_v9-v9-11-ab7ac03e0ff1@oss.qualcomm.com> References: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@oss.qualcomm.com> In-Reply-To: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@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=1765989299; l=9363; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=zLbZUBAz3OsEv5CPTK00x2QcznyPaIeKJ8kyHvbExRc=; b=urlOBLmZkOyBokIgk82zMAdJFJCW70PeJnJDdCwGFySLDfJZVVQHdr81/fD377r/TT0uO0u/y Dt12TzxRTEaB5BQ3h0mqbZv/A/UHMPCjyVS/HE49rNEQ34EGfWQOqP0 X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE3MDEzMSBTYWx0ZWRfX2B8o/vuy51XD a012HuHdQVe00QDhAn1VTvHHF5rr4TdwzgZPwnVYGeYkMMMRfW+rCMxReq15jrDQYzqrVVtLwoa 4kiXmrBum+WRLc/h9XF6OUwUZKAx2m2+l5B+ja53S6CrOFZJHrspNwYVtcwP/uC6Ar8WlE5b1re sfhHOCteJDyxJ+6sSR8l3FwNMOtnlx6qr3mn3h5EXLbTReXnh4HnM/mWy2D3d8Hj+cdOnNCUN2e EGqL8Uqd4Y1qSWyfoh+0bhmorKLADPZZA4F2Xp/mTTTRG34C/62HzLNTIfXGNMMj4V8wh3t9lC6 KymHLJ/sMKL/3SGMwzsucAQuY7uz3h9ZAdDM+88YCiWQEdYcXkOZUujhGLb+8mtj22wHdWnHjMU QHUg3BM/zrfR9KJ79EnAZRh8G+8xmg== X-Proofpoint-ORIG-GUID: w51-8miBpWw-zKOsSUcXUUnYf_JP1nu8 X-Authority-Analysis: v=2.4 cv=CtOys34D c=1 sm=1 tr=0 ts=6942dbe6 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=EfaUOOzmSyh7LFfZ1SoA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-GUID: w51-8miBpWw-zKOsSUcXUUnYf_JP1nu8 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-12-17_03,2025-12-16_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 clxscore=1015 impostorscore=0 spamscore=0 phishscore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512170131 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 | 170 +++++++++++++++++++++++++++++= ++++ drivers/firmware/qcom/qcom_scm.h | 1 + include/linux/firmware/qcom/qcom_scm.h | 4 + 3 files changed, 175 insertions(+) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_= scm.c index 4ce892d8fb25..a589961f8225 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 @@ -766,6 +771,171 @@ 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, + }; + struct qcom_scm_res res; + int ret; + + desc.args[1] =3D qcom_tzmem_to_phys(input_rt); + desc.args[2] =3D input_rt_size; + desc.args[3] =3D qcom_tzmem_to_phys(output_rt); + 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 however, It should not + * be of unresonable size. + */ + ret =3D qcom_scm_call(__scm->dev, &desc, &res); + if (res.result[2] > SZ_1G) { + ret =3D -E2BIG; + return ret; + } + + *output_rt_size =3D res.result[2]; + if (ret && res.result[1] =3D=3D RSCTABLE_BUFFER_NOT_SUFFICIENT) + ret =3D -EOVERFLOW; + + 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/remoteproc.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) +{ + struct resource_table empty_rsc =3D {}; + size_t size =3D SZ_16K; + void *output_rt_tzm; + void *input_rt_tzm; + 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 =3D &empty_rsc; + input_rt_size =3D sizeof(empty_rsc); + } + + input_rt_tzm =3D qcom_tzmem_alloc(__scm->mempool, input_rt_size, GFP_KERN= EL); + if (!input_rt_tzm) { + ret =3D -ENOMEM; + goto disable_scm_bw; + } + + memcpy(input_rt_tzm, input_rt, input_rt_size); + + do { + output_rt_tzm =3D qcom_tzmem_alloc(__scm->mempool, size, GFP_KERNEL); + if (!output_rt_tzm) { + ret =3D -ENOMEM; + goto free_input_rt; + } + + ret =3D __qcom_scm_pas_get_rsc_table(ctx->pas_id, input_rt_tzm, + input_rt_size, output_rt_tzm, + &size); + if (ret) + qcom_tzmem_free(output_rt_tzm); + + } while (ret =3D=3D -EOVERFLOW); + + if (!ret) { + void *tbl_ptr; + + tbl_ptr =3D kzalloc(size, GFP_KERNEL); + if (!tbl_ptr) + goto free_output_rt; + + memcpy(tbl_ptr, output_rt_tzm, size); + *output_rt =3D tbl_ptr; + *output_rt_size =3D size; + } + +free_output_rt: + if (!ret) + qcom_tzmem_free(output_rt_tzm); + +free_input_rt: + qcom_tzmem_free(input_rt_tzm); + +disable_scm_bw: + qcom_scm_bw_disable(); + +disable_clk: + qcom_scm_clk_disable(); + + 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 d6d83888bb75..7c331598ea15 100644 --- a/include/linux/firmware/qcom/qcom_scm.h +++ b/include/linux/firmware/qcom/qcom_scm.h @@ -88,6 +88,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 Mon Feb 9 14:04:53 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D6310359703 for ; Wed, 17 Dec 2025 16:35:54 +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=1765989356; cv=none; b=cgld8xOTJe01WawZ1RMYz5eLaikoaelsTkCvNBEQ9ksW46NiUZ16NxsCwBTfsro3sJomKIzW4LyNpjjrLpFxy+nZ6j/028wX3CU52vZbMrEZyVD3XWEkOWM+g/rS8JL8wNPZbBIJzKKrjo3Ob5EITVaXCS5KOD14CLc95X1w4Bw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765989356; c=relaxed/simple; bh=qYuaoe5yZlmgj0Bqbs68hLea7hvaqBZAkEyE9xnmPwE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=WSN5mN8YBeSYyENa2+GuA7AgG0G/oDFouahdIy/WAnThOeokfqsrZ95YEouNCxXBkvc80Ic7CCHFvdwkbWUuLQrTKILT4KM6KYDTsqmK6j6FrtsbQpXhdN8QyRSaBqe4VMyLlQnevSX1y780vmQKCeiMwY364uIgZ9FTwiZa0sc= 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=LeRcMR69; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Tl2NmB2g; 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="LeRcMR69"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Tl2NmB2g" 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 5BHCKpZa3329745 for ; Wed, 17 Dec 2025 16:35:54 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= UvAnEUJpoxlkuq4/g/vjfhu/EQszMNOrrroegkLM09Y=; b=LeRcMR69RuQaAT9p imvRH6nlFTabwJHI3LhkizY3Xu5dOnYhcB0s2mRjdi03RBchhxsFPdsuw62yjxUg gEexRwnxOslHsfazap3OcejqqXwYSM4BtpilxMLiMIPqSmNsYIoTvW+Q2DhRI+tu tzjofFZPIzj99AoLNCn46DAdUbsPsSaZiUgMa3VdwNRlOTf+unpOWxo055VntdZ/ r/+TKgfyeMZ0CdY9aGY5U3Bq/TAfMemwiK0wcopL7fciB8tfmKF2f0czKv3agiOY GimEhcngOxJwOqMueVkjSTDY21PiHJALjPGVq3OQtMSAsMov19o11NWuOUtVfvQB 7e4WIg== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b3nkkj9ax-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 17 Dec 2025 16:35:53 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-29efd658fadso169685595ad.0 for ; Wed, 17 Dec 2025 08:35:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765989352; x=1766594152; 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=UvAnEUJpoxlkuq4/g/vjfhu/EQszMNOrrroegkLM09Y=; b=Tl2NmB2grNAQAopo629RsFxt201R6u/lb3irgENkCpK3D7lFCycO7kAmv6XYN7HnCR 7YqMRIvAfJP98rgg2WMZk9k2oAVLvpkI7FUPBfMAj3E25tNZh6e6Rb3xdilvZ5KrN+Yc FGJJcyU757Nv31ZCK54l9dzb70Hcft6N63pDy7AnEpO3HcVyHujjyu0SKLTOoNrQz/Qu Sll9SurakKyzYpfNhtvk/sqgDXgrxqdEcuuliCLwGgBxoe4ir1x1zsUhP5X0KaAn7e5D 0JLQYTUR8fnH2dBUphxg1I9c63xi8jxwOJudH6CmEjODYFJW7TYv1E94ENvZ75ntJFV8 aAKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765989352; x=1766594152; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=UvAnEUJpoxlkuq4/g/vjfhu/EQszMNOrrroegkLM09Y=; b=uBx4CIf2DrOAEcNsj9Yz9vFSagJ5H3MCiwqVfodbHrFUW1tW6VI/IMuzNcxaZAZ2Re /zFPkcB0nqR8Unb179YO9ZGdCeN2T6+M8ht1xNokblDWcW3NdA9LO4YR3zlD0SqHWU5R IIi40cICNEVY/o6PV7trFVJ4avXK7cOMpyF3klY0yeDVKl33KrJI0Ho2DfjgeKwvn1YO rROmVHbr9oQZAUJ6xku+r8So3sr6ljD7QmsukUbMlzDz4CRbM6tfRhSe+cj/U/AaK+5Q b5RGKznxe/D1n/8vMP3QJnvtBdPI4wASMz1j9i8E6fJihyqsv0sPhjIglSB+c249VKy9 bmXA== X-Forwarded-Encrypted: i=1; AJvYcCV0sI7Mcha9/9gyJSc9Yq+u09wGlfHvE15umCgHUNGBO9JkLf6dc3Ual0LzyW3F/jHuo9CLGf/OtJW4B2A=@vger.kernel.org X-Gm-Message-State: AOJu0Yyn01Il1SwTsYGaNTY5B1HE9Q9TJpAp1G3nPAdLAqgFyp0S9q20 C0WIo5XkV4sm5rSqEwS/+G5XhHdnjxBYEAEkqC6F7S7jslt7+Me6pyxlJhjronHQ/PH1wF7RNB9 Axy2bLcoJ/uHm0xlfjVK3n/xCr2aO2yRFxiQQ/mnPFwppoJ8UNdjOnvfg7uAmmf7yHlk= X-Gm-Gg: AY/fxX6onGCeO8EkCydkV3SNL5dbt78SKqDJcSlGs05aUfywv9kFC8DvEWXTiI3nHF7 DO2BpYM2ZEXLSToIu6OHfFYIrpCkPx7imYlSuxQ+78g8C6Jgr7qoA/am4eoJOUGQc3OjwCq6h2M NMP6YjcWjtsKHPvfQWNBw6YGOe2MGMFOHLri1qnDnq1j69gcr574nx69hHty8ZXHpnRjhhKZfjy Adv+UTFe5a2DEEvwtLL8QQJ84FQPqSN5Kf3QglYHOE34gK5aMYfurb+HU/3uC12/+ke7mg7F4np h1EeSs7S3yrDS45UPOApDzN95bcw90rlsniGfLfqTYItyBrmbJZJA7m7HCCei7Yhm0FzQ6a9koR Bciq66MLdgB7YyUb+99Ol4atnxo5zvg4TM6bZ X-Received: by 2002:a17:902:f68f:b0:29f:2b8a:d3d with SMTP id d9443c01a7336-29f2b8a256fmr159984485ad.4.1765989352175; Wed, 17 Dec 2025 08:35:52 -0800 (PST) X-Google-Smtp-Source: AGHT+IFbEQIOV0Z75PS6fp8HMNstrAnUoha1SBavGLgV2mvlvTEanQzsq6SMQStWX8B2Ob55H5y14w== X-Received: by 2002:a17:902:f68f:b0:29f:2b8a:d3d with SMTP id d9443c01a7336-29f2b8a256fmr159984035ad.4.1765989351502; Wed, 17 Dec 2025 08:35:51 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29ee9b36af7sm204721055ad.18.2025.12.17.08.35.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:35:51 -0800 (PST) From: Mukesh Ojha Date: Wed, 17 Dec 2025 22:04:48 +0530 Subject: [PATCH v9 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: <20251217-kvm_rproc_v9-v9-12-ab7ac03e0ff1@oss.qualcomm.com> References: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@oss.qualcomm.com> In-Reply-To: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@oss.qualcomm.com> To: Bjorn Andersson , Mathieu Poirier , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Manivannan Sadhasivam , Konrad Dybcio Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio , Mukesh Ojha X-Mailer: b4 0.14-dev-f7c49 X-Developer-Signature: v=1; a=ed25519-sha256; t=1765989299; l=4517; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=qYuaoe5yZlmgj0Bqbs68hLea7hvaqBZAkEyE9xnmPwE=; b=w2iYpcGrgPsXPlh0Vs59+sqeE25cPEZgnkmEiucxeuLP6n3ygOGFsnS+qQwl++CgSsywsjp90 AngiZjKfU6qDlrb7TvyfKzIgL/ZAk3NulAWQ34Lyn4iJogmJfwDbjI7 X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-GUID: 7xqF9Yz8Or2ONLzQa70Cz3nX2-ZAmOVU X-Proofpoint-ORIG-GUID: 7xqF9Yz8Or2ONLzQa70Cz3nX2-ZAmOVU X-Authority-Analysis: v=2.4 cv=f/RFxeyM c=1 sm=1 tr=0 ts=6942dbe9 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=KMz1R6K7GWUeRkMKapkA:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE3MDEzMSBTYWx0ZWRfXxzAV3I6908OB p9P6ofnoYUyr6KVmU0sBBj+CAkRmojShxsneiLVlPAfxfLyWAwoPaZBgkvUrLUcnnaVL+9EcaVf ASFAdM/JK1Xp81Xg9/USEFiEkeLLe+03dfTfR+Bqj5HDY5YLMTZHYXJExhxO2YDZ2gWl/usTPso NVmfoqg0xxICHhDVZtw8URXDRAqkuHpMJzSdECwCtUbkn/qNHxFxNoECSGTz1CBsfVjEeRqS8Jx jss1fvI7pksLy9DtP+ajlwrlWUW4O8bCX/rWZSuxcqXdvGqL605/Nyigj8ctJGAcCRw3xGagYxe JFzOpLBwoKJEn6xBK/21Zi2J988xoVmBzD5LYIhLbD+EJeyZVzs2+tPQjsAADYtoFMZt6s6YGVZ FdmjH1AhlqGJi3+jJlMajpTpbPTJjg== 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-12-17_03,2025-12-16_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 phishscore=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 adultscore=0 bulkscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512170131 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. Reviewed-by: Konrad Dybcio Signed-off-by: Mukesh Ojha --- drivers/remoteproc/qcom_q6v5_pas.c | 59 ++++++++++++++++++++++++++++++++++= ++-- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q= 6v5_pas.c index f746d2f39a1d..07754f3a4ef8 100644 --- a/drivers/remoteproc/qcom_q6v5_pas.c +++ b/drivers/remoteproc/qcom_q6v5_pas.c @@ -413,6 +413,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) +{ + struct qcom_pas *pas =3D rproc->priv; + struct resource_table *table =3D NULL; + size_t output_rt_size; + 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 0; + + ret =3D rproc_elf_load_rsc_table(rproc, fw); + if (ret) + dev_dbg(&rproc->dev, "Failed to load resource table from firmware\n"); + + table =3D rproc->table_ptr; + table_sz =3D rproc->table_sz; + + /* + * The resources consumed by Qualcomm remote processors fall into two cat= egories: + * static (such as the memory carveouts for the rproc firmware) and dynam= ic (like + * shared memory pools). Both are managed by a Qualcomm hypervisor (such = as QHEE + * or Gunyah), if one is present. Otherwise, a resource table must be ret= rieved + * via an SCM call. That table will list all dynamic resources (if any) a= nd possibly + * the static ones. The static resources may also come from a resource ta= ble embedded + * in the rproc firmware instead. + * + * Here, we call rproc_elf_load_rsc_table() to check firmware binary has = resources + * or not and if it is not having then we pass NULL and zero as input res= ource + * table pointer and size respectively to the argument of qcom_scm_pas_ge= t_rsc_table() + * and this is even true for Qualcomm remote processor who does follow re= moteproc + * framework. + */ + ret =3D qcom_scm_pas_get_rsc_table(pas->pas_ctx, table, table_sz, &output= _rt, + &output_rt_size); + if (ret) { + dev_err(pas->dev, "Error in getting resource table: %d\n", ret); + return ret; + } + + kfree(rproc->cached_table); + rproc->cached_table =3D output_rt; + rproc->table_ptr =3D rproc->cached_table; + rproc->table_sz =3D output_rt_size; + + return ret; +} + static unsigned long qcom_pas_panic(struct rproc *rproc) { struct qcom_pas *pas =3D rproc->priv; @@ -425,7 +480,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 +490,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 Mon Feb 9 14:04:53 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A6D86359F9C for ; Wed, 17 Dec 2025 16:35:57 +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=1765989359; cv=none; b=Rli14XDWvdXLCQ8J3Tod/NUvudq9yQyCK18/x8E+zPyqhE/DI/hLJDDLWMiTgblgZLmKjLqAP16TOLIlGfMkHy5IvnIz7oxEVaeAazKaLOahyCHP6U2ruxshM7jjN2qV560QQkvenBKqG881B/Ku1NGwTmc1oHegwP1yAToviiM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765989359; c=relaxed/simple; bh=bd5VFoeXgnnfPBNtjIyA8wzQq/ONErHwh2oKqdSLe6E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=u85OHwa20XWfuld+YvAt+C0YyOncYdEvFkN+Xbk4lqCqlmgcdWQo75gMtALVDfTdAICAmonavgEvWWPEaaCzNe812D+gvjKtL2ePxzIBa/p8WwhqLerQHdu88UaqKTeQVgREeZstduT+EJrMSEbGmyqWAHZQhYCJkfj0P34nT7A= 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=c5JtR7v/; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=atQ8VRo1; 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="c5JtR7v/"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="atQ8VRo1" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5BHCKn8T2673912 for ; Wed, 17 Dec 2025 16:35:57 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= J9oK8N2pwkMR746yYWz9PU4FgDHKcw/a2sTgcdOFd+Y=; b=c5JtR7v/YrgzQd+h aZ1n4Fcmo9mJEXlY8foIK6i/4CHz8aaQwRz0UtnHa1vOupflFEF41WOwnzyuzrfL eIc2sKbwfNIS22KYCCbSZEdv7Y9HBCI/2J90dxIZZLQN0I2wy67F2CpC5Ul8MqUs pjX50V7z6u8PJ7hI5FovWxBXZ7cXS/z6ijz0FG+31xK9xPfqsbhAQjusg1ZaV9OE 9Fb7KkhKQGGGk3L5OZzeglO5pQTpxZPzb0s/P6g9wV8JMAm70ufM9Y5d8S32MpjO ztCQjxTY+RkkbO3GRamhpYsyzwI/sLVlJ9y1Mqb6/SZJwtNp4nGtz5qTLxIh7fyT 2b4Oag== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b3myj2dhu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 17 Dec 2025 16:35:56 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2a0fe4ade9eso41712935ad.0 for ; Wed, 17 Dec 2025 08:35:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765989356; x=1766594156; 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=J9oK8N2pwkMR746yYWz9PU4FgDHKcw/a2sTgcdOFd+Y=; b=atQ8VRo1d/HQZa0XV4kQ3dCZmkfK3/70lL92hNLuAXo3vzvHOqUDN0X1oCwJJJNbkO T1iEI9Q/xOrCzC8cg5rwnWUNZVQhiAOgm9wuMC0OWlIS5cLQt5/FXNHkzbrM94kuPksf 9NMrjXCNvRHZj2qBXsBWnYLVgMU/F9nmDGpKhMWUWqCvl6yeEXZe2FlWIIiag6iprg8a kyzO+MQ6pEsUAYSo/Ig88WDeeY8/KpM71LZgMxAAD5F9jjjBkFRo7oi51BfFmveTxtG8 w7Kw5FvInZg3gDUCnxrRUmoZFOUhxsOpTZhF4Rh7ZI0NAwLqkqEjK678JO/TnsSj3xPr GEnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765989356; x=1766594156; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=J9oK8N2pwkMR746yYWz9PU4FgDHKcw/a2sTgcdOFd+Y=; b=OxTW5A2fxeMZwcNr+02EtSONwRMVbbF/m8uJRCR2uAAJL9v3ORXFk/RprqtTu0kEtO dXfgX/MVlPcqqvM1CuHLWIIwgckkw8hLC2UMR2XbwjcEtgnFv2LN6E+OQVE9oDihi/mP u6OmOnrbAmOPWRzfxwFT26LJc6afCuvNxTchczE4eUJRhJBE6lyG879mbkcNX23bxzAy PNpMW8bKl0bo2OIBQD5bgJ2kfXsva1pbgU2+B+VxF6n+P9KEruNostHxweuaFi7G3i04 KhcDIf2iLDd4Mikyo9S+qxnC+H9GwBZ8nmeae/Pcfd/FhYtrlTfKUE9C0VYawZxos4hk jVbg== X-Forwarded-Encrypted: i=1; AJvYcCWNPB7HOU1atZhagqa6T6ZH2UAQ9Ket/q69WrppUuN4bgfpuocAlfbPc+YDmsY4PFXKNwCY04esbzEGL9o=@vger.kernel.org X-Gm-Message-State: AOJu0Yz8pj1cv7OUOh35j16/5B3idi1uui4H5CPIsP2jSZH5OJpexXMd feGJTSwUxKkxgYuNovUbF/6guq8Q9KF0uGgbjhYYkZIQZPy2IS/9QitUdx8VLDCSmosA16u/Q1L D9iJ2ASFY+kHVVSZF9KjhCoA01yeVjpFQ5TMBzD8N21gTEdEKpVeZzuyAGro/JOWWsA8= X-Gm-Gg: AY/fxX6Him7UIOEPUokEfd/cHxp07kqoPP4jlI/oRkDt0PcKdDqKWIuqz5r2PpnLhWc 6kF0sLDuRu8ZRru5ErjhMiWvy6kdhK52sn47LT+V8EraA1HYQTD4DXP7Pl3P9JYUql5uLnN5+sO CwR8dpT8T1vQO3AzCxsg/AThCbDKi+qOF5BqRjg4OAjWu3FcjK8ys5vUmt4r+HXOBNxRnHB80+o LKie8rhB4aHt5nvjvRGWWLx0ngdd/GZwCwKjHRLZXSVdbv2qG1JVfQa3T5zoTDsXV6KTmnRTyaE CjX65iLGmKqdpX9BX/VEV5kgSZxrSS7vL80NvYpMYlX0SewrJgi2a8SF+9uMnOr6DnwWIyPprzh VaqKMmPKtwKceMu9FH4WQqFAQHW5y2VQ2BDOb X-Received: by 2002:a17:902:f546:b0:2a1:10f7:9717 with SMTP id d9443c01a7336-2a110f79932mr87507045ad.58.1765989356008; Wed, 17 Dec 2025 08:35:56 -0800 (PST) X-Google-Smtp-Source: AGHT+IFAruBXU0fR3BqUKjNefzqSlJ2zO5Q8Vvekg8asvuasIpmzqrIxw0pu14gMAR+IzN3AUkbf9g== X-Received: by 2002:a17:902:f546:b0:2a1:10f7:9717 with SMTP id d9443c01a7336-2a110f79932mr87506745ad.58.1765989355375; Wed, 17 Dec 2025 08:35:55 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29ee9b36af7sm204721055ad.18.2025.12.17.08.35.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:35:55 -0800 (PST) From: Mukesh Ojha Date: Wed, 17 Dec 2025 22:04:49 +0530 Subject: [PATCH v9 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: <20251217-kvm_rproc_v9-v9-13-ab7ac03e0ff1@oss.qualcomm.com> References: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@oss.qualcomm.com> In-Reply-To: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@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=1765989299; l=5426; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=bd5VFoeXgnnfPBNtjIyA8wzQq/ONErHwh2oKqdSLe6E=; b=LwmspJyZYxCAuyaE6tQjtzG4WbqWblyS0P4c+6d8SuN/mZPf3TsDmMGPq93PAVs6POCoAKrxB qxiVjxgdOv7A8S0zrU7PZcRdAyOHjb//ATchIkj/S5Ff1BRuRBB8yPL X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE3MDEzMSBTYWx0ZWRfX41mcyFOQyySu 1WbhQb0e5RpBB4ggbFw8Kg9rc64FXCtHgtvEt+AFmIcMwN2wVRz/7mByUQFX5EZG+DNshWUsvWV 02T8LinZ/wpzEjS51yOYBiFyAnOVoXfkRqitDnbfmlsVKtDU3PwZFPE8zDrOEBeGKInuKua/Ipn LCr7zEQi/DmPUy61vFbWnHumnMvSStKi6insqXP3hkuthXKc7V0O54VwTqK/FN79hLa2jI5acE5 MiGia1n2rrPIXTgSvvjkObNqKsk+otxhntStX82xH/3G7WiUyY3UWoQEZwkOAXcpDK1bURqg7Sp MYPbJmTwpYhgPDUgqbeZF23HV6b1y4YIDtQmraAasvBMCRvOcIcsnvr255OPtMCYzC3P3oCCOVL C7g6o+tUKId5AwsZja8Y/PUuh42tzw== X-Proofpoint-ORIG-GUID: i35GFkjuW9zPPlpZR0azftqyQ6gTkOQA X-Authority-Analysis: v=2.4 cv=CtOys34D c=1 sm=1 tr=0 ts=6942dbec cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=58pnfTnN0ARRJNaB1lkA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-GUID: i35GFkjuW9zPPlpZR0azftqyQ6gTkOQA 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-12-17_03,2025-12-16_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 clxscore=1015 impostorscore=0 spamscore=0 phishscore=0 priorityscore=1501 bulkscore=0 lowpriorityscore=0 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512170131 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 07754f3a4ef8..0be7b9983482 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 @@ -255,6 +256,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; @@ -289,11 +306,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 @@ -304,18 +325,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); @@ -327,10 +352,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); @@ -386,8 +417,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); @@ -738,6 +773,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 @@ -817,6 +853,8 @@ static int qcom_pas_probe(struct platform_device *pdev) goto remove_ssr_sysmon; } =20 + pas->pas_ctx->use_tzmem =3D rproc->has_iommu; + pas->dtb_pas_ctx->use_tzmem =3D rproc->has_iommu; ret =3D rproc_add(rproc); if (ret) goto remove_ssr_sysmon; --=20 2.50.1 From nobody Mon Feb 9 14:04:53 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 93AC435A922 for ; Wed, 17 Dec 2025 16:36:01 +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=1765989364; cv=none; b=dPy6dKOuhtainENtxHa6IB+HgkIf7uubAOUOozq6tbPx/tnpNMT0RqvV9+ntcZ8JODm9AQeEMDcm2dqLROZlqnNaMPhTyUPRVGZjHoDGC9Gt+93G8cIcpPSVei1POHAa37bouLAiTLpcaywVBuZDAgFlFPUmGo/eF6kx604ICBA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1765989364; c=relaxed/simple; bh=oMFWc89WIASqM59WBMQ2RsVx7eJrG2bM4u0S9JbFV4A=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SzvZAbkqpzfZqzHlqla0XbkLvFTsKLepqCfH8eShMSlp2gBUmFZEGfhC9ficwRBqFdjUModrjKQbODyzZysGeZCte6paUOrklMdcZ93egwx44zxcgk1jvrl7Vjpw5N3bBPBT68u7UQBf8DHNkrEdAdSvuzjRagXZDM/l5VuNK+8= 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=WTIwJaTe; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=jubgqE4M; 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="WTIwJaTe"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="jubgqE4M" 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 5BHCKm3i2465100 for ; Wed, 17 Dec 2025 16:36: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= Gx0QhRDnwqi1ort9qNuTBOl27xLf7KTnbpcuanPlW+M=; b=WTIwJaTeBn8pVRPY CSaoU7hZB/pF7UmHHET8gUnhRW/szNFzjSt+Gop8WYtJrNPw+0OfxlPQndcwZrmA AhIx/gvaCE4iOfbvAXEDFg3CHAZcQk8M0Sc5BQIbFjSPVepwJ9QMuBtA/SKvl7y9 Ol/RRkrA/MKS8aN14Koe7INmt1h+zXu9dtQZETBfeQru/3tNL5XxOIv6QyjoIPR+ UWjSOyarcXYhA63w//ke/I+ZSBJr+47Cy7bxMOe9IlwVcHyA/AgnI6MwIlDUrVup Rq1oTb7CAZs8B0WyakGLpVFEAgEWaSmRTKuTGsE3qGgLJCnBeK/TeK4qXVMTflBo UhOItw== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4b3fe2b7p5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 17 Dec 2025 16:36:00 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2a0f4822f77so89625975ad.2 for ; Wed, 17 Dec 2025 08:36:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1765989360; x=1766594160; 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=Gx0QhRDnwqi1ort9qNuTBOl27xLf7KTnbpcuanPlW+M=; b=jubgqE4MkJX0yJd2aNavIr+Ad6ALG1Zkh0glh0yYkLymPDH8n49y4a577GlibuwAMG Pvbg5YSXkdz5wlBvg1iiemFd7oLUPME9DwAebEM8sSGG5nNJg3Nqj2G0MBhPe38pLQsY WyRgAZosifWxhNm+iEJ9aAd3wxWeLiUk5AadfPzR4QmCgfcnasTOC0sn3D2Uf3jpxX2s iFS1GNlQCjcmlXRFABUSoNFXDtCwj3yUeD2xzRFecpE1ce72Uxix8QH99e2pnh5B0vO8 5dO50iDFZCfML31kMqPOQlsTcPsY44EY+vSBB28fiMGJXfZvReub541COo7iO3FElSFf R5ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765989360; x=1766594160; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Gx0QhRDnwqi1ort9qNuTBOl27xLf7KTnbpcuanPlW+M=; b=M/9H3El8PdOQx3mWxbboGRhkjy3aof9Q5tfJVYb/BxCwvh8KsS+ujGyMsqKqABBYOP SFrb6O7AOUaiEz9fwv8OmgMBXduB3C/EGul8AEKQ5ScOOSMUuRypqYuRYvOuHVrJQfgC OrkrU6wAthIl+N3C9FonXK8FGUivICm4IagTkZ3mGVRlUtrd1/LJut/47Hz5u5mD2at3 SJECw6l+iTTgETpHifxP35ScmpAeQ1frv8ic/kwzTuEiK942LzJHvGJDIxYYv64s7Oqh dSuJr7RddvP8o3KK/1gWqa9a5LQ8CV+bPGMWSHOUuAjTNP3zS6DCGDyu5d6gtbMBusQN jhow== X-Forwarded-Encrypted: i=1; AJvYcCXZpOA4OCmcicZkvEEJwlfjQkZPpUcU6Gsw+vhIWTAOjUMzUUXnKwC8SuVzwUBIavUg33wU5uez7XmCrNs=@vger.kernel.org X-Gm-Message-State: AOJu0YxYGPXi9h/RLyKfihim6EktJKqxDJzwsxqbq+D1JH/f9JemUqrW 7tXF5RfT2R3pvNoVxPrzZZD0YzGJ0qhjPYbJsd81lS9S+cVaH+vDUlqzkApt8l7lKRjOr+2zm4D kMRhdivfpkMDq2QlDjSCgfYuKlIGtjsA9hS0AfVomHnmNeDRS4+5S6grW39J+X8/EaSM= X-Gm-Gg: AY/fxX5eYKhCpP3/3itE6xTgAuahYMKMbrAB3+s7L3QVEK4wBBKKpQV31ngSmNRfJ8U 0xzQhw8u34Z4938QW5N7sC5ac5Q1eIe2vsd2mtPami7I+CEki/4Un6kyErn3vs6qnhFlhLKwild nwBP2XFSGEt3EqMhEMwsSwZxT2mCez2gSmz9hFz1M4hHRcshxUVGnqO+3Qb5HuNqhFB1K778EEg eEdP4lW39VmrudfkHgFPeTdkh7bzKfkT//SKsAbMQbI7b5hz/JB05I0cKcvP5oEsRN4mE10ywWt WkS8OCsJtg1b/HJKvrIOBP9/ut7CXgtGBzp6WP30apMY9wsX6ZrvK+LOB9YmMBntunXUmbPN351 XcjfXM16J6Mvh0apJgI1gv72OIkiy2msO6hsk X-Received: by 2002:a17:903:1986:b0:29d:7a96:7ba1 with SMTP id d9443c01a7336-29f2436da68mr174784765ad.46.1765989359720; Wed, 17 Dec 2025 08:35:59 -0800 (PST) X-Google-Smtp-Source: AGHT+IEG3bqmPen8SfWu/pJLgwKJVKvOOzrx3fGPUoVvQvlNHv4u/J5M0woh4PIxPQ+d1WeG3AFG1Q== X-Received: by 2002:a17:903:1986:b0:29d:7a96:7ba1 with SMTP id d9443c01a7336-29f2436da68mr174784345ad.46.1765989359196; Wed, 17 Dec 2025 08:35:59 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29ee9b36af7sm204721055ad.18.2025.12.17.08.35.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 08:35:58 -0800 (PST) From: Mukesh Ojha Date: Wed, 17 Dec 2025 22:04:50 +0530 Subject: [PATCH v9 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: <20251217-kvm_rproc_v9-v9-14-ab7ac03e0ff1@oss.qualcomm.com> References: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@oss.qualcomm.com> In-Reply-To: <20251217-kvm_rproc_v9-v9-0-ab7ac03e0ff1@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=1765989299; l=3099; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=oMFWc89WIASqM59WBMQ2RsVx7eJrG2bM4u0S9JbFV4A=; b=b1omB5nlGXFZeqPLXbplsqhp+iQi8Y4AqyisQpVmktiuGRaLGmwzbTge5OPUOzjh2GlPhMLNg TTRtis2IU+7CUubjCn0aUsAR2x83uYxcPKOvj1wReiIipaZ6bf2eLD2 X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-GUID: 2VtLHmUL8n7GRxI9M5od4LJVyAViJ5J8 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMjE3MDEzMSBTYWx0ZWRfX4zMe1aeilDE9 DuLppi45DqLRrtHXF37CJ1TBQovQuI1utgMZrKUS/a1bZQ0AEUXaquN5QoEZD5DNKqFXAiHYjza J2RdxSkuR3S0kzS+RGkIc/zyXia+lsg7EykFhPVLrMlO4jdI9Xlb/qECkJiy7SKd07r3/kbu+jM tMQSoc86Q4FAO8fIc5RUerz+pkvLHnhziSfyKVoZ652DZWnr8oa8E/VaK4LVpmXK7QfBvC4oxBi iLkP0flYzLNowhu6hl9NrC1CHrYgmURz8qA4nodaO+VqBTB60i5X0TnIZhxNzuQKJ1QdcNqMy6B 2C5UErmg3Q+2rPbqF25mt+OPQdIH9urOUlxN9GolMgmsu++vejTfEBB6N9Ht4/rwEgu9Y5izQMT uBsG2MIZBohkNjR2MIyNA93EK0pZ9g== X-Proofpoint-ORIG-GUID: 2VtLHmUL8n7GRxI9M5od4LJVyAViJ5J8 X-Authority-Analysis: v=2.4 cv=HpN72kTS c=1 sm=1 tr=0 ts=6942dbf0 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=wP3pNCr1ah4A:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=OUqdy03oI2q1KQI58CwA:9 a=QEXdDO2ut3YA:10 a=eSe6kog-UzkA:10 a=GvdueXVYPmCkWapjIL-Q: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-12-17_03,2025-12-16_05,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 bulkscore=0 clxscore=1015 priorityscore=1501 phishscore=0 suspectscore=0 lowpriorityscore=0 adultscore=0 impostorscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2512170131 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, the remote processor firmware IOMMU streams are controlled by Gunyah. However, without Gunyah, the IOMMU is managed by the consumer of this DeviceTree. Therefore, describe the firmware streams for each 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 | 35 ++++++++++++++++++++++++++++= ++++ 2 files changed, 45 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..ed615dce6c78 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/lemans-el2.dtso @@ -0,0 +1,35 @@ +// 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 { + status =3D "disabled"; +}; + +&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