Add call to get_ram_size() function to check memory range
for valid RAM.

Signed-off-by: Naresh Kumar Ravulapalli <nareshkumar.ravulapa...@altera.com>
---
 drivers/ddr/altera/sdram_arria10.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/drivers/ddr/altera/sdram_arria10.c 
b/drivers/ddr/altera/sdram_arria10.c
index d75203a1d2a..4a82af0b711 100644
--- a/drivers/ddr/altera/sdram_arria10.c
+++ b/drivers/ddr/altera/sdram_arria10.c
@@ -669,6 +669,22 @@ static int of_sdram_firewall_setup(const void *blob)
        return 0;
 }
 
+static void sdram_size_check(void)
+{
+       phys_size_t ram_check = 0;
+
+       debug("DDR: Running SDRAM size sanity check\n");
+
+       ram_check = get_ram_size((long *)gd->bd->bi_dram[0].start,
+                                gd->bd->bi_dram[0].size);
+       if (ram_check != gd->bd->bi_dram[0].size) {
+               puts("DDR: SDRAM size check failed!\n");
+               hang();
+       }
+
+       debug("DDR: SDRAM size check passed!\n");
+}
+
 int ddr_calibration_sequence(void)
 {
        schedule();
@@ -722,5 +738,7 @@ int ddr_calibration_sequence(void)
        if (sdram_is_ecc_enabled())
                sdram_init_ecc_bits(gd->ram_size);
 
+       sdram_size_check();
+
        return 0;
 }
-- 
2.35.3

Reply via email to