diff mbox series

[U-Boot] pci: layerscape: add option to statically allocate PCI StreamIDs

Message ID 20190130120103.10506-2-laurentiu.tudor@nxp.com
State Superseded
Delegated to: York Sun
Headers show
Series [U-Boot] pci: layerscape: add option to statically allocate PCI StreamIDs | expand

Commit Message

Laurentiu Tudor Jan. 30, 2019, 12:01 p.m. UTC
From: Laurentiu Tudor <laurentiu.tudor@nxp.com>

Certain PCI scenarios have more dynamic requirements, e.g. endpoints
are "hot-plugged" later in the system lifetime. Add a Kconfig option
that allows specifying a maximum number of end-points, per PCI controller
and allocate a StreamID for each one.

Signed-off-by: Laurentiu Tudor <laurentiu.tudor@nxp.com>
---
 arch/arm/cpu/armv8/fsl-layerscape/Kconfig | 28 +++++++++++++++++
 drivers/pci/pcie_layerscape_fixup.c       | 38 +++++++++++++++++++++++
 2 files changed, 66 insertions(+)

Comments

Bharat Bhushan Jan. 30, 2019, 2:41 p.m. UTC | #1
> -----Original Message-----
> From: upstream-release-bounces@linux.nxdi.nxp.com <upstream-release-
> bounces@linux.nxdi.nxp.com> On Behalf Of laurentiu.tudor@nxp.com
> Sent: Wednesday, January 30, 2019 5:31 PM
> To: u-boot@lists.denx.de; Prabhakar Kushwaha
> <prabhakar.kushwaha@nxp.com>; York Sun <york.sun@nxp.com>
> Cc: Laurentiu Tudor <laurentiu.tudor@nxp.com>
> Subject: [upstream-release] [PATCH] pci: layerscape: add option to statically
> allocate PCI StreamIDs
> 
> From: Laurentiu Tudor <laurentiu.tudor@nxp.com>
> 
> Certain PCI scenarios have more dynamic requirements, e.g. endpoints are
> "hot-plugged" later in the system lifetime. Add a Kconfig option that allows
> specifying a maximum number of end-points, per PCI controller and allocate
> a StreamID for each one.
> 
> Signed-off-by: Laurentiu Tudor <laurentiu.tudor@nxp.com>
> ---
>  arch/arm/cpu/armv8/fsl-layerscape/Kconfig | 28 +++++++++++++++++
>  drivers/pci/pcie_layerscape_fixup.c       | 38 +++++++++++++++++++++++
>  2 files changed, 66 insertions(+)
> 
> diff --git a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
> b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
> index 2b086da79b..1d633d71a8 100644
> --- a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
> +++ b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
> @@ -571,3 +571,31 @@ config TFABOOT
>         help
>           Enabling this will make a U-Boot binary that is capable of being
>           booted via TFA.
> +
> +menuconfig FSL_PCIE_STATIC_STREAM_IDS
> +	bool "Allocate PCI streamIDs statically"
> +	default n
> +	depends on PCIE_LAYERSCAPE
> +	help
> +	  Statically allocate a certain number of StreamIDs for each PCI
> +	  controller, instead of enumerating the connected endpoints and
> +	  allocate a StreamID for each one. This allocation method can
> +	  be used in more dynamic PCI scenarios, e.g. where endpoints are
> +	  "hot-plugged" later in the system bringup, by statically specifying
> +	  a maximum number of StreamIDs expected for each PCI controller.
> +
> +if FSL_PCIE_STATIC_STREAM_IDS
> +
> +config FSL_PCIE1_STREAM_IDS_COUNT
> +	default 3
> +	int "Maximum number of streamIDs to allocate for PCI1 controller"
> +
> +config FSL_PCIE2_STREAM_IDS_COUNT
> +	default 3
> +	int "Maximum number of streamIDs to allocate for PCI2 controller"
> +
> +config FSL_PCIE3_STREAM_IDS_COUNT
> +	default 3
> +	int "Maximum number of streamIDs to allocate for PCI3 controller"
> +
> +endif
> diff --git a/drivers/pci/pcie_layerscape_fixup.c
> b/drivers/pci/pcie_layerscape_fixup.c
> index 1a17bd98aa..32355cbf2e 100644
> --- a/drivers/pci/pcie_layerscape_fixup.c
> +++ b/drivers/pci/pcie_layerscape_fixup.c
> @@ -177,6 +177,7 @@ static void fdt_pcie_set_iommu_map_entry(void
> *blob, struct ls_pcie *pcie,
> 
>  static void fdt_fixup_pcie(void *blob)
>  {
> +#if !CONFIG_FSL_PCIE_STATIC_STREAM_IDS
>  	struct udevice *dev, *bus;
>  	struct ls_pcie *pcie;
>  	int streamid;
> @@ -215,6 +216,43 @@ static void fdt_fixup_pcie(void *blob)
>  		fdt_pcie_set_iommu_map_entry(blob, pcie, bdf >> 8,
>  					     streamid);
>  	}
> +#else
> +	static const int streamid_cnt[] = {
> +		CONFIG_FSL_PCIE1_STREAM_IDS_COUNT,
> +		CONFIG_FSL_PCIE2_STREAM_IDS_COUNT,
> +		CONFIG_FSL_PCIE3_STREAM_IDS_COUNT

Why 3 controllers?

> +	};
> +	struct ls_pcie *pcie;
> +	int i, streamid, index;
> +	pci_dev_t bdf;
> +
> +	list_for_each_entry(pcie, &ls_pcie_list, list) {
> +		for (i = 0; i < streamid_cnt[pcie->idx]; i++) {
> +			streamid = ls_pcie_next_streamid();
> +			if (streamid < 0) {
> +				debug("ERROR: no stream ids free\n");
> +				continue;

Why to continue if we are out of stream-ids?

> +			}
> +
> +			index = ls_pcie_next_lut_index(pcie);
> +			if (index < 0) {
> +				debug("ERROR: no LUT indexes free\n");
> +				continue;

We can error out when out of LUT entry

> +			}
> +
> +			bdf = PCI_BDF(i, 0, 0);
> +			/* map PCI b.d.f to streamID in LUT */
> +			ls_pcie_lut_set_mapping(pcie, index, bdf >> 8,
> +						streamid);
> +			/* update msi-map in device tree */
> +			fdt_pcie_set_msi_map_entry(blob, pcie, bdf >> 8,
> +						   streamid);
> +			/* update iommu-map in device tree */
> +			fdt_pcie_set_iommu_map_entry(blob, pcie, bdf >>
> 8,
> +						     streamid);
> +		}
> +	}
> +#endif /* !CONFIG_FSL_PCIE_STATIC_STREAM_IDS */
>  }
>  #endif
> 
> --
> 2.17.1
> 
> _______________________________________________
> upstream-release mailing list
> upstream-release@linux.nxdi.nxp.com
> https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flin
> ux.nxdi.nxp.com%2Fmailman%2Flistinfo%2Fupstream-
> release&amp;data=02%7C01%7Cbharat.bhushan%40nxp.com%7C58a43424e
> 5724733c5f908d686aa9f3f%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0
> %7C636844464703698542&amp;sdata=TZpx5GzIpO%2FUoGWMzDNPIy5SpH
> UZFkSIDQLkZn%2FZMJE%3D&amp;reserved=0
Laurentiu Tudor Jan. 31, 2019, 8:56 a.m. UTC | #2
Hi Bharat,

