diff --git a/post/drivers/memory.c b/post/drivers/memory.c
index 69973c0f4427bd7be4a6c5e923967a567c411b33..d25e3235ca105ef8d5daec4782eb7180cff89271 100644
--- a/post/drivers/memory.c
+++ b/post/drivers/memory.c
@@ -466,10 +466,11 @@ static int memory_post_test_regions(unsigned long start, unsigned long size)
 
 	for (i = 0; i < (size >> 20) && (!ret); i++) {
 		if (!ret)
-			ret = memory_post_test_patterns(i << 20, 0x800);
-		if (!ret)
-			ret = memory_post_test_patterns((i << 20) + 0xff800,
+			ret = memory_post_test_patterns(start + (i << 20),
 				0x800);
+		if (!ret)
+			ret = memory_post_test_patterns(start + (i << 20) +
+				0xff800, 0x800);
 	}
 
 	return ret;