[U-Boot] [PATCH] post, arm, memorytest: add support for arm based boards
Heiko Schocher
hs at denx.de
Wed Jun 1 08:24:06 CEST 2011
Signed-off-by: Heiko Schocher <hs at denx.de>
---
post/drivers/memory.c | 20 ++++++++++++++++++++
1 files changed, 20 insertions(+), 0 deletions(-)
diff --git a/post/drivers/memory.c b/post/drivers/memory.c
index b7943ef..47b312d 100644
--- a/post/drivers/memory.c
+++ b/post/drivers/memory.c
@@ -455,10 +455,30 @@ static int memory_post_tests (unsigned long start, unsigned long size)
__attribute__((weak))
int arch_memory_test_prepare(u32 *vstart, u32 *size, phys_addr_t *phys_offset)
{
+#if defined(CONFIG_ARM)
+ bd_t *bd = gd->bd;
+ int i;
+
+ *size = 0;
+ for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) {
+ if (i == 0) {
+ *vstart = bd->bi_dram[0].start;
+ *size += bd->bi_dram[i].size;
+ } else {
+ if (bd->bi_dram[i].start ==
+ (bd->bi_dram[i - 1].start + bd->bi_dram[i - 1].size)) {
+ *size += bd->bi_dram[i].size;
+ } else {
+ break;
+ }
+ }
+ }
+#else
bd_t *bd = gd->bd;
*vstart = CONFIG_SYS_SDRAM_BASE;
*size = (bd->bi_memsize >= 256 << 20 ?
256 << 20 : bd->bi_memsize) - (1 << 20);
+#endif
/* Limit area to be tested with the board info struct */
if ((*vstart) + (*size) > (ulong)bd)
--
1.7.4.4
More information about the U-Boot
mailing list