Actually I've sent this patch by mistake, sorry for that.
I'll drop it and resend the patch series.

---
Best Regards, Laurentiu

On 30.01.2019 16:41, Bharat Bhushan wrote:
> 
> 
>> -----Original Message-----
>> From: upstream-release-bounces@linux.nxdi.nxp.com <upstream-release-
>> bounces@linux.nxdi.nxp.com> On Behalf Of laurentiu.tudor@nxp.com
>> Sent: Wednesday, January 30, 2019 5:31 PM
>> To: u-boot@lists.denx.de; Prabhakar Kushwaha
>> <prabhakar.kushwaha@nxp.com>; York Sun <york.sun@nxp.com>
>> Cc: Laurentiu Tudor <laurentiu.tudor@nxp.com>
>> Subject: [upstream-release] [PATCH] pci: layerscape: add option to statically
>> allocate PCI StreamIDs
>>
>> From: Laurentiu Tudor <laurentiu.tudor@nxp.com>
>>
>> Certain PCI scenarios have more dynamic requirements, e.g. endpoints are
>> "hot-plugged" later in the system lifetime. Add a Kconfig option that allows
>> specifying a maximum number of end-points, per PCI controller and allocate
>> a StreamID for each one.
>>
>> Signed-off-by: Laurentiu Tudor <laurentiu.tudor@nxp.com>
>> ---
>>   arch/arm/cpu/armv8/fsl-layerscape/Kconfig | 28 +++++++++++++++++
>>   drivers/pci/pcie_layerscape_fixup.c       | 38 +++++++++++++++++++++++
>>   2 files changed, 66 insertions(+)
>>
>> diff --git a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
>> b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
>> index 2b086da79b..1d633d71a8 100644
>> --- a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
>> +++ b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
>> @@ -571,3 +571,31 @@ config TFABOOT
>>          help
>>            Enabling this will make a U-Boot binary that is capable of being
>>            booted via TFA.
>> +
>> +menuconfig FSL_PCIE_STATIC_STREAM_IDS
>> +	bool "Allocate PCI streamIDs statically"
>> +	default n
>> +	depends on PCIE_LAYERSCAPE
>> +	help
>> +	  Statically allocate a certain number of StreamIDs for each PCI
>> +	  controller, instead of enumerating the connected endpoints and
>> +	  allocate a StreamID for each one. This allocation method can
>> +	  be used in more dynamic PCI scenarios, e.g. where endpoints are
>> +	  "hot-plugged" later in the system bringup, by statically specifying
>> +	  a maximum number of StreamIDs expected for each PCI controller.
>> +
>> +if FSL_PCIE_STATIC_STREAM_IDS
>> +
>> +config FSL_PCIE1_STREAM_IDS_COUNT
>> +	default 3
>> +	int "Maximum number of streamIDs to allocate for PCI1 controller"
>> +
>> +config FSL_PCIE2_STREAM_IDS_COUNT
>> +	default 3
>> +	int "Maximum number of streamIDs to allocate for PCI2 controller"
>> +
>> +config FSL_PCIE3_STREAM_IDS_COUNT
>> +	default 3
>> +	int "Maximum number of streamIDs to allocate for PCI3 controller"
>> +
>> +endif
>> diff --git a/drivers/pci/pcie_layerscape_fixup.c
>> b/drivers/pci/pcie_layerscape_fixup.c
>> index 1a17bd98aa..32355cbf2e 100644
>> --- a/drivers/pci/pcie_layerscape_fixup.c
>> +++ b/drivers/pci/pcie_layerscape_fixup.c
>> @@ -177,6 +177,7 @@ static void fdt_pcie_set_iommu_map_entry(void
>> *blob, struct ls_pcie *pcie,
>>
>>   static void fdt_fixup_pcie(void *blob)
>>   {
>> +#if !CONFIG_FSL_PCIE_STATIC_STREAM_IDS
>>   	struct udevice *dev, *bus;
>>   	struct ls_pcie *pcie;
>>   	int streamid;
>> @@ -215,6 +216,43 @@ static void fdt_fixup_pcie(void *blob)
>>   		fdt_pcie_set_iommu_map_entry(blob, pcie, bdf >> 8,
>>   					     streamid);
>>   	}
>> +#else
>> +	static const int streamid_cnt[] = {
>> +		CONFIG_FSL_PCIE1_STREAM_IDS_COUNT,
>> +		CONFIG_FSL_PCIE2_STREAM_IDS_COUNT,
>> +		CONFIG_FSL_PCIE3_STREAM_IDS_COUNT
> 
> Why 3 controllers?
> 
>> +	};
>> +	struct ls_pcie *pcie;
>> +	int i, streamid, index;
>> +	pci_dev_t bdf;
>> +
>> +	list_for_each_entry(pcie, &ls_pcie_list, list) {
>> +		for (i = 0; i < streamid_cnt[pcie->idx]; i++) {
>> +			streamid = ls_pcie_next_streamid();
>> +			if (streamid < 0) {
>> +				debug("ERROR: no stream ids free\n");
>> +				continue;
> 
> Why to continue if we are out of stream-ids?
> 
>> +			}
>> +
>> +			index = ls_pcie_next_lut_index(pcie);
>> +			if (index < 0) {
>> +				debug("ERROR: no LUT indexes free\n");
>> +				continue;
> 
> We can error out when out of LUT entry
> 
>> +			}
>> +
>> +			bdf = PCI_BDF(i, 0, 0);
>> +			/* map PCI b.d.f to streamID in LUT */
>> +			ls_pcie_lut_set_mapping(pcie, index, bdf >> 8,
>> +						streamid);
>> +			/* update msi-map in device tree */
>> +			fdt_pcie_set_msi_map_entry(blob, pcie, bdf >> 8,
>> +						   streamid);
>> +			/* update iommu-map in device tree */
>> +			fdt_pcie_set_iommu_map_entry(blob, pcie, bdf >>
>> 8,
>> +						     streamid);
>> +		}
>> +	}
>> +#endif /* !CONFIG_FSL_PCIE_STATIC_STREAM_IDS */
>>   }
>>   #endif
>>
>> --
>> 2.17.1
>>
>> _______________________________________________
>> upstream-release mailing list
>> upstream-release@linux.nxdi.nxp.com
>> https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flin
>> ux.nxdi.nxp.com%2Fmailman%2Flistinfo%2Fupstream-
>> release&amp;data=02%7C01%7Cbharat.bhushan%40nxp.com%7C58a43424e
>> 5724733c5f908d686aa9f3f%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0
>> %7C636844464703698542&amp;sdata=TZpx5GzIpO%2FUoGWMzDNPIy5SpH
>> UZFkSIDQLkZn%2FZMJE%3D&amp;reserved=0
Pankaj Bansal Feb. 1, 2019, 10:24 a.m. UTC | #3
Hi Laurentiu,

