From nobody Tue Dec 2 01:28:38 2025 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DC3F6346FAA for ; Fri, 21 Nov 2025 11:01:30 +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=1763722892; cv=none; b=FpgTOtThmZbsmgLsvr0OV1HHXQR6+LY+5cv6E9qXp7+KYPsCbNv7itQT6Kw5tHqRexYd7OY49xIEgC4xM+rLJYuQ4wGjkQB5eytn1ugh0RDVBwULP8M/CgZZ8VWTF1q9mf4VWK+70SH1ehpzqnuGOhgICWYKj5+5pMl8DhVbCmY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763722892; c=relaxed/simple; bh=fkI0IV5pKXD+Z8pE0/I4omqNa0GvsOuaX0Z626kXB7M=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=MZ2N7IOciOeM8gAX2gK7w06jdXCa7WuGzYNfQVVu/nwLhSJ8KOD1h2oPvbp6v2wDQmwoKeaTG2WhaeTJS4zpzwrsrfZI4+Ra6xOUKuDY0mYREBti2ef+JDWBTvHqnxOnVN4QQEMu2vKVdZ9IoC38r6cKsUce5cdG0PenJPy6fv0= 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=cv91jIaP; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=eudc4oHi; 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="cv91jIaP"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="eudc4oHi" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AL6YgOf1988083 for ; Fri, 21 Nov 2025 11:01: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= QAPzsylvQAf0leJxcPm7SZsbOhaaSA1OJ2ImRJF3POY=; b=cv91jIaPzROzud47 IMhTx95eBib5nAW1VaBvZNOlW9UZ9h65WL9qUclSoKynp8ShaSJrZmCubBvHOhgd z7srWLllQtFj0hazcpBI6qGvHmKnwGHmPLfGkfn7j3o2smruybnFenzUhzSliGV2 w0xC+f60XBPFR/kcMGZSDxqyifCoDmfQ2vJ8vswLrAgYwtdFnJDPTkIgsxmpSLw7 mGcqMIT2VjS+e/VR8iCIK1fJjWKbYon6UDkN4pKB85wU2KY/iZCiDMtrF4CW1dir UTDJR/JQ8EsyX8trJ//HkTe3VcbwxWPuDtU2d8BDKqe5248j8vR5As5cWG3ac347 q6LdBA== 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 4aj1vac5nn-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 21 Nov 2025 11:01:29 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-29845b18d1aso49698265ad.1 for ; Fri, 21 Nov 2025 03:01:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763722888; x=1764327688; 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=eudc4oHioT8/FohRshMuMUy1i3bnceeNvsr+StliyxeI6ofLzNcJtK5Rw03DyC7n44 Cqs0wGHb/Rdt4lneVCDs09QfqjQWtoQeVwkKl1MlUfYz0cMs8OtDhu/qG0l8oxkB8FWz CxC77Kyte1oXdHWxR44lYJiezSOWJ4CfXgtsUWKPihd02SlQtrX6D/bndldDugvIdPhm 0wvKMeY99s0Ge6+4QSYCAPN/oe9/fTPYZMxwPtsBlB2HZC4S++NdVFgfRQzqiwo+ta/0 OVllsQNApaXSy0pPyZ/GXcUF/8s0Y4EfyFSLVSIwua3wl9bcmZzPI3ZfcsUaX8SY/6pj 9c2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763722888; x=1764327688; 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=m32OOJYdlZPLqgEWfODzFmCe5wFfJB0Xs6CXis5GoMhvR/A4YARzkgyCSxVV6BWmQp T6+F4s58DS7g0Ag+kQ5OweaiBgkHiRxRlDnTyS20f2bkMkz/0Tv+QV8oXgibVKujfTLx x6fanac9+D6zvIlEKuB9TnPCYvYJEr8AAZb6k65AlZWNaEsyjp0Soehdv6DjhFl6DTHE NWxz/csxhc9hqFqaJDfK1WhrS4YeTMCU8M6Lw+WnDHJ3dY4ehOcCKQJpo/oJlUeWRuAB yTZ28gVKSWHh1y7Q/kd3rcGTe3DiUezFg18NeduL+MV417qTgGhOwPqkyN6KpiIFANf/ ybyA== X-Forwarded-Encrypted: i=1; AJvYcCWiQE2ysQFw37kgyl3ek1IUxoj7X8L/JcYM0WvxUAKg/YqG64tQsEyqlzGAA7iUJhf5TAnMJbOQjVyKYHk=@vger.kernel.org X-Gm-Message-State: AOJu0YzVgsUk/0GiZeN51hBfERRaiO/b+3osaRkiAK+uchUz0jaQ/4ue PUBaDdEr68vDufAlJWn4/9MZqnnpyWPWQReTv2lEKlGa3TYk6jN5EFPk/etgz6wXpOnmapxFfVp 9cHJbPTaazpcObNp/RcC+l59otT3uOSgK85UhTXaOSbGehHzVS6PDEtiXBP6wpA6Ttvs= X-Gm-Gg: ASbGnctP3K7Ea1IKJWmDA/D/LohNceFL5UtoDWJee0YdQDdBXu5sPrcELGqN0ku5jAz iXHBL/qqQwkvYMbqOWRtE/ub5Ff+MKtLNf3SIZkouOuu7AqG+E5Bjn98i4PwErhpMTIQpck9PHj uxV0H1s9qc20eSNrCsehGxuAIQAwmTmJFoWUVjDejGa64DZ8pGY38iW9VzxgrBY3GZrYPLpT4N5 8E4Ai3ulT5nM0j8pdOxTlv9mBaFJYz6WQpW9kVxNxsghw0IIj9ni+6obXEb4tYEJwTpN4fFKcGy ut6esqon+i21FouqvvbjHspJr/QJiE4CoijnsNhkjq0h1lG1xg2zDjxEDxyMWbdazTHVlgPyIG4 pm9Dw7f6xTXMJWM3FZZcKnBLcrN13arTwqGNo X-Received: by 2002:a17:903:2ad0:b0:295:4d97:84dd with SMTP id d9443c01a7336-29b6c6b87d3mr24634445ad.51.1763722887993; Fri, 21 Nov 2025 03:01:27 -0800 (PST) X-Google-Smtp-Source: AGHT+IGEl5BDq+JwLlgnwGD8sLOEYzV73S2Wo1shOKcjpoBNg05GK5vt2WVysz/arNBau/dJyD11vw== X-Received: by 2002:a17:903:2ad0:b0:295:4d97:84dd with SMTP id d9443c01a7336-29b6c6b87d3mr24633985ad.51.1763722887332; Fri, 21 Nov 2025 03:01:27 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-34727d5208csm5191165a91.15.2025.11.21.03.01.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Nov 2025 03:01:27 -0800 (PST) From: Mukesh Ojha Date: Fri, 21 Nov 2025 16:31:03 +0530 Subject: [PATCH v8 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: <20251121-kvm_rproc_v8-v8-1-8e8e9fb0eca0@oss.qualcomm.com> References: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@oss.qualcomm.com> In-Reply-To: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@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=1763722879; l=1346; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=fkI0IV5pKXD+Z8pE0/I4omqNa0GvsOuaX0Z626kXB7M=; b=nics4Afx9r45d10kQzixveh/IFAL08pfx/B9GvoJmwVM/e1/qB5k04yXPGDKghA3/buLMSV4a ACl6ra/514fBwS5DwSBGivRMTqTmzi04h+IRNpfB23Qz6LVLlQ/x7tR X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTIxMDA4NCBTYWx0ZWRfXwX5uie/1wvrp Z97TVoqJhDPVdr/Vai33ulPXz4VHplBeKY72Nj8lgQ5bwcyoy32gV8eCVh5+DnqKKBMEedsfkb3 0wo++sbUP0vJRi/ZPeTTsDvLmWrLvAQYi7ZAq3B0N2yGA4mwYvOyOdjDb/IXuxr0bC2dpz4ddYZ FvtVV7AbymEA4NwW80bjeEA5d4LrZr31vXcO75vvrwqU8mCxLLyw+DFCHUCbmaMP2bs9jZZWc/0 nrcGzOWjLyvhlLIKYUSak4UGyYFoQtmJb+w+Nit2CV0HMBnzTETBhbnYRYvfAaWnlbeFZ1osczM WT5DVFAZg4xPZUFr7lQ+PTcnf9WVQ2KMqZ55RrE/yc2sMU9tn5BCk6oCwgEsK+Bl6K+sRfapsVX Q5yL++U4pLtSzB169kNcDqCC1xiB6A== X-Authority-Analysis: v=2.4 cv=Vpwuwu2n c=1 sm=1 tr=0 ts=69204689 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=nDsJnkO8JLPJ0mjf3QIA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: qh5FELUoMw3DDS_AsDeB_jO2yyCrORhK X-Proofpoint-GUID: qh5FELUoMw3DDS_AsDeB_jO2yyCrORhK X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-21_03,2025-11-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 bulkscore=0 phishscore=0 priorityscore=1501 malwarescore=0 spamscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511210084 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 Tue Dec 2 01:28:38 2025 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2CFFD346FDF for ; Fri, 21 Nov 2025 11:01: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=1763722894; cv=none; b=L2G+uM1K9r4kxKQQ+H4EH0Mj9nKVp8nFcHjNICzE0wIz9rE4IGyXQXiQgmSTaV0Za4K4T+NPnl+xpvX1uOvFZ6CGbh2b0JKy76XNvX/yCJbPK+VLg/fClvNhQXleA/cOEK+c4oUjceeUhyul0mRBOJPc9MH8bLpuRwh79EVoAQY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763722894; c=relaxed/simple; bh=4OHWHDjFq2jAK9+Bld2fkj3MwlJ5JU6OOThT1NP9j4s=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lbdwfgOfhZnbqxCe/4mg8lNgBnpgUMuH+wqgVbcH/JuB5/RmnG/XB1Cn7V/lDSKn2Faj+tfhbGLjnd3wiS8pl0XolS9zBZlMO43QwBJL2c4M2ut9XyTa9IoJA1+xHcLpZsRkbEZyChgGFcXqZPlYhJVZ+NKC/eB0EgmMSNygTRA= 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=UPyEXWeF; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=g7S7EC4+; 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="UPyEXWeF"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="g7S7EC4+" 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 5AL9VuSs3048071 for ; Fri, 21 Nov 2025 11:01:32 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= AR4qgOv39nCgYv9wQSzT0BQbLvoJwKdb29TlFdA6Xsk=; b=UPyEXWeFnox++Jps 4cfEqE/nV4MKjvb9BL17/4ELkBp05A49z4fXHO6ELK9ksdBkD7oLWttxgonY1QVT DIkBEp/SFXJllulVcYRyAcFHiulxVVDyUmgUnKr/o5m5hXbOqB9AqRHFNYojqxvM OMmhWYRtXbZK6TbnzwbjQNADDvsz7DL3SXCFqygFtSJFKrgk7SPfXjh/StX3GMKt ql7MIm2qNx4fROaSp3+L36b6SchOndqhS9VRcLiRYeF9EWIXxPpRu2iDfgRohey2 CRJCPLSc40gO6c4S2D5YWa1rWbvyr2zEJ+mrspLZHi/8AFRauP960K1VEX5C8qxk sMZbpg== Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ajnhjr922-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 21 Nov 2025 11:01:32 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-3416dc5752aso5612315a91.1 for ; Fri, 21 Nov 2025 03:01:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763722892; x=1764327692; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=AR4qgOv39nCgYv9wQSzT0BQbLvoJwKdb29TlFdA6Xsk=; b=g7S7EC4+IZfVvgnVU0b7MQ1dFY8So1yeAqbkRpxHp6x9Fp5PGdjWJmVrPifZ9BtuSI DHXmdTYAP4ssdinDGV2Id4ric3hW6MoazoiK2jIYVT6x5xemrKGQI7CfvQ+vmz+5IrMd NjHSnTmM/x7CISzm1kyGVhdNzIqRcsCaCrsFXpeGd5sllgegJiS53UzGwRisGx5wEX3S gwj0PvtqxiEbA/e+Xxh/2g/IFDoC7c/gZld9azrp8ptFsqwl5JUt3wPjznKyU3WkL+Q1 cPKNOWYDAAvNU+7OI1Arl+xaDDuz5M+t+in5RzyeTJOgnWPvTP8oyvkIAeQkIKK7vAY6 QdOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763722892; x=1764327692; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=AR4qgOv39nCgYv9wQSzT0BQbLvoJwKdb29TlFdA6Xsk=; b=aCVciruJfsyyEH8x4UXPTuiaOvtesqZEVXtiWhuYE2qGIQ4YZxngLeFpBB3SumFAHI h+M2Gus3ept8H5L7k/VuCy1vsb/KgzWCk7Bw65yGuMZ/WHWcjd4N4/8KYSWUcz5jG61E yc5Bnvmy2MXcZaftJVG6dE8uf7Yd5FiSCBa0EZwMc5SWc8M7atyW7gO7Lid/7yHX8AX9 EMYSjEhGIxBJisZ3gVvJTA2FZNq9QtDi43+2Td0O8kGix/PTWMQz55D25Y6i8cFmB2Pk yr2hXipV8/gbpPCnxg4Tpb6clxNOh5R2U470+Q1I/IKSXON9UND+9yvm/sTanlcd9PUc H2FQ== X-Forwarded-Encrypted: i=1; AJvYcCXYLfDBbdlXVGuWPtOtO0/wxAkhSj2xKtOEFpI1oF/XT6pNj17whLEy14GL766HY5n4SDQn1q87998p+ac=@vger.kernel.org X-Gm-Message-State: AOJu0YzkjrLt2X5jjGr/GbSGhTrhDzJIRxV8FlI5YBzz5GJWUu7ocHB/ iQNcMe0vdGkRMVlcrAUB+mX7h30n1/ntaCl99fRwUyOcrPOS6d4U2pKpYuvVOYyf3TxnRAuHlQs 4fN+sb2QxbyAulwXFuWWTq15mpSN2gQRVb13eGYzdOrpY1YYOWCmaoE1y9TmnHA1AYGM= X-Gm-Gg: ASbGncsX1e0aIXXNv05D4XZNMTzYozXFCsHjwMQbWGpGmkNvoKzBc8RCX6JchvQmdUa X87nbN20AOvw2ygAWBTWyMBB19m9+ZFqUYkXJsa3F+3hLtqLHX3yqElxpvpSxSprCSafjII60we sxHy4AwhSIfVel2up9FhGCQj27pRBD5WZDaO8YeorICc/QWsZzcN6cCRg6lEslC4m78Onf2rzdZ 61EA/w6Q7QAMiVv47blJCLvgCzp09xizf826qyjtmenWsT8BEMgtF0Htq2JZqQnjIzLq2dT8+N1 OWHFbCtRbOcwk/7K1tPP9NA0OUaryF3/qGDeSRE1f5bncfzHXseSjmbs6Y4mzFBVqmqlgRPYQJh unZO8C21S6I0fvCz/QEFLr+SC+VK3waGLBD0x X-Received: by 2002:a17:90b:1c01:b0:343:8242:fbaf with SMTP id 98e67ed59e1d1-34733e78facmr2353062a91.10.1763722891817; Fri, 21 Nov 2025 03:01:31 -0800 (PST) X-Google-Smtp-Source: AGHT+IGruYPbxJ0wdUplhScy6yWFlNJDGF+FcjwecZPTTqfMzUPmK0CRo4jwMemUW9ciMslbAW5Aqw== X-Received: by 2002:a17:90b:1c01:b0:343:8242:fbaf with SMTP id 98e67ed59e1d1-34733e78facmr2352978a91.10.1763722891133; Fri, 21 Nov 2025 03:01:31 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-34727d5208csm5191165a91.15.2025.11.21.03.01.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Nov 2025 03:01:30 -0800 (PST) From: Mukesh Ojha Date: Fri, 21 Nov 2025 16:31:04 +0530 Subject: [PATCH v8 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: <20251121-kvm_rproc_v8-v8-2-8e8e9fb0eca0@oss.qualcomm.com> References: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@oss.qualcomm.com> In-Reply-To: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@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=1763722879; l=906; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=4OHWHDjFq2jAK9+Bld2fkj3MwlJ5JU6OOThT1NP9j4s=; b=dSHngmywAeCxkVUyGHNZ52W/H47oY9IZYWvOLGsaNXZVJ12FK4UbAJpJe+SIIuVo7yvE6xIhU LVHtc8fpvb8ByZ/ZaloRyGt2ND1MZX0KyqyNBk//tLCaQ/9Mrefx7zF X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-ORIG-GUID: OuHgPKUY3r3dpyL_kAaBRvCL3NLtNHRX X-Authority-Analysis: v=2.4 cv=SPlPlevH c=1 sm=1 tr=0 ts=6920468c cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=pWxEDRe995Kf1ot4LjYA:9 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTIxMDA4NCBTYWx0ZWRfX7o8uYYFY8VM7 S3aReNvJGxBiapF35MTWNAHM5ziijPYccMtIVcnKEfhsb+B+VneqX35NvkPmrc8F5q5+g+8tk6F vhQYJQpfqcO1H2ScVT9iSKU/I2NJ+rQzHtGH9gXrGWsVPrfBt4Gri4ppKd2jNyCQVSnjPSOLOfp cszNGWzjpbFDTmLIz5Kr6jr9Y1mWBIOkW7ZSnG/0ZotUtGC64mc28JHLDakIe+cYi8QS74lE9Uv vuDtiy/VgQta+1Gi7+wCib4SER8S3EkvC0Xto64+1zVTqKh8Fu66OnadN3i18gfrrSo3MRc03S6 c72D0k9f1U4HdqKjBxx/6C+pINGasJOVXvU6w2B+wiGCMnoIfZ5YGkk3oYM42CtghmIxAEdDbmO GFW1cZbtgsGIhTDV7ggQZiqIlygRCA== X-Proofpoint-GUID: OuHgPKUY3r3dpyL_kAaBRvCL3NLtNHRX X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-21_03,2025-11-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 lowpriorityscore=0 adultscore=0 malwarescore=0 spamscore=0 bulkscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511210084 The qcom_scm_pas_metadata_release() function already frees the allocated memory and sets ctx->ptr to NULL. Resetting ctx->phys and ctx->size to zero is unnecessary because the context is expected to be discarded after release. Lets removes redundant assignments. Signed-off-by: Mukesh Ojha --- drivers/firmware/qcom/qcom_scm.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_= scm.c index e777b7cb9b12..26969bcd763c 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -650,8 +650,6 @@ void qcom_scm_pas_metadata_release(struct qcom_scm_pas_= metadata *ctx) dma_free_coherent(__scm->dev, ctx->size, ctx->ptr, ctx->phys); =20 ctx->ptr =3D NULL; - ctx->phys =3D 0; - ctx->size =3D 0; } EXPORT_SYMBOL_GPL(qcom_scm_pas_metadata_release); =20 --=20 2.50.1 From nobody Tue Dec 2 01:28:38 2025 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7332F34847A for ; Fri, 21 Nov 2025 11:01:38 +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=1763722900; cv=none; b=XthUjtuLT26jMQ0PxA+M1oxbOPWaKZYfdW+2a0ddRhp6DXPQFJuqreDUxN9f/OJ9HRl5OfsqyC1oUU4I2fqzvReLeKEXHKosrpe+8pTaiYwKqqBzWBo4c8s1PTc3k2awPZDie7DYRCAOyGIRQ9B/q3MoP7yl1h/vD0A7BCux6b4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763722900; c=relaxed/simple; bh=KUuA5AXV3d7PwlEmiR2ZurS0DdJb3IamebuV5ckZzmM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=eEBEZthz+plCOcNwBUQrcu3CpizdN/tSWANa74MSDoBHIa6N+LZvEZpDxzKQh3ED0jCXhlpYH1AiPvpucExlWtIEj5Swbd2E9mH8rOQ5y8caNwxlKM1umRYDhbvYb0liamFBdtb6W4tiZP581JY2+9JhZ9nV2jy6ESuPI02YPRg= 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=OIyLLDxc; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Qyoy0XBC; 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="OIyLLDxc"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Qyoy0XBC" 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 5AL8s3dJ3676619 for ; Fri, 21 Nov 2025 11:01:37 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= iEVZCcztr9EOYMu31Bx8peC82HjT/I+z2RQHL73/z+w=; b=OIyLLDxclXvY/TZy u3CG94nIb3VbZspA1nJ2ClEVFgTFc/b7gYC5l4XrVWRzc8/nwyk0IbsFx6tgVf/k 3JN+XA1279ESKyQ6Y55oWKQBijSEjrYyJCgmj1Y2lirnosDYZpvJmjafQUxma1mH elCTW0ga3jwCuiMSn61G26WP0q696jq0U70kO13zxyln3A1ddUZ9CBABiK9Y5P08 I8C5hCAdigijJd6PQ78sHdQJb1QlRtGmcXiodvVr203MbQtGBJrBEYgwFt4eepEx /17LauUkGTHKrlD9Cod1LqdRvVQkLPCLUVZ3SO0jNTJVZdBEHqEol6aQiQ5GCCg+ lOj9RA== Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ajmyj8gm5-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 21 Nov 2025 11:01:37 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-34566e62f16so2321096a91.1 for ; Fri, 21 Nov 2025 03:01:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763722896; x=1764327696; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=iEVZCcztr9EOYMu31Bx8peC82HjT/I+z2RQHL73/z+w=; b=Qyoy0XBCa+ZkOhc6pfCLGVwZAKISIQm29uI+i2cjd8N68+eYWLJXB0a3ykbMR/Md4k uYBZsPP0S/OS8RAOCNyzdzz1P+xwHvgKVnqVXpTZbqwbAhPTfp5N+B247bv7jLo1rqwr 6+rux0kejX7xT3hljnFv3apE1eL7+4E9Egze32xWe8L8U84j3kJoHum0kv/VmYR/bHhD 5Ehg+SwIo2BDHoQ/ivfq9fF2wgdPbg4tpLesZ4rdM1OF3fVsPExu7S+qXfcovtgLfUyZ jLu6qJZHgSsXdjRIMA8hw572u1t0JRpfqG3YX506dBovyfGMpz6nucaQAlnYySr8SYCS vZkA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763722896; x=1764327696; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=iEVZCcztr9EOYMu31Bx8peC82HjT/I+z2RQHL73/z+w=; b=hylC1zPKgDgUrBAr2IeUoqCH7zmK4Vn1VcDHUZLTtVtjH6RZLlMkw/3iZ3MHySwCSV 5xch6bR3zMGD7cZFRt/slDClVb1JoRgJfrDTabeqfPMN9+rh3JxjEmlt2fpw9XBJK8HJ D0M1LAfSdnA4SMxS7ylCoYvTJMh9jpGt6d06mfYWgJOWCG1ebd6UyIy2nd2tvmUsUkwL M9RlGXEnVwS97QNVT6APlXVF1iiEc48jK54bd0d8wX63kCqDWyK64pqQdM2sxecqRJjl S3tH0Grv1kY7VUVVbM01eDw2VFkVhyf5TH5CgzKS5voJPcxiK0+OFG85jH+JDAu9wXHI 0gRA== X-Forwarded-Encrypted: i=1; AJvYcCWxmmEZ2viXduQMrgj/f+npR+Ukq8iF9w3+I/EmnTWxPjhNQhyCgQnpZtezChVXYU1jW9UYab9pXjrH0pk=@vger.kernel.org X-Gm-Message-State: AOJu0YyiEztRLTDEo1/b8aKAzlMpW5cyzMQ4t5YGGGa35wAKcvNPdhV3 62EvDcxToAzEcpI6e4ngVf+nb+eckq6a6BN6QzBliv3Bm7OhXljeiY+NssHGEZhXrAjFQw0hnhG yytz2pFWVbsQHYa1kyKJAxHeuvS1chiRjGqGbGizgfCMp3s3PHu0PcEiOYfz0U6NBOmk= X-Gm-Gg: ASbGncuI5QLa24QbA5weKAYJlYIpYZyJnR4kOM6Q0BOltKH2zIK3FKaSgdOC+aka1q9 cpPhr6Rp00UayKaZZSEtseifBSgMKaeulWe04PimAx8zwDOY4EXsjN9hFz0pjwvmPNhObRYonF+ 5FzPRyYO+s0Jx5A2//zzRrcdP6xHUZemCpDTFBm9bKqlGW2Jx5h6738tLwhSDTV8x9X+eqaZbcw dVa0OGExeAX+EB7uiHjd3bcsyGudv8kgewgH4ZPvDxAX5YH1wFOP69O5UPcIRBoVi7Sp2/LbX4C 1QlWBGvqat4yBMMFSGvLWCX022z0eMI3GiXn+S1vg0WGknydRUp53gUrVl5Xc5UApz8Z3y/SiYv OB2nsBJDsraIgBoDhA0EOxONzjjX57qA4EElg X-Received: by 2002:a17:90b:5544:b0:32e:2059:ee83 with SMTP id 98e67ed59e1d1-34733e4c8efmr2697511a91.7.1763722895947; Fri, 21 Nov 2025 03:01:35 -0800 (PST) X-Google-Smtp-Source: AGHT+IFrc8AZ2Iq3QEg/QC+qwSygGiOivK/qGNgE0h1CyEBx7hyw8ywZHo3+0ygzvW80e7rQOniRAQ== X-Received: by 2002:a17:90b:5544:b0:32e:2059:ee83 with SMTP id 98e67ed59e1d1-34733e4c8efmr2697422a91.7.1763722895243; Fri, 21 Nov 2025 03:01:35 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-34727d5208csm5191165a91.15.2025.11.21.03.01.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Nov 2025 03:01:34 -0800 (PST) From: Mukesh Ojha Date: Fri, 21 Nov 2025 16:31:05 +0530 Subject: [PATCH v8 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: <20251121-kvm_rproc_v8-v8-3-8e8e9fb0eca0@oss.qualcomm.com> References: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@oss.qualcomm.com> In-Reply-To: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@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=1763722879; l=6116; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=KUuA5AXV3d7PwlEmiR2ZurS0DdJb3IamebuV5ckZzmM=; b=S1fUJVjdmIXkcbBArv2lf+kkveJc/DfSR0SLuYtk9rZManJlUISfhrs3hoi7eCop83xv06Htb Tjr/UK2sDUTDpiuEE0mdt6awOLPkJCMkr0UAhvM0aRCCfAJ527G4blo 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=ELgLElZC c=1 sm=1 tr=0 ts=69204691 cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=bcWw3dkznkfw-y6_B5AA:9 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTIxMDA4NCBTYWx0ZWRfX0Rpeetgvqz0/ MSqNGG/sqJSVuC8ubbWktGqa+qh76kBru+fAOiXigUQo7tCvmZueot7BGtl9335dWNGR87Vx/q0 u6qtNnfgJ8QnU6msLQqkFJMzuBJ8iXQU50zH1zhJU/yaJoKb8Qkvp2owTD1HZT7l+0v5jXx0NWg u7YaC8WYOD1Zy/8XK3WbUVIUIFI1QicUJQezp3aBP8EqX2awJrxJUfBMtC6HectG4FGth4JswBJ pweqV0keaSkIkF/fpo1lW/h4nvVxVVBXQHOunXtJAS95JKpNsRjTIdp87z9za901TmY3UBJ9TNd T0XNPPaEEtc5LMi98VANfZBaL/skjy+qRP6i4IGyC7xROifIvvx10CP0cUABWmpMDIvCrlsZ162 R5eYs8i2KM8lCuCs3AIuZ/p4iwg5XQ== X-Proofpoint-GUID: NT_VBMA6kD7BqnJ0cR89pbYdfpbRQUTA X-Proofpoint-ORIG-GUID: NT_VBMA6kD7BqnJ0cR89pbYdfpbRQUTA X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-21_03,2025-11-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 bulkscore=0 phishscore=0 spamscore=0 impostorscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511210084 Peripheral and pas_id refers to unique id for a subsystem and used only when peripheral authentication service from secure world is utilized. Lets rename peripheral to pas_id to reflect closer to its meaning. Reviewed-by: Bryan O'Donoghue Reviewed-by: Konrad Dybcio Signed-off-by: Mukesh Ojha --- drivers/firmware/qcom/qcom_scm.c | 30 +++++++++++++++--------------- include/linux/firmware/qcom/qcom_scm.h | 10 +++++----- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_= scm.c index 26969bcd763c..0a0c48fca7cf 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -562,7 +562,7 @@ static void qcom_scm_set_download_mode(u32 dload_mode) * qcom_scm_pas_init_image() - Initialize peripheral authentication service * state machine for a given peripheral, using the * metadata - * @peripheral: peripheral id + * @pas_id: peripheral authentication service id * @metadata: pointer to memory containing ELF header, program header table * and optional blob of data used for authenticating the metadata * and the rest of the firmware @@ -575,7 +575,7 @@ static void qcom_scm_set_download_mode(u32 dload_mode) * track the metadata allocation, this needs to be released by invoking * qcom_scm_pas_metadata_release() by the caller. */ -int qcom_scm_pas_init_image(u32 peripheral, const void *metadata, size_t s= ize, +int qcom_scm_pas_init_image(u32 pas_id, const void *metadata, size_t size, struct qcom_scm_pas_metadata *ctx) { dma_addr_t mdata_phys; @@ -585,7 +585,7 @@ int qcom_scm_pas_init_image(u32 peripheral, const void = *metadata, size_t size, .svc =3D QCOM_SCM_SVC_PIL, .cmd =3D QCOM_SCM_PIL_PAS_INIT_IMAGE, .arginfo =3D QCOM_SCM_ARGS(2, QCOM_SCM_VAL, QCOM_SCM_RW), - .args[0] =3D peripheral, + .args[0] =3D pas_id, .owner =3D ARM_SMCCC_OWNER_SIP, }; struct qcom_scm_res res; @@ -656,20 +656,20 @@ EXPORT_SYMBOL_GPL(qcom_scm_pas_metadata_release); /** * qcom_scm_pas_mem_setup() - Prepare the memory related to a given periph= eral * for firmware loading - * @peripheral: peripheral id + * @pas_id: peripheral authentication service id * @addr: start address of memory area to prepare * @size: size of the memory area to prepare * * Returns 0 on success. */ -int qcom_scm_pas_mem_setup(u32 peripheral, phys_addr_t addr, phys_addr_t s= ize) +int qcom_scm_pas_mem_setup(u32 pas_id, phys_addr_t addr, phys_addr_t size) { int ret; struct qcom_scm_desc desc =3D { .svc =3D QCOM_SCM_SVC_PIL, .cmd =3D QCOM_SCM_PIL_PAS_MEM_SETUP, .arginfo =3D QCOM_SCM_ARGS(3), - .args[0] =3D peripheral, + .args[0] =3D pas_id, .args[1] =3D addr, .args[2] =3D size, .owner =3D ARM_SMCCC_OWNER_SIP, @@ -697,18 +697,18 @@ EXPORT_SYMBOL_GPL(qcom_scm_pas_mem_setup); /** * qcom_scm_pas_auth_and_reset() - Authenticate the given peripheral firmw= are * and reset the remote processor - * @peripheral: peripheral id + * @pas_id: peripheral authentication service id * * Return 0 on success. */ -int qcom_scm_pas_auth_and_reset(u32 peripheral) +int qcom_scm_pas_auth_and_reset(u32 pas_id) { int ret; struct qcom_scm_desc desc =3D { .svc =3D QCOM_SCM_SVC_PIL, .cmd =3D QCOM_SCM_PIL_PAS_AUTH_AND_RESET, .arginfo =3D QCOM_SCM_ARGS(1), - .args[0] =3D peripheral, + .args[0] =3D pas_id, .owner =3D ARM_SMCCC_OWNER_SIP, }; struct qcom_scm_res res; @@ -733,18 +733,18 @@ EXPORT_SYMBOL_GPL(qcom_scm_pas_auth_and_reset); =20 /** * qcom_scm_pas_shutdown() - Shut down the remote processor - * @peripheral: peripheral id + * @pas_id: peripheral authentication service id * * Returns 0 on success. */ -int qcom_scm_pas_shutdown(u32 peripheral) +int qcom_scm_pas_shutdown(u32 pas_id) { int ret; struct qcom_scm_desc desc =3D { .svc =3D QCOM_SCM_SVC_PIL, .cmd =3D QCOM_SCM_PIL_PAS_SHUTDOWN, .arginfo =3D QCOM_SCM_ARGS(1), - .args[0] =3D peripheral, + .args[0] =3D pas_id, .owner =3D ARM_SMCCC_OWNER_SIP, }; struct qcom_scm_res res; @@ -770,18 +770,18 @@ EXPORT_SYMBOL_GPL(qcom_scm_pas_shutdown); /** * qcom_scm_pas_supported() - Check if the peripheral authentication servi= ce is * available for the given peripherial - * @peripheral: peripheral id + * @pas_id: peripheral authentication service id * * Returns true if PAS is supported for this peripheral, otherwise false. */ -bool qcom_scm_pas_supported(u32 peripheral) +bool qcom_scm_pas_supported(u32 pas_id) { int ret; struct qcom_scm_desc desc =3D { .svc =3D QCOM_SCM_SVC_PIL, .cmd =3D QCOM_SCM_PIL_PAS_IS_SUPPORTED, .arginfo =3D QCOM_SCM_ARGS(1), - .args[0] =3D peripheral, + .args[0] =3D pas_id, .owner =3D ARM_SMCCC_OWNER_SIP, }; struct qcom_scm_res res; diff --git a/include/linux/firmware/qcom/qcom_scm.h b/include/linux/firmwar= e/qcom/qcom_scm.h index a55ca771286b..a13f703b16cd 100644 --- a/include/linux/firmware/qcom/qcom_scm.h +++ b/include/linux/firmware/qcom/qcom_scm.h @@ -72,13 +72,13 @@ struct qcom_scm_pas_metadata { ssize_t size; }; =20 -int qcom_scm_pas_init_image(u32 peripheral, const void *metadata, size_t s= ize, +int qcom_scm_pas_init_image(u32 pas_id, const void *metadata, size_t size, struct qcom_scm_pas_metadata *ctx); void qcom_scm_pas_metadata_release(struct qcom_scm_pas_metadata *ctx); -int qcom_scm_pas_mem_setup(u32 peripheral, phys_addr_t addr, phys_addr_t s= ize); -int qcom_scm_pas_auth_and_reset(u32 peripheral); -int qcom_scm_pas_shutdown(u32 peripheral); -bool qcom_scm_pas_supported(u32 peripheral); +int qcom_scm_pas_mem_setup(u32 pas_id, phys_addr_t addr, phys_addr_t size); +int qcom_scm_pas_auth_and_reset(u32 pas_id); +int qcom_scm_pas_shutdown(u32 pas_id); +bool qcom_scm_pas_supported(u32 pas_id); =20 int qcom_scm_io_readl(phys_addr_t addr, unsigned int *val); int qcom_scm_io_writel(phys_addr_t addr, unsigned int val); --=20 2.50.1 From nobody Tue Dec 2 01:28:38 2025 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 900783491D5 for ; Fri, 21 Nov 2025 11:01:42 +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=1763722904; cv=none; b=udohqvs1KfqE2RvFWAUTGMYG73bv4y3BBMRLjbOKXNHA0rkS+cncCqkRtbK5aZCGNP75CGuDE/GeUTf0yJECo8zpBgp1zcBqPGGouq/bdY+1pd4ktHlQHvURv35tocW4A2jqLibezcZ/gWrfFvpnFwrHarnuLJlJIigrjuRjvjg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763722904; c=relaxed/simple; bh=atRUbTe1wqlw66lPTwU2h2uX5zOo7TURemVlkzfSfrQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=CWSSXsuz9oWstnh+GTaGIWQBvZdMk4jjq4v8biMvW/4IM4cFc5YU2dNBI0uXBTJiC3b41m/lXrxFZfSWJdexFRdcA/qhi32I76gfUCDAL1Wr72OtmyctEVBYppIufuvBoxv24StSlGhQfr6khJ3XVfURXpNyeIIIU0j9CfaL4HU= 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=P9qJAf/u; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=MJmrF/3X; 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="P9qJAf/u"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="MJmrF/3X" 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 5AL8YuHJ3139659 for ; Fri, 21 Nov 2025 11:01: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= gGMHteN96D+kdzeh+oroZ90SMRQswPS3eyagrABl0U8=; b=P9qJAf/uka3Y281l oBnIVLQn5yirzjIadTqJYSCgqNpQPfzc0SGMe+bj/6riFGxNm51yjrP4cgrujCPq bU1M+6hvvXB2t9XjyNuoOEj2SCaXMpMgfoOis2Tk0h8xA0ChmVvkEwd+rmLXb+6O +5ums39EIPU/52vHiFXJnY9gX4GFEeXXkVJZmvdsOZwvmkilzSN56BWdX21yW23M 3QZN64ad0rX1HU1xS0zMcejP5AW+zjtBAOgIYBVpfqMrGDZXVaxJXZDwNxx3TMeh oiL4i7ZROoHvIXNVM+HPU89EyVJPjL8+Vpz+lrS0Zw8oQOU8mBibHS15/DPF+ngW unTkXA== Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ajmppgm20-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 21 Nov 2025 11:01:41 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-3436d81a532so3931818a91.3 for ; Fri, 21 Nov 2025 03:01:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763722901; x=1764327701; 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=gGMHteN96D+kdzeh+oroZ90SMRQswPS3eyagrABl0U8=; b=MJmrF/3XLDCopRjTXlV3o+9ZPNdq371tEuXQGjNzYzdBQNjeI8JupbZXQktTQwEbHR hIiRn/qCC2BZipi0N7YJhCSP5C+gQYSFovXZoIlzBkqLJuLAr6mS3rpRnmuzr6OUY58a fdKWPKACZylp20NeVLF72OVHQlyVDYnf25zJw72UG/TLBcoZ/MpjQtK5hXt4v0IFhajf 18Eq1aUBq+43AzeA0zLqYOBM16f3gZn8PYmqfqI5oPaPjasskB/Qz9v1gXfJ/OY1sdkE SW17aYNVzPseDhs2NVpibtNeMTRMvA7WQMlSQJ0T8EwmANx/WGVOUuvDHLb4w3xqhb7+ DAEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763722901; x=1764327701; 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=gGMHteN96D+kdzeh+oroZ90SMRQswPS3eyagrABl0U8=; b=WzgKQ5wyAoTHJv67ngBLWw/0ZCQBEkxu9Ib4Svf/eBEnXQBj9RTA3InNpVK6ra80kD KVEMvcuuy2S6xwJdp+VgPxR4RpEY8DtBx+uvRlnHDMLqyim0hbzyM6JzZfR4yLay/7aU bQUU8uBJ2vJs7QrRFFeFcLuz126O7A4MhJZcK7UJleBXYnJKoel6kIwC13U1bAN6QNLt lFr6fDii6+iCjbAIaS+HDwD3P9egWUTao4u7wucu9Jyq0VVKJSQz+naNRHdya7oVCtKh cn7WVDrVSf9SDjI8WCW16QSO5zwjpwXoatkfqMbqLsq6jaABHbzUyOBN7hk3B59sHvE/ AMdg== X-Forwarded-Encrypted: i=1; AJvYcCXVJHzvDDpJfl7z6cL2kxLshR8DbDUESzWEA6i3plCXS3NsEIt1BPTXftyq8/iRkgMG6Ft7YwllUsfEWgk=@vger.kernel.org X-Gm-Message-State: AOJu0Yy1nnIkya7EcuMPxWxAdVA7AM6c31ZhEDitJaxGqC99Zax7TD70 bwiE7s7D6w/ykRjHB3FSyh0ByDe9K/C8O1Xr5qPKXfsNaPhCUaLQsS7OFwbAtnQr8dMZdEp9dsf bTVrRvs0nFzTxJ4zoIEZ2/qsRPey4JDftriohSwO1HvtdfE4rDqVStLsAI0StusBMAMs= X-Gm-Gg: ASbGncsADS3V62b3oTpC4M9j0SIxApwVLoHUJx0BoS/skJyto5kJH9k1PR1G9G4NVx7 G3weULapx6n0a86H+639hy2Z1vR8SkUEKp/ES41/bzP34USNTmX+6hWfP4WJ25kBC917c3kAziH CGkLLRWvLX8V/bPJ7Zue4vxGPxXtn3am3NQHntFqO+91ygTGycA6bOlTKKkHht9IRFHeOgyT5Yn lRdhNsmJrgyhLgAzXXQ4tU6TODbbfJG4k4Bp2JF+UrSsORzPw7dyDzg3ruFLRhLPiQ9Udca59LI eEEQ/AqGe1jhjSepOgnAcFHgfl3iZiCxdhx286hTLdnsW+LHd8P35rdG2odoy8bKTnkjMDJQyiz EthJPD4FgIXe3bRqcsDPsPpMKhMWs3JOdb8Yu X-Received: by 2002:a17:90b:2f4b:b0:341:8bda:d0ae with SMTP id 98e67ed59e1d1-34733f2de45mr2302145a91.20.1763722899584; Fri, 21 Nov 2025 03:01:39 -0800 (PST) X-Google-Smtp-Source: AGHT+IHun6eTxQZztKqbKIy4EXfyv4Laf/KztaRT+F0JNkqQRthBtd5FcxMQdybDyeVSM2bhhR66sQ== X-Received: by 2002:a17:90b:2f4b:b0:341:8bda:d0ae with SMTP id 98e67ed59e1d1-34733f2de45mr2302072a91.20.1763722898933; Fri, 21 Nov 2025 03:01:38 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-34727d5208csm5191165a91.15.2025.11.21.03.01.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Nov 2025 03:01:38 -0800 (PST) From: Mukesh Ojha Date: Fri, 21 Nov 2025 16:31:06 +0530 Subject: [PATCH v8 04/14] firmware: qcom_scm: Introduce PAS context initialization helper function Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251121-kvm_rproc_v8-v8-4-8e8e9fb0eca0@oss.qualcomm.com> References: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@oss.qualcomm.com> In-Reply-To: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@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=1763722879; l=4059; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=atRUbTe1wqlw66lPTwU2h2uX5zOo7TURemVlkzfSfrQ=; b=bHlSlo92n3VgckL++DWPpGBDbCq4f5xm9w2gE7vSUVmjL7bmjBaXcP/cS2TVKuaTmB74lmOPv 6UqD0RSxxo2BaXHGvpphrEyeIlCv6Uj1EDZiQZ0ovWA3gJLlWIEVh7W X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-ORIG-GUID: os-Z1CVAwUCUhtRtc1kDRewoSQ2LJqAc X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTIxMDA4NCBTYWx0ZWRfXyoJC0dlPCOjS R/ZFoPslqumUTHBD3qseFoip+YWF8dBYNzaocYjE1RPEFGEj7LgUtN3H05jGApcGJd3pm7c7EZ0 1uu57GJ+XH+ixXXSLd3w5n2DBA87wuE+6P9/gZUm8dWSiV/P8eN741XIwsn+KE/1tY78PnI0xRl deEWUG3K1EahzH9QQGvaguZR1JAMG6FwLUuXNahPgzBeqUGORNdT66BcyZWwr/Qh4UdXu9Mxm2P D2hnVJfRZoyTwYDRXVKWbzNf6SwobEZMritMQblFKKhi0U2iMGMn0O8nyIEYSTpSXF4Z85lK0/t XPlceV2JHyvZatxOizheqPMx6VpGA5F83P8SRQPXuFu6Msl0eMOISvS71GwYP0xL3qCqXX6tKfs dkGGzRX3jS41Vx1/ltSiredWvdWSaw== X-Proofpoint-GUID: os-Z1CVAwUCUhtRtc1kDRewoSQ2LJqAc X-Authority-Analysis: v=2.4 cv=CK4nnBrD c=1 sm=1 tr=0 ts=69204695 cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=FtZ2CgB1kwCBZN0VdloA:9 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-21_03,2025-11-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 bulkscore=0 adultscore=0 spamscore=0 impostorscore=0 suspectscore=0 lowpriorityscore=0 clxscore=1015 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511210084 When the Peripheral Authentication Service (PAS) method runs on a SoC where Linux operates at EL2 (i.e., without the Gunyah hypervisor), the reset sequences are handled by TrustZone. In such cases, Linux must perform additional steps before invoking PAS SMC calls, such as creating a SHM bridge. Therefore, PAS SMC calls require awareness and handling of these additional steps when Linux runs at EL2. To support this, there is a need for a data structure that can be initialized prior to invoking any SMC or MDT functions. This structure allows those functions to determine whether they are operating in the presence or absence of the Gunyah hypervisor and behave accordingly. Currently, remoteproc and non-remoteproc subsystems use different variants of the MDT loader helper API, primarily due to differences in metadata context handling. Remoteproc subsystems retain the metadata context until authentication and reset are completed, while non-remoteproc subsystems (e.g., video, graphics, IPA, etc.) do not retain the metadata context and can free it within the qcom_scm_pas_init() call by passing a NULL context parameter and due to these differences, it is not possible to extend metadata context handling to support remoteproc and non remoteproc subsystem use PAS operations, when Linux operates at EL2. Add PAS context data structure and initialization helper function. Signed-off-by: Mukesh Ojha --- drivers/firmware/qcom/qcom_scm.c | 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 0a0c48fca7cf..e9e9d03ea36a 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_init() - Initialize peripheral authentication= service + * context for a given peripheral + * + * PAS context is device-resource managed, so the caller does not need + * to worry about freeing the context memory. + * + * @dev: PAS firmware device + * @pas_id: peripheral authentication service id + * @mem_phys: Subsystem reserve memory start address + * @mem_size: Subsystem reserve memory size + * + * Upon successful, returns the PAS context or ERR_PTR() of the error othe= rwise. + */ +struct qcom_scm_pas_context *devm_qcom_scm_pas_context_init(struct device = *dev, + u32 pas_id, + phys_addr_t mem_phys, + size_t mem_size) +{ + struct qcom_scm_pas_context *ctx; + + ctx =3D devm_kzalloc(dev, sizeof(*ctx), GFP_KERNEL); + if (!ctx) + return ERR_PTR(-ENOMEM); + + ctx->dev =3D dev; + ctx->pas_id =3D pas_id; + ctx->mem_phys =3D mem_phys; + ctx->mem_size =3D mem_size; + + return ctx; +} +EXPORT_SYMBOL_GPL(devm_qcom_scm_pas_context_init); + /** * qcom_scm_pas_init_image() - Initialize peripheral authentication service * state machine for a given peripheral, using the diff --git a/include/linux/firmware/qcom/qcom_scm.h b/include/linux/firmwar= e/qcom/qcom_scm.h index a13f703b16cd..4a57fa676513 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_init(struct device = *dev, + u32 pas_id, + phys_addr_t mem_phys, + size_t mem_size); int qcom_scm_pas_init_image(u32 pas_id, const void *metadata, size_t size, struct qcom_scm_pas_metadata *ctx); void qcom_scm_pas_metadata_release(struct qcom_scm_pas_metadata *ctx); --=20 2.50.1 From nobody Tue Dec 2 01:28:38 2025 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DB60F34A3A2 for ; Fri, 21 Nov 2025 11:01:45 +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=1763722908; cv=none; b=EkKuNZ3rnQuN0kAUSL0VJdpjD/D0GZv3sxm/tkXkwOPj+5q5hzhZkUNH7qVPhNN0uxs77mqJXbzltamNLJ3+gwY/b9vLR2sAUCQQis/MwiRmZRsPg5sfClaue6qMo9SeH136voDcWlumkjXEyaxmJ/pJBIXrPCEnYBDMT6X0jv0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763722908; c=relaxed/simple; bh=aMItD6Cdfz2tfyrkelFjtbde9k9QFcsKS11a8RLC6jc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=mmRDASCbx9a9h0IBFrIZ3bVbEUy2S0Qj9qDVhVER7UnDtchpNjBG94nJEEQkBzP6oIZq9/mQzsaSSXJ1IpbaG9MSLDHlV1N+N5KIWwnY3AskDqGYQHzTALTllYloEC516YjYADSEqrYiS/20QRT0Igtcihxrvwef4V6goj5X1u8= 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=aGhX9Byn; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=J9yrrEx+; 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="aGhX9Byn"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="J9yrrEx+" 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 5AL5TA7e2759593 for ; Fri, 21 Nov 2025 11:01: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= W2h39R0SiBLsaVDxDlo4kG0nrAdErn9QL2vsrFBoSHg=; b=aGhX9BynrLiDgJBU p6HdrUuBUNVq8Ovc6MfFjqg+T0RQ/KiS4UX5eoPPggLQUUY8BN2X8Brz8XuZ6N/L MJewwZkbR7fY7hRJ/nu6jfIOJ+rhAzr0TEr9GQ5wGOzzHzRznhYWqRDSOZkZc/OE XeGIR3jiYkViplmZ02rG8DPgq5icTN/mMxbXevtv/sveviOPSKj5MjIeyYsdYIk5 6g5KDcus0U+6MSqip8QP4TbIPUlhgM8kQthQ0ndtocngsGq/oOg+HUAcsokN1fvZ J11R8NmCi2FeSdQBWdG3NyXNsLNmNtJ2IAxhLR5GejK1WqQ1cKjhthQ4KX2I6nT2 Vtd54w== Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ajhy6159r-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 21 Nov 2025 11:01:44 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-3436e9e3569so4253342a91.2 for ; Fri, 21 Nov 2025 03:01:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763722904; x=1764327704; 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=W2h39R0SiBLsaVDxDlo4kG0nrAdErn9QL2vsrFBoSHg=; b=J9yrrEx+I4nGO2+j/16vdWxcx/6L7YiXiA/DMS0fFCQmH8AdrA4Sh1hkjLhpyw5FwG hq986z09sQiEZIG0BJTtasLrcnG2LwoGuM6wNTDO/KoUJNm1rY/hZ+p7rNmd7w8nkALP Lm/IZIoZPGm9Q0W68fH5EFw8PsCGy7XYt+zjoMU4TihEjzcrQZt+KpiuohO4EJsEVv1h EQaIhbRyjoC6gO84EEd9/t2r+P3MN2p+N8NuwaYHWQ5nm4QAeydTvGKeABoGtqEg9b/D 2Bp4t6cMjoA+PV8wgK36bC7QMIBwNQRhNzKONG7Ufo58ezU7pr5rpb57sZGKwEfwKOna OiRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763722904; x=1764327704; 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=W2h39R0SiBLsaVDxDlo4kG0nrAdErn9QL2vsrFBoSHg=; b=eE/NFfpMWeBXIeOU8gWFvYD3FqAmUmM3MalJDHTMug0ub+vOmq+i5xFyuQbb0K5+pr xMPa3mcu84ZFsTeENs/tcQycp6QNEqq9NPTO+HgmbTBypDcpkfYc8ty048Vg8A/Y5Gvt vuh2F2nrI+ClMc8Y4QgV+qPR8z191WoN/d4vBh5aqwULUoCKptloj/dZ1TDRqNoGtw4i ecgDlJtvkpTBR/RNenrUBe5GGlrYM6ZylURMgMRYmRNEjRgcLM+9JmvHonJqFDK0ruoI AKEW7r1obZNPG0uIaZoxYf7+HEcOWulv2Ti85hgQr7Z6dk2EQuG19MPOOgNk7hQcdd6O qrxA== X-Forwarded-Encrypted: i=1; AJvYcCUwZ8tF6DYi2qjAboBRki6075GhoYvw9DT7DwwojIXKRem+lZt33dJsPhDOCJM9ga5W/VulNPUGxhdvVkg=@vger.kernel.org X-Gm-Message-State: AOJu0Yz1WbOS7aWq6wYw8qdmmN2oewqqS9zzeJIcIKjHqVOKVsDXRwZ4 ubbGYmN13uDfLjyzJAv0+at1NaPM4gOkFcNcniqJG4T0wSZZiJoKwqc8Ml9SDClCgXUl9C2p6/s Tvv6O22YgM0lqTyyCJfC5aTyp+klykQ5BpCpQ5MzNfvwPXHo97OzBNFhonrIv6ljnjQw= X-Gm-Gg: ASbGncsfMsckdw/tbLpr1DYNyMNkPw6PHcpwE0mFUq7gPRHhyml4VvI+CC3Dcll2tiz DQekyArAtamAk6GzQLKncfiNJUhD8mItOJJHDoFBNWrvxYVRhFKnQkKEjpZb2YAq7xMM5uPwa1/ D67xBCY2WWv7Oq5jJ8eYxj98S01j1xEElbStxkXFh0ks9uZV9q2nv6aYcuKMmlQPn7VUHkJHUFi wVKmzluE5fqNGFIu66s7N76vD0PwYAowg7IcYtapveQmnL9Aa8Fna9q4e6sSRiEQEHIG4ph4/qw ohE6DpA1tOO5tNNUVOeFEqFQ35ipQlwP9A/ny6ikTges3ttrpQaoWwFqTx24w9bJKRBDGYgpwWA A7F67DPKMxGbAG8B3D7J6DloQJU4VhomdVkMl X-Received: by 2002:a17:90b:48c4:b0:33b:c9b6:1cd with SMTP id 98e67ed59e1d1-34733f163c7mr2555940a91.19.1763722903851; Fri, 21 Nov 2025 03:01:43 -0800 (PST) X-Google-Smtp-Source: AGHT+IEbb9KF8t2cBkVhvwZ02kTI3tg1SXHxArvV+zbHyCwWFdbkeHj/3azaKyej9bg97ZTH1Q5xZw== X-Received: by 2002:a17:90b:48c4:b0:33b:c9b6:1cd with SMTP id 98e67ed59e1d1-34733f163c7mr2555864a91.19.1763722903026; Fri, 21 Nov 2025 03:01:43 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-34727d5208csm5191165a91.15.2025.11.21.03.01.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Nov 2025 03:01:42 -0800 (PST) From: Mukesh Ojha Date: Fri, 21 Nov 2025 16:31:07 +0530 Subject: [PATCH v8 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: <20251121-kvm_rproc_v8-v8-5-8e8e9fb0eca0@oss.qualcomm.com> References: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@oss.qualcomm.com> In-Reply-To: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@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=1763722879; l=8840; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=aMItD6Cdfz2tfyrkelFjtbde9k9QFcsKS11a8RLC6jc=; b=/s2vfQH5CY1i6iCzOwFOwZA0Fro3yXchRe26j37z8KXEQROLOJeYgAth5Wml1qz+ZI3NXIZ1x senywxbgX09B+UGZiQ/wqdzw2rYvu32UAFqyrB5VnlWI+aigXjk/uNw 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=Lb0xKzfi c=1 sm=1 tr=0 ts=69204698 cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=FPhKjH8jRcijH9SIsZwA:9 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 X-Proofpoint-ORIG-GUID: Vm9cgBhCHbjgoWLZcvo3XVDq3UpzKYxV X-Proofpoint-GUID: Vm9cgBhCHbjgoWLZcvo3XVDq3UpzKYxV X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTIxMDA4NCBTYWx0ZWRfX7tXF6C36nZV5 aMiijyuEG2+uZUaeBE/8J0Wcmgp+2orxIeKa3HUnVs2JLGNV0E5IpyJ0ucyc6nX74ikNK5WWmSV 8kpytx6YRwAqjueICO7HJeplTMJA9fxTLdyXEeBz9mdOwGB427m53ILFfdODfCkgsVZJu3R2dyA q4IVYCsO2eW0tmjydAIovfBPDPEZzL2mCvxg9jgTqR40Mo+wV6mFdZkpxU4wDYz+RrAk23m4wv3 MtPguYqPNZqHijR0OxyaZWyCmSC0f6b2ybrwCSXPOcPu78OqTPU/qBP7FusxNoVh3EVbwjQLJik zn/1yVWoRi4twlOvjqYBktPzqt6XCgxFJnsQzo0N9TQO8Krut/QGbreo5/4EwjSso9YdX8n+lgS c9vdz13zB9mrhk+xd2TtT8hdHLsiqw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-21_03,2025-11-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 impostorscore=0 clxscore=1015 malwarescore=0 lowpriorityscore=0 suspectscore=0 adultscore=0 bulkscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511210084 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 e9e9d03ea36a..5fa974683ee0 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_init); * and optional blob of data used for authenticating the metadata * and the rest of the firmware * @size: size of the metadata - * @ctx: optional metadata context + * @ctx: optional pas context * * Return: 0 on success. * @@ -610,7 +610,7 @@ EXPORT_SYMBOL_GPL(devm_qcom_scm_pas_context_init); * qcom_scm_pas_metadata_release() by the caller. */ int qcom_scm_pas_init_image(u32 pas_id, const void *metadata, size_t size, - struct qcom_scm_pas_metadata *ctx) + struct qcom_scm_pas_context *ctx) { dma_addr_t mdata_phys; void *mdata_buf; @@ -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 158bcd6cc85c..729e7b9bc183 100644 --- a/drivers/remoteproc/qcom_q6v5_pas.c +++ b/drivers/remoteproc/qcom_q6v5_pas.c @@ -117,8 +117,8 @@ struct qcom_pas { struct qcom_rproc_ssr ssr_subdev; struct qcom_sysmon *sysmon; =20 - struct qcom_scm_pas_metadata pas_metadata; - struct qcom_scm_pas_metadata dtb_pas_metadata; + struct qcom_scm_pas_context *pas_ctx; + struct qcom_scm_pas_context *dtb_pas_ctx; }; =20 static void qcom_pas_segment_dump(struct rproc *rproc, @@ -211,9 +211,9 @@ static int qcom_pas_unprepare(struct rproc *rproc) * auth_and_reset() was successful, but in other cases clean it up * here. */ - qcom_scm_pas_metadata_release(&pas->pas_metadata); + qcom_scm_pas_metadata_release(pas->pas_ctx); if (pas->dtb_pas_id) - qcom_scm_pas_metadata_release(&pas->dtb_pas_metadata); + qcom_scm_pas_metadata_release(pas->dtb_pas_ctx); =20 return 0; } @@ -241,7 +241,7 @@ static int qcom_pas_load(struct rproc *rproc, const str= uct firmware *fw) =20 ret =3D qcom_mdt_pas_init(pas->dev, pas->dtb_firmware, pas->dtb_firmware= _name, pas->dtb_pas_id, pas->dtb_mem_phys, - &pas->dtb_pas_metadata); + pas->dtb_pas_ctx); if (ret) goto release_dtb_firmware; =20 @@ -255,7 +255,7 @@ static int qcom_pas_load(struct rproc *rproc, const str= uct firmware *fw) return 0; =20 release_dtb_metadata: - qcom_scm_pas_metadata_release(&pas->dtb_pas_metadata); + qcom_scm_pas_metadata_release(pas->dtb_pas_ctx); =20 release_dtb_firmware: release_firmware(pas->dtb_firmware); @@ -306,7 +306,7 @@ static int qcom_pas_start(struct rproc *rproc) } =20 ret =3D qcom_mdt_pas_init(pas->dev, pas->firmware, rproc->firmware, pas->= pas_id, - pas->mem_phys, &pas->pas_metadata); + pas->mem_phys, pas->pas_ctx); if (ret) goto disable_px_supply; =20 @@ -332,9 +332,9 @@ static int qcom_pas_start(struct rproc *rproc) goto release_pas_metadata; } =20 - qcom_scm_pas_metadata_release(&pas->pas_metadata); + qcom_scm_pas_metadata_release(pas->pas_ctx); if (pas->dtb_pas_id) - qcom_scm_pas_metadata_release(&pas->dtb_pas_metadata); + qcom_scm_pas_metadata_release(pas->dtb_pas_ctx); =20 /* firmware is used to pass reference from qcom_pas_start(), drop it now = */ pas->firmware =3D NULL; @@ -342,9 +342,9 @@ static int qcom_pas_start(struct rproc *rproc) return 0; =20 release_pas_metadata: - qcom_scm_pas_metadata_release(&pas->pas_metadata); + qcom_scm_pas_metadata_release(pas->pas_ctx); if (pas->dtb_pas_id) - qcom_scm_pas_metadata_release(&pas->dtb_pas_metadata); + qcom_scm_pas_metadata_release(pas->dtb_pas_ctx); disable_px_supply: if (pas->px_supply) regulator_disable(pas->px_supply); @@ -779,6 +779,22 @@ static int qcom_pas_probe(struct platform_device *pdev) } =20 qcom_add_ssr_subdev(rproc, &pas->ssr_subdev, desc->ssr_name); + + pas->pas_ctx =3D devm_qcom_scm_pas_context_init(pas->dev, pas->pas_id, + pas->mem_phys, pas->mem_size); + if (IS_ERR(pas->pas_ctx)) { + ret =3D PTR_ERR(pas->pas_ctx); + goto remove_ssr_sysmon; + } + + pas->dtb_pas_ctx =3D devm_qcom_scm_pas_context_init(pas->dev, pas->dtb_pa= s_id, + pas->dtb_mem_phys, + pas->dtb_mem_size); + if (IS_ERR(pas->dtb_pas_ctx)) { + ret =3D PTR_ERR(pas->dtb_pas_ctx); + goto remove_ssr_sysmon; + } + ret =3D rproc_add(rproc); if (ret) goto remove_ssr_sysmon; diff --git a/drivers/soc/qcom/mdt_loader.c b/drivers/soc/qcom/mdt_loader.c index 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 4a57fa676513..b10b1aeb32c6 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_in= it(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 Tue Dec 2 01:28:38 2025 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1BD9A34AB0D for ; Fri, 21 Nov 2025 11:01:50 +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=1763722912; cv=none; b=m41vMgDGaVwM293GkNZWQ3oHy0r07jxW7ediSBjed9I+mR+oyDxlrSgab8SP6uFG0rbjRmqa8v7xJE+zXU1vep5acZLoDRFoDZDDBcvBEKYyFLNIA3PLyu2ZteTRaNMffX1NYpASuX1Vy9/kamYKW6q80aCruCVkPDIL2kjJadg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763722912; c=relaxed/simple; bh=P5U69w3P3RrrInJBdhiNdtUqS2lstsgQFpknD6yetgU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=G/RJatbcbhpRRTE43yj76p91EAdyE5/3//273OlryteVhaenX8ukWJcwcbMQkR4lmwzRXctMIPmFhUCluVB12pcT5tSAI0UWdCsx1epoWDIChRRYmuIPIMYHazjs9VgM4CqsAmPv50yzXzV/c8i9IBtTsqMiKwQkYasS63bm3N0= 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=CUIByRGX; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=BNLx2LlY; 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="CUIByRGX"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="BNLx2LlY" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 5AL6ddgx1988099 for ; Fri, 21 Nov 2025 11:01:49 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= 61/nTwA+YQVb/JWlGA+DXWSLg2PoQYRQMIcGlSkuVqw=; b=CUIByRGXvzHAS/6p AdBowdjNUzTQuoP5UxLdAitx8ro9jDA5CbKL/p2LvgwN5Iuze0zBWZ6OaK2RcZK6 bJvROzhUbUFn9Y3F6P3AfMxkZXlDK621h3ot4K4iyteztzhHSNu+YC0CIjXC7quK 8YjEcxcw/yDUAmLinOL7hCEFyd1T7YXF4xS83/8DO2gpYknPS8LOPYPKxwRsF1gh YFrKZYVyPswi3Wl+nUm3F0OGkQQpPv/5S9400AremwoQ+U8GJHwaXVHst7a4W2PV zMYhe4MLmo5My5vctgD3h2eC8iLTiujgJ2ggran2B3MLTC6vhbMYFJlhsInMzi9q BupfYw== Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4aj1vac5pu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 21 Nov 2025 11:01:48 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-3437b43eec4so3288164a91.3 for ; Fri, 21 Nov 2025 03:01:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763722908; x=1764327708; 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=61/nTwA+YQVb/JWlGA+DXWSLg2PoQYRQMIcGlSkuVqw=; b=BNLx2LlYIAX7gDnnih244FXUl0OZY0fYC2gERvShlhU2sOpdtaH/gFvrtT5ft8nUAC bdwjX6RrPYelW+IAvsHBLORlhuBarA0oiqPZlgxMq7EWJBCoDemcFmojgeQbQ1eXydDA 4/1QPMBnxFdOKWkV2Eow3n4Z6mFaJgOuuIqaY5yr9qhnGJGrDCLtUav2z1f6iY9uXOgx 3e/L60D6rpRmGagX/Lht/IvFvzFML2UEwooErYtBGonH+8pQjpoBSsZ7HllUtidphJef QsTFgKpIbbU0fBl7CzI/nkvsBgZeP8JGWCzsTHBbRmbSxe57Df2/HWre/Z7/7Kx6aVkj 3Huw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763722908; x=1764327708; 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=61/nTwA+YQVb/JWlGA+DXWSLg2PoQYRQMIcGlSkuVqw=; b=aFaf563cJ7/iPbHRERvTnUz8Xnu5zM7IQtdQGKcw4DLadsx/RR+9wwDHm5sJlWPbWu 9jxwJqt4rVpO6L0KUs16gw/3MXyo96Q2kmD1uIFSgkTzzzP5xINlhRS8b4rwVz25Edz0 z+D7mTqzxr7ndPUEfQRWVpplR08Kboc1vQltUc9AbjRRllJ1TXYQI6nysuS+e70e90cP 6I8Ew0YnhDeojtghuMY9EgG3icsBYF/Y5JBbwO4522t59ivFxu1R8Q+pzo7yuQS4/ApU n6/amHZKm72teJGJjqZ4LsoR85rvidXBjK9zzzmjFORK6Jsss+k80c5qZBeNPP5rIdtL UxJg== X-Forwarded-Encrypted: i=1; AJvYcCV/YATOXRS8iKRuwTJY0kLNXrIZnqz9GAxy2h4Cb78/h5m83cMtxqa3KbmKZLaLvw4yWY+WNBv3dNpo5z8=@vger.kernel.org X-Gm-Message-State: AOJu0YzU7LPcmq/sUfP/4S2E7GTwhMuto+q5DOHPFx8YxaC1d8Ilax8m narQOnKb7sOnSrsSFlC2hOQnMB6T6A/62QkchdjIUqOyJGXts1h7CTABTRDAHcy5eXDtUHlcRD+ O0AN3y0zQrIBfpXIQSFRTkGDkIWQjAnOKpOnbK07zwHw/QYf2RsPqHuymVyKZ/wQC0gc= X-Gm-Gg: ASbGncsjXN22a25+t5CD20DbUlY6GF6c5x8wZi9gzZqONXRc79m3dp1R/GLgdIe56tH jV2h/XHGVEBUuxAU5RAUQM1mxuyT8eYtkzN2Zc8QHcBta63Gtnc13OPy0GFYX6+EUEY/oZuk291 7Imm4RFmJwzk4xuK3YC5lV2jtGKBvbfQxHJb7/l5x/iiE9fQX5WEZd24eJ4sm2r47/Flw3Oi9Bj VkhPjd9VvyJBOVg3ouveWwFVwi6/2UvM/3timfinPvk/Q5KqX+u9o5TlOxUCPDvUWtFdn2u1tEo uu+MsPKK9jKmd+8ohq16wMXKCH1glDsrmk7yQe33b2RsMf3RJKhrKvtir44uOwkstw1oUac44Bf QQuSOtxSTCCX+tErnnGfFU/qBJKM/px9+H5Kg X-Received: by 2002:a17:90b:53c3:b0:33b:b020:597a with SMTP id 98e67ed59e1d1-34733d68a15mr2167218a91.0.1763722907521; Fri, 21 Nov 2025 03:01:47 -0800 (PST) X-Google-Smtp-Source: AGHT+IGhwcsgFYAkuaeX0Zh217forQYkU3Jj9NGxholJIUBIfCbw9zp0qKi5euy1gzSyvFRI4byGvw== X-Received: by 2002:a17:90b:53c3:b0:33b:b020:597a with SMTP id 98e67ed59e1d1-34733d68a15mr2167183a91.0.1763722906934; Fri, 21 Nov 2025 03:01:46 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-34727d5208csm5191165a91.15.2025.11.21.03.01.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Nov 2025 03:01:46 -0800 (PST) From: Mukesh Ojha Date: Fri, 21 Nov 2025 16:31:08 +0530 Subject: [PATCH v8 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: <20251121-kvm_rproc_v8-v8-6-8e8e9fb0eca0@oss.qualcomm.com> References: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@oss.qualcomm.com> In-Reply-To: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@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=1763722879; l=5691; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=P5U69w3P3RrrInJBdhiNdtUqS2lstsgQFpknD6yetgU=; b=3UfxfR13JpcREfNzQtqKDrslo/BrquSvaAzCRe+OnPp3IVDUMQDoh0IUydt8hsbjSP9FcsnEe YPuRkYXMTQODyVS6NK49iJZd80rpKpAiSWsUZ16lSAmqvXtRHclT9ig X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTIxMDA4NCBTYWx0ZWRfXwhJreylYkB2i J5S2wExjWSr3OIZGjo3zzpg+hWxhZ+UvArtk7tfhsGBkVFyD6yZcAFDKjLiOMwqCqf3KJ3bEG1h P2E/IaCWCdvxQlsbiG3XTukKds91Tz7VZeRKAvHsdPcbFmTjC0KW926/YP3Wp00vhdmGHdDOs+I wUVyw1oI1KsziCCR5C9HecwRjLY9Yk8d7aEHK1pVuI6fXK1j1lEbFv3trBzWXHj6CNiitEoZ7WN Otd1askH6374eR0DR9eToomiMk/MVRaxeeg9lvyyrEI0jV/V64xgYXC/CtiETLFrMTBVPwuEVwC 4rK977sD0Qs4nC0lnaprDxLIhjMH0qLoPbk9bV4F2FJdOgbKeogxoYHlq0cjSco5aZr4mPYjeIr qe4FvY1O5eJXcyXaCRY69aubgMe6iw== X-Authority-Analysis: v=2.4 cv=Vpwuwu2n c=1 sm=1 tr=0 ts=6920469c cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=lkfLrt0I0aiTJqoH1swA:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-ORIG-GUID: 6BL4EpbThOf95dj5bebiCedeZGKFvrAl X-Proofpoint-GUID: 6BL4EpbThOf95dj5bebiCedeZGKFvrAl X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-21_03,2025-11-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 bulkscore=0 phishscore=0 priorityscore=1501 malwarescore=0 spamscore=0 suspectscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511210084 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 729e7b9bc183..9feee2cb1883 100644 --- a/drivers/remoteproc/qcom_q6v5_pas.c +++ b/drivers/remoteproc/qcom_q6v5_pas.c @@ -239,15 +239,9 @@ static int qcom_pas_load(struct rproc *rproc, const st= ruct firmware *fw) return ret; } =20 - ret =3D qcom_mdt_pas_init(pas->dev, pas->dtb_firmware, pas->dtb_firmware= _name, - pas->dtb_pas_id, pas->dtb_mem_phys, - pas->dtb_pas_ctx); - if (ret) - goto release_dtb_firmware; - - ret =3D qcom_mdt_load_no_init(pas->dev, pas->dtb_firmware, pas->dtb_firm= ware_name, - pas->dtb_mem_region, pas->dtb_mem_phys, - pas->dtb_mem_size, &pas->dtb_mem_reloc); + ret =3D qcom_mdt_pas_load(pas->dtb_pas_ctx, pas->dtb_firmware, + pas->dtb_firmware_name, pas->dtb_mem_region, + &pas->dtb_mem_reloc); if (ret) goto release_dtb_metadata; } @@ -256,8 +250,6 @@ static int qcom_pas_load(struct rproc *rproc, const str= uct firmware *fw) =20 release_dtb_metadata: qcom_scm_pas_metadata_release(pas->dtb_pas_ctx); - -release_dtb_firmware: release_firmware(pas->dtb_firmware); =20 return ret; @@ -305,14 +297,8 @@ static int qcom_pas_start(struct rproc *rproc) } } =20 - ret =3D qcom_mdt_pas_init(pas->dev, pas->firmware, rproc->firmware, pas->= pas_id, - pas->mem_phys, pas->pas_ctx); - if (ret) - goto disable_px_supply; - - ret =3D qcom_mdt_load_no_init(pas->dev, pas->firmware, rproc->firmware, - pas->mem_region, pas->mem_phys, pas->mem_size, - &pas->mem_reloc); + ret =3D qcom_mdt_pas_load(pas->pas_ctx, pas->firmware, rproc->firmware, + pas->mem_region, &pas->mem_reloc); if (ret) goto release_pas_metadata; =20 diff --git a/drivers/soc/qcom/mdt_loader.c b/drivers/soc/qcom/mdt_loader.c index 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 Tue Dec 2 01:28:38 2025 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0F06534B19A for ; Fri, 21 Nov 2025 11:01:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763722915; cv=none; b=JxIhwQwB8ROynvtOPj0itm52dwiXaflN0ALvScwTn+vNGZvgjcGeooT4PG/UmSXW0991/Mh1qvvvdDKz4OC5iXxZh2Pr9qL7P0Q8yeXaiJ92u6Zo+24gehh5wAA5Wsm+p5ElH01cgzIGtE76rbDg116xgNrkDeSVUwcSvVxJ3Mk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763722915; c=relaxed/simple; bh=FAxVohbaSqYOeL1tiCXnhoUqP1k3h7eieaHb5VvFGf8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Yzu3Fwoi4FYs39ER0q4tLOabfX2+t+6V608bs48hFezGAJDpR7IJ6Hu4q7ah0lX3FNQN6QZyaLNAHrEFzbtUghK8aI5n5v1oMShxK17DoY7ltgPDhSMATgoj6VWrnLsSguUPOuJ2Aty9qfjblyY1vBtZ/WftUozXW38dMafBdzo= 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=ncTj/dlm; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=B04U2B+m; 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="ncTj/dlm"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="B04U2B+m" 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 5AL52u2S3007425 for ; Fri, 21 Nov 2025 11:01:53 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=ncTj/dlmObrK0p+8 cvvqwHE0/gzKBHz8vYC1AHvPTEy0wbN//utHbS51fU9EX+ZUsA1P773iCTQnexDJ yHWS8vacT/ORfn8LRWvlHGWioSRcD4wo2vIj23SNymH7Nbq693ehimRffoB8CPAM Ek79jnHYZdZFdP1Db480IvmaQI5wITF/6gR5v8xRDYBWmulIuOqZ/HwvVr+qNQ+L J2a7zI3OMdK1wXrMUpdk5eOc61kk1/cqQ0MNBUbGz2c+u1/quAocB5U+SEdzPCf9 5wwZbNPS43ucmUqul4BO0In6R+FAlEp4Qu0YTGofWsyw2f8hmBORy/J7bwIdgQIG 6b4eYA== Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ajhkf15rd-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 21 Nov 2025 11:01:52 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-343daf0f38aso2169686a91.3 for ; Fri, 21 Nov 2025 03:01:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763722912; x=1764327712; 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=B04U2B+mWyT9hKzcjohGdMFO0tA5T8MByfTYj5gIMfCg8pJ//iDij+CJhfp7fp5WDv eJXHIBKwoDuGDj2U0D5FeIBvNeariF7gKdmq6YbIh0iUlKsXdMMZKO5wfwOPhSfKWy8C y4aVgZZsfFPeLVvicYCKwktQBHMd5WucjhB55JKn26mHkwMaJ4aNYzqtetPNrQjaUjRM VhqiO6ckpF/ZVb2RzwABlf9CoA8tLXymdHHH9arcnkJXiS8vyp0zx4BZ1hPBc8T3zNpr HmI8E72UZ/GHnwyadEdoYpOY+J/8Gj7QIHY6/ieXvKqGVaUSuMyqfeLzMtw6AqnXKU5w /g4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763722912; x=1764327712; 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=eBK6W5a7pKK15x20CnAC/6LQg4Km5ljlkCPR/4zoofs4ty1Pzf6Ym+b+8QVfzhP2BH /2dFbBDP7HVUDAdNkQrSeKyQGXRemdWjudDP2T3k2MODgWEnXUVJjg9uO5ucjQFt8jpr +JsJQE9dogOyzI1Y0KzgmyutqHyi80kiIfveALZNetrVXbd+bGMZOl18928f66nB+Ti2 xqFHzFQoBGDQyE8r2vum3kpmUxVtM7AlxM11VjRXE4/nFL+hd8nb8ik6XcgVqiPiOPY7 /9Fb8m0uU1dt5Voi1qKp1Rez/URxyo/3O00aasioD9KIh4aGyq1wHAVkYkB775OTlqWB UElQ== X-Forwarded-Encrypted: i=1; AJvYcCW6Vhn6ShC8vXG6Yd5+RHlsfWEnuEKgUuZYyd4QD/MGWyMXD5yPWEe464z7XBj/vYOyyGJQ1AwOSg2re4k=@vger.kernel.org X-Gm-Message-State: AOJu0YwpnqBmbSsD4NCk5mSfhc+xViENWzbEF3OmLStdftFYd7N1+9f+ cnBJoXEg+NGQ3aUu/DGRhPq7r0MOcz3c4Uh2lrfm+obsLsGnCMlaf++fv8s0gNswnyZknl8qKyM gTZgrjIFESrZ6WILLACTUBFT2BC0yv5MtKL1pwFDukug+EbpFiZSNMWp72YqAMxiL+XQ= X-Gm-Gg: ASbGncvQyX7PZAxIz1uPtPpMkw37+sbPrLHHZQsDXoiaFofKUBWr4KorsplEoAvbgUG 0p0s5z0rJ6K9vnc9DMBd2bc6Ger9TA67rVIBg1tWdCMBkWxd+Q0ojkZHWHiPK3+SzbVNFMNnChg St2+eBbxoE2qZWNqMGHPIOabASmnMQje48T+U4+I5ywH3RNJaV/ZDt1xKqk0lPNj5CbAdukiZfW SjnYt56O0bswCnoMs/ynrX2hT/4S1DT16GDJ7icN1C2GPDJ9so8NhTeGnypv+j4pE/p0zKjKMLv Xug1ZUt7e3Jt7CCCBTQSQTnmEqvJM6cECn6mKy6cs/qWFI0sbvHNTakFqFSJdsUUXXpfoN/S+5K PCYeQEwFJ1/iNJeAJ0JtWhrgEX9yNoDF1Zb8D X-Received: by 2002:a17:90b:5704:b0:340:dd2c:a3da with SMTP id 98e67ed59e1d1-34733e436damr1982576a91.8.1763722911781; Fri, 21 Nov 2025 03:01:51 -0800 (PST) X-Google-Smtp-Source: AGHT+IEk1A2HPA/oFoQ9xE267MbaxkEtZX82lk4pzDIT9YA07/l+tPpYZrbqWfVIeHkg6PSW6SUVxg== X-Received: by 2002:a17:90b:5704:b0:340:dd2c:a3da with SMTP id 98e67ed59e1d1-34733e436damr1982500a91.8.1763722910936; Fri, 21 Nov 2025 03:01:50 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-34727d5208csm5191165a91.15.2025.11.21.03.01.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Nov 2025 03:01:50 -0800 (PST) From: Mukesh Ojha Date: Fri, 21 Nov 2025 16:31:09 +0530 Subject: [PATCH v8 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: <20251121-kvm_rproc_v8-v8-7-8e8e9fb0eca0@oss.qualcomm.com> References: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@oss.qualcomm.com> In-Reply-To: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@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=1763722879; l=3524; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=FAxVohbaSqYOeL1tiCXnhoUqP1k3h7eieaHb5VvFGf8=; b=D8IXEP3G83yrpTXwxQTSIbCzTYbZPzJocEZHS8XSfXdbAi6lTiJEL1D40T+5xj21S+iCzHYJ2 3G2+hkSSmOPD90I+fTAsFLbBA9q6GxeNk2s8MLNxl+O3A25WGeipGmH X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-GUID: ROOTAmdXQshSLEx0pZOuB6CV-ukdD0MR X-Authority-Analysis: v=2.4 cv=ApPjHe9P c=1 sm=1 tr=0 ts=692046a0 cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=Z4Sw7GGoVt5sTUwIiKwA:9 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 X-Proofpoint-ORIG-GUID: ROOTAmdXQshSLEx0pZOuB6CV-ukdD0MR X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTIxMDA4NCBTYWx0ZWRfX10/nIEc/yKBg FYS/LKZAxwRVZ5oIiytUOtFfl3woQODc5X8XHWFcuvd57pAiDW265C1jkvFwmw5/wLokwOcZRTH NSE1t7AnBzLP+m/yFHtTitv4oBCNN0DIcn1ms3ptnEJbUBlugU5DPQYsawIgY3aKBSO/FS/B4Q0 +smWNLxf3yDW6u6S0cwfRfygwqgh5axWjbUx7yLtmynN7WY0h8WcbVMGdtvFQVMgv/anLC/Jks3 qcUH6pTrWEC2xiZB4dQbmrmpQRHEmLAvnHoM2v6KJp+zanAjR8To82vpcIf0RYaK7LSVJ8KktHR Z0qFtLayVtH1iuKjHoMOPE/kWsnyrg0jNnCyM2NQct1TogXJNLGfCRaIKZuF19kCCap9O+Z3ZL7 yTujLvS0Z6YFERw0ph78WW5COTyjdQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-21_03,2025-11-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 adultscore=0 priorityscore=1501 impostorscore=0 malwarescore=0 lowpriorityscore=0 suspectscore=0 bulkscore=0 phishscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511210084 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 Tue Dec 2 01:28:38 2025 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 493DB34B417 for ; Fri, 21 Nov 2025 11:01: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=1763722919; cv=none; b=BpTqSosv0T0jYqp88nRv/zFW796MBzen8pli11RCzLIuNIEaQ3Tr92O1X+3z0psJYT+oE/mV2ByLckGM1xAQTXNzI6KUDbxNjeGeb+cx78eslI+VT8PWIla1aNGvRP/77ToU8qYHb89TSY2lA6RBR6ksAy9BC6zKVaWOYfv3mfI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763722919; c=relaxed/simple; bh=UqFfKH9OQZ2/b4o5VCHbeXo4Mslpo8i6J1vh9DY1woc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ZK+snN/DA/Vib0leYrQlvz09dU+2gqtJ2L8+CbYyadAFZGaOFPAtOsil2d1EFF7JnNv1CmCnxB4VdMqQRByt+Zzh2GhIpmWfpmIpiFsRQ7PEQRsx63UxznO85IylSdQpBKp9lpaSpc0nM/NoHe+vC+i3lDVzJduxJAN2Sp0BA2A= 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=MmM115u6; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=RAW0TW08; 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="MmM115u6"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="RAW0TW08" 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 5AL5SUp32757556 for ; Fri, 21 Nov 2025 11:01:56 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= TxCwmKSgjjNw13n9fGKA0+T8D45i0tXimnQWF4HRz2g=; b=MmM115u6Ax2YZ09J ImgNd+vp2INJTy5BY/6aFzyQxcU7j9zApMVFBwqLTE3Tx4/D2Nfsp+xeRO8+iDS2 VEWVf7UntSY2XjI/gGiV7pWZI6zt+K5udT+BkBwvQbYwLPqKgj7gbvQi7Iu/Vfci NQIpOCqNqZ035Cd5oEL6jY/o0YAdj4uajBAr6CniLmrJWtIXS0WohNfA79HV/FtF 0M3ajDz/CsijM9xXYvX/AslhJ/XperAn9ZpIUVzuzUhOk2Vi4Pbz72JHcDvi64yE sDuWtH3JiZmlLU7qBCuT4JDyHJzS+KP5boX9P56wX1DQIU8HjsjpEDNKKrmzU86W zQU7kQ== Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ajhy615av-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 21 Nov 2025 11:01:56 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-3438b1220bcso2307342a91.2 for ; Fri, 21 Nov 2025 03:01:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763722916; x=1764327716; 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=TxCwmKSgjjNw13n9fGKA0+T8D45i0tXimnQWF4HRz2g=; b=RAW0TW080HXmRVEwKBWmCav88Q9kACR4QXqiotBLuqR8z3IOCn3GK65HufxMR6ReLd Kn4VYONBWKtj29UIJQQvzDSGhhKcBvERbSazaalN0p/gOSekFJBQqsIHnOuq32jQ4OTT RTTow+JFtYqM7xbZl6IDXnRxBSlbrIG5MVwr+Gu7Luy9DFdkyLWwHxJeHpN7AKG360gK 5kxu6+q6/OUvSLDWtDVLHx7o/nN8Zc1LywIy3U0kOzKOt76vqKBg5E57CqbCIk8rVwd4 RrUl+bNi5b7zdZaX+cQ0t1dV9dOhdCFwW8uUZhnYxes71BkIuSrra+wnH7KrjelBoG/I QWhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763722916; x=1764327716; 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=TxCwmKSgjjNw13n9fGKA0+T8D45i0tXimnQWF4HRz2g=; b=VAT2Y5fhlrK9jU0PV+RVKh+NTZPD4yBvFsYzpj6b713AB2lF3Vn4GLgdPuGzgrR138 l8o3QwXCPR21dMm1dRu7btDd5F0wYRR93fuaMMgMkb1OyFvAs0cFeHp/eQbSMskwurCi 9sr11axNqq5X7+gb53DcnzEzFPvA7dyYZIzTgLOoPvcuzWS+ANGyH2WqMM6yzNu1aqR6 rsZewCktrF2k6GIm9+2UBhQt6gdNvndwl31MyI41DoM7waEis05gDKOh5RmXeXElewgQ fR/FJCQea+fv5iHN6eIuYamaQ6JEPmV3DCVrWkTv6kVlzYWJ7VUK/0HdwDKckkcttHmE VkWg== X-Forwarded-Encrypted: i=1; AJvYcCWmlgV43mvYcPhWi9zheq2h5NZ2a/k3XXWLhYYOSf02aNKpqK6TNlCseMEKZDtsMOaRGHvNerUhWeRVVTw=@vger.kernel.org X-Gm-Message-State: AOJu0Ywe0w4m0WFzaW7/JHLAp/OMzF2T5Q6omKfGYYUi4cPzx6ZwN18h kzSZoNxXGFE9npl0hC4HIR+fgcmBQMXX2B9GpY4MndSfmk1iRP3olGkLDqHotKo+glFlX+19c2g juIIb1+XCBS3Iq2FEAF9HawQxhunoMNcL9aQzM1GFN/7700C0KdcWoObBPTmexRljQmc= X-Gm-Gg: ASbGncvAxnNdCjnJg0wl2ALcUcqGsOG+Eh/JGZQUmuB+vlC2e4u0EwXD4+jQq0lkvk9 qOuciSzA6Dj+T3lyC6bSi665uZ01uNeV842jrfAZg77Z4M5h1eqASnZY0KPOf4EpkM+helc6yoT VHNgvZw6t0+1e74BozN/52LBvKEt4x6cLRl7iJIc5G3V6Qcg+sMdoNFaMSP7HIpuPvctLy0HC+2 zwW0BnTH9pN4mdKvfEODC9LS7KkUkr2PilHOPlyoOQsQzhngTqOVDkyEgzveCkeXQGNkSvie3Vc kf+cL5RfchM+d0pDMRgAmmbSJOn5i0dLoghTP57EUd7PNMkg7hmRSebLShc/lUR+jG8a1uMoYnH ItUCH1HqimPdXqwduGa3W7Q3upREucW+Ven/V X-Received: by 2002:a17:90b:1d8e:b0:340:bc27:97bd with SMTP id 98e67ed59e1d1-34733e6ca89mr2344639a91.9.1763722915441; Fri, 21 Nov 2025 03:01:55 -0800 (PST) X-Google-Smtp-Source: AGHT+IHAU6fbd4UxdagtjFdeI2dmaV9rageThqIRRP4Uav4AtmbuVsJdn1nDo65ZeIRX/2x0AU6DnA== X-Received: by 2002:a17:90b:1d8e:b0:340:bc27:97bd with SMTP id 98e67ed59e1d1-34733e6ca89mr2344579a91.9.1763722914733; Fri, 21 Nov 2025 03:01:54 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-34727d5208csm5191165a91.15.2025.11.21.03.01.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Nov 2025 03:01:54 -0800 (PST) From: Mukesh Ojha Date: Fri, 21 Nov 2025 16:31:10 +0530 Subject: [PATCH v8 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: <20251121-kvm_rproc_v8-v8-8-8e8e9fb0eca0@oss.qualcomm.com> References: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@oss.qualcomm.com> In-Reply-To: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@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=1763722879; l=4464; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=UqFfKH9OQZ2/b4o5VCHbeXo4Mslpo8i6J1vh9DY1woc=; b=/o8Qqz1ez1O2tJ0tSsDVKo5DEBeDJX5QdQsu0WqNFMhFto83aKEJFMHfxcLiefKgjNnPcw0Bf si6feT076I0DmwytTosjLJW8EKRZIMvpdMBz2ofYVUZRzLAbVONy2OZ 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=Lb0xKzfi c=1 sm=1 tr=0 ts=692046a4 cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=XGel9bHSJmg9pP0w-tEA:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-ORIG-GUID: O2mAGoBVWzCGRKNKQNMmgNxuvKUC4kLf X-Proofpoint-GUID: O2mAGoBVWzCGRKNKQNMmgNxuvKUC4kLf X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTIxMDA4NCBTYWx0ZWRfX3jl5g5p4XreS BE2Mmobfx30qB1id6Xcj5xgWBH9Qw3KHL/ntvFMfyo9GVinNcAWjllvbBnHyx9oOsQgKDQ2s0gI VYo8Q8o4rhxBcphgPRJawRFnwhL68MsHXes9JwkluHHtETh5q1lO6003D8Jv+uStiKr5AQFjj3g t8bYTZSS0uNEDXiCs6P8h77qg9fBidA5nSPZF9J8YO+CP0SHdj06Acoh/syCLYXH9YhHzr5GQHD 9SVAb/MUJcrtlBpilNLepI6zb5AwDBdyl7TUF/ps14ZEUPPlthKeBhqz9yF3ADn5F51WbKfkkoW YxfSSwsZnvBhg9Q56g/ZD1QWSrmzNkpPtyN4txdUSd2U1El1MT6+zh6PEOO8bA0MdrjQbZmbxCC fKD5Ph5RR3nhM0EtViQ7WvidkgzswA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-21_03,2025-11-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 impostorscore=0 clxscore=1015 malwarescore=0 lowpriorityscore=0 suspectscore=0 adultscore=0 bulkscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511210084 For memory passed to TrustZone (TZ), it must either be part of a pool registered with TZ or explicitly registered via SHMbridge SMC calls. When Gunyah hypervisor is present, PAS SMC calls from Linux running at EL1 are trapped by Gunyah running @ EL2, which handles SHMbridge creation for both metadata and remoteproc carveout memory before invoking the calls to TZ. On SoCs running with a non-Gunyah-based hypervisor, Linux must take responsibility for creating the SHM bridge before invoking PAS SMC calls. For the auth_and_reset() call, the remoteproc carveout memory must first be registered with TZ via a SHMbridge SMC call and once authentication and reset are complete, the SHMbridge memory can be deregistered. Introduce qcom_scm_pas_prepare_and_auth_reset(), which sets up the SHM bridge over the remoteproc carveout memory when Linux operates at EL2. This behavior is indicated by a new field added to the PAS context data structure. The function then invokes the auth_and_reset SMC call. Signed-off-by: Mukesh Ojha --- drivers/firmware/qcom/qcom_scm.c | 48 ++++++++++++++++++++++++++++++= ++++ include/linux/firmware/qcom/qcom_scm.h | 2 ++ 2 files changed, 50 insertions(+) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_= scm.c index 5fa974683ee0..fdb736d839db 100644 --- a/drivers/firmware/qcom/qcom_scm.c +++ b/drivers/firmware/qcom/qcom_scm.c @@ -765,6 +765,54 @@ int qcom_scm_pas_auth_and_reset(u32 pas_id) } EXPORT_SYMBOL_GPL(qcom_scm_pas_auth_and_reset); =20 +/** + * qcom_scm_pas_prepare_and_auth_reset() - Prepare, authenticate, and rese= t the + * remote processor + * + * @ctx: Context saved during call to qcom_scm_pas_context_init() + * + * This function performs the necessary steps to prepare a PAS subsystem, + * authenticate it using the provided metadata, and initiate a reset seque= nce. + * + * It should be used when Linux is in control setting up the IOMMU hardware + * for remote subsystem during secure firmware loading processes. The prep= aration + * step sets up a shmbridge over the firmware memory before TrustZone acce= sses the + * firmware memory region for authentication. The authentication step veri= fies + * the integrity and authenticity of the firmware or configuration using s= ecure + * metadata. Finally, the reset step ensures the subsystem starts in a cle= an and + * sane state. + * + * Return: 0 on success, negative errno on failure. + */ +int qcom_scm_pas_prepare_and_auth_reset(struct qcom_scm_pas_context *ctx) +{ + u64 handle; + int ret; + + if (!ctx->has_iommu) + return qcom_scm_pas_auth_and_reset(ctx->pas_id); + + /* + * When Linux running @ EL1, Gunyah hypervisor running @ EL2 traps the + * auth_and_reset call and create an shmbridge on the remote subsystem + * memory region and then invokes a call to TrustZone to authenticate. + * When Linux runs @ EL2 Linux must create the shmbridge itself and then + * subsequently call TrustZone for authenticate and reset. + */ + ret =3D qcom_tzmem_shm_bridge_create(ctx->mem_phys, ctx->mem_size, &handl= e); + if (ret) { + dev_err(__scm->dev, "Failed to create shmbridge for PAS ID (%u): %d\n", + ctx->pas_id, ret); + return ret; + } + + ret =3D qcom_scm_pas_auth_and_reset(ctx->pas_id); + qcom_tzmem_shm_bridge_delete(handle); + + return ret; +} +EXPORT_SYMBOL_GPL(qcom_scm_pas_prepare_and_auth_reset); + /** * qcom_scm_pas_shutdown() - Shut down the remote processor * @pas_id: peripheral authentication service id diff --git a/include/linux/firmware/qcom/qcom_scm.h b/include/linux/firmwar= e/qcom/qcom_scm.h index b10b1aeb32c6..ccb8b2e42237 100644 --- a/include/linux/firmware/qcom/qcom_scm.h +++ b/include/linux/firmware/qcom/qcom_scm.h @@ -74,6 +74,7 @@ struct qcom_scm_pas_context { void *ptr; dma_addr_t phys; ssize_t size; + bool has_iommu; }; =20 struct qcom_scm_pas_context *devm_qcom_scm_pas_context_init(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 Tue Dec 2 01:28:38 2025 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 87D7234573C for ; Fri, 21 Nov 2025 11:02: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=1763722923; cv=none; b=qRBOFbYq2KlauCShuGOYJoVzN6M+2jpDjAfzwx40s4RXLCY4rdG0VVQ9uODlvvEPcZhsPS+9unEvHX2O70H1rhTi67GmvtO1suC4Y6rVNLj3X7XV6ZW+zqoyib5hztJkiwSdnEG7mwdeEpQftPvwKs4vd0l3OiMrhSHiM7k4sgA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763722923; c=relaxed/simple; bh=WhBuwExsVsI+8Yj8gpXVinRIooqGhxyPW83/caypxOY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=dHdccm5dJ5M/r89FFllJLHANLsfmHngPmco+V+tyWlkWqPOoXxri7PXl75ih5cAklMr+CVr/qhJ0G71gfwUY05ib0bR+N+YK1dHhz854+cg4QjGltplaZQF7CTbB8pvZkEXYUFAXAoyNoBQ1wJxu2EqYp8l1HskFiR7FjHslKkc= 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=QQOdspTO; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=jKc2MeuR; 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="QQOdspTO"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="jKc2MeuR" 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 5AL8AUUs1390896 for ; Fri, 21 Nov 2025 11:02:01 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= dlX9tCMyfj6v0h2ombC9MqTa6CoSiT/Y2x1G6IPrzT8=; b=QQOdspTOhdbmS+EO S9SbKNUEy2nHZhFPrmcMfMf0mqo8Tb6R8qN6tThiJrI1/rmbsLHt07UK42eDNcYw FSdTAjd66R08SnI6M77xvDLMJ0v1R2GZxYN687EtOkRSUhQH0pR9/OpAtQO1eAuu bbRLde8WEUvOgPLTzdvWX4OoPdFuNBzOBmPxytr6DYyeTjEl+qMzyOnUMnuRcANH eXpgjK7Bzz1YHqRh6WYUbZWfDUptRDHhYlT+0PQS+xYfkgFb9Ap4Duvd534Jq0SD aSwhwYS0d05l/4FRh6XPFFnkBYLELScD5yjMyjEvy/YKKBPk2vQXkTPsN9U2hxcQ 1TWJEg== Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ajb53274j-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 21 Nov 2025 11:02:00 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-3439fe6229aso2176520a91.1 for ; Fri, 21 Nov 2025 03:02:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763722920; x=1764327720; 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=dlX9tCMyfj6v0h2ombC9MqTa6CoSiT/Y2x1G6IPrzT8=; b=jKc2MeuR6wFN3PXKJ61IAYUMDMdz3lH2yuTYNCNf2/Uo5BbL6DN6aef/hzZzeMTuJZ soyAfFRQZQGoLMn8vScbS8TYnYYHAYh2svZJD/HZCbs9gDjasrz+GVwzZBH40LH+lRb4 WLjvlYQofTyb5b3Eoy1K4htdGlid5IPz01ofRD1CR/wcQjwJKwSVR0x+xJX46VNub5GW AdaMdtKB5fVO2RytSHsT/HW+o46Pk6cxWxELBHeSU91BrTn8oqdWG967+x+8yr9g4e3J 6u0bpHQLuWsqa5XrjkmXMBrK+pwWHdrDlJyeXIWcnRtVwcLgLfRPyxhGIWZ+sTQYcrjq XxLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763722920; x=1764327720; 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=dlX9tCMyfj6v0h2ombC9MqTa6CoSiT/Y2x1G6IPrzT8=; b=amYF+cEagarm7E63bIeb/5hImLR6OevnHLrrEuvo0wkFq8hGj5hw6rDYf1wN5wfVxn +/HNlupWlglW402tsAWw4GicYJOa9CG9KmijY9j85kIxQgmvJD8hYenJFdSWMUvL9VYR rVtpmFIZATggVvBoBLVP1XtsXnbKbvTCJR1sseZgrxzGqYH4y5he2qgCQVJwvjnMMM5P K9Zyh29eUF+bP5l+3l0RDmor8QdJk1+4X6uLSUr+Clky+pdS8ewXCY5MdSiAdSTTMNDr U3JTNzzePa8asMSBre/5VN6U/S7REpeXEQYmtKYiAUg7kGRfDAxrQM66Krtb/PQT05QI 16wA== X-Forwarded-Encrypted: i=1; AJvYcCXejkZtj6UBUi9NrXi8boC8Wh3E8EeruHP5xJHM05WmNrCLHkIGUKuc3ZqqPuqzFbEjrkitnj3LqaK7vgU=@vger.kernel.org X-Gm-Message-State: AOJu0Yz4KVGRAMklAvJbxrxweUPQWu6ujBZLaxSw5D32jPf3d8ixjDLl IUW7cgRxWl+nFD7eJa5OiObboWIbp0BHawRDyrTrbm/O50RTCi6bUygjMZ4gk0BL7nR38MaXe09 6Umjj/dNxWwG/yHtSyo+6Ugy7108EJFy76JOLMF2DaLo5CUTa73iGSk2oULsjqBU9Rjs= X-Gm-Gg: ASbGncsldUPz9e2z48IGDy2T1+JCPzj32l3w5/Gxvy7XZJkj3CNACi3fhQEpblMfXIO tm+RZXBncSDzzA9cbeUr9X3HSsyzhDtHGBxPvfRBdbN4mEeU6Up9b251YqmIITJ0KdwDS4r4HvV kazNU8ZzURi+Gv+Nu1c+NFsN+v3/kEHMs27a2re1RJhyjlBZrlWL1EK/z/X4dYpIIGGJi0udkKe Xx7ET8GXAJPfZFzafnld0yHmAvYzj/kQI0t2MKkYwf1fX7dzR+qir1QrVLJdBJ+W9kGA9khChoc NBhOv3tq1jdv/XfQKhCJxyYvpt9F8OxiJb3LL8pZ8ulNlXyMe384RM+QKOYSFNwuR6ykSMU9FPC CFWUyJAe+K6R39JBr1sWjABFWpVRgZpF7Or8U X-Received: by 2002:a17:90b:2e03:b0:343:a298:90ac with SMTP id 98e67ed59e1d1-3472976090amr7563947a91.0.1763722920003; Fri, 21 Nov 2025 03:02:00 -0800 (PST) X-Google-Smtp-Source: AGHT+IEpO8joTe+3KL4VByz4ruBxOPPVuDamEIBR30hGSQsIWGTTCbHT4fpjWnEHMOGPd/OLL17s1Q== X-Received: by 2002:a17:90b:2e03:b0:343:a298:90ac with SMTP id 98e67ed59e1d1-3472976090amr7563891a91.0.1763722919354; Fri, 21 Nov 2025 03:01:59 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-34727d5208csm5191165a91.15.2025.11.21.03.01.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Nov 2025 03:01:58 -0800 (PST) From: Mukesh Ojha Date: Fri, 21 Nov 2025 16:31:11 +0530 Subject: [PATCH v8 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: <20251121-kvm_rproc_v8-v8-9-8e8e9fb0eca0@oss.qualcomm.com> References: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@oss.qualcomm.com> In-Reply-To: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@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=1763722879; l=3093; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=WhBuwExsVsI+8Yj8gpXVinRIooqGhxyPW83/caypxOY=; b=9UfiGNedwMif1vT58CvrqaHmQFd5mRZVlIbHVk8ys6doYfaQUs/eNG6cD0b5NadIJg/feKQ1H 1elQ8f/50oEBECJEERZsFqztdULi1xWqkId35CBs28yZqBOV+TmBdVs X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-GUID: NqcDFzKKeRxDuAbZuJkklmSejDhI8Pfi X-Proofpoint-ORIG-GUID: NqcDFzKKeRxDuAbZuJkklmSejDhI8Pfi X-Authority-Analysis: v=2.4 cv=Wugm8Nfv c=1 sm=1 tr=0 ts=692046a8 cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=DgMsYHmrIKO9_Yj2pW0A:9 a=QEXdDO2ut3YA:10 a=rl5im9kqc5Lf4LNbBjHf:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTIxMDA4NCBTYWx0ZWRfX7jwTp7QJdSGt 5M8Nt4CXRsUaR4ILArHKrPKBFCo7sP24eLj8qTXLM2cRIu9gETigQWaJNAIrS5qEUYTLcUUEGMn Aj4n6XFDxE/oeMflSlia3edoltC5Z47/brn1h/w+BXMzSIYwn4jZ9jKpiRZwQVMa9KEYDA60XzR 8EDlj7CThWhD5vbCx91FlC4KK+k6p8MdKAPzsIvERvYojpOLrlNERwXidkQsWtpm6jDbea9AJQs xaW1iKF+YyjDCHTuqbAGRZd7IEdfOaCOk9CGR9AY2DvVYZQrqBjoPzTcxKSMfb5/kR+AsUPfcHt j6dxNVSf69/K91P2UPk4Rm9uNDUks5LIWK9QIK91AtrMQtojzC2nAovd8979tPR4a+TZaeFVHvh HC74ldc1DDQGKCN456e8EuhaCAQ50g== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-21_03,2025-11-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 clxscore=1015 phishscore=0 bulkscore=0 adultscore=0 suspectscore=0 impostorscore=0 priorityscore=1501 malwarescore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511210084 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 fdb736d839db..90649d9ade97 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= _init(struct device *dev, } EXPORT_SYMBOL_GPL(devm_qcom_scm_pas_context_init); =20 +static int __qcom_scm_pas_init_image(u32 pas_id, dma_addr_t mdata_phys, + 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_init); int qcom_scm_pas_init_image(u32 pas_id, const void *metadata, size_t size, struct qcom_scm_pas_context *ctx) { + struct qcom_scm_res res; dma_addr_t mdata_phys; void *mdata_buf; int ret; - struct qcom_scm_desc desc =3D { - .svc =3D QCOM_SCM_SVC_PIL, - .cmd =3D QCOM_SCM_PIL_PAS_INIT_IMAGE, - .arginfo =3D QCOM_SCM_ARGS(2, QCOM_SCM_VAL, QCOM_SCM_RW), - .args[0] =3D pas_id, - .owner =3D ARM_SMCCC_OWNER_SIP, - }; - struct qcom_scm_res res; =20 /* * During the scm call memory protection will be enabled for the meta @@ -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 Tue Dec 2 01:28:38 2025 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 92B2734B417 for ; Fri, 21 Nov 2025 11:02:05 +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=1763722927; cv=none; b=mEPJNSGgK/i0PzzzMddWImY63PNKS5QGdmICCY+jwApxxBuC6eNR0DBE4Yu6bVsE0g/O5tI3r7nJfSHpFzHhu7ZMsxXMXWAj4WXvwXDKSuqjxEwLS5xn3kqmgJNLt0eachsJ349sNsEyS2VHHG92T+6lOhoXTldJp78tSESfzC4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763722927; c=relaxed/simple; bh=IjiqaQegQtY3yhs7JqPzJutmLc2QZs8lmeUIfR6pRdU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=aW94QR+or7p/Duh4Wwg5YEdc+6UB+gktM1rJ7V9RI3182Kbmy5/M3PSDqXvpOLiPmhzYqeaAgIN0l/60g4T1kLZbTa7Nz9vlPUpHER73kjIcRtVcmVNDxVZJ1A6bTPOWuZlwCboF/AiN/FODc7SX/H88Aby1Q1HljWYKhVXWGeg= 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=m6rDVG7e; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ZQM7AlfQ; 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="m6rDVG7e"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ZQM7AlfQ" 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 5AL9VuMX3048070 for ; Fri, 21 Nov 2025 11:02:05 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= d7DmFF0maGICStk9axoEv3qDKWocIQl5IQ1fKBTN0qQ=; b=m6rDVG7elwEoptIQ mMW+GVAg23O7pco0/v1ao0xkEeplX6AKiP11BOiGVyTYh37+q6/OqHspbxiOgg4V IZoSJ08g4A32jYapU9cy+4WOPMvUo6ol6Nemlidz6GMZEpaTvH6EJdFsJIqMuznz W/SNQDORiPegX/fuiWtJhm2umSFMymFvtf9MlJzhroBWp7AsZt5TMxcrOkPA3apC 6bp+KdC67+iC1U+Tbrr5qsrgfounuT4b72SQ2mTV15C6tpcukSdW6AQltXlrqLwl H2VIsRkm/kW98FApK/oHX53f/5FEcfF5OmJ+2RQJUaisnE9YjXBf/PHk9wPHRn6u gAGe6w== 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 4ajnhjr957-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 21 Nov 2025 11:02:04 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2956cdcdc17so23730085ad.3 for ; Fri, 21 Nov 2025 03:02:04 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763722924; x=1764327724; 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=d7DmFF0maGICStk9axoEv3qDKWocIQl5IQ1fKBTN0qQ=; b=ZQM7AlfQC+xVSbIxSG18evus8h/+PgZ8/IIiQH0fS/mBLwdP4XrYL4UpggnBIAmiar 3OWQYB0g68mwMlRpUWMIO/mw6Mw+4UgltOAbckyuR32gxsCRscGAnSj0bNspXBvbMF1Q bSKKf5eIXTzj+HxI+ESHOnymp7LXPNoNF9JspH2bbmbNbRjQAmqzC3D1D7nljDuK1Rfx JaVwRiZjlx9QqDD4WL4x06/G5HlD93uTMljLnFj7ryI91nLEaGGBv6oVCJ3Z+wBwhbrE rAY/qYKhy0rQQEdwVkGwu/bs6kiFUTYKjL4HXbBXvLvzkN9q3iWkqaq5ckafVDu0V8sJ kj1A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763722924; x=1764327724; 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=d7DmFF0maGICStk9axoEv3qDKWocIQl5IQ1fKBTN0qQ=; b=RjPciwewCaLthyxb3zG3Ju0dwino6bXFcqcdK1fl8Z7SG53EVbu4/0a7G+xxudJhG8 jWZS5v/WqA5ErFxoh1IlYbJ+SVCunum7YiawXFr9uQTNsWn3wllXkYcyczWszW9MLIpS Y9zSKXdOq3J8T/XF7emPmLEVHaqQrtNti2+xR/dRb0CfTnmd9Ksnv3/JriBJtrFEDE7D 62p3UBd/ju5nt6GaDbEs52fq+xSidYDVSvcol5yn3ylQ+sHL1yL0FNyzc+RASucB3OEE BkF93l8Gmm4ueQw5oQX5zFznjRIhoulkUWWxw7n3fIr/zpabhQBw6C/yLTTJiNnsr5Zq 1boQ== X-Forwarded-Encrypted: i=1; AJvYcCWlgQCLyf2noneixSo8wt8lsnEx8RmIMtQ67zxAc7ollXUT6sxQsmFaH5wCWpA8Y3CMMWmIyZiCUoMXrB4=@vger.kernel.org X-Gm-Message-State: AOJu0YwgEYbfpvbEsNYbOEHcKR912w6axlEOKkco/TJnMLhDJutj3VAD 09BD6JFWY4j/iELH7FHWJik/cJ991jIoQBt+qY5vV4Ie2u//11OB6PShonM3cspFNlCn69l2NP4 3h16LazjS/voaF0R8AsX+3X4klTyCI77IhwxDUU4wuntdjYTnmNLBWhlrqsQAVbec9Zo= X-Gm-Gg: ASbGnct3nzCmt6zxuNmGGLuOnIKu5DYlBKrs3SyNWaxzx4lR2TKWNJAZLcScI6Kkw0g 0QYk8FrwxqZOl/8SEcODOGHL9oZFnTOsDxzBDxaF6rlUsqDAZGTKiMW3a4lQkDRpnZoUqDRGSMk lDLCFW2CsrZNAsCwix8WlhvN9bidh/jB+nz27cDNH/u8m8DztShFNoOid5g1mO8wNUAXEe6bczB SAwOy43HpfsE0OVS78rSLljIb3E/9/3r+SckqLYupbNzkCLxw1/cWRORGsxX8T8aAqIIVUBi8TL 9rNWC193APmVwoyyFbY/yKf8+E5x4r9kZ034fZdxseXAhoOBqzmQCnxLSXiHL33b0nFzTPLmsTL s6/OsXSCaFWrsD6pzO/fIOdO6JUbPHEiuXJNu X-Received: by 2002:a17:902:ce01:b0:295:557e:746a with SMTP id d9443c01a7336-29b6c3e375emr23305185ad.13.1763722923961; Fri, 21 Nov 2025 03:02:03 -0800 (PST) X-Google-Smtp-Source: AGHT+IF8TqQ8NqzPErgruOgQAvjYarAEdyxmZ3eOVdNmdtur20R8WEvUdSstxIWZ01Le9GWGiB43tg== X-Received: by 2002:a17:902:ce01:b0:295:557e:746a with SMTP id d9443c01a7336-29b6c3e375emr23304525ad.13.1763722923320; Fri, 21 Nov 2025 03:02:03 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-34727d5208csm5191165a91.15.2025.11.21.03.01.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Nov 2025 03:02:03 -0800 (PST) From: Mukesh Ojha Date: Fri, 21 Nov 2025 16:31:12 +0530 Subject: [PATCH v8 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: <20251121-kvm_rproc_v8-v8-10-8e8e9fb0eca0@oss.qualcomm.com> References: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@oss.qualcomm.com> In-Reply-To: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@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=1763722879; l=2511; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=IjiqaQegQtY3yhs7JqPzJutmLc2QZs8lmeUIfR6pRdU=; b=WneTUFZS8c/a8fbpKIZybd5p8nWJTOGDfD8LrHXN2LMCBu4tBKoC6ul86CdwGomY+Ruspl3WT 7dZPyQiiHOuCWb8FIDu58gTp6/WO0VtKpkRCTNKsje2sQuWFQUB5NCo X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-ORIG-GUID: HrDLQRERS2DJ8FgqcQvX3OPLmA5pS142 X-Authority-Analysis: v=2.4 cv=SPlPlevH c=1 sm=1 tr=0 ts=692046ac cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=08WIqK_J-xaQODWVIAIA:9 a=QEXdDO2ut3YA:10 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTIxMDA4NCBTYWx0ZWRfX1izr6sYW4a3a gl8Oh6M9+Bvdw+5rvwbEV2cNpAfqzMjfCOemZ0iR4I8Xuk0icTvNKBi64+jHv+stPwZh6JuSp1I lDC/3HuvU74zB73FbCuFl/4srLq7qOtXiveobpFOxEaJZ9FWQEALKXiOtb3fn2gkATgut9gJJkR ZkqjlDcjk8c685IWc7KS2kf+yDeELqvRfhklwHr7iOwc2eNzipv8aN/GU8wv6bROufFccu4egVR l7qomHkSEc3XwJkMOe+gSVa0gZmtKF8p0zWjePoXci2PzPw4Tmj6pexSJJykZxZzsRUtylQU7kb zaD3kaOBfNk6Ebuwl5EoqvOJcLbyRpeUafkgVQuj0ZSZ/J7ocOzLsWyAI6t6uVFfZ2Nm3c9aB8g 7irfWf/y2zHILxe7VwVO3eMnJWwcgg== X-Proofpoint-GUID: HrDLQRERS2DJ8FgqcQvX3OPLmA5pS142 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-21_03,2025-11-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 lowpriorityscore=0 adultscore=0 malwarescore=0 spamscore=0 bulkscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511210084 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 90649d9ade97..84498d0d2f0c 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->has_iommu) + return qcom_scm_pas_prep_and_init_image(ctx, metadata, size); + /* * During the scm call memory protection will be enabled for the meta * data blob, so make sure it's physically contiguous, 4K aligned and @@ -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->has_iommu) + qcom_tzmem_free(ctx->ptr); + else + dma_free_coherent(__scm->dev, ctx->size, ctx->ptr, ctx->phys); =20 ctx->ptr =3D NULL; } --=20 2.50.1 From nobody Tue Dec 2 01:28:38 2025 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E0C6434C9A6 for ; Fri, 21 Nov 2025 11:02: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=1763722931; cv=none; b=FOSUCyTOh30Fv1hQxMDywVo/Pg9TmwZC8pnnJKo4iVSnZRJmK6htfV/89X2qyXZdlsM+jK2yqWyi2ol6RzcAyIQuMTlI9+E3yOvf1DHcAh2HaRxL2Y7hHW9FV6j45Lf+9wsEW7xZ+AmcWGYKTyGRyeLG3VL56TWDwtkoD8+qIQA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763722931; c=relaxed/simple; bh=WWOhgu+15cNgL+gz2TfzhH1wjXOgU6AXMCE0AZOZb5w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Vq7nDpkkFeTh4l4egFgzK6fovSCNEJGz2GKNQ2C0ASl80qJ5Tdmz70lMXANvEnf7m61WB1cDkqa3NIWOKJ+qGEqnQZ4Ls0TGL6P1SxcnRnnE0iMfHLsSUwEuSdwi919QNaSYkHNKz3TcRfDOWVu3DaLO/7hZmv116UoVlKlT+Yo= 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=epVQvIcG; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Nws86s/W; 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="epVQvIcG"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Nws86s/W" 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 5AL5SHJj2757289 for ; Fri, 21 Nov 2025 11:02: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= HXAFQ6vcXOpUfeBjvRMj2UfNd+ePc1XpZL5gXuKOA7s=; b=epVQvIcGO6h/yhYU ojnbgwtCn9rSR4Li+wSTDYHbC1gkgzY1xZwXlK4Hz/Vzb9vRhY1bsYzjUygL55CI RFCjZt9uEaiYSjDzCmPqhZCZZuQL0eh8PXzqnUJAmJHUEbGBsig83AqmSlui3oSZ iHFYi5gWpqUmQ8RRjeSKE0Dwq44e2F3c9DeA1wFITAxHMKuPUsBLXb9rFFzs8FIp UN3AypI4cb3+/OJtGWRnrnkLPv4POAkGH3sLSSKiVguX/skipJOzBsnQx4j262Nz UCu97lfulviFAxoKlZ3j00qKJeKLQfuZR8fuyZCMKu6vi8PtfFo+tgV4/Ku0S0Sc 8B8zzQ== Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ajhy615bu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 21 Nov 2025 11:02:08 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-3438744f12fso5664072a91.2 for ; Fri, 21 Nov 2025 03:02:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763722928; x=1764327728; 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=HXAFQ6vcXOpUfeBjvRMj2UfNd+ePc1XpZL5gXuKOA7s=; b=Nws86s/WrT6Fa5tNHNbd4Gy3h0GB+uVr92KTXPodgMmSSAox32mKRbFyex1IbJOy/g bwB6DuaTYIEidYh1MtvHArylYn7VvsLpzgUGU7/8WaAKOaubyVQVCyDmltDEYOi2Tk6J UBNF2CTSiUIUGA+hwf6To0uYub0Q/5bOJT4sOwIDV7zJdUQdLF4mkWm2kxHlfzpjZole e8xcOAN2Ga37DjALveCMAiQukG5pdI/sJI9/V1HUHNVOoy/z7Ly+I8x7WTHyOLNZcDy2 7vaTWNWwMx09C4YDBNyhUaji+mHXodpAX2yc+/3QSiXJPLPxPij0lfr3uqF9ileKae5z VEyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763722928; x=1764327728; 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=HXAFQ6vcXOpUfeBjvRMj2UfNd+ePc1XpZL5gXuKOA7s=; b=WTXfzE0fmjf/bIy+172GckuV4zLCTJlx2x822sCEVmtdhPwo5JGeiQv71xzbLHAwCW crcIbjPzlQyhI4yB8TAmmVxAm86vi44wbAbBV+xDZxhHnPCFD7DmMqiz3azayhjHpsb6 t/3IlTHoEZbJ9z1xf8dhxbZpgvnvB3/sBrmu7l99Pd7ZjvxqP13M3yGWyIMGZpkkJdMr ENuN8S96pVKZuzydBu4PGoZXPFgnGV8EbMX8aQC035AMYhGxvG+/ikvOFOA+MhKjeKjq zMULujC0yCl5WD7RZpLeRb5u21iC8oeehRbtT5NmtQrCG1yUNhz5oG577A6aWR5uvzwc JOyA== X-Forwarded-Encrypted: i=1; AJvYcCXEC6fc+feayGQ/lgHBk0uectgbEE7rrTyc/hPwD0T6UCcvOHZJO1NVyGOFbyMlaWSF21aeDVIRZIGbuwU=@vger.kernel.org X-Gm-Message-State: AOJu0YwGFJuCv/ubkoN/h1FP6QT2MeKHuspgCMIHuF5UDjqiV7DmHuPq CLz2c2ReN1xn7H/HJ+xPnnl1mcWRy0BUd2DArX2XHfWbMs2IF3yDgVdBncFgoaNlt++f0ygDPOJ kwKyEP9AB300c82FofywHK/oG/kiAQ7LCZSmdqLTehX+HXbQ5JkP+cNmtVdYqsLN6ar0= X-Gm-Gg: ASbGncsny30E9Myf1a30y6ZRmOC2SfE+gGBnI3CY0c05Ozz6mJpBaaxJxpBJUrSfO+z oR6wyA1kApmY+jA+NSHnBajvqjI/BGsO/uXZ9gzsBo2pDwyskeAKF4gbscmQdd2Ud+XCzLj6JoQ KDkUlvDqxR3wpMGSbEYHXaq/AusNuyDRLHScGgwoWFnW+xeGmRIJOxMm2fFVNOOVjKtcDN4wQI1 03nFDPmyfvHYQXQSJOkS+PTAHKRcHH4nE2PYlgbrwnLqOB3LVJdRXggkXPv9E1vBXPHdopRjkOD stYvA0jwJZcgmzF07dekr7Xt6ANol8LBj+YALlZWC7QmUCmOfIIbOu2l+aAjYApQxqxWYyBjf8/ h7QOkmXjgo0QHW6rOJ0V94KnkL50kVO4RXV6d X-Received: by 2002:a17:90b:2b8c:b0:340:cb18:922 with SMTP id 98e67ed59e1d1-34733e794e0mr2681460a91.14.1763722927836; Fri, 21 Nov 2025 03:02:07 -0800 (PST) X-Google-Smtp-Source: AGHT+IHH/wWdGg+S/9wqhUP617bIhp/9ZyuuJbpQ9d3RLQMXrEEckDyKTEBzOwXL2FgEymyJI7CBxw== X-Received: by 2002:a17:90b:2b8c:b0:340:cb18:922 with SMTP id 98e67ed59e1d1-34733e794e0mr2681401a91.14.1763722927040; Fri, 21 Nov 2025 03:02:07 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-34727d5208csm5191165a91.15.2025.11.21.03.02.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Nov 2025 03:02:06 -0800 (PST) From: Mukesh Ojha Date: Fri, 21 Nov 2025 16:31:13 +0530 Subject: [PATCH v8 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: <20251121-kvm_rproc_v8-v8-11-8e8e9fb0eca0@oss.qualcomm.com> References: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@oss.qualcomm.com> In-Reply-To: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@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=1763722879; l=9190; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=WWOhgu+15cNgL+gz2TfzhH1wjXOgU6AXMCE0AZOZb5w=; b=iXGow2RnQMWDX58PYo9RNlYKnazWr/PM0U7m/laZerfZ2gZxJ7Kf1RDHdipvAfEuzlm60gPr5 IEhVetEMFd3BYHS71gevEZVzACGND3zaLH9DV6kWKygq3YfXS9j36ns 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=Lb0xKzfi c=1 sm=1 tr=0 ts=692046b0 cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=KFEUUOXM5gBsW3BA6b4A:9 a=QEXdDO2ut3YA:10 a=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-ORIG-GUID: _Gi_ka8xMd8E_S7FtVd75T5_1lqlMUqo X-Proofpoint-GUID: _Gi_ka8xMd8E_S7FtVd75T5_1lqlMUqo X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTIxMDA4NCBTYWx0ZWRfX5NVUTQci9qxe RTUaFkNI8aoYrp8Q0oFANM09AAoszmFelVImGz3CumN4i886sbWhh6680aaJuCEZ+eeb/+X4EhA NOXJ+/SUg+lS9VwJReKcCQaqdfCdmtc76bJ/HBKB4I7Pm7OHH8EqwF+oJ0bNcxQPpV+2tXNAujB 7m7ZDXDUQPOjN5P2xM4hpwn7xWn4nShDNIwSXM15ywaXimp/i5KP0o6lE1VNq7/7+9J7Qvnay7U 61YQCOPoouQKrKy8lpgmy7hsOdeC59ETcz/WOhAaVBtBE+lun2Uq6Fseo8gueTe9ppRhj+gT42f aePVnA7rsKXoujZN35C8qqFWVmTd7LVI/BMrRJW7mAz6TayWaYFP8IuP7/z3uuYajMboaLhcfjT v8LUuzQ2LMfoS4W7pULFENAyybj96w== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-21_03,2025-11-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 impostorscore=0 clxscore=1015 malwarescore=0 lowpriorityscore=0 suspectscore=0 adultscore=0 bulkscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511210084 Qualcomm remote processor may rely on Static and Dynamic resources for it to be functional. Static resources are fixed like for example, memory-mapped addresses required by the subsystem and dynamic resources, such as shared memory in DDR etc., are determined at runtime during the boot process. For most of the Qualcomm SoCs, when run with Gunyah or older QHEE hypervisor, all the resources whether it is static or dynamic, is managed by the hypervisor. Dynamic resources if it is present for a remote processor will always be coming from secure world via SMC call while static resources may be present in remote processor firmware binary or it may be coming qcom_scm_pas_get_rsc_table() SMC call along with dynamic resources. Some of the remote processor drivers, such as video, GPU, IPA, etc., do not check whether resources are present in their remote processor firmware binary. In such cases, the caller of this function should set input_rt and input_rt_size as NULL and zero respectively. Remoteproc framework has method to check whether firmware binary contain resources or not and they should be pass resource table pointer to input_rt and resource table size to input_rt_size and this will be forwarded to TrustZone for authentication. TrustZone will then append the dynamic resources and return the complete resource table in output_rt More about documentation on resource table format can be found in include/linux/remoteproc.h Signed-off-by: Mukesh Ojha --- drivers/firmware/qcom/qcom_scm.c | 158 +++++++++++++++++++++++++++++= ++++ drivers/firmware/qcom/qcom_scm.h | 1 + include/linux/firmware/qcom/qcom_scm.h | 4 + 3 files changed, 163 insertions(+) diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_= scm.c index 84498d0d2f0c..c4420b79fb57 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,159 @@ int qcom_scm_pas_mem_setup(u32 pas_id, phys_addr_t ad= dr, phys_addr_t size) } EXPORT_SYMBOL_GPL(qcom_scm_pas_mem_setup); =20 +static int __qcom_scm_pas_get_rsc_table(u32 pas_id, void *input_rt, size_t= input_rt_size, + void **output_rt, size_t *output_rt_size) +{ + struct qcom_scm_desc desc =3D { + .svc =3D QCOM_SCM_SVC_PIL, + .cmd =3D QCOM_SCM_PIL_PAS_GET_RSCTABLE, + .arginfo =3D QCOM_SCM_ARGS(5, QCOM_SCM_VAL, QCOM_SCM_RO, QCOM_SCM_VAL, + QCOM_SCM_RW, QCOM_SCM_VAL), + .args[0] =3D pas_id, + .owner =3D ARM_SMCCC_OWNER_SIP, + }; + void *input_rt_buf, *output_rt_buf; + struct resource_table *rsc; + struct qcom_scm_res res; + int ret; + + ret =3D qcom_scm_clk_enable(); + if (ret) + return ret; + + ret =3D qcom_scm_bw_enable(); + if (ret) + goto disable_clk; + + /* + * TrustZone can not accept buffer as NULL value as argument Hence, + * we need to pass a input buffer indicating that subsystem firmware + * does not have resource table by filling resource table structure. + */ + if (!input_rt) + input_rt_size =3D sizeof(*rsc); + + input_rt_buf =3D qcom_tzmem_alloc(__scm->mempool, input_rt_size, GFP_KERN= EL); + if (!input_rt_buf) { + ret =3D -ENOMEM; + goto disable_scm_bw; + } + + if (!input_rt) { + rsc =3D input_rt_buf; + rsc->num =3D 0; + } else { + memcpy(input_rt_buf, input_rt, input_rt_size); + } + + output_rt_buf =3D qcom_tzmem_alloc(__scm->mempool, *output_rt_size, GFP_K= ERNEL); + if (!output_rt_buf) { + ret =3D -ENOMEM; + goto free_input_rt_buf; + } + + desc.args[1] =3D qcom_tzmem_to_phys(input_rt_buf); + desc.args[2] =3D input_rt_size; + desc.args[3] =3D qcom_tzmem_to_phys(output_rt_buf); + desc.args[4] =3D *output_rt_size; + + /* + * Whether SMC fail or pass, res.result[2] will hold actual resource table + * size. + * + * if passed 'output_rt_size' buffer size is not sufficient to hold the + * resource table TrustZone sends, response code in res.result[1] as + * RSCTABLE_BUFFER_NOT_SUFFICIENT so that caller can retry this SMC call = with + * output_rt buffer with res.result[2] size. + */ + ret =3D qcom_scm_call(__scm->dev, &desc, &res); + *output_rt_size =3D res.result[2]; + if (!ret) + memcpy(*output_rt, output_rt_buf, *output_rt_size); + + if (ret && res.result[1] =3D=3D RSCTABLE_BUFFER_NOT_SUFFICIENT) + ret =3D -EAGAIN; + + qcom_tzmem_free(output_rt_buf); + +free_input_rt_buf: + qcom_tzmem_free(input_rt_buf); + +disable_scm_bw: + qcom_scm_bw_disable(); + +disable_clk: + qcom_scm_clk_disable(); + + return ret ? : res.result[0]; +} + +/** + * qcom_scm_pas_get_rsc_table() - Retrieve the resource table in passed ou= tput buffer + * for a given peripheral. + * + * Qualcomm remote processor may rely on both static and dynamic resources= for + * its functionality. Static resources typically refer to memory-mapped ad= dresses + * required by the subsystem and are often embedded within the firmware bi= nary + * and dynamic resources, such as shared memory in DDR etc., are determine= d at + * runtime during the boot process. + * + * On Qualcomm Technologies devices, it's possible that static resources a= re not + * embedded in the firmware binary and instead are provided by TrustZone H= owever, + * dynamic resources are always expected to come from TrustZone. This indi= cates + * that for Qualcomm devices, all resources (static and dynamic) will be p= rovided + * by TrustZone via the SMC call. + * + * If the remote processor firmware binary does contain static resources, = they + * should be passed in input_rt. These will be forwarded to TrustZone for + * authentication. TrustZone will then append the dynamic resources and re= turn + * the complete resource table in output_rt. + * + * If the remote processor firmware binary does not include a resource tab= le, + * the caller of this function should set input_rt as NULL and input_rt_si= ze + * as zero respectively. + * + * More about documentation on resource table data structures can be found= in + * include/linux/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) +{ + unsigned int retry_num =3D 5; + int ret; + + do { + *output_rt =3D kzalloc(*output_rt_size, GFP_KERNEL); + if (!*output_rt) + return -ENOMEM; + + ret =3D __qcom_scm_pas_get_rsc_table(ctx->pas_id, input_rt, + input_rt_size, output_rt, + output_rt_size); + if (ret) + kfree(*output_rt); + + } while (ret =3D=3D -EAGAIN && --retry_num); + + return ret; +} +EXPORT_SYMBOL_GPL(qcom_scm_pas_get_rsc_table); + /** * qcom_scm_pas_auth_and_reset() - Authenticate the given peripheral firmw= are * and reset the remote processor diff --git a/drivers/firmware/qcom/qcom_scm.h b/drivers/firmware/qcom/qcom_= scm.h index a56c8212cc0c..50d87c628d78 100644 --- a/drivers/firmware/qcom/qcom_scm.h +++ b/drivers/firmware/qcom/qcom_scm.h @@ -105,6 +105,7 @@ int qcom_scm_shm_bridge_enable(struct device *scm_dev); #define QCOM_SCM_PIL_PAS_SHUTDOWN 0x06 #define QCOM_SCM_PIL_PAS_IS_SUPPORTED 0x07 #define QCOM_SCM_PIL_PAS_MSS_RESET 0x0a +#define QCOM_SCM_PIL_PAS_GET_RSCTABLE 0x21 =20 #define QCOM_SCM_SVC_IO 0x05 #define QCOM_SCM_IO_READ 0x01 diff --git a/include/linux/firmware/qcom/qcom_scm.h b/include/linux/firmwar= e/qcom/qcom_scm.h index ccb8b2e42237..814d40d64ab0 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 Tue Dec 2 01:28:38 2025 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3CA95347BC5 for ; Fri, 21 Nov 2025 11:02:13 +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=1763722935; cv=none; b=ePC97toY0H5bkIbdhCQYUaRNxtQWVei1PO5EjUwiPa6YobmqPUCaRFfwDc22PUP65f74+TMAVxA0ZOnQ8WL1guEJfa1cy+qyjuH1QRzQh3+EzbbCnqQv/BAX79lQVaB+j47NLcRw16J6KtRIG5t5L7ZiQNFQ6/sE+I1H2KNLpr0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763722935; c=relaxed/simple; bh=i0l1yd2psvmNReSCrh1wM3fGQJyLpQp0JIKKuUcUls4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IhJseM/4xaJg4T8hLC6+ZN9JFYTLQsDMXAO3NXi65NJsuFWRxYwd+z8zP4oXVyYfuxHfZMwY225pU5BNcfflO0QsQahKf4wvUOb2uLWPaefr/ebhDpn/+HH74TXrl8Ys4T9AwN/mm7uI0APjcPdhWiJiASXh9c6QAOQdcenVdek= 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=kviSVaAU; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=JbHI0ajd; 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="kviSVaAU"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="JbHI0ajd" 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 5AL7ALjI1637153 for ; Fri, 21 Nov 2025 11:02:12 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= V/FS2O3qT/9Oj2CvSpEkadXBrxFneX0U/N5cD0ePce4=; b=kviSVaAUfDQH/BhY Nu2qrz5q0Q5T3gvMwL3ho7vlE6ev/WE99AHH3mUjPGyPUU+28/ylf0YaRLfNBT8D k5k7PaSFwTn5TY3swoBdolVAoLe09cdhA/y91Houeg9isaGpvW3+zmR30CiwtFaR d4h4atkL5KxATiyp56hUvG209emkMitQmFIvIN4e4YsCt2uW0BkAUDx5JlfOb7LB pnWZ4q6D95IdtOSGs968gm5sgrBWEqdWSQihcRPjZPt1F/zOKlnPuCL+BW/Afwx8 U+WZGWkOdVqVvBBUGeDrixodM9dMNG1g/WnMgF9cv9ftfWWnfViZiB7Jd+GtAJky Kd6MUQ== Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ajagatajy-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 21 Nov 2025 11:02:12 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-34566e62f16so2321554a91.1 for ; Fri, 21 Nov 2025 03:02:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763722932; x=1764327732; 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=V/FS2O3qT/9Oj2CvSpEkadXBrxFneX0U/N5cD0ePce4=; b=JbHI0ajdoiyPjH8KmV4aPjrRrR//J6lAeaD3c35xR1yyw8Y0kK8IWiCRoeS/W3rEfy cf+pOZS865JEK8GXU38Yil/9/X+m0WWCyyPqCG/nycSZiD59pxkHWYhl3OTXsk7B1ohf cGBxThx+wTPTcsyqMKuYO22empi4BhS74fiwmDKI/+MLxEdZWZjtZv1yI1Rk0Jwu3ZsI c+bnXCA5AyQ87XqdBi5k8EYySuf0nG/YuvcsGIA5057AFJfFSt1y+zBIGlDbEuWAAWSh LOxe/o95JvlRzAbW79ADdSy9xkdXc0RXQtPiwK8mHctKcq47JogKJw5/OGEMyY4Axfaq ynkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763722932; x=1764327732; 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=V/FS2O3qT/9Oj2CvSpEkadXBrxFneX0U/N5cD0ePce4=; b=Okf48GwtxnTGxjBew0iW/PqRy2pRWSGv5U3WnQ0mehNsoGMVMSt9RqvcEOM5drnlz1 lAA9GFOJnw79AfbMRiaKjQNQb/S6pmt6rIekJ7xEjLsPgNigDEAsqBBJ73dSAGMFtzsE YeumihvCXQOXZX/ZbVkOvcw3yq6t2bocfne3iuqi/P1GaS0a0I1CXvwDYr9Ma2TyPF2E ZPnRUKWLNnxVr3PaAqoghVbzHaLAhA0qhjVWEqDku0lQikoOBy4fwC6fCNTHm5qZO2mv 0pIplaLeJIKwSlCOqUjxDLC1srKfiZ1G3B4bMTZ/FVMn7N/3ICrc6UPAlvrZE9UyYCge Kcmg== X-Forwarded-Encrypted: i=1; AJvYcCVjrrczzIbWhP3kqamdLKRpQBao3U5VI4PWjRmtwmBN550UgYv9CmE914iSBhZZT7twstrhBr3o7rr0ro4=@vger.kernel.org X-Gm-Message-State: AOJu0YyoZQUf81QPFClKOwHoGjOOEmU651nudh9xv7KiZygWQasMFnJl OZKKV1Ss7hTPvFnl6J0woJXZK2hHxaWq38j9vyb89glndvKKG5eM+pegDYvHJLt4HAn0cqtUPIu sNTgg+qEKvChrYBFFfg5UQ9g8/uenNK5Ub7BdT+SrSfPqE+yoEONlqDHk1RZ506nDY1c= X-Gm-Gg: ASbGncvxHa9J225fFZlQkCtsYpCheN4/JboX4cTdE4pTo8CYy4vkgQRnunI6IIWDz8S B2GQJHDkdHzy7GazmjFoDx0lpyVPF8E7J/euprwA7BxYvZoyB+zTTTQUdFepg2LTeCFn5TZSPjq FpZc5vkb1hlxr9roE+P8UY/XHX3MJqs6uvJRv81LTopy0ku72kuspzLMmbfT0WPkfTCmkdaMj16 7bEJgRxYkggyHxBkUkdDfdMvE6F4+QlCuP5CnUmOzozXQFEMaT1U9xeo57zpMx0w4YuOakmeekw smrRnaNba1oTTmc3z4EpPitHjrTcgGRgr2icVDWnTl6rxeF8JENHaidthetVGR7cU/Bdq+87eKt /uxhDpViI4PSxdXsL5L7uwNje2EQa83Inciod X-Received: by 2002:a17:90b:578c:b0:341:2141:df76 with SMTP id 98e67ed59e1d1-34733e734f9mr2018551a91.13.1763722931545; Fri, 21 Nov 2025 03:02:11 -0800 (PST) X-Google-Smtp-Source: AGHT+IGZyBfliX1taeiA8tYnXeLxjLCQb9p3ax09FQZM7jo0MPAhWPaVofZjyYvJfymsad1E6zSGrg== X-Received: by 2002:a17:90b:578c:b0:341:2141:df76 with SMTP id 98e67ed59e1d1-34733e734f9mr2018499a91.13.1763722930831; Fri, 21 Nov 2025 03:02:10 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-34727d5208csm5191165a91.15.2025.11.21.03.02.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Nov 2025 03:02:10 -0800 (PST) From: Mukesh Ojha Date: Fri, 21 Nov 2025 16:31:14 +0530 Subject: [PATCH v8 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: <20251121-kvm_rproc_v8-v8-12-8e8e9fb0eca0@oss.qualcomm.com> References: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@oss.qualcomm.com> In-Reply-To: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@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=1763722879; l=4665; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=i0l1yd2psvmNReSCrh1wM3fGQJyLpQp0JIKKuUcUls4=; b=LYCjqV9aANLxV2tv1O9a0YYowzUv+ssFnf04PIj1dwISr7QrZKNripbfjHn5pN95Gw2cAYkyF hdM6iv1GdWCBJ7uzbJrXyMZW9PyZryoGGHTxyiEaRSaZFyAvvMXvnFR 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=Ce8FJbrl c=1 sm=1 tr=0 ts=692046b4 cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=KMz1R6K7GWUeRkMKapkA:9 a=QEXdDO2ut3YA:10 a=iS9zxrgQBfv6-_F4QbHw:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTIxMDA4NCBTYWx0ZWRfX0jDWG0OZ21jV 87m/IOFm+icC+b4OXab5b7R4ellqAPf+XaXUMujCyGHBucTsqPcU6bz72vO4IQhJ2zbZbiqOEm5 dyZWVSo+cc8neCACoSFL+sNzyCeCjhvqO4mhv0ScN2R1F7hJ/tgqRZVrB/13QMu/dAUttvhmM81 Jaq/Vki84LE2t6vpDnmHQSjUcLovLwTp598Rcma2WYVM9Fj6Xa89fPR2WMlCir5YtE/wwYLg4WB yShJKVdlAE4jm+IfoYpQcX2WzqdtWVJekOgYhY4WpKQKCqpLWghxw/zTVSH9ZJAZ48+7Xc/0P5a ErZ84GR7VANOl6VA6cZ2FahJ+d9s2DgzpLa/aRPXgRYG2hb8oH9T2BSiCDYKipvMUlouJ534Bxb UowSNYfsA7HQcS308u8auquVIB4FYw== X-Proofpoint-ORIG-GUID: 8I-dFiPKjer0k-EV4Toys_DqcayZoMc9 X-Proofpoint-GUID: 8I-dFiPKjer0k-EV4Toys_DqcayZoMc9 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-21_03,2025-11-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 suspectscore=0 lowpriorityscore=0 priorityscore=1501 adultscore=0 phishscore=0 malwarescore=0 spamscore=0 impostorscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511210084 Qualcomm remote processor may rely on static and dynamic resources for it to be functional. For most of the Qualcomm SoCs, when run with Gunyah or older QHEE hypervisor, all the resources whether it is static or dynamic, is managed by the hypervisor. Dynamic resources if it is present for a remote processor will always be coming from secure world via SMC call while static resources may be present in remote processor firmware binary or it may be coming from SMC call along with dynamic resources. Remoteproc already has method like rproc_elf_load_rsc_table() to check firmware binary has resources or not and if it is not having then we pass NULL and zero as input resource table and its size argument respectively to qcom_scm_pas_get_rsc_table() and while it has resource present then it should pass the present resources to Trustzone(TZ) so that it could authenticate the present resources and append dynamic resource to return in output_rt argument along with authenticated resources. Extend parse_fw callback to include SMC call to get resources from Trustzone and to leverage resource table parsing and mapping and unmapping code from the remoteproc framework. Signed-off-by: Mukesh Ojha Reviewed-by: Konrad Dybcio --- drivers/remoteproc/qcom_q6v5_pas.c | 60 ++++++++++++++++++++++++++++++++++= ++-- 1 file changed, 58 insertions(+), 2 deletions(-) diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q= 6v5_pas.c index 9feee2cb1883..186a90d6c83a 100644 --- a/drivers/remoteproc/qcom_q6v5_pas.c +++ b/drivers/remoteproc/qcom_q6v5_pas.c @@ -34,6 +34,7 @@ #define QCOM_PAS_DECRYPT_SHUTDOWN_DELAY_MS 100 =20 #define MAX_ASSIGN_COUNT 3 +#define MAX_RSCTABLE_SIZE SZ_16K =20 struct qcom_pas_data { int crash_reason_smem; @@ -413,6 +414,61 @@ static void *qcom_pas_da_to_va(struct rproc *rproc, u6= 4 da, size_t len, bool *is return pas->mem_region + offset; } =20 +static int qcom_pas_parse_firmware(struct rproc *rproc, const struct firmw= are *fw) +{ + size_t output_rt_size =3D MAX_RSCTABLE_SIZE; + struct qcom_pas *pas =3D rproc->priv; + struct resource_table *table =3D NULL; + void *output_rt; + size_t table_sz; + int ret; + + ret =3D qcom_register_dump_segments(rproc, fw); + if (ret) { + dev_err(pas->dev, "Error in registering dump segments\n"); + return ret; + } + + if (!rproc->has_iommu) + return 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 +481,7 @@ static const struct rproc_ops qcom_pas_ops =3D { .start =3D qcom_pas_start, .stop =3D qcom_pas_stop, .da_to_va =3D qcom_pas_da_to_va, - .parse_fw =3D qcom_register_dump_segments, + .parse_fw =3D qcom_pas_parse_firmware, .load =3D qcom_pas_load, .panic =3D qcom_pas_panic, }; @@ -435,7 +491,7 @@ static const struct rproc_ops qcom_pas_minidump_ops =3D= { .start =3D qcom_pas_start, .stop =3D qcom_pas_stop, .da_to_va =3D qcom_pas_da_to_va, - .parse_fw =3D qcom_register_dump_segments, + .parse_fw =3D qcom_pas_parse_firmware, .load =3D qcom_pas_load, .panic =3D qcom_pas_panic, .coredump =3D qcom_pas_minidump, --=20 2.50.1 From nobody Tue Dec 2 01:28:38 2025 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5EA3934D3AB for ; Fri, 21 Nov 2025 11:02: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=1763722939; cv=none; b=Kbw6I5FpMB9yttLcv4S9IYdzqDSZmvviXGCQLDdJcWMmRSKd/8BKm1Dyjjj9J3vACbW3YeE8/DEkwuESgjCz3bFC5aqCHc8Af5pePQu5PJk5/gGDs7yBemE/gC1goBlcBufWYPAOjwdIXXKPGQXtSF/ZcnqHP6w4oEmoYil+4ug= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763722939; c=relaxed/simple; bh=LDWAD2OdrCo60t+xziU/S1D39LdH7Wm0TjQa6U2Nrp8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GcjRWRAP5zus/CslxV2h68l8E251DTMVuchS+YJLri409IU4DzOOFUg36jWgZTF3S2azKt3KzimT8TSSKY0pI3xuTkVZrCX0cwE8y3tIZq4Nb45GdBrSz1YEZVRIBeFUKU48Ba7g+k9X61SbOHujKwrXM24BX9ToT0c/bKPC8C4= 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=cF0gYsn6; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=XPViP7Lc; 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="cF0gYsn6"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="XPViP7Lc" 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 5AL5T7ql2831702 for ; Fri, 21 Nov 2025 11:02:16 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= wzDVse6SiyFvQ9mA2qbhi5suczpNw/QR0pHgsig8MBw=; b=cF0gYsn6xQ0AnMBw j3pwXOI2LjN+UVs26wL8O66Y0Rxf1hn/m1FmJnwo9Y1IKn8PppW1imnRCzVCGM4M udCmBjtmjSCaoQ/JGL+b6vOHJRTBce8aYikF3sGRokZVhv96h4XDReLrK2SycA0f e0EpCuFdtp8y/ZWekQYMleUHR2+r4ZR3UNASwc/V/gmqISo8LIba3bmjsgAER66v IkyAn8jgSeV9xYdM/wetZ0phOMhvX09ZRIeoRg678OcRy13W5X362Xd9C2mSS9fR /i/RCxh6VvUygNja4k9jVETXyyrasOhsZA6qLOOLuYV4qZjU5ftYfuIwtJaHY7il jSilcw== 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 4ajhyq14cj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 21 Nov 2025 11:02:16 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2956cdcdc17so23733455ad.3 for ; Fri, 21 Nov 2025 03:02:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763722936; x=1764327736; 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=wzDVse6SiyFvQ9mA2qbhi5suczpNw/QR0pHgsig8MBw=; b=XPViP7Lcn3db+8/Qdd8rChevhW6rw1LqEoxZUgr9+8zGb6mmlcfTmg8conPOXYiNKk uBg7jKhFkzjTorLCjFjMBf7mVA7rUeZcsGhxd0O7C7cJAc3Q4tKtcsWZEyJ+qF5ptWl2 MZeUgShwGs9xLJP4WBt1fSiYMrtATRwgAY0lOOU38D3T8nvUEOiOsLrOl7nAWRDCag8F rkhbhEtQv6U1pXuhdKrOogTQnkdiMJdQPicU4OXsETMUxSn81MXqXoMNr+axibmnv377 vNpIwllBrRsHVpayyP+IFLc30sDWNGZs0UGi+3FvlpRNLtB6YO49EP6bIg8vmOthfddW ZkiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763722936; x=1764327736; 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=wzDVse6SiyFvQ9mA2qbhi5suczpNw/QR0pHgsig8MBw=; b=ah2D71qYZ7ZU2aaZ6HMhm23zAxWNgk1R/LS6LRVxaXs8liH4gK0AN+i/pTCXFSFJ5n lOlkbKNo3rzA1Jz/AQc5WbiKFr+H7WuZesdWiNAHEbPtKlL5qTsajHByeedkubbsY6Hj O0Qp4pghuEMftmz4MLA3yemwqSpyrBiovs/OPYa1dHWDs/DbkULsqPIMi0Rf4M4XSgoJ UJaJEiEv2oKsqnlcHCx6ieIA4lJh47R2dYGH0KcRMmCh0mvbW3hYNPxpu+DdMRbrRMPy 9GyTHQSBWeYN3AxsxSunGMYgxmpf0Kn+aYPZXOb5b6VDF703Lb7Xi1i3Lrg6cAkL3ryT /4mg== X-Forwarded-Encrypted: i=1; AJvYcCUIOTXtMxSwLj2ObsOtxo2GGKEcgS+v95TaqrlmaM/+ShZSZ3GgE9E1HF0DqW9Qje78Hx0kJ5VmlXwL+k4=@vger.kernel.org X-Gm-Message-State: AOJu0YwAM+hH0jkpnsvZsxEa2jWCFIg4o2jBifw+RtIC2d9sLy4ffIM2 A0haoUxM6rXPgQprTdIkjoSMttQM/OvWleFWs0dnzdyhAIxceqekD3yDjDBkzrGysum5QS4y6Vr tOBPxswDVAeYG2XoRXiV+lX3MR1Uhpatu+qhS3snz78uPjEPK3Ggl3IsHkeybOqTrpOcgwiJsu5 0= X-Gm-Gg: ASbGncvSrFdKdoXHl0aKhgOV7pVZ5Iltdsep8pr+8KKG7KQ/gNM+ubuQQ7/z1tHACFB CYTHSoUMTQs+gNMGeqAnS1YyCuMC8mptZxLcaT+5vmq3bWd+VZWmONcLgU7OX2wYmb9QBBKlA6z /I6Co9s9ccy3mdi1dtHuZr7oc9LSuLwPoUSO/+WPYkpfVTWY7mBJclu5M5JON35K/pv7wIr0R9+ 3dUngFWX/t8VibnnV4bzozZIi8PDJrq4FNG3HiXXyETB3XIx1Ta3Eq07lPS8nnd/P7O3dgTsuPO dmUNrC+BJqt4NECoCwRCLxeGTBvtBuQdI1ONB8EL1mBfiANScub6FJoqzTeClAVJbl2+B9hUNYa 1nwihBEVGu9d7eIa5lJmDCAoEnc3KQGiaQ0CD X-Received: by 2002:a17:90b:2f85:b0:341:88c5:2073 with SMTP id 98e67ed59e1d1-34733e4ce7fmr1636081a91.2.1763722935300; Fri, 21 Nov 2025 03:02:15 -0800 (PST) X-Google-Smtp-Source: AGHT+IFEyx4OJNMZDxNS2Lv8sRqqfI93j+bv62197cKPsmEzMrlYJCRV60V11I6/4w8n3Fr2p97tdA== X-Received: by 2002:a17:90b:2f85:b0:341:88c5:2073 with SMTP id 98e67ed59e1d1-34733e4ce7fmr1636050a91.2.1763722934637; Fri, 21 Nov 2025 03:02:14 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-34727d5208csm5191165a91.15.2025.11.21.03.02.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Nov 2025 03:02:14 -0800 (PST) From: Mukesh Ojha Date: Fri, 21 Nov 2025 16:31:15 +0530 Subject: [PATCH v8 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: <20251121-kvm_rproc_v8-v8-13-8e8e9fb0eca0@oss.qualcomm.com> References: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@oss.qualcomm.com> In-Reply-To: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@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=1763722879; l=5426; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=LDWAD2OdrCo60t+xziU/S1D39LdH7Wm0TjQa6U2Nrp8=; b=2gjk5vgALyrjvuFLK7nI+VjRGLP6ywbIIC5ra95eCjN5uxwfcOkjsn0g1Vz5CqJbtgIzIQLgm zowm8xjK2/mAz1ZWEGy66cLuE3XVHlYZoQEAxjOElE7ucna9zVzTChU X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-GUID: 6Ga39FTE9YL_S_lLvS1CZvqEdiZZYLMM X-Proofpoint-ORIG-GUID: 6Ga39FTE9YL_S_lLvS1CZvqEdiZZYLMM X-Authority-Analysis: v=2.4 cv=N94k1m9B c=1 sm=1 tr=0 ts=692046b8 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=58pnfTnN0ARRJNaB1lkA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTIxMDA4NCBTYWx0ZWRfXxuU5iYV6DFWc VWvn43fxvhMxPBkiO5tmHRprWw+wGHka/pjE4saeNEpmKHutMqdjYkpwKr+RZWptN1lwB0nNHYP 5ctAShu0nMTGbxJW8eurOSMHyzs4fWzb07QwVeNliKEu4W+1VQSvtoqhuU08Awq7V3uF+H3kPMn ex/XkC5Dt+LXiOEHU+z65YKdBQg730YL2JDhpwi+abUpRTRLyn2ZbkEZduYhU+8OW2yiqtnj13X to7vxqArttqaZPQoSb36FeGeo78Rkf29PQ5sgUp88oNaz75LrCDU3lqx5QrqtF683C+kNmRf2Js gclKlXQIS4wduS6xcO0Nl++n4PUSN9P5C7FiYx+lw0iYysbRGPGGTW2rXiGnea1j0+c6jSMHrXa OcOTJMfrcH5wMSZpU1ofg+HP9oJqow== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-21_03,2025-11-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 suspectscore=0 spamscore=0 adultscore=0 clxscore=1015 priorityscore=1501 impostorscore=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-2511210084 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 186a90d6c83a..2df3b06f8157 100644 --- a/drivers/remoteproc/qcom_q6v5_pas.c +++ b/drivers/remoteproc/qcom_q6v5_pas.c @@ -11,6 +11,7 @@ #include #include #include +#include #include #include #include @@ -256,6 +257,22 @@ static int qcom_pas_load(struct rproc *rproc, const st= ruct firmware *fw) return ret; } =20 +static void qcom_pas_unmap_carveout(struct rproc *rproc, phys_addr_t mem_p= hys, size_t size) +{ + if (rproc->has_iommu) + iommu_unmap(rproc->domain, mem_phys, size); +} + +static int qcom_pas_map_carveout(struct rproc *rproc, phys_addr_t mem_phys= , size_t size) +{ + int ret =3D 0; + + if (rproc->has_iommu) + ret =3D iommu_map(rproc->domain, mem_phys, mem_phys, size, + IOMMU_READ | IOMMU_WRITE, GFP_KERNEL); + return ret; +} + static int qcom_pas_start(struct rproc *rproc) { struct qcom_pas *pas =3D rproc->priv; @@ -290,11 +307,15 @@ static int qcom_pas_start(struct rproc *rproc) } =20 if (pas->dtb_pas_id) { - ret =3D qcom_scm_pas_auth_and_reset(pas->dtb_pas_id); + ret =3D qcom_pas_map_carveout(rproc, pas->dtb_mem_phys, pas->dtb_mem_siz= e); + if (ret) + goto disable_px_supply; + + ret =3D qcom_scm_pas_prepare_and_auth_reset(pas->dtb_pas_ctx); if (ret) { dev_err(pas->dev, "failed to authenticate dtb image and release reset\n"); - goto disable_px_supply; + goto unmap_dtb_carveout; } } =20 @@ -305,18 +326,22 @@ static int qcom_pas_start(struct rproc *rproc) =20 qcom_pil_info_store(pas->info_name, pas->mem_phys, pas->mem_size); =20 - ret =3D qcom_scm_pas_auth_and_reset(pas->pas_id); + ret =3D qcom_pas_map_carveout(rproc, pas->mem_phys, pas->mem_size); + if (ret) + goto release_pas_metadata; + + ret =3D qcom_scm_pas_prepare_and_auth_reset(pas->pas_ctx); if (ret) { dev_err(pas->dev, "failed to authenticate image and release reset\n"); - goto release_pas_metadata; + goto unmap_carveout; } =20 ret =3D qcom_q6v5_wait_for_start(&pas->q6v5, msecs_to_jiffies(5000)); if (ret =3D=3D -ETIMEDOUT) { dev_err(pas->dev, "start timed out\n"); qcom_scm_pas_shutdown(pas->pas_id); - goto release_pas_metadata; + goto unmap_carveout; } =20 qcom_scm_pas_metadata_release(pas->pas_ctx); @@ -328,10 +353,16 @@ static int qcom_pas_start(struct rproc *rproc) =20 return 0; =20 +unmap_carveout: + qcom_pas_unmap_carveout(rproc, pas->mem_phys, pas->mem_size); release_pas_metadata: qcom_scm_pas_metadata_release(pas->pas_ctx); if (pas->dtb_pas_id) qcom_scm_pas_metadata_release(pas->dtb_pas_ctx); + +unmap_dtb_carveout: + if (pas->dtb_pas_id) + qcom_pas_unmap_carveout(rproc, pas->dtb_mem_phys, pas->dtb_mem_size); disable_px_supply: if (pas->px_supply) regulator_disable(pas->px_supply); @@ -387,8 +418,12 @@ static int qcom_pas_stop(struct rproc *rproc) ret =3D qcom_scm_pas_shutdown(pas->dtb_pas_id); if (ret) dev_err(pas->dev, "failed to shutdown dtb: %d\n", ret); + + qcom_pas_unmap_carveout(rproc, pas->dtb_mem_phys, pas->dtb_mem_size); } =20 + qcom_pas_unmap_carveout(rproc, pas->mem_phys, pas->mem_size); + handover =3D qcom_q6v5_unprepare(&pas->q6v5); if (handover) qcom_pas_handover(&pas->q6v5); @@ -758,6 +793,7 @@ static int qcom_pas_probe(struct platform_device *pdev) return -ENOMEM; } =20 + rproc->has_iommu =3D of_property_present(pdev->dev.of_node, "iommus"); rproc->auto_boot =3D desc->auto_boot; rproc_coredump_set_elf_info(rproc, ELFCLASS32, EM_NONE); =20 @@ -837,6 +873,8 @@ static int qcom_pas_probe(struct platform_device *pdev) goto remove_ssr_sysmon; } =20 + pas->pas_ctx->has_iommu =3D rproc->has_iommu; + pas->dtb_pas_ctx->has_iommu =3D rproc->has_iommu; ret =3D rproc_add(rproc); if (ret) goto remove_ssr_sysmon; --=20 2.50.1 From nobody Tue Dec 2 01:28:38 2025 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4266E34D3BE for ; Fri, 21 Nov 2025 11:02: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=1763722942; cv=none; b=c2HSCgfrz4P3z9BCojuvGQIsUfVgGBwCBv4toTDud0HRBMsd/3PElu/vnQKXTW83EKV06jcTAoYiImdczw2WFnmaPeY8rVhLP2CDmx6KUX0R13i+KSTVXsZMOB9wqxVoLu+bw6GtnqEDpVPKNJ0FguER224Q/geo3prXph7ojwk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1763722942; c=relaxed/simple; bh=uRDqwnYIZZpnXYckK3LJYkQkz8Z734oXrxzphtus+RQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qchtoPDqaiGUAZ6UKHYHI078nq7r4Bwm/vebSHzpGk/vw6mBkCchq2F93Jj3iP9xQqS5gi450xp3P48CYXD/9a8eYI2P5WHii+T8bvzrhCCADSnQLYgHV2pn+cC6FFuYCRjhlyhPmPoKvL67aaqU3PMmceYVrc0pnWqaEO/aRO0= 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=hOvJlgPl; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ehsUutdm; 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="hOvJlgPl"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ehsUutdm" 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 5AL9W55O3049184 for ; Fri, 21 Nov 2025 11:02:20 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= IEpFo0lEJkHbippaH0NrsqLZL5lxGXEOzc/fjU/RBLU=; b=hOvJlgPluJyNev85 xV9+gef+m/PPYVak4c8RWgtf+nZR2NRE27MxPE96JlAPokdj5REvJkjrhj4Pc/qo R7ffTAsMRzxwNDd5sYmPwpFea0dIEX3HFDofCXa3gSg4KFFwR455100fxuGEu50O 7zcuDvTZx+hE9hDH7HMiaHqD/gcRZ6HsBpjGv+BP1uFjlBnCbihJmgyx8yUvY2nK xzt4MirCapTz1+6W2wAOTzghet0/x1L0qqy7ejbJNqLMky1ba8g/Jfkw/OBIZu7F b83p+ZLFQP+gFryvVG0bIoa40iJOZSWOjwsRI3N1TUQf7RG+S+lszEogAbTTcW/q imjJ9w== Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ajnhjr96e-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 21 Nov 2025 11:02:20 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-343bf6ded5cso4464386a91.0 for ; Fri, 21 Nov 2025 03:02:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1763722940; x=1764327740; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=IEpFo0lEJkHbippaH0NrsqLZL5lxGXEOzc/fjU/RBLU=; b=ehsUutdmju8IPYf5X3EcNz6JKodMMBbfyt10YMitmTS9TgFGRQwG58M82G60Nyxquu pe4gpgdVe+QtLdFHqS5UyTGwvaEKpQE7x68fZZb3hX2EneLqbJa1lPK7tJxH0TWLWPER 8fcwj5bUaniHtczCIrk0mdjUYevvttvW/9Vfo9HFUIwOgG/MjE5xELu4eVwTM4TA0m9b kGeR3W8VGqyb3Jd7m1SnPgcZrH1t5guQfFoFX63MAiIMbRLylzATNiPbizqFf6nrekKS xT8IYQcxlMMUmIlqHLs14l1UyRnaK6Vv5o4eV8v/EeYNasMIAiHb11tkl4Kg+gaCP9tB PDXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1763722940; x=1764327740; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=IEpFo0lEJkHbippaH0NrsqLZL5lxGXEOzc/fjU/RBLU=; b=Ba7m7WPI9Y9S2Zd2oS8+oKK/Bm+TWDbU+AS/KSE9/ewIVWXuE9J4zToT9t2kmqzEMP Rl3q2p8uug8WIwrXVW4PdBnNP+0Xswa268phdUATkLgn5tDbf9YLUCjOz57AHeryhycv q2kiNgV3H5bZ+ArTuTOlOllthKEZGRxS2U/N0/gFpeKSW0YZaDcUQxi2kgDhZ9pKAKTW 2fQl6SlWltTB30MeSQMUFb73B2u+b7mvBvmTiiIqOMnVvv0L4DwJEvS2LFPEYep/F+U9 Z2Z4lVXMh+1p3rPDaoHp0nbAUKm4WKiDMciLyszcmXkUENahxgXvoA+fQj/DLtObaAGI DZLw== X-Forwarded-Encrypted: i=1; AJvYcCWnNUjdkqBVuuTlBURax1yJTjtnocuELgE9W48DMJrvoYsTm3UKgtwb3Ikt24JP3Niq0H0PJLHpAT4sz24=@vger.kernel.org X-Gm-Message-State: AOJu0Ywxi/TKeg7Y4Qog9yqGMdlOG6olAeD01anlMpIoRaL66TG6GjAP FLMFN7fAHVs1jARyTIFQZHb5wpXD9GXImE8Cu1dT8mtuRIx/u8rsb2yp2XpY4zqWFHZQ+9bZ8WG IHg9NR5/dC2rQ//E2TH5+0I1N2gfRoKTXwkhSRltNcwQG1XH29QqwZbmPA/M9QQvs2/4= X-Gm-Gg: ASbGncs0Y/jIIhaLNX6zXFZlRBOrKw+SQSN8uWdebTmKr4J6efEQPh+vlYwZXoUNaS5 epAXkws2YWsIffVHYfihp7FUrBe7seUhi9X8gx8ZeFcRan0F+F3H8yRXT7ARHJJrcljT7ltoGeL slKvSYX00n8TRk5yEF9QTFYjHrFIG12F29+2fqCxLFelgQMjjsYOm1EHgbuA4kI4iYrG7yVsQqi pDdeMwxDm4Efua4nySI2LJslK9QYEGyNdci9V2WNKcZKFjHI5ofefzpZSAAoSufaSEJXwY3emFf en44MxjJ3G/s9rNsMMhl+pRULx086dziC5e4aYfXI7HQpGgTjyYg7h+7zZDFjK/byqUM3iY+Rmm rjVs0dvj7rDFrBMiluHADJ+ncWELAdPcHXezn X-Received: by 2002:a17:90b:5105:b0:335:2eef:4ca8 with SMTP id 98e67ed59e1d1-34733f4f4d2mr2064651a91.33.1763722939912; Fri, 21 Nov 2025 03:02:19 -0800 (PST) X-Google-Smtp-Source: AGHT+IG59KZ4p85B6hnKsOT7LNR+gLfVh2i6ZpcnVtCnuOzLHgmlYt426BtfHo0OSPitEsOKIpTylw== X-Received: by 2002:a17:90b:5105:b0:335:2eef:4ca8 with SMTP id 98e67ed59e1d1-34733f4f4d2mr2064560a91.33.1763722938338; Fri, 21 Nov 2025 03:02:18 -0800 (PST) Received: from hu-mojha-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-34727d5208csm5191165a91.15.2025.11.21.03.02.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Nov 2025 03:02:18 -0800 (PST) From: Mukesh Ojha Date: Fri, 21 Nov 2025 16:31:16 +0530 Subject: [PATCH v8 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: <20251121-kvm_rproc_v8-v8-14-8e8e9fb0eca0@oss.qualcomm.com> References: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@oss.qualcomm.com> In-Reply-To: <20251121-kvm_rproc_v8-v8-0-8e8e9fb0eca0@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=1763722879; l=3311; i=mukesh.ojha@oss.qualcomm.com; s=20250708; h=from:subject:message-id; bh=uRDqwnYIZZpnXYckK3LJYkQkz8Z734oXrxzphtus+RQ=; b=bMwf2FLHj8RPbpZG+cXl3fWpqLeQampacwDjzyhZVfIMVzg+z8rQpzFE0ChO4u0+CIrgy2ldK 1a3KI/mkj+5Ag75g9v7vrNlqR8i9pH3jYgIFg4EaM1KNQJoZhUCGav/ X-Developer-Key: i=mukesh.ojha@oss.qualcomm.com; a=ed25519; pk=eX8dr/7d4HJz/HEXZIpe3c+Ukopa/wZmxH+5YV3gdNc= X-Proofpoint-ORIG-GUID: g85yyY2bJ5Wr_iVArYj-5tQWA30e1cu- X-Authority-Analysis: v=2.4 cv=SPlPlevH c=1 sm=1 tr=0 ts=692046bc cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=OUqdy03oI2q1KQI58CwA:9 a=QEXdDO2ut3YA:10 a=eSe6kog-UzkA:10 a=iS9zxrgQBfv6-_F4QbHw:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTIxMDA4NCBTYWx0ZWRfX1V3jVesXgo10 mzyK79GQ+tTQNcJipZSHCJYeFTZcxYs1ajOApZZvL0/4JvQEz1ShtIVtatEpCKI1OdNV+Mmp1eD 9+jGfp8Yg1jHHtXvDg/Sl6PWtYmsXhOk+gvNDAhYJiKOEYOva05bqYd4r5c+C/4H5dT6IG5l7kh 1LbcBsKjbzk2VaPx280MjnyLeyr+UoQCrDyGemyYBgVW1OgLD3kVQPW4aGRRNJ53PbtsmPRAYcc PM+F2t2/llDsBnuAGGHpgT8sN5LD3FSrESBs51+GhtrvBjruKCUS0PufriMJ1g6BHMnKY7v4sFG yYD/pTozZFk6hcdf0uvqGGA4vSU1w8tcTyBSK//Qn5IrGb9fb95fyMdpZGJYmLWYNknFxK3dNkQ jk6+5bgKRy8aO/BJeSaB71eqkF2NTQ== X-Proofpoint-GUID: g85yyY2bJ5Wr_iVArYj-5tQWA30e1cu- X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-21_03,2025-11-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 priorityscore=1501 suspectscore=0 lowpriorityscore=0 adultscore=0 malwarescore=0 spamscore=0 bulkscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511210084 All the Lemans IOT variants boards are using Gunyah hypervisor which means that, so far, Linux-based OS could only boot in EL1 on those devices. However, it is possible for us to boot Linux at EL2 on these devices [1]. When running under Gunyah, remote processor firmware IOMMU streams is controlled by the Gunyah however when Linux take ownership of it in EL2, It need to configure it properly to use remote processor. Add a EL2-specific DT overlay and apply it to Lemans IOT variant devices to create -el2.dtb for each of them alongside "normal" dtb. [1] https://docs.qualcomm.com/bundle/publicresource/topics/80-70020-4/boot-deve= loper-touchpoints.html#uefi Signed-off-by: Mukesh Ojha --- arch/arm64/boot/dts/qcom/Makefile | 10 ++++++++ arch/arm64/boot/dts/qcom/lemans-el2.dtso | 41 ++++++++++++++++++++++++++++= ++++ 2 files changed, 51 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/M= akefile index 6f34d5ed331c..56efd90b7a5e 100644 --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile @@ -37,6 +37,10 @@ lemans-evk-camera-dtbs :=3D lemans-evk.dtb lemans-evk-ca= mera.dtbo =20 dtb-$(CONFIG_ARCH_QCOM) +=3D lemans-evk-camera-csi1-imx577.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D lemans-evk-camera.dtb + +lemans-evk-el2-dtbs :=3D lemans-evk.dtb lemans-el2.dtbo + +dtb-$(CONFIG_ARCH_QCOM) +=3D lemans-evk-el2.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D monaco-evk.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D msm8216-samsung-fortuna3g.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D msm8916-acer-a1-724.dtb @@ -142,6 +146,12 @@ dtb-$(CONFIG_ARCH_QCOM) +=3D qcs8300-ride.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D qcs8550-aim300-aiot.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D qcs9100-ride.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D qcs9100-ride-r3.dtb + +qcs9100-ride-el2-dtbs :=3D qcs9100-ride.dtb lemans-el2.dtbo +qcs9100-ride-r3-el2-dtbs :=3D qcs9100-ride-r3.dtb lemans-el2.dtbo + +dtb-$(CONFIG_ARCH_QCOM) +=3D qcs9100-ride-el2.dtb +dtb-$(CONFIG_ARCH_QCOM) +=3D qcs9100-ride-r3-el2.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D qdu1000-idp.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D qrb2210-rb1.dtb dtb-$(CONFIG_ARCH_QCOM) +=3D qrb4210-rb2.dtb diff --git a/arch/arm64/boot/dts/qcom/lemans-el2.dtso b/arch/arm64/boot/dts= /qcom/lemans-el2.dtso new file mode 100644 index 000000000000..af35039946e3 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/lemans-el2.dtso @@ -0,0 +1,41 @@ +// SPDX-License-Identifier: BSD-3-Clause +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ + +/* + * Lemans specific modifications required to boot in EL2. + */ + +/dts-v1/; +/plugin/; + +&iris { + /* More driver work is needed */ + status =3D "disabled"; +}; + +/* + * When running under Gunyah, remote processor firmware IOMMU streams is + * controlled by the Gunyah however when we take ownership of it in EL2, + * we need to configure it properly to use remote processor. + */ +&remoteproc_adsp { + iommus =3D <&apps_smmu 0x3000 0x0>; +}; + +&remoteproc_cdsp0 { + iommus =3D <&apps_smmu 0x21c0 0x0400>; +}; + +&remoteproc_cdsp1 { + iommus =3D <&apps_smmu 0x29c0 0x0400>; +}; + +&remoteproc_gpdsp0 { + iommus =3D <&apps_smmu 0x38a0 0x0>; +}; + +&remoteproc_gpdsp1 { + iommus =3D <&apps_smmu 0x38c0 0x0>; +}; --=20 2.50.1