* Patch by Sam Song, 11 October 2004:
  - Add RESET/PREBOOT/AUTOBOOT support for RPXlite_DW board
  - Adjust CPU:BUS frequency ratio 1:1 when core frequency
    less than 50MHz

* Patch by Sam Song, 10 Oct 2004:
  Fix a parameter error in run_command() in main.c
diff --git a/CHANGELOG b/CHANGELOG
index 3b6d8da..e0081c4 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,7 +2,15 @@
 Changes for U-Boot 1.1.3:
 ======================================================================
 
-* Patches by Richard Woodruff, 01 Oct 2004:
+* Patch by Sam Song, 11 October 2004:
+  - Add RESET/PREBOOT/AUTOBOOT support for RPXlite_DW board
+  - Adjust CPU:BUS frequency ratio 1:1 when core frequency
+    less than 50MHz
+
+* Patch by Sam Song, 10 Oct 2004:
+  Fix a parameter error in run_command() in main.c
+
+* Patch by Richard Woodruff, 01 Oct 2004:
   add support for the TI OMAP2420 processor and its H4 reference
   board
 
diff --git a/board/RPXlite_dw/README b/board/RPXlite_dw/README
index bf44f17..4551718 100644
--- a/board/RPXlite_dw/README
+++ b/board/RPXlite_dw/README
@@ -2,11 +2,11 @@
 After following the step of Yoo. Jonghoon and Wolfgang Denk,
 I ported u-boot on RPXlite DW version board: RPXlite_DW or LITE_DW.
 
-There are three differences between the Yoo-ported RPXlite and the RPXlite_DW.
+There are at least three differences between the Yoo-ported RPXlite and the RPXlite_DW.
 
-Board(in U-BOOT)	version(in EmbeddedPlanet)	CPU	SDRAM	FLASH
+Board(in U-Boot)	version(in EmbeddedPlanet)	CPU	SDRAM	FLASH
 RPXlite				RPXlite CW		850	16MB	4MB
-RPXlite_DW			RPXlite DW		823e	64MB	16MB
+RPXlite_DW		RPXlite DW(EP 823 H1 DW)	823e	64MB	16MB
 
 This fireware is specially coded for EmbeddedPlanet Co. Software Development
 Platform(RPXlite DW),which has a NEC NL6448BC20-08 LCD panel.
@@ -17,6 +17,7 @@
 The default setting is 48MHz.To get a 64MHz u-boot,just add
 '64' in make command,like
 
+make distclean
 make RPXlite_DW_64_config
 make all
 
@@ -28,19 +29,21 @@
 home.Because of the possibility of using two firewares on this board,I didn't
 'disturb' EEPROM.To get NVRAM support,you may use the following build command:
 
+make distclean
 make RPXlite_DW_NVRAM_config
 make all
 
 3. LCD panel support
 
-To support the Platform better,I added LCD panel(NL6448BC20-08) function.But bewear of
-the fact that once you build this support and program it to FLASH,you should make sure
-you put workable kernel and ramdisk at the right place in FLASH or through NFS.
-Otherwise, you must erase this fireware manually via BDI2000 or ICE tools.So this
-function is used for deployment and demo only.Pls look before you leap.
+To support the Platform better,I added LCD panel(NL6448BC20-08) function.
+For the convenience of debug, CONFIG_PERBOOT was supported. So you just
+perss ENTER if you want to get a serial console in boot downcounting.
+Then you can switch to LCD and serial console freely just typing 
+'run lcd' or 'run ser'. They are only vaild when CONFIG_LCD was enabled.
 
 To get a LCD support u-boot,you can do the following:
 
+make distclean
 make RPXlite_DW_LCD_config
 make all
 
@@ -68,7 +71,7 @@
 
 The boot process by "make RPXlite_DW_config" could be:
 
-U-Boot 1.1.1 (Jun  8 2004 - 11:16:30)
+U-Boot 1.1.2 (Aug 29 2004 - 15:11:27)
 
 CPU:   PPC823EZTnnB2 at 48 MHz: 16 kB I-Cache 8 kB D-Cache
 Board: RPXlite_DW
