platform: msm_shared: Add support for qseecom in bootloader

Add qseecom support in appsbootloader

Change-Id: Idc6dc4cc9a77ffd06dd95798e93eed780959d767
diff --git a/platform/msm_shared/scm.c b/platform/msm_shared/scm.c
index 681b238..e03c0ea 100644
--- a/platform/msm_shared/scm.c
+++ b/platform/msm_shared/scm.c
@@ -58,6 +58,11 @@
 bool scm_arm_support;
 static uint32_t scm_io_write(uint32_t address, uint32_t val);
 
+bool is_scm_armv8_support()
+{
+	return scm_arm_support;
+}
+
 static void scm_arm_support_available(uint32_t svc_id, uint32_t cmd_id)
 {
 	uint32_t ret;
@@ -1135,20 +1140,22 @@
 	register uint32_t r4 __asm__("r4") = x4;
 	register uint32_t r5 __asm__("r5") = x5;
 
-	__asm__ volatile(
-		__asmeq("%0", "r0")
-		__asmeq("%1", "r1")
-		__asmeq("%2", "r2")
-		__asmeq("%3", "r3")
-		__asmeq("%4", "r0")
-		__asmeq("%5", "r1")
-		__asmeq("%6", "r2")
-		__asmeq("%7", "r3")
-		__asmeq("%8", "r4")
-		__asmeq("%9", "r5")
-		"smc    #0  @ switch to secure world\n"
-		: "=r" (r0), "=r" (r1), "=r" (r2), "=r" (r3)
-		: "r" (r0), "r" (r1), "r" (r2), "r" (r3), "r" (r4), "r" (r5));
+	do {
+		__asm__ volatile(
+			__asmeq("%0", "r0")
+			__asmeq("%1", "r1")
+			__asmeq("%2", "r2")
+			__asmeq("%3", "r3")
+			__asmeq("%4", "r0")
+			__asmeq("%5", "r1")
+			__asmeq("%6", "r2")
+			__asmeq("%7", "r3")
+			__asmeq("%8", "r4")
+			__asmeq("%9", "r5")
+			"smc    #0  @ switch to secure world\n"
+			: "=r" (r0), "=r" (r1), "=r" (r2), "=r" (r3)
+			: "r" (r0), "r" (r1), "r" (r2), "r" (r3), "r" (r4), "r" (r5));
+	} while(r0 == 1);
 
 	if (ret)
 	{