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.
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
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
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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+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.
Institute of Electrical Machinery and Controls
Shanghai University
-June 8,2004
+Oct. 11, 2004
*/
/* #define DEBUG 1 */
+/* #ifdef DEPLOYMENT 1 */
#undef CONFIG_MPC860
#define CONFIG_MPC823 1 /* This is a MPC823e CPU. */
#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" \
"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 */
#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
*/
/* 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
*-----------------------------------------------------------------------