@@ -84,6 +87,68 @@
 
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
+A word on the U-Boot enviroment variable setting and usage :
+
+In the beginning, you could just need very simple defult environment variable setting,
+like[include/configs/RPXlite.h] :
+
+#define CONFIG_BOOTCOMMAND                                                      \
+        "bootp; "                                                               \
+        "setenv bootargs root=/dev/nfs rw nfsroot=$(serverip):$(rootpath) "     \
+        "ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask):$(hostname)::off; "   \
+        "bootm"
+
+This is enough for kernel NFS test. But as debug process goes on, you would expect 
+to save some time on environment variable setting and u-boot/kernel updating.
+So the default environment variable setting would become more complicated. Just like
+the one I did in include/configs/RPXlite_DW.h.
+
+Two u-boot commands, ku and uu, should be careful to use. They were designed to update
+kernel and u-boot image file respectively. You must tftp your image to default address 
+'100000' and then use them correctly. Yeah, you can create your own command to do this
+job. :-) The example u-boot image updating process could be :
+
+u-boot>t 100000 RPXlite_DW_LCD.bin
+Using SCC ETHERNET device
+TFTP from server 172.16.115.6; our IP address is 172.16.115.7
+Filename 'RPXlite_DW_LCD.bin'.
+Load address: 0x100000
+Loading: #############################
+done
+Bytes transferred = 144700 (2353c hex)
+u-boot>run uu
+Un-Protect Flash Sectors 0-4 in Bank # 1
+Erase Flash Sectors 0-4 in Bank # 1
+.... done
+Copy to Flash... done
+ff000000: 27051956 552d426f 6f742031 2e312e32    '..VU-Boot 1.1.2
+ff000010: 20284175 67203239 20323030 34202d20     (Aug 29 2004 -
+ff000020: 31353a32 303a3238 29000000 00000000    15:20:28).......
+ff000030: 00000000 00000000 00000000 00000000    ................
+ff000040: 00000000 00000000 00000000 00000000    ................
+ff000050: 00000000 00000000 00000000 00000000    ................
+ff000060: 00000000 00000000 00000000 00000000    ................
+ff000070: 00000000 00000000 00000000 00000000    ................
+ff000080: 00000000 00000000 00000000 00000000    ................
+ff000090: 00000000 00000000 00000000 00000000    ................
+ff0000a0: 00000000 00000000 00000000 00000000    ................
+ff0000b0: 00000000 00000000 00000000 00000000    ................
+ff0000c0: 00000000 00000000 00000000 00000000    ................
+ff0000d0: 00000000 00000000 00000000 00000000    ................
+ff0000e0: 00000000 00000000 00000000 00000000    ................
+ff0000f0: 00000000 00000000 00000000 00000000    ................
+u-boot updating finished
+u-boot>
+
+Also for environment updating, 'run eu' could let you erase OLD default environment variable
+and then use the working u-boot environment setting.
+
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Finally, if you want to keep the serial port to possible debug on spot for deployment, you
+just need to enable 'DEPLOYMENT' in RPXlite_DW.h as 'DEBUG' does. Only the special string
+defined by CONFIG_AUTOBOOT_STOP_STR like 'st' can stop the autoboot.
+
 I'd like to extend my heartfelt gratitute to kind people for helping me work it out.
 I would particually thank Wolfgang Denk for his nice help.
 
@@ -93,4 +158,4 @@
 Institute of Electrical Machinery and Controls
 Shanghai University
 
