Selaa lähdekoodia

85xx: Enable inbound PCI config cycles for X-ES boards

Update X-ES Freescale boards to allow inbound PCI configuration
cycles when configured as agent/endpoint.

Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
Peter Tyser 16 vuotta sitten
vanhempi
commit
487dcb4fb8
1 muutettua tiedostoa jossa 15 lisäystä ja 0 poistoa
  1. 15 0
      board/xes/common/fsl_85xx_pci.c

+ 15 - 0
board/xes/common/fsl_85xx_pci.c

@@ -29,6 +29,7 @@
 #include <fdt_support.h>
 #include <fdt_support.h>
 
 
 extern int fsl_pci_setup_inbound_windows(struct pci_region *r);
 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);
 extern void fsl_pci_init(struct pci_controller *hose);
 
 
 int first_free_busno = 0;
 int first_free_busno = 0;
@@ -138,6 +139,10 @@ void pci_init_board(void)
 
 
 		fsl_pci_init(hose);
 		fsl_pci_init(hose);
 
 
+		/* Unlock inbound PCI configuration cycles */
+		if (!host)
+			fsl_pci_config_unlock(hose);
+
 		first_free_busno = hose->last_busno+1;
 		first_free_busno = hose->last_busno+1;
 		printf("    PCIE1 on bus %02x - %02x\n",
 		printf("    PCIE1 on bus %02x - %02x\n",
 				hose->first_busno, hose->last_busno);
 				hose->first_busno, hose->last_busno);
@@ -187,6 +192,11 @@ void pci_init_board(void)
 					(int)&pci->cfg_data);
 					(int)&pci->cfg_data);
 
 
 		fsl_pci_init(hose);
 		fsl_pci_init(hose);
+
+		/* Unlock inbound PCI configuration cycles */
+		if (!host)
+			fsl_pci_config_unlock(hose);
+
 		first_free_busno = hose->last_busno+1;
 		first_free_busno = hose->last_busno+1;
 		printf("    PCIE2 on bus %02x - %02x\n",
 		printf("    PCIE2 on bus %02x - %02x\n",
 				hose->first_busno, hose->last_busno);
 				hose->first_busno, hose->last_busno);
@@ -237,6 +247,11 @@ void pci_init_board(void)
 					(int)&pci->cfg_data);
 					(int)&pci->cfg_data);
 
 
 		fsl_pci_init(hose);
 		fsl_pci_init(hose);
+
+		/* Unlock inbound PCI configuration cycles */
+		if (!host)
+			fsl_pci_config_unlock(hose);
+
 		first_free_busno = hose->last_busno+1;
 		first_free_busno = hose->last_busno+1;
 		printf("    PCIE3 on bus %02x - %02x\n",
 		printf("    PCIE3 on bus %02x - %02x\n",
 				hose->first_busno, hose->last_busno);
 				hose->first_busno, hose->last_busno);