platform: msm_shared: Add support for finding DDR size
Add support to find DDR size for any device at run time and add macros
to define ddr types suppoprted.
Change-Id: I262de16efa85f42441c5231ebacc59baf31bfa23
diff --git a/platform/msm_shared/include/mmu.h b/platform/msm_shared/include/mmu.h
index d70872e..9154066 100644
--- a/platform/msm_shared/include/mmu.h
+++ b/platform/msm_shared/include/mmu.h
@@ -32,6 +32,9 @@
#include <sys/types.h>
#include <arch/arm/mmu.h>
+#define MEM_4GB 0x100000000
+#define MEM_3GB 0xC0000000
+
#ifdef LPAE
typedef struct {
uint64_t paddress;
diff --git a/platform/msm_shared/smem.h b/platform/msm_shared/smem.h
index aa8cd1f..7fbe57f 100644
--- a/platform/msm_shared/smem.h
+++ b/platform/msm_shared/smem.h
@@ -653,4 +653,5 @@
uint32_t smem_get_ram_ptable_len(void);
void* smem_get_alloc_entry(smem_mem_type_t type, uint32_t* size);
uint32_t get_ddr_start();
+uint64_t smem_get_ddr_size();
#endif /* __PLATFORM_MSM_SHARED_SMEM_H */
diff --git a/platform/msm_shared/smem_ptable.c b/platform/msm_shared/smem_ptable.c
index 647b0dc..4ed47b7 100644
--- a/platform/msm_shared/smem_ptable.c
+++ b/platform/msm_shared/smem_ptable.c
@@ -325,3 +325,25 @@
ASSERT("DDR Start Mem Not found\n");
return 0;
}
+
+uint64_t smem_get_ddr_size()
+{
+ uint32_t i;
+ ram_partition ptn_entry;
+ uint32_t len = 0;
+ uint64_t size = 0;
+
+ ASSERT(smem_ram_ptable_init_v1());
+
+ len = smem_get_ram_ptable_len();
+
+ /* Determine the Start addr of the DDR RAM */
+ for(i = 0; i < len; i++)
+ {
+ smem_get_ram_ptable_entry(&ptn_entry, i);
+ if(ptn_entry.type == SYS_MEMORY && ptn_entry.category == SDRAM)
+ size += ptn_entry.size;
+ }
+
+ return size;
+}