Blame view

doc/README.mpc83xx.ddrecc 4.55 KB
dc9e499c6   Rafal Jaworowski   Support for DDR w...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  Overview
  ========
  
  The overall usage pattern for ECC diagnostic commands is the following:
  
    * (injecting errors is initially disabled)
  
    * define inject mask (which tells the DDR controller what type of errors
      we'll be injecting: single/multiple bit etc.)
  
    * enable injecting errors - from now on the controller injects errors as
      indicated in the inject mask
  
  IMPORTANT NOTICE: enabling injecting multiple-bit errors is potentially
  dangerous as such errors are NOT corrected by the controller. Therefore caution
  should be taken when enabling the injection of multiple-bit errors: it is only
  safe when used on a carefully selected memory area and used under control of
47e8bc846   Dave Liu   mpc83xx: Correct ...
18
19
20
21
  the 'ecc testdw' 'ecc testword' command (see example 'Injecting Multiple-Bit
  Errors' below). In particular, when you simply set the multiple-bit errors in
  inject mask and enable injection, U-Boot is very likely to hang quickly as the
  errors will be injected when it accesses its code, data etc.
d326f4a24   Marian Balakowicz   Add command for h...
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
  
  
  Use cases for DDR 'ecc' command:
  ================================
  
  Before executing particular tests reset target board or clear status registers:
  
  => ecc captureclear
  => ecc errdetectclr all
  => ecc sbecnt 0
  
  
  Injecting Single-Bit Errors
  ---------------------------
  
  1. Set 1 bit in Data Path Error Inject Mask
  
  => ecc injectdatahi 1
  
  2. Run test over some memory region
47e8bc846   Dave Liu   mpc83xx: Correct ...
42
  => ecc testdw 200000 10
d326f4a24   Marian Balakowicz   Add command for h...
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
  
  3. Check ECC status
  
  => ecc status
  ...
  Memory Data Path Error Injection Mask High/Low: 00000001 00000000
  ...
  Memory Single-Bit Error Management (0..255):
    Single-Bit Error Threshold: 255
    Single Bit Error Counter: 16
  ...
  Memory Error Detect:
    Multiple Memory Errors: 0
    Multiple-Bit Error: 0
    Single-Bit Error: 0
  ...
  
  16 errors were generated, Single-Bit Error flag was not set as Single Bit Error
  Counter did not reach  Single-Bit Error Threshold.
47e8bc846   Dave Liu   mpc83xx: Correct ...
62
  4. Make sure used memory region got re-initialized with 0x0123456789abcdef
d326f4a24   Marian Balakowicz   Add command for h...
63
64
  
  => md 200000
47e8bc846   Dave Liu   mpc83xx: Correct ...
65
66
67
68
69
70
71
72
  00200000: 01234567 89abcdef 01234567 89abcdef    .#Eg.....#Eg....
  00200010: 01234567 89abcdef 01234567 89abcdef    .#Eg.....#Eg....
  00200020: 01234567 89abcdef 01234567 89abcdef    .#Eg.....#Eg....
  00200030: 01234567 89abcdef 01234567 89abcdef    .#Eg.....#Eg....
  00200040: 01234567 89abcdef 01234567 89abcdef    .#Eg.....#Eg....
  00200050: 01234567 89abcdef 01234567 89abcdef    .#Eg.....#Eg....
  00200060: 01234567 89abcdef 01234567 89abcdef    .#Eg.....#Eg....
  00200070: 01234567 89abcdef 01234567 89abcdef    .#Eg.....#Eg....
d326f4a24   Marian Balakowicz   Add command for h...
73
74
  00200080: deadbeef deadbeef deadbeef deadbeef    ................
  00200090: deadbeef deadbeef deadbeef deadbeef    ................
d326f4a24   Marian Balakowicz   Add command for h...
75
76
77
78
  Injecting Multiple-Bit Errors
  -----------------------------
  
  1. Set more than 1 bit in Data Path Error Inject Mask
47e8bc846   Dave Liu   mpc83xx: Correct ...
79
80
  => ecc injectdatahi 1
  => ecc injectdatalo 1
d326f4a24   Marian Balakowicz   Add command for h...
81
82
  
  2. Run test over some memory region
47e8bc846   Dave Liu   mpc83xx: Correct ...
83
  => ecc testword 200000 1
d326f4a24   Marian Balakowicz   Add command for h...
84
85
86
87
88
  
  3. Check ECC status
  
  => ecc status
  ...
47e8bc846   Dave Liu   mpc83xx: Correct ...
89
  Memory Data Path Error Injection Mask High/Low: 00000001 00000001
d326f4a24   Marian Balakowicz   Add command for h...
90
91
  ...
  Memory Error Detect:
47e8bc846   Dave Liu   mpc83xx: Correct ...
92
    Multiple Memory Errors: 0
d326f4a24   Marian Balakowicz   Add command for h...
93
94
95
    Multiple-Bit Error: 1
    Single-Bit Error: 0
  ...
47e8bc846   Dave Liu   mpc83xx: Correct ...
96
  The Multiple Memory Errors flags not set and Multiple-Bit Error flags are set.
d326f4a24   Marian Balakowicz   Add command for h...
97

47e8bc846   Dave Liu   mpc83xx: Correct ...
98
  4. Make sure used memory region got re-initialized with 0x0123456789abcdef
d326f4a24   Marian Balakowicz   Add command for h...
99
100
  
  => md 200000
47e8bc846   Dave Liu   mpc83xx: Correct ...
101
102
103
104
105
106
107
108
  00200000: 01234567 89abcdef 01234567 89abcdef    .#Eg.....#Eg....
  00200010: 01234567 89abcdef 01234567 89abcdef    .#Eg.....#Eg....
  00200020: 01234567 89abcdef 01234567 89abcdef    .#Eg.....#Eg....
  00200030: 01234567 89abcdef 01234567 89abcdef    .#Eg.....#Eg....
  00200040: 01234567 89abcdef 01234567 89abcdef    .#Eg.....#Eg....
  00200050: 01234567 89abcdef 01234567 89abcdef    .#Eg.....#Eg....
  00200060: 01234567 89abcdef 01234567 89abcdef    .#Eg.....#Eg....
  00200070: 01234567 89abcdef 01234567 89abcdef    .#Eg.....#Eg....
d326f4a24   Marian Balakowicz   Add command for h...
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
  00200080: deadbeef deadbeef deadbeef deadbeef    ................
  00200090: deadbeef deadbeef deadbeef deadbeef    ................
  
  
  Test Single-Bit Error Counter and Threshold
  -------------------------------------------
  
  1. Set 1 bit in Data Path Error Inject Mask
  
  => ecc injectdatahi 1
  
  2. Enable error injection
  
  => ecc inject en
  
  3. Let u-boot run for a with Single-Bit error injection enabled
  
  4. Disable error injection
  
  => ecc inject dis
  
  4. Check status
  
  => ecc status
  
  ...
  Memory Single-Bit Error Management (0..255):
    Single-Bit Error Threshold: 255
47e8bc846   Dave Liu   mpc83xx: Correct ...
137
    Single Bit Error Counter: 199
d326f4a24   Marian Balakowicz   Add command for h...
138
139
140
141
142
143
144
145
146
147
148
  
  Memory Error Detect:
    Multiple Memory Errors: 1
    Multiple-Bit Error: 0
    Single-Bit Error: 1
  ...
  
  Observe that Single-Bit Error is 'on' which means that Single-Bit Error Counter
  reached Single-Bit Error Threshold. Multiple Memory Errors bit is also 'on', that
  is Counter reached Threshold more than one time (it wraps back after reaching
  Threshold).