From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from msmail.insydesw.com.tw (ms.insydesw.com [211.75.113.220]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 959E31A1EE0 for ; Wed, 5 Oct 2016 12:46:09 -0700 (PDT) Received: from msmail.insydesw.com.tw ([fe80::74f7:f173:f4aa:9a05]) by msmail.insydesw.com.tw ([fe80::74f7:f173:f4aa:9a05%11]) with mapi id 14.01.0438.000; Thu, 6 Oct 2016 03:46:06 +0800 From: Tim Lewis To: Daniil Egranov , "Shah, Tapan" , "Carsey, Jaben" , Supreeth Venkatesh , edk2-devel-01 CC: Leif Lindholm Thread-Topic: [edk2] Assert in ShellPkg with latest tianocore edk2 source on the Reference Platform Thread-Index: AdIekL1EjMpAqwOYRWKk8YKyvfLMLgAjbAlwAACkBtD//7QPAP//d3gg Date: Wed, 5 Oct 2016 19:46:06 +0000 Message-ID: <7236196A5DF6C040855A6D96F556A53F3F3F2C@msmail.insydesw.com.tw> References: In-Reply-To: Accept-Language: en-US, zh-TW X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [192.168.100.107] MIME-Version: 1.0 Subject: Re: Assert in ShellPkg with latest tianocore edk2 source on the Reference Platform X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 05 Oct 2016 19:46:10 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Daniil -- Per your point about modules: Adding a dependency expression to a library s= hould NOT have any effect on an application, since applications do not have= dependency expressions.=20 So this would indicate that you are trying to link a driver against the Uef= iShellLib. Is this correct? This is valid for drivers that produce the new Dynamic commands. That is wh= y the UefiShellLib INF allows DXE_RUNTIME_DRIVER and DXE_DRIVER. DXE_RUNTIM= E_DRIVER and DXE_DRIVER should call ShellInitialize() (this is what the She= ll does for commands). Unfortunately, the UnicodeCollation initializer is n= ot a part of this. Jaben --- I suggest that moving the UnicodeCollation initializer into Shell= LibConstructorWorker would probably solve the problem for a well-constructe= d shell extension driver.=20 Tim=20 -----Original Message----- From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Dani= il Egranov Sent: Wednesday, October 05, 2016 12:24 PM To: Shah, Tapan ; Carsey, Jaben ; Supreeth Venkatesh ; edk2-devel-01 Cc: Leif Lindholm 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 in= cluded to the platform build. If UefiShellLib has such dependency on the pr= otocol then according to EDKII Module Writer's Guide you need to specify th= e dependency on protocol in the module .inf to ensure the drivers proper lo= ad sequence. 8.6 Dependency Expressions A dependency expression specifies the protocols that the DXE driver require= s 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 t= o have Shell parser and other command line processing to work properly. Tha= t's why I added ASSERT if UefiShellLib fails to locate the protocol. > =20 > Reference platform should have EnglishDxe module to have this protocol in= stalled properly. > > =20 > 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 ; edk2-devel-01=20 > ; Shah, Tapan > Cc: Leif Lindholm ; Carsey, Jaben=20 > > Subject: RE: Assert in ShellPkg with latest tianocore edk2 source on=20 > the Reference Platform > > Tapan, > > Could this be a side effect of your patch? Should we allow the UefiShell= Lib to continue without this protocol and then return an error only when th= e OpenFile is called? > > Also, it looks like we never properly initialize mUnicodeCollationProtoco= l. We check for NULL in Constructor, but nothing else... > > -Jaben > >> -----Original Message----- >> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf=20 >> Of Supreeth Venkatesh >> Sent: Tuesday, October 04, 2016 3:51 PM >> To: edk2-devel-01 >> Cc: Leif Lindholm >> Subject: [edk2] Assert in ShellPkg with latest tianocore edk2 source=20 >> on the Reference Platform >> Importance: High >> >> All, >> >> Recently, I updated to latest edk2 master (yesterday's) and I am=20 >> actually encountering assert in=20 >> ShellPkg/Library/UefiShellLib/UefiShellLib.c >> >> if (mUnicodeCollationProtocol =3D=3D NULL) { >> Status =3D gBS->LocateProtocol=20 >> (&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=20 >> "UnicodeCollationProtocol". >> Is Anyone else facing the same issue? >> Does the new ShellPkg requires additional packages/infs to be=20 >> included in the platform description file to work with latest changes =20 >> to get past this error? >> >> Thanks, >> Supreeth >> IMPORTANT NOTICE: The contents of this email and any attachments are=20 >> confidential and may also be privileged. If you are not the intended=20 >> recipient, please notify the sender immediately and do not disclose=20 >> the contents to any other person, use it for any purpose, or store or=20 >> 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