Signed-off-by: Heiko Schocher <h...@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

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

Reply via email to