[PATCH] arm64: dts: rockchip: rk3588: add msi-map for pcie3x4_ep

Frank Li Frank.li at nxp.com
Mon Sep 8 14:26:03 PDT 2025


On Mon, Sep 08, 2025 at 06:24:01PM +0200, Niklas Cassel wrote:
> Support for msi-map in the pci-ep device tree binding was added in
> commit a6aed6b9c79e ("dt-bindings: PCI: pci-ep: Add support for iommu-map
> and msi-map").
>
> The PCI endpoint doorbell feature was added in commit 1c3b002c6bf6 ("PCI:
> endpoint: Add RC-to-EP doorbell support using platform MSI controller").
>
> The PCI endpoint doorbell feature requires:
> -An interrupt controller that implements GIC interrupt translation
>  services (ITS).
> -msi-map being defined in the pcie endpoint device tree node.
> -CONFIG_PCI_ENDPOINT_MSI_DOORBELL being enabled.
>
> Add msi-map to the pcie3x4_ep device tree node.
>
> With this, the pci endpoint kselftest doorbell test case passes:
>  # pci_endpoint_test -r pcie_ep_doorbell.DOORBELL_TEST
>  TAP version 13
>  1..1
>  # Starting 1 tests from 1 test cases.
>  #  RUN           pcie_ep_doorbell.DOORBELL_TEST ...
>  #            OK  pcie_ep_doorbell.DOORBELL_TEST
>  ok 1 pcie_ep_doorbell.DOORBELL_TEST
>  # PASSED: 1 / 1 tests passed.
>
> Cc: Frank Li <Frank.Li at nxp.com>
> Signed-off-by: Niklas Cassel <cassel at kernel.org>
> ---
>  arch/arm64/boot/dts/rockchip/rk3588-extra.dtsi | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/arch/arm64/boot/dts/rockchip/rk3588-extra.dtsi b/arch/arm64/boot/dts/rockchip/rk3588-extra.dtsi
> index 90414486e466f..c0121aea791d7 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3588-extra.dtsi
> +++ b/arch/arm64/boot/dts/rockchip/rk3588-extra.dtsi
> @@ -389,6 +389,7 @@ pcie3x4_ep: pcie-ep at fe150000 {
>  		interrupt-names = "sys", "pmc", "msg", "legacy", "err",
>  				  "dma0", "dma1", "dma2", "dma3";
>  		max-link-speed = <3>;
> +		msi-map = <0x0000 &its1 0x0000 0x1000>;

Not sure how your hardware map PCIe rid at EP side. If your hardware direct
use RC's RID, difference host may use differecne RID. I remember you met
similar problem when enable IOMMU.

Generally, Only 1 EP support, you can use msi-mask=<0> map all RID to a
fixed value, But it also needs change glue layer configure to force to
use the same RID.

I suppose this may not work if connected to second PCIe host slot.

Frank

>  		num-lanes = <4>;
>  		phys = <&pcie30phy>;
>  		phy-names = "pcie-phy";
> --
> 2.51.0
>
>
> _______________________________________________
> Linux-rockchip mailing list
> Linux-rockchip at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-rockchip



More information about the Linux-rockchip mailing list