PMUFW: Exceptions: Log exception details and set FW error bit

Exception handler is modified to log the ESR and EAR registers
into persistent global storage registers(0,1) and set FW error bit-0.
If bit-0 of FWError group in ERROR_2 register set is configured to do
a SRST,then post reset, SW can read the reason for exception from
these persistent registers.

Signed-off-by: Jyotheeswar Reddy <jyothee@xilinx.com>
This commit is contained in:
Jyotheeswar Reddy 2015-08-06 11:02:28 -07:00 committed by Nava kishore Manne
parent fd53261bc5
commit 07377abe62
2 changed files with 13 additions and 1 deletions

View file

@ -89,6 +89,18 @@ XPfw_Init:
.ent XPfw_Exception
.type XPfw_Exception, @function
XPfw_Exception:
/* Save ESR to PERS_GLOBAL_STORAGE0 Register */
addik r3, r0, 0xffd80050
mfs r4, resr
swi r4, r3, 0
/* Save EAR to PERS_GLOBAL_STORAGE1 Register */
addik r3, r0, 0xffd80054
mfs r4, rear
swi r4, r3, 0
/* Set the FW error bit-0 */
addik r3, r0, 0xffd6033c
addik r4, r0, 0x10000000
swi r4, r3, 0
/* For now, just keep looping here. Its easier to debug */
bri 0
nop

View file

@ -1,4 +1,4 @@
#ifndef ZYNQMP_XPFW_VERSION__H_
#define ZYNQMP_XPFW_VERSION__H_
#define ZYNQMP_XPFW_VERSION "2015.3-rc1-15-gea64c7dae039"
#define ZYNQMP_XPFW_VERSION "2015.3-rc1-16-gdffcba8f6d56"
#endif