> -----Original Message-----
> From: u-boot-bounces@linux.nxdi.nxp.com [mailto:u-boot-
> bounces@linux.nxdi.nxp.com] On Behalf Of laurentiu.tudor@nxp.com
> Sent: Wednesday, 30 January, 2019 05:31 PM
> To: u-boot@lists.denx.de; Prabhakar Kushwaha
> <prabhakar.kushwaha@nxp.com>; York Sun <york.sun@nxp.com>
> Subject: [u-boot] [PATCH] pci: layerscape: add option to statically allocate PCI
> StreamIDs
> 
> From: Laurentiu Tudor <laurentiu.tudor@nxp.com>
> 
> Certain PCI scenarios have more dynamic requirements, e.g. endpoints are "hot-
> plugged" later in the system lifetime. Add a Kconfig option that allows specifying
> a maximum number of end-points, per PCI controller and allocate a StreamID
> for each one.
> 
> Signed-off-by: Laurentiu Tudor <laurentiu.tudor@nxp.com>
> ---
>  arch/arm/cpu/armv8/fsl-layerscape/Kconfig | 28 +++++++++++++++++
>  drivers/pci/pcie_layerscape_fixup.c       | 38 +++++++++++++++++++++++
>  2 files changed, 66 insertions(+)
> 
> diff --git a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
> b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
> index 2b086da79b..1d633d71a8 100644
> --- a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
> +++ b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
> @@ -571,3 +571,31 @@ config TFABOOT
>         help
>           Enabling this will make a U-Boot binary that is capable of being
>           booted via TFA.
> +
> +menuconfig FSL_PCIE_STATIC_STREAM_IDS
> +	bool "Allocate PCI streamIDs statically"
> +	default n
> +	depends on PCIE_LAYERSCAPE
> +	help
> +	  Statically allocate a certain number of StreamIDs for each PCI
> +	  controller, instead of enumerating the connected endpoints and
> +	  allocate a StreamID for each one. This allocation method can
> +	  be used in more dynamic PCI scenarios, e.g. where endpoints are
> +	  "hot-plugged" later in the system bringup, by statically specifying
> +	  a maximum number of StreamIDs expected for each PCI controller.
> +
> +if FSL_PCIE_STATIC_STREAM_IDS
> +
> +config FSL_PCIE1_STREAM_IDS_COUNT
> +	default 3
> +	int "Maximum number of streamIDs to allocate for PCI1 controller"
> +
> +config FSL_PCIE2_STREAM_IDS_COUNT
> +	default 3
> +	int "Maximum number of streamIDs to allocate for PCI2 controller"
> +
> +config FSL_PCIE3_STREAM_IDS_COUNT
> +	default 3
> +	int "Maximum number of streamIDs to allocate for PCI3 controller"
> +
> +endif
> diff --git a/drivers/pci/pcie_layerscape_fixup.c
> b/drivers/pci/pcie_layerscape_fixup.c
> index 1a17bd98aa..32355cbf2e 100644
> --- a/drivers/pci/pcie_layerscape_fixup.c
> +++ b/drivers/pci/pcie_layerscape_fixup.c
> @@ -177,6 +177,7 @@ static void fdt_pcie_set_iommu_map_entry(void *blob,
> struct ls_pcie *pcie,
> 
>  static void fdt_fixup_pcie(void *blob)
>  {
> +#if !CONFIG_FSL_PCIE_STATIC_STREAM_IDS
>  	struct udevice *dev, *bus;
>  	struct ls_pcie *pcie;
>  	int streamid;
> @@ -215,6 +216,43 @@ static void fdt_fixup_pcie(void *blob)
>  		fdt_pcie_set_iommu_map_entry(blob, pcie, bdf >> 8,
>  					     streamid);
>  	}
> +#else
> +	static const int streamid_cnt[] = {
> +		CONFIG_FSL_PCIE1_STREAM_IDS_COUNT,
> +		CONFIG_FSL_PCIE2_STREAM_IDS_COUNT,
> +		CONFIG_FSL_PCIE3_STREAM_IDS_COUNT
> +	};
> +	struct ls_pcie *pcie;
> +	int i, streamid, index;
> +	pci_dev_t bdf;
> +
> +	list_for_each_entry(pcie, &ls_pcie_list, list) {
> +		for (i = 0; i < streamid_cnt[pcie->idx]; i++) {
> +			streamid = ls_pcie_next_streamid();
> +			if (streamid < 0) {
> +				debug("ERROR: no stream ids free\n");
> +				continue;
> +			}
> +
> +			index = ls_pcie_next_lut_index(pcie);
> +			if (index < 0) {
> +				debug("ERROR: no LUT indexes free\n");
> +				continue;
> +			}
> +
> +			bdf = PCI_BDF(i, 0, 0);

As per my understanding, the BUS number in our SOCs would always be 0 for each PCIE controller.
Only the device number and function number would change depending on the device(s) attached to PCIE controller.

> +			/* map PCI b.d.f to streamID in LUT */
> +			ls_pcie_lut_set_mapping(pcie, index, bdf >> 8,
> +						streamid);
> +			/* update msi-map in device tree */
> +			fdt_pcie_set_msi_map_entry(blob, pcie, bdf >> 8,
> +						   streamid);
> +			/* update iommu-map in device tree */
> +			fdt_pcie_set_iommu_map_entry(blob, pcie, bdf >> 8,
> +						     streamid);
> +		}
> +	}
> +#endif /* !CONFIG_FSL_PCIE_STATIC_STREAM_IDS */
>  }
>  #endif

