README.IPHASE4539 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358
  1. This file contains basic information on the port of U-Boot to IPHASE4539
  2. (Interphase 4539 T1/E1/J1 PMC Communications Controller).
  3. All the changes fit in the common U-Boot infrastructure, providing a new
  4. IPHASE4539-specific entry in makefiles. To build U-Boot for IPHASE4539,
  5. type "make IPHASE4539_config", edit the "include/config_IPHASE4539.h"
  6. file if necessary, then type "make".
  7. Common file modifications:
  8. --------------------------
  9. The following common files have been modified by this project:
  10. (starting from the ppcboot-1.1.5/ directory)
  11. MAKEALL - IPHASE4539 entry added
  12. Makefile - IPHASE4539_config entry added
  13. New files:
  14. ----------
  15. The following new files have been added by this project:
  16. (starting from the ppcboot-1.1.5/ directory)
  17. board/iphase4539/ - board-specific directory
  18. board/iphase4539/Makefile - board-specific makefile
  19. board/iphase4539/config.mk - config file
  20. board/iphase4539/flash.c - flash driver (for AM29LV033C)
  21. board/iphase4539/ppcboot.lds - linker script
  22. board/iphase4539/iphase4539.c - ioport and memory initialization
  23. include/config_IPHASE4539.h - main configuration file
  24. New configuration options:
  25. --------------------------
  26. CONFIG_IPHASE4539
  27. Main board-specific option (should be defined for IPHASE4539).
  28. Acceptance criteria tests:
  29. --------------------------
  30. The following tests have been conducted to validate the port of U-Boot
  31. to IPHASE4539:
  32. 1. Operation on serial console:
  33. With SMC1 defined as console in the main configuration file, the U-Boot
  34. output appeared on the serial terminal connected to the 2.5mm stereo jack
  35. connector as follows:
  36. ------------------------------------------------------------------------------
  37. => help
  38. base - print or set address offset
  39. bdinfo - print Board Info structure
  40. bootm - boot application image from memory
  41. bootp - boot image via network using BootP/TFTP protocol
  42. bootd - boot default, i.e., run 'bootcmd'
  43. cmp - memory compare
  44. coninfo - print console devices and informations
  45. cp - memory copy
  46. crc32 - checksum calculation
  47. dcache - enable or disable data cache
  48. echo - echo args to console
  49. erase - erase FLASH memory
  50. flinfo - print FLASH memory information
  51. go - start application at address 'addr'
  52. help - print online help
  53. icache - enable or disable instruction cache
  54. iminfo - print header information for application image
  55. loadb - load binary file over serial line (kermit mode)
  56. loads - load S-Record file over serial line
  57. loop - infinite loop on address range
  58. md - memory display
  59. mm - memory modify (auto-incrementing)
  60. mtest - simple RAM test
  61. mw - memory write (fill)
  62. nm - memory modify (constant address)
  63. printenv- print environment variables
  64. protect - enable or disable FLASH write protection
  65. rarpboot- boot image via network using RARP/TFTP protocol
  66. reset - Perform RESET of the CPU
  67. run - run commands in an environment variable
  68. saveenv - save environment variables to persistent storage
  69. setenv - set environment variables
  70. sleep - delay execution for some time
  71. source - run script from memory
  72. tftpboot- boot image via network using TFTP protocol
  73. and env variables ipaddr and serverip
  74. version - print monitor version
  75. ? - alias for 'help'
  76. =>
  77. ------------------------------------------------------------------------------
  78. 2. Flash driver operation
  79. The following sequence was performed to test the "flinfo" command:
  80. ------------------------------------------------------------------------------
  81. => flinfo
  82. Bank # 1: AMD AM29LV033C (32 Mbit, uniform sectors)
  83. Size: 4 MB in 64 Sectors
  84. Sector Start Addresses:
  85. FF800000 (RO) FF810000 (RO) FF820000 FF830000 FF840000
  86. FF850000 FF860000 FF870000 FF880000 FF890000
  87. FF8A0000 FF8B0000 FF8C0000 FF8D0000 FF8E0000
  88. FF8F0000 FF900000 FF910000 FF920000 FF930000
  89. FF940000 FF950000 FF960000 FF970000 FF980000
  90. FF990000 FF9A0000 FF9B0000 FF9C0000 FF9D0000
  91. FF9E0000 FF9F0000 FFA00000 FFA10000 FFA20000
  92. FFA30000 FFA40000 FFA50000 FFA60000 FFA70000
  93. FFA80000 FFA90000 FFAA0000 FFAB0000 FFAC0000
  94. FFAD0000 FFAE0000 FFAF0000 FFB00000 (RO) FFB10000 (RO)
  95. FFB20000 (RO) FFB30000 (RO) FFB40000 FFB50000 FFB60000
  96. FFB70000 FFB80000 FFB90000 FFBA0000 FFBB0000
  97. FFBC0000 FFBD0000 FFBE0000 FFBF0000
  98. ------------------------------------------------------------------------------
  99. Note: the Hardware Configuration Word (HWC) of the 8260 is on the
  100. first sector of the flash and should not be touched. The U-Boot
  101. environment variables are stored on second sector and U-Boot
  102. starts at the address 0xFFB00000.
  103. The following sequence was performed to test the erase command:
  104. ------------------------------------------------------------------------------
  105. => cp 0 ff880000 10
  106. Copy to Flash... done
  107. => md ff880000 20
  108. ff880000: ff000000 60000000 60000000 7c7f1b78 ....`...`...|..x
  109. ff880010: 7c9e2378 7cbd2b78 7cdc3378 7cfb3b78 |.#x|.+x|.3x|.;x
  110. ff880020: 3b000000 4811e0f5 48003719 480036a5 ;...H...H.7.H.6.
  111. ff880030: 480036f9 48003731 48005c5d 7c7a1b78 H.6.H.71H.\]|z.x
  112. ff880040: ffffffff ffffffff ffffffff ffffffff ................
  113. ff880050: ffffffff ffffffff ffffffff ffffffff ................
  114. ff880060: ffffffff ffffffff ffffffff ffffffff ................
  115. ff880070: ffffffff ffffffff ffffffff ffffffff ................
  116. => erase ff880000 ff88ffff
  117. Erase Flash from 0xff880000 to 0xff88ffff
  118. .. done
  119. Erased 1 sectors
  120. => md ff880000
  121. ff880000: ffffffff ffffffff ffffffff ffffffff ................
  122. ff880010: ffffffff ffffffff ffffffff ffffffff ................
  123. ff880020: ffffffff ffffffff ffffffff ffffffff ................
  124. ff880030: ffffffff ffffffff ffffffff ffffffff ................
  125. ff880040: ffffffff ffffffff ffffffff ffffffff ................
  126. ff880050: ffffffff ffffffff ffffffff ffffffff ................
  127. ff880060: ffffffff ffffffff ffffffff ffffffff ................
  128. ff880070: ffffffff ffffffff ffffffff ffffffff ................
  129. => cp 0 ff880000 10
  130. Copy to Flash... done
  131. => md ff880000 20
  132. ff880000: ff000000 60000000 60000000 7c7f1b78 ....`...`...|..x
  133. ff880010: 7c9e2378 7cbd2b78 7cdc3378 7cfb3b78 |.#x|.+x|.3x|.;x
  134. ff880020: 3b000000 4811e0f5 48003719 480036a5 ;...H...H.7.H.6.
  135. ff880030: 480036f9 48003731 48005c5d 7c7a1b78 H.6.H.71H.\]|z.x
  136. ff880040: ffffffff ffffffff ffffffff ffffffff ................
  137. ff880050: ffffffff ffffffff ffffffff ffffffff ................
  138. ff880060: ffffffff ffffffff ffffffff ffffffff ................
  139. ff880070: ffffffff ffffffff ffffffff ffffffff ................
  140. => erase 1:8
  141. Erase Flash Sectors 8-8 in Bank # 1
  142. .. done
  143. => md ff880000 20
  144. ff880000: ffffffff ffffffff ffffffff ffffffff ................
  145. ff880010: ffffffff ffffffff ffffffff ffffffff ................
  146. ff880020: ffffffff ffffffff ffffffff ffffffff ................
  147. ff880030: ffffffff ffffffff ffffffff ffffffff ................
  148. ff880040: ffffffff ffffffff ffffffff ffffffff ................
  149. ff880050: ffffffff ffffffff ffffffff ffffffff ................
  150. ff880060: ffffffff ffffffff ffffffff ffffffff ................
  151. ff880070: ffffffff ffffffff ffffffff ffffffff ................
  152. => cp 0 ff880000 10
  153. Copy to Flash... done
  154. => cp 0 ff890000 10
  155. => md ff880000 20
  156. ff880000: ff000000 60000000 60000000 7c7f1b78 ....`...`...|..x
  157. ff880010: 7c9e2378 7cbd2b78 7cdc3378 7cfb3b78 |.#x|.+x|.3x|.;x
  158. ff880020: 3b000000 4811e0f5 48003719 480036a5 ;...H...H.7.H.6.
  159. ff880030: 480036f9 48003731 48005c5d 7c7a1b78 H.6.H.71H.\]|z.x
  160. ff880040: ffffffff ffffffff ffffffff ffffffff ................
  161. ff880050: ffffffff ffffffff ffffffff ffffffff ................
  162. ff880060: ffffffff ffffffff ffffffff ffffffff ................
  163. ff880070: ffffffff ffffffff ffffffff ffffffff ................
  164. => md ff890000
  165. ff890000: ff000000 60000000 60000000 7c7f1b78 ....`...`...|..x
  166. ff890010: 7c9e2378 7cbd2b78 7cdc3378 7cfb3b78 |.#x|.+x|.3x|.;x
  167. ff890020: 3b000000 4811e0f5 48003719 480036a5 ;...H...H.7.H.6.
  168. ff890030: 480036f9 48003731 48005c5d 7c7a1b78 H.6.H.71H.\]|z.x
  169. ff890040: ffffffff ffffffff ffffffff ffffffff ................
  170. ff890050: ffffffff ffffffff ffffffff ffffffff ................
  171. ff890060: ffffffff ffffffff ffffffff ffffffff ................
  172. ff890070: ffffffff ffffffff ffffffff ffffffff ................
  173. => erase 1:8-9
  174. Erase Flash Sectors 8-9 in Bank # 1
  175. .... done
  176. => md ff880000 20
  177. ff880000: ffffffff ffffffff ffffffff ffffffff ................
  178. ff880010: ffffffff ffffffff ffffffff ffffffff ................
  179. ff880020: ffffffff ffffffff ffffffff ffffffff ................
  180. ff880030: ffffffff ffffffff ffffffff ffffffff ................
  181. ff880040: ffffffff ffffffff ffffffff ffffffff ................
  182. ff880050: ffffffff ffffffff ffffffff ffffffff ................
  183. ff880060: ffffffff ffffffff ffffffff ffffffff ................
  184. ff880070: ffffffff ffffffff ffffffff ffffffff ................
  185. => md ff890000
  186. ff890000: ffffffff ffffffff ffffffff ffffffff ................
  187. ff890010: ffffffff ffffffff ffffffff ffffffff ................
  188. ff890020: ffffffff ffffffff ffffffff ffffffff ................
  189. ff890030: ffffffff ffffffff ffffffff ffffffff ................
  190. ff890040: ffffffff ffffffff ffffffff ffffffff ................
  191. ff890050: ffffffff ffffffff ffffffff ffffffff ................
  192. ff890060: ffffffff ffffffff ffffffff ffffffff ................
  193. ff890070: ffffffff ffffffff ffffffff ffffffff ................
  194. =>
  195. ------------------------------------------------------------------------------
  196. The following sequence was performed to test the Flash programming commands:
  197. ------------------------------------------------------------------------------
  198. => erase ff880000 ff88ffff
  199. Erase Flash from 0xff880000 to 0xff88ffff
  200. .. done
  201. Erased 1 sectors
  202. => cp 0 ff880000 10
  203. Copy to Flash... done
  204. => md 0 20
  205. 00000000: ff000000 60000000 60000000 7c7f1b78 ....`...`...|..x
  206. 00000010: 7c9e2378 7cbd2b78 7cdc3378 7cfb3b78 |.#x|.+x|.3x|.;x
  207. 00000020: 3b000000 4811e0f5 48003719 480036a5 ;...H...H.7.H.6.
  208. 00000030: 480036f9 48003731 48005c5d 7c7a1b78 H.6.H.71H.\]|z.x
  209. 00000040: 3c83c000 2c040000 40823378 7c0000a6 <...,...@.3x|...
  210. 00000050: 60000030 7c1b03a6 3c00c000 600035ec `..0|...<...`.5.
  211. 00000060: 7c1a03a6 4c000064 00000000 00000000 |...L..d........
  212. 00000070: 00000000 00000000 00000000 00000000 ................
  213. => md ff880000 20
  214. ff880000: ff000000 60000000 60000000 7c7f1b78 ....`...`...|..x
  215. ff880010: 7c9e2378 7cbd2b78 7cdc3378 7cfb3b78 |.#x|.+x|.3x|.;x
  216. ff880020: 3b000000 4811e0f5 48003719 480036a5 ;...H...H.7.H.6.
  217. ff880030: 480036f9 48003731 48005c5d 7c7a1b78 H.6.H.71H.\]|z.x
  218. ff880040: ffffffff ffffffff ffffffff ffffffff ................
  219. ff880050: ffffffff ffffffff ffffffff ffffffff ................
  220. ff880060: ffffffff ffffffff ffffffff ffffffff ................
  221. ff880070: ffffffff ffffffff ffffffff ffffffff ................
  222. =>
  223. ------------------------------------------------------------------------------
  224. The following sequence was performed to test storage of the environment
  225. variables in Flash:
  226. ------------------------------------------------------------------------------
  227. => setenv foo bar
  228. => saveenv
  229. Un-Protected 1 sectors
  230. Erasing Flash...
  231. .. done
  232. Erased 1 sectors
  233. Saving Environment to Flash...
  234. Protected 1 sectors
  235. => reset
  236. ...
  237. => printenv
  238. ...
  239. foo=bar
  240. ...
  241. Environment size: 339/65532 bytes
  242. =>
  243. ------------------------------------------------------------------------------
  244. The following sequence was performed to test image download and run over
  245. Ethernet interface (both interfaces were tested):
  246. ------------------------------------------------------------------------------
  247. => tftpboot 40000 hello_world.bin
  248. ARP broadcast 1
  249. TFTP from server 10.0.0.1; our IP address is 10.0.0.8
  250. Filename 'hello_world.bin'.
  251. Load address: 0x40000
  252. Loading: #############
  253. done
  254. Bytes transferred = 65932 (1018c hex)
  255. => go 40004
  256. ## Starting application at 0x00040004 ...
  257. Hello World
  258. argc = 1
  259. argv[0] = "40004"
  260. argv[1] = "<NULL>"
  261. Hit any key to exit ...
  262. ## Application terminated, rc = 0x0
  263. =>
  264. ------------------------------------------------------------------------------
  265. 3. Known Problems
  266. None for the moment.
  267. ----------------------------------------------------------------------------
  268. U-Boot and Linux for Interphase 4539 T1/E1/J1 PMC Communications Controller
  269. ----------------------------------------------------------------------------
  270. U-Boot:
  271. Configure and make U-Boot:
  272. $ cd <path>/u-boot
  273. $ make IPHASE4539_config
  274. $ make dep
  275. $ make
  276. $ cp -p u-boot.bin /tftpboot
  277. Load u-boot.bin into the Flash memory at 0xffb00000.
  278. Linux:
  279. Configure and make Linux:
  280. $ cd <patch>/linux-2.4
  281. $ make IPHASE4539_config
  282. $ make oldconfig
  283. $ make dep
  284. $ make uImage
  285. $ cp -p arch/ppc/mbxboot/uImage /tftpboot
  286. Load uImage via tftp and boot it.
  287. Flash organisation:
  288. The following preliminary layout of the Flash memory
  289. is defined:
  290. 0xff800000 ( 0 - 64 kB): Hardware Configuration Word.
  291. 0xff810000 ( 64 kB - 128 kB): U-Boot Environment.
  292. 0xff820000 ( 128 kB - 3 MB): RAMdisk.
  293. 0xffb00000 ( 3 MB - 3328 kB): U-Boot.
  294. 0xffb40000 (3328 KB - 4 MB): Linux Kernel.
  295. For further information concerning U-Boot and Linux please consult
  296. the "DENX U-Boot and Linux Guide".
  297. (C) 2002 Wolfgang Grandegger, DENX Software Engineering, wg@denx.de
  298. ===================================================================