[U-Boot] [REGRESSION] [PATCH] imx: add lowlevel init for ARM64

Peng Fan
2019-04-26T23:58:03Z

Hi Marcel,

Please apply this patch, Joe has not pick it up.
https://patchwork.ozlabs.org/patch/1085432/

Stefano,

Would you pick it up?

> Subject: [REGRESSION] [PATCH] imx: add lowlevel init for ARM64
>
> Hi Peng and Stefano
>
> Unfortunately, this seems to break Ethernet on Colibri iMX8X:
>
> => dhcp
> "Error" handler, esr 0xbf000002
> elr: 0000000080049664 lr : 000000008004964c (reloc)
> elr: 00000000ffef6664 lr : 00000000ffef664c
> x0 : 000000005b040288 x1 : 0000000000000001
> x2 : 00000000fd6c5ff4 x3 : 0000000000000020
> x4 : 00000000fd6c5ff0 x5 : 0000000000000020
> x6 : 00000000ffef079c x7 : 00000000fd6f1600
> x8 : 0000000000000044 x9 : 0000000000000008
> x10: 00000000fd6d1620 x11: 00000000fd6d3a10
> x12: 0000000000000000 x13: 0000000000000200
> x14: 00000000fd6c62cc x15: 0000000000000002
> x16: 0000000000002080 x17: 0000000000000000
> x18: 00000000fd6cada8 x19: 00000000fd6d1160
> x20: 0000000000000200 x21: 000000005b040300
> x22: 00000000fd6f1000 x23: 00000000fd6cfdf0
> x24: 00000000ffff8000 x25: 0000000000000000
> x26: 0000000000000000 x27: 0000000000000000
> x28: 00000000fd6d15c0 x29: 00000000fd6c6030
>
> Resetting CPU ...
>
> resetting ...
>
> Reverting commit 5955c6eeb453 ("imx: add lowlevel init for ARM64") makes
> it work again.
>
> Unfortunately, I don't have a MEK in my home office but will check Ethernet
> operation there on Monday as well.
>
> Anyway, does anybody know what exactly is going on?

Regards,
Peng.

>
> Cheers
>
> Marcel
>
> On Mon, 2019-04-15 at 05:20 +0000, Peng Fan wrote:
> > Sometimes we met SERROR, but only to catch it when Linux boots up.
> > Let's enable catching in U-Boot to catch it ealier and ease debug.
> >
> > Signed-off-by: Peng Fan <peng.fan@nxp.com>
> > ---
> > arch/arm/mach-imx/Makefile | 2 +-
> > arch/arm/mach-imx/lowlevel.S | 22 ++++++++++++++++++++++
> > 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644
> > arch/arm/mach-imx/lowlevel.S
> >
> > diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile
> > index c3ed62aed6..37675d0558 100644
> > --- a/arch/arm/mach-imx/Makefile
> > +++ b/arch/arm/mach-imx/Makefile
> > @@ -204,7 +204,7 @@ endif
> >
> > targets += $(addprefix ../../../,SPL spl/u-boot-spl.cfgout u-boot-
> > dtb.cfgout u-boot.cfgout u-boot.uim spl/u-boot-nand-spl.imx)
> >
> > -obj-$(CONFIG_ARM64) += sip.o
> > +obj-$(CONFIG_ARM64) += lowlevel.o sip.o
> >
> > obj-$(CONFIG_MX5) += mx5/
> > obj-$(CONFIG_MX6) += mx6/
> > diff --git a/arch/arm/mach-imx/lowlevel.S b/arch/arm/mach-
> > imx/lowlevel.S new file mode 100644 index 0000000000..158fdb7d87
> > --- /dev/null
> > +++ b/arch/arm/mach-imx/lowlevel.S
> > @@ -0,0 +1,22 @@
> > +/* SPDX-License-Identifier: GPL-2.0+ */
> > +/*
> > + * Copyright 2019 NXP
> > + */
> > +
> > +#include <linux/linkage.h>
> > +
> > +ENTRY(lowlevel_init)
> > + mrs x0, CurrentEL
> > + cmp x0, #8
> > + b.eq 1f
> > + ret
> > +1:
> > + msr daifclr, #4
> > +
> > + /* set HCR_EL2.AMO to catch SERROR */
> > + mrs x0, hcr_el2
> > + orr x0, x0, #0x20
> > + msr hcr_el2, x0
> > + isb
> > + ret
> > +ENDPROC(lowlevel_init)
> > --
> > 2.16.4
> >
> > _______________________________________________
> > U-Boot mailing list
> > U-Boot at lists.denx.de
> > https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flist
> >
> s.denx.de%2Flistinfo%2Fu-boot&amp;data=02%7C01%7Cpeng.fan%40nxp.co
> m%7C
> >
> d671eca9f1cc4d06a7d008d6ca7661b1%7C686ea1d3bc2b4c6fa92cd99c5c30
> 1635%7C
> >
> 0%7C0%7C636919007134459412&amp;sdata=R6xBpoVJHL7meQkRkBi1I8vg
> MgOTXlFEA
> > QfMePrDdSc%3D&amp;reserved=0