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

Alexander Graf agraf at suse.de
Tue Sep 20 11:01:21 CEST 2016



On 20.09.16 10:45, Thomas Abraham wrote:
> 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.

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


More information about the U-Boot mailing list