]> git.karo-electronics.de Git - karo-tx-uboot.git/blobdiff - cpu/mpc86xx/cpu.c
Merge commit 'wd/master'
[karo-tx-uboot.git] / cpu / mpc86xx / cpu.c
index 3c7476445d01e1093a2484b83628167ac9bd836f..ecea5b0643896211960c4821ab9e11acae94f5c5 100644 (file)
@@ -26,6 +26,7 @@
 #include <watchdog.h>
 #include <command.h>
 #include <asm/cache.h>
+#include <asm/mmu.h>
 #include <mpc86xx.h>
 #include <asm/fsl_law.h>
 
@@ -213,6 +214,20 @@ get_tbclk(void)
 void
 watchdog_reset(void)
 {
+#if defined(CONFIG_MPC8610)
+       /*
+        * This actually feed the hard enabled watchdog.
+        */
+       volatile immap_t *immap = (immap_t *)CFG_IMMR;
+       volatile ccsr_wdt_t *wdt = &immap->im_wdt;
+       volatile ccsr_gur_t *gur = &immap->im_gur;
+       u32 tmp = gur->pordevsr;
+
+       if (tmp & 0x4000) {
+               wdt->swsrr = 0x556c;
+               wdt->swsrr = 0xaa39;
+       }
+#endif
 }
 #endif /* CONFIG_WATCHDOG */
 
@@ -268,13 +283,14 @@ dma_xfer(void *dest, uint count, void *src)
 
 /*
  * Print out the state of various machine registers.
- * Currently prints out LAWs and BR0/OR0
+ * Currently prints out LAWs, BR0/OR0, and BATs
  */
 void mpc86xx_reginfo(void)
 {
        immap_t *immap = (immap_t *)CFG_IMMR;
        ccsr_lbc_t *lbc = &immap->im_lbc;
 
+       print_bats();
        print_laws();
 
        printf ("Local Bus Controller Registers\n"
@@ -288,3 +304,29 @@ void mpc86xx_reginfo(void)
        printf("\tBR7\t0x%08X\tOR7\t0x%08X \n", in_be32(&lbc->br7), in_be32(&lbc->or7));
 
 }
+
+#ifdef CONFIG_TSEC_ENET
+/* Default initializations for TSEC controllers.  To override,
+ * create a board-specific function called:
+ *     int board_eth_init(bd_t *bis)
+ */
+
+extern int tsec_initialize(bd_t * bis, int index, char *devname);
+
+int cpu_eth_init(bd_t *bis)
+{
+#if defined(CONFIG_TSEC1)
+       tsec_initialize(bis, 0, CONFIG_TSEC1_NAME);
+#endif
+#if defined(CONFIG_TSEC2)
+       tsec_initialize(bis, 1, CONFIG_TSEC2_NAME);
+#endif
+#if defined(CONFIG_TSEC3)
+       tsec_initialize(bis, 2, CONFIG_TSEC3_NAME);
+#endif
+#if defined(CONFIG_TSEC4)
+       tsec_initialize(bis, 3, CONFIG_TSEC4_NAME);
+#endif
+       return 0;
+}
+#endif /* CONFIG_TSEC_ENET */