[U-Boot] [PATCH] pci: don't skip vendor ID 0

Bin Meng bmeng.cn at gmail.com
Wed Jan 25 15:14:56 CET 2017


Hi Gregory,

On Wed, Jan 25, 2017 at 1:25 PM, Gregory Fong
<Gregory.Fong at virgingalactic.com> wrote:
> Unlike 0xffff, 0 is not an invalid vendor ID.
>
> Signed-off-by: Gregory Fong <gregory.fong at virgingalactic.com>
> ---
> Based on question initially asked here:
> http://lists.denx.de/pipermail/u-boot/2016-December/276172.html
>
> I've been looking through the book I have on PCI and through various online
> resources, and haven't been able to find evidence that a vendor ID of 0 is
> invalid, even if it's unusual.  There are still issues in how this will be
> handled in e.g. drivers/pci/pci_common.c because pci_hose_find_devices() still
> assumes that a vendor and device ID of 0 mean that the last pci_device_id is
> reached, but this change at least allows the device's PCI BARs to get
> programmed if the vendor ID is 0.
>
>  drivers/pci/pci.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
> index 6b36c18..3ee7180 100644
> --- a/drivers/pci/pci.c
> +++ b/drivers/pci/pci.c
> @@ -366,7 +366,7 @@ int pci_hose_scan_bus(struct pci_controller *hose, int bus)
>
>                 pci_hose_read_config_word(hose, dev, PCI_VENDOR_ID, &vendor);
>
> -               if (vendor == 0xffff || vendor == 0x0000)
> +               if (vendor == 0xffff)
>                         continue;
>
>                 if (!PCI_FUNC(dev))

Do you have such a PCI device that has the vendor ID as zero? Or have
you ever seen such? If not, I would say let's leave this as it is.

Regards,
Bin


More information about the U-Boot mailing list