* Fix startup problems with VFD display on TRAB

* Patch by Pierre Aubert, 20 Nov 2002
  Add driver for Epson SED13806 graphic controller.
  Add support for BMP logos in cfb_console driver.
diff --git a/include/configs/KUP4K.h b/include/configs/KUP4K.h
index 6de004f..7dc1b90 100644
--- a/include/configs/KUP4K.h
+++ b/include/configs/KUP4K.h
@@ -45,7 +45,7 @@
 #if 0
 #define CONFIG_BOOTDELAY	-1	/* autoboot disabled		*/
 #else
-#define CONFIG_BOOTDELAY	1	/* autoboot after 1 second	*/
+#define CONFIG_BOOTDELAY	5	/* autoboot after 1 second	*/
 #endif
 
 #define	CONFIG_CLOCKS_IN_MHZ	1	/* clocks passsed to Linux in MHz */
@@ -429,10 +429,12 @@
 #define BOOTFLAG_WARM	0x02		/* Software reboot			*/
 
 
+#if NOT_USED_FOR_NOW
 #define CONFIG_AUTOBOOT_KEYED		/* use key strings to stop autoboot */
 #if 0
 #define CONFIG_AUTOBOOT_PROMPT		"Boote in %d Sekunden - stop mit \"2\"\n"
 #endif
 #define CONFIG_AUTOBOOT_STOP_STR	"2" /* easy to stop for now */
+#endif /* NOT_USED_FOR_NOW */
 
 #endif	/* __CONFIG_H */
diff --git a/include/configs/RPXClassic.h b/include/configs/RPXClassic.h
index d742a25..f20b8f9 100644
--- a/include/configs/RPXClassic.h
+++ b/include/configs/RPXClassic.h
@@ -47,13 +47,27 @@
 #undef	CONFIG_8xx_CONS_NONE
 #define CONFIG_BAUDRATE		9600	/* console baudrate = 9600bps	*/
 
-
 /* Define CONFIG_FEC_ENET to use Fast ethernet instead of ethernet on SCC1   */
-#undef CONFIG_FEC_ENET
+#define CONFIG_FEC_ENET
 #ifdef CONFIG_FEC_ENET
 #define CFG_DISCOVER_PHY        1
+#define CONFIG_MII              1
 #endif /* CONFIG_FEC_ENET */
 
+/* Video console (graphic: Epson SED13806 on ECCX board, no keyboard         */
+#if 1
+#define CONFIG_VIDEO_SED13806
+#define CONFIG_NEC_NL6448BC20
+#define CONFIG_VIDEO_SED13806_16BPP
+
+#define CONFIG_CFB_CONSOLE
+#define CONFIG_VIDEO_LOGO
+#define CONFIG_VIDEO_BMP_LOGO
+#define CONFIG_CONSOLE_EXTRA_INFO
+#define CONFIG_VGA_AS_SINGLE_DEVICE
+#define CONFIG_VIDEO_SW_CURSOR
+#endif
+
 #if 0
 #define CONFIG_BOOTDELAY	-1	/* autoboot disabled		*/
 #else
@@ -168,7 +182,7 @@
 #define	CFG_SDRAM_BASE		0x00000000
 #define CFG_FLASH_BASE	0xFF000000
 
-#if defined(DEBUG) || (CONFIG_COMMANDS & CFG_CMD_IDE)
+#if defined(DEBUG) || defined (CONFIG_VIDEO_SED13806) || (CONFIG_COMMANDS & CFG_CMD_IDE) 
 #define	CFG_MONITOR_LEN		(256 << 10)	/* Reserve 256 kB for Monitor	*/
 #else
 #define	CFG_MONITOR_LEN		(128 << 10)	/* Reserve 128 kB for Monitor	*/
@@ -196,7 +210,8 @@
 #if 0
 #define	CFG_ENV_IS_IN_FLASH	1
 #define	CFG_ENV_OFFSET		0x20000	/*   Offset   of Environment Sector  */
-#define	CFG_ENV_SIZE		0x4000	/* Total Size of Environment Sector  */
+#define CFG_ENV_SECT_SIZE       0x8000
+#define	CFG_ENV_SIZE		0x8000	/* Total Size of Environment Sector  */
 #else
 #define CFG_ENV_IS_IN_NVRAM     1
 #define CFG_ENV_ADDR            0xfa000100
@@ -353,6 +368,48 @@
 #define	CFG_BR4_PRELIM	0xFA000401		/* NVRAM&SRAM */
 #define CFG_OR4_PRELIM	0xFFF80970
 
