liblitedram: discard singular 1s that are surrounded by 0s
They are most likely glitches and won't be stable. Signed-off-by: Maciej Dudek <mdudek@antmicro.com>
This commit is contained in:
parent
cd89b62ff6
commit
3c02323cfe
|
@ -415,7 +415,7 @@ static void sdram_leveling_center_module(
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
int show;
|
int show;
|
||||||
int working;
|
int working, last_working;
|
||||||
unsigned int errors;
|
unsigned int errors;
|
||||||
int delay, delay_mid, delay_range;
|
int delay, delay_mid, delay_range;
|
||||||
int delay_min = -1, delay_max = -1, cur_delay_min = -1;
|
int delay_min = -1, delay_max = -1, cur_delay_min = -1;
|
||||||
|
@ -425,9 +425,11 @@ static void sdram_leveling_center_module(
|
||||||
|
|
||||||
/* Find smallest working delay */
|
/* Find smallest working delay */
|
||||||
delay = 0;
|
delay = 0;
|
||||||
|
working = 0;
|
||||||
rst_delay(module);
|
rst_delay(module);
|
||||||
while(1) {
|
while(1) {
|
||||||
errors = run_test_pattern(module);
|
errors = run_test_pattern(module);
|
||||||
|
last_working = working;
|
||||||
working = errors == 0;
|
working = errors == 0;
|
||||||
show = show_long;
|
show = show_long;
|
||||||
#if SDRAM_PHY_DELAYS > 32
|
#if SDRAM_PHY_DELAYS > 32
|
||||||
|
@ -435,8 +437,8 @@ static void sdram_leveling_center_module(
|
||||||
#endif
|
#endif
|
||||||
if (show)
|
if (show)
|
||||||
print_scan_errors(errors);
|
print_scan_errors(errors);
|
||||||
if(working && delay_min < 0) {
|
if(working && last_working && delay_min < 0) {
|
||||||
delay_min = delay;
|
delay_min = delay - 1; // delay on edges can be spotty
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
delay++;
|
delay++;
|
||||||
|
|
Loading…
Reference in New Issue