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

Thomas Abraham ta.omasab at gmail.com
Tue Sep 20 11:08:40 CEST 2016


On Tue, Sep 20, 2016 at 2:31 PM, Alexander Graf <agraf at suse.de> wrote:
>
>
> 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.

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.


More information about the U-Boot mailing list