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

Matthias Brugger matthias.bgg at gmail.com
Wed May 6 01:29:25 PDT 2015


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.

-- 
motzblog.wordpress.com



More information about the linux-arm-kernel mailing list