summaryrefslogtreecommitdiff
path: root/arch/arm/include/asm
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/include/asm')
-rw-r--r--arch/arm/include/asm/arch-sunxi/dram.h22
1 files changed, 6 insertions, 16 deletions
diff --git a/arch/arm/include/asm/arch-sunxi/dram.h b/arch/arm/include/asm/arch-sunxi/dram.h
index 8d78029a96..7ff43e6d3a 100644
--- a/arch/arm/include/asm/arch-sunxi/dram.h
+++ b/arch/arm/include/asm/arch-sunxi/dram.h
@@ -24,8 +24,6 @@
#include <asm/arch/dram_sun4i.h>
#endif
-#define MCTL_MEM_FILL_MATCH_COUNT 64
-
unsigned long sunxi_dram_init(void);
/*
@@ -42,24 +40,16 @@ static inline void mctl_await_completion(u32 *reg, u32 mask, u32 val)
}
/*
- * Fill beginning of DRAM with "random" data for mctl_mem_matches()
- */
-static inline void mctl_mem_fill(void)
-{
- int i;
-
- for (i = 0; i < MCTL_MEM_FILL_MATCH_COUNT; i++)
- writel(0xaa55aa55 + i, CONFIG_SYS_SDRAM_BASE + i * 4);
-}
-
-/*
* Test if memory at offset offset matches memory at begin of DRAM
*/
static inline bool mctl_mem_matches(u32 offset)
{
- return memcmp((u32 *)CONFIG_SYS_SDRAM_BASE,
- (u32 *)(CONFIG_SYS_SDRAM_BASE + offset),
- MCTL_MEM_FILL_MATCH_COUNT * 4) == 0;
+ /* Try to write different values to RAM at two addresses */
+ writel(0, CONFIG_SYS_SDRAM_BASE);
+ writel(0xaa55aa55, CONFIG_SYS_SDRAM_BASE + offset);
+ /* Check if the same value is actually observed when reading back */
+ return readl(CONFIG_SYS_SDRAM_BASE) ==
+ readl(CONFIG_SYS_SDRAM_BASE + offset);
}
#endif /* _SUNXI_DRAM_H */