Subject: [PATCHv2] arm:socfpga: Enable SMP for socfpga

From: [email-masked] (Rob Herring)
Date: Thu, 25 Oct 2012 10:41:19 -0500

On 10/25/2012 11:25 AM, Dinh Nguyen wrote:
> Hi Rob,
> 
> On Wed, 2012-10-24 at 18:01 -0500, Rob Herring wrote:
>> On 10/18/2012 12:32 PM, dinguyen at altera.com wrote:
>>> From: Dinh Nguyen <[email-masked]>
>>>
>>> Enable SMP for the SOCFPGA platform.
>>>
>>> Signed-off-by: Pavel Machek <[email-masked]>
>>> Signed-off-by: Dinh Nguyen <[email-masked]>
>>> ---
>>> v2:
>>> -Remove pen_release code
>>> -Remove code that was already done by v7_setup
>>> -Add bindings document for reset and system manager
>>> -Move socfpga_sysmgr_init from platsmp.c to socfpga.c, because
>>> we will need to use the reset and system manager for more than SMP.
>>> -Move core.h to mach-socfpga from mach-socfpga/include/mach
>>
>> Just some lingering comments on the defconfig. Otherwise,
>>
>> Reviewed-by: Rob Herring <[email-masked]>
>>
>>> diff --git a/arch/arm/configs/socfpga_defconfig b/arch/arm/configs/socfpga_defconfig
>>> index 0ac1293..349ac22 100644
>>> --- a/arch/arm/configs/socfpga_defconfig
>>> +++ b/arch/arm/configs/socfpga_defconfig
>>
>> I'm still not clear why multi_v7 config does not work for you?
> 
> multi_v7 works fine for me. But I need
> +#CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA is not set 

Why? I don't think those should break other versions of A9. If they do,
we need to fix that. In general, we should turn on all errata for
multi-platform builds, so we need to make sure they are done in a
compatible way and can be bypassed if they have performance impacts.
That may ultimately require some runtime patching though.

Rob

> 
> in order for SMP to work correctly on our platform.
> 
> 
>>
>>> @@ -1,5 +1,5 @@
>>>  CONFIG_EXPERIMENTAL=y
>>> -CONFIG_SYSVIPC=y
>>> +CONFIG_NO_HZ=y
>>>  CONFIG_IKCONFIG=y
>>>  CONFIG_IKCONFIG_PROC=y
>>>  CONFIG_LOG_BUF_SHIFT=14
>>> @@ -16,10 +16,13 @@ CONFIG_MODULE_UNLOAD=y
>>>  # CONFIG_IOSCHED_DEADLINE is not set
>>>  # CONFIG_IOSCHED_CFQ is not set
>>>  CONFIG_ARCH_SOCFPGA=y
>>> -CONFIG_MACH_SOCFPGA_CYCLONE5=y
>>> -CONFIG_ARM_THUMBEE=y
>>> +# CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA is not set
>>>  # CONFIG_CACHE_L2X0 is not set
>>>  CONFIG_HIGH_RES_TIMERS=y
>>> +CONFIG_SMP=y
>>> +CONFIG_ARM_ARCH_TIMER=y
>>
>> You're an A9, right? You don't have arch timers.
> 
> Yes, will remove in v3.
>>
>>> +CONFIG_HIGHMEM=y
>>
>> How much RAM? You need more than 2GB with CONFIG_VMSPLIT_2G.
> 
> 1G for RAM only, so will remove in v3.
> 
> Thanks,
> Dinh
>>
>>> +CONFIG_HIGHPTE=y
>>>  CONFIG_VMSPLIT_2G=y
>>>  CONFIG_NR_CPUS=2
>>>  CONFIG_AEABI=y
>>
>>
> 
> 
>