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

Bin Meng bmeng.cn at gmail.com
Sun Jun 2 14:22:06 UTC 2019


Hi Alex,

On Fri, May 31, 2019 at 12:27 AM Alex Marginean <alexm.osslist at gmail.com> wrote:
>
> 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>;

I think this should be <0x0 0x7> since you mentioned in the commit
message that only an 8M ECAM space is allocated.

> +               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

DT says the size is 0x100000. This does not match.

These macros really look to me this platform is still using lots of
non-DM approaches when it comes to driver support. These hard coded
values should really be dropped and retrieved from DT instead via
proper DM drivers.

>  #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
> --

Regards,
Bin


More information about the U-Boot mailing list