- if (CONFIG_VGA_PCI && bdf >= 0)
- lfb_addr = (pci_config_readl(bdf, PCI_BASE_ADDRESS_0)
- & PCI_BASE_ADDRESS_MEM_MASK);
+ if (CONFIG_VGA_PCI && bdf >= 0) {
+ int barid = 0;
+ u32 bar = pci_config_readl(bdf, PCI_BASE_ADDRESS_0);
+ if ((bar & PCI_BASE_ADDRESS_SPACE) != PCI_BASE_ADDRESS_SPACE_MEMORY) {
+ barid = 1;
+ bar = pci_config_readl(bdf, PCI_BASE_ADDRESS_1);
+ }
+ lfb_addr = bar & PCI_BASE_ADDRESS_MEM_MASK;
+ dprintf(1, "VBE DISPI: bdf %02x:%02x.%x, bar %d\n", pci_bdf_to_bus(bdf)
+ , pci_bdf_to_dev(bdf), pci_bdf_to_fn(bdf), barid);
+ }