
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@gmail.com] Sent: Tuesday, September 20, 2016 4:45 PM To: Alexander Graf agraf@suse.de Cc: Alison Wang b18965@freescale.com; thomas.ab@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
> > 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