From nobody Tue Oct 7 07:23:05 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 97E03224AED for ; Fri, 11 Jul 2025 23:43:17 +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=1752277399; cv=none; b=rIXZAoarlbvqcxWripGvWZ4KKW0j7UsOHRLXl/0Ej7LhF0AmBqMOHq/St2L0mtQKNOrxi09XvomLChYnXNlU52VDgHb6WdvLdfmTvIdI5cRmNjR9cPFowxeHOOMn/mnpzC89wH8Z9bRwedrpX6UYWuEXfKzgcB2mjWjURKjeNGM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752277399; c=relaxed/simple; bh=o+TxdKplz7IMXK+MXPpI9M1keWjAcNlhY5NAxQmThus=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=MYs470sCINFBt8zgWJuGfiAS64Fj8qGu93dYtvC3BdWHlq+6zSN8uOU32NYy71zPYKjLmwzVPQyq3h2hvW1lwDTSERQmXz+pjlc9PSyGgLnazuBT5oCD8Kqyoz4iG/LOdjhu4ifWkSYtS/udwBSqkiQAadWYEziSBguXOQQ0J5c= 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=gGiwmUys; 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="gGiwmUys" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56BAvJ0c016818 for ; Fri, 11 Jul 2025 23:43: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= +OCt6BMCpo5v7w/ZAICBixmXIHidhh0RrXTKdHTXIxw=; b=gGiwmUysF5M/RsNp QvbJMX3YsNt/rPD53/kEILaFzH/5UF3Aysw692cwQllFe5TI2dZt5BQ3LA4awlaq hZlFYBs3olkLuZrGJ7BbhDU4/cIdCcQwhJ5DZ/4H663wM5Fu4tlhvBL2ARm6PdyA AEDrKKybErlw9w45qtnriHtdrneHKctfm2HEhQsBTXflP5MjizIESqoh4ydBMuaM JokfMzOj7TNshoINkXak6TQZuHdf77nmbHW+EkU03nwsgZz+91kHDtvNsO4iuOl1 YofSg4i53NWUnJrGv6Ff8dhBQ1w/s47DEZKtFGHRT9oGB6TLIBGjXluRr3cP4m0W hr/c4w== Received: from mail-pf1-f199.google.com (mail-pf1-f199.google.com [209.85.210.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47smapa51u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 11 Jul 2025 23:43:16 +0000 (GMT) Received: by mail-pf1-f199.google.com with SMTP id d2e1a72fcca58-74ea5d9982cso2030605b3a.2 for ; Fri, 11 Jul 2025 16:43:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752277395; x=1752882195; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+OCt6BMCpo5v7w/ZAICBixmXIHidhh0RrXTKdHTXIxw=; b=CZwTVJ8o6CTUMMXpj/z67qJgwuTaokzr7xIaAmRmIlt4HihbooUMlxisYWrxyuIuF2 SmguOMMXdSQngftUyL3cjo9y4KEaaGR5phouEn1DiWVgNBNY/v5kk4DymTg1F1+Tz5SB xulHiKB4AVKoWwtJlD630IBaSryEp92VmrvnejK88VULxuglnladuyMaBg6hZ1di2Pw2 Pbootw988aQz+zxl03ngKakpTTNZg0qsft3hFv6K/JtY6IFnAcalGG13izZ6Ybsgjfpv hUQ4VgsKBGG2xLa6YaV+Jdh7D69omWqJMxFQadakSk7veivzoHDXfplIfOKu1TemiyeF TBPQ== X-Forwarded-Encrypted: i=1; AJvYcCXxSmsMzFLinOpRlJd/aQ7bsIXkTCrisl2Y/GD2f8Lpr9n69MGiPctvqjfFCCUGjrngtiy/TRrgXJtvfFc=@vger.kernel.org X-Gm-Message-State: AOJu0Yx9E9nt1F8rfyWGCqympYfBaN1ADrqO5D8a6uCpMo/tvzy2xAuL 5dNGUKEkIxDIpfjnzK41FZ8OURx+W6/ljrMph51toC8pO+EWax6M1M+FpBFwcUDS/u/WACvhUfH AkQu/2uj0LbC6Uefv9PY7izfou1lGH1fwUNSNrupgO+9jazLzqfBVjM7Kf+5S4BI8cxk= X-Gm-Gg: ASbGncuo58ggn4xgKJrfHEs+O6VjeeX/4yhYNoRVQ8jbEdtte5c65eu/R/08sSniuDW X7+ldwC5CfaHM/o3lueYEWUB9ULQTVHXRokLVHAo4jAaHP1ffQuBIdmtp+HAk2zo6e5gGYmzcym I3Qyp9Z3EktHBWkG7MMr6pRFVWGkY/qDLszAS9d+WMRY4cCBeC5bE/YkCHyHQtN/2n9MzaRXr7n FOxUjs9vjetbAHkDDDrOnyxAQoqvH25zaaBVTxyBDeJKIAfIyVsco+hb4ysH/Kcuyd0zDsu33BR 4Fko3Mu6tfsmtduqMG7A9pF+tSClI3Aw0mVzgrbxNAEnGbuvt1+/FQYXp6vRneJeI+O2iiZ4I+k = X-Received: by 2002:a05:6a00:178c:b0:749:421:efcc with SMTP id d2e1a72fcca58-74ee0baf892mr5310880b3a.5.1752277394889; Fri, 11 Jul 2025 16:43:14 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEXejt1aDsFNoUQC63cutRdVOsMdt5NZCZV6i0r5vMKv23uKSleEdP9WbHLGSbKiYefG+m3Gg== X-Received: by 2002:a05:6a00:178c:b0:749:421:efcc with SMTP id d2e1a72fcca58-74ee0baf892mr5310853b3a.5.1752277394266; Fri, 11 Jul 2025 16:43:14 -0700 (PDT) Received: from hu-krichai-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74eb9f1a851sm5869781b3a.82.2025.07.11.16.43.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Jul 2025 16:43:13 -0700 (PDT) From: Krishna Chaitanya Chundru Date: Sat, 12 Jul 2025 05:12:37 +0530 Subject: [PATCH v6 1/5] arm64: dts: qcom: sc7280: Increase config size to 256MB for ECAM feature 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: <20250712-ecam_v4-v6-1-d820f912e354@qti.qualcomm.com> References: <20250712-ecam_v4-v6-0-d820f912e354@qti.qualcomm.com> In-Reply-To: <20250712-ecam_v4-v6-0-d820f912e354@qti.qualcomm.com> To: cros-qcom-dts-watchers@chromium.org, Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Lorenzo Pieralisi , Manivannan Sadhasivam , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Bjorn Helgaas , Jingoo Han Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, quic_vbadigan@quicinc.com, quic_mrana@quicinc.com, quic_vpernami@quicinc.com, mmareddy@quicinc.com, Krishna Chaitanya Chundru , Konrad Dybcio , Manivannan Sadhasivam X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1752277383; l=2217; i=krichai@qti.qualcomm.com; s=20230907; h=from:subject:message-id; bh=o+TxdKplz7IMXK+MXPpI9M1keWjAcNlhY5NAxQmThus=; b=ZWca0Ddc7W5T0rXsIYEqzD9JUgbVM3QMnjkdtO8USzHrEMvozJ7XuYmNl7Y+kfD1Tv2FYNSEw S205oL5qy1+AEYJSU4szvvogE6297IfGIGQBIXjZUw4VoIvTEccBMuh X-Developer-Key: i=krichai@qti.qualcomm.com; a=ed25519; pk=10CL2pdAKFyzyOHbfSWHCD0X0my7CXxj8gJScmn1FAg= X-Authority-Analysis: v=2.4 cv=Ar7u3P9P c=1 sm=1 tr=0 ts=6871a194 cx=c_pps a=WW5sKcV1LcKqjgzy2JUPuA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=Wb1JkmetP80A:10 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=bvY3E1ByFFb03tV5gjAA:9 a=QEXdDO2ut3YA:10 a=OpyuDcXvxspvyRM73sMx:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-ORIG-GUID: OXsMIHuIvoypSJSeyrb_TnKkCW88IU4A X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzExMDE4MCBTYWx0ZWRfX66olSX+HPRVE mTnlFjD1DnwM3HTaoRsu5bdvPkTm/4X0iJdhkaQd1FNLKqFRKskc7G8sAIsmtjmSn8gllDwOWcq XtwX0DbHzCxQzSw1l1ZX7hZ55RhBNFydgntXYCA9sF0h0MQ1vXD0UxH+tCd2OSygKTfU2cDtEiM BofhW5qx6F0nFlU+MwLVkfcdopBb3vZYjhhjHiY1AuG4IQiqA9wVaaA4t/hu8S8ueilCznV/iqL xb001n93GPARN+mkieByOjliBhOrlzSRRRllAKphwhSOWcLnv1xEi0VAU90z5zMGy9yMVgaoWc9 IOVxOW2Cm0fOvOJTlZUKifjHDYqy6M0nX6lY0fDHzWAjmQUCJ6twqUbKMHv0cps270VFNx0A/6h 4bSncpHEXzLTexhbVnmIE0Ztdp6mygRIzr0526Cb5JorfOaVETeUCSgAgifL4BHvP1Fji4c/ X-Proofpoint-GUID: OXsMIHuIvoypSJSeyrb_TnKkCW88IU4A X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-11_07,2025-07-09_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 malwarescore=0 bulkscore=0 lowpriorityscore=0 spamscore=0 impostorscore=0 suspectscore=0 mlxlogscore=825 clxscore=1015 adultscore=0 phishscore=0 priorityscore=1501 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507110180 PCIe ECAM(Enhanced Configuration Access Mechanism) feature requires maximum of 256MB configuration space. To enable this feature increase configuration space size to 256MB. If the config space is increased, the BAR space needs to be truncated as it resides in the same location. To avoid the bar space truncation move config space, DBI, ELBI, iATU to upper PCIe region and use lower PCIe iregion entirely for BAR region. This depends on the commit: '10ba0854c5e6 ("PCI: qcom: Disable mirroring of DBI and iATU register space in BAR region")' Reviewed-by: Manivannan Sadhasivam Reviewed-by: Konrad Dybcio Signed-off-by: Krishna Chaitanya Chundru --- arch/arm64/boot/dts/qcom/sc7280.dtsi | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qco= m/sc7280.dtsi index b1cc3bc1aec8b769021cdc25c8d66845e7bebe70..def0254ee0b6ee78153b9b10f53= 4ddf8d6f1b50a 100644 --- a/arch/arm64/boot/dts/qcom/sc7280.dtsi +++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi @@ -2202,11 +2202,11 @@ wifi: wifi@17a10040 { =20 pcie1: pcie@1c08000 { compatible =3D "qcom,pcie-sc7280"; - reg =3D <0 0x01c08000 0 0x3000>, - <0 0x40000000 0 0xf1d>, - <0 0x40000f20 0 0xa8>, - <0 0x40001000 0 0x1000>, - <0 0x40100000 0 0x100000>; + reg =3D <0x0 0x01c08000 0 0x3000>, + <0x4 0x10001000 0 0xf1d>, + <0x4 0x10001f20 0 0xa8>, + <0x4 0x10000000 0 0x1000>, + <0x4 0x00000000 0 0x10000000>; =20 reg-names =3D "parf", "dbi", "elbi", "atu", "config"; device_type =3D "pci"; @@ -2217,8 +2217,8 @@ pcie1: pcie@1c08000 { #address-cells =3D <3>; #size-cells =3D <2>; =20 - ranges =3D <0x01000000 0x0 0x00000000 0x0 0x40200000 0x0 0x100000>, - <0x02000000 0x0 0x40300000 0x0 0x40300000 0x0 0x1fd00000>; + ranges =3D <0x01000000 0x0 0x00000000 0x0 0x40000000 0x0 0x100000>, + <0x02000000 0x0 0x40100000 0x0 0x40100000 0x0 0x1ff00000>; =20 interrupts =3D , , --=20 2.34.1 From nobody Tue Oct 7 07:23:05 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 BEE01225414 for ; Fri, 11 Jul 2025 23:43:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752277404; cv=none; b=aBXL0iMeo6w4QMXHnnnLyuknRLDtvV1w3jrMNHNvbPpdwGfuuBnKDNTDJfFUnjlR4vwv9M6t2mdqpp3MdCjIRhYnDks3iKQ9wINbHXbupn9gzhmESP9dy7jIW/dpFzvDOpsISTJ7UHMh+bmacBbVC0cNsL2hraxsM62eCZSLYQQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752277404; c=relaxed/simple; bh=VApOdYdcIcGsjxQz18hzzta0BjkroIslxQvJ91rRnDc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=MxtdUREuAkWcyG72xjozavj0acrrz5hiNAEbMIU7rvJ/bql1fBhsujYNuGWGKTd4GiuNiHPY0HiHny6W8Q5nqYWHiv+fSYnqoqEGjJYkkDoftIguihecKAMgS/P47HrWKWpSGsNNaWjB+v60fxOH4JH38g/MVAKdUc1W3aGomCc= 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=jdrK+Uzj; 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="jdrK+Uzj" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56BAurj7026053 for ; Fri, 11 Jul 2025 23:43:21 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= AKPr8YppJhWZXY5nU95xm+IYbu7XiW0DjkBfDCJ5EMw=; b=jdrK+UzjvL/E3jCd sobHx1hG2+zp8pDF0U5w2dEl+/wwqS9ROkRFQU4xiOG8CY0/jiJhsOdMvOPVgTNA iBTNG6YbxcjfVagLWaqLhBlUy38IgK90ZmmNXUycIaBLnhR9ooSt+IaVfb6yP1LT Q4jIaJ8wo9hcgXFEwj9P2StAdBs/RDT1R1pdq3DnhEGkCzPNWAWwySfwgxeTdhPH +rELYQv4JP5e93M08QeYR/hkob7zMc3cAPCEEf7IJOEvufF7p5u9NM2oEbs+4jov xwC2+JMehjjswYO43SxUjuQmqbzOd8+9rhxjENIphkKXLaLF3vL8h+V7Hjmr7Ix2 kdpiCw== Received: from mail-pf1-f199.google.com (mail-pf1-f199.google.com [209.85.210.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47u1a2htcx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 11 Jul 2025 23:43:21 +0000 (GMT) Received: by mail-pf1-f199.google.com with SMTP id d2e1a72fcca58-748a4f5e735so2533333b3a.3 for ; Fri, 11 Jul 2025 16:43:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752277400; x=1752882200; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=AKPr8YppJhWZXY5nU95xm+IYbu7XiW0DjkBfDCJ5EMw=; b=Yuu0P8nNnjEMMO7TG+541OwUAWjbl3HDHDe4XQAgROb7dAoNEyQzUZhmZ5y6/YmHuI z7kTWF5Gb3r5xvsX6qgTFNQaz2z46XAdjjOCWiWPaXlEmiySr/MWpby13y3WYHB9uNYe efnuoilb8zTjnvtecQQhwTHBowWMXnQVfaOQjIzNWO99cWm9+gmIxCHMM8/8BsQVOTdk FVvTnaXl4HRBaNgoK+xQ2Um46oSxAd/fTKnOeEhzStgEZmJcKc5DQAj6UqQcR4yebn0K XpHCfMD6GoqzANT+q5wj3Q9qWjEIYamIBRqRmLsIzQU10Tp1Z2va4xPs8EWNmTi3Js2o hvJg== X-Forwarded-Encrypted: i=1; AJvYcCXb23UtlcDRN/xEUjpG9NCNJiKxlajwTEp/JHhZqd5tnrYAmOhXsIKb8wOnHDTQw2hhXsaCbVVeS9De7ZY=@vger.kernel.org X-Gm-Message-State: AOJu0Yxt0Al9YVVCt2yD31MlmM/iUoR0MJ463N/wbtn05o+vucp4pOd4 bP6KwdSfQ2lUuvhvibm2gbjFgIH+T88Fmg4wvdxUGJZRWWc5JnD2KulhxZTPAEKsTjPK5OLv4JJ Q22PiPYn/ReHpLTuomcCrQnE90Jz8y7fBgr6CsuDi53UyflhNq+N+D/WvtmgSq2MofKE= X-Gm-Gg: ASbGncvaz8S0/O632fZ6SX1zLxsUQ36CYKKTTcl8uvgW77mdo4TaPbFZO1Pq37Gk22N Cjn1khw6qDmKpigxhNwk09jpcYmfPQTkG/LTSC3WkLAETBmEsJiaq8Nyr0xfuVwKIicaa/+kqdQ y/POvBgawA9jbOxaIkTNdjU9U51JoevI4rryjcjYJq6d+DcsugffJe0qTUXowS6ECtqQt2iGRK2 8VOmhVB6gI3X5BvwXNZyBSy/0yLRfBTZkRiH6baWQ0eHJTXxubLjJ94B5vP50n6Gq/TptqT7qw+ A+vhrHGZSYaZc2bYy5hFbSN02q0f4nK7QTSkl7olng4+wIGxTK/SOqLtVeVhlCc/fmTlmgxUAWE = X-Received: by 2002:a05:6a00:b90:b0:73d:fa54:afb9 with SMTP id d2e1a72fcca58-74ee07a860amr6782998b3a.7.1752277400109; Fri, 11 Jul 2025 16:43:20 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEb06xUgDKc6nvtu6F7d1FFcwYCWZk/21iviJxFEIvxpjW4Il8TzccgU8iuj1gs2UF1mWMStg== X-Received: by 2002:a05:6a00:b90:b0:73d:fa54:afb9 with SMTP id d2e1a72fcca58-74ee07a860amr6782964b3a.7.1752277399654; Fri, 11 Jul 2025 16:43:19 -0700 (PDT) Received: from hu-krichai-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74eb9f1a851sm5869781b3a.82.2025.07.11.16.43.14 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Jul 2025 16:43:19 -0700 (PDT) From: Krishna Chaitanya Chundru Date: Sat, 12 Jul 2025 05:12:38 +0530 Subject: [PATCH v6 2/5] PCI: dwc: Add support for ELBI resource mapping 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: <20250712-ecam_v4-v6-2-d820f912e354@qti.qualcomm.com> References: <20250712-ecam_v4-v6-0-d820f912e354@qti.qualcomm.com> In-Reply-To: <20250712-ecam_v4-v6-0-d820f912e354@qti.qualcomm.com> To: cros-qcom-dts-watchers@chromium.org, Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Lorenzo Pieralisi , Manivannan Sadhasivam , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Bjorn Helgaas , Jingoo Han Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, quic_vbadigan@quicinc.com, quic_mrana@quicinc.com, quic_vpernami@quicinc.com, mmareddy@quicinc.com, Krishna Chaitanya Chundru , Manivannan Sadhasivam X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1752277383; l=2000; i=krichai@qti.qualcomm.com; s=20230907; h=from:subject:message-id; bh=VApOdYdcIcGsjxQz18hzzta0BjkroIslxQvJ91rRnDc=; b=DBLoVj2yl3UK6SydTaV5OzErfZ3Z/qouU/xtsz0ugPY9sudY8Hw/jiPQ69nIm81Bc2ZsRHccE ajH2rmO3Y5EAHz2dqXcrb/neCpc/DDx+X0EkbJAZqhYhGDqdZ3mUmDV X-Developer-Key: i=krichai@qti.qualcomm.com; a=ed25519; pk=10CL2pdAKFyzyOHbfSWHCD0X0my7CXxj8gJScmn1FAg= X-Authority-Analysis: v=2.4 cv=MKJgmNZl c=1 sm=1 tr=0 ts=6871a199 cx=c_pps a=WW5sKcV1LcKqjgzy2JUPuA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=Wb1JkmetP80A:10 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=De8H20xVS9kR4mXr8yMA:9 a=QEXdDO2ut3YA:10 a=OpyuDcXvxspvyRM73sMx:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzExMDE4MCBTYWx0ZWRfX5QxHRd0xyqsU Gy9VE/5yQN0CNjJgXlIRb56EkyMfIwy9IhW0oFvI82p+zTDeeG34LsHF7q/AdORyvTdDyZVp78h 8Trj6Uy12tjfRix6wlWVUz1TdQWud3V5s6srU0Y6FgIJa7og65sIJpiG7iv+nKn+6pu52jYYpfn Bj+k+7csRslkANjFL9xIJ/xiUgV2ok6HjmbYUcKb/arZneFXKdro1mF4wTgRf9EDBwfEhf7y2iy Q57h64II7LVh8uYpPVbyFi0wCo61dHqa5q/sgU2gFJE71gLKArTJ2Cn8+VKaz1Az0FnQitsZ+Oo 93lKU9KBykcUwatlqSmyL+in2o8w+OR1EV8MboSycQU7xTFsPwb+yd1sfkT/cT8q7Ml3J459zNg fEWK9njlzExceR9y3OZ+cVfFBpZgQyeK5eyaI6oYWxtBwlR4z2831+epWGdLNyK/bvg3iYCF X-Proofpoint-ORIG-GUID: 2WKZfxStbEQ9gmmPTDWAg2egoXUtihlL X-Proofpoint-GUID: 2WKZfxStbEQ9gmmPTDWAg2egoXUtihlL X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-11_07,2025-07-09_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 bulkscore=0 phishscore=0 mlxlogscore=999 impostorscore=0 mlxscore=0 lowpriorityscore=0 spamscore=0 adultscore=0 clxscore=1015 priorityscore=1501 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507110180 External Local Bus Interface(ELBI) registers are optional registers in DWC IPs having vendor specific registers. Since ELBI register space is applicable for all DWC based controllers, move the resource get code to DWC core and make it optional. Suggested-by: Manivannan Sadhasivam Reviewed-by: Manivannan Sadhasivam Signed-off-by: Krishna Chaitanya Chundru --- drivers/pci/controller/dwc/pcie-designware.c | 9 +++++++++ drivers/pci/controller/dwc/pcie-designware.h | 1 + 2 files changed, 10 insertions(+) diff --git a/drivers/pci/controller/dwc/pcie-designware.c b/drivers/pci/con= troller/dwc/pcie-designware.c index 4d794964fa0fd3531e2f35f16a8a765c00f9b416..f7bbfd91b03b5e18031983ff4eb= d829f450b8154 100644 --- a/drivers/pci/controller/dwc/pcie-designware.c +++ b/drivers/pci/controller/dwc/pcie-designware.c @@ -167,6 +167,15 @@ int dw_pcie_get_resources(struct dw_pcie *pci) } } =20 + if (!pci->elbi_base) { + res =3D platform_get_resource_byname(pdev, IORESOURCE_MEM, "elbi"); + if (res) { + pci->elbi_base =3D devm_ioremap_resource(pci->dev, res); + if (IS_ERR(pci->elbi_base)) + return PTR_ERR(pci->elbi_base); + } + } + /* LLDD is supposed to manually switch the clocks and resets state */ if (dw_pcie_cap_is(pci, REQ_RES)) { ret =3D dw_pcie_get_clocks(pci); diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/con= troller/dwc/pcie-designware.h index ce9e18554e426e46f0376af22ffc99e329c2ccb8..31b2a7e9dafa4ab481434068bde= 0775837babb4f 100644 --- a/drivers/pci/controller/dwc/pcie-designware.h +++ b/drivers/pci/controller/dwc/pcie-designware.h @@ -497,6 +497,7 @@ struct dw_pcie { resource_size_t dbi_phys_addr; void __iomem *dbi_base2; void __iomem *atu_base; + void __iomem *elbi_base; resource_size_t atu_phys_addr; size_t atu_size; resource_size_t parent_bus_offset; --=20 2.34.1 From nobody Tue Oct 7 07:23:05 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 F058422E004 for ; Fri, 11 Jul 2025 23:43:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752277409; cv=none; b=Wutn5Vleb/ppz7DwYN0tYKm8w79Q+syS2MPXLYENM59VUCxLC2KC00XRT8XMKpLVf22AqnvopB0IiTI6wWeFYpRcc9/QLM44RzUsutXTyTHYfDBmrLrea4HzIEchxQpQLl0WRLnrlaTMCFhDjCq5+KzZ5i5CtXTeA8CKDKwHsVc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752277409; c=relaxed/simple; bh=NBnIXgXK6Trlsnr6CsojwAon1qRSKMZl8uFGRJ7oMJc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=cyfbDJL7bKzO/+YJ7CQXrUOXPZSOXiFopR3l0gHHYtiFmcE6ajm0+pwS/IKTpi3BDRQNjqqaYxI3YsQBnvmdAEyfjwt3HryDy1B6k3LGnPbm2uRq0liEvAdfd+IdOiKCW24fl01MNkicdhLx1nS6odZzzWe95av9J7j0vbQJZO8= 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=mDN3r2zU; 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="mDN3r2zU" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56BKBmEK016773 for ; Fri, 11 Jul 2025 23:43:27 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= w5OXNXJSNeQPojGoozGDIex2yCVHfTQL7ulled+ZDo4=; b=mDN3r2zUac4ld6tt aUahx2g83rdC3HLqRpYCAhxbxC1/syr6NWrnvI9H7IxB681q8Ld7+Locdl0sNyrl +hgUh9MFAEDrRmZnnG8Ez4EN+GXjdkfI1tbUI1/V1E+/jPThkWzHbhe72jp19nA3 NptliXHzS53b5mr0eCLto3eJ3HV/qC4kvS3CSJbXXdsC6r/9PduieN/o+5LAwPtR beSeG/f63HIzNLKuz9D3UQdkxHWlOlYY4YnriZyLZBm09mtThK3N5d3oIpSDfDtS AlWji5RDEUsMJXo7pXb++haDt3O/eLL+Ub3dM3N4pdyeutlYV7XshFvRMhRhTYqV DW77+Q== Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47u1a2htd5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 11 Jul 2025 23:43:26 +0000 (GMT) Received: by mail-pf1-f198.google.com with SMTP id d2e1a72fcca58-748cf01de06so3909952b3a.3 for ; Fri, 11 Jul 2025 16:43:26 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752277405; x=1752882205; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=w5OXNXJSNeQPojGoozGDIex2yCVHfTQL7ulled+ZDo4=; b=JOJyohK5b+Pt7wKgCvZ0Ky3eNqVt8uomzlFa0jHgGHADZH5RZaYiC4Q5hZ2RmEVXnA 30yOe8pNY0pWOuKxQYddSCqjPygf6UttHAum3lwvfPUGlzOoF+pN+GnKs/T7gxWEiFmv sSvhGk0RN3k+IRyPs3h29pFhUIpX5ucjaTnOYBj2TF7Db4qGU76FjR8pums/XBRh/jd8 VMHeUnJrOxU3K7WoRbZ62XGCOO9h6VMxvXhjXVIM7xHbLxfHTIWy2s1pkJeefI7hNLM7 Vp/VvdFiEKSCEy1/JrelYDe5kntyMzOeZTObemJeF5ekVbI4VzR12N2NzoM8wePRBT2F MFdg== X-Forwarded-Encrypted: i=1; AJvYcCXIylUwgNPFGc5DvPozIp+K7LeUskfn8uIVuWe/6a8rZRW0vvS5xFsIEDrG6S3rSNsjxAPLE1Rx/F9dhro=@vger.kernel.org X-Gm-Message-State: AOJu0YxDRNQpwTOJ4HFi2wUvHtW3pDCFtFPm0AJoY3ntsjtgS0d8n3Cs CahzYkoEU9R8sYmxcRRr+eWJZE6DwqCll0z8FYHTO1h+q6+4lVELO8U5durENMK7D3x1BRDsY92 p1geGkzSsBw+nI6CKotI1PXsdQDeFhzp7tzWgrwxoTq3t7UlgdIcDSo9M93gvzh1+xyY= X-Gm-Gg: ASbGnctS5HopwKHo+dBJ+h1eFKQXCN8IzwjBchnbdCBD0v3wglx2ouMJQFW59tXKt3w D6K2coSUpajimpQIiBk0hNDTttqJGrxczEQzLtvcKB3raLssqWlFrWPhNIV3Ak9pYD4EloGerVQ uLktPfrocUXB4vPn7qLIJsWMDC1izUqZuvhhtEFaVZTpQ7IOrwXAZtY9F2TH5dtDXxJoWxeh/uC tBni1G7vv4ZqSJTbt9bzkFKya7NN02madHkWtCH8FS7LOoHee8ju5Q1g503Eri5HSFtP7wh0uFT 4Sd3iMLG4oP/+ivionncbik3mQnl/gNE5xY5CnPVviUF5Vv6pwjXsJNmnn1qwmktnGRRlMJlgpc = X-Received: by 2002:a05:6a00:391e:b0:748:311a:8aef with SMTP id d2e1a72fcca58-74ee284c6f9mr6864763b3a.12.1752277405415; Fri, 11 Jul 2025 16:43:25 -0700 (PDT) X-Google-Smtp-Source: AGHT+IESWwcWYL5Go6OZu92auIZBwE0qGU4Adi+hbhTx59gkI6Or2b0dENFe4wyqlSvOE5PeIEBeYA== X-Received: by 2002:a05:6a00:391e:b0:748:311a:8aef with SMTP id d2e1a72fcca58-74ee284c6f9mr6864718b3a.12.1752277404948; Fri, 11 Jul 2025 16:43:24 -0700 (PDT) Received: from hu-krichai-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74eb9f1a851sm5869781b3a.82.2025.07.11.16.43.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Jul 2025 16:43:24 -0700 (PDT) From: Krishna Chaitanya Chundru Date: Sat, 12 Jul 2025 05:12:39 +0530 Subject: [PATCH v6 3/5] PCI: dwc: qcom: Switch to dwc ELBI resource mapping 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: <20250712-ecam_v4-v6-3-d820f912e354@qti.qualcomm.com> References: <20250712-ecam_v4-v6-0-d820f912e354@qti.qualcomm.com> In-Reply-To: <20250712-ecam_v4-v6-0-d820f912e354@qti.qualcomm.com> To: cros-qcom-dts-watchers@chromium.org, Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Lorenzo Pieralisi , Manivannan Sadhasivam , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Bjorn Helgaas , Jingoo Han Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, quic_vbadigan@quicinc.com, quic_mrana@quicinc.com, quic_vpernami@quicinc.com, mmareddy@quicinc.com, Krishna Chaitanya Chundru , Manivannan Sadhasivam X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1752277383; l=1933; i=krichai@qti.qualcomm.com; s=20230907; h=from:subject:message-id; bh=NBnIXgXK6Trlsnr6CsojwAon1qRSKMZl8uFGRJ7oMJc=; b=0z1CvtLP6c2xTt2ueNc3NFR+LEvWRjutC4Thlotpk3pqH6sc+7hGFtvdR+4JssLP6eMuU2RYA GrA51P6OGgIA/llFPOVZ5xRs4Uw6TyBf+CHn66E22ENiDpBb8nz6eWY X-Developer-Key: i=krichai@qti.qualcomm.com; a=ed25519; pk=10CL2pdAKFyzyOHbfSWHCD0X0my7CXxj8gJScmn1FAg= X-Authority-Analysis: v=2.4 cv=MKJgmNZl c=1 sm=1 tr=0 ts=6871a19e cx=c_pps a=m5Vt/hrsBiPMCU0y4gIsQw==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=Wb1JkmetP80A:10 a=KKAkSRfTAAAA:8 a=EUspDBNiAAAA:8 a=Py5lcOcq67Lbq8UMOfUA:9 a=QEXdDO2ut3YA:10 a=IoOABgeZipijB_acs4fv:22 a=cvBusfyB2V15izCimMoJ:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzExMDE4MCBTYWx0ZWRfXxts3On/93J/g OUHAEVKy+G7tLiFxLbZ91rk+harrBeKy1hmxdt/GNcM2w+gbGJgUaoHrd7raUYVTV9y4cyAlB1N s6ckqyygSGLIj80hcEXvaEy1B9BumG6NBWVyC66P9FgRQP97GbRurBJ99YdUHnhKyD6QmXtRKvW jg5knlgBP4LY2Lco5O22rKEDqxcDPyaFpJIxlCe8+EHrQL3cq/Sg22v9MgqDj6QFG1mA/xcKSN9 mYHd+e4pHx278QohJOX4LrZTKuUDmJVtVJJ5qMU1UaKkfQlWGF2YXqepgwmlgrA3uLbMt65Vmdf eAVLh3TAcn1pUSWyMJZg5qbKJgj6EPGZEUBeT7oKFw+zM1uI690Iq4937oa/ebGjBRUUnZw5xVp 0C3FILpF6nOp5WX3Rn1MuD+kzKPg6tyAvmx6D5D8j2T8KkCRaZ2hS4AkOIWd3CRLqAHl7oE+ X-Proofpoint-ORIG-GUID: eESm50Ik9iREzRQugSVTkeUPfI-0rkFG X-Proofpoint-GUID: eESm50Ik9iREzRQugSVTkeUPfI-0rkFG X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-11_07,2025-07-09_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 bulkscore=0 phishscore=0 mlxlogscore=999 impostorscore=0 mlxscore=0 lowpriorityscore=0 spamscore=0 adultscore=0 clxscore=1015 priorityscore=1501 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507110180 Instead of using qcom ELBI resources mapping let the DWC core map it ELBI is DWC specific. Reviewed-by: Manivannan Sadhasivam Signed-off-by: Krishna Chaitanya Chundru Reviewed-by: Konrad Dybcio --- drivers/pci/controller/dwc/pcie-qcom.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controlle= r/dwc/pcie-qcom.c index c789e3f856550bcfa1ce09962ba9c086d117de05..6acbf17caf90b0582b31bc4ee3a= 99601d078a45a 100644 --- a/drivers/pci/controller/dwc/pcie-qcom.c +++ b/drivers/pci/controller/dwc/pcie-qcom.c @@ -265,7 +265,6 @@ struct qcom_pcie_cfg { struct qcom_pcie { struct dw_pcie *pci; void __iomem *parf; /* DT parf */ - void __iomem *elbi; /* DT elbi */ void __iomem *mhi; union qcom_pcie_resources res; struct phy *phy; @@ -390,12 +389,17 @@ static void qcom_pcie_configure_dbi_atu_base(struct q= com_pcie *pcie) =20 static void qcom_pcie_2_1_0_ltssm_enable(struct qcom_pcie *pcie) { + struct dw_pcie *pci =3D pcie->pci; u32 val; =20 + if (!pci->elbi_base) { + dev_err(pci->dev, "ELBI is not present\n"); + return; + } /* enable link training */ - val =3D readl(pcie->elbi + ELBI_SYS_CTRL); + val =3D readl(pci->elbi_base + ELBI_SYS_CTRL); val |=3D ELBI_SYS_CTRL_LT_ENABLE; - writel(val, pcie->elbi + ELBI_SYS_CTRL); + writel(val, pci->elbi_base + ELBI_SYS_CTRL); } =20 static int qcom_pcie_get_resources_2_1_0(struct qcom_pcie *pcie) @@ -1631,12 +1635,6 @@ static int qcom_pcie_probe(struct platform_device *p= dev) goto err_pm_runtime_put; } =20 - pcie->elbi =3D devm_platform_ioremap_resource_byname(pdev, "elbi"); - if (IS_ERR(pcie->elbi)) { - ret =3D PTR_ERR(pcie->elbi); - goto err_pm_runtime_put; - } - /* MHI region is optional */ res =3D platform_get_resource_byname(pdev, IORESOURCE_MEM, "mhi"); if (res) { --=20 2.34.1 From nobody Tue Oct 7 07:23:05 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 D807122FE0A for ; Fri, 11 Jul 2025 23:43:32 +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=1752277414; cv=none; b=cELaZhp8n1pvHHyq6DesGtPz2ZATdF/OAISm/tx6ZCY7XxqrGn0KsrlQY0zrRtVphbtnXOGk/dmW11+v7xgtVf6hrMEHp6M37MyY+aja83yk5zNpCT6qoMemFNRP+hOGJ9Zq9OGWdu293xZAD5XsuDCDaRmoQ8P+ceC4DWJ5i+A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752277414; c=relaxed/simple; bh=jI/ltAtt8DUhNMLbixaN0P7c6vjb6oAB7O5ct02n08E=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=T4KDeHmO7EqAf+88P5WT/FkNKvT4llRH5AB+fKLxi7hAKAloVMrqzoI1NjPucJTQgEjIsxF/DeOukcIbZRylIKnlXVjCNrb1VK/bt+eYprpEVO7KQo+KfRFXJCo10fQHkeGe+YeU3yLipACTcPyO/RZkWlTCPXktToxTdiiGuCo= 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=kCxAPQv5; 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="kCxAPQv5" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56BNSoQE000660 for ; Fri, 11 Jul 2025 23:43: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= t1Fx38Ip81xjrcL06PRMFpRCO201s9NQVUZdCpPO9w4=; b=kCxAPQv5HL4lkilo D/DGfcmcnrFF4+S5EibTRmSiYfOX1uj8eA7sEBHHZgOO5xmCWpnIsC2LDhdGZCEW 6RDjGJMMdmr3w8z5qsNLzOAABAyY11hgp531V/rBVaGo+IPdNMk8mQuWmiUPxYY6 S+wlrY4LfFsqzjD9VzNyeFqA0KL9PP5tcEIf27KEGkD6QHOAkOgQd9ylAEBXpR4W IysO2PnxP6lxM+kLUl4JhCtnj7uy5E5Sfd0Nm5LYc6ZT6h4xrLsO3SvcWnwD5y/y 4s8zULwTgJ0oZ8NO2Bov4n7JlfNSYv80D//cGi1DEH3kp39Z+0E2OKfWFI7o/vxH Q0JZdw== Received: from mail-pf1-f199.google.com (mail-pf1-f199.google.com [209.85.210.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47tkf342kb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 11 Jul 2025 23:43:31 +0000 (GMT) Received: by mail-pf1-f199.google.com with SMTP id d2e1a72fcca58-748f30d56d1so1199600b3a.3 for ; Fri, 11 Jul 2025 16:43:31 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752277411; x=1752882211; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=t1Fx38Ip81xjrcL06PRMFpRCO201s9NQVUZdCpPO9w4=; b=o+2oLpcFnfSSCR8V6PmdNB4La3M5e8P2QPbk9gRLJB7Atf0HG5P8yXOK0gXGR2aqRZ z47W2rjtV1O1WorQwMZc1DXAuRFqecPLZ/cbqGzQgOxh/v6+CtV+cRC7BHK08ks7g2Te OirIjy13Vzav2ElkxIjoHtsXhuMmONVUikUqb/Zk7pT8ASb8owtpplaWUpcBzQt7W314 hYEpZTaS36Smxue8874XIyR8wZRYMuahzwUzkQNHqegTjqpslFI9LLd5AFWphLZWvQ9Z gcdA1AUmaM7aWwVo4onMjjb5nzjiLAG/wqtJeG3V/UFi2eR4kzvpegbMqGprzgfnLAML cOAg== X-Forwarded-Encrypted: i=1; AJvYcCWS37YTe5V11QdgVcv4ZkP/FenprVz2VEV+uMIF3Ip2ooJbyEp/aX3q8U/wsw+4cbdPMd8y5BPxdKvZLxA=@vger.kernel.org X-Gm-Message-State: AOJu0YyrIRV8b3PR/IWq7EKrhsocF4SSLaeYkEu99D5g1u6QOuJeYKLW wWW/ynZl+OdfGDt0OO9FqCST2Vscjz+1ZDky5ijejFdBcP9bRJn9udLkTlT8LMK3AOy09IK0XJZ EKbmIpmrqjYLnQ9tiL2VLT49n2Gvl2MOk0V0X+riKTEBofiRJ9fnV+DsjFIQYluDqNHA= X-Gm-Gg: ASbGncuogQEeWNYHCu9fHI2VFwOrhcbxKsJ+L8QLG2qPkuewnhThfa4cimn0zuytF6N Iuyu8owb1O+4raTaseSlaI9k2oFdesUow+AyiSVExy+NlOJCHFMvPnVrksariSSdgyzScX9ZxBK +4AooDkpOSysG4fhpfbOZBncb4lPTE/3cld69bNDr/9Ng7to+s8qt19RKTARqWq3a4MkgBf/eRC vTJxZ9XRXbQoL+hvjPmb+KHv7JtDooym67ZyPr/sWsPYE8Ve7yEJbzl5vht1Xbs5t6ixtBMpKxW E2y4dft4p4Ihv09+SGCmMZifJ9vCB9V5AlZF9NSG2GrfuyCJDFxseQeJWiBWPdoKEFxIDfSLd9M = X-Received: by 2002:a05:6a00:3e03:b0:742:aecc:c46b with SMTP id d2e1a72fcca58-74f1e7dde53mr5214423b3a.15.1752277410842; Fri, 11 Jul 2025 16:43:30 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE2qCZBFOJBeBtMP+lpq6Jtecrw48J1CwOGopT3cXCkBp9v/8Ds6v/iXB5nyY1Uj/TDw5+X/A== X-Received: by 2002:a05:6a00:3e03:b0:742:aecc:c46b with SMTP id d2e1a72fcca58-74f1e7dde53mr5214384b3a.15.1752277410262; Fri, 11 Jul 2025 16:43:30 -0700 (PDT) Received: from hu-krichai-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74eb9f1a851sm5869781b3a.82.2025.07.11.16.43.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Jul 2025 16:43:29 -0700 (PDT) From: Krishna Chaitanya Chundru Date: Sat, 12 Jul 2025 05:12:40 +0530 Subject: [PATCH v6 4/5] PCI: dwc: Add ECAM support with iATU configuration 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: <20250712-ecam_v4-v6-4-d820f912e354@qti.qualcomm.com> References: <20250712-ecam_v4-v6-0-d820f912e354@qti.qualcomm.com> In-Reply-To: <20250712-ecam_v4-v6-0-d820f912e354@qti.qualcomm.com> To: cros-qcom-dts-watchers@chromium.org, Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Lorenzo Pieralisi , Manivannan Sadhasivam , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Bjorn Helgaas , Jingoo Han Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, quic_vbadigan@quicinc.com, quic_mrana@quicinc.com, quic_vpernami@quicinc.com, mmareddy@quicinc.com, Krishna Chaitanya Chundru X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1752277383; l=9428; i=krichai@qti.qualcomm.com; s=20230907; h=from:subject:message-id; bh=jI/ltAtt8DUhNMLbixaN0P7c6vjb6oAB7O5ct02n08E=; b=DBtfCLuLh0i5keSreSP09WMK8e2a0K7VAAem6+KOYcJHYHpPChcAsHIh/t8cmdVTg8NSaPpoA r681D8KM8JdCEyOerJU74kjHWrKjgiGVN0UjYV3hkx2FyE5wmNopI18 X-Developer-Key: i=krichai@qti.qualcomm.com; a=ed25519; pk=10CL2pdAKFyzyOHbfSWHCD0X0my7CXxj8gJScmn1FAg= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzExMDE4MCBTYWx0ZWRfX0I5ZCsQcBLSU u6ZDu3s/9NcOth164kQ1bx0291WyqmoUuhOhNFSeHEs/4uy64jW4mrUkRLmm3z+nRaHiNOYs6ym 3+4sr/Mb4g1HQOhpruNb5jzBoQYnF0Kh5GLh7vDt0ZqsWia3z+uXPCcAZ43EF35gwuxeHhF5i1z xsCwYedz176+F78/ROkP6/R4NrqqxzNZSMMkXH4umZuEeQ7Yub6OkeNfNca6a7fzAqn90ETLvzL 5gE9mx9LF39f43futVVl60Lv1e8lVU34IP/7PtSdCU7SjXPBVImWMAyWigDaXsX4P+EU4ITxbiF X85oPmJuYBR0k/L054Olrfei72Tg9W4HIQYSd65HrZbMFh/zbtKcU+kb55Wk53LDHU1VqkoUCkt TbGBtXTrDK5+0q+/KDKw8BRwacHMLPSx2iE5MCpsna+6mcyofkdShUFeC1GHs+ePjQlruXQU X-Proofpoint-GUID: Puye_9oVRpWiCuVVBPDv8BAe6dOdETAL X-Authority-Analysis: v=2.4 cv=Xuf6OUF9 c=1 sm=1 tr=0 ts=6871a1a4 cx=c_pps a=WW5sKcV1LcKqjgzy2JUPuA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=Wb1JkmetP80A:10 a=EUspDBNiAAAA:8 a=KLD09g9XOrCUKH48cnIA:9 a=QEXdDO2ut3YA:10 a=OpyuDcXvxspvyRM73sMx:22 X-Proofpoint-ORIG-GUID: Puye_9oVRpWiCuVVBPDv8BAe6dOdETAL X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-11_07,2025-07-09_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 bulkscore=0 spamscore=0 lowpriorityscore=0 impostorscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 adultscore=0 mlxscore=0 phishscore=0 mlxlogscore=999 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507110180 The current implementation requires iATU for every configuration space access which increases latency & cpu utilization. Designware databook 5.20a, section 3.10.10.3 says about CFG Shift Feature, which shifts/maps the BDF (bits [31:16] of the third header DWORD, which would be matched against the Base and Limit addresses) of the incoming CfgRd0/CfgWr0 down to bits[27:12]of the translated address. Configuring iATU in config shift feature enables ECAM feature to access the config space, which avoids iATU configuration for every config access. Add "ctrl2" into struct dw_pcie_ob_atu_cfg to enable config shift feature. As DBI comes under config space, this avoids remapping of DBI space separately. Instead, it uses the mapped config space address returned from ECAM initialization. Change the order of dw_pcie_get_resources() execution to achieve this. Enable the ECAM feature if the config space size is equal to size required to represent number of buses in the bus range property. Signed-off-by: Krishna Chaitanya Chundru --- drivers/pci/controller/dwc/Kconfig | 1 + drivers/pci/controller/dwc/pcie-designware-host.c | 131 ++++++++++++++++++= +--- drivers/pci/controller/dwc/pcie-designware.c | 2 +- drivers/pci/controller/dwc/pcie-designware.h | 5 + 4 files changed, 124 insertions(+), 15 deletions(-) diff --git a/drivers/pci/controller/dwc/Kconfig b/drivers/pci/controller/dw= c/Kconfig index d9f0386396edf66ad0e514a0f545ed24d89fcb6c..9fe9a7756139450819c6db14eb7= f67b0a07b6aa8 100644 --- a/drivers/pci/controller/dwc/Kconfig +++ b/drivers/pci/controller/dwc/Kconfig @@ -19,6 +19,7 @@ config PCIE_DW_DEBUGFS config PCIE_DW_HOST bool select PCIE_DW + select PCI_HOST_COMMON =20 config PCIE_DW_EP bool diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pc= i/controller/dwc/pcie-designware-host.c index 906277f9ffaf79f2c5c3c76f1941556bebdba38f..169e890a5992783bed9480fa841= e83d4d93898f1 100644 --- a/drivers/pci/controller/dwc/pcie-designware-host.c +++ b/drivers/pci/controller/dwc/pcie-designware-host.c @@ -418,6 +418,81 @@ static void dw_pcie_host_request_msg_tlp_res(struct dw= _pcie_rp *pp) } } =20 +static int dw_pcie_config_ecam_iatu(struct dw_pcie_rp *pp) +{ + struct dw_pcie *pci =3D to_dw_pcie_from_pp(pp); + struct dw_pcie_ob_atu_cfg atu =3D {0}; + resource_size_t bus_range_max; + struct resource_entry *bus; + int ret; + + bus =3D resource_list_first_type(&pp->bridge->windows, IORESOURCE_BUS); + + /* + * Root bus under the host bridge doesn't require any iATU configuration + * as DBI region will be used to access root bus config space. + * Immediate bus under Root Bus, needs type 0 iATU configuration and + * remaining buses need type 1 iATU configuration. + */ + atu.index =3D 0; + atu.type =3D PCIE_ATU_TYPE_CFG0; + atu.parent_bus_addr =3D pp->cfg0_base + SZ_1M; + /* 1MiB is to cover 1 (bus) * 32 (devices) * 8 (functions) */ + atu.size =3D SZ_1M; + atu.ctrl2 =3D PCIE_ATU_CFG_SHIFT_MODE_ENABLE; + ret =3D dw_pcie_prog_outbound_atu(pci, &atu); + if (ret) + return ret; + + bus_range_max =3D resource_size(bus->res); + + if (bus_range_max < 2) + return 0; + + /* Configure remaining buses in type 1 iATU configuration */ + atu.index =3D 1; + atu.type =3D PCIE_ATU_TYPE_CFG1; + atu.parent_bus_addr =3D pp->cfg0_base + SZ_2M; + atu.size =3D (SZ_1M * bus_range_max) - SZ_2M; + atu.ctrl2 =3D PCIE_ATU_CFG_SHIFT_MODE_ENABLE; + + return dw_pcie_prog_outbound_atu(pci, &atu); +} + +static int dw_pcie_create_ecam_window(struct dw_pcie_rp *pp, struct resour= ce *res) +{ + struct dw_pcie *pci =3D to_dw_pcie_from_pp(pp); + struct device *dev =3D pci->dev; + struct resource_entry *bus; + + bus =3D resource_list_first_type(&pp->bridge->windows, IORESOURCE_BUS); + if (!bus) + return -ENODEV; + + pp->cfg =3D pci_ecam_create(dev, res, bus->res, &pci_generic_ecam_ops); + if (IS_ERR(pp->cfg)) + return PTR_ERR(pp->cfg); + + pci->dbi_base =3D pp->cfg->win; + pci->dbi_phys_addr =3D res->start; + + return 0; +} + +static bool dw_pcie_ecam_supported(struct dw_pcie_rp *pp, struct resource = *config_res) +{ + struct resource *bus_range; + u64 nr_buses; + + bus_range =3D resource_list_first_type(&pp->bridge->windows, IORESOURCE_B= US)->res; + if (!bus_range) + return false; + + nr_buses =3D resource_size(config_res) >> PCIE_ECAM_BUS_SHIFT; + + return !!(nr_buses >=3D resource_size(bus_range)); +} + static int dw_pcie_host_get_resources(struct dw_pcie_rp *pp) { struct dw_pcie *pci =3D to_dw_pcie_from_pp(pp); @@ -427,10 +502,6 @@ static int dw_pcie_host_get_resources(struct dw_pcie_r= p *pp) struct resource *res; int ret; =20 - ret =3D dw_pcie_get_resources(pci); - if (ret) - return ret; - res =3D platform_get_resource_byname(pdev, IORESOURCE_MEM, "config"); if (!res) { dev_err(dev, "Missing \"config\" reg space\n"); @@ -440,9 +511,32 @@ static int dw_pcie_host_get_resources(struct dw_pcie_r= p *pp) pp->cfg0_size =3D resource_size(res); pp->cfg0_base =3D res->start; =20 - pp->va_cfg0_base =3D devm_pci_remap_cfg_resource(dev, res); - if (IS_ERR(pp->va_cfg0_base)) - return PTR_ERR(pp->va_cfg0_base); + pp->ecam_mode =3D dw_pcie_ecam_supported(pp, res); + if (pp->ecam_mode) { + ret =3D dw_pcie_create_ecam_window(pp, res); + if (ret) + return ret; + + pp->bridge->ops =3D (struct pci_ops *)&pci_generic_ecam_ops.pci_ops; + pp->bridge->sysdata =3D pp->cfg; + pp->cfg->priv =3D pp; + } else { + pp->va_cfg0_base =3D devm_pci_remap_cfg_resource(dev, res); + if (IS_ERR(pp->va_cfg0_base)) + return PTR_ERR(pp->va_cfg0_base); + + /* Set default bus ops */ + pp->bridge->ops =3D &dw_pcie_ops; + pp->bridge->child_ops =3D &dw_child_pcie_ops; + pp->bridge->sysdata =3D pp; + } + + ret =3D dw_pcie_get_resources(pci); + if (ret) { + if (pp->cfg) + pci_ecam_free(pp->cfg); + return ret; + } =20 /* Get the I/O range from DT */ win =3D resource_list_first_type(&pp->bridge->windows, IORESOURCE_IO); @@ -481,14 +575,10 @@ int dw_pcie_host_init(struct dw_pcie_rp *pp) if (ret) return ret; =20 - /* Set default bus ops */ - bridge->ops =3D &dw_pcie_ops; - bridge->child_ops =3D &dw_child_pcie_ops; - if (pp->ops->init) { ret =3D pp->ops->init(pp); if (ret) - return ret; + goto err_free_ecam; } =20 if (pci_msi_enabled()) { @@ -530,6 +620,14 @@ int dw_pcie_host_init(struct dw_pcie_rp *pp) if (ret) goto err_free_msi; =20 + if (pp->ecam_mode) { + ret =3D dw_pcie_config_ecam_iatu(pp); + if (ret) { + dev_err(dev, "Failed to configure iATU in ECAM mode\n"); + goto err_free_msi; + } + } + /* * Allocate the resource for MSG TLP before programming the iATU * outbound window in dw_pcie_setup_rc(). Since the allocation depends @@ -565,8 +663,6 @@ int dw_pcie_host_init(struct dw_pcie_rp *pp) /* Ignore errors, the link may come up later */ dw_pcie_wait_for_link(pci); =20 - bridge->sysdata =3D pp; - ret =3D pci_host_probe(bridge); if (ret) goto err_stop_link; @@ -592,6 +688,10 @@ int dw_pcie_host_init(struct dw_pcie_rp *pp) if (pp->ops->deinit) pp->ops->deinit(pp); =20 +err_free_ecam: + if (pp->cfg) + pci_ecam_free(pp->cfg); + return ret; } EXPORT_SYMBOL_GPL(dw_pcie_host_init); @@ -614,6 +714,9 @@ void dw_pcie_host_deinit(struct dw_pcie_rp *pp) =20 if (pp->ops->deinit) pp->ops->deinit(pp); + + if (pp->cfg) + pci_ecam_free(pp->cfg); } EXPORT_SYMBOL_GPL(dw_pcie_host_deinit); =20 diff --git a/drivers/pci/controller/dwc/pcie-designware.c b/drivers/pci/con= troller/dwc/pcie-designware.c index f7bbfd91b03b5e18031983ff4ebd829f450b8154..87527e09e392072c09b240d05f3= cba4865ec8e9f 100644 --- a/drivers/pci/controller/dwc/pcie-designware.c +++ b/drivers/pci/controller/dwc/pcie-designware.c @@ -576,7 +576,7 @@ int dw_pcie_prog_outbound_atu(struct dw_pcie *pci, val =3D dw_pcie_enable_ecrc(val); dw_pcie_writel_atu_ob(pci, atu->index, PCIE_ATU_REGION_CTRL1, val); =20 - val =3D PCIE_ATU_ENABLE; + val =3D PCIE_ATU_ENABLE | atu->ctrl2; if (atu->type =3D=3D PCIE_ATU_TYPE_MSG) { /* The data-less messages only for now */ val |=3D PCIE_ATU_INHIBIT_PAYLOAD | atu->code; diff --git a/drivers/pci/controller/dwc/pcie-designware.h b/drivers/pci/con= troller/dwc/pcie-designware.h index 31b2a7e9dafa4ab481434068bde0775837babb4f..a8e25fb53a46a71063fafdf5665= b88d106709413 100644 --- a/drivers/pci/controller/dwc/pcie-designware.h +++ b/drivers/pci/controller/dwc/pcie-designware.h @@ -20,6 +20,7 @@ #include #include #include +#include #include =20 #include @@ -173,6 +174,7 @@ #define PCIE_ATU_REGION_CTRL2 0x004 #define PCIE_ATU_ENABLE BIT(31) #define PCIE_ATU_BAR_MODE_ENABLE BIT(30) +#define PCIE_ATU_CFG_SHIFT_MODE_ENABLE BIT(28) #define PCIE_ATU_INHIBIT_PAYLOAD BIT(22) #define PCIE_ATU_FUNC_NUM_MATCH_EN BIT(19) #define PCIE_ATU_LOWER_BASE 0x008 @@ -391,6 +393,7 @@ struct dw_pcie_ob_atu_cfg { u8 func_no; u8 code; u8 routing; + u32 ctrl2; u64 parent_bus_addr; u64 pci_addr; u64 size; @@ -430,6 +433,8 @@ struct dw_pcie_rp { struct resource *msg_res; bool use_linkup_irq; struct pci_eq_presets presets; + bool ecam_mode; + struct pci_config_window *cfg; }; =20 struct dw_pcie_ep_ops { --=20 2.34.1 From nobody Tue Oct 7 07:23:05 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 F3A0B228CBE for ; Fri, 11 Jul 2025 23:43:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752277419; cv=none; b=YkT6hoMh233QSbJBmNsdF9lqfeAz9ym0kTzSXF4eaHrczi9ehdeCQVKTZCXSvHmHSQmoZGsyYNmGk6UfzkJjs9nJbKoO4Uq3Z2/s595oKdoYt6hX+CaidC+YFPkbyu6Do/Rmyy0lUe7WgjhZ51Qk3uQFCmcHKiXJj4Wsb4txc8A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1752277419; c=relaxed/simple; bh=Nc/x8vsOay2uh/yxKTntc5DbFARCXd4RqT08XNDbCw4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=opk1narZqdqnVBIWmfUlIUR5Nn49jc3XiIN/36YVzr4OeBpFkmst3ywYNkq+ZlJMWqUeAHl8o4RL+R7o0BrJD0rPI2jEdsXIjNMyh8xcdibyRT9VsMShi5XKGzozGYQ9EO41ckgFUjHKajYYB+g3wpYbsM9ZwwO1HBMVVHGt66Q= 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=hsUsAa8U; 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="hsUsAa8U" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 56BAorpH029977 for ; Fri, 11 Jul 2025 23:43: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= JRm+Uxqi+CYbqSPZcotLjzI/Pg7VMnWrnkkwOHE45m8=; b=hsUsAa8U10a7nbns 6jV5WzFoaAAYJq23Fpera/5stuIWWcTxFs9tEqbQd9c6F5iRNpZOsxG5DTDJXM2I DOcmLzGGep/fnw6XQLc8oESNmtmaxbLCxQY7jMjQXiklzSOdvAvkfSZwuk4cwtsM FFb1APgKb/GV/iCf13Lk6o+vJONR2f6L7oHicuoDf8kLHol5I9zlJ8H3X88dT8TI kvIqtz2Vim49hC9I1DB1K4g6TfgBM/ykqk1DbG1d58HpqNgiJOjf8TWQWQfeizc8 UHImD3bChR7TwA6iswggU2M8pGcx8Z47ORps3LgwVIAq/aPdDfiHbgXX2V0quslv cK8CFA== Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 47smbet5yv-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Fri, 11 Jul 2025 23:43:37 +0000 (GMT) Received: by mail-pf1-f198.google.com with SMTP id d2e1a72fcca58-7494999de28so3563584b3a.1 for ; Fri, 11 Jul 2025 16:43:37 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1752277416; x=1752882216; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JRm+Uxqi+CYbqSPZcotLjzI/Pg7VMnWrnkkwOHE45m8=; b=OfHlhuq9+GVDs3AYOEnzskiLQSCqowXotJ+JSAYZrGHxeXs1IvaP/gbuEsGYQjO6nN SaDiosfpqyZdCRoQfKBDERrLEtIoYacjYUdRyhFOTuFIbEHTO4jgsXn/u5+TekRkXs0z 0C51Poe6VkSMzwPjUXSonU2OoYPWEKIhbNsOkCu67lufvrODrn4N80k4COuX4JblABcD zJsfccn2hx9bIGIEOKAK34wp6H+y5ZIuSwqhiN6Gt++uNn40sWmQ7GdnPf/4q43q4Tzl c1eMGuCo4eabP+jwle2t2zaKwDuwo6YT0E0RNAEXaMWrzdpR4d2/r3ZexYpew7vvjFLQ QqoQ== X-Forwarded-Encrypted: i=1; AJvYcCWFNrnShFQ/Ryx90b5EE+LBgRmHaPbiPnQU5VbBXbJinIWSwh88bsxeHNGztaLwF8q/Ht2cjR9UHaS3nMU=@vger.kernel.org X-Gm-Message-State: AOJu0Yxl2IbFKGK0bbQTm9xycprrLPejGjlJcmSRUJmOThrwYsi9FxYm 8PZUaMvoy80qA0Y2WLKx5EiVdDW0wSvYEPftdHRVTGzQD874lKrc5u0YIBXkhdq4tHiE6h1iFsY UxI+c9reZB7f76RqRQChWUo5CZVC7hLuu8qxPHCYWqjYuH39TAi4jwswKf/OPyiMjSFY= X-Gm-Gg: ASbGncvkwtYgl+30y+0RMl71mk4/ek7GcvOkg5raveL2ZtVCn/HX1zJpmp66AZ+uMKu abxfV/C3Cv19fI1n0TqNjEYF4EQO4fzHTRe0sXl9jUYGQS44NCWxlvVTZznWAtB48SC8nMHy9dB GU0CScRWk6pq8N82yXUVWRvzsDtQkWoZMr2BtGNJfWfN3uNrNe1JTyGkfgvkIXfsSe2ROG00w79 7A/+Dg3ukP5zORdwRSN9VzCpP2/GAvnCTf0mUSl3R8FrF27vEadxeShjvkGhrFpE4MtpKNSY8SN wDmdm6EI64oGQfxTY+7dWJCsMFGq6cJ9uC6LDaJfh0L3i//DmsP/ZfjzAxnlWfHTkSKJChRjLW4 = X-Received: by 2002:a05:6a00:88e:b0:74e:ac5b:17ff with SMTP id d2e1a72fcca58-74ee2965a73mr6429532b3a.13.1752277416109; Fri, 11 Jul 2025 16:43:36 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEmEDFKUBtEKeSFjG5lDLei7jG8s3XAnLHG17awVowNVlmWiom6TXvQ+gldb5oLwu87ZMZUwA== X-Received: by 2002:a05:6a00:88e:b0:74e:ac5b:17ff with SMTP id d2e1a72fcca58-74ee2965a73mr6429487b3a.13.1752277415624; Fri, 11 Jul 2025 16:43:35 -0700 (PDT) Received: from hu-krichai-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-74eb9f1a851sm5869781b3a.82.2025.07.11.16.43.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Jul 2025 16:43:35 -0700 (PDT) From: Krishna Chaitanya Chundru Date: Sat, 12 Jul 2025 05:12:41 +0530 Subject: [PATCH v6 5/5] PCI: qcom: Add support for ECAM feature 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: <20250712-ecam_v4-v6-5-d820f912e354@qti.qualcomm.com> References: <20250712-ecam_v4-v6-0-d820f912e354@qti.qualcomm.com> In-Reply-To: <20250712-ecam_v4-v6-0-d820f912e354@qti.qualcomm.com> To: cros-qcom-dts-watchers@chromium.org, Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Lorenzo Pieralisi , Manivannan Sadhasivam , =?utf-8?q?Krzysztof_Wilczy=C5=84ski?= , Bjorn Helgaas , Jingoo Han Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, quic_vbadigan@quicinc.com, quic_mrana@quicinc.com, quic_vpernami@quicinc.com, mmareddy@quicinc.com, Krishna Chaitanya Chundru X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1752277383; l=5617; i=krichai@qti.qualcomm.com; s=20230907; h=from:subject:message-id; bh=Nc/x8vsOay2uh/yxKTntc5DbFARCXd4RqT08XNDbCw4=; b=3sa5IGCMxppssN1o5AgAYJYPozCyuk9JFxLNUi0h1IfBf/V9Pf4u//ZpQRDOjwEmiMjvWTBf8 t3EJBknqbEUAU5ppVu19bJxRzD5EbIoyc/qUtR/vsyhljYTEVkMNaGz X-Developer-Key: i=krichai@qti.qualcomm.com; a=ed25519; pk=10CL2pdAKFyzyOHbfSWHCD0X0my7CXxj8gJScmn1FAg= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzExMDE4MCBTYWx0ZWRfXz41v3tq2Khql odzDJwQ0U5BJDuqBHk649Mkqo94A3sRXGL2EGAeb1KzFhCMLe0Il2qhXX6h9IeybmY1R3nda3Ym 0L+WhEJGdhqJnVl1OWyrEaRFC4Rin6txipGBUy84EehAn9oU8Ray8o3Y7PBe8OWQBgbKW6mxZ6T PVVt1AZgUw53NZViaMEZZtELsoei/sWR+81lFtF/XGBW9Jil/e96MKrp/+yOitA5VPUzLaAxrjI b4edyyZx2vfBV7VH+x3+Q/T78fxlKNgUYFXZluPJCnx//KqhqP72I9VKP4DBhS/v+q76L00LsPh wyqWVu3Zf23T31jVQM0upqNnjCVOhWc5XXaJt2nXy1dit2BqjSZ2SqXbVnvxTnrwiy7p1cooL/Z uMRvsXmGeuDK/0Mq8zRfjVBDOhrpE8Q28vYTJMwbTjGkcjpvCh1psBST9HDRcBPrgAlv8B8z X-Proofpoint-GUID: ecgWb8TAV-ynSE1lHSscLDjvoJRLu9K8 X-Proofpoint-ORIG-GUID: ecgWb8TAV-ynSE1lHSscLDjvoJRLu9K8 X-Authority-Analysis: v=2.4 cv=VpQjA/2n c=1 sm=1 tr=0 ts=6871a1a9 cx=c_pps a=m5Vt/hrsBiPMCU0y4gIsQw==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=Wb1JkmetP80A:10 a=EUspDBNiAAAA:8 a=oQbQ34n3Jerzy_GFPTkA:9 a=QEXdDO2ut3YA:10 a=IoOABgeZipijB_acs4fv:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.7,FMLib:17.12.80.40 definitions=2025-07-11_07,2025-07-09_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 mlxscore=0 malwarescore=0 suspectscore=0 clxscore=1015 impostorscore=0 phishscore=0 mlxlogscore=999 lowpriorityscore=0 adultscore=0 priorityscore=1501 bulkscore=0 spamscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507110180 The ELBI registers falls after the DBI space, PARF_SLV_DBI_ELBI register gives us the offset from which ELBI starts. So override ELBI with the offset from PARF_SLV_DBI_ELBI and cfg win to map these regions. On root bus, we have only the root port. Any access other than that should not go out of the link and should return all F's. Since the iATU is configured for the buses which starts after root bus, block the transactions starting from function 1 of the root bus to the end of the root bus (i.e from dbi_base + 4kb to dbi_base + 1MB) from going outside the link through ECAM blocker through PARF registers. Signed-off-by: Krishna Chaitanya Chundru --- drivers/pci/controller/dwc/pcie-qcom.c | 67 ++++++++++++++++++++++++++++++= ++++ 1 file changed, 67 insertions(+) diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controlle= r/dwc/pcie-qcom.c index 6acbf17caf90b0582b31bc4ee3a99601d078a45a..fb8cc2c788edf034a45ff718bf5= 60747e48b5e00 100644 --- a/drivers/pci/controller/dwc/pcie-qcom.c +++ b/drivers/pci/controller/dwc/pcie-qcom.c @@ -52,6 +52,7 @@ #define PARF_AXI_MSTR_WR_ADDR_HALT_V2 0x1a8 #define PARF_Q2A_FLUSH 0x1ac #define PARF_LTSSM 0x1b0 +#define PARF_SLV_DBI_ELBI 0x1b4 #define PARF_INT_ALL_STATUS 0x224 #define PARF_INT_ALL_CLEAR 0x228 #define PARF_INT_ALL_MASK 0x22c @@ -61,6 +62,16 @@ #define PARF_DBI_BASE_ADDR_V2_HI 0x354 #define PARF_SLV_ADDR_SPACE_SIZE_V2 0x358 #define PARF_SLV_ADDR_SPACE_SIZE_V2_HI 0x35c +#define PARF_BLOCK_SLV_AXI_WR_BASE 0x360 +#define PARF_BLOCK_SLV_AXI_WR_BASE_HI 0x364 +#define PARF_BLOCK_SLV_AXI_WR_LIMIT 0x368 +#define PARF_BLOCK_SLV_AXI_WR_LIMIT_HI 0x36c +#define PARF_BLOCK_SLV_AXI_RD_BASE 0x370 +#define PARF_BLOCK_SLV_AXI_RD_BASE_HI 0x374 +#define PARF_BLOCK_SLV_AXI_RD_LIMIT 0x378 +#define PARF_BLOCK_SLV_AXI_RD_LIMIT_HI 0x37c +#define PARF_ECAM_BASE 0x380 +#define PARF_ECAM_BASE_HI 0x384 #define PARF_NO_SNOOP_OVERRIDE 0x3d4 #define PARF_ATU_BASE_ADDR 0x634 #define PARF_ATU_BASE_ADDR_HI 0x638 @@ -84,6 +95,7 @@ =20 /* PARF_SYS_CTRL register fields */ #define MAC_PHY_POWERDOWN_IN_P2_D_MUX_EN BIT(29) +#define PCIE_ECAM_BLOCKER_EN BIT(26) #define MST_WAKEUP_EN BIT(13) #define SLV_WAKEUP_EN BIT(12) #define MSTR_ACLK_CGC_DIS BIT(10) @@ -293,6 +305,48 @@ static void qcom_ep_reset_deassert(struct qcom_pcie *p= cie) usleep_range(PERST_DELAY_US, PERST_DELAY_US + 500); } =20 +static void qcom_pci_config_ecam(struct dw_pcie_rp *pp) +{ + struct dw_pcie *pci =3D to_dw_pcie_from_pp(pp); + struct qcom_pcie *pcie =3D to_qcom_pcie(pci); + u64 addr, addr_end; + u32 val; + + /* Set the ECAM base */ + writel_relaxed(lower_32_bits(pci->dbi_phys_addr), pcie->parf + PARF_ECAM_= BASE); + writel_relaxed(upper_32_bits(pci->dbi_phys_addr), pcie->parf + PARF_ECAM_= BASE_HI); + + /* + * The only device on root bus is the Root Port. Any access to the PCIe + * region will go outside the PCIe link. As part of enumeration the PCI + * sw can try to read to vendor ID & device ID with different device + * number and function number under root bus. As any access other than + * root bus, device 0, function 0, should not go out of the link and + * should return all F's. Since the iATU is configured for the buses + * which starts after root bus, block the transactions starting from + * function 1 of the root bus to the end of the root bus (i.e from + * dbi_base + 4kb to dbi_base + 1MB) from going outside the link. + */ + addr =3D pci->dbi_phys_addr + SZ_4K; + writel_relaxed(lower_32_bits(addr), pcie->parf + PARF_BLOCK_SLV_AXI_WR_BA= SE); + writel_relaxed(upper_32_bits(addr), pcie->parf + PARF_BLOCK_SLV_AXI_WR_BA= SE_HI); + + writel_relaxed(lower_32_bits(addr), pcie->parf + PARF_BLOCK_SLV_AXI_RD_BA= SE); + writel_relaxed(upper_32_bits(addr), pcie->parf + PARF_BLOCK_SLV_AXI_RD_BA= SE_HI); + + addr_end =3D pci->dbi_phys_addr + SZ_1M - 1; + + writel_relaxed(lower_32_bits(addr_end), pcie->parf + PARF_BLOCK_SLV_AXI_W= R_LIMIT); + writel_relaxed(upper_32_bits(addr_end), pcie->parf + PARF_BLOCK_SLV_AXI_W= R_LIMIT_HI); + + writel_relaxed(lower_32_bits(addr_end), pcie->parf + PARF_BLOCK_SLV_AXI_R= D_LIMIT); + writel_relaxed(upper_32_bits(addr_end), pcie->parf + PARF_BLOCK_SLV_AXI_R= D_LIMIT_HI); + + val =3D readl_relaxed(pcie->parf + PARF_SYS_CTRL); + val |=3D PCIE_ECAM_BLOCKER_EN; + writel_relaxed(val, pcie->parf + PARF_SYS_CTRL); +} + static int qcom_pcie_start_link(struct dw_pcie *pci) { struct qcom_pcie *pcie =3D to_qcom_pcie(pci); @@ -302,6 +356,9 @@ static int qcom_pcie_start_link(struct dw_pcie *pci) qcom_pcie_common_set_16gt_lane_margining(pci); } =20 + if (pci->pp.ecam_mode) + qcom_pci_config_ecam(&pci->pp); + /* Enable Link Training state machine */ if (pcie->cfg->ops->ltssm_enable) pcie->cfg->ops->ltssm_enable(pcie); @@ -1237,6 +1294,7 @@ static int qcom_pcie_host_init(struct dw_pcie_rp *pp) { struct dw_pcie *pci =3D to_dw_pcie_from_pp(pp); struct qcom_pcie *pcie =3D to_qcom_pcie(pci); + u16 offset; int ret; =20 qcom_ep_reset_assert(pcie); @@ -1245,6 +1303,15 @@ static int qcom_pcie_host_init(struct dw_pcie_rp *pp) if (ret) return ret; =20 + if (pp->ecam_mode) { + /* + * Override ELBI in ecam mode, as in ecam mode + * ELBI moves along with the dbi config space. + */ + offset =3D readl(pcie->parf + PARF_SLV_DBI_ELBI); + pci->elbi_base =3D pci->dbi_base + offset; + } + ret =3D phy_set_mode_ext(pcie->phy, PHY_MODE_PCIE, PHY_MODE_PCIE_RC); if (ret) goto err_deinit; --=20 2.34.1