Wouldn't the better alternative is to fix some stream IDs against BDF in device tree itself for all the PCIE devices that we know for sure would be attached to board.
And limit the available streamIDs to be used by bootloader for dynamically discovered PCIE devices.

> 
> --
> 2.17.1
> 
> _______________________________________________
> u-boot mailing list
> u-boot@linux.nxdi.nxp.com
> https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flinux.n
> xdi.nxp.com%2Fmailman%2Flistinfo%2Fu-
> boot&amp;data=02%7C01%7Cpankaj.bansal%40nxp.com%7C8f02f086ad484f22
> ec9608d686aaa058%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C63
> 6844464748371835&amp;sdata=1ls1cXUJ0AmJfqDgVxKM3FX6kpep%2F1Pvx1M
> ByOKl0Qc%3D&amp;reserved=0
diff mbox series

Patch

diff --git a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
index 2b086da79b..1d633d71a8 100644
--- a/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
+++ b/arch/arm/cpu/armv8/fsl-layerscape/Kconfig
@@ -571,3 +571,31 @@  config TFABOOT
        help
          Enabling this will make a U-Boot binary that is capable of being
          booted via TFA.
+
+menuconfig FSL_PCIE_STATIC_STREAM_IDS
+	bool "Allocate PCI streamIDs statically"
+	default n
+	depends on PCIE_LAYERSCAPE
+	help
+	  Statically allocate a certain number of StreamIDs for each PCI
+	  controller, instead of enumerating the connected endpoints and
+	  allocate a StreamID for each one. This allocation method can
+	  be used in more dynamic PCI scenarios, e.g. where endpoints are
+	  "hot-plugged" later in the system bringup, by statically specifying
+	  a maximum number of StreamIDs expected for each PCI controller.
+
+if FSL_PCIE_STATIC_STREAM_IDS
+
+config FSL_PCIE1_STREAM_IDS_COUNT
+	default 3
+	int "Maximum number of streamIDs to allocate for PCI1 controller"
+
+config FSL_PCIE2_STREAM_IDS_COUNT
+	default 3
+	int "Maximum number of streamIDs to allocate for PCI2 controller"
+
+config FSL_PCIE3_STREAM_IDS_COUNT
+	default 3
+	int "Maximum number of streamIDs to allocate for PCI3 controller"
+
+endif
diff --git a/drivers/pci/pcie_layerscape_fixup.c b/drivers/pci/pcie_layerscape_fixup.c
index 1a17bd98aa..32355cbf2e 100644
--- a/drivers/pci/pcie_layerscape_fixup.c
+++ b/drivers/pci/pcie_layerscape_fixup.c
@@ -177,6 +177,7 @@  static void fdt_pcie_set_iommu_map_entry(void *blob, struct ls_pcie *pcie,
 
 static void fdt_fixup_pcie(void *blob)
 {
+#if !CONFIG_FSL_PCIE_STATIC_STREAM_IDS
 	struct udevice *dev, *bus;
 	struct ls_pcie *pcie;
 	int streamid;
@@ -215,6 +216,43 @@  static void fdt_fixup_pcie(void *blob)
 		fdt_pcie_set_iommu_map_entry(blob, pcie, bdf >> 8,
 					     streamid);
 	}
+#else
+	static const int streamid_cnt[] = {
+		CONFIG_FSL_PCIE1_STREAM_IDS_COUNT,
+		CONFIG_FSL_PCIE2_STREAM_IDS_COUNT,
+		CONFIG_FSL_PCIE3_STREAM_IDS_COUNT
+	};
+	struct ls_pcie *pcie;
+	int i, streamid, index;
+	pci_dev_t bdf;
+
+	list_for_each_entry(pcie, &ls_pcie_list, list) {
+		for (i = 0; i < streamid_cnt[pcie->idx]; i++) {
+			streamid = ls_pcie_next_streamid();
+			if (streamid < 0) {
+				debug("ERROR: no stream ids free\n");
+				continue;
+			}
+
+			index = ls_pcie_next_lut_index(pcie);
+			if (index < 0) {
+				debug("ERROR: no LUT indexes free\n");
+				continue;
+			}
+
+			bdf = PCI_BDF(i, 0, 0);
+			/* map PCI b.d.f to streamID in LUT */
+			ls_pcie_lut_set_mapping(pcie, index, bdf >> 8,
+						streamid);
+			/* update msi-map in device tree */
+			fdt_pcie_set_msi_map_entry(blob, pcie, bdf >> 8,
+						   streamid);
+			/* update iommu-map in device tree */
+			fdt_pcie_set_iommu_map_entry(blob, pcie, bdf >> 8,
+						     streamid);
+		}
+	}
+#endif /* !CONFIG_FSL_PCIE_STATIC_STREAM_IDS */
 }
 #endif