07-29-2016 11:18 AM
Platform: ZCU102 (bare-metal), booting from SD-card
I'm an research assistant at a university, and we're getting ready to do some radiation tests on the Ultrascale+ hardware later this year. For the tests we want the watchdog timers to run in reset mode (without using any PL resources). I've had some success in getting them to work, but there are still some unresolved problems.
(I would have used an existing example, but I couldn't find any that addressed the particularities of the MPSoC.)
What I've done so far:
My code is attached if you need more detail (be aware it's a bit messy at the moment).
At this point what I have kind of works, but I'm having some issues:
Help or leads on any one of these questions would be tremendously helpful.
---
For reference, here's a typical output when I insert a delay before activating the watchdog timer.
-------------------------------------- Xilinx Zynq MP First Stage Boot Loader Release 2016.1 Jul 28 2016 - 12:24:04 Platform: Silicon, Running on A53-0 (64-bit) Processor SD1 Boot Mode Exit from FSBL Resets: 0 -------------------------------------- Xilinx Zynq MP First Stage Boot Loader Release 2016.1 Jul 28 2016 - 12:24:04 Platform: Silicon, Running on A53-0 (64-bit) Processor SD1 Boot Mode Exit from FSBL Resets: 1 -------------------------------------- Xilinx Zynq MP First Stage Boot Loader Release 2016.1 Jul 28 2016 - 12:24:04 Platform: Silicon, Running on A53-0 (64-bit) Processor SD1 Boot Mode Exit from FSBL Resets: 2
...and then it just stops.
And here's an typical output of the same code, except without the delay:
-------------------------------------- Xilinx Zynq MP First Stage Boot Loader Release 2016.1 Jul 28 2016 - 12:24:04 Platform: Silicon, Running on A53-0 (64-bit) Processor SD1 Boot Mode Exit from FSBL Resets: 0 -------------------------------------- Xilinx Zynq MP First Stage Boot Loader Release 2016.1 Jul 28 2016 - 12:24:04 Platform: Silicon, Running on A53-0 (64-bit) Processor SD1 Boot Mode Exit from FSBL ▒-------------------------------------- Xilinx Zynq MP First Stage Boot Loader Release 2016.1 Jul 28 2016 - 12:24:04 Platform: Silicon, Running on A53-0 (64-bit) Processor SD1 Boot Mode Exit from FSBL
...and again, it stops abruptly.
Thanks in advance.
07-29-2016 11:46 AM
a_w,
Contact me: austin@xilinx.com
Radiation testing is a incredibly tough task on Zynq 7 series (we did it), and ten times as tough on Zynq MPSoC.
We are planning our testing right now. While we appreciate others coming to us or publishing the same data we have available, the benefit to the design communities by duplicating existing work is marginal. What is more useful is to do something we are not already doing.
We can work on that together,
02-10-2017 06:21 AM
03-05-2017 08:28 AM
Hi,
The reset might not happen if the RST_FPD_TOP[swdt_reset] is not enabled which is for FPD i.e. accessible to APU.
Let me know if the this link which show WDT for Zynq MPSoC with example helps you http://www.wiki.xilinx.com/Cadence+WDT+Driver
Regards
Praveen
10-27-2017 11:27 AM
Hi,
According to AR# 69423 (https://www.xilinx.com/support/answers/69423.html), "On reset-on-timeout, the interrupt handler will call PMUFW APIs to reset both the PS and PL".
Does this mean that proper operation of the hardware watchdog is dependent on software (the pmu firmware)?
11-28-2017 12:06 AM
Yes, for appropriate reset on timeout as in DT need to do it through PMUFW.
The attached patch usage will make WDT work.
Regards
Praveen
01-29-2018 11:52 PM
I got something on Mz-7z010, using persistent storage register. The user guide says (https://www.xilinx.com/support/documentation/user_guides/ug585-Zynq-7000-TRM.pdf) we can use upper 16 bits of multiboot register for persistent storage, for example keeping count of WDT resets. Find the attached C file. Hope it helps & please share your feedback.
02-02-2018 02:49 AM
Hi @imshedi,
The original query and the information posted are only relevant to Zynq Ultrascale devices.
Your findings are for Zynq 7000.
Let me know what issue are you seeing exactly.
I'd appreciate if you can create a new post for Zynq-7000 WDT reset.
Regards
Praveen
-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
03-15-2018 03:20 AM
Hello,
I'm trying to use the SWDT from the APU (currently in "bare metal").
I have used the poll_example.
it seems that the WD counter works fine and sends a RESET request when it's no longer restarted, but I can't get a hardware RESET.
I have tried to set the different PMU registers :
PMU_GLOBAL_ERROR_SRST_EN_1 , PMU_GLOBAL_ERROR_EN_1 (FPD_SWDT bit )
and also I've tried to set the RST_FPD_TOP swdt_reset bit but until now without any success.
Does anyone have a full programming example to reset the controller (as SRST pin do) from the SWDT ?
I'm using the debugger with a JTAG connection (on a ZCU102) to run the test, could it be a reason why the RESET is not generated ?
Any help will be appreciated.
Philippe
08-25-2020 03:22 AM
Hi @r1200gsa , @a_west , @imshedi , @rogerrb1
Do you have run xwdtps_polled_example.c to reset zynqmp. I have XWdtPs_EnableOutput(&Watchdog, XWDTPS_RESET_SIGNAL); but once timeout watchdog, system and hardware not reset. I have package pmu firmware, fsbl, bitstream, and application into BOOT.bin
Thanks and brgs