[U-Boot] [PATCH 1/3] arm64: mvebu: Trigger PCI devices scan at early init stage

Stefan Roese sr at denx.de
Thu Mar 30 13:31:34 UTC 2017


(adding Simon to Cc for PCI related question)

On 28.03.2017 17:36, kostap at marvell.com wrote:
> From: Konstantin Porotchkin <kostap at marvell.com>
>
> Add PCIe initialization at early init stage.
> This operation has a side effect of detecting all PCIe
> plug-in cards, so the operator is not obligated to issue
> "pci enum" command though CLI for this purpose.

I'm not sure, if this should be handled this way. Simon, how
is such a default PCI scan with DM supposed to get done? Is
there a way do do this automatically without the need that
the user has to issue "pci enum" manually?

> Also convert the SATA first device scan to a walk through
> all availabel SATA devices.

This should be done in a separate patch. But seeing this,
won't this SATA / AHCI code be gone completely from this
file, once this is converted into a "real" DM AHCI / SCSI
driver (please look at my preliminary patch for this).

> Signed-off-by: Konstantin Porotchkin <kostap at marvell.com>
> Cc: Stefan Roese <sr at denx.de>
> Cc: Igal Liberman <igall at marvell.com>
> Cc: Nadav Haklai <nadavh at marvell.com>
> ---
>  arch/arm/mach-mvebu/arm64-common.c | 13 +++++++++++--
>  1 file changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/mach-mvebu/arm64-common.c b/arch/arm/mach-mvebu/arm64-common.c
> index 8f02655..ff28750 100644
> --- a/arch/arm/mach-mvebu/arm64-common.c
> +++ b/arch/arm/mach-mvebu/arm64-common.c
> @@ -8,6 +8,7 @@
>  #include <dm.h>
>  #include <fdtdec.h>
>  #include <libfdt.h>
> +#include <pci.h>
>  #include <asm/io.h>
>  #include <asm/system.h>
>  #include <asm/arch/cpu.h>
> @@ -142,8 +143,16 @@ int arch_early_init_r(void)
>  			break;
>  	}
>
> -	/* Cause the SATA device to do its early init */
> -	uclass_first_device(UCLASS_AHCI, &dev);
> +	/* Cause the SATA devices to do their early init */
> +	for (uclass_first_device(UCLASS_AHCI, &dev);
> +	     dev;
> +	     uclass_next_device(&dev))
> +		;
> +
> +#ifdef CONFIG_DM_PCI
> +	/* Trigger PCIe devices detection */
> +	pci_init();
> +#endif
>
>  	return 0;
>  }
>

Thanks,
Stefan


More information about the U-Boot mailing list