platform: msm_shared: Configure XPU Violations as fatal errors.

Detect the XPU violations in bootloader and treat them as fatal errors.

CRs-Fixed: 677067
Change-Id: Iac763c7724d991158262107f032d754afea0f49f
diff --git a/platform/msm_shared/scm.c b/platform/msm_shared/scm.c
index 66db6f1..b2ebfa3 100644
--- a/platform/msm_shared/scm.c
+++ b/platform/msm_shared/scm.c
@@ -708,3 +708,23 @@
 
 	return canary;
 }
+
+int scm_xpu_err_fatal_init()
+{
+	uint32_t ret = 0;
+	uint32_t response = 0;
+	tz_xpu_prot_cmd cmd;
+
+	cmd.config = ERR_FATAL_ENABLE;
+	cmd.spare = 0;
+
+	ret = scm_call(SVC_MEMORY_PROTECTION, XPU_ERR_FATAL, &cmd, sizeof(cmd), &response,
+				   sizeof(response));
+
+	if (ret)
+		dprintf(CRITICAL, "Failed to set XPU violations as fatal errors: %u\n", response);
+	else
+		dprintf(INFO, "Configured XPU violations to be fatal errors\n");
+
+	return ret;
+}