123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- 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 at least three differences between the Yoo-ported RPXlite and the RPXlite_DW.
- Board(in U-Boot) version(in EmbeddedPlanet) CPU SDRAM FLASH
- RPXlite RPXlite CW 850 16MB 4MB
- 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.
- It has the following three features:
- 1. 64MHz/48MHz system frequence setting options.
- 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
- 2. CONFIG_ENV_IS_IN_FLASH/CONFIG_ENV_IS_IN_NVRAM
- The default environment parameter is stored in FLASH because it is a common choice for
- environment parameter.So I make NVRAM as backup parameter storeage.The reason why I
- didn't use EEPROM for ENV is that PlanetCore V2.0 use EEPROM as environment parameter
- 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.
- 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 basic make commands could be:
- make RPXlite_DW_config
- make RPXlite_DW_64_config
- make RPXlite_DW_LCD_config
- make RPXlite_DW_NVRAM_config
- BTW,you can combine the above features together and get a workable u-boot to meet your need.
- For example,to get a 64MHZ && ENV_IS_IN_FLASH && LCD panel support u-boot,you can type:
- make RPXlite_DW_NVRAM_64_LCD_config
- make all
- So other combining make commands could be:
- make RPXlite_DW_NVRAM_64_config
- make RPXlite_DW_NVRAM_LCD_config
- make RPXlite_DW_64_LCD_config
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- The boot process by "make RPXlite_DW_config" could be:
- 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
- DRAM: 64 MB
- FLASH: 16 MB
- *** Warning - bad CRC, using default environment
- In: serial
- Out: serial
- Err: serial
- Net: SCC ETHERNET
- u-boot>
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- A word on the U-Boot environment variable setting and usage :
- In the beginning, you could just need very simple default 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.
- Enjoy,
- Sam Song, samsongshu@yahoo.com.cn
- Institute of Electrical Machinery and Controls
- Shanghai University
- Oct. 11, 2004
|