public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Tim Lewis <tim.lewis@insyde.com>
To: Daniil Egranov <daniil.egranov@arm.com>,
	"Shah, Tapan" <tapandshah@hpe.com>,
	"Carsey, Jaben" <jaben.carsey@intel.com>,
	Supreeth Venkatesh <Supreeth.Venkatesh@arm.com>,
	edk2-devel-01 <edk2-devel@lists.01.org>
Cc: 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 19:46:06 +0000	[thread overview]
Message-ID: <7236196A5DF6C040855A6D96F556A53F3F3F2C@msmail.insydesw.com.tw> (raw)
In-Reply-To: <e74e37f9-50ad-fbda-33db-28b79d6aae30@arm.com>

Daniil --

Per your point about modules: Adding a dependency expression to a library should NOT have any effect on an application, since applications do not have dependency expressions. 

So this would indicate that you are trying to link a driver against the UefiShellLib. Is this correct?

This is valid for drivers that produce the new Dynamic commands. That is why the UefiShellLib INF allows DXE_RUNTIME_DRIVER and DXE_DRIVER. DXE_RUNTIME_DRIVER and DXE_DRIVER should call ShellInitialize() (this is what the Shell does for commands). Unfortunately, the UnicodeCollation initializer is not a part of this.

Jaben --- I suggest that moving the UnicodeCollation initializer into ShellLibConstructorWorker would probably solve the problem for a well-constructed shell extension driver. 

Tim 

-----Original Message-----
From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Daniil Egranov
Sent: Wednesday, October 05, 2016 12:24 PM
To: Shah, Tapan <tapandshah@hpe.com>; Carsey, Jaben <jaben.carsey@intel.com>; Supreeth Venkatesh <Supreeth.Venkatesh@arm.com>; edk2-devel-01 <edk2-devel@lists.01.org>
Cc: Leif Lindholm <Leif.Lindholm@arm.com>
Subject: Re: [edk2] Assert in ShellPkg with latest tianocore edk2 source on the Reference Platform

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 following dependency in UefiShellLib.inf fixes ASSERT problem:

[Depex]
   gEfiUnicodeCollation2ProtocolGuid


Thanks,

Daniil


On 10/05/2016 11:02 AM, Shah, Tapan wrote:
> It's possible. But I think gEfiUnicodeCollation2ProtocolGuid protocol is necessary for even other Shell libraries other than UefiShellLib in order to have Shell parser and other command line processing to work properly. That's why I added ASSERT if UefiShellLib fails to locate the protocol.
>   
> Reference platform should have EnglishDxe module to have this protocol installed properly.
>
>    
> MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
>
> -----Original Message-----
> From: Carsey, Jaben [mailto:jaben.carsey@intel.com]
> Sent: Wednesday, October 05, 2016 10:41 AM
> To: Supreeth Venkatesh <Supreeth.Venkatesh@arm.com>; edk2-devel-01 
> <edk2-devel@lists.01.org>; Shah, Tapan <tapandshah@hpe.com>
> Cc: Leif Lindholm <Leif.Lindholm@arm.com>; Carsey, Jaben 
> <jaben.carsey@intel.com>
> Subject: RE: Assert in ShellPkg with latest tianocore edk2 source on 
> the Reference Platform
>
> Tapan,
>
> Could this be a side effect of your patch?  Should we allow the UefiShellLib to continue without this protocol and then return an error only when the OpenFile is called?
>
> Also, it looks like we never properly initialize mUnicodeCollationProtocol.  We check for NULL in Constructor, but nothing else...
>
> -Jaben
>
>> -----Original Message-----
>> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf 
>> Of Supreeth Venkatesh
>> Sent: Tuesday, October 04, 2016 3:51 PM
>> To: edk2-devel-01 <edk2-devel@lists.01.org>
>> Cc: Leif Lindholm <Leif.Lindholm@arm.com>
>> Subject: [edk2] Assert in ShellPkg with latest tianocore edk2 source 
>> on the Reference Platform
>> Importance: High
>>
>> All,
>>
>> Recently, I updated to latest edk2 master (yesterday's) and I am 
>> actually encountering assert in 
>> ShellPkg/Library/UefiShellLib/UefiShellLib.c
>>
>> if (mUnicodeCollationProtocol == NULL) {
>>      Status = gBS->LocateProtocol 
>> (&gEfiUnicodeCollation2ProtocolGuid,
>> NULL, (VOID**)&mUnicodeCollationProtocol);
>>      ASSERT_EFI_ERROR (Status);
>>    }
>>
>> It was working few weeks back and has now stopped working.
>> It's probably because  the platform is unable to locate this protocol 
>> "UnicodeCollationProtocol".
>> Is Anyone else facing the same issue?
>> Does the new ShellPkg requires additional packages/infs to be 
>> included in the platform description file to work with latest changes  
>> to get past this error?
>>
>> Thanks,
>> Supreeth
>> IMPORTANT NOTICE: The contents of this email and any attachments are 
>> confidential and may also be privileged. If you are not the intended 
>> recipient, please notify the sender immediately and do not disclose 
>> the contents to any other person, use it for any purpose, or store or 
>> copy the information in any medium. Thank you.
>> _______________________________________________
>> edk2-devel mailing list
>> edk2-devel@lists.01.org
>> https://lists.01.org/mailman/listinfo/edk2-devel
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel


  reply	other threads:[~2016-10-05 19:46 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 [this message]
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
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=7236196A5DF6C040855A6D96F556A53F3F3F2C@msmail.insydesw.com.tw \
    --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