[PATCH 0/7] Add SMP bringup support for mt65xx socs

Matthias Brugger matthias.bgg at gmail.com
Sat May 16 02:11:20 PDT 2015


2015-05-16 10:09 GMT+02:00 Yingjoe Chen <yingjoe.chen at mediatek.com>:
> On Wed, 2015-05-06 at 13:04 +0200, Matthias Brugger wrote:
>> Hi Joe,
>>
>> 2015-05-06 10:29 GMT+02:00 Matthias Brugger <matthias.bgg at gmail.com>:
>> > 2015-05-06 9:59 GMT+02:00 Yingjoe Chen <yingjoe.chen at mediatek.com>:
>> >> On Wed, 2015-05-06 at 15:19 +0800, Yingjoe Chen wrote:
>> >>> Hi Matthias,
>> >> <...>
>> >>> > I tried on the mt8135 eval board but it fails to bring up the CPU.
>> >>> >
>> >>> > When booting:
>> >>> > [    1.048588] CPU1: failed to come online
>> >>> > [    2.049914] CPU2: failed to come online
>> >>> > [    3.051245] CPU3: failed to come online
>> >>>
>> >>>
>> >>> Thanks for testing, and the config file you provided.
>> >>> It seems you are running THUMB2 kernel, unfortunately mt8135 trustzone
>> >>> firmware doesn't support jump to THUMB2 code directly.
>> >>>
>> >>> I can workaround this with the following patch. I'll include it in my
>> >>> next round.
>> >>>
>> >>> Joe.C
>> >>>
>> >>> -----8<----------------
>> >>> diff --git a/arch/arm/mach-mediatek/platsmp.c
>> >>> b/arch/arm/mach-mediatek/platsmp.c
>> >>> index e266b3d..5dea55a 100644
>> >>> --- a/arch/arm/mach-mediatek/platsmp.c
>> >>> +++ b/arch/arm/mach-mediatek/platsmp.c
>> >>> @@ -57,6 +57,18 @@ static const struct of_device_id mtk_smp_boot_infos[]
>> >>> __initconst = {
>> >>>  static void __iomem *mtk_smp_base;
>> >>>  static const struct mtk_smp_boot_info *mtk_smp_info;
>> >>>
>> >>> +#ifdef CONFIG_THUMB2_KERNEL
>> >>> +__asm__(
>> >>> +     ".arm\n"
>> >>> +     "mtk_secondary_startup_fixup:\n"
>> >>> +     "       b secondary_startup\n"
>> >>> +     ".thumb\n"
>> >>> +);
>> >>> +
>> >>> +void mtk_secondary_startup_fixup(void);
>> >>> +#define secondary_startup mtk_secondary_startup_fixup
>> >>> +#endif
>> >>
>> >>
>> >> Replying myself.
>> >>
>> >> It seems kernel already have secondary_startup_arm which support this
>> >> usage. I'll use that in my next version instead.
>> >
>> > With this I was able to get the board up and running. I will try mt6589 ASAP.
>>
>> I just realized, that your aforementioned patch for the THUMB2 kernel
>> breaks SMP on mt6589. Strangely without this patch it works fine.
>>
>
> Hi Matthias,
>
> Unfortunately I can't reproduce or figure out why this could happen.
> I change to use common kernel code secondary_startup_arm in new series,
> could you that a try?
> Thanks.

I just tried it on mt6589 and mt8135 and its works on both.
Actually if you revert patch 1/9 SMP on mt6589 stops working.

Thanks,
Matthias

-- 
motzblog.wordpress.com



More information about the Linux-mediatek mailing list