summaryrefslogtreecommitdiff
path: root/common/memsize.c
diff options
context:
space:
mode:
authorYork Sun <yorksun@freescale.com>2014-02-11 11:57:26 -0800
committerTom Rini <trini@ti.com>2014-02-21 11:06:13 -0500
commite38661634b3d60af80d85ce9eb570a45db4729ca (patch)
treea7a7f3272ccac9757c941c9c71525fd7adf5ccd5 /common/memsize.c
parent6b1e1254f326940e5b65c7029f71b964bdf28fd4 (diff)
common: Add get_effective_memsize() to memsize.c
This function has been around for powerpc. It is used for systems with memory more than CONFIG_MAX_MEM_MAPPED. In case of non-contiguous memory, this feature can limit U-boot to one block without going over the limit. Signed-off-by: York Sun <yorksun@freescale.com> Acked-by: Albert ARIBAUD <albert.u.boot@aribaud.net>
Diffstat (limited to 'common/memsize.c')
-rw-r--r--common/memsize.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/common/memsize.c b/common/memsize.c
index 73b92c8a00e..589400d3b14 100644
--- a/common/memsize.c
+++ b/common/memsize.c
@@ -5,7 +5,10 @@
* SPDX-License-Identifier: GPL-2.0+
*/
-#include <config.h>
+#include <common.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
#ifdef __PPC__
/*
* At least on G2 PowerPC cores, sequential accesses to non-existent
@@ -76,3 +79,14 @@ long get_ram_size(long *base, long maxsize)
return (maxsize);
}
+
+phys_size_t __weak get_effective_memsize(void)
+{
+#ifndef CONFIG_VERY_BIG_RAM
+ return gd->ram_size;
+#else
+ /* limit stack to what we can reasonable map */
+ return ((gd->ram_size > CONFIG_MAX_MEM_MAPPED) ?
+ CONFIG_MAX_MEM_MAPPED : gd->ram_size);
+#endif
+}