RE: [PATCH] soc: imx: Makefile: only build soc-imx8 when CONFIG_ARM64

From: Peng Fan
Date: Mon Mar 09 2020 - 09:28:42 EST


Hi Arnd,

> Subject: Re: [PATCH] soc: imx: Makefile: only build soc-imx8 when
> CONFIG_ARM64
>
> On Mon, Jan 27, 2020 at 6:05 AM Peng Fan <peng.fan@xxxxxxx> wrote:
> > > Subject: Re: [PATCH] soc: imx: Makefile: only build soc-imx8 when
> > > Does anyone have any suggestions on where I might find some generic
> > > stuff for either iMX8M or generic ARMv8 docs for doing something like
> this?
> >
> > We did a porting for one customer, but code is not public available.
> >
> > First let uboot switch to AARCH32 mode when booting Linux, this is
> > already supported by uboot mailine.
> >
> > Second, create a mach-imx8m.c under arch/arm/mach-imx to handle
> i.MX8M
> > just like other i.mx arm32 socs. This is not preferred by Linux community.
> >
> > 3rd, build i.MX8M drivers when using imx_v7_defconfig( or
> > imx_v6_v7_defconfig in upstream)
>
> I think the third part is something we can clearly do once it actually boots.
>
> Can you post the patch for the second part for reference? In theory nothing
> should be necessary there, so I wonder what I'm missing (as we need no code
> for arch/arm64) and what we can do differently to make it work out of the
> box.
>
> Is the problem that the SMP bringup using PSCI for arm64 doesn't work with
> the 32-bit kernel for some reason?

Sorry for long time delay. I forgot your mail. I did some try again, seems only need
the following piece code to make it boot, also select GIC_V3 and drop some ARM64
dependencies in Kconfig for some i.MX drivers.
Need some addition work in ATF/U-Boot
to make smp work, that is not Linux related.

+static const char *const imx8mm_dt_compat[] __initconst = {
+ "fsl,imx8mm",
+ NULL,
+};
+
+#include <asm/mach/arch.h>
+DT_MACHINE_START(IMX7D, "Freescale i.MX8MM (Device Tree)")
+ .dt_compat = imx8mm_dt_compat,
+MACHINE_END


Are you ok we add such piece code in drivers/soc/imx/soc-imx8.c to support
aarch32 linux?

Thanks,
Peng.
>
> Arnd