armv8: cavium: Get DRAM size from ATF
authorSergey Temerkhanov <s.temerkhanov@gmail.com>
Wed, 14 Oct 2015 16:55:52 +0000 (09:55 -0700)
committerTom Rini <trini@konsulko.com>
Tue, 19 Jan 2016 22:26:13 +0000 (22:26 +0000)
Change the dram_init() function on ThunderX to query ATF services for
the real installed DRAM size

Signed-off-by: Sergey Temerkhanov <s.temerkhanov@gmail.com>
Signed-off-by: Radha Mohan Chintakuntla <rchintakuntla@cavium.com>
board/cavium/thunderx/thunderx.c

index 486374e982b5b6c511090ba806bfd07f86677323..b9267676dc65afc1e98d2297a0db1ac437c752fa 100644 (file)
@@ -9,6 +9,8 @@
 #include <errno.h>
 #include <linux/compiler.h>
 
+#include <cavium/atf.h>
+
 #if !CONFIG_IS_ENABLED(OF_CONTROL)
 #include <dm/platdata.h>
 #include <dm/platform_data/serial_pl01x.h>
@@ -50,6 +52,31 @@ int timer_init(void)
        return 0;
 }
 
+int dram_init(void)
+{
+       ssize_t node_count = atf_node_count();
+       ssize_t dram_size;
+       int node;
+
+       printf("Initializing\nNodes in system: %zd\n", node_count);
+
+       gd->ram_size = 0;
+
+       for (node = 0; node < node_count; node++) {
+               dram_size = atf_dram_size(node);
+               printf("Node %d: %zd MBytes of DRAM\n", node, dram_size >> 20);
+               gd->ram_size += dram_size;
+       }
+
+       gd->ram_size -= MEM_BASE;
+
+       *(unsigned long *)CPU_RELEASE_ADDR = 0;
+
+       puts("DRAM size:");
+
+       return 0;
+}
+
 /*
  * Board specific reset that is system reset.
  */