summaryrefslogtreecommitdiff
path: root/drivers/soc
diff options
context:
space:
mode:
authorAmir Samuelov <amirs@codeaurora.org>2016-09-28 09:27:03 +0300
committerGerrit - the friendly Code Review server <code-review@localhost>2016-09-27 23:33:48 -0700
commit82bf612671251632c1a327c6161b64b0be152387 (patch)
tree80097c0e789806e714e24d88aa3b3fea7030f74f /drivers/soc
parent626caf4e54864d90e8d104277f9a1446e487c7e1 (diff)
soc: qcom: pil: add PBL spare error status
The PBL spare status registers provide more info about the reason for PBL failure. Change-Id: I1dddc7df26caa1556e57128603afd32b2613ebde Signed-off-by: Amir Samuelov <amirs@codeaurora.org>
Diffstat (limited to 'drivers/soc')
-rw-r--r--drivers/soc/qcom/subsys-pil-tz.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/drivers/soc/qcom/subsys-pil-tz.c b/drivers/soc/qcom/subsys-pil-tz.c
index ae175e176aa3..1fa731776926 100644
--- a/drivers/soc/qcom/subsys-pil-tz.c
+++ b/drivers/soc/qcom/subsys-pil-tz.c
@@ -917,8 +917,24 @@ static void check_pbl_done(struct pil_tz_data *d)
err_value = __raw_readl(d->err_status);
pr_debug("PBL_DONE received from %s!\n", d->subsys_desc.name);
- if (err_value)
+ if (err_value) {
+ uint32_t rmb_err_spare0;
+ uint32_t rmb_err_spare1;
+ uint32_t rmb_err_spare2;
+
+ rmb_err_spare2 = __raw_readl(d->err_status_spare);
+ rmb_err_spare1 = __raw_readl(d->err_status_spare-4);
+ rmb_err_spare0 = __raw_readl(d->err_status_spare-8);
+
pr_err("PBL error status register: 0x%08x\n", err_value);
+
+ pr_err("PBL error status spare0 register: 0x%08x\n",
+ rmb_err_spare0);
+ pr_err("PBL error status spare1 register: 0x%08x\n",
+ rmb_err_spare1);
+ pr_err("PBL error status spare2 register: 0x%08x\n",
+ rmb_err_spare2);
+ }
__raw_writel(BIT(d->bits_arr[PBL_DONE]), d->irq_clear);
}