[U-Boot] [PATCH] armv8: Remove the codes about switching to EL1 before jumping to kernel

Alexander Graf agraf at suse.de
Mon Jul 18 08:22:55 CEST 2016



On 18.07.16 05:24, Huan Wang wrote:
> Hi, Alex,
> 
>  
> 
>               As there is strong objection to remove the codes about
> switching to EL1, I think we have to remain it, do you agree?

I agree, yes.

>                 If it is remained, I think your suggestion about
> **always** jumping to ep for both switching to AArch64 and AArch32 modes
> will make the code hard to realize and very complicated. So I prefer to
>  keep the process in v4 patches. What is your opinion?

I think we should still convert it to a function call based approach.
You can either just convert the current flow to functions:

static void enter_in_el1(...)
{
    call_in_el1(payload_pc, payload_bits, ...);
}

#ifdef ENTER_PAYLOAD_IN_EL1
call_in_el2(enter_in_el1, 64bit, ...);
#else
call_in_el2(payload_pc, payload_bits, ...);
#endif

Or you could add a check in the EL1 caller if you are in EL3 that you
want to go to EL2 first:

long call_in_el1(...)
{
  if (current_el() == 3)
    return call_in_el2(call_in_el1, ...);

  asm_call_in_el1(...);
}


Alex


More information about the U-Boot mailing list