* [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.