README.mpc8349emds.ddrecc 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. Use cases for DDR 'ecc' command:
  2. ================================
  3. Before executing particular tests reset target board or clear status registers:
  4. => ecc captureclear
  5. => ecc errdetectclr all
  6. => ecc sbecnt 0
  7. Injecting Single-Bit Errors
  8. ---------------------------
  9. 1. Set 1 bit in Data Path Error Inject Mask
  10. => ecc injectdatahi 1
  11. 2. Run test over some memory region
  12. => ecc test 200000 10
  13. 3. Check ECC status
  14. => ecc status
  15. ...
  16. Memory Data Path Error Injection Mask High/Low: 00000001 00000000
  17. ...
  18. Memory Single-Bit Error Management (0..255):
  19. Single-Bit Error Threshold: 255
  20. Single Bit Error Counter: 16
  21. ...
  22. Memory Error Detect:
  23. Multiple Memory Errors: 0
  24. Multiple-Bit Error: 0
  25. Single-Bit Error: 0
  26. ...
  27. 16 errors were generated, Single-Bit Error flag was not set as Single Bit Error
  28. Counter did not reach Single-Bit Error Threshold.
  29. 4. Make sure used memory region got re-initialized with 0xcafecafe pattern
  30. => md 200000
  31. 00200000: cafecafe cafecafe cafecafe cafecafe ................
  32. 00200010: cafecafe cafecafe cafecafe cafecafe ................
  33. 00200020: cafecafe cafecafe cafecafe cafecafe ................
  34. 00200030: cafecafe cafecafe cafecafe cafecafe ................
  35. 00200040: cafecafe cafecafe cafecafe cafecafe ................
  36. 00200050: cafecafe cafecafe cafecafe cafecafe ................
  37. 00200060: cafecafe cafecafe cafecafe cafecafe ................
  38. 00200070: cafecafe cafecafe cafecafe cafecafe ................
  39. 00200080: deadbeef deadbeef deadbeef deadbeef ................
  40. 00200090: deadbeef deadbeef deadbeef deadbeef ................
  41. Injecting Multiple-Bit Errors
  42. -----------------------------
  43. 1. Set more than 1 bit in Data Path Error Inject Mask
  44. => ecc injectdatahi 5
  45. 2. Run test over some memory region
  46. => ecc test 200000 10
  47. 3. Check ECC status
  48. => ecc status
  49. ...
  50. Memory Data Path Error Injection Mask High/Low: 00000005 00000000
  51. ...
  52. Memory Error Detect:
  53. Multiple Memory Errors: 1
  54. Multiple-Bit Error: 1
  55. Single-Bit Error: 0
  56. ...
  57. Observe that both Multiple Memory Errors and Multiple-Bit Error flags are set.
  58. 4. Make sure used memory region got re-initialized with 0xcafecafe pattern
  59. => md 200000
  60. 00200000: cafecafe cafecafe cafecafe cafecafe ................
  61. 00200010: cafecafe cafecafe cafecafe cafecafe ................
  62. 00200020: cafecafe cafecafe cafecafe cafecafe ................
  63. 00200030: cafecafe cafecafe cafecafe cafecafe ................
  64. 00200040: cafecafe cafecafe cafecafe cafecafe ................
  65. 00200050: cafecafe cafecafe cafecafe cafecafe ................
  66. 00200060: cafecafe cafecafe cafecafe cafecafe ................
  67. 00200070: cafecafe cafecafe cafecafe cafecafe ................
  68. 00200080: deadbeef deadbeef deadbeef deadbeef ................
  69. 00200090: deadbeef deadbeef deadbeef deadbeef ................
  70. Test Single-Bit Error Counter and Threshold
  71. -------------------------------------------
  72. 1. Set 1 bit in Data Path Error Inject Mask
  73. => ecc injectdatahi 1
  74. 2. Enable error injection
  75. => ecc inject en
  76. 3. Let u-boot run for a with Single-Bit error injection enabled
  77. 4. Disable error injection
  78. => ecc inject dis
  79. 4. Check status
  80. => ecc status
  81. ...
  82. Memory Single-Bit Error Management (0..255):
  83. Single-Bit Error Threshold: 255
  84. Single Bit Error Counter: 60
  85. Memory Error Detect:
  86. Multiple Memory Errors: 1
  87. Multiple-Bit Error: 0
  88. Single-Bit Error: 1
  89. ...
  90. Observe that Single-Bit Error is 'on' which means that Single-Bit Error Counter
  91. reached Single-Bit Error Threshold. Multiple Memory Errors bit is also 'on', that
  92. is Counter reached Threshold more than one time (it wraps back after reaching
  93. Threshold).