162 lines
6.0 KiB
Plaintext
162 lines
6.0 KiB
Plaintext
|
|
||
|
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. CFG_ENV_IS_IN_FLASH/CFG_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 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.
|
||
|
|
||
|
Enjoy,
|
||
|
|
||
|
Sam Song, samsongshu@yahoo.com.cn
|
||
|
Institute of Electrical Machinery and Controls
|
||
|
Shanghai University
|
||
|
|
||
|
Oct. 11, 2004
|