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)
{