
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.kumar@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