cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
417 Views
Registered: ‎09-30-2011

Linux Watchdog on Zynq halts but does not reboot

Hello!

I have a Zynq Z-7045 running Linux. I enabled the Cadence Watchdog Timer and changed the device tree to state:

&watchdog0 {
status = "okay";
reset-on-timeout;
};

I then test the behavior out by typing

echo s > /dev/watchdog

waiting the 10 seconds required for the timeout. The system times out, but then halts and does not reboot. DONE goes away as expected but INIT is asserted and stays so. The reboot never starts or completes (I guess). The system is set up to boot from QSPI.

I can't seem to figure out why it won't reboot but only halts. Any clues, ideas or solutions would be appreciated

Tags (3)
0 Kudos
Reply
4 Replies
Xilinx Employee
Xilinx Employee
335 Views
Registered: ‎10-06-2016

Hi neil@formidableengineeringconsultants.com 

The first think I would check on your situation is to check if the reboot command behaves in a similar way or not. There are some scenarios where the device would not boot again after a reboot (either WDT or software reset).

  1. If the debugger has been attached at some stage it will catch the processor reset vector. Did you try to check with XSDB what is the status of the device? Is any processor running?
  2. It seems you have a custom board with Zynq-7000 device. Did you check the AR#57744, is a typical issue that might end on a similar behavior that you have described.

 

Regards


Ibai
Don’t forget to reply, kudo, and accept as solution.
0 Kudos
Reply
323 Views
Registered: ‎09-30-2011

Thanks for your response. It *is* a custom board but reboot works without issue. If  AR#57744 applies wouldn't a standard reboot fail as well?

0 Kudos
Reply
Xilinx Employee
Xilinx Employee
321 Views
Registered: ‎10-06-2016

Hi neil@formidableengineeringconsultants.com 

Yes, that's right it should fail as soon as the QSPI has been configured in 4byte mode at some stage.

I would suggest then to check what's going on with the debugger. Connect XSDB and check if the processor is still running and what is trying to execute.

Regards


Ibai
Don’t forget to reply, kudo, and accept as solution.
0 Kudos
Reply
267 Views
Registered: ‎09-30-2011

I connected the debugger and both cores are running but they are stuck it the boot code 

Core 0

ffffff20: dsb sy
ffffff24: wfe
ffffff28: b -16 ; addr=0xffffff20

Core 1:

ffffff2c: dsb sy
ffffff30: wfe
ffffff34: mvn r0, #15
ffffff38: ldr lr, [r0]
ffffff3c: cmn lr, #212
ffffff40: beq -28 ; addr=0xffffff2c

So, I guess halted but ready to boot and waiting for some interrupt?

0 Kudos
Reply