Hi,
When the system do a software reset by the watchdog, sometimes ( around 5%) the system got stuck. After some debugging with jtag, we found it got stuck at the while loop in imx-atf:
imx-atf/plat/imx/imx8m/imx8mp/gpc.c, function
void imx_gpc_pm_domain_enable(uint32_t domain_id, bool on) {
...... if (domain_id == HDMIMIX) { /* wait for memory repair done for HDMIMIX */ while (!(mmio_read_32(IMX_SRC_BASE + 0x94) & BIT(8)))
I didn't try the evk, because the evk is doing a cold reboot through pmic which turn off the whole cpu.
We are using the release 5.10.35, but the this piece of code in imx-atf has no difference with the latest version.
The register IMX_SRC_BASE + 0x94 is SRC_GPR9, which is marked as reserved for internal use.
Hope get some help about this.
Best Regard,
Roy Huang
Hello @royhuang9
From your description, do you change the reset part in your desgin?
On hardware design of connection between PMIC and imx8mp, we don't change anything. In watchdog's device tree configuration of linux kernel, we removed the "fsl,ext-reset", so the reboot is not a cold reset, but a soft reset. The reboot command triggers a watchdog reset, but the watchdog doesn't send a reset signal to PMIC. The reason is our power circuit need a GPIO high from processor to latch the power, otherwise the whole system is shutdown including the PMIC itself. A cold reset will cause the GPIO to low, and system is off
Have you test this (just remove "fsl,ext-reset") on EVK? If we can reproduce this issue on evk, i will test this and report it on my side