+/* ECCX CS settings                                                          */
+#define SED13806_OR             0xFFC00108     /* - 4 Mo
+                                                   - Burst inhibit
+                                                   - external TA             */
+#define SED13806_REG_ADDR       0xa0000000
+#define SED13806_ACCES          0x801           /* 16 bit access             */
+
+
+/* Global definitions for the ECCX board                                     */
+#define ECCX_CSR_ADDR           (0xfac00000)
+#define ECCX_CSR8_OFFSET        (0x8)
+#define ECCX_CSR11_OFFSET       (0xB)
+#define ECCX_CSR12_OFFSET       (0xC)
+
+#define ECCX_CSR8  (volatile unsigned char *)(ECCX_CSR_ADDR + ECCX_CSR8_OFFSET)
+#define ECCX_CSR11 (volatile unsigned char *)(ECCX_CSR_ADDR + ECCX_CSR11_OFFSET)
+#define ECCX_CSR12 (volatile unsigned char *)(ECCX_CSR_ADDR + ECCX_CSR12_OFFSET)
+
+
+#define REG_GPIO_CTRL 0x008
+
+/* Definitions for CSR8                                                      */
+#define ECCX_ENEPSON            0x80    /* Bit 0:
+                                           0= disable and reset SED1386
+                                           1= enable SED1386                 */
+/* Bit 1:   0= SED1386 in Big Endian mode                                    */
+/*          1= SED1386 in little endian mode                                 */
+#define ECCX_LE                 0x40
+#define ECCX_BE                 0x00
+
+/* Bit 2,3: Selection                                                        */
+/*      00 = Disabled                                                        */
+/*      01 = CS2 is used for the SED1386                                     */
+/*      10 = CS5 is used for the SED1386                                     */
+/*      11 = reserved                                                        */
+#define ECCX_CS2                0x10
+#define ECCX_CS5                0x20
+
+/* Definitions for CSR12                                                     */
+#define ECCX_ID                 0x02
+#define ECCX_860                0x01
+
 /*
  * Memory Periodic Timer Prescaler
  */
diff --git a/include/devices.h b/include/devices.h
index b1e1ebd..875710d 100644
--- a/include/devices.h
+++ b/include/devices.h
@@ -99,7 +99,7 @@
 #ifdef CONFIG_VFD
 int	drv_vfd_init (void);
 #endif
-#ifdef CONFIG_VIDEO
+#if defined(CONFIG_VIDEO) || defined(CONFIG_CFB_CONSOLE)
 int	drv_video_init (void);
 #endif
 #ifdef CONFIG_WL_4PPM_KEYBOARD
diff --git a/include/sed13806.h b/include/sed13806.h
new file mode 100644
index 0000000..70e8e87
--- /dev/null
+++ b/include/sed13806.h
@@ -0,0 +1,98 @@
+/*
+ * (C) Copyright 2002
+ * Stäubli Faverges - <www.staubli.com>
+ * Pierre AUBERT  p.aubert@staubli.com
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+/* Video support for Epson SED13806 chipset                                  */
+
+
+#ifndef _SED13806_H_
+#define _SED13806_H_
+
+
+/* General definitions                                                       */
+#define FRAME_BUFFER_OFFSET        0x200000     /* Frame buffer offset */
+#define TOTAL_SPACE_SIZE           0x400000
+
+#define DEFAULT_VIDEO_MEMORY_SIZE  0x140000     /* Video Memory Size */
+
+#define HWCURSORSIZE 		   1024     /* Size of memory reserved
+                                                   for HW cursor*/ 
+
+/* Offset of chipset registers                                               */
+#define	BLT_CTRL0	(0x0100)
+#define	BLT_CTRL1	(0x0101)
+#define BLT_ROP		(0x0102)
+#define	BLT_OP		(0x0103)
+#define BLT_SRC_ADDR0	(0x0104)
+#define	BLT_SRC_ADDR1	(0x0105)
+#define	BLT_SRC_ADDR2	(0x0106)
+#define	BLT_DST_ADDR0	(0x0108)
+#define BLT_DST_ADDR1	(0x0109)
+#define	BLT_DST_ADDR2	(0x010A)
+#define BLT_MEM_OFF0	(0x010C)
+#define BLT_MEM_OFF1	(0x010D)
+#define BLT_WIDTH0	(0x0110)
+#define BLT_WIDTH1	(0x0111)
+#define BLT_HEIGHT0	(0x0112)
+#define BLT_HEIGHT1	(0x0113)
+#define	BLT_BGCOLOR0	(0x0114)
+#define	BLT_BGCOLOR1	(0x0115)
+#define	BLT_FGCOLOR0	(0x0118)
+#define BLT_FGCOLOR1	(0x0119)
+
+#define BLT_REG         (0x100000)
+
+/* Lookup table registers                                                    */
+#define REG_LUT_ADDR 0x1e2
+#define REG_LUT_DATA 0x1e4
+
+/* Cursor/Ink registers                                                      */
+#define LCD_CURSOR_CNTL         (0x0070)
+#define LCD_CURSOR_START        (0x0071)
+#define LCD_CURSOR_XL           (0x0072)
+#define LCD_CURSOR_XM           (0x0073)
+#define LCD_CURSOR_YL           (0x0074)
+#define LCD_CURSOR_YM           (0x0075)
+#define LCD_CURSOR_COL0_B       (0x0076)
+#define LCD_CURSOR_COL0_G       (0x0077)
+#define LCD_CURSOR_COL0_R       (0x0078)
+#define LCD_CURSOR_COL1_B       (0x007A)
+#define LCD_CURSOR_COL1_G       (0x007B)
+#define LCD_CURSOR_COL1_R       (0x007C)
+#define LCD_CURSOR_FIFO         (0x007E)
+
+typedef struct
+{
+    unsigned short      Index;
+    unsigned char       Value;
+} S1D_REGS;
+
+
+
+/* Board specific functions                                                  */
+unsigned int board_video_init (void);
+void board_validate_screen (unsigned int base);
+const S1D_REGS *board_get_regs (void);
+int board_get_width (void);
+int board_get_height (void);
+
+#endif /* _SED13806_H_ */