summaryrefslogtreecommitdiff
path: root/src/ram
diff options
context:
space:
mode:
Diffstat (limited to 'src/ram')
-rw-r--r--src/ram/ramtest.c54
1 files changed, 52 insertions, 2 deletions
diff --git a/src/ram/ramtest.c b/src/ram/ramtest.c
index 3b2d741a36..b65c11dd34 100644
--- a/src/ram/ramtest.c
+++ b/src/ram/ramtest.c
@@ -29,22 +29,34 @@ static void ram_fill(unsigned long start, unsigned long stop)
/*
* Fill.
*/
+#if CONFIG_USE_PRINTK_IN_CAR
+ printk_debug("DRAM fill: 0x%08x-0x%08x\r\n", start, stop);
+#else
print_debug("DRAM fill: ");
print_debug_hex32(start);
print_debug("-");
print_debug_hex32(stop);
print_debug("\r\n");
+#endif
for(addr = start; addr < stop ; addr += 4) {
/* Display address being filled */
- if (!(addr & 0xffff)) {
+ if (!(addr & 0xfffff)) {
+#if CONFIG_USE_PRINTK_IN_CAR
+ printk_debug("%08x \r", addr);
+#else
print_debug_hex32(addr);
print_debug(" \r");
+#endif
}
write_phys(addr, addr);
};
/* Display final address */
+#if CONFIG_USE_PRINTK_IN_CAR
+ printk_debug("%08x\r\nDRAM filled\r\n", addr);
+#else
print_debug_hex32(addr);
print_debug("\r\nDRAM filled\r\n");
+#endif
}
static void ram_verify(unsigned long start, unsigned long stop)
@@ -54,40 +66,70 @@ static void ram_verify(unsigned long start, unsigned long stop)
/*
* Verify.
*/
+#if CONFIG_USE_PRINTK_IN_CAR
+ printk_debug("DRAM verify: 0x%08x-0x%08x\r\n", start, stop);
+#else
print_debug("DRAM verify: ");
print_debug_hex32(start);
print_debug_char('-');
print_debug_hex32(stop);
print_debug("\r\n");
+#endif
for(addr = start; addr < stop ; addr += 4) {
unsigned long value;
/* Display address being tested */
- if (!(addr & 0xffff)) {
+ if (!(addr & 0xfffff)) {
+#if CONFIG_USE_PRINTK_IN_CAR
+ printk_debug("%08x \r", addr);
+#else
print_debug_hex32(addr);
print_debug(" \r");
+#endif
}
value = read_phys(addr);
if (value != addr) {
/* Display address with error */
+#if CONFIG_USE_PRINTK_IN_CAR
+ printk_err("Fail: @0x%08x Read value=0x%08x\r\n", addr, value);
+#else
print_err("Fail: @0x");
print_err_hex32(addr);
print_err(" Read value=0x");
print_err_hex32(value);
print_err("\r\n");
+#endif
i++;
if(i>256) {
+#if CONFIG_USE_PRINTK_IN_CAR
+ printk_debug("Aborting.\n\r");
+#else
print_debug("Aborting.\n\r");
+#endif
break;
}
}
}
/* Display final address */
+#if CONFIG_USE_PRINTK_IN_CAR
+ printk_debug("%08x", addr);
+#else
print_debug_hex32(addr);
+#endif
+
if (i) {
+#if CONFIG_USE_PRINTK_IN_CAR
+ printk_debug("\r\nDRAM did _NOT_ verify!\r\n");
+#else
print_debug("\r\nDRAM did _NOT_ verify!\r\n");
+#endif
+ die("DRAM ERROR");
}
else {
+#if CONFIG_USE_PRINTK_IN_CAR
+ printk_debug("\r\nDRAM range verified.\r\n");
+#else
print_debug("\r\nDRAM range verified.\r\n");
+#endif
}
}
@@ -99,13 +141,21 @@ void ram_check(unsigned long start, unsigned long stop)
* test than a "Is my DRAM faulty?" test. Not all bits
* are tested. -Tyson
*/
+#if CONFIG_USE_PRINTK_IN_CAR
+ printk_debug("Testing DRAM : %08x - %08x\r\n", start, stop);
+#else
print_debug("Testing DRAM : ");
print_debug_hex32(start);
print_debug("-");
print_debug_hex32(stop);
print_debug("\r\n");
+#endif
ram_fill(start, stop);
ram_verify(start, stop);
+#if CONFIG_USE_PRINTK_IN_CAR
+ printk_debug("Done.\r\n");
+#else
print_debug("Done.\r\n");
+#endif
}