[U-Boot] x86: EFI: boot fails at exit_boot_services - Was: Stuck trying to build a non-qemu EFI payload

Simon Glass sjg at chromium.org
Fri Aug 21 22:51:47 CEST 2015


Hi Igor,

On 20 August 2015 at 08:25, Stoppa, Igor <igor.stoppa at intel.com> wrote:
> Hi again,
>
> On 20 August 2015 at 12:44, Stoppa, Igor <igor.stoppa at intel.com> wrote:
>
>> It happens much earlier than I thought: I was expecting it would get
>> stuck during the handover from the stub to the real U-Boot, after the
>> jump_to_uboot call, instead it never reaches that point.
>
> Now I am able to reach the jump_to_uboot call
>
>> On the NUC I get a system hang at the first
>>
>> ret = boot->exit_boot_services(image, key);
>
> I reach this point by commenting out:
> * the call to exit_boot_services
> * the brace following the if (ret) test associated to exit_boot_services
> * the enabling of the debug UART (because the qemu build is probably
> not compatible with my board)
>
> I have found a workaround to the problem I was describing in my first
> mail, however the issue is not solved cleanly, because I'm not exiting
> EFI Boot Services.
>
> This might problem might by due to differences in the EFI firmware
> between what runs on the NUC and Tianocore, which I use in Qemu.
>
> I can create a bug report, if there is any bug tracker. From the
> website I couldn't find any.

Bugs are normally reported on the mailing list, as you have.

Note that once you call exit_boot_services you will not be able to use
the console. Be careful here - the board may appear to hang but
actually it is broken by you trying to output to the console.

See this code which switches to the legacy UART and allows you to use
printch() etc. which should show you what is going on.

use_uart = true;

As to the root cause I am not sure. What do you think? The code is
very simple so I'm not sure what could be different in your setup.

Regards,
Simon


More information about the U-Boot mailing list