imximage.cfg 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. /*
  2. * Copyright (C) 2015-2016 Stefan Roese <sr@denx.de>
  3. *
  4. * SPDX-License-Identifier: GPL-2.0+
  5. *
  6. * Refer doc/README.imximage for more details about how-to configure
  7. * and create imximage boot image
  8. *
  9. * The syntax is taken as close as possible with the kwbimage
  10. */
  11. /* image version */
  12. IMAGE_VERSION 2
  13. /*
  14. * Boot Device : one of
  15. * sd, nand
  16. */
  17. BOOT_FROM sd
  18. /*
  19. * Device Configuration Data (DCD)
  20. *
  21. * Each entry must have the format:
  22. * Addr-type Address Value
  23. *
  24. * where:
  25. * Addr-type register length (1,2 or 4 bytes)
  26. * Address absolute address of the register
  27. * value value to be stored in the register
  28. */
  29. #define __ASSEMBLY__
  30. #include <config.h>
  31. /* Enable all clocks */
  32. DATA 4 0x020c4068 0xffffffff
  33. DATA 4 0x020c406c 0xffffffff
  34. DATA 4 0x020c4070 0xffffffff
  35. DATA 4 0x020c4074 0xffffffff
  36. DATA 4 0x020c4078 0xffffffff
  37. DATA 4 0x020c407c 0xffffffff
  38. DATA 4 0x020c4080 0xffffffff
  39. DATA 4 0x020c4084 0xffffffff
  40. /* ddr io type */
  41. DATA 4 0x020e04b4 0x000C0000 /* IOMUXC_SW_PAD_CTL_GRP_DDR_TYPE */
  42. DATA 4 0x020e04ac 0x00000000 /* IOMUXC_SW_PAD_CTL_GRP_DDRPKE */
  43. /* clock */
  44. DATA 4 0x020e027c 0x00000030 /* IOMUXC_SW_PAD_CTL_PAD_DRAM_SDCLK0_P */
  45. /* control and address */
  46. DATA 4 0x020E0250 0x00000030 /* IOMUXC_SW_PAD_CTL_PAD_DRAM_CAS */
  47. DATA 4 0x020E024C 0x00000030 /* IOMUXC_SW_PAD_CTL_PAD_DRAM_RAS */
  48. DATA 4 0x020E0490 0x00000030 /* IOMUXC_SW_PAD_CTL_GRP_ADDDS */
  49. DATA 4 0x020E0288 0x00000030 /* IOMUXC_SW_PAD_CTL_PAD_DRAM_RESET */
  50. DATA 4 0x020E0270 0x00000000 /* IOMUXC_SW_PAD_CTL_PAD_DRAM_SDBA2 - DSE can be
  51. configured using Group Control Register:
  52. IOMUXC_SW_PAD_CTL_GRP_CTLDS */
  53. DATA 4 0x020E0260 0x00000030 /* IOMUXC_SW_PAD_CTL_PAD_DRAM_ODT0 */
  54. DATA 4 0x020E0264 0x00000030 /* IOMUXC_SW_PAD_CTL_PAD_DRAM_ODT1 */
  55. DATA 4 0x020E04A0 0x00000030 /* IOMUXC_SW_PAD_CTL_GRP_CTLDS */
  56. /* data strobes */
  57. DATA 4 0x020e0494 0x00020000 /* IOMUXC_SW_PAD_CTL_GRP_DDRMODE_CTL */
  58. DATA 4 0x020e0280 0x00000030 /* IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS0_P */
  59. DATA 4 0x020e0284 0x00000030 /* IOMUXC_SW_PAD_CTL_PAD_DRAM_SDQS1_P */
  60. /* data */
  61. DATA 4 0x020E04B0 0x00020000 /* IOMUXC_SW_PAD_CTL_GRP_DDRMODE */
  62. DATA 4 0x020E0498 0x00000030 /* IOMUXC_SW_PAD_CTL_GRP_B0DS */
  63. DATA 4 0x020E04A4 0x00000030 /* IOMUXC_SW_PAD_CTL_GRP_B1DS */
  64. DATA 4 0x020E0244 0x00000030 /* IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM0 */
  65. DATA 4 0x020E0248 0x00000030 /* IOMUXC_SW_PAD_CTL_PAD_DRAM_DQM1 */
  66. /*
  67. * DDR Controller Registers
  68. *
  69. * Manufacturer: IM
  70. * Device Part Number: IME1G16D3EEBG-15EI
  71. * Clock Freq.: 400MHz
  72. * Density per CS in Gb: 1
  73. * Chip Selects used: 1
  74. * Number of Banks: 8
  75. * Row address: 13
  76. * Column address: 10
  77. * Data bus width 16
  78. */
  79. DATA 4 0x021b001c 0x00008000 /* MMDC0_MDSCR, set the Configuration request bit
  80. during MMDC set up */
  81. /*
  82. * Calibration setup
  83. */
  84. DATA 4 0x021b0800 0xA1390003 /* DDR_PHY_P0_MPZQHWCTRL, enable both one-time &
  85. periodic HW ZQ calibration. */
  86. /*
  87. * For target board, may need to run write leveling calibration to fine tune
  88. * these settings.
  89. */
  90. DATA 4 0x021b080c 0x00000000
  91. /* Read DQS Gating calibration */
  92. DATA 4 0x021b083c 0x4164015C /* MPDGCTRL0 PHY0 */
  93. /* Read calibration */
  94. DATA 4 0x021b0848 0x40404446 /* MPRDDLCTL PHY0 */
  95. /* Write calibration */
  96. DATA 4 0x021b0850 0x40405A52 /* MPWRDLCTL PHY0 */
  97. /*
  98. * read data bit delay: (3 is the reccommended default value, although out of
  99. * reset value is 0)
  100. */
  101. DATA 4 0x021b081c 0x33333333 /* DDR_PHY_P0_MPREDQBY0DL3 */
  102. DATA 4 0x021b0820 0x33333333 /* DDR_PHY_P0_MPREDQBY1DL3 */
  103. DATA 4 0x021b082c 0xF3333333
  104. DATA 4 0x021b0830 0xF3333333
  105. DATA 4 0x021b08c0 0x00921012
  106. /* Clock Fine Tuning */
  107. DATA 4 0x021B0858 0x00000F00 /* [MMDC_MPSDCTRL] MMDC PHY CK Control Register */
  108. /* Complete calibration by forced measurement: */
  109. DATA 4 0x021b08b8 0x00000800 /* DDR_PHY_P0_MPMUR0, frc_msr */
  110. /*
  111. * Calibration setup end
  112. */
  113. /* MMDC init: */
  114. DATA 4 0x021b0004 0x0002002D /* MMDC0_MDPDC */
  115. DATA 4 0x021b0008 0x1B333030 /* MMDC0_MDOTC */
  116. DATA 4 0x021b000c 0x3F4352F3 /* MMDC0_MDCFG0 */
  117. DATA 4 0x021b0010 0xB66D0B63 /* MMDC0_MDCFG1 */
  118. DATA 4 0x021b0014 0x01FF00DB /* MMDC0_MDCFG2 */
  119. /*
  120. * MDMISC: RALAT kept to the high level of 5.
  121. * MDMISC: consider reducing RALAT if your 528MHz board design allow that.
  122. * Lower RALAT benefits:
  123. * a. better operation at low frequency, for LPDDR2 freq < 100MHz, change RALAT
  124. * to 3
  125. * b. Small performence improvment
  126. */
  127. DATA 4 0x021b0018 0x00201740 /* MMDC0_MDMISC */
  128. DATA 4 0x021b001c 0x00008000 /* MMDC0_MDSCR, set the Configuration request bit
  129. during MMDC set up */
  130. DATA 4 0x021b002c 0x000026D2 /* MMDC0_MDRWD */
  131. DATA 4 0x021b0030 0x00431023 /* MMDC0_MDOR */
  132. DATA 4 0x021b0040 0x00000047 /* Chan0 CS0_END */
  133. DATA 4 0x021b0000 0x82180000 /* MMDC0_MDCTL */
  134. /* Mode register writes */
  135. DATA 4 0x021b001c 0x02008032 /* MMDC0_MDSCR, MR2 write, CS0 */
  136. DATA 4 0x021b001c 0x00008033 /* MMDC0_MDSCR, MR3 write, CS0 */
  137. DATA 4 0x021b001c 0x00048031 /* MMDC0_MDSCR, MR1 write, CS0 */
  138. DATA 4 0x021b001c 0x15208030 /* MMDC0_MDSCR, MR0 write, CS0 */
  139. DATA 4 0x021b001c 0x04008040 /* MMDC0_MDSCR, ZQ calibration command sent to
  140. device on CS0 */
  141. DATA 4 0x021b0020 0x00000800 /* MMDC0_MDREF */
  142. DATA 4 0x021b0818 0x00000227 /* DDR_PHY_P0_MPODTCTRL */
  143. DATA 4 0x021b0004 0x0002556D /* MMDC0_MDPDC now SDCTL power down enabled */
  144. DATA 4 0x021b0404 0x00011006 /* MMDC0_MAPSR ADOPT power down enabled, MMDC will
  145. enter automatically to self-refresh while the
  146. number of idle cycle reached. */
  147. DATA 4 0x021b001c 0x00000000 /* MMDC0_MDSCR, clear this register (especially
  148. the configuration bit as initialization is
  149. complete) */