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;
+}