#include <fdt_support.h>
 
 extern int fsl_pci_setup_inbound_windows(struct pci_region *r);
+extern void fsl_pci_config_unlock(struct pci_controller *hose);
 extern void fsl_pci_init(struct pci_controller *hose);
 
 int first_free_busno = 0;
 
                fsl_pci_init(hose);
 
+               /* Unlock inbound PCI configuration cycles */
+               if (!host)
+                       fsl_pci_config_unlock(hose);
+
                first_free_busno = hose->last_busno+1;
                printf("    PCIE1 on bus %02x - %02x\n",
                                hose->first_busno, hose->last_busno);
                                        (int)&pci->cfg_data);
 
                fsl_pci_init(hose);
+
+               /* Unlock inbound PCI configuration cycles */
+               if (!host)
+                       fsl_pci_config_unlock(hose);
+
                first_free_busno = hose->last_busno+1;
                printf("    PCIE2 on bus %02x - %02x\n",
                                hose->first_busno, hose->last_busno);
                                        (int)&pci->cfg_data);
 
                fsl_pci_init(hose);
+
+               /* Unlock inbound PCI configuration cycles */
+               if (!host)
+                       fsl_pci_config_unlock(hose);
+
                first_free_busno = hose->last_busno+1;
                printf("    PCIE3 on bus %02x - %02x\n",
                                hose->first_busno, hose->last_busno);