The xloader had a basic pattern read/write test with in itself. With the source
upgrading to SPL, it is now more convenient to use the Power On Self Test for
memory supported by u-boot.

This patch adds the support for memory POST test.

Signed-off-by: Vipin Kumar <vipin.ku...@st.com>
---
 arch/arm/cpu/arm926ejs/spear/cpu.c | 30 ++++++++++++++++++++++++++++++
 include/configs/spear.h            |  2 ++
 2 files changed, 32 insertions(+)

diff --git a/arch/arm/cpu/arm926ejs/spear/cpu.c 
b/arch/arm/cpu/arm926ejs/spear/cpu.c
index f03b2bb..d7608b2 100644
--- a/arch/arm/cpu/arm926ejs/spear/cpu.c
+++ b/arch/arm/cpu/arm926ejs/spear/cpu.c
@@ -120,3 +120,33 @@ int print_cpuinfo(void)
        return 0;
 }
 #endif
+
+#ifdef CONFIG_POST
+int arch_memory_test_prepare(u32 *vstart, u32 *size, phys_addr_t *phys_offset)
+{
+       /*
+        * Run the POST test on 64 MB memory starting from CONFIG_SYS_LOAD_ADDR
+        * The assumption here is that the DDR present on board is >= 128MB.
+        *
+        * The test runs before relocation (after the code copy has taken
+        * place), so it can not touch either before or after relocation areas
+        * of U-boot
+        *
+        * DDR usage
+        * <--------->|<---------------- / --------------->|<---------->
+        *   U-boot             Area to be used for             U-boot
+        *   before             POST test                       after
+        *   relocation                                         relocation
+        */
+
+       *vstart = CONFIG_SYS_LOAD_ADDR;
+       *size = 64 << 20;
+
+       return 0;
+}
+
+void arch_memory_failure_handle(void)
+{
+       hang();
+}
+#endif
diff --git a/include/configs/spear.h b/include/configs/spear.h
index 3a73811..a8ddf54 100644
--- a/include/configs/spear.h
+++ b/include/configs/spear.h
@@ -154,6 +154,8 @@
 /* Miscellaneous configurable options */
 #define CONFIG_ARCH_CPU_INIT
 #define CONFIG_DISPLAY_CPUINFO
+#define CONFIG_POST                            CONFIG_SYS_POST_MEMORY
+#define CONFIG_SYS_POST_WORD_ADDR              0x0
 
 #define CONFIG_OF_LIBFDT
 #define CONFIG_CMDLINE_TAG
-- 
1.7.11.4

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to