[U-Boot] [PATCH] arm: ls1028a: define the integrated PCI bus (ECAM)

Alex Marginean alexm.osslist at gmail.com
Thu May 30 16:26:27 UTC 2019


LS1028A includes an integrated PCI bus with 8M of ECAM space plus register
space for the integrated devices.  This integrated PCI bus is driven using
the generic ECAM driver.

Signed-off-by: Alex Marginean <alexm.osslist at gmail.com>
---
 arch/arm/dts/fsl-ls1028a.dtsi                          | 10 ++++++++++
 arch/arm/include/asm/arch-fsl-layerscape/cpu.h         |  2 ++
 arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h |  2 ++
 configs/ls1028aqds_tfa_defconfig                       |  1 +
 configs/ls1028ardb_tfa_defconfig                       |  1 +
 5 files changed, 16 insertions(+)

diff --git a/arch/arm/dts/fsl-ls1028a.dtsi b/arch/arm/dts/fsl-ls1028a.dtsi
index e6a443aa77..263c29af23 100644
--- a/arch/arm/dts/fsl-ls1028a.dtsi
+++ b/arch/arm/dts/fsl-ls1028a.dtsi
@@ -108,6 +108,16 @@
 		       0x82000000 0x0 0x40000000 0x88 0x40000000 0x0 0x40000000>; /* non-prefetchable memory */
 	};
 
+	pcie at 1f0000000 {
+		compatible = "pci-host-ecam-generic";
+		reg = <0x01 0xf0000000 0x0 0x100000>;
+		#address-cells = <3>;
+		#size-cells = <2>;
+		device_type = "pci";
+		bus-range = <0x0 0x0>;
+		ranges= <0x82000000 0x0 0x00000000 0x1 0xf8000000 0x0 0x160000>;
+	};
+
 	i2c0: i2c at 2000000 {
 		compatible = "fsl,vf610-i2c";
 		#address-cells = <1>;
diff --git a/arch/arm/include/asm/arch-fsl-layerscape/cpu.h b/arch/arm/include/asm/arch-fsl-layerscape/cpu.h
index bdeb62576c..7759acdb8f 100644
--- a/arch/arm/include/asm/arch-fsl-layerscape/cpu.h
+++ b/arch/arm/include/asm/arch-fsl-layerscape/cpu.h
@@ -42,7 +42,9 @@
 #else
 #define CONFIG_SYS_PCIE1_PHYS_SIZE	0x800000000
 #define CONFIG_SYS_PCIE2_PHYS_SIZE	0x800000000
+#ifndef CONFIG_SYS_PCIE3_PHYS_SIZE
 #define CONFIG_SYS_PCIE3_PHYS_SIZE	0x800000000
+#endif
 #define CONFIG_SYS_PCIE4_PHYS_SIZE	0x800000000
 #define SYS_PCIE5_PHYS_SIZE		0x800000000
 #define SYS_PCIE6_PHYS_SIZE		0x800000000
diff --git a/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h b/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h
index 24c1b0e482..273157230f 100644
--- a/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h
+++ b/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h
@@ -186,6 +186,8 @@
 #elif CONFIG_ARCH_LS1028A
 #define CONFIG_SYS_PCIE1_PHYS_ADDR		0x8000000000ULL
 #define CONFIG_SYS_PCIE2_PHYS_ADDR		0x8800000000ULL
+#define CONFIG_SYS_PCIE3_PHYS_ADDR		0x01f0000000ULL
+#define CONFIG_SYS_PCIE3_PHYS_SIZE		0x0010000000ULL
 #else
 #define CONFIG_SYS_PCIE1_PHYS_ADDR		0x1000000000ULL
 #define CONFIG_SYS_PCIE2_PHYS_ADDR		0x1200000000ULL
diff --git a/configs/ls1028aqds_tfa_defconfig b/configs/ls1028aqds_tfa_defconfig
index 717b810523..7982ce4157 100644
--- a/configs/ls1028aqds_tfa_defconfig
+++ b/configs/ls1028aqds_tfa_defconfig
@@ -48,6 +48,7 @@ CONFIG_E1000=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
+CONFIG_PCIE_ECAM_GENERIC=y
 CONFIG_PCIE_LAYERSCAPE=y
 CONFIG_SCSI=y
 CONFIG_DM_SCSI=y
diff --git a/configs/ls1028ardb_tfa_defconfig b/configs/ls1028ardb_tfa_defconfig
index a8e4ddb7a8..c65e37df79 100644
--- a/configs/ls1028ardb_tfa_defconfig
+++ b/configs/ls1028ardb_tfa_defconfig
@@ -48,6 +48,7 @@ CONFIG_E1000=y
 CONFIG_PCI=y
 CONFIG_DM_PCI=y
 CONFIG_DM_PCI_COMPAT=y
+CONFIG_PCIE_ECAM_GENERIC=y
 CONFIG_PCIE_LAYERSCAPE=y
 CONFIG_SCSI=y
 CONFIG_DM_SCSI=y
-- 
2.17.1



More information about the U-Boot mailing list