-June 8,2004
+Oct. 11, 2004
diff --git a/common/main.c b/common/main.c
index 0869426..9f649db 100644
--- a/common/main.c
+++ b/common/main.c
@@ -432,7 +432,7 @@
 	    s = getenv("menucmd");
 	    if (s) {
 # ifndef CFG_HUSH_PARSER
-		run_command (s, bd, 0);
+		run_command (s, 0);
 # else
 		parse_string_outer(s, FLAG_PARSE_SEMICOLON |
 				    FLAG_EXIT_FROM_LOOP);
diff --git a/include/configs/RPXlite_DW.h b/include/configs/RPXlite_DW.h
index d0e427d..6f23931 100644
--- a/include/configs/RPXlite_DW.h
+++ b/include/configs/RPXlite_DW.h
@@ -45,6 +45,7 @@
  */
 
 /* #define DEBUG	1 */
+/* #ifdef DEPLOYMENT	1 */
 
 #undef	CONFIG_MPC860
 #define CONFIG_MPC823		1	/* This is a MPC823e CPU. */
@@ -59,19 +60,31 @@
 #undef	CONFIG_8xx_CONS_NONE
 #define CONFIG_BAUDRATE		9600	/* console default baudrate = 9600bps	*/
 
-#ifdef	CONFIG_LCD
-#define CONFIG_BOOTDELAY	12	/* autoboot after 12 seconds	*/
+#ifdef DEBUG
+#define CONFIG_BOOTDELAY        -1      /* autoboot disabled            */
 #else
-#define CONFIG_BOOTDELAY	-1	/* autoboot disabled		*/
+#define CONFIG_BOOTDELAY        6       /* autoboot after 6 seconds     */
+
+#ifdef DEPLOYMENT
+#define CONFIG_BOOT_RETRY_TIME          -1
+#define CONFIG_AUTOBOOT_KEYED
+#define CONFIG_AUTOBOOT_PROMPT          "autoboot in %d seconds (stop with 'st')...\n"
+#define CONFIG_AUTOBOOT_STOP_STR        "st"
+#define CONFIG_ZERO_BOOTDELAY_CHECK
+#define CONFIG_RESET_TO_RETRY           1
+#define CONFIG_BOOT_RETRY_MIN           1
+#endif
 #endif
 
+/* pre-boot commands */
+#define CONFIG_PREBOOT          "setenv stdout serial;setenv stdin serial"
+
 #undef	CONFIG_BOOTARGS
 #define CONFIG_EXTRA_ENV_SETTINGS					\
 	"netdev=eth0\0"							\
-	"nfsargs=setenv bootargs console=ttyS0,9600 root=/dev/nfs rw "	\
-		"nfsroot=$(serverip):$(rootpath)\0"			\
-	"ramargs=setenv bootargs console=tty0 console=ttyS0,9600 "	\
-		"root=/dev/ram rw\0"					\
+	"nfsargs=setenv bootargs console=tty0 console=ttyS0,9600 "	\
+		"root=/dev/nfs rw nfsroot=$(serverip):$(rootpath)\0"	\
+	"ramargs=setenv bootargs console=tty0 root=/dev/ram rw\0"	\
 	"addip=setenv bootargs $(bootargs) "				\
 		"ip=$(ipaddr):$(serverip):$(gatewayip):$(netmask)"	\
 		":$(hostname):$(netdev):off panic=1\0"			\
@@ -82,9 +95,25 @@
 	"net_nfs=tftp 200000 $(bootfile);run nfsargs addip;bootm\0"	\
 	"gatewayip=172.16.115.254\0"					\
 	"netmask=255.255.255.0\0"					\
+<<<<<<< RPXlite_DW.h
+	"kernel_addr=ff040000\0"					\
+	"ramdisk_addr=ff200000\0"					\
+	"ku=era $(kernel_addr) ff1fffff;cp.b 100000 $(kernel_addr) "	\
+		"$(filesize);md $(kernel_addr);"			\
+		"echo kernel updating finished\0"			\
+	"uu=protect off 1:0-4;era 1:0-4;cp.b 100000 ff000000 "		\
+		"$(filesize);md ff000000;"				\
+		"echo u-boot updating finished\0"			\
+	"eu=protect off 1:6;era 1:6;reset\0"				\
+	"lcd=setenv stdout lcd;setenv stdin lcd\0"			\
+	"ser=setenv stdout serial;setenv stdin serial\0"		\
+	"verify=no"
+	
+=======
 	"kernel_addr=ff080000\0"					\
 	"ramdisk_addr=ff200000\0"					\
 	""
+>>>>>>> 1.3
 #define CONFIG_BOOTCOMMAND	"run flash_self"
 
 #define CONFIG_LOADS_ECHO	1	/* echo on for serial download	*/
@@ -178,8 +207,13 @@
 #define CFG_ENV_SIZE		0x8000	/* Total Size of Environment Sector	*/
 #endif
 
+<<<<<<< RPXlite_DW.h
+#define CFG_RESET_ADDRESS	((ulong)((((immap_t *)CFG_IMMR)->im_clkrst.res)))
+	
+=======
 #define CFG_RESET_ADDRESS	((ulong)((((immap_t *)CFG_IMMR)->im_clkrst.res)))
 
+>>>>>>> 1.3
 /*-----------------------------------------------------------------------
  * Cache Configuration
  */
@@ -254,10 +288,16 @@
 /* Up to 48MHz system clock, we use 1:1 SYSTEM/BUS ratio */
 #if defined(RPXlite_64MHz)
 #define CFG_SCCR	( SCCR_TBS | SCCR_EBDF01 )  /* %%%SCCR:0x02020000 */
+<<<<<<< RPXlite_DW.h
+#else
+#define CFG_SCCR        ( SCCR_TBS | SCCR_EBDF00 )  /* %%%SCCR:0x02000000 */
+#endif
+=======
 #else
 #define CFG_SCCR	( SCCR_TBS | SCCR_EBDF00 )  /* %%%SCCR:0x02000000 */
 #endif
 
+>>>>>>> 1.3
 /*-----------------------------------------------------------------------
  * PCMCIA stuff
  *-----------------------------------------------------------------------