On 10/05/16 21:48, Andrew Fish wrote: > >> On Oct 5, 2016, at 12:24 PM, Daniil Egranov <daniil.egra...@arm.com> wrote: >> >> I have the same ASSERT issue on Juno platform even the EnglishDxe.inf is >> included to the platform build. If UefiShellLib has such dependency on the >> protocol then according to EDKII Module Writer's Guide you need to specify >> the dependency on protocol in the module .inf to ensure the drivers proper >> load sequence. >> >> 8.6 Dependency Expressions >> A dependency expression specifies the protocols that the DXE driver requires >> to >> execute. In EDK II, it is specified in the [Depex] section of INF file. >> > > The Dependency Expression is for DXE Drivers that are dispatched by the DXE > Core. A UEFI Driver from an option ROM or an Application does not get > dispatched by the dispatch and the Depex will not help. The Depex ends up > being a section in the FV and it has nothing to do with the PE/COFF image of > the an application or option ROM. > > IMHO the shell should try as hard as possible to function and should not > ASSERT if some newer Protocol is missing.
(Background: commit 583448b441650.) In this specific case, the protocol dependency seems possible to eliminate: - Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.c includes the CharToUpper() function, which is minimal -- could even be copied or moved over -- and can translate the ASCII subset of UCS-2, - once the ASCII characters of the input string have been translated to upper case, the result could be searched for / compared against L"NULL" using BaseLib.h APIs. (Given that L"NULL" only contains characters from the ASCII subset, it suffices to upper-case ASCII chars in the input string. No non-ASCII character in the BMP can translate to ASCII N/U/L via upcasing, even with the real collation protocol (I trust), and no other ASCII characters than n/u/l will translate to N/U/L. This means that we won't miss an instance of NULL because we didn't upcate it (because it was non-ascii), and it also means we won't mistakenly match something non-NULL as NULL.) Just my two cents. Laszlo _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel