1 static void write_phys(unsigned long addr, unsigned long value)
7 : "r" (addr), "r" (value) /* inputs */
13 volatile unsigned long *ptr;
19 static unsigned long read_phys(unsigned long addr)
21 volatile unsigned long *ptr;
26 static void ram_fill(unsigned long start, unsigned long stop)
32 print_debug("DRAM fill: ");
33 print_debug_hex32(start);
35 print_debug_hex32(stop);
37 for(addr = start; addr < stop ; addr += 4) {
38 /* Display address being filled */
39 if (!(addr & 0xffff)) {
40 print_debug_hex32(addr);
43 write_phys(addr, addr);
45 /* Display final address */
46 print_debug_hex32(addr);
47 print_debug("\r\nDRAM filled\r\n");
50 static void ram_verify(unsigned long start, unsigned long stop)
56 print_debug("DRAM verify: ");
57 print_debug_hex32(start);
58 print_debug_char('-');
59 print_debug_hex32(stop);
61 for(addr = start; addr < stop ; addr += 4) {
63 /* Display address being tested */
64 if (!(addr & 0xffff)) {
65 print_debug_hex32(addr);
68 value = read_phys(addr);
70 /* Display address with error */
71 print_err_hex32(addr);
73 print_err_hex32(value);
77 /* Display final address */
78 print_debug_hex32(addr);
79 print_debug("\r\nDRAM verified\r\n");
83 void ram_check(unsigned long start, unsigned long stop)
87 * This is much more of a "Is my DRAM properly configured?"
88 * test than a "Is my DRAM faulty?" test. Not all bits
91 print_debug("Testing DRAM : ");
92 print_debug_hex32(start);
94 print_debug_hex32(stop);
96 ram_fill(start, stop);
97 ram_verify(start, stop);
98 print_debug("Done.\r\n");