From: Laszlo Ersek <lersek@redhat.com>
To: Daniil Egranov <daniil.egranov@arm.com>, Andrew Fish <afish@apple.com>
Cc: "Carsey, Jaben" <jaben.carsey@intel.com>,
edk2-devel-01 <edk2-devel@ml01.01.org>,
Leif Lindholm <Leif.Lindholm@arm.com>
Subject: Re: Assert in ShellPkg with latest tianocore edk2 source on the Reference Platform
Date: Wed, 5 Oct 2016 23:04:33 +0200 [thread overview]
Message-ID: <fe3a0921-897d-08f1-2d96-0f0ce3fb71df@redhat.com> (raw)
In-Reply-To: <6ac805ec-66c2-a291-7852-3429efa018cd@arm.com>
On 10/05/16 22:53, Daniil Egranov wrote:
>
>
> On 10/05/2016 02:48 PM, Andrew Fish wrote:
>>> On Oct 5, 2016, at 12:24 PM, Daniil Egranov <daniil.egranov@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.
>>
>> Thanks,
>>
>> Andre wFish
> I had to put a context of the ASSERT message in the original message to
> make it more clear:
>
> add-symbol-file
> /home/user1/workspace/juno_16.09/uefi/edk2/Build/ArmJuno/DEBUG_GCC49/AARCH64/ArmPlatformPkg/ArmJunoPkg/Drivers/ArmJunoDxe/ArmJunoDxe/DEBUG/ArmJunoDxe.dll
> 0xF8AB9000
> Loading driver at 0x000F8AB8000 EntryPoint=0x000F8AB9048 ArmJunoDxe.efi
>
> ASSERT_EFI_ERROR (Status = Not Found)
> ASSERT [ArmJunoDxe]
> /home/danegr01/workspace/juno_16.09/uefi/edk2/ShellPkg/Library/UefiShellLib/UefiShellLib.c(305):
> !EFI_ERROR (Status)
>
> If driver includes a module which has dependency on one of the
> protocols, should the driver know about this dependency? Probably not.
> It should be inherited from the module. Adding [Depex] to UefiShellLib
> corrected dispatching ArmJunoDxe and EnglishDxe by the Dxe Core.
You are right; Tim confirmed UefiShellLib is valid to use in
DXE_RUNTIME_DRIVER and DXE_DRIVER modules, and ArmJunoDxe is a DXE_DRIVER.
This additional information also explains why you see the change as a
regression, but have had a working shell all this time -- due to the
missing depex, ArmJunoDxe got dispatched earlier and experienced the
regression, but the shell app itself (being a UEFI application) found
the collation protocol (provided by EnglishDxe) just fine.
So, your suggestion about the depex solves the problem for drivers, on
platforms that provide the collation protocol, but it doesn't solve the
(separate) problem of the shell app proper, on platforms that don't
provide the collation protocol at all.
Thanks
Laszlo
next prev parent reply other threads:[~2016-10-05 21:04 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-04 22:51 Assert in ShellPkg with latest tianocore edk2 source on the Reference Platform Supreeth Venkatesh
2016-10-05 15:40 ` Carsey, Jaben
2016-10-05 16:02 ` Shah, Tapan
2016-10-05 19:24 ` Daniil Egranov
2016-10-05 19:46 ` Tim Lewis
2016-10-05 19:48 ` Andrew Fish
2016-10-05 20:17 ` Laszlo Ersek
2016-10-05 20:24 ` Shah, Tapan
2016-10-05 20:34 ` Carsey, Jaben
2016-10-05 20:39 ` Shah, Tapan
2016-10-05 20:44 ` Tim Lewis
2016-10-05 20:58 ` Laszlo Ersek
2016-10-05 20:59 ` Andrew Fish
2016-10-05 21:06 ` Laszlo Ersek
2016-10-05 21:06 ` Tim Lewis
2016-10-05 21:17 ` Carsey, Jaben
2016-10-05 21:33 ` Tim Lewis
2016-10-05 22:17 ` Carsey, Jaben
2016-10-06 7:22 ` Laszlo Ersek
2016-10-05 21:05 ` Tim Lewis
2016-10-05 20:48 ` Laszlo Ersek
2016-10-05 20:53 ` Daniil Egranov
2016-10-05 21:04 ` Laszlo Ersek [this message]
2016-10-05 21:05 ` Andrew Fish
2016-10-05 21:15 ` Carsey, Jaben
2016-10-05 21:20 ` Andrew Fish
2016-10-05 21:25 ` Laszlo Ersek
2016-10-05 21:42 ` Daniil Egranov
2016-10-05 21:18 ` Laszlo Ersek
2016-10-05 21:34 ` Kinney, Michael D
2016-10-05 21:48 ` Laszlo Ersek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=fe3a0921-897d-08f1-2d96-0f0ce3fb71df@redhat.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox