All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] arm: exynos: Use the generic lowlevel_init instead of the specific one
@ 2016-11-22  5:25 ` Alison Wang
  2016-11-22  6:08   ` Jaehoon Chung
  2016-11-22 16:57   ` york sun
  0 siblings, 2 replies; 18+ messages in thread
From: Alison Wang @ 2016-11-22  5:25 UTC (permalink / raw)
  To: u-boot


2016? 11? 16? (?) 19:44, Alison Wang <alison.wang at nxp.com<mailto:alison.wang@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@samsung.com>>

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@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@gmail.com>]
> > >> Sent: Tuesday, September 20, 2016 4:45 PM
> > >> To: Alexander Graf <agraf at suse.de<mailto:agraf@suse.de>>
> > >> Cc: Alison Wang <b18965 at freescale.com<mailto:b18965@freescale.com>>; thomas.ab at samsung.com<mailto:thomas.ab@samsung.com>;
> > Minkyu
> > >> Kang <mk7.kang at samsung.com<mailto:mk7.kang@samsung.com>>; york sun <york.sun at nxp.com<mailto:york.sun@nxp.com>>; U-Boot
> > >> Mailing List <u-boot at lists.denx.de<mailto:u-boot@lists.denx.de>>; Jason Jin <jason.jin at nxp.com<mailto:jason.jin@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@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@suse.de>>
> > >> wrote:
> > >> >>>
> > >> >>>
> > >> >>> Am 20.09.2016 um 07:51 schrieb Thomas Abraham
> > <ta.omasab at gmail.com<mailto:ta.omasab@gmail.com>>:
> > >> >>>
> > >> >>> Hi Alison,
> > >> >>>
> > >> >>>
> > >> >>> On Mon, Sep 19, 2016 at 7:38 PM, Alexander Graf <agraf at suse.de<mailto:agraf@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@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@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@lists.denx.de>
http://lists.denx.de/mailman/listinfo/u-boot

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot] [PATCH] arm: exynos: Use the generic lowlevel_init instead of the specific one
  2016-11-22  5:25 ` [U-Boot] [PATCH] arm: exynos: Use the generic lowlevel_init instead of the specific one Alison Wang
@ 2016-11-22  6:08   ` Jaehoon Chung
  2016-11-22  7:10     ` Minkyu Kang
  2016-11-22 16:57   ` york sun
  1 sibling, 1 reply; 18+ messages in thread
From: Jaehoon Chung @ 2016-11-22  6:08 UTC (permalink / raw)
  To: u-boot

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@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@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@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@gmail.com>]
>>>>> Sent: Tuesday, September 20, 2016 4:45 PM
>>>>> To: Alexander Graf <agraf at suse.de<mailto:agraf@suse.de>>
>>>>> Cc: Alison Wang <b18965 at freescale.com<mailto:b18965@freescale.com>>; thomas.ab at samsung.com<mailto:thomas.ab@samsung.com>;
>>> Minkyu
>>>>> Kang <mk7.kang at samsung.com<mailto:mk7.kang@samsung.com>>; york sun <york.sun at nxp.com<mailto:york.sun@nxp.com>>; U-Boot
>>>>> Mailing List <u-boot at lists.denx.de<mailto:u-boot@lists.denx.de>>; Jason Jin <jason.jin at nxp.com<mailto:jason.jin@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@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@suse.de>>
>>>>> wrote:
>>>>>>>>
>>>>>>>>
>>>>>>>> Am 20.09.2016 um 07:51 schrieb Thomas Abraham
>>> <ta.omasab at gmail.com<mailto:ta.omasab@gmail.com>>:
>>>>>>>>
>>>>>>>> Hi Alison,
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, Sep 19, 2016 at 7:38 PM, Alexander Graf <agraf at suse.de<mailto:agraf@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@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@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@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
> 

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot] [PATCH] arm: exynos: Use the generic lowlevel_init instead of the specific one
  2016-11-22  6:08   ` Jaehoon Chung
