[U-Boot] [PATCH 00/23] efi_loader implement missing functions

Rob Clark robdclark at gmail.com
Fri Sep 1 13:05:51 UTC 2017


On Thu, Aug 31, 2017 at 10:45 AM, Leif Lindholm
<leif.lindholm at linaro.org> wrote:
> On Wed, Aug 30, 2017 at 08:59:31AM +0100, Leif Lindholm wrote:
>> On Wed, Aug 30, 2017 at 12:03:16AM +0200, Heinrich Schuchardt wrote:
>> > I am able to provide a test application that will cover the API
>> > functions that I have focused on (events, protocols, (dis)connect
>> > controllers). To limit my effort I would like to write it for the HEAD
>> > of my patch queue and not break it down into one test patch per
>> > implementation patch. I hope that is ok for you. My effort estimate is
>> > 40h+ so, please, be patient.
>>
>> I am not going to claim that getting SCT to run under U-Boot is going
>> to come near the top of my priority queue any time soon, and it would
>> certainly be useful for some sort of "make sure we don't break what we
>> have" tests.
>
> Well, I spent a few hours looking at what the immediate issues may be
> with running the UEFI Shell (built with -D NO_SHELL_PROFILES), same as
> edk2/ShellBinPkg/MinUefiShell. Alex suggested I post an update.
>
> I've implemented stubs for the missing protocols preventing the Shell
> from starting properly, and pushed everything to
> https://git.linaro.org/people/leif.lindholm/u-boot.git/log/?h=uefi-shell

from a quick look, at least we have part of the under-the-hood bits
for "efi_loader: add stub EFI_DEVICE_PATH_UTILITIES_PROTOCOL" in:

https://github.com/robclark/u-boot/commit/a00519e2fa7b716dda717a24799a0629d42eb362

I can take a stab at fleshing this one out over the weekend..

BR,
-R

> (As Alex points out, I forgot about the EFI_EXIT/EFI_ENTER macros.)
>
> With this, execution fails with
> Found 2 disks
> new_package_list: 99
>
> ASSERT_EFI_ERROR (Status = Device Error)
> ASSERT [Shell]
> /work/git/edk2/Build/Shell/DEBUG_GCC5/AARCH64/ShellPkg/Application/Shell/Shell/DEBUG/AutoGen.c(615):
> !EFI_ERROR (Status)
> "Synchronous Abort" handler, esr 0x5600dbdb
>
> The AutoGen.c failure is a library constructor
> (ShellLevel2CommandsLibConstructor) returning error because
> MdeModulePkg/Library/UefiHiiLib/HiiLib.c : HiiAddPackages() received
> an error return from new_package_list (in the non-camel-case u-boot
> form).
>
> If you could look into implementing something useful in that function,
> I could look into what causes the next stumbling block after that.
>
> I did overrun the "maximum number of open protocols" limit, so
> randomly bumped that up to 12. It will need to go higher (and
> preferably dynamic). As long as we're not planning to support
> protocols staying around at runtime, I'd say that shouldn't be too
> hard to resolve properly.
>
> I have pushed an update to the pre-built versions of UEFI Shell in edk2:
> https://github.com/tianocore/edk2/tree/master/ShellBinPkg/MinUefiShell
> These are built without ASSERTs, so won't actually give the above
> messages, but should otherwise be identical to the one I've used here.
>
> /
>     Leif


More information about the U-Boot mailing list