diff --git a/target/apq8084/init.c b/target/apq8084/init.c
index 1e03001..da3ca04 100644
--- a/target/apq8084/init.c
+++ b/target/apq8084/init.c
@@ -83,7 +83,7 @@
 		keys_post_event(KEY_VOLUMEUP, 1);
 }
 
-static target_mmc_mci_init()
+static void target_mmc_mci_init()
 {
 	uint32_t base_addr;
 	uint8_t slot;
@@ -142,7 +142,8 @@
 	 * Set drive strength & pull ctrl for
 	 * emmc
 	 */
-	set_sdc_power_ctrl();
+	/*Uncomment during bringup after the pull up values are finalized*/
+	//set_sdc_power_ctrl();
 
 	target_mmc_mci_init();
 
@@ -175,6 +176,34 @@
 /* Detect the modem type */
 void target_baseband_detect(struct board_data *board)
 {
+	uint32_t platform;
+	uint32_t platform_subtype;
+
+	platform = board->platform;
+	platform_subtype = board->platform_subtype;
+
+	/*
+	 * Look for platform subtype if present, else
+	 * check for platform type to decide on the
+	 * baseband type
+	 */
+	switch(platform_subtype) {
+	case HW_PLATFORM_SUBTYPE_UNKNOWN:
+		break;
+
+	default:
+		dprintf(CRITICAL, "Platform Subtype : %u is not supported\n",platform_subtype);
+		ASSERT(0);
+	};
+
+	switch(platform) {
+	case APQ8084:
+		board->baseband = BASEBAND_APQ;
+		break;
+	default:
+		dprintf(CRITICAL, "Platform type: %u is not supported\n",platform);
+		ASSERT(0);
+	}
 }
 
 unsigned target_baseband()
diff --git a/target/apq8084/meminfo.c b/target/apq8084/meminfo.c
index ed57e32..745657b 100644
--- a/target/apq8084/meminfo.c
+++ b/target/apq8084/meminfo.c
@@ -41,6 +41,39 @@
  */
 uint32_t target_dev_tree_mem(void *fdt, uint32_t memory_node_offset)
 {
+	struct smem_ram_ptable ram_ptable;
+	unsigned int i;
+	int ret = 0;
+
+	/* Make sure RAM partition table is initialized */
+	ASSERT(smem_ram_ptable_init(&ram_ptable));
+
+	/* Calculating the size of the mem_info_ptr */
+	for (i = 0 ; i < ram_ptable.len; i++)
+	{
+		if((ram_ptable.parts[i].category == SDRAM) &&
+			(ram_ptable.parts[i].type == SYS_MEMORY))
+		{
+
+			/* 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 secondary banks memory addresses\n"
+);
+				goto target_dev_tree_mem_err;
+			}
+
+		}
+	}
+
+target_dev_tree_mem_err:
+
+	return ret;
 }
 
 void *target_get_scratch_address(void)
diff --git a/target/apq8084/rules.mk b/target/apq8084/rules.mk
index 777cf39..aa2abf1 100644
--- a/target/apq8084/rules.mk
+++ b/target/apq8084/rules.mk
@@ -7,14 +7,11 @@
 MEMBASE := 0x0F900000 # SDRAM
 MEMSIZE := 0x00100000 # 1MB
 
-BASE_ADDR        := 0x00000
+BASE_ADDR    := 0x0000000
 
-TAGS_ADDR        := BASE_ADDR+0x00000100
-KERNEL_ADDR      := BASE_ADDR+0x00008000
-RAMDISK_ADDR     := BASE_ADDR+0x01000000
-SCRATCH_ADDR     := 0xFF00000
+SCRATCH_ADDR := 0xFF00000
 
-DEFINES += DISPLAY_SPLASH_SCREEN=1
+DEFINES += DISPLAY_SPLASH_SCREEN=0
 DEFINES += DISPLAY_TYPE_MIPI=1
 DEFINES += DISPLAY_TYPE_DSI6G=1
 