@ 2016-11-22  7:10     ` Minkyu Kang
  0 siblings, 0 replies; 18+ messages in thread
From: Minkyu Kang @ 2016-11-22  7:10 UTC (permalink / raw)
  To: u-boot

Hi, Jaehoon

On Tuesday, 22 November 2016, Jaehoon Chung wrote:

> On 11/22/2016 02:25 PM, Alison Wang wrote:
> >
> > 2016? 11? 16? (?) 19:44, Alison Wang <alison.wang@nxp.com <javascript:;>
> <mailto:alison.wang@nxp.com <javascript:;>>>?? ??:
> > 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@samsung.com <javascript:;><mailto:
> mk7.kang at samsung.com <javascript:;>>>
>
> What's this? Minkyu has sent the Reviewed-by tags? I didn't see his
> reviewed-by tags..


I sent! :)

Minkyu Kang.

-- 
Thanks.
Minkyu Kang.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot] [PATCH] arm: exynos: Use the generic lowlevel_init instead of the specific one
  2016-11-22  5:25 ` [U-Boot] [PATCH] arm: exynos: Use the generic lowlevel_init instead of the specific one Alison Wang
  2016-11-22  6:08   ` Jaehoon Chung
@ 2016-11-22 16:57   ` york sun
  1 sibling, 0 replies; 18+ messages in thread
From: york sun @ 2016-11-22 16:57 UTC (permalink / raw)
  To: u-boot

On 11/21/2016 09:25 PM, Alison Wang wrote:
>
>
> 2016? 11? 16? (?) 19:44, Alison Wang <alison.wang@nxp.com
> <mailto:alison.wang@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@samsung.com
> <mailto:mk7.kang@samsung.com>>
>
>

I think we have a newer version http://patchwork.ozlabs.org/patch/695560/

York

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot] [PATCH] arm: exynos: Use the generic lowlevel_init instead of the specific one
  2016-11-16  7:43                 ` Alison Wang
@ 2016-11-21 15:09                   ` Minkyu Kang
  0 siblings, 0 replies; 18+ messages in thread
From: Minkyu Kang @ 2016-11-21 15:09 UTC (permalink / raw)
  To: u-boot

Hi,

2016? 11? 16? (?) 19:44, Alison Wang <alison.wang@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?

Reviewed-by: Minkyu Kang <mk7.kang@samsung.com>

Thanks,
Minkyu Kang.


> Thanks.
>
>
> Best Regards,
> Alison Wang
>
>
> > > On Tue, Nov 15, 2016 at 1:03 PM, Alison Wang <alison.wang@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]
> > > >> Sent: Tuesday, September 20, 2016 4:45 PM
> > > >> To: Alexander Graf <agraf@suse.de>
> > > >> Cc: Alison Wang <b18965@freescale.com>; thomas.ab at samsung.com;
> > > Minkyu
> > > >> Kang <mk7.kang@samsung.com>; york sun <york.sun@nxp.com>; U-Boot
> > > >> Mailing List <u-boot@lists.denx.de>; Jason Jin <jason.jin@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@suse.de>
> > > wrote:
> > > >> >
> > > >> >
> > > >> > On 20.09.16 08:25, Thomas Abraham wrote:
> > > >> >> On Tue, Sep 20, 2016 at 11:35 AM, Alexander Graf <agraf@suse.de>
> > > >> wrote:
> > > >> >>>
> > > >> >>>
> > > >> >>> Am 20.09.2016 um 07:51 schrieb Thomas Abraham
> > > <ta.omasab@gmail.com>:
> > > >> >>>
> > > >> >>> Hi Alison,
> > > >> >>>
> > > >> >>>
> > > >> >>> On Mon, Sep 19, 2016 at 7:38 PM, Alexander Graf <agraf@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@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@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
> http://lists.denx.de/mailman/listinfo/u-boot
>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot] [PATCH] arm: exynos: Use the generic lowlevel_init instead of the specific one
  2016-11-15  7:51               ` Thomas Abraham
  2016-11-15  8:04                 ` Alison Wang
@ 2016-11-16  7:43                 ` Alison Wang
  2016-11-21 15:09                   ` Minkyu Kang
  1 sibling, 1 reply; 18+ messages in thread
From: Alison Wang @ 2016-11-16  7:43 UTC (permalink / raw)
  To: u-boot

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.

Thanks.


Best Regards,
Alison Wang


