[PATCH 6/8] ARM: imx8m: Fix reset in SPL on NXP iMX8MP EVK
Harald Seiler
hws at denx.de
Mon May 4 17:05:27 CEST 2020
Hello,
On Mon, 2020-05-04 at 16:32 +0200, Marek Vasut wrote:
> On 5/4/20 4:27 PM, Fabio Estevam wrote:
> > Hi,
> >
> > On Wed, Apr 29, 2020 at 10:05 AM Harald Seiler <hws at denx.de> wrote:
> > > From: Marek Vasut <marex at denx.de>
> > >
> > > Board files should not re-implement do_reset() to work around this
> > > function not being defined in for specific configurations. Rather,
> > > the fix is to compile in drivers which implement this properly.
> > > This patch enables sysreset and watchdog drivers in SPL and ties
> > > them together to implement the same as the do_reset() hack in the
> > > board file, except correctly in the DM/DT framework.
> > >
> > > Signed-off-by: Marek Vasut <marex at denx.de>
> > > Cc: Fabio Estevam <festevam at gmail.com>
> > > Cc: Flavio Suligoi <f.suligoi at asem.it>
> > > Cc: Harald Seiler <hws at denx.de>
> > > Cc: Igor Opaniuk <igor.opaniuk at toradex.com>
> > > Cc: Marcel Ziswiler <marcel.ziswiler at toradex.com>
> > > Cc: Oleksandr Suvorov <oleksandr.suvorov at toradex.com>
> > > Cc: Peng Fan <peng.fan at nxp.com>
> > > Cc: Stefano Babic <sbabic at denx.de>
> >
> > I noticed that this patch breaks the boot on i.MX8MP EVK. Only the
> > following line is printed on boot:
> >
> > U-Boot SPL 2020.07-rc1-00014-g8142a97d54 (May 04 2020 - 11:15:50 -0300)
> >
> > If I revert this patch I can boot it again:
> >
> > U-Boot SPL 2020.07-rc1-00015-g02cd8db94f (May 04 2020 - 11:17:25 -0300)
> > Normal Boot
> > Failed to find clock node. Check device tree
> > WDT: Not found!
> > Trying to boot from BOOTROM
> > image offset 0x8000, pagesize 0x200, ivt offset 0x0
> >
> >
> > U-Boot 2020.07-rc1-00015-g02cd8db94f (May 04 2020 - 11:17:25 -0300)
> >
> > CPU: Freescale i.MX8MP rev1.0 at 1000 MHz
> > Reset cause: POR
> > Model: NXP i.MX8MPlus EVK board
> > DRAM: 6 GiB
> > MMC: FSL_SDHC: 1, FSL_SDHC: 2
> > Loading Environment from MMC... OK
> > In: serial
> > Out: serial
> > Err: serial
> > Net: No ethernet found.
> > Hit any key to stop autoboot: 0
> > u-boot=>
> >
> > The "Failed to find clock node. Check device tree" looks suspicious.
>
> The "WDT: not found!" is probably the root cause of your problem.
> Maybe the WDT driver fails to probe because it can't resolve it's clock
> phandle ("Failed to find clock node")? So maybe you need to fix your
> clock in SPL.
"Failed to find clock node. Check device tree" comes from spl_board_init()
in board/freescale/imx8mp_evk/spl.c; line 56:
ret = uclass_get_device_by_name(UCLASS_CLK,
"clock-controller at 30380000",
&dev);
I see that wdog1 references the same clock here:
arch/arm/dts/imx8mp.dtsi; line 222:
wdog1: watchdog at 30280000 {
compatible = "fsl,imx8mp-wdt", "fsl,imx21-wdt";
reg = <0x30280000 0x10000>;
interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&clk IMX8MP_CLK_WDOG1_ROOT>;
status = "disabled";
};
So the two issues are very likely related. The relevant clock's node is
also enabled for SPL so I think the driver might be missing here. Maybe
you need to add
CONFIG_SPL_CLK_IMX8MP=y
to your defconfig?
--
Harald
More information about the U-Boot
mailing list