From: Marc Zyngier <maz@kernel.org>
To: Frank Li <Frank.Li@nxp.com>
Cc: "Kishon Vijay Abraham I" <kishon@kernel.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
"Thomas Gleixner" <tglx@linutronix.de>,
"Anup Patel" <apatel@ventanamicro.com>,
"Greg Kroah-Hartman" <gregkh@linuxfoundation.org>,
"Danilo Krummrich" <dakr@kernel.org>,
"Manivannan Sadhasivam" <manivannan.sadhasivam@linaro.org>,
"Krzysztof Wilczyński" <kw@linux.com>,
"Bjorn Helgaas" <bhelgaas@google.com>,
"Arnd Bergmann" <arnd@arndb.de>, "Shuah Khan" <shuah@kernel.org>,
"Richard Zhu" <hongxing.zhu@nxp.com>,
"Lucas Stach" <l.stach@pengutronix.de>,
"Lorenzo Pieralisi" <lpieralisi@kernel.org>,
"Rob Herring" <robh@kernel.org>,
"Shawn Guo" <shawnguo@kernel.org>,
"Sascha Hauer" <s.hauer@pengutronix.de>,
"Pengutronix Kernel Team" <kernel@pengutronix.de>,
"Fabio Estevam" <festevam@gmail.com>,
"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
"Conor Dooley" <conor+dt@kernel.org>,
"Niklas Cassel" <cassel@kernel.org>,
dlemoal@kernel.org, jdmason@kudzu.us,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, linux-pci@vger.kernel.org,
linux-kselftest@vger.kernel.org, imx@lists.linux.dev,
devicetree@vger.kernel.org
Subject: Re: [PATCH v15 04/15] irqchip/gic-v3-its: Add support for device tree msi-map and msi-mask
Date: Sat, 01 Mar 2025 11:37:14 +0000 [thread overview]
Message-ID: <86o6ylouc5.wl-maz@kernel.org> (raw)
In-Reply-To: <20250211-ep-msi-v15-4-bcacc1f2b1a9@nxp.com>
On Tue, 11 Feb 2025 19:21:57 +0000,
Frank Li <Frank.Li@nxp.com> wrote:
>
> Some platform devices create child devices dynamically and require the
> parent device's msi-map to map device IDs to actual sideband information.
>
> A typical use case is using ITS as a PCIe Endpoint Controller(EPC)'s
> doorbell function, where PCI hosts send TLP memory writes to the EP
> controller. The EP controller converts these writes to AXI transactions
> and appends platform-specific sideband information. See below figure.
>
> ┌────────────────────────────────┐
> │ │
> │ PCI Endpoint Controller │
> │ │
> │ ┌─────┐ ┌─────┐ ┌─────┐ │
> PCI Bus │ │ │ │ │ │ │ │
> ─────────► │ │Func1│ │Func2│ ... │Func │ │
> TLP Memory │ │ │ │ │ │<n> │ │
> Write Push │ │ │ │ │ │ │ │
> DoorBell │ └─┬─┬─┘ └──┬──┘ └──┬──┘ │
> │ │ │ │ │ │
> └────┼─┼────────┼───────────┼────┘
> sideband │ │ Address│ │
> information ▼ ▼ /Data ▼ ▼
> ┌────────────────────────┐
> │ MSI Controller │
> └────────────────────────┘
>
Please stop using these figures in commit messages. I don't think they
help, and they are not in consistent with the way the commit messages
are managed.
> EPC's DTS will provide such information by msi-map and msi-mask. A
> simplified dts as
>
> pcie-ep@10000000 {
> ...
> msi-map = <0 &its 0xc 8>;
> ^^^ 0xc is implement defined sideband information,
> which append to AXI write transaction.
> ^ 0 is function index.
What does this sideband field represent? How is the ITS driver
supposed to use that data? Is it the full devid as presented to the
ITS? Something combined with the "function index"? Is the "function
index" a full RID, as defined in the documentation?
Also, msi-map is so far reserved to a PCIe RC, not this sort of wonky
contraption. This needs to be documented.
>
> msi-mask = <0x7>
> }
>
> Check msi-map if msi-parent missed to keep compatility with existed system.
>
> Signed-off-by: Frank Li <Frank.Li@nxp.com>
> ---
> change from v14 to v15
> - none
>
> change from v13 to v14
> new patch
> ---
> drivers/irqchip/irq-gic-v3-its-msi-parent.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/drivers/irqchip/irq-gic-v3-its-msi-parent.c b/drivers/irqchip/irq-gic-v3-its-msi-parent.c
> index e150365fbe892..6c7389bb84a4a 100644
> --- a/drivers/irqchip/irq-gic-v3-its-msi-parent.c
> +++ b/drivers/irqchip/irq-gic-v3-its-msi-parent.c
> @@ -118,6 +118,14 @@ static int of_pmsi_get_dev_id(struct irq_domain *domain, struct device *dev,
> index++;
> } while (!ret);
>
> + if (ret) {
> + struct device_node *np = NULL;
> +
> + ret = of_map_id(dev->of_node, dev->id, "msi-map", "msi-map-mask", &np, dev_id);
> + if (np)
> + of_node_put(np);
> + }
> +
> return ret;
> }
>
>
Thanks,
M.
--
Without deviation from the norm, progress is not possible.
next prev parent reply other threads:[~2025-03-01 11:37 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-11 19:21 [PATCH v15 00/15] PCI: EP: Add RC-to-EP doorbell with platform MSI controller Frank Li
2025-02-11 19:21 ` [PATCH v15 01/15] platform-msi: Add msi_remove_device_irq_domain() in platform_device_msi_free_irqs_all() Frank Li
2025-03-01 12:17 ` Marc Zyngier
2025-02-11 19:21 ` [PATCH v15 02/15] irqdomain: Add IRQ_DOMAIN_FLAG_MSI_IMMUTABLE and irq_domain_is_msi_immutable() Frank Li
2025-03-01 11:10 ` Marc Zyngier
2025-03-03 17:01 ` Frank Li
2025-02-11 19:21 ` [PATCH v15 03/15] irqchip/gic-v3-its: Set IRQ_DOMAIN_FLAG_MSI_IMMUTABLE for ITS Frank Li
2025-02-11 19:21 ` [PATCH v15 04/15] irqchip/gic-v3-its: Add support for device tree msi-map and msi-mask Frank Li
2025-03-01 11:37 ` Marc Zyngier [this message]
2025-03-03 16:52 ` Frank Li
2025-02-11 19:21 ` [PATCH v15 05/15] PCI: endpoint: Set ID and of_node for function driver Frank Li
2025-02-11 19:21 ` [PATCH v15 06/15] PCI: endpoint: Add RC-to-EP doorbell support using platform MSI controller Frank Li
2025-02-11 19:22 ` [PATCH v15 07/15] PCI: endpoint: pci-ep-msi: Add MSI address/data pair mutable check Frank Li
2025-03-01 11:44 ` Marc Zyngier
2025-03-03 16:27 ` Frank Li
2025-02-11 19:22 ` [PATCH v15 08/15] PCI: endpoint: Add pci_epf_align_inbound_addr() helper for address alignment Frank Li
2025-02-11 19:22 ` [PATCH v15 09/15] PCI: endpoint: pci-epf-test: Add doorbell test support Frank Li
2025-02-11 19:22 ` [PATCH v15 10/15] misc: pci_endpoint_test: Add doorbell test case Frank Li
2025-02-11 19:22 ` [PATCH v15 11/15] selftests: pci_endpoint: " Frank Li
2025-02-11 19:22 ` [PATCH v15 12/15] pci: imx6: Add helper function imx_pcie_add_lut_by_rid() Frank Li
2025-02-11 19:22 ` [PATCH v15 13/15] pci: imx6: Add LUT setting for MSI/IOMMU in Endpoint mode Frank Li
2025-02-11 19:22 ` [PATCH v15 14/15] arm64: dts: imx95: Add msi-map for pci-ep device Frank Li
2025-02-11 19:22 ` [PATCH v15 15/15] arm64: dts: imx95-19x19-evk: Add PCIe1 endpoint function overlay file Frank Li
2025-02-20 20:01 ` [PATCH v15 00/15] PCI: EP: Add RC-to-EP doorbell with platform MSI controller Frank Li
2025-02-20 20:42 ` Thomas Gleixner
2025-02-28 17:07 ` Frank Li
2025-03-01 12:02 ` Marc Zyngier
2025-03-01 18:09 ` Thomas Gleixner
2025-03-10 21:08 ` Frank Li
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=86o6ylouc5.wl-maz@kernel.org \
--to=maz@kernel.org \
--cc=Frank.Li@nxp.com \
--cc=apatel@ventanamicro.com \
--cc=arnd@arndb.de \
--cc=bhelgaas@google.com \
--cc=cassel@kernel.org \
--cc=conor+dt@kernel.org \
--cc=dakr@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dlemoal@kernel.org \
--cc=festevam@gmail.com \
--cc=gregkh@linuxfoundation.org \
--cc=hongxing.zhu@nxp.com \
--cc=imx@lists.linux.dev \
--cc=jdmason@kudzu.us \
--cc=kernel@pengutronix.de \
--cc=kishon@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=kw@linux.com \
--cc=l.stach@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lpieralisi@kernel.org \
--cc=manivannan.sadhasivam@linaro.org \
--cc=rafael@kernel.org \
--cc=robh@kernel.org \
--cc=s.hauer@pengutronix.de \
--cc=shawnguo@kernel.org \
--cc=shuah@kernel.org \
--cc=tglx@linutronix.de \
/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;
as well as URLs for NNTP newsgroup(s).