diff options
Diffstat (limited to 'board/cavium')
-rw-r--r-- | board/cavium/thunderx/thunderx.c | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/board/cavium/thunderx/thunderx.c b/board/cavium/thunderx/thunderx.c index 486374e982b..b9267676dc6 100644 --- a/board/cavium/thunderx/thunderx.c +++ b/board/cavium/thunderx/thunderx.c @@ -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. */ |