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