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

From: Peng Fan
Date: Mon Mar 09 2020 - 09:58:05 EST


> Subject: Re: [PATCH] soc: imx: Makefile: only build soc-imx8 when
> CONFIG_ARM64
>
> On Mon, Mar 9, 2020 at 2:28 PM Peng Fan <peng.fan@xxxxxxx> wrote:
> > > 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.
>
> Ah, nice!
>
> > +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?
>
> I don't think that code does anything other than set the machine name. Are
> you sure it doesn't work without that?

Per setup_machine_fdt code, I may need to give a try with
CONFIG_ARCH_MULTIPLATFORM. I'll give a try and update later.

>
> If it's indeed required, I'd prefer to add a file for in arch/arm/mach-imx than
> in drivers/soc/.

Thanks,
Peng.

>
> Arnd