> > On Tue, Nov 15, 2016 at 1:03 PM, Alison Wang <alison.wang@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]
> > >> Sent: Tuesday, September 20, 2016 4:45 PM
> > >> To: Alexander Graf <agraf@suse.de>
> > >> Cc: Alison Wang <b18965@freescale.com>; thomas.ab at samsung.com;
> > Minkyu
> > >> Kang <mk7.kang@samsung.com>; york sun <york.sun@nxp.com>; U-Boot
> > >> Mailing List <u-boot@lists.denx.de>; Jason Jin <jason.jin@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@suse.de>
> > wrote:
> > >> >
> > >> >
> > >> > On 20.09.16 08:25, Thomas Abraham wrote:
> > >> >> On Tue, Sep 20, 2016 at 11:35 AM, Alexander Graf <agraf@suse.de>
> > >> wrote:
> > >> >>>
> > >> >>>
> > >> >>> Am 20.09.2016 um 07:51 schrieb Thomas Abraham
> > <ta.omasab@gmail.com>:
> > >> >>>
> > >> >>> Hi Alison,
> > >> >>>
> > >> >>>
> > >> >>> On Mon, Sep 19, 2016 at 7:38 PM, Alexander Graf <agraf@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@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@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

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot] [PATCH] arm: exynos: Use the generic lowlevel_init instead of the specific one
  2016-11-15  7:51               ` Thomas Abraham
@ 2016-11-15  8:04                 ` Alison Wang
  2016-11-16  7:43                 ` Alison Wang
  1 sibling, 0 replies; 18+ messages in thread
From: Alison Wang @ 2016-11-15  8:04 UTC (permalink / raw)
  To: u-boot

Hi, Thomas,

> On Tue, Nov 15, 2016 at 1:03 PM, Alison Wang <alison.wang@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. :)

Best Regards,
Alison Wang

> 
> >
> > Thanks.
> >
> > Best Regards,
> > Alison Wang
> >
> >> -----Original Message-----
> >> From: Thomas Abraham [mailto:ta.omasab at gmail.com]
> >> Sent: Tuesday, September 20, 2016 4:45 PM
> >> To: Alexander Graf <agraf@suse.de>
> >> Cc: Alison Wang <b18965@freescale.com>; thomas.ab at samsung.com;
> Minkyu
> >> Kang <mk7.kang@samsung.com>; york sun <york.sun@nxp.com>; U-Boot
> >> Mailing List <u-boot@lists.denx.de>; Jason Jin <jason.jin@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@suse.de>
> wrote:
> >> >
> >> >
> >> > On 20.09.16 08:25, Thomas Abraham wrote:
> >> >> On Tue, Sep 20, 2016 at 11:35 AM, Alexander Graf <agraf@suse.de>
> >> wrote:
> >> >>>
> >> >>>
> >> >>> Am 20.09.2016 um 07:51 schrieb Thomas Abraham
> <ta.omasab@gmail.com>:
> >> >>>
> >> >>> Hi Alison,
> >> >>>
> >> >>>
> >> >>> On Mon, Sep 19, 2016 at 7:38 PM, Alexander Graf <agraf@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@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@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

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot] [PATCH] arm: exynos: Use the generic lowlevel_init instead of the specific one
  2016-11-15  7:33             ` Alison Wang
