msm: pil-8960: Add support for loading tzapps images
Signed-off-by: Matt Wagantall <mattw@codeaurora.org>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
diff --git a/arch/arm/mach-msm/peripheral-reset-8960.c b/arch/arm/mach-msm/peripheral-reset-8960.c
index 51cd204..2c47ee0 100644
--- a/arch/arm/mach-msm/peripheral-reset-8960.c
+++ b/arch/arm/mach-msm/peripheral-reset-8960.c
@@ -618,6 +618,22 @@
return pas_shutdown(PAS_DSPS);
}
+static int init_image_tzapps(struct pil_device *pil, const u8 *metadata,
+ size_t size)
+{
+ return pas_init_image(PAS_TZAPPS, metadata, size);
+}
+
+static int reset_tzapps(struct pil_device *pil)
+{
+ return pas_auth_and_reset(PAS_TZAPPS);
+}
+
+static int shutdown_tzapps(struct pil_device *pil)
+{
+ return pas_shutdown(PAS_TZAPPS);
+}
+
static struct pil_reset_ops pil_modem_fw_q6_ops = {
.init_image = init_image_modem_fw_q6_untrusted,
.verify_blob = verify_blob,
@@ -653,6 +669,13 @@
.shutdown = shutdown_dsps_untrusted,
};
+struct pil_reset_ops pil_tzapps_ops = {
+ .init_image = init_image_tzapps,
+ .verify_blob = verify_blob,
+ .auth_and_reset = reset_tzapps,
+ .shutdown = shutdown_tzapps,
+};
+
static struct pil_device pil_lpass_q6 = {
.name = "q6",
.pdev = {
@@ -700,6 +723,15 @@
.ops = &pil_dsps_ops,
};
+static struct pil_device pil_tzapps = {
+ .name = "tzapps",
+ .pdev = {
+ .name = "pil_tzapps",
+ .id = -1,
+ },
+ .ops = &pil_tzapps_ops,
+};
+
static int __init q6_reset_init(struct q6_data *q6)
{
int err;
@@ -794,6 +826,7 @@
msm_pil_add_device(&pil_modem_sw_q6);
msm_pil_add_device(&pil_dsps);
+ msm_pil_add_device(&pil_tzapps);
msm_riva_base = ioremap(MSM_RIVA_PHYS, SZ_256);
if (!msm_riva_base)