diff --git a/core/pci.c b/core/pci.c
index 5bb0c2e2..476a3825 100644
--- a/core/pci.c
+++ b/core/pci.c
@@ -214,8 +214,8 @@ bool pci_wait_crs(struct phb *phb, uint16_t bdfn, uint32_t *out_vdid)
 	return true;
 }
 
-static struct pci_device *pci_scan_one(struct phb *phb, struct pci_device *parent,
-				       uint16_t bdfn)
+struct pci_device *pci_scan_one(struct phb *phb, struct pci_device *parent,
+				uint16_t bdfn)
 {
 	struct pci_device *pd = NULL;
 	uint32_t vdid;
diff --git a/include/pci.h b/include/pci.h
index 20edb50c..64329664 100644
--- a/include/pci.h
+++ b/include/pci.h
@@ -444,6 +444,8 @@ extern void pci_remove_bus(struct phb *phb, struct list_head *list);
 extern uint8_t pci_scan_bus(struct phb *phb, uint8_t bus, uint8_t max_bus,
 			    struct list_head *list, struct pci_device *parent,
 			    bool scan_downstream);
+extern struct pci_device *pci_scan_one(struct phb *phb, struct pci_device *parent,
+				       uint16_t bdfn);
 extern void pci_add_device_nodes(struct phb *phb,
 				 struct list_head *list,
 				 struct dt_node *parent_node,
