Minor fixes for PPChameleon Board:
[platform/kernel/u-boot.git] / board / dave / PPChameleonEVB / PPChameleonEVB.c
index b08b119..1f6512d 100644 (file)
 
 /* ------------------------------------------------------------------------- */
 
-#if 0
-#define FPGA_DEBUG
-#endif
-
-/* fpga configuration data - gzip compressed and generated by bin2c */
-const unsigned char fpgadata[] =
-{
-#include "fpgadata.c"
-};
-
-/*
- * include common fpga code (for esd boards)
- */
-#include "../common/fpga.c"
-
-
 /* Prototypes */
-int gunzip(void *, int, unsigned char *, int *);
-
+int gunzip(void *, int, unsigned char *, unsigned long *);
 
 int board_early_init_f (void)
 {
@@ -60,13 +43,13 @@ int board_early_init_f (void)
         * IRQ 0-15  405GP internally generated; active high; level sensitive
         * IRQ 16    405GP internally generated; active low; level sensitive
         * IRQ 17-24 RESERVED
-        * IRQ 25 (EXT IRQ 0) CAN0; active low; level sensitive
-        * IRQ 26 (EXT IRQ 1) SER0 ; active low; level sensitive
-        * IRQ 27 (EXT IRQ 2) SER1; active low; level sensitive
-        * IRQ 28 (EXT IRQ 3) FPGA 0; active low; level sensitive
-        * IRQ 29 (EXT IRQ 4) FPGA 1; active low; level sensitive
-        * IRQ 30 (EXT IRQ 5) PCI INTA; active low; level sensitive
-        * IRQ 31 (EXT IRQ 6) COMPACT FLASH; active high; level sensitive
+        * IRQ 25 (EXT IRQ 0)
+        * IRQ 26 (EXT IRQ 1)
+        * IRQ 27 (EXT IRQ 2)
+        * IRQ 28 (EXT IRQ 3)
+        * IRQ 29 (EXT IRQ 4)
+        * IRQ 30 (EXT IRQ 5)
+        * IRQ 31 (EXT IRQ 6)
         */
        mtdcr(uicsr, 0xFFFFFFFF);       /* clear all ints */
        mtdcr(uicer, 0x00000000);       /* disable all ints */
@@ -84,11 +67,9 @@ int board_early_init_f (void)
 #else
        mtebc (epcr, 0x28400000); /* ebc in high-z */
 #endif
-
        return 0;
 }
 
-
 /* ------------------------------------------------------------------------- */
 
 int misc_init_f (void)
@@ -123,7 +104,7 @@ int misc_init_r (void)
        unsigned long cntrl0Reg;
 
        dst = malloc(CFG_FPGA_MAX_SIZE);
-       if (gunzip (dst, CFG_FPGA_MAX_SIZE, (uchar *)fpgadata, (int *)&len) != 0) {
+       if (gunzip (dst, CFG_FPGA_MAX_SIZE, (uchar *)fpgadata, &len) != 0) {
                printf ("GUNZIP ERROR - must RESET board to recover\n");
                do_reset (NULL, 0, 0, NULL);
        }
@@ -181,7 +162,6 @@ int misc_init_r (void)
        udelay(1000); /* wait 1ms */
        SET_FPGA(FPGA_PRG | FPGA_CLK | FPGA_DATA);
        udelay(1000); /* wait 1ms */
-
 #endif
 
 #if 0
@@ -199,7 +179,6 @@ int misc_init_r (void)
        return (0);
 }
 
-
 /*
  * Check Board Identity:
  */
@@ -268,8 +247,13 @@ nand_init(void)
 {
        ulong totlen = 0;
 
-#if (CONFIG_PPCHAMELEON_MODULE_MODEL == CONFIG_PPCHAMELEON_MODULE_ME) || \
+/*
+       The HI model is equipped with a large block NAND chip not supported yet
+       by U-Boot
     (CONFIG_PPCHAMELEON_MODULE_MODEL == CONFIG_PPCHAMELEON_MODULE_HI)
+*/
+
+#if (CONFIG_PPCHAMELEON_MODULE_MODEL == CONFIG_PPCHAMELEON_MODULE_ME)
        debug ("Probing at 0x%.8x\n", CFG_NAND0_BASE);
        totlen += nand_probe (CFG_NAND0_BASE);
 #endif /* CONFIG_PPCHAMELEON_MODULE_ME, CONFIG_PPCHAMELEON_MODULE_HI */
@@ -277,6 +261,42 @@ nand_init(void)
        debug ("Probing at 0x%.8x\n", CFG_NAND1_BASE);
        totlen += nand_probe (CFG_NAND1_BASE);
 
-       printf ("%4lu MB\n", totlen >>20);
+       printf ("%3lu MB\n", totlen >>20);
 }
 #endif
+
+#ifdef CONFIG_CFB_CONSOLE
+# ifdef CONFIG_CONSOLE_EXTRA_INFO
+# include <video_fb.h>
+extern GraphicDevice smi;
+
+void video_get_info_str (int line_number, char *info)
+{
+       uint pvr = get_pvr ();
+
+       /* init video info strings for graphic console */
+       switch (line_number) {
+       case 1:
+               switch (pvr) {
+               case PVR_405EP_RB:
+                       sprintf (info, " IBM PowerPC 405EP Rev. B");
+                       break;
+               default:
+                       sprintf (info, " IBM PowerPC 405EP Rev. <unknown>");
+                       break;
+               }
+               return;
+       case 2:
+               sprintf (info, " DAVE Srl PPChameleonEVB - www.dave-tech.it");
+               return;
+       case 3:
+               sprintf (info, " %s", smi.modeIdent);
+               return;
+       }
+
+       /* no more info lines */
+       *info = 0;
+       return;
+}
+# endif        /* CONFIG_CONSOLE_EXTRA_INFO */
+#endif /* CONFIG_CFB_CONSOLE */