From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-in4.apple.com (mail-out4.apple.com [17.151.62.26]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 525951A1EEE for ; Wed, 5 Oct 2016 14:20:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; d=apple.com; s=mailout2048s; c=relaxed/simple; q=dns/txt; i=@apple.com; t=1475702437; h=From:Sender:Reply-To:Subject:Date:Message-id:To:Cc:MIME-version:Content-type: Content-transfer-encoding:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-reply-to:References:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=xOP+l0BRlYQtqFSfwk5vQIHk5MI1MQp0asf1LeZY4K8=; b=f0XgywcwSPk2+8Ll8xTzC0yBM1ynnh2uoQs67VLo2JSZYwT/OId0rck217M/5I+B vubPvWteckPPDmFZUTXkMHYK7/+S6QHXF0+li36wFV7421KONBBKmpyfOZ6dMp61 90BxWFWgQlg8m0kUx6ShTh9Jw9E+4RwUQY108djEaQzh4T8ODRDQpXTwaD0ZzffU BnxCsjeD8Q9qFKMvYI0SpgQNbN2qeL88thVrmJf6i3Y/M9/4sVWsMy0Am1LEq/uT FUkQ0mQe1GqRwu1u4hhpzUorGnMPec5Zab2fVrns9X+wkTb+cKZIlP7si6Ge88XU Jzvyb9VGU/6O3mJx2nNlNg==; Received: from relay6.apple.com (relay6.apple.com [17.128.113.90]) by mail-in4.apple.com (Apple Secure Mail Relay) with SMTP id 3C.7C.07001.4AE65F75; Wed, 5 Oct 2016 14:20:37 -0700 (PDT) X-AuditID: 11973e12-23e0e9a000001b59-fb-57f56ea4d888 Received: from nwk-mmpp-sz13.apple.com (nwk-mmpp-sz13.apple.com [17.128.115.216]) by relay6.apple.com (Apple SCV relay) with SMTP id 87.3F.23613.4AE65F75; Wed, 5 Oct 2016 14:20:36 -0700 (PDT) MIME-version: 1.0 Received: from [17.153.37.250] by nwk-mmpp-sz13.apple.com (Oracle Communications Messaging Server 8.0.1.1.0 64bit (built Jun 15 2016)) with ESMTPSA id <0OEL00A3YFACA5A0@nwk-mmpp-sz13.apple.com>; Wed, 05 Oct 2016 14:20:36 -0700 (PDT) Sender: afish@apple.com From: Andrew Fish In-reply-to: Date: Wed, 05 Oct 2016 14:20:35 -0700 Cc: Daniil Egranov , edk2-devel-01 , Leif Lindholm Message-id: <4FA936EE-FA0B-467F-863B-DA543E1C4993@apple.com> References: <93F01BC9-4B02-467E-B900-65C6775BB0F3@apple.com> <6ac805ec-66c2-a291-7852-3429efa018cd@arm.com> <9F98A80B-A3F4-4956-9D84-33C166384EB6@apple.com> To: "Carsey, Jaben" X-Mailer: Apple Mail (2.3226) X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrBLMWRmVeSWpSXmKPExsUi2FAYpbs072u4we8XjBZbWm+xW+w5dJTZ YmPTH1aLRf1f2RxYPNbMW8PosXjPSyaP7tn/WAKYo7hsUlJzMstSi/TtErgyth6dzlwwx7Xi yeeZzA2Mbyy7GDk5JARMJM5dn8DYxcjFISSwl1Fi9fo3zDCJl537mSAShxgljj88xQqS4BUQ lPgx+R5LFyMHB7OAvMTB87IgYWYBLYnvj1pZIOrfMUo8vDOTCSQhLCAu8e7MJmYIO0Xi2dQm RhCbTUBZYsX8D+wgczgFwiQmzPUFCbMIqEr8nneYFWJmrcTvG7+g1tpITNneATV/IovE+vMn wOaLCOhIrL71mRlkjoSArMTsX14Q959gk3jVGDmBUXgWkqtnIVw9C8nVCxiZVzEK5SZm5uhm 5pnoJRYU5KTqJefnbmIEBf10O6EdjKdWWR1iFOBgVOLhvaH6NVyINbGsuDL3EKM0B4uSOC/r h8/hQgLpiSWp2ampBalF8UWlOanFhxiZODilGhg79F9+eyxwTlZg4oIlz02PWtWYcuv5zFfw r2XvX2JesOyN0Izig+zPXUuqRZataFNZsf5xU4PnrNzla6/0aE21Wn8k/hnHy/cfL8bsLWHc lnFNyPl9+5o5+dML8l4YvDzamC2fxX16XcudrZOcv28s830on+xgd+SJT+auuJuffms8L8wz qeFVYinOSDTUYi4qTgQABrMw+FsCAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprAIsWRmVeSWpSXmKPExsUi2FB8Q3dJ3tdwg7fdZhZbWm+xW+w5dJTZ YmPTH1aLRf1f2RxYPNbMW8PosXjPSyaP7tn/WAKYo7hsUlJzMstSi/TtErgyth6dzlwwx7Xi yeeZzA2Mbyy7GDk5JARMJF527meCsMUkLtxbz9bFyMUhJHCIUeL4w1OsIAleAUGJH5PvsXQx cnAwC8hLHDwvCxJmFtCS+P6olQWi/h2jxMM7M8EGCQuIS7w7s4kZwk6ReDa1iRHEZhNQllgx /wM7yBxOgTCJCXN9QcIsAqoSv+cdZoWYWSvx+8YvqLU2ElO2d0DNn8gisf78CbD5IgI6Eqtv fWYGmSMhICsx+5fXBEbBWUgunYVw6Swkly5gZF7FKFCUmpNYaaaXWFCQk6qXnJ+7iREcvoVR OxgbllsdYhTgYFTi4b2h+jVciDWxrLgyFxgUHMxKIry7s4BCvCmJlVWpRfnxRaU5qcWHGJOB 7p/ILCWanA+MrbySeEMTEwMTY2MzY2NzE3PShJXEeXdf/hQuJJCeWJKanZpakFoEs4WJg1Oq gZFX+2ZNk9S/j7sWWFd0lD4MWZZ4xkf6SID6rHk1SmG8oUfOOBnV/Xv0nfvySWe7eVY3S5gz Gece+3V9erJgx2U3pe1e67kPzpY93McnkbZlutHeOQ0GE6cJKr9bnmg/5/29Qyf22OoVv6z0 5SuacvvAw6XXkqW9z0ge3zJJrWti17sNGx/ZufgrsRRnJBpqMRcVJwIAm8jCC6MCAAA= 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 21:20:37 -0000 Content-transfer-encoding: 7BIT Content-type: text/plain; CHARSET=US-ASCII > On Oct 5, 2016, at 2:15 PM, Carsey, Jaben wrote: > > All, > What are your thoughts about Tapan's suggestion to move the protocol location to the only function that needs it? > > Andrew, > > We cannot publish a dependency. There are DXE driver dynamic shell commands that launch before the shell runs and produce the appropriate protocol so that the shell will call into them. These drivers must be allowed to successfully launch before the shell runs. > Jaben, I'm not saying it was good change...., but the patch added a hard dependency on a protocol so a depex was required for correctness. I agree deferring the work is a better solution. Thanks, Andrew Fish > Danil, > > Can you elaborate what your DXE driver is doing with the library? > > > -Jaben > >> -----Original Message----- >> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of >> Andrew Fish >> Sent: Wednesday, October 05, 2016 2:06 PM >> To: Daniil Egranov >> Cc: Carsey, Jaben ; edk2-devel-01 > devel@lists.01.org>; Leif Lindholm >> Subject: Re: [edk2] Assert in ShellPkg with latest tianocore edk2 source on >> the Reference Platform >> Importance: High >> >> >>> On Oct 5, 2016, at 1:53 PM, Daniil Egranov >> wrote: >>> >>> >>> >>> On 10/05/2016 02:48 PM, Andrew Fish wrote: >>>>> On Oct 5, 2016, at 12:24 PM, Daniil Egranov >> 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_GC >> C49/AARCH64/ArmPlatformPkg/ArmJunoPkg/Drivers/ArmJunoDxe/ArmJuno >> Dxe/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/UefiSh >> ellLib/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. >>> >> >> Daniil, >> >> Sorry, I was assuming the UefiShellLib only supported UEFI Applications. >> Thats what I get for not looking at the code :(, my bad. >> >> https://github.com/tianocore/edk2/blob/master/ShellPkg/Library/UefiShellL >> ib/UefiShellLib.inf#L23 >> > lLib/UefiShellLib.inf#L23> >> LIBRARY_CLASS = ShellLib|UEFI_APPLICATION UEFI_DRIVER >> DXE_RUNTIME_DRIVER DXE_DRIVER >> >> Given the library supports DXE_RUNTIME_DRIVER and DXE_DRIVER I think >> you are right it should publish a Depex if it has a hard dependency. >> >> I'm guessing that your DXE Driver is dispatching prior UEFI Driver that >> publishes the protocol. >> >> Thanks, >> >> Andrew Fish >> >> >>>> >>>> >>>>> 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 ; edk2- >> devel-01 ; Shah, Tapan >>>>>> Cc: Leif Lindholm ; Carsey, Jaben >> >>>>>> 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 >>>>>>> Cc: Leif Lindholm >>>>>>> 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 >>>> _______________________________________________ >>>> 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