[U-Boot] [PATCH] arm: exynos: Use the generic lowlevel_init instead of the specific one

Jaehoon Chung jh80.chung at samsung.com
Tue Nov 22 07:08:46 CET 2016


On 11/22/2016 02:25 PM, Alison Wang wrote:
> 
> 2016년 11월 16일 (수) 19:44, Alison Wang <alison.wang at nxp.com<mailto:alison.wang at nxp.com>>님이 작성:
> Hi, Thomas,
> 
> I didn't see your patch. Maybe it isn't CC'ing me. Could you send me and york the link?
> 
> Minkyu Kang,
> 
> Could you add review-by and assign this patch http://patchwork.ozlabs.org/patch/667948/ to York? So he can merge this patch and Thomas's patch together.
> 
> It's OK.
> York means yorksun?
> [Alison Wang] Yes.
> 
> Reviewed-by: Minkyu Kang <mk7.kang at samsung.com<mailto:mk7.kang at samsung.com>>

What's this? Minkyu has sent the Reviewed-by tags? I didn't see his reviewed-by tags..

Best Regards,
Jaehoon Chung

> 
> Thanks,
> Minkyu Kang.
> 
> Thanks.
> 
> 
> Best Regards,
> Alison Wang
> 
> 
>>> On Tue, Nov 15, 2016 at 1:03 PM, Alison Wang <alison.wang at nxp.com<mailto:alison.wang at nxp.com>>
>>> wrote:
>>>> Hi, Thomas, Alex and York,
>>>>
>>>> Before there are some discussions about this patch, could we make a
>>> solution now? Or else, the patches about [PATCH v8 0/3] armv8:
>> Support
>>> loading 32-bit OS in AArch32 execution state can't be merged, as the
>>> compiling will fail without this patch.
>>>>
>>>> Thomas, is ARMV8_MULTIENTRY enabled on Exynos7420 now? If not, is
>>> there a good way to enable ARMV8_MULTIENTRY on Exynos7420 now?
>>>
>>> It is not yet enabled. I will post the ARMV8_MULTIENTRY enable patch
>>> for Exynos7420 later today. Alternatively, you could include the
>> patch
>>> listed in the previous email in your series.
>>>
>> [Alison Wang] Thanks for your reply. I think it's better to send the
>> patch by you (the maintainer). Please send it later today. :)
>>
>>>>
>>>> Thanks.
>>>>
>>>> Best Regards,
>>>> Alison Wang
>>>>
>>>>> -----Original Message-----
>>>>> From: Thomas Abraham [mailto:ta.omasab at gmail.com<mailto:ta.omasab at gmail.com>]
>>>>> Sent: Tuesday, September 20, 2016 4:45 PM
>>>>> To: Alexander Graf <agraf at suse.de<mailto:agraf at suse.de>>
>>>>> Cc: Alison Wang <b18965 at freescale.com<mailto:b18965 at freescale.com>>; thomas.ab at samsung.com<mailto:thomas.ab at samsung.com>;
>>> Minkyu
>>>>> Kang <mk7.kang at samsung.com<mailto:mk7.kang at samsung.com>>; york sun <york.sun at nxp.com<mailto:york.sun at nxp.com>>; U-Boot
>>>>> Mailing List <u-boot at lists.denx.de<mailto:u-boot at lists.denx.de>>; Jason Jin <jason.jin at nxp.com<mailto:jason.jin at nxp.com>>
>>>>> Subject: Re: [U-Boot] [PATCH] arm: exynos: Use the generic
>>>>> lowlevel_init instead of the specific one
>>>>>
>>>>> On Tue, Sep 20, 2016 at 12:03 PM, Alexander Graf <agraf at suse.de<mailto:agraf at suse.de>>
>>> wrote:
>>>>>>
>>>>>>
>>>>>> On 20.09.16 08:25, Thomas Abraham wrote:
>>>>>>> On Tue, Sep 20, 2016 at 11:35 AM, Alexander Graf <agraf at suse.de<mailto:agraf at suse.de>>
>>>>> wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>> Am 20.09.2016 um 07:51 schrieb Thomas Abraham
>>> <ta.omasab at gmail.com<mailto:ta.omasab at gmail.com>>:
>>>>>>>>
>>>>>>>> Hi Alison,
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Sep 19, 2016 at 7:38 PM, Alexander Graf <agraf at suse.de<mailto:agraf at suse.de>>
>>>>> wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On 09.09.16 10:48, Alison Wang wrote:
>>>>>>>>
>>>>>>>> This patch is to use the the generic lowlevel_init instead of
>>> the
>>>>>>>>
>>>>>>>> specific one.
>>>>>>>>
>>>>>>>>
>>>>>>>> Signed-off-by: Alison Wang <alison.wang at nxp.com<mailto:alison.wang at nxp.com>>
>>>>>>>>
>>>>>>>>
>>>>>>>> If I had to guess, I'd think they only had their own version
>>>>> because the
>>>>>>>>
>>>>>>>> old one required a GIC.
>>>>>>>>
>>>>>>>>
>>>>>>>> I apologize for the delay.
>>>>>>>>
>>>>>>>> The reason for using a custom version was to avoid enabling
>>>>>>>> ARMV8_MULTIENTRY config option since the Exynos7 code was
>> ready
>>> for
>>>>>>>> it.
>>>>>>>>
>>>>>>>>
>>>>>>>> Either way, since Samsung doesn't reply, I'm fine potentially
>>>>> breaking
>>>>>>>>
>>>>>>>> their boards if that means that we can make progress for
>>> actively
>>>>>>>>
>>>>>>>> maintained ones:
>>>>>>>>
>>>>>>>>
>>>>>>>>  Reviewed-by: Alexander Graf <agraf at suse.de<mailto:agraf at suse.de>>
>>>>>>>>
>>>>>>>>
>>>>>>>> This patch without the ARMV8_MULTIENTRY and
>> ARMV8_SWITCH_TO_EL1
>>>>> config
>>>>>>>> options does not switch the boot CPU from EL3 to EL1. So it
>>> would
>>>>> be
>>>>>>>> preferable to not merge this patch until ARMV8_MULTIENTRY  is
>>>>> enabled
>>>>>>>> for Exynos7.
>>>>>>>>
>>>>>>>>
>>>>>>>> Why do you want to switch it to EL1 in the first place? Linux
>>>>>>>> is
>>>>> very happy
>>>>>>>> to live in EL2 - which is what we call it in by default.
>>>>>>>
>>>>>>> Okay, there is no particular requirement to be in EL1 for
>> Exynos7.
>>>>> EL2
>>>>>>> would also be fine. But Exynos7 support in u-boot is not yet
>>> ready
>>>>> for
>>>>>>> enabling ARMV8_MULTIENTRY config option. Is there anything be
>>>>> blocked
>>>>>>> due to Exynos7 using a custom lowlevel_init function?
>>>>>>
>>>>>> Yes, we're changing the semantics of armv8_switch_to_el2 and
>>>>>> armv8_switch_to_el1:
>>>>>>
>>>>>>
>>>>>> http://lists.denx.de/pipermail/u-boot/2016-September/266217.html
>>>>>>
>>>>>> which is a prerequisite for AArch32 kernel boot on AArch64
>> systems.
>>>>>
>>>>> Okay.
>>>>>
>>>>>>
>>>>>> How quickly do you think you could make Exynos7 work with
>>> MULTIENTRY?
>>>>>>
>>>>>
>>>>> Exynos7420 uses CPU 0 of Cluster 1 as boot CPU (master CPU). The
>>> macro
>>>>> 'branch_if_master' requires all affinity values to be zero for a
>>>>> CPU to be identified as a master CPU. And so the boot CPU is
>>>>> incorrectly detected as a slave CPU. I have tested with the
>>>>> following temporary workaround to enable ARMV8_MULTIENTRY on
>>>>> Exynos7420. If it looks
>>> fine,
>>>>> this can be merged along with Alison's patch.
>>>>>
>>>>> Thomas.
>>>>>
>>>>> diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-
>>>>> exynos/Kconfig index ce2a16f..45c5eeb 100644
>>>>> --- a/arch/arm/mach-exynos/Kconfig
>>>>> +++ b/arch/arm/mach-exynos/Kconfig
>>>>> @@ -126,6 +126,8 @@ choice
>>>>>  config  TARGET_ESPRESSO7420
>>>>>         bool "ESPRESSO7420 board"
>>>>>         select ARM64
>>>>> +       select ARMV8_MULTIENTRY
>>>>> +       select ARMV8_SWITCH_TO_EL1
>>>>>         select SUPPORT_SPL
>>>>>         select OF_CONTROL
>>>>>         select SPL_DISABLE_OF_CONTROL diff --git
>>>>> a/arch/arm/mach-exynos/soc.c b/arch/arm/mach-exynos/soc.c index
>>>>> f9c7468..6c3ebb0 100644
>>>>> --- a/arch/arm/mach-exynos/soc.c
>>>>> +++ b/arch/arm/mach-exynos/soc.c
>>>>> @@ -9,6 +9,16 @@
>>>>>  #include <asm/io.h>
>>>>>  #include <asm/system.h>
>>>>>
>>>>> +#ifdef CONFIG_TARGET_ESPRESSO7420
>>>>> +/*
>>>>> + * Exynos7420 uses CPU0 of Cluster-1 as boot CPU. Due to this
>>>>> branch_if_master
>>>>> + * fails to identify as the master CPU. As temporary workaround,
>>> setup
>>>>> the
>>>>> + * slave CPU boot address as "_main".
>>>>> + */
>>>>> +extern void _main(void);
>>>>> +void *secondary_boot_addr = (void *)_main; #endif /*
>>>>> +CONFIG_TARGET_ESPRESSO7420 */
>>>>> +
>>>>>  void reset_cpu(ulong addr)
>>>>>  {
>>>>>  #ifdef CONFIG_CPU_V7
>>>>> diff --git a/include/configs/exynos7420-common.h
>>>>> b/include/configs/exynos7420-common.h
>>>>> index 9e03962..6f58aef 100644
>>>>> --- a/include/configs/exynos7420-common.h
>>>>> +++ b/include/configs/exynos7420-common.h
>>>>> @@ -48,6 +48,7 @@
>>>>>  #define CONFIG_IRAM_BASE               0x02100000
>>>>>  #define CONFIG_IRAM_SIZE               0x58000
>>>>>  #define CONFIG_IRAM_END                        (CONFIG_IRAM_BASE
>> +
>>>>> CONFIG_IRAM_SIZE)
>>>>> +#define CPU_RELEASE_ADDR               secondary_boot_addr
>>>>>
>>>>>  /* Number of CPUs available */
>>>>>  #define CONFIG_CORE_COUNT              0x8
>>>>>
>>>>>>
>>>>>> Alex
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de<mailto:U-Boot at lists.denx.de>
> http://lists.denx.de/mailman/listinfo/u-boot
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
> 



More information about the U-Boot mailing list