wdenk | e63c8ee | 2004-06-09 21:04:48 +0000 | [diff] [blame] | 1 | |
| 2 | After following the step of Yoo. Jonghoon and Wolfgang Denk, |
| 3 | I ported u-boot on RPXlite DW version board: RPXlite_DW or LITE_DW. |
| 4 | |
wdenk | 6225c5d | 2005-01-09 23:33:49 +0000 | [diff] [blame] | 5 | There are at least three differences between the Yoo-ported RPXlite and the RPXlite_DW. |
wdenk | e63c8ee | 2004-06-09 21:04:48 +0000 | [diff] [blame] | 6 | |
wdenk | 6225c5d | 2005-01-09 23:33:49 +0000 | [diff] [blame] | 7 | Board(in U-Boot) version(in EmbeddedPlanet) CPU SDRAM FLASH |
wdenk | e63c8ee | 2004-06-09 21:04:48 +0000 | [diff] [blame] | 8 | RPXlite RPXlite CW 850 16MB 4MB |
wdenk | 6225c5d | 2005-01-09 23:33:49 +0000 | [diff] [blame] | 9 | RPXlite_DW RPXlite DW(EP 823 H1 DW) 823e 64MB 16MB |
wdenk | e63c8ee | 2004-06-09 21:04:48 +0000 | [diff] [blame] | 10 | |
| 11 | This fireware is specially coded for EmbeddedPlanet Co. Software Development |
| 12 | Platform(RPXlite DW),which has a NEC NL6448BC20-08 LCD panel. |
| 13 | |
| 14 | It has the following three features: |
| 15 | |
| 16 | 1. 64MHz/48MHz system frequence setting options. |
| 17 | The default setting is 48MHz.To get a 64MHz u-boot,just add |
| 18 | '64' in make command,like |
| 19 | |
wdenk | 6225c5d | 2005-01-09 23:33:49 +0000 | [diff] [blame] | 20 | make distclean |
wdenk | e63c8ee | 2004-06-09 21:04:48 +0000 | [diff] [blame] | 21 | make RPXlite_DW_64_config |
| 22 | make all |
| 23 | |
| 24 | 2. CFG_ENV_IS_IN_FLASH/CFG_ENV_IS_IN_NVRAM |
| 25 | |
| 26 | The default environment parameter is stored in FLASH because it is a common choice for |
| 27 | environment parameter.So I make NVRAM as backup parameter storeage.The reason why I |
| 28 | didn't use EEPROM for ENV is that PlanetCore V2.0 use EEPROM as environment parameter |
| 29 | home.Because of the possibility of using two firewares on this board,I didn't |
| 30 | 'disturb' EEPROM.To get NVRAM support,you may use the following build command: |
| 31 | |
wdenk | 6225c5d | 2005-01-09 23:33:49 +0000 | [diff] [blame] | 32 | make distclean |
wdenk | e63c8ee | 2004-06-09 21:04:48 +0000 | [diff] [blame] | 33 | make RPXlite_DW_NVRAM_config |
| 34 | make all |
| 35 | |
| 36 | 3. LCD panel support |
| 37 | |
wdenk | 6225c5d | 2005-01-09 23:33:49 +0000 | [diff] [blame] | 38 | To support the Platform better,I added LCD panel(NL6448BC20-08) function. |
| 39 | For the convenience of debug, CONFIG_PERBOOT was supported. So you just |
| 40 | perss ENTER if you want to get a serial console in boot downcounting. |
wdenk | 082acfd | 2005-01-10 00:01:04 +0000 | [diff] [blame] | 41 | Then you can switch to LCD and serial console freely just typing |
wdenk | 6225c5d | 2005-01-09 23:33:49 +0000 | [diff] [blame] | 42 | 'run lcd' or 'run ser'. They are only vaild when CONFIG_LCD was enabled. |
wdenk | e63c8ee | 2004-06-09 21:04:48 +0000 | [diff] [blame] | 43 | |
| 44 | To get a LCD support u-boot,you can do the following: |
| 45 | |
wdenk | 6225c5d | 2005-01-09 23:33:49 +0000 | [diff] [blame] | 46 | make distclean |
wdenk | e63c8ee | 2004-06-09 21:04:48 +0000 | [diff] [blame] | 47 | make RPXlite_DW_LCD_config |
| 48 | make all |
| 49 | |
| 50 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 51 | The basic make commands could be: |
| 52 | |
| 53 | make RPXlite_DW_config |
| 54 | make RPXlite_DW_64_config |
| 55 | make RPXlite_DW_LCD_config |
| 56 | make RPXlite_DW_NVRAM_config |
| 57 | |
| 58 | BTW,you can combine the above features together and get a workable u-boot to meet your need. |
| 59 | For example,to get a 64MHZ && ENV_IS_IN_FLASH && LCD panel support u-boot,you can type: |
| 60 | |
| 61 | make RPXlite_DW_NVRAM_64_LCD_config |
| 62 | make all |
| 63 | |
| 64 | So other combining make commands could be: |
| 65 | |
| 66 | make RPXlite_DW_NVRAM_64_config |
| 67 | make RPXlite_DW_NVRAM_LCD_config |
| 68 | make RPXlite_DW_64_LCD_config |
| 69 | |
| 70 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 71 | |
| 72 | The boot process by "make RPXlite_DW_config" could be: |
| 73 | |
wdenk | 6225c5d | 2005-01-09 23:33:49 +0000 | [diff] [blame] | 74 | U-Boot 1.1.2 (Aug 29 2004 - 15:11:27) |
wdenk | e63c8ee | 2004-06-09 21:04:48 +0000 | [diff] [blame] | 75 | |
| 76 | CPU: PPC823EZTnnB2 at 48 MHz: 16 kB I-Cache 8 kB D-Cache |
| 77 | Board: RPXlite_DW |
| 78 | DRAM: 64 MB |
| 79 | FLASH: 16 MB |
| 80 | *** Warning - bad CRC, using default environment |
| 81 | |
| 82 | In: serial |
| 83 | Out: serial |
| 84 | Err: serial |
| 85 | Net: SCC ETHERNET |
| 86 | u-boot> |
| 87 | |
| 88 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 89 | |
wdenk | 6225c5d | 2005-01-09 23:33:49 +0000 | [diff] [blame] | 90 | A word on the U-Boot enviroment variable setting and usage : |
| 91 | |
| 92 | In the beginning, you could just need very simple defult environment variable setting, |
| 93 | like[include/configs/RPXlite.h] : |
| 94 | |
| 95 | #define CONFIG_BOOTCOMMAND \ |
wdenk | 082acfd | 2005-01-10 00:01:04 +0000 | [diff] [blame] | 96 | "bootp; " \ |
Wolfgang Denk | fe126d8 | 2005-11-20 21:40:11 +0100 | [diff] [blame^] | 97 | "setenv bootargs root=/dev/nfs rw nfsroot=${serverip}:${rootpath} " \ |
| 98 | "ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}::off; " \ |
wdenk | 082acfd | 2005-01-10 00:01:04 +0000 | [diff] [blame] | 99 | "bootm" |
wdenk | 6225c5d | 2005-01-09 23:33:49 +0000 | [diff] [blame] | 100 | |
wdenk | 082acfd | 2005-01-10 00:01:04 +0000 | [diff] [blame] | 101 | This is enough for kernel NFS test. But as debug process goes on, you would expect |
wdenk | 6225c5d | 2005-01-09 23:33:49 +0000 | [diff] [blame] | 102 | to save some time on environment variable setting and u-boot/kernel updating. |
| 103 | So the default environment variable setting would become more complicated. Just like |
| 104 | the one I did in include/configs/RPXlite_DW.h. |
| 105 | |
| 106 | Two u-boot commands, ku and uu, should be careful to use. They were designed to update |
wdenk | 082acfd | 2005-01-10 00:01:04 +0000 | [diff] [blame] | 107 | kernel and u-boot image file respectively. You must tftp your image to default address |
wdenk | 6225c5d | 2005-01-09 23:33:49 +0000 | [diff] [blame] | 108 | '100000' and then use them correctly. Yeah, you can create your own command to do this |
| 109 | job. :-) The example u-boot image updating process could be : |
| 110 | |
| 111 | u-boot>t 100000 RPXlite_DW_LCD.bin |
| 112 | Using SCC ETHERNET device |
| 113 | TFTP from server 172.16.115.6; our IP address is 172.16.115.7 |
| 114 | Filename 'RPXlite_DW_LCD.bin'. |
| 115 | Load address: 0x100000 |
| 116 | Loading: ############################# |
| 117 | done |
| 118 | Bytes transferred = 144700 (2353c hex) |
| 119 | u-boot>run uu |
| 120 | Un-Protect Flash Sectors 0-4 in Bank # 1 |
| 121 | Erase Flash Sectors 0-4 in Bank # 1 |
| 122 | .... done |
| 123 | Copy to Flash... done |
| 124 | ff000000: 27051956 552d426f 6f742031 2e312e32 '..VU-Boot 1.1.2 |
| 125 | ff000010: 20284175 67203239 20323030 34202d20 (Aug 29 2004 - |
| 126 | ff000020: 31353a32 303a3238 29000000 00000000 15:20:28)....... |
| 127 | ff000030: 00000000 00000000 00000000 00000000 ................ |
| 128 | ff000040: 00000000 00000000 00000000 00000000 ................ |
| 129 | ff000050: 00000000 00000000 00000000 00000000 ................ |
| 130 | ff000060: 00000000 00000000 00000000 00000000 ................ |
| 131 | ff000070: 00000000 00000000 00000000 00000000 ................ |
| 132 | ff000080: 00000000 00000000 00000000 00000000 ................ |
| 133 | ff000090: 00000000 00000000 00000000 00000000 ................ |
| 134 | ff0000a0: 00000000 00000000 00000000 00000000 ................ |
| 135 | ff0000b0: 00000000 00000000 00000000 00000000 ................ |
| 136 | ff0000c0: 00000000 00000000 00000000 00000000 ................ |
| 137 | ff0000d0: 00000000 00000000 00000000 00000000 ................ |
| 138 | ff0000e0: 00000000 00000000 00000000 00000000 ................ |
| 139 | ff0000f0: 00000000 00000000 00000000 00000000 ................ |
| 140 | u-boot updating finished |
| 141 | u-boot> |
| 142 | |
| 143 | Also for environment updating, 'run eu' could let you erase OLD default environment variable |
| 144 | and then use the working u-boot environment setting. |
| 145 | |
| 146 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 147 | |
| 148 | Finally, if you want to keep the serial port to possible debug on spot for deployment, you |
| 149 | just need to enable 'DEPLOYMENT' in RPXlite_DW.h as 'DEBUG' does. Only the special string |
| 150 | defined by CONFIG_AUTOBOOT_STOP_STR like 'st' can stop the autoboot. |
| 151 | |
wdenk | e63c8ee | 2004-06-09 21:04:48 +0000 | [diff] [blame] | 152 | I'd like to extend my heartfelt gratitute to kind people for helping me work it out. |
| 153 | I would particually thank Wolfgang Denk for his nice help. |
| 154 | |
| 155 | Enjoy, |
| 156 | |
| 157 | Sam Song, samsongshu@yahoo.com.cn |
| 158 | Institute of Electrical Machinery and Controls |
| 159 | Shanghai University |
| 160 | |
wdenk | 6225c5d | 2005-01-09 23:33:49 +0000 | [diff] [blame] | 161 | Oct. 11, 2004 |