Code cleanup; make several boards compile & link.
[oweals/u-boot.git] / board / mpl / common / memtst.c
index f0ace2a760d80f17317966eeb71a9d916eb3aaf9..2c77d375ea00a5a2d2420fa2af69ed788ec48c5b 100644 (file)
@@ -65,9 +65,6 @@ int testdram (void)
 #define MEGABYTE (1024*1024)
 
 
-
-
-
 typedef struct {
        volatile unsigned long pat1;
        volatile unsigned long pat2;
@@ -444,7 +441,6 @@ void *RAM_MemTest_Check2Addr2 (int mode, unsigned long startaddr,
 }
 
 
-
 typedef struct {
        void (*test_write) (unsigned long startaddr, unsigned long size,
                                                unsigned long *pat);
@@ -457,7 +453,7 @@ typedef struct {
 
 
 #define TEST_STAGES 5
-const RAM_MEMTEST_FUNC test_stage[TEST_STAGES] = {
+static RAM_MEMTEST_FUNC test_stage[TEST_STAGES] = {
        {RAM_MemTest_WriteData1, "data test 1...\n", RAM_MemTest_CheckData1,
         NULL},
        {RAM_MemTest_WriteData2, "data test 2...\n", RAM_MemTest_CheckData2,
@@ -470,6 +466,32 @@ const RAM_MEMTEST_FUNC test_stage[TEST_STAGES] = {
         RAM_MemTest_CheckRandomPattern, NULL}
 };
 
+void mem_test_reloc(void)
+{
+       DECLARE_GLOBAL_DATA_PTR;
+       unsigned long addr;
+       int i;
+       for (i=0; i< TEST_STAGES; i++) {
+               addr = (ulong) (test_stage[i].test_write) + gd->reloc_off;
+               test_stage[i].test_write=
+                       (void (*) (unsigned long startaddr, unsigned long size,
+                                               unsigned long *pat))addr;
+               addr = (ulong) (test_stage[i].test_write_desc) + gd->reloc_off;
+               test_stage[i].test_write_desc=(char *)addr;
+               if(test_stage[i].test_check1) {
+                       addr = (ulong) (test_stage[i].test_check1) + gd->reloc_off;
+                       test_stage[i].test_check1=
+                               (void *(*) (int mode, unsigned long startaddr,
+                                unsigned long size, unsigned long *pat))addr;
+               }
+               if(test_stage[i].test_check2) {
+                       addr = (ulong) (test_stage[i].test_check2) + gd->reloc_off;
+                       test_stage[i].test_check2=
+                               (void *(*) (int mode, unsigned long startaddr,
+                                unsigned long size, unsigned long *pat))addr;
+               }
+       }
+}
 
 
 int mem_test (unsigned long start, unsigned long ramsize, int quiet)