target: msm8974: Use cache line aligned buffer

Use cache line aligned buffer to ensure proper cache line
operations

Change-Id: I2a88879b95ed9bb65303b833b1de8ec77942fc50
diff --git a/target/msm8974/init.c b/target/msm8974/init.c
index e1ab1c2..0ec0b1f 100644
--- a/target/msm8974/init.c
+++ b/target/msm8974/init.c
@@ -46,6 +46,7 @@
 #include <partition_parser.h>
 #include <scm.h>
 #include <platform/clock.h>
+#include <stdlib.h>
 
 extern  bool target_use_signed_kernel(void);
 static void set_sdc_power_ctrl();
@@ -208,7 +209,6 @@
 
 /* Do any target specific intialization needed before entering fastboot mode */
 #ifdef SSD_ENABLE
-static uint32_t  buffer[SSD_PARTITION_SIZE] __attribute__ ((aligned(32)));
 static void ssd_load_keystore_from_emmc()
 {
 	uint64_t           ptn    = 0;
@@ -216,6 +216,14 @@
 	uint32_t           size   = SSD_PARTITION_SIZE;
 	int                ret    = -1;
 
+	uint32_t *buffer = (uint32_t *)memalign(CACHE_LINE,
+								   ROUNDUP(SSD_PARTITION_SIZE, CACHE_LINE));
+
+	if (!buffer) {
+		dprintf(CRITICAL, "Error Allocating memory for SSD buffer\n");
+		ASSERT(0);
+	}
+
 	index = partition_get_index("ssd");
 
 	ptn   = partition_get_offset(index);
@@ -232,6 +240,8 @@
 	ret = scm_protect_keystore((uint32_t *)&buffer[0],size);
 	if(ret != 0)
 		dprintf(CRITICAL,"ERROR: scm_protect_keystore Failed");
+
+	free(buffer);
 }
 #endif