diff options
author | Andrey Smirnov <andrew.smirnov@gmail.com> | 2015-05-13 19:54:19 -0700 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2015-05-15 07:16:14 +0200 |
commit | 6ebc8c603ae3d4a337fe7269661e12b04e960af5 (patch) | |
tree | 6289400e276a493d3c2f7abf7c437ed2a13922aa /common/complete.c | |
parent | 8c15d0505456d9861ad4b373bdd9342031ea276f (diff) | |
download | barebox-6ebc8c603ae3d4a337fe7269661e12b04e960af5.tar.gz barebox-6ebc8c603ae3d4a337fe7269661e12b04e960af5.tar.xz |
common/memtest.c: Do not omit offset of 0 from tests
Ommiting offset 0 from address line tests allows certain corner cases
of faults to be undetected.
For the "stuck high" case, consider scenario in which all of the
tested address lines are stuck high. In original code first data
filling loop would execute writing data to a single cell multiple
times and second loop would just read data from that cell over and
over again. Adding a write to start[0] should prevent this since it
would cause the second loop to read incorrect data on its first
iteration.
For the "stuck low" case, having any of the tested bits of the address
shorted would effectively "remap" that memory cell to start[0] in this
case excluding start[0] during the verification phase would result in
a false positive result.
Note that both of the changes are present in Michael Barr's code here:
http://www.esacademy.com/en/library/technical-articles-and-documents/miscellaneous/software-based-memory-testing.html
and the code in barebox is based on that code.
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'common/complete.c')
0 files changed, 0 insertions, 0 deletions