@ 2016-11-15  7:51               ` Thomas Abraham
  2016-11-15  8:04                 ` Alison Wang
  2016-11-16  7:43                 ` Alison Wang
  0 siblings, 2 replies; 18+ messages in thread
From: Thomas Abraham @ 2016-11-15  7:51 UTC (permalink / raw)
  To: u-boot

Hi Alison,

On Tue, Nov 15, 2016 at 1:03 PM, Alison Wang <alison.wang@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.

Thanks,
Thomas.

>
> Thanks.
>
> Best Regards,
> Alison Wang
>
>> -----Original Message-----
>> From: Thomas Abraham [mailto:ta.omasab at gmail.com]
>> Sent: Tuesday, September 20, 2016 4:45 PM
>> To: Alexander Graf <agraf@suse.de>
>> Cc: Alison Wang <b18965@freescale.com>; thomas.ab at samsung.com; Minkyu
>> Kang <mk7.kang@samsung.com>; york sun <york.sun@nxp.com>; U-Boot
>> Mailing List <u-boot@lists.denx.de>; Jason Jin <jason.jin@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@suse.de> wrote:
>> >
>> >
>> > On 20.09.16 08:25, Thomas Abraham wrote:
>> >> On Tue, Sep 20, 2016 at 11:35 AM, Alexander Graf <agraf@suse.de>
>> wrote:
>> >>>
>> >>>
>> >>> Am 20.09.2016 um 07:51 schrieb Thomas Abraham <ta.omasab@gmail.com>:
>> >>>
>> >>> Hi Alison,
>> >>>
>> >>>
>> >>> On Mon, Sep 19, 2016 at 7:38 PM, Alexander Graf <agraf@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@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@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

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot] [PATCH] arm: exynos: Use the generic lowlevel_init instead of the specific one
  2016-09-20  8:45           ` Thomas Abraham
  2016-09-20  9:01             ` Alexander Graf
@ 2016-11-15  7:33             ` Alison Wang
  2016-11-15  7:51               ` Thomas Abraham
  1 sibling, 1 reply; 18+ messages in thread
From: Alison Wang @ 2016-11-15  7:33 UTC (permalink / raw)
  To: u-boot

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?

Thanks.

Best Regards,
Alison Wang

> -----Original Message-----
> From: Thomas Abraham [mailto:ta.omasab at gmail.com]
> Sent: Tuesday, September 20, 2016 4:45 PM
> To: Alexander Graf <agraf@suse.de>
> Cc: Alison Wang <b18965@freescale.com>; thomas.ab at samsung.com; Minkyu
> Kang <mk7.kang@samsung.com>; york sun <york.sun@nxp.com>; U-Boot
> Mailing List <u-boot@lists.denx.de>; Jason Jin <jason.jin@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@suse.de> wrote:
> >
> >
> > On 20.09.16 08:25, Thomas Abraham wrote:
> >> On Tue, Sep 20, 2016 at 11:35 AM, Alexander Graf <agraf@suse.de>
> wrote:
> >>>
> >>>
> >>> Am 20.09.2016 um 07:51 schrieb Thomas Abraham <ta.omasab@gmail.com>:
> >>>
> >>> Hi Alison,
> >>>
> >>>
> >>> On Mon, Sep 19, 2016 at 7:38 PM, Alexander Graf <agraf@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@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@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

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot] [PATCH] arm: exynos: Use the generic lowlevel_init instead of the specific one
  2016-09-20  9:01             ` Alexander Graf
@ 2016-09-20  9:08               ` Thomas Abraham
  0 siblings, 0 replies; 18+ messages in thread
From: Thomas Abraham @ 2016-09-20  9:08 UTC (permalink / raw)
  To: u-boot

On Tue, Sep 20, 2016 at 2:31 PM, Alexander Graf <agraf@suse.de> wrote:
>
>
> On 20.09.16 10:45, Thomas Abraham wrote:
>> On Tue, Sep 20, 2016 at 12:03 PM, Alexander Graf <agraf@suse.de> wrote:
>>>
>>>
>>> On 20.09.16 08:25, Thomas Abraham wrote:
>>>> On Tue, Sep 20, 2016 at 11:35 AM, Alexander Graf <agraf@suse.de> wrote:
>>>>>
>>>>>
>>>>> Am 20.09.2016 um 07:51 schrieb Thomas Abraham <ta.omasab@gmail.com>:
>>>>>
>>>>> Hi Alison,
>>>>>
>>>>>
>>>>> On Mon, Sep 19, 2016 at 7:38 PM, Alexander Graf <agraf@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@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@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.
>
> That certainly works for me. Is there a particular reason why you want
> to do the EL1 switch? I would strongly prefer if we could just enter OSs
> in EL2 always.

There is no particular reason for EL1 switch for Exynos7420. The
ARMV8_SWITCH_TO_EL1 config option can be removed, that sneaked in
accidentally into the diff.

Thomas.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot] [PATCH] arm: exynos: Use the generic lowlevel_init instead of the specific one
  2016-09-20  8:45           ` Thomas Abraham
@ 2016-09-20  9:01             ` Alexander Graf
  2016-09-20  9:08               ` Thomas Abraham
  2016-11-15  7:33             ` Alison Wang
  1 sibling, 1 reply; 18+ messages in thread
From: Alexander Graf @ 2016-09-20  9:01 UTC (permalink / raw)
  To: u-boot



On 20.09.16 10:45, Thomas Abraham wrote:
> On Tue, Sep 20, 2016 at 12:03 PM, Alexander Graf <agraf@suse.de> wrote:
>>
>>
>> On 20.09.16 08:25, Thomas Abraham wrote:
>>> On Tue, Sep 20, 2016 at 11:35 AM, Alexander Graf <agraf@suse.de> wrote:
>>>>
>>>>
>>>> Am 20.09.2016 um 07:51 schrieb Thomas Abraham <ta.omasab@gmail.com>:
>>>>
>>>> Hi Alison,
>>>>
>>>>
>>>> On Mon, Sep 19, 2016 at 7:38 PM, Alexander Graf <agraf@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@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@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.

That certainly works for me. Is there a particular reason why you want
to do the EL1 switch? I would strongly prefer if we could just enter OSs
in EL2 always.


Alex

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot] [PATCH] arm: exynos: Use the generic lowlevel_init instead of the specific one
  2016-09-20  6:33         ` Alexander Graf
@ 2016-09-20  8:45           ` Thomas Abraham
  2016-09-20  9:01             ` Alexander Graf
  2016-11-15  7:33             ` Alison Wang
  0 siblings, 2 replies; 18+ messages in thread
From: Thomas Abraham @ 2016-09-20  8:45 UTC (permalink / raw)
  To: u-boot

On Tue, Sep 20, 2016 at 12:03 PM, Alexander Graf <agraf@suse.de> wrote:
>
>
> On 20.09.16 08:25, Thomas Abraham wrote:
>> On Tue, Sep 20, 2016 at 11:35 AM, Alexander Graf <agraf@suse.de> wrote:
>>>
>>>
>>> Am 20.09.2016 um 07:51 schrieb Thomas Abraham <ta.omasab@gmail.com>:
>>>
>>> Hi Alison,
>>>
>>>
>>> On Mon, Sep 19, 2016 at 7:38 PM, Alexander Graf <agraf@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@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@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

^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [U-Boot] [PATCH] arm: exynos: Use the generic lowlevel_init instead of the specific one
  2016-09-20  6:25       ` Thomas Abraham
@ 2016-09-20  6:33         ` Alexander Graf
  2016-09-20  8:45           ` Thomas Abraham
  0 siblings, 1 reply; 18+ messages in thread
From: Alexander Graf @ 2016-09-20  6:33 UTC (permalink / raw)
  To: u-boot



On 20.09.16 08:25, Thomas Abraham wrote:
> On Tue, Sep 20, 2016 at 11:35 AM, Alexander Graf <agraf@suse.de> wrote:
>>
>>
>> Am 20.09.2016 um 07:51 schrieb Thomas Abraham <ta.omasab@gmail.com>:
>>
>> Hi Alison,
>>
>>
>> On Mon, Sep 19, 2016 at 7:38 PM, Alexander Graf <agraf@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@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@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.

How quickly do you think you could make Exynos7 work with MULTIENTRY?


Alex

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot] [PATCH] arm: exynos: Use the generic lowlevel_init instead of the specific one
  2016-09-20  6:05     ` Alexander Graf
@ 2016-09-20  6:25       ` Thomas Abraham
  2016-09-20  6:33         ` Alexander Graf
  0 siblings, 1 reply; 18+ messages in thread
From: Thomas Abraham @ 2016-09-20  6:25 UTC (permalink / raw)
  To: u-boot

On Tue, Sep 20, 2016 at 11:35 AM, Alexander Graf <agraf@suse.de> wrote:
>
>
> Am 20.09.2016 um 07:51 schrieb Thomas Abraham <ta.omasab@gmail.com>:
>
> Hi Alison,
>
>
> On Mon, Sep 19, 2016 at 7:38 PM, Alexander Graf <agraf@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@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@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?

Thomas.

>
>
> Alex
>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot] [PATCH] arm: exynos: Use the generic lowlevel_init instead of the specific one
  2016-09-20  5:51   ` Thomas Abraham
@ 2016-09-20  6:05     ` Alexander Graf
  2016-09-20  6:25       ` Thomas Abraham
  0 siblings, 1 reply; 18+ messages in thread
From: Alexander Graf @ 2016-09-20  6:05 UTC (permalink / raw)
  To: u-boot



> Am 20.09.2016 um 07:51 schrieb Thomas Abraham <ta.omasab@gmail.com>:
> 
> Hi Alison,
> 
> 
>> On Mon, Sep 19, 2016 at 7:38 PM, Alexander Graf <agraf@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@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@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.


Alex

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot] [PATCH] arm: exynos: Use the generic lowlevel_init instead of the specific one
  2016-09-19 14:08 ` Alexander Graf
@ 2016-09-20  5:51   ` Thomas Abraham
  2016-09-20  6:05     ` Alexander Graf
  0 siblings, 1 reply; 18+ messages in thread
From: Thomas Abraham @ 2016-09-20  5:51 UTC (permalink / raw)
  To: u-boot

Hi Alison,


On Mon, Sep 19, 2016 at 7:38 PM, Alexander Graf <agraf@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@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@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.

Thomas.

>
>
> Alex
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot] [PATCH] arm: exynos: Use the generic lowlevel_init instead of the specific one
  2016-09-09  8:48 Alison Wang
@ 2016-09-19 14:08 ` Alexander Graf
  2016-09-20  5:51   ` Thomas Abraham
  0 siblings, 1 reply; 18+ messages in thread
From: Alexander Graf @ 2016-09-19 14:08 UTC (permalink / raw)
  To: u-boot



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@nxp.com>

If I had to guess, I'd think they only had their own version because the
old one required a GIC.

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@suse.de>


Alex

^ permalink raw reply	[flat|nested] 18+ messages in thread

* [U-Boot] [PATCH] arm: exynos: Use the generic lowlevel_init instead of the specific one
@ 2016-09-09  8:48 Alison Wang
  2016-09-19 14:08 ` Alexander Graf
  0 siblings, 1 reply; 18+ messages in thread
From: Alison Wang @ 2016-09-09  8:48 UTC (permalink / raw)
  To: u-boot

This patch is to use the the generic lowlevel_init instead of the
specific one.

Signed-off-by: Alison Wang <alison.wang@nxp.com>
---
 arch/arm/mach-exynos/soc.c | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/arch/arm/mach-exynos/soc.c b/arch/arm/mach-exynos/soc.c
index f9c7468..737a8dd 100644
--- a/arch/arm/mach-exynos/soc.c
+++ b/arch/arm/mach-exynos/soc.c
@@ -23,11 +23,3 @@ void enable_caches(void)
 	dcache_enable();
 }
 #endif
-
-#ifdef CONFIG_ARM64
-void lowlevel_init(void)
-{
-	armv8_switch_to_el2();
-	armv8_switch_to_el1();
-}
-#endif
-- 
2.1.0.27.g96db324

^ permalink raw reply related	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2016-11-22 16:57 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CGME20161122054217epcas4p307c7bd46b8be26568ab9410cf7b78b9a@epcas4p3.samsung.com>
2016-11-22  5:25 ` [U-Boot] [PATCH] arm: exynos: Use the generic lowlevel_init instead of the specific one Alison Wang
2016-11-22  6:08   ` Jaehoon Chung
2016-11-22  7:10     ` Minkyu Kang
2016-11-22 16:57   ` york sun
2016-09-09  8:48 Alison Wang
2016-09-19 14:08 ` Alexander Graf
2016-09-20  5:51   ` Thomas Abraham
2016-09-20  6:05     ` Alexander Graf
2016-09-20  6:25       ` Thomas Abraham
2016-09-20  6:33         ` Alexander Graf
2016-09-20  8:45           ` Thomas Abraham
2016-09-20  9:01             ` Alexander Graf
2016-09-20  9:08               ` Thomas Abraham
2016-11-15  7:33             ` Alison Wang
2016-11-15  7:51               ` Thomas Abraham
2016-11-15  8:04                 ` Alison Wang
2016-11-16  7:43                 ` Alison Wang
2016-11-21 15:09                   ` Minkyu Kang

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.