Use standard formatting for PCI info during PCI init pass.
[seabios.git] / src / pciinit.c
index 597c8ea78173000435df7afd12754ce27e02b1f9..aa7c6afc131cfb2269951fa57fa516e9c291a408 100644 (file)
@@ -235,8 +235,8 @@ static void pci_bios_init_device(struct pci_device *pci)
     u16 bdf = pci->bdf;
     int pin, pic_irq;
 
-    dprintf(1, "PCI: bus=%d devfn=0x%02x: vendor_id=0x%04x device_id=0x%04x\n"
-            , pci_bdf_to_bus(bdf), pci_bdf_to_devfn(bdf)
+    dprintf(1, "PCI: init bdf=%02x:%02x.%x id=%04x:%04x\n"
+            , pci_bdf_to_bus(bdf), pci_bdf_to_dev(bdf), pci_bdf_to_fn(bdf)
             , pci->vendor, pci->device);
     pci_init_device(pci_class_tbl, pci, NULL);
 
@@ -481,7 +481,7 @@ static void pci_bios_map_device(struct pci_bus *bus, struct pci_device *dev)
                                      dev->bars[i].size);
         dprintf(1, "  bar %d, addr %x, size %x [%s]\n",
                 i, addr, dev->bars[i].size,
-                dev->bars[i].addr & PCI_BASE_ADDRESS_SPACE_IO ? "io" : "mem");
+                region_type_name[pci_addr_to_type(dev->bars[i].addr)]);
         pci_set_io_region_addr(bdf, i, addr);
 
         if (dev->bars[i].is64) {
@@ -507,9 +507,11 @@ static void pci_bios_map_device_in_bus(int bus)
     struct pci_device *pci;
 
     foreachpci(pci) {
-        if (pci_bdf_to_bus(pci->bdf) != bus)
+        u16 bdf = pci->bdf;
+        if (pci_bdf_to_bus(bdf) != bus)
             continue;
-        dprintf(1, "PCI: map device bus %d, bfd 0x%x\n", bus, pci->bdf);
+        dprintf(1, "PCI: map device bdf=%02x:%02x.%x\n"
+                , pci_bdf_to_bus(bdf), pci_bdf_to_dev(bdf), pci_bdf_to_fn(bdf));
         pci_bios_map_device(&busses[bus], pci);
     }
 }
@@ -536,7 +538,7 @@ static void pci_bios_init_bus_bases(struct pci_bus *bus)
     }
 }
 
-#define ROOT_BASE(top, sum, align) ALIGN_DOWN((top)-(sum),(align))
+#define ROOT_BASE(top, sum, max) ALIGN_DOWN((top)-(sum),(max) ?: 1)
 
 static int pci_bios_init_root_regions(u32 start, u32 end)
 {
@@ -577,7 +579,7 @@ pci_setup(void)
 {
     if (CONFIG_COREBOOT || usingXen()) {
         // PCI setup already done by coreboot or Xen - just do probe.
-        pci_probe();
+        pci_probe_devices();
         return;
     }
 
@@ -587,10 +589,13 @@ pci_setup(void)
     u32 end   = BUILD_PCIMEM_END;
 
     dprintf(1, "=== PCI bus & bridge init ===\n");
+    if (pci_probe_host() != 0) {
+        return;
+    }
     pci_bios_init_bus();
 
     dprintf(1, "=== PCI device probing ===\n");
-    pci_probe();
+    pci_probe_devices();
 
     dprintf(1, "=== PCI new allocation pass #1 ===\n");
     busses = malloc_tmp(sizeof(*busses) * busses_count);