The Linux Watch dog timer (WDT) driver does not reset after reset-on-timeout is kicked off.
On reset-on-timeout, the interrupt handler will call PMUFW APIs to reset both the PS and PL.
To fix this issue, follow the steps below:
1) Apply the attached patch to the PMUFW recipe: <plnx-proj-root>/project-spec/meta-user/recipes-bsp/pmu/pmu-firmware_%.bbappend
Note: To apply a patch to recipes, please refer to the following wiki article:
http://www.wiki.xilinx.com/PetaLinux+Yocto+Tips (Section: How to patch PMU Firmware in v2017.1 PetaLinux Project)
pmu-firmware_%.bbappend file content:
do_configure_prepend() {
if [ -d "${S}/patches" ]; then
rm -rf ${S}/patches
fi
if [ -d "${S}/.pc" ]; then
rm -rf ${S}/.pc
fi
}
SRC_URI_append = " \
file://0001-PMUFW-Enable-srst-action-on-fpd-wdt-error.patch \
"
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
#Add debug for PMUFW(optional)
XSCTH_BUILD_DEBUG = "1"
YAML_COMPILER_FLAGS_append = " -DENABLE_EM"
EXTERNALXSCTSRC = ""
EXTERNALXSCTSRC_BUILD = ""
2) Add the device-tree property to <plnx-proj-root>/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi/system-user.dtsi
&watchdog0 {
reset-on-timeout;
};
3) Test the procedure on the target.
root@plnx_aarch64:~# echo s > /dev/watchdog0
Name | File Size | File Type |
---|---|---|
0001-PMUFW-Enable-srst-action-on-fpd-wdt-error.patch | 991 Bytes | PATCH |
AR# 69423 | |
---|---|
Date | 11/07/2017 |
Status | Active |
Type | General Article |
Devices | |
Tools | |
Boards & Kits |