| |
| 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 |