Hi Bin, On 17 June 2017 at 07:35, Bin Meng <[email protected]> wrote: > This adds support for PCI-based AHCI controller and enables it on > x86 by default. > > Signed-off-by: Bin Meng <[email protected]> > --- > > drivers/ata/Kconfig | 7 +++++++ > drivers/ata/Makefile | 1 + > drivers/ata/ahci-pci.c | 42 ++++++++++++++++++++++++++++++++++++++++++ > 3 files changed, 50 insertions(+) > create mode 100644 drivers/ata/ahci-pci.c
I believe that if the device tree specifies this driver then it will override the generic PCI probing done here. Is that right? - Simon > > diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig > index 6427f1b..cc1c52c 100644 > --- a/drivers/ata/Kconfig > +++ b/drivers/ata/Kconfig > @@ -40,6 +40,13 @@ config DM_SCSI > > menu "SATA/SCSI device support" > > +config AHCI_PCI > + bool "Support for PCI-based AHCI controller" > + default y if X86 > + select DM_SCSI > + help > + Enables support for the PCI-based AHCI controller. > + > config SATA_CEVA > bool "Ceva Sata controller" > depends on AHCI > diff --git a/drivers/ata/Makefile b/drivers/ata/Makefile > index c48184c..4e2de93 100644 > --- a/drivers/ata/Makefile > +++ b/drivers/ata/Makefile > @@ -7,6 +7,7 @@ > > obj-$(CONFIG_DWC_AHCI) += dwc_ahci.o > obj-$(CONFIG_AHCI) += ahci-uclass.o > +obj-$(CONFIG_AHCI_PCI) += ahci-pci.o > obj-$(CONFIG_SCSI_AHCI) += ahci.o > obj-$(CONFIG_DWC_AHSATA) += dwc_ahsata.o > obj-$(CONFIG_FSL_SATA) += fsl_sata.o > diff --git a/drivers/ata/ahci-pci.c b/drivers/ata/ahci-pci.c > new file mode 100644 > index 0000000..f46fad8 > --- /dev/null > +++ b/drivers/ata/ahci-pci.c > @@ -0,0 +1,42 @@ > +/* > + * Copyright (C) 2017, Bin Meng <[email protected]> > + * > + * SPDX-License-Identifier: GPL-2.0+ > + */ > + > +#include <common.h> > +#include <ahci.h> > +#include <dm.h> > +#include <pci.h> > + > +static int ahci_pci_bind(struct udevice *dev) > +{ > + struct udevice *scsi_dev; > + > + return ahci_bind_scsi(dev, &scsi_dev); > +} > + > +static int ahci_pci_probe(struct udevice *dev) > +{ > + return ahci_probe_scsi(dev); > +} > + > +static const struct udevice_id ahci_pci_ids[] = { > + { .compatible = "ahci-pci" }, > + { } > +}; > + > +U_BOOT_DRIVER(ahci_pci) = { > + .name = "ahci_pci", > + .id = UCLASS_AHCI, > + .of_match = ahci_pci_ids, > + .bind = ahci_pci_bind, > + .probe = ahci_pci_probe, > +}; > + > +static struct pci_device_id ahci_pci_supported[] = { > + { PCI_DEVICE_CLASS(PCI_CLASS_STORAGE_SATA_AHCI, ~0) }, > + {}, > +}; > + > +U_BOOT_PCI_DEVICE(ahci_pci, ahci_pci_supported); > -- > 2.9.2 > _______________________________________________ U-Boot mailing list [email protected] https://lists.denx.de/listinfo/u-boot

