README.omap3 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. Summary
  2. =======
  3. This README is about U-Boot support for TI's ARM Cortex-A8 based OMAP3 [1]
  4. family of SoCs. TI's OMAP3 SoC family contains an ARM Cortex-A8. Additionally,
  5. some family members contain a TMS320C64x+ DSP and/or an Imagination SGX 2D/3D
  6. graphics processor and various other standard peripherals.
  7. Currently the following boards are supported:
  8. * OMAP3530 BeagleBoard [2]
  9. * Gumstix Overo [3]
  10. * TI EVM [4]
  11. * OpenPandora Ltd. Pandora [5]
  12. * TI/Logic PD Zoom MDK [6]
  13. * TI/Logic PD Zoom 2 [7]
  14. * CompuLab Ltd. CM-T35 [8]
  15. Toolchain
  16. =========
  17. While ARM Cortex-A8 support ARM v7 instruction set (-march=armv7a) we compile
  18. with -march=armv5 to allow more compilers to work. For U-Boot code this has
  19. no performance impact.
  20. Build
  21. =====
  22. * BeagleBoard:
  23. make omap3_beagle_config
  24. make
  25. * Gumstix Overo:
  26. make omap3_overo_config
  27. make
  28. * TI EVM:
  29. make omap3_evm_config
  30. make
  31. * Pandora:
  32. make omap3_pandora_config
  33. make
  34. * Zoom MDK:
  35. make omap3_zoom1_config
  36. make
  37. * Zoom 2:
  38. make omap3_zoom2_config
  39. make
  40. * CM-T35:
  41. make cm_t35_config
  42. make
  43. * BlueLYNX-X:
  44. make omap3_mvblx_config
  45. make
  46. Custom commands
  47. ===============
  48. To make U-Boot for OMAP3 support NAND device SW or HW ECC calculation, U-Boot
  49. for OMAP3 supports custom user command
  50. nandecc hw/sw
  51. To be compatible with NAND drivers using SW ECC (e.g. kernel code)
  52. nandecc sw
  53. enables SW ECC calculation. HW ECC enabled with
  54. nandecc hw
  55. is typically used to write 2nd stage bootloader (known as 'x-loader') which is
  56. executed by OMAP3's boot rom and therefore has to be written with HW ECC.
  57. For all other commands see
  58. help
  59. Interfaces
  60. ==========
  61. gpio
  62. ----
  63. To set a bit :
  64. if (!gpio_request(N, "")) {
  65. gpio_direction_output(N, 0);
  66. gpio_set_value(N, 1);
  67. }
  68. To clear a bit :
  69. if (!gpio_request(N, "")) {
  70. gpio_direction_output(N, 0);
  71. gpio_set_value(N, 0);
  72. }
  73. To read a bit :
  74. if (!gpio_request(N, "")) {
  75. gpio_direction_input(N);
  76. val = gpio_get_value(N);
  77. gpio_free(N);
  78. }
  79. if (val)
  80. printf("GPIO N is set\n");
  81. else
  82. printf("GPIO N is clear\n");
  83. dma
  84. ---
  85. void omap3_dma_init(void)
  86. Init the DMA module
  87. int omap3_dma_get_conf_chan(uint32_t chan, struct dma4_chan *config);
  88. Read config of the channel
  89. int omap3_dma_conf_chan(uint32_t chan, struct dma4_chan *config);
  90. Write config to the channel
  91. int omap3_dma_conf_transfer(uint32_t chan, uint32_t *src, uint32_t *dst,
  92. uint32_t sze)
  93. Config source, destination and size of a transfer
  94. int omap3_dma_wait_for_transfer(uint32_t chan)
  95. Wait for a transfer to end - this hast to be called before a channel
  96. or the data the channel transferd are used.
  97. int omap3_dma_get_revision(uint32_t *minor, uint32_t *major)
  98. Read silicon Revision of the DMA module
  99. NAND
  100. ====
  101. There are some OMAP3 devices out there with NAND attached. Due to the fact that
  102. OMAP3 ROM code can only handle 1-bit hamming ECC for accessing first page
  103. (place where SPL lives) we require this setup for u-boot at least when reading
  104. the second progam within SPL. A lot of newer NAND chips however require more
  105. than 1-bit ECC for the pages, some can live with 1-bit for the first page. To
  106. handle this we can switch to another ECC algorithm after reading the payload
  107. within SPL.
  108. BCH8
  109. ----
  110. To enable hardware assisted BCH8 (8-bit BCH [Bose, Chaudhuri, Hocquenghem]) on
  111. OMAP3 devices we can use the BCH library in lib/bch.c. To do so add CONFIG_BCH
  112. to enable the library and CONFIG_NAND_OMAP_BCH8 to to enable hardware assisted
  113. syndrom generation to your board config.
  114. The NAND OOB layout is the same as in linux kernel, if the linux kernel BCH8
  115. implementation for OMAP3 works for you so the u-boot version should also.
  116. When you require the SPL to read with BCH8 there are two more configs to
  117. change:
  118. * CONFIG_SYS_NAND_ECCPOS (must be the same as .eccpos in
  119. GPMC_NAND_HW_BCH8_ECC_LAYOUT defined in
  120. arch/arm/include/asm/arch-omap3/omap_gpmc.h)
  121. * CONFIG_SYS_NAND_ECCSIZE must be 512
  122. * CONFIG_SYS_NAND_ECCBYTES must be 13 for this BCH8 setup
  123. Acknowledgements
  124. ================
  125. OMAP3 U-Boot is based on U-Boot tar ball [9] for BeagleBoard and EVM done by
  126. several TI employees.
  127. Links
  128. =====
  129. [1] OMAP3:
  130. http://www.ti.com/omap3 (high volume) and
  131. http://www.ti.com/omap35x (broad market)
  132. [2] OMAP3530 BeagleBoard:
  133. http://beagleboard.org/
  134. [3] Gumstix Overo:
  135. http://www.gumstix.net/Overo/
  136. [4] TI EVM:
  137. http://focus.ti.com/docs/toolsw/folders/print/tmdxevm3503.html
  138. [5] OpenPandora Ltd. Pandora:
  139. http://openpandora.org/
  140. [6] TI/Logic PD Zoom MDK:
  141. http://www.logicpd.com/products/devkit/ti/zoom_mobile_development_kit
  142. [7] TI/Logic PD Zoom 2
  143. http://www.logicpd.com/sites/default/files/1012659A_Zoom_OMAP34x-II_MDP_Brief.pdf
  144. [8] CompuLab Ltd. CM-T35:
  145. http://www.compulab.co.il/t3530/html/t3530-cm-datasheet.htm
  146. [9] TI OMAP3 U-Boot:
  147. http://beagleboard.googlecode.com/files/u-boot_beagle_revb.tar.gz