From: Bjorn Helgaas <helgaas@kernel.org>
To: Manivannan Sadhasivam <mani@kernel.org>
Cc: "Jingoo Han" <jingoohan1@gmail.com>,
"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
"Krzysztof Wilczyński" <kwilczynski@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Bjorn Helgaas" <bhelgaas@google.com>,
"Krzysztof Kozlowski" <krzk@kernel.org>,
"Alim Akhtar" <alim.akhtar@samsung.com>,
"Jonathan Chocron" <jonnyc@amazon.com>,
linux-pci@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
linux-samsung-soc@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-arm-msm@vger.kernel.org,
"Krishna Chaitanya Chundru" <krishna.chundru@oss.qualcomm.com>
Subject: Re: [PATCH v9 3/4] PCI: qcom: Prepare for the DWC ECAM enablement
Date: Fri, 12 Sep 2025 16:50:53 -0500 [thread overview]
Message-ID: <20250912215053.GA1643809@bhelgaas> (raw)
In-Reply-To: <20250909-controller-dwc-ecam-v9-3-7d5b651840dd@kernel.org>
On Tue, Sep 09, 2025 at 12:37:52PM +0530, Manivannan Sadhasivam wrote:
> From: Krishna Chaitanya Chundru <krishna.chundru@oss.qualcomm.com>
>
> To support the DWC ECAM mechanism, prepare the driver by performing below
> configurations:
>
> 1. Since the ELBI region will be covered by the ECAM 'config' space,
> override the 'elbi_base' with the address derived from 'dbi_base' and
> the offset from PARF_SLV_DBI_ELBI register.
>
> 2. Block the transactions from the host bridge to devices other than Root
> Port on the root bus to return all F's. This is required when the 'CFG
> Shift Feature' of iATU is enabled.
FWIW, before I noticed your v9, I had updated the comments here to fix
a few inconsistencies. Here's the diff:
diff --git a/drivers/pci/controller/dwc/pcie-qcom.c b/drivers/pci/controller/dwc/pcie-qcom.c
index 7c2b2c8c61c2..962f0311a23a 100644
--- a/drivers/pci/controller/dwc/pcie-qcom.c
+++ b/drivers/pci/controller/dwc/pcie-qcom.c
@@ -343,15 +343,15 @@ static void qcom_pci_config_ecam(struct dw_pcie_rp *pp)
writel_relaxed(upper_32_bits(pci->dbi_phys_addr), pcie->parf + PARF_ECAM_BASE_HI);
/*
- * The only device on root bus is a single Root Port. So if PCI core
- * tries to access any devices other than Device/Function (0.0) in Bus
- * 0, the TLP will go outside of the controller to the PCI bus. But with
- * CFG Shift Feature (ECAM) enabled in iATU, there is no guarantee that
- * the response is going to be all F's. Hence, to make sure that the
+ * The only device on the root bus is a single Root Port. If we try to
+ * access any devices other than Device/Function 00.0 on Bus 0, the TLP
+ * will go outside of the controller to the PCI bus. But with CFG Shift
+ * Feature (ECAM) enabled in iATU, there is no guarantee that the
+ * response is going to be all F's. Hence, to make sure that the
* requester gets all F's response for accesses other than the Root
- * Port, configure iATU to 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).
+ * Port, configure iATU to 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).
*/
addr = pci->dbi_phys_addr + SZ_4K;
writel_relaxed(lower_32_bits(addr), pcie->parf + PARF_BLOCK_SLV_AXI_WR_BASE);
@@ -1385,7 +1385,7 @@ static int qcom_pcie_host_init(struct dw_pcie_rp *pp)
if (pp->ecam_enabled) {
/*
* Override ELBI when ECAM is enabled, as when ECAM
- * is enabled ELBI moves along with the dbi config space.
+ * is enabled ELBI moves along with the DBI config space.
*/
offset = FIELD_GET(SLV_DBI_ELBI_ADDR_BASE, readl(pcie->parf + PARF_SLV_DBI_ELBI));
pci->elbi_base = pci->dbi_base + offset;
next prev parent reply other threads:[~2025-09-12 21:51 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-09 7:07 [PATCH v9 0/4] PCI: dwc: Add ECAM support with iATU configuration Manivannan Sadhasivam
2025-09-09 7:07 ` [PATCH v9 1/4] PCI: dwc: Add support for ELBI resource mapping Manivannan Sadhasivam
2025-09-09 7:07 ` [PATCH v9 2/4] PCI: dwc: Prepare the driver for enabling ECAM mechanism using iATU 'CFG Shift Feature' Manivannan Sadhasivam
2025-09-09 7:07 ` [PATCH v9 3/4] PCI: qcom: Prepare for the DWC ECAM enablement Manivannan Sadhasivam
2025-09-12 21:44 ` Bjorn Helgaas
2025-09-15 14:32 ` Manivannan Sadhasivam
2025-09-12 21:50 ` Bjorn Helgaas [this message]
2025-09-15 14:34 ` Manivannan Sadhasivam
2025-09-09 7:07 ` [PATCH v9 4/4] PCI: dwc: Support ECAM mechanism by enabling iATU 'CFG Shift Feature' Manivannan Sadhasivam
2025-09-15 15:14 ` ALOK TIWARI
2025-11-28 3:17 ` Maciej W. Rozycki
2025-11-28 5:14 ` Krishna Chaitanya Chundru
2025-11-28 8:37 ` Maciej W. Rozycki
2025-11-28 13:44 ` Krishna Chaitanya Chundru
2025-11-28 17:16 ` Maciej W. Rozycki
2025-11-29 2:24 ` Krishna Chaitanya Chundru
2025-11-29 6:04 ` Maciej W. Rozycki
2025-12-01 11:51 ` Manivannan Sadhasivam
2025-12-01 14:38 ` Manivannan Sadhasivam
2025-12-01 16:42 ` Maciej W. Rozycki
2025-12-02 11:44 ` Manivannan Sadhasivam
2025-12-02 13:39 ` Maciej W. Rozycki
2025-12-02 13:45 ` Manivannan Sadhasivam
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250912215053.GA1643809@bhelgaas \
--to=helgaas@kernel.org \
--cc=alim.akhtar@samsung.com \
--cc=bhelgaas@google.com \
--cc=jingoohan1@gmail.com \
--cc=jonnyc@amazon.com \
--cc=krishna.chundru@oss.qualcomm.com \
--cc=krzk@kernel.org \
--cc=kwilczynski@kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=mani@kernel.org \
--cc=robh@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox