README 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. mx6memcal - a tool for calibrating DDR on i.MX6 boards.
  2. The mx6memcal board isn't a real board, but a tool for use in bring-up of
  3. new i.MX6 board designs.
  4. It provides a similar function to the tool from NXP([1]) with a number
  5. of advantages:
  6. 1. It's open-source, so it's easier to change if needed.
  7. Typical reasons for needing to change include the use of alternate
  8. UARTs and PMIC initialization.
  9. 2. It produces an image that's directly loadable with imx_usb [2] or
  10. SB_LOADER.exe [3].
  11. The NXP tool requires either a cumbersome JTAG connection that
  12. makes running the DDR very slow or a working U-Boot image that
  13. suffers from a chicken-and-egg problem (i.e. where do you get the
  14. DDR parameters for U-Boot?).
  15. 3. It doesn't prompt for parameters, so it's much faster to gather
  16. data from multiple boards.
  17. 4. Parameters to the calibration process can be chosen through
  18. 'make menuconfig'.
  19. When booted, the mx6memcal board will run the DDR calibration
  20. routines and display the result in a form suitable for cut and
  21. paste into struct mx6_mmdc_calibration. It can also optionally
  22. produce output in a form usable in a DCD-style .cfg file.
  23. Selections in Kconfig allow most system design settings to be chosen:
  24. 1. The UART number and pad configuration for the UART. Options
  25. include support for the most frequent reference designs on
  26. i.MX6DQ/SDL (SABRE Lite and SABRESD designs).
  27. 2. The memory bus width (64 and 32-bit)
  28. 3. The number of chip-selects in use
  29. 4. The type of DDR (DDR3 or LPDDR2). Note that LPDDR2 support
  30. is incomplete as of this writing.
  31. 5. The type of DDR chips in use. This selection allows re-use of common
  32. parts and four DDR3 and two LPDDR2 parts are currently defined
  33. 6. The On-die termination value for the DRAM lines
  34. 7. The DRAM drive strength
  35. 8. The RTT_NOM and RTT_WR termination settings
  36. 9. RALAT/WALAT latency values
  37. References:
  38. [1] - NXP DDR Stress Test Tool - https://community.nxp.com/docs/DOC-105652
  39. [2] - Boundary Devices imx_usb_loader
  40. https://github.com/boundarydevices/imx_usb_loader
  41. [3] - Use of SB_Loader.exe
  42. https://boundarydevices.com/windows-users-and-unbricking