2016-07-18 01:44 AM
Hi,
I am currently using the software watchdog of SP56EL configured that the first counter time-out will raise and interrupt and the second counter time-out will reset the device. This works fine, but the controller can´t be initialized correctly after the reset.It runs throught boot.sbut stops in spc_clock_init() at this part:
/* The system must be in DRUN mode on entry, if this is not the case then
it is considered a serious anomaly.*/
if (ME.GS.B.S_CURRENT_MODE != SPC5_RUNMODE_DRUN) {
SPC5_CLOCK_FAILURE_HOOK();
}
I think the reason isthat controller is still in SAFE mode and not as it should be in DRUN mode at this time. Is this a missing part of implemenation in boot.s or do i have to change anything manually? What would be the correct actions for a correct reset after software watchdog time out?
Best regards,
Patrik
2016-07-19 03:38 AM
2016-07-19 03:39 AM
Hi Patrick,
unless you have modified Reset Generation Module (RGM) registers, device will wake up in DRUN mode after a SWT reset.
As reported in Reference Manual when a functional reset occurs (SWT is a functional reset in Leopard platform):
''During this entire process, the MC_ME state machine is held in RESET mode. Only at the end of the reset sequence, whenthe IDLE phase is reached, does the MC_ME enter the DRUN mode''
So, I would suggest two possible explanations/corrections to your problem:
1) the RGM module (which performs a reset in 4 steps) as not yet gone in IDLE mode and so DRUN mode is not yet active
when spc5clockinit function check the current mode. In this case you can put a while loop before DRUN mode check ,
waiting for device to be ready
2) for some reason we'll investigate, device is really in SAFE mode. in this case first check if device is really in
safe mode, than can force DRUN mode by issuing SPCSetRunMode(SPC5_RUNMODE_DRUN).
Feel free to contact me for any other questions.
Regards,
Procolo