RE: [PATCH 3/3] ARM: imx: add SMP support for i.MX7D

From: Yongcai Huang
Date: Fri Aug 26 2016 - 06:43:59 EST




Best Regards!
Anson Huang



> -----Original Message-----
> From: Arnd Bergmann [mailto:arnd@xxxxxxxx]
> Sent: 2016-08-26 4:59 PM
> To: Yongcai Huang <anson.huang@xxxxxxx>
> Cc: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx; shawnguo@xxxxxxxxxx; kernel@xxxxxxxxxxxxxx;
> Fabio Estevam <fabio.estevam@xxxxxxx>; robh+dt@xxxxxxxxxx;
> mark.rutland@xxxxxxx; linux@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH 3/3] ARM: imx: add SMP support for i.MX7D
>
> On Friday, August 26, 2016 7:12:51 PM CEST Anson Huang wrote:
> > i.MX7D has 2 cortex-a7 ARM core, add support for booting up SMP kernel
> > with 2 CPUs.
> >
> > The existing i.MX SMP code is designed for i.MX6 series SoCs which
> > have cortex-a9 ARM core, but i.MX7D has 2 cortex-a7 ARM core, so we
> > need to add runtime check for those differences between cortex-a9 and
> > cortex-a7.
> >
> > Signed-off-by: Anson Huang <Anson.Huang@xxxxxxx>
> >
>
> Can't you just point i.MX7D to start from secondary_startup rather than
> v7_secondary_startup?
>
> ENTRY(v7_secondary_startup)
> + .word 0xc070 @ 0xc07 is cortex-a7 id
> + .word 0xfff0 @ mask for core type
> +
>
> This looks like you are trying to execute instructions that are actually data. Does
> this work?
>
> On a side note, could you rename v7_secondary_startup to
> imx6_secondary_startup? The name sounds overly generic on a multiplatform
> kernel.
>
> Arnd


Thanks for review, yes, I made a mistake here, the data should put in another place,
but it accidently can work and boot up secondary CPU (see below the objdump),
and also, I can just use secondary_startup for i.MX7D. So I will
leave this file untouched, will verify the function next Mon and send out a V2 patch.

10 00000004 <v7_secondary_startup>:
11 4: 0000c070 andeq ip, r0, r0, ror r0
12 8: 0000fff0 strdeq pc, [r0], -r0

Anson.