]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - board/pm826/pm826.c
Add PCI support for MPC8250 Boards (PM825 module)
[karo-tx-uboot.git] / board / pm826 / pm826.c
index c59b0284094fe0fdfab835473cb22297f3b27806..926d74bdd64e44c434b41d561abbecd1205b0bee 100644 (file)
@@ -24,6 +24,7 @@
 #include <common.h>
 #include <ioports.h>
 #include <mpc8260.h>
+#include <pci.h>
 
 /*
  * I/O Port configuration table
@@ -72,20 +73,27 @@ const iop_conf_t iop_conf_tab[4][32] = {
 
     /* Port B configuration */
     {   /*           conf ppar psor pdir podr pdat */
-       /* PB31 */ {   0,   1,   0,   1,   0,   0   }, /* PB31 */
-       /* PB30 */ {   0,   1,   0,   0,   0,   0   }, /* PB30 */
-       /* PB29 */ {   0,   1,   1,   1,   0,   0   }, /* PB29 */
+       /* PB31 */ {   1,   1,   0,   1,   0,   0   }, /* FCC2 TX_ER */
+       /* PB30 */ {   1,   1,   0,   0,   0,   0   }, /* FCC2 RX_DV  */
+       /* PB29 */ {   1,   1,   1,   1,   0,   0   }, /* FCC2 TX_EN  */
+#if defined(CONFIG_ETHER_ON_SCC) && (CONFIG_ETHER_INDEX == 1)
+#ifdef CONFIG_ETHER_ON_FCC2
+#error "SCC1 conflicts with FCC2"
+#endif
        /* PB28 */ {   1,   1,   1,   1,   0,   0   }, /* SCC1 TXD */
-       /* PB27 */ {   0,   1,   0,   0,   0,   0   }, /* PB27 */
-       /* PB26 */ {   0,   1,   0,   0,   0,   0   }, /* PB26 */
-       /* PB25 */ {   0,   1,   0,   1,   0,   0   }, /* PB25 */
-       /* PB24 */ {   0,   1,   0,   1,   0,   0   }, /* PB24 */
-       /* PB23 */ {   0,   1,   0,   1,   0,   0   }, /* PB23 */
-       /* PB22 */ {   0,   1,   0,   1,   0,   0   }, /* PB22 */
-       /* PB21 */ {   0,   1,   0,   0,   0,   0   }, /* PB21 */
-       /* PB20 */ {   0,   1,   0,   0,   0,   0   }, /* PB20 */
-       /* PB19 */ {   0,   1,   0,   0,   0,   0   }, /* PB19 */
-       /* PB18 */ {   0,   1,   0,   0,   0,   0   }, /* PB18 */
+#else
+       /* PB28 */ {   1,   1,   0,   0,   0,   0   }, /* FCC2 RX_ER */
+#endif
+       /* PB27 */ {   1,   1,   0,   0,   0,   0   }, /* FCC2 COL */
+       /* PB26 */ {   1,   1,   0,   0,   0,   0   }, /* FCC2 CRS */
+       /* PB25 */ {   1,   1,   0,   1,   0,   0   }, /* FCC2 TxD[3] */
+       /* PB24 */ {   1,   1,   0,   1,   0,   0   }, /* FCC2 TxD[2] */
+       /* PB23 */ {   1,   1,   0,   1,   0,   0   }, /* FCC2 TxD[1] */
+       /* PB22 */ {   1,   1,   0,   1,   0,   0   }, /* FCC2 TxD[0] */
+       /* PB21 */ {   1,   1,   0,   0,   0,   0   }, /* FCC2 RxD[0] */
+       /* PB20 */ {   1,   1,   0,   0,   0,   0   }, /* FCC2 RxD[1] */
+       /* PB19 */ {   1,   1,   0,   0,   0,   0   }, /* FCC2 RxD[2] */
+       /* PB18 */ {   1,   1,   0,   0,   0,   0   }, /* FCC2 RxD[3] */
        /* PB17 */ {   0,   0,   0,   0,   0,   0   }, /* PB17 */
        /* PB16 */ {   0,   0,   0,   0,   0,   0   }, /* PB16 */
        /* PB15 */ {   1,   1,   0,   0,   0,   0   }, /* SCC2 RXD */
@@ -119,9 +127,9 @@ const iop_conf_t iop_conf_tab[4][32] = {
        /* PC23 */ {   0,   1,   0,   1,   0,   0   }, /* PC23 */
        /* PC22 */ {   1,   1,   0,   0,   0,   0   }, /* FCC1 TXCK */
        /* PC21 */ {   1,   1,   0,   0,   0,   0   }, /* FCC1 RXCK */
-       /* PC20 */ {   0,   1,   0,   0,   0,   0   }, /* PC20 */
-       /* PC19 */ {   0,   1,   0,   0,   0,   0   }, /* PC19 */
-       /* PC18 */ {   0,   1,   0,   0,   0,   0   }, /* PC18 */
+       /* PC20 */ {   1,   1,   0,   0,   0,   0   }, /* FCC1 TXCK(2) */
+       /* PC19 */ {   1,   1,   0,   0,   0,   0   }, /* FCC2 RXCK */
+       /* PC18 */ {   1,   1,   0,   0,   0,   0   }, /* FCC2 TXCK */
        /* PC17 */ {   0,   0,   0,   1,   0,   0   }, /* PC17 */
        /* PC16 */ {   0,   0,   0,   1,   0,   0   }, /* PC16 */
        /* PC15 */ {   1,   1,   0,   1,   0,   0   }, /* SMC2 TXD */
@@ -342,3 +350,12 @@ void doc_init (void)
        doc_probe (CFG_DOC_BASE);
 }
 #endif
+
+struct pci_controller hose;
+
+extern void pci_mpc8250_init(struct pci_controller *);
+
+void pci_init_board(void)
+{
+       pci_mpc8250_init(&hose);
+}