mdm9625: Pass all the available DDR regions to the kernel.
diff --git a/target/mdm9625/meminfo.c b/target/mdm9625/meminfo.c
index 7f88b56..0450f81 100644
--- a/target/mdm9625/meminfo.c
+++ b/target/mdm9625/meminfo.c
@@ -38,24 +38,8 @@
 
 #define SIZE_1M             (1024 * 1024)
 
-typedef struct {
-	uint32_t size;
-	uint32_t start_addr;
-}mem_info;
-
 static struct smem_ram_ptable ram_ptable;
 
-mem_info mdm9625_default_fixed_memory[] = {
-	{	.size = (29 * SIZE_1M),
-		.start_addr = SDRAM_START_ADDR +
-				(2 * SIZE_1M)
-	},
-	{	.size = (10 * SIZE_1M),
-		.start_addr = SDRAM_START_ADDR +
-				(118 * SIZE_1M)
-	},
-};
-
 struct smem_ram_ptable* target_smem_ram_ptable_init()
 {
    /* Make sure RAM partition table is initialized */
@@ -64,93 +48,47 @@
    return &ram_ptable;
 }
 
-int target_add_first_mem_bank(void *fdt,
-							  uint32_t offset,
-							  mem_info usable_mem_map[],
-							  uint32_t num_regions)
-{
-	uint32_t i;
-	int ret;
-
-	ASSERT(num_regions);
-
-	dprintf(SPEW, "Number of HLOS regions in 1st bank = %u\n", num_regions);
-
-	for (i = 0; i < num_regions; i++)
-	{
-           ret = dev_tree_add_mem_info(fdt,
-									   offset,
-									   usable_mem_map[i].start_addr,
-									   usable_mem_map[i].size);
-	}
-	return ret;
-}
-
 /* Funtion to add the ram partition entries into device tree.
  * The function assumes that all the entire fixed memory regions should
  * be listed in the first bank of the passed in ddr regions.
  */
 uint32_t target_dev_tree_mem(void *fdt, uint32_t memory_node_offset)
 {
-    uint32_t last_fixed_addr;
-    int n;
     unsigned int i;
 	int ret;
 
-    n = ARRAY_SIZE(mdm9625_default_fixed_memory);
-
-    last_fixed_addr = mdm9625_default_fixed_memory[n-1].start_addr +
-					mdm9625_default_fixed_memory[n-1].size;
-
-    for (i = 0; i < ram_ptable.len; i++)
+     for (i = 0; i < ram_ptable.len; i++)
     {
-        if((ram_ptable.parts[i].category == SDRAM) &&
+        if ((ram_ptable.parts[i].category == SDRAM) &&
 		   (ram_ptable.parts[i].type == SYS_MEMORY))
         {
-            if((ram_ptable.parts[i].start <= last_fixed_addr) &&
-               ((ram_ptable.parts[i].start + ram_ptable.parts[i].size) >= last_fixed_addr))
-            {
-
-				/* Pass along all fixed memory regions to Linux */
-				 ret = target_add_first_mem_bank(fdt,
-												 memory_node_offset,
-												 mdm9625_default_fixed_memory,
-												 ARRAY_SIZE(mdm9625_default_fixed_memory));
-
-				if (ret)
-				{
-					dprintf(CRITICAL, "Failed to add first bank fixed memory addresses\n");
-					goto target_dev_tree_mem_err;
-				}
-
-				if((ram_ptable.parts[i].start + ram_ptable.parts[i].size) != last_fixed_addr)
-                {
-					/* Pass the memory beyond the fixed memory present in the partition */
-					ret = dev_tree_add_mem_info(fdt,
-												memory_node_offset,
-												ram_ptable.parts[i].start + last_fixed_addr,
-												ram_ptable.parts[i].size - last_fixed_addr);
-
-					if (ret)
-					{
-						dprintf(CRITICAL, "Failed to add first bank memory addresses\n");
-						goto target_dev_tree_mem_err;
-					}
-                }
-            }
-			else
+		if (ram_ptable.parts[i].start == 0)
 			{
 				/* Pass along all other usable memory regions to Linux */
+				/* Any memory not accessible by the kernel which is below the
+				 * kernel start address must *not* be given to the kernel.
+				 */
 				ret = dev_tree_add_mem_info(fdt,
 											memory_node_offset,
-											ram_ptable.parts[i].start,
+											ram_ptable.parts[i].start + 2 * SIZE_1M,
 											ram_ptable.parts[i].size);
 
-				if (ret)
-				{
-					dprintf(CRITICAL, "Failed to add secondary banks memory addresses\n");
-					goto target_dev_tree_mem_err;
-				}
+			}
+			else
+			{
+					/* Pass along all other usable memory regions to Linux */
+					ret = dev_tree_add_mem_info(fdt,
+												memory_node_offset,
+												ram_ptable.parts[i].start,
+												ram_ptable.parts[i].size);
+
+			}
+
+
+			if (ret)
+			{
+				dprintf(CRITICAL, "Failed to add memory bank addresses to device tree\n");
+				goto target_dev_tree_mem_err;
 			}
         }
     }