From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gregory Fong Date: Wed, 25 Jan 2017 05:25:27 +0000 Subject: [U-Boot] [PATCH] pci: don't skip vendor ID 0 Message-ID: <1485321910-12648-1-git-send-email-gregory.fong@virgingalactic.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Unlike 0xffff, 0 is not an invalid vendor ID. Signed-off-by: Gregory Fong --- 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)) -- 1.9.1