
On Thu, Aug 31, 2017 at 10:45 AM, Leif Lindholm leif.lindholm@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/a00519e2fa7b716dda717a24799a0629d4...
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