From: Bin Meng Date: Wed, 7 Oct 2015 09:13:18 +0000 (-0700) Subject: pci: Fix expansion ROM programming for multi-function devices X-Git-Tag: v2015.10-rc5~40^2 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=7445435fb32824e0cfd05beb7013be8f84e9ee09;p=oweals%2Fu-boot.git pci: Fix expansion ROM programming for multi-function devices PCI_HEADER_TYPE register (offset 0x0e) bit 7 is an indicator for multi-function devices. We should mask it off before using it as the header type. Signed-off-by: Bin Meng Acked-by: Simon Glass --- diff --git a/drivers/pci/pci_auto.c b/drivers/pci/pci_auto.c index 41d5447f12..79f27c744b 100644 --- a/drivers/pci/pci_auto.c +++ b/drivers/pci/pci_auto.c @@ -185,6 +185,7 @@ void pciauto_setup_device(struct pci_controller *hose, #ifndef CONFIG_PCI_ENUM_ONLY /* Configure the expansion ROM address */ pci_hose_read_config_byte(hose, dev, PCI_HEADER_TYPE, &header_type); + header_type &= 0x7f; if (header_type != PCI_HEADER_TYPE_CARDBUS) { rom_addr = (header_type == PCI_HEADER_TYPE_NORMAL) ? PCI_ROM_ADDRESS : PCI_ROM_ADDRESS1;