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

Minkyu Kang promsoft at gmail.com
Mon Nov 21 16:09:36 CET 2016


Hi,

2016년 11월 16일 (수) 19:44, Alison Wang <alison.wang at nxp.com>님이 작성:

> Hi, Thomas,
>
> I didn't see your patch. Maybe it isn't CC'ing me. Could you send me and
> york the link?
>
> Minkyu Kang,
>
> Could you add review-by and assign this patch http://patchwork.ozlabs.org/
> patch/667948/ to York? So he can merge this patch and Thomas's patch
> together.
>
>
It's OK.
York means yorksun?

Reviewed-by: Minkyu Kang <mk7.kang at 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>
> > > 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 at suse.de>
> > > >> Cc: Alison Wang <b18965 at freescale.com>; thomas.ab at samsung.com;
> > > Minkyu
> > > >> Kang <mk7.kang at samsung.com>; york sun <york.sun at nxp.com>; U-Boot
> > > >> Mailing List <u-boot at lists.denx.de>; Jason Jin <jason.jin at nxp.com>
> > > >> Subject: Re: [U-Boot] [PATCH] arm: exynos: Use the generic
> > > >> lowlevel_init instead of the specific one
> > > >>
> > > >> On Tue, Sep 20, 2016 at 12:03 PM, Alexander Graf <agraf at suse.de>
> > > 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>
> > > >> wrote:
> > > >> >>>
> > > >> >>>
> > > >> >>> Am 20.09.2016 um 07:51 schrieb Thomas Abraham
> > > <ta.omasab at gmail.com>:
> > > >> >>>
> > > >> >>> Hi Alison,
> > > >> >>>
> > > >> >>>
> > > >> >>> On Mon, Sep 19, 2016 at 7:38 PM, Alexander Graf <agraf at suse.de>
> > > >> wrote:
> > > >> >>>
> > > >> >>>
> > > >> >>>
> > > >> >>> On 09.09.16 10:48, Alison Wang wrote:
> > > >> >>>
> > > >> >>> This patch is to use the the generic lowlevel_init instead of
> > > the
> > > >> >>>
> > > >> >>> specific one.
> > > >> >>>
> > > >> >>>
> > > >> >>> Signed-off-by: Alison Wang <alison.wang at nxp.com>
> > > >> >>>
> > > >> >>>
> > > >> >>> 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>
> > > >> >>>
> > > >> >>>
> > > >> >>> 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
>


More information about the U-Boot mailing list