From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=67.231.154.164; helo=dispatch1-us1.ppe-hosted.com; envelope-from=tpilar@solarflare.com; receiver=edk2-devel@lists.01.org Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [67.231.154.164]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 7B7D62116123E for ; Tue, 2 Oct 2018 06:43:56 -0700 (PDT) X-Virus-Scanned: Proofpoint Essentials engine Received: from webmail.solarflare.com (webmail.solarflare.com [12.187.104.26]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1-us4.ppe-hosted.com (Proofpoint Essentials ESMTP Server) with ESMTPS id C03E7B40068 for ; Tue, 2 Oct 2018 13:43:54 +0000 (UTC) Received: from tp-desktop.uk.solarflarecom.com (10.17.20.51) by ocex03.SolarFlarecom.com (10.20.40.36) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Tue, 2 Oct 2018 06:43:52 -0700 To: References: From: "Tomas Pilar (tpilar)" Message-ID: <93a7a4ad-fe11-85a8-6a24-091fdedc1f7b@solarflare.com> Date: Tue, 2 Oct 2018 14:43:50 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: X-Originating-IP: [10.17.20.51] X-TM-AS-Product-Ver: SMEX-12.5.0.1300-8.5.1010-24130.005 X-TM-AS-Result: No-30.463600-4.000000-10 X-TMASE-MatchedRID: C/snMIRQLS2YWjOlAjIj6/28T9BUNXkhIgQH9fS2CAbfUZT83lbkECUq kgbo0Bs5vgxHNJdiA0tZ3NcVflCn4CDzLMFSgtKHoMfp2vHck9Xx+mebTsh+EGtEzrC9eANpllN BST7BsAxKkPEqmHR4AO+ffTHwMeOlYB11qN+uiQDpnOP6QxEGtoyzstdwoG+PNAvA6fJJE7V1tL LJvoU65N7Zbz5omSpuqVpwv/mWRSWlRIRzxpqIsBWCVBr+Ay98m/y00tE9StYwplGJ7NxS0yZ5T F4dVlZuFZJVTGyWGuQQrl1qOYRd/5TZ9V50RBQ7tb2IzHbYFk91IdjjHRSNCRAfwLHOKGmBQyYn p0aZIjJK3RDnzg2BXDaa3EyGqiXDbsUpXgEvb8iO0rt0LpQGeXiXpcefx4WWNv1MHbxRuSLAEHn 8i+5Ynsw3LX7Rf1DjK0t1AOHdI7QFCdq0JvYbZZ1U1lojafr/dZPoD9V2prSbKItl61J/ybLn+0 Vm71Lcq7rFUcuGp/G8QIu4z6HhEH7cGd19dSFd X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--30.463600-4.000000 X-TMASE-Version: SMEX-12.5.0.1300-8.5.1010-24130.005 X-MDID: 1538487835-XmSYYYfzf9cV Subject: Re: Problems with FDF for OptionROM when using GCC X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 02 Oct 2018 13:43:56 -0000 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Content-Language: en-US So the solution turns out to swap the Compress and Guided around, Compress apparently requires a LeafSection while Guided is happy to contain EncapSection. Odd. Anyway, I had to hack up GenFds to get a sensible python backtrace:       1 diff --git a/BaseTools/Source/Python/GenFds/GenFds.py b/BaseTools/Source/Python/GenFds/GenFds.py       2 index 9dec9c5eb5..adcadce5a5 100644       3 --- a/BaseTools/Source/Python/GenFds/GenFds.py       4 +++ b/BaseTools/Source/Python/GenFds/GenFds.py       5 @@ -348,6 +348,7 @@ def main():       6          ReturnCode = X.args[0]       7      except:       8          import traceback       9 +        raise^M      10          EdkLogger.error(      11                      "\nPython",      12                      CODE_ERROR, to get Traceback (most recent call last):   File "/usr/lib64/python2.7/runpy.py", line 174, in _run_module_as_main     "__main__", fname, loader, pkg_name)   File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code     exec code in run_globals   File "/local/sauce/uefi/BuildTree/BaseTools/Source/Python/GenFds/GenFds.py", line 736, in     r = main()   File "/local/sauce/uefi/BuildTree/BaseTools/Source/Python/GenFds/GenFds.py", line 333, in main     GenFds.GenFd('', FdfParserObj, BuildWorkSpace, ArchList)   File "/local/sauce/uefi/BuildTree/BaseTools/Source/Python/GenFds/GenFds.py", line 473, in GenFd     OptRomObj.AddToBuffer(None)   File "/home/tp/sauce/uefi/BuildTree/BaseTools/Source/Python/GenFds/OptionRom.py", line 62, in AddToBuffer     FilePathNameList = FfsFile.GenFfs(IsMakefile=Flag)   File "/home/tp/sauce/uefi/BuildTree/BaseTools/Source/Python/GenFds/OptRomInfStatement.py", line 105, in GenFfs     EfiOutputList = self.__GenComplexFileSection__(Rule, IsMakefile=IsMakefile)   File "/home/tp/sauce/uefi/BuildTree/BaseTools/Source/Python/GenFds/OptRomInfStatement.py", line 143, in __GenComplexFileSection__     if Sect.SectionType == BINARY_FILE_TYPE_PE32: AttributeError: CompressSection instance has no attribute 'SectionType' which is a much more helpful backtrace than what the logger was producing. I assume I have misconfigured my EdkLogger somehow, or forgot some runes? Has anyone else had a similar experience? Cheers, Tom On 02/10/18 14:09, Tomas Pilar (tpilar) wrote: > Hi, > > I am trying to move the OptionROM flash specification in my package to a FDF file. I use the following snippet to define the OptionROM: > > [Defines] >   FDF_VERSION = 0x00000100 >   FDF_SPECIFICATION = 0x0001001B >   > [OptionROM.SfcNicDriver] >   INF USE = $(ARCH) SfcPkg/SfcNicDriver/SfcNicDriver.inf { >     PCI_VENDOR_ID             = 0x1924 >     PCI_DEVICE_ID             = 0x0903 >     PCI_CLASS_CODE            = 0x02 # Network Controller >     PCI_REVISION              = 0x00 # Vendor defined Revision ID >     PCI_COMPRESS              = TRUE >   } > > which results in a > > error F003: Don't Find common rule RULE.COMMON.UEFI_DRIVER for INF SfcPkg/SfcNicDriver/SfcNicDriver.inf > > so then I cargo cult copy an example rule from FDF: > > [Rule.Common.UEFI_DRIVER] > FILE DRIVER = $(NAMED_GUID) { >   COMPRESS PI_STD { >     GUIDED { >       PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi >       UI STRING = "$(MODULE_NAME)" Optional >       VERSION STRING = "$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) >     } >   } > } > > which results in the following error: > > GenFds.py... >  : error C0DE: Tools code failure >         Please send email to edk2-devel@lists.01.org for help, attaching following call stack trace! > > Traceback (most recent call last): >   File "/usr/lib64/python2.7/runpy.py", line 174, in _run_module_as_main >     "__main__", fname, loader, pkg_name) >   File "/usr/lib64/python2.7/runpy.py", line 72, in _run_code >     exec code in run_globals >   File "/local/sauce/uefi/BuildTree/BaseTools/Source/Python/GenFds/GenFds.py", line 735, in >     r = main() >   File "/local/sauce/uefi/BuildTree/BaseTools/Source/Python/GenFds/GenFds.py", line 356, in main >     RaiseError=False >   File "/home/tp/sauce/uefi/BuildTree/BaseTools/Source/Python/Common/EdkLogger.py", line 203, in error >     raise FatalError(ErrorCode) > Common.BuildToolError.FatalError: 49374 > > > build.py... >  : error 7000: Failed to execute command >         GenFds -f /home/tp/sauce/uefi/BuildTree/SfcPkg/SfcPkg.fdf --conf=/home/tp/sauce/uefi/BuildTree/Conf -o /home/tp/sauce/uefi/BuildTree/Build/SfcPkg/DEBUG_GCC49 -t GCC49 -b DEBUG -p /home/tp/sauce/uefi/BuildTree/SfcPkg/SfcPkg.dsc -a X64 -D "EFI_SOURCE=/home/tp/sauce/uefi/BuildTree/EdkCompatibilityPkg" -D "EDK_SOURCE=/home/tp/sauce/uefi/BuildTree/EdkCompatibilityPkg" -D "TOOL_CHAIN_TAG=GCC49" -D "TOOLCHAIN=GCC49" -D "TARGET=DEBUG" -D "FAMILY=GCC" -D "WORKSPACE=/home/tp/sauce/uefi/BuildTree" -D "EDK_TOOLS_PATH=/home/tp/sauce/uefi/BuildTree/BaseTools" -D "ARCH=X64" -D "ECP_SOURCE=/home/tp/sauce/uefi/BuildTree/EdkCompatibilityPkg" [/local/sauce/uefi/BuildTree] > > - Failed - > Build end time: 14:07:26, Oct.02 2018 > Build total time: 00:00:04 > > Help? > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel