README.fsl-ddr 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406
  1. Table of interleaving 2-4 controllers
  2. =====================================
  3. +--------------+-----------------------------------------------------------+
  4. |Configuration | Memory Controller |
  5. | | 1 2 3 4 |
  6. |--------------+--------------+--------------+-----------------------------+
  7. | Two memory | Not Intlv'ed | Not Intlv'ed | |
  8. | complexes +--------------+--------------+ |
  9. | | 2-way Intlv'ed | |
  10. |--------------+--------------+--------------+--------------+ |
  11. | | Not Intlv'ed | Not Intlv'ed | Not Intlv'ed | |
  12. | Three memory +--------------+--------------+--------------+ |
  13. | complexes | 2-way Intlv'ed | Not Intlv'ed | |
  14. | +-----------------------------+--------------+ |
  15. | | 3-way Intlv'ed | |
  16. +--------------+--------------+--------------+--------------+--------------+
  17. | | Not Intlv'ed | Not Intlv'ed | Not Intlv'ed | Not Intlv'ed |
  18. | Four memory +--------------+--------------+--------------+--------------+
  19. | complexes | 2-way Intlv'ed | 2-way Intlv'ed |
  20. | +-----------------------------+-----------------------------+
  21. | | 4-way Intlv'ed |
  22. +--------------+-----------------------------------------------------------+
  23. Table of 2-way interleaving modes supported in cpu/8xxx/ddr/
  24. ======================================================
  25. +-------------+---------------------------------------------------------+
  26. | | Rank Interleaving |
  27. | +--------+-----------+-----------+------------+-----------+
  28. |Memory | | | | 2x2 | 4x1 |
  29. |Controller | None | 2x1 lower | 2x1 upper | {CS0+CS1}, | {CS0+CS1+ |
  30. |Interleaving | | {CS0+CS1} | {CS2+CS3} | {CS2+CS3} | CS2+CS3} |
  31. +-------------+--------+-----------+-----------+------------+-----------+
  32. |None | Yes | Yes | Yes | Yes | Yes |
  33. +-------------+--------+-----------+-----------+------------+-----------+
  34. |Cacheline | Yes | Yes | No | No, Only(*)| Yes |
  35. | |CS0 Only| | | {CS0+CS1} | |
  36. +-------------+--------+-----------+-----------+------------+-----------+
  37. |Page | Yes | Yes | No | No, Only(*)| Yes |
  38. | |CS0 Only| | | {CS0+CS1} | |
  39. +-------------+--------+-----------+-----------+------------+-----------+
  40. |Bank | Yes | Yes | No | No, Only(*)| Yes |
  41. | |CS0 Only| | | {CS0+CS1} | |
  42. +-------------+--------+-----------+-----------+------------+-----------+
  43. |Superbank | No | Yes | No | No, Only(*)| Yes |
  44. | | | | | {CS0+CS1} | |
  45. +-------------+--------+-----------+-----------+------------+-----------+
  46. (*) Although the hardware can be configured with memory controller
  47. interleaving using "2x2" rank interleaving, it only interleaves {CS0+CS1}
  48. from each controller. {CS2+CS3} on each controller are only rank
  49. interleaved on that controller.
  50. For memory controller interleaving, identical DIMMs are suggested. Software
  51. doesn't check the size or organization of interleaved DIMMs.
  52. The ways to configure the ddr interleaving mode
  53. ==============================================
  54. 1. In board header file(e.g.MPC8572DS.h), add default interleaving setting
  55. under "CONFIG_EXTRA_ENV_SETTINGS", like:
  56. #define CONFIG_EXTRA_ENV_SETTINGS \
  57. "hwconfig=fsl_ddr:ctlr_intlv=bank" \
  58. ......
  59. 2. Run u-boot "setenv" command to configure the memory interleaving mode.
  60. Either numerical or string value is accepted.
  61. # disable memory controller interleaving
  62. setenv hwconfig "fsl_ddr:ctlr_intlv=null"
  63. # cacheline interleaving
  64. setenv hwconfig "fsl_ddr:ctlr_intlv=cacheline"
  65. # page interleaving
  66. setenv hwconfig "fsl_ddr:ctlr_intlv=page"
  67. # bank interleaving
  68. setenv hwconfig "fsl_ddr:ctlr_intlv=bank"
  69. # superbank
  70. setenv hwconfig "fsl_ddr:ctlr_intlv=superbank"
  71. # 1KB 3-way interleaving
  72. setenv hwconfig "fsl_ddr:ctlr_intlv=3way_1KB"
  73. # 4KB 3-way interleaving
  74. setenv hwconfig "fsl_ddr:ctlr_intlv=3way_4KB"
  75. # 8KB 3-way interleaving
  76. setenv hwconfig "fsl_ddr:ctlr_intlv=3way_8KB"
  77. # disable bank (chip-select) interleaving
  78. setenv hwconfig "fsl_ddr:bank_intlv=null"
  79. # bank(chip-select) interleaving cs0+cs1
  80. setenv hwconfig "fsl_ddr:bank_intlv=cs0_cs1"
  81. # bank(chip-select) interleaving cs2+cs3
  82. setenv hwconfig "fsl_ddr:bank_intlv=cs2_cs3"
  83. # bank(chip-select) interleaving (cs0+cs1) and (cs2+cs3) (2x2)
  84. setenv hwconfig "fsl_ddr:bank_intlv=cs0_cs1_and_cs2_cs3"
  85. # bank(chip-select) interleaving (cs0+cs1+cs2+cs3) (4x1)
  86. setenv hwconfig "fsl_ddr:bank_intlv=cs0_cs1_cs2_cs3"
  87. Memory controller address hashing
  88. ==================================
  89. If the DDR controller supports address hashing, it can be enabled by hwconfig.
  90. Syntax is:
  91. hwconfig=fsl_ddr:addr_hash=true
  92. Memory controller ECC on/off
  93. ============================
  94. If ECC is enabled in board configuratoin file, i.e. #define CONFIG_DDR_ECC,
  95. ECC can be turned on/off by hwconfig.
  96. Syntax is
  97. hwconfig=fsl_ddr:ecc=off
  98. Memory testing options for mpc85xx
  99. ==================================
  100. 1. Memory test can be done once U-boot prompt comes up using mtest, or
  101. 2. Memory test can be done with Power-On-Self-Test function, activated at
  102. compile time.
  103. In order to enable the POST memory test, CONFIG_POST needs to be
  104. defined in board configuraiton header file. By default, POST memory test
  105. performs a fast test. A slow test can be enabled by changing the flag at
  106. compiling time. To test memory bigger than 2GB, 36BIT support is needed.
  107. Memory is tested within a 2GB window. TLBs are used to map the virtual 2GB
  108. window to physical address so that all physical memory can be tested.
  109. Combination of hwconfig
  110. =======================
  111. Hwconfig can be combined with multiple parameters, for example, on a supported
  112. platform
  113. hwconfig=fsl_ddr:addr_hash=true,ctlr_intlv=cacheline,bank_intlv=cs0_cs1_cs2_cs3,ecc=on
  114. Table for dynamic ODT for DDR3
  115. ==============================
  116. For single-slot system with quad-rank DIMM and dual-slot system, dynamic ODT may
  117. be needed, depending on the configuration. The numbers in the following tables are
  118. in Ohms.
  119. * denotes dynamic ODT
  120. Two slots system
  121. +-----------------------+----------+---------------+-----------------------------+-----------------------------+
  122. | Configuration | |DRAM controller| Slot 1 | Slot 2 |
  123. +-----------+-----------+----------+-------+-------+--------------+--------------+--------------+--------------+
  124. | | | | | | Rank 1 | Rank 2 | Rank 1 | Rank 2 |
  125. + Slot 1 | Slot 2 |Write/Read| Write | Read |-------+------+-------+------+-------+------+-------+------+
  126. | | | | | | Write | Read | Write | Read | Write | Read | Write | Read |
  127. +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  128. | | | Slot 1 | off | 75 | 120 | off | off | off | off | off | 30 | 30 |
  129. | Dual Rank | Dual Rank |----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  130. | | | Slot 2 | off | 75 | off | off | 30 | 30 | 120 | off | off | off |
  131. +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  132. | | | Slot 1 | off | 75 | 120 | off | off | off | 20 | 20 | | |
  133. | Dual Rank |Single Rank|----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  134. | | | Slot 2 | off | 75 | off | off | 20 | 20 | 120 *| off | | |
  135. +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  136. | | | Slot 1 | off | 75 | 120 *| off | | | off | off | 20 | 20 |
  137. |Single Rank| Dual Rank |----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  138. | | | Slot 2 | off | 75 | 20 | 20 | | | 120 | off | off | off |
  139. +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  140. | | | Slot 1 | off | 75 | 120 *| off | | | 30 | 30 | | |
  141. |Single Rank|Single Rank|----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  142. | | | Slot 2 | off | 75 | 30 | 30 | | | 120 *| off | | |
  143. +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  144. | Dual Rank | Empty | Slot 1 | off | 75 | 40 | off | off | off | | | | |
  145. +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  146. | Empty | Dual Rank | Slot 2 | off | 75 | | | | | 40 | off | off | off |
  147. +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  148. |Single Rank| Empty | Slot 1 | off | 75 | 40 | off | | | | | | |
  149. +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  150. | Empty |Single Rank| Slot 2 | off | 75 | | | | | 40 | off | | |
  151. +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  152. Single slot system
  153. +-------------+------------+---------------+-----------------------------+-----------------------------+
  154. | | |DRAM controller| Rank 1 | Rank 2 | Rank 3 | Rank 4 |
  155. |Configuration| Write/Read |-------+-------+-------+------+-------+------+-------+------+-------+------+
  156. | | | Write | Read | Write | Read | Write | Read | Write | Read | Write | Read |
  157. +-------------+------------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  158. | | R1 | off | 75 | 120 *| off | off | off | 20 | 20 | off | off |
  159. | |------------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  160. | | R2 | off | 75 | off | 20 | 120 | off | 20 | 20 | off | off |
  161. | Quad Rank |------------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  162. | | R3 | off | 75 | 20 | 20 | off | off | 120 *| off | off | off |
  163. | |------------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  164. | | R4 | off | 75 | 20 | 20 | off | off | off | 20 | 120 | off |
  165. +-------------+------------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  166. | | R1 | off | 75 | 40 | off | off | off |
  167. | Dual Rank |------------+-------+-------+-------+------+-------+------+
  168. | | R2 | off | 75 | 40 | off | off | off |
  169. +-------------+------------+-------+-------+-------+------+-------+------+
  170. | Single Rank | R1 | off | 75 | 40 | off |
  171. +-------------+------------+-------+-------+-------+------+
  172. Reference http://www.xrosstalkmag.com/mag_issues/xrosstalk_oct08_final.pdf
  173. http://download.micron.com/pdf/technotes/ddr3/tn4108_ddr3_design_guide.pdf
  174. Table for ODT for DDR2
  175. ======================
  176. Two slots system
  177. +-----------------------+----------+---------------+-----------------------------+-----------------------------+
  178. | Configuration | |DRAM controller| Slot 1 | Slot 2 |
  179. +-----------+-----------+----------+-------+-------+--------------+--------------+--------------+--------------+
  180. | | | | | | Rank 1 | Rank 2 | Rank 1 | Rank 2 |
  181. + Slot 1 | Slot 2 |Write/Read| Write | Read |-------+------+-------+------+-------+------+-------+------+
  182. | | | | | | Write | Read | Write | Read | Write | Read | Write | Read |
  183. +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  184. | | | Slot 1 | off | 150 | off | off | off | off | 75 | 75 | off | off |
  185. | Dual Rank | Dual Rank |----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  186. | | | Slot 2 | off | 150 | 75 | 75 | off | off | off | off | off | off |
  187. +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  188. | | | Slot 1 | off | 150 | off | off | off | off | 75 | 75 | | |
  189. | Dual Rank |Single Rank|----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  190. | | | Slot 2 | off | 150 | 75 | 75 | off | off | off | off | | |
  191. +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  192. | | | Slot 1 | off | 150 | off | off | | | 75 | 75 | off | off |
  193. |Single Rank| Dual Rank |----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  194. | | | Slot 2 | off | 150 | 75 | 75 | | | off | off | off | off |
  195. +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  196. | | | Slot 1 | off | 150 | off | off | | | 75 | 75 | | |
  197. |Single Rank|Single Rank|----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  198. | | | Slot 2 | off | 150 | 75 | 75 | | | off | off | | |
  199. +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  200. | Dual Rank | Empty | Slot 1 | off | 75 | 150 | off | off | off | | | | |
  201. +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  202. | Empty | Dual Rank | Slot 2 | off | 75 | | | | | 150 | off | off | off |
  203. +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  204. |Single Rank| Empty | Slot 1 | off | 75 | 150 | off | | | | | | |
  205. +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  206. | Empty |Single Rank| Slot 2 | off | 75 | | | | | 150 | off | | |
  207. +-----------+-----------+----------+-------+-------+-------+------+-------+------+-------+------+-------+------+
  208. Single slot system
  209. +-------------+------------+---------------+-----------------------------+
  210. | | |DRAM controller| Rank 1 | Rank 2 |
  211. |Configuration| Write/Read |-------+-------+-------+------+-------+------+
  212. | | | Write | Read | Write | Read | Write | Read |
  213. +-------------+------------+-------+-------+-------+------+-------+------+
  214. | | R1 | off | 75 | 150 | off | off | off |
  215. | Dual Rank |------------+-------+-------+-------+------+-------+------+
  216. | | R2 | off | 75 | 150 | off | off | off |
  217. +-------------+------------+-------+-------+-------+------+-------+------+
  218. | Single Rank | R1 | off | 75 | 150 | off |
  219. +-------------+------------+-------+-------+-------+------+
  220. Reference http://www.samsung.com/global/business/semiconductor/products/dram/downloads/applicationnote/ddr2_odt_control_200603.pdf
  221. Interactive DDR debugging
  222. ===========================
  223. For DDR parameter tuning up and debugging, the interactive DDR debugging can
  224. be activated by saving an environment variable "ddr_interactive". The value
  225. doesn't matter. Once activated, U-boot prompts "FSL DDR>" before enabling DDR
  226. controller. The available commands can be seen by typing "help".
  227. The example flow of using interactive debugging is
  228. type command "compute" to calculate the parameters from the default
  229. type command "print" with arguments to show SPD, options, registers
  230. type command "edit" with arguments to change any if desired
  231. type command "go" to continue calculation and enable DDR controller
  232. type command "reset" to reset the board
  233. type command "recompute" to reload SPD and start over
  234. Note, check "next_step" to show the flow. For example, after edit opts, the
  235. next_step is STEP_ASSIGN_ADDRESSES. After editing registers, the next_step is
  236. STEP_PROGRAM_REGS. Upon issuing command "go", DDR controller will be enabled
  237. with current setting without further calculation.
  238. The detail syntax for each commands are
  239. print [c<n>] [d<n>] [spd] [dimmparms] [commonparms] [opts] [addresses] [regs]
  240. c<n> - the controller number, eg. c0, c1
  241. d<n> - the DIMM number, eg. d0, d1
  242. spd - print SPD data
  243. dimmparms - DIMM parameters, calculated from SPD
  244. commonparms - lowest common parameters for all DIMMs
  245. opts - options
  246. addresses - address assignment (not implemented yet)
  247. regs - controller registers
  248. edit <c#> <d#> <spd|dimmparms|commonparms|opts|addresses|regs> <element> <value>
  249. c<n> - the controller number, eg. c0, c1
  250. d<n> - the DIMM number, eg. d0, d1
  251. spd - print SPD data
  252. dimmparms - DIMM parameters, calculated from SPD
  253. commonparms - lowest common parameters for all DIMMs
  254. opts - options
  255. addresses - address assignment (not implemented yet)
  256. regs - controller registers
  257. <element> - name of the modified element
  258. byte number if the object is SPD
  259. <value> - decimal or heximal (prefixed with 0x) numbers
  260. reset
  261. no arguement - reset the board
  262. recompute
  263. no argument - reload SPD and start over
  264. compute
  265. no argument - recompute from current next_step
  266. next_step
  267. no argument - show current next_step
  268. help
  269. no argument - print a list of all commands
  270. go
  271. no argument - program memory controller(s) and continue with U-boot
  272. Examples of debugging flow
  273. FSL DDR>compute
  274. Detected UDIMM UG51U6400N8SU-ACF
  275. SL DDR>print
  276. print [c<n>] [d<n>] [spd] [dimmparms] [commonparms] [opts] [addresses] [regs]
  277. FSL DDR>print dimmparms
  278. DIMM parameters: Controller=0 DIMM=0
  279. DIMM organization parameters:
  280. module part name = UG51U6400N8SU-ACF
  281. rank_density = 2147483648 bytes (2048 megabytes)
  282. capacity = 4294967296 bytes (4096 megabytes)
  283. burst_lengths_bitmask = 0C
  284. base_addresss = 0 (00000000 00000000)
  285. n_ranks = 2
  286. data_width = 64
  287. primary_sdram_width = 64
  288. ec_sdram_width = 0
  289. registered_dimm = 0
  290. n_row_addr = 15
  291. n_col_addr = 10
  292. edc_config = 0
  293. n_banks_per_sdram_device = 8
  294. tCKmin_X_ps = 1500
  295. tCKmin_X_minus_1_ps = 0
  296. tCKmin_X_minus_2_ps = 0
  297. tCKmax_ps = 0
  298. caslat_X = 960
  299. tAA_ps = 13125
  300. caslat_X_minus_1 = 0
  301. caslat_X_minus_2 = 0
  302. caslat_lowest_derated = 0
  303. tRCD_ps = 13125
  304. tRP_ps = 13125
  305. tRAS_ps = 36000
  306. tWR_ps = 15000
  307. tWTR_ps = 7500
  308. tRFC_ps = 160000
  309. tRRD_ps = 6000
  310. tRC_ps = 49125
  311. refresh_rate_ps = 7800000
  312. tIS_ps = 0
  313. tIH_ps = 0
  314. tDS_ps = 0
  315. tDH_ps = 0
  316. tRTP_ps = 7500
  317. tDQSQ_max_ps = 0
  318. tQHS_ps = 0
  319. FSL DDR>edit c0 opts ECC_mode 0
  320. FSL DDR>edit c0 regs cs0_bnds 0x000000FF
  321. FSL DDR>go
  322. 2 GiB left unmapped
  323. 4 GiB (DDR3, 64-bit, CL=9, ECC off)
  324. DDR Chip-Select Interleaving Mode: CS0+CS1
  325. Testing 0x00000000 - 0x7fffffff
  326. Testing 0x80000000 - 0xffffffff
  327. Remap DDR 2 GiB left unmapped
  328. POST memory PASSED
  329. Flash: 128 MiB
  330. L2: 128 KB enabled
  331. Corenet Platform Cache: 1024 KB enabled
  332. SERDES: timeout resetting bank 3
  333. SRIO1: disabled
  334. SRIO2: disabled
  335. MMC: FSL_ESDHC: 0
  336. EEPROM: Invalid ID (ff ff ff ff)
  337. PCIe1: disabled
  338. PCIe2: Root Complex, x1, regs @ 0xfe201000
  339. 01:00.0 - 8086:10d3 - Network controller
  340. PCIe2: Bus 00 - 01
  341. PCIe3: disabled
  342. In: serial
  343. Out: serial
  344. Err: serial
  345. Net: Initializing Fman
  346. Fman1: Uploading microcode version 101.8.0
  347. e1000: 00:1b:21:81:d2:e0
  348. FM1@DTSEC1, FM1@DTSEC2, FM1@DTSEC3, FM1@DTSEC4, FM1@DTSEC5, e1000#0 [PRIME]
  349. Warning: e1000#0 MAC addresses don't match:
  350. Address in SROM is 00:1b:21:81:d2:e0
  351. Address in environment is 00:e0:0c:00:ea:05
  352. Hit any key to stop autoboot: 0
  353. =>