diff options
author | Andrey Smirnov <andrew.smirnov@gmail.com> | 2015-05-13 19:54:21 -0700 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2015-05-15 07:16:14 +0200 |
commit | f09e7cfb8f129d4e85514e92b68bf4c1d7bfd1e9 (patch) | |
tree | ef5c4e492edb3c862bbb948b27e0e6b614a152b2 | |
parent | 6a69d233bdf9d29cf24c0b59d818fd176caf851b (diff) | |
download | barebox-f09e7cfb8f129d4e85514e92b68bf4c1d7bfd1e9.tar.gz barebox-f09e7cfb8f129d4e85514e92b68bf4c1d7bfd1e9.tar.xz |
common/memtest.c: Distil common error reporting code
Move all of the common code for error message output into a new
function mem_test_report_failure() and convert the rest of the code to
use it.
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | common/memtest.c | 53 |
1 files changed, 28 insertions, 25 deletions
diff --git a/common/memtest.c b/common/memtest.c index 57e2ad9a4f..d8d1154c8b 100644 --- a/common/memtest.c +++ b/common/memtest.c @@ -28,6 +28,17 @@ #include <errno.h> #include <memtest.h> +static void mem_test_report_failure(const char *failure_description, + resource_size_t expected_value, + resource_size_t actual_value, + volatile resource_size_t *address) +{ + printf("FAILURE (%s): " + "expected 0x%08x, actual 0x%08x at address 0x%08x.\n", + failure_description, expected_value, actual_value, + (resource_size_t)address); +} + int mem_test_bus_integrity(resource_size_t _start, resource_size_t _end) { @@ -87,9 +98,8 @@ int mem_test_bus_integrity(resource_size_t _start, *dummy = ~val; readback = *start; if (readback != val) { - printf("FAILURE (data line): " - "expected 0x%08x, actual 0x%08x at address 0x%08x.\n", - val, readback, (resource_size_t)start); + mem_test_report_failure("data line", + val, readback, start); return -EIO; } @@ -97,10 +107,8 @@ int mem_test_bus_integrity(resource_size_t _start, *dummy = val; readback = *start; if (readback != ~val) { - printf("FAILURE (data line): " - "Is 0x%08x, should be 0x%08x at address 0x%08x.\n", - readback, - ~val, (resource_size_t)start); + mem_test_report_failure("data line", + ~val, readback, start); return -EIO; } } @@ -174,11 +182,8 @@ int mem_test_bus_integrity(resource_size_t _start, for (offset = 1; offset <= num_words; offset <<= 1) { temp = start[offset]; if (temp != pattern) { - printf("FAILURE: Address bit " - "stuck high @ 0x%08x:" - " expected 0x%08x, actual 0x%08x.\n", - (resource_size_t)&start[offset], - pattern, temp); + mem_test_report_failure("address bit stuck high", + pattern, temp, &start[offset]); return -EIO; } } @@ -203,11 +208,9 @@ int mem_test_bus_integrity(resource_size_t _start, if ((temp != pattern) && (offset != offset2)) { - printf("FAILURE: Address bit stuck" - " low or shorted @" - " 0x%08x: expected 0x%08x, actual 0x%08x.\n", - (resource_size_t)&start[offset], - pattern, temp); + mem_test_report_failure( + "address bit stuck low or shorted", + pattern, temp, &start[offset]); return -EIO; } } @@ -278,10 +281,10 @@ int mem_test_dram(resource_size_t _start, temp = start[offset]; if (temp != (offset + 1)) { - printf("\nFAILURE (read/write) @ 0x%08x:" - " expected 0x%08x, actual 0x%08x.\n", - (resource_size_t)&start[offset], - (offset + 1), temp); + printf("\n"); + mem_test_report_failure("read/write", + (offset + 1), + temp, &start[offset]); return -EIO; } @@ -306,10 +309,10 @@ int mem_test_dram(resource_size_t _start, temp = start[offset]; if (temp != anti_pattern) { - printf("\nFAILURE (read/write): @ 0x%08x:" - " expected 0x%08x, actual 0x%08x.\n", - (resource_size_t)&start[offset], - anti_pattern, temp); + printf("\n"); + mem_test_report_failure("read/write", + anti_pattern, + temp, &start[offset]); return -EIO; } |