[PATCH] pci: layerscape: Fixup PCIe EP mode DT nodes for LX2160A rev2

Priyanka Jain priyanka.jain at nxp.com
Fri Sep 18 15:45:48 CEST 2020


>-----Original Message-----
>From: Zhiqiang Hou <Zhiqiang.Hou at nxp.com>
>Sent: Sunday, September 13, 2020 8:43 PM
>To: u-boot at lists.denx.de; Priyanka Jain <priyanka.jain at nxp.com>; Wasim
>Khan <wasim.khan at nxp.com>
>Cc: Z.q. Hou <zhiqiang.hou at nxp.com>
>Subject: [PATCH] pci: layerscape: Fixup PCIe EP mode DT nodes for LX2160A
>rev2
>
>From: Hou Zhiqiang <Zhiqiang.Hou at nxp.com>
>
>LX2160A rev2 uses different PCIe controller, so EP mode DT nodes also need
>to be fixed up.
>
>Signed-off-by: Hou Zhiqiang <Zhiqiang.Hou at nxp.com>
>---
> drivers/pci/pcie_layerscape_fixup_common.c | 26 ++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
>diff --git a/drivers/pci/pcie_layerscape_fixup_common.c
>b/drivers/pci/pcie_layerscape_fixup_common.c
>index fef0a75f11..0a42997696 100644
>--- a/drivers/pci/pcie_layerscape_fixup_common.c
>+++ b/drivers/pci/pcie_layerscape_fixup_common.c
>@@ -41,6 +41,8 @@ int lx2_board_fix_fdt(void *fdt)
> 		{ "config_axi_slave", "config" }
> 	};
> 	int off = -1, i;
>+	const fdt32_t *prop;
>+	u32 ob_wins, ib_wins;
>
> 	off = fdt_node_offset_by_compatible(fdt, -1, "fsl,lx2160a-pcie");
> 	while (off != -FDT_ERR_NOTFOUND) {
>@@ -86,6 +88,30 @@ int lx2_board_fix_fdt(void *fdt)
> 		off = fdt_node_offset_by_compatible(fdt, off,
> 						    "fsl,lx2160a-pcie");
> 	}
>+
>+	/* Fixup PCIe EP nodes */
>+	off = -1;
>+	off = fdt_node_offset_by_compatible(fdt, off, "fsl,lx2160a-pcie-ep");
>+	while (off != -FDT_ERR_NOTFOUND) {
>+		fdt_setprop_string(fdt, off, "compatible",
>+				   "fsl,lx2160ar2-pcie-ep");
>+		prop = fdt_getprop(fdt, off, "apio-wins", NULL);
>+		if (!prop) {
>+			printf("%s: Failed to fixup PCIe EP node @0x%x\n",
>+			       __func__, off);
>+			continue;
>+		}
>+
>+		ob_wins = fdt32_to_cpu(*prop);
>+		ib_wins = (ob_wins == 256) ? 24 : 8;
>+		fdt_setprop_u32(fdt, off, "num-ib-windows", ib_wins);
>+		fdt_setprop_u32(fdt, off, "num-ob-windows", ob_wins);
>+		fdt_delprop(fdt, off, "apio-wins");
>+
>+		off = fdt_node_offset_by_compatible(fdt, off,
>+						    "fsl,lx2160a-pcie-ep");
>+	}
>+
> 	return 0;
> }
>
>--
>2.17.1

Reviewed-by: Priyanka Jain <priyanka.jain at nxp.com> 




More information about the U-Boot mailing list