From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) (using TLSv1 with cipher CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id F0D201A1E34 for ; Thu, 20 Oct 2016 18:01:39 -0700 (PDT) Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga102.jf.intel.com with ESMTP; 20 Oct 2016 18:01:39 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,521,1473145200"; d="scan'208";a="775352259" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by FMSMGA003.fm.intel.com with ESMTP; 20 Oct 2016 18:01:39 -0700 Received: from shsmsx151.ccr.corp.intel.com (10.239.6.50) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.248.2; Thu, 20 Oct 2016 18:01:39 -0700 Received: from shsmsx102.ccr.corp.intel.com ([169.254.2.206]) by SHSMSX151.ccr.corp.intel.com ([169.254.3.96]) with mapi id 14.03.0248.002; Fri, 21 Oct 2016 09:01:35 +0800 From: "Zeng, Star" To: Sean Brogan , "Gao, Liming" , "edk2-devel@lists.01.org" CC: "Zeng, Star" Thread-Topic: [edk2] question about a compressed Ffs3 file inside FFS2 filesystem Thread-Index: AdIqXbpOUluo4wLNRc25Lw1FgoagFwATN4gA///m+4D//tBAQA== Date: Fri, 21 Oct 2016 01:01:34 +0000 Message-ID: <0C09AFA07DD0434D9E2A0C6AEB0483103958FEAA@shsmsx102.ccr.corp.intel.com> References: <4A89E2EF3DFEDB4C8BFDE51014F606A14B497236@shsmsx102.ccr.corp.intel.com> In-Reply-To: Accept-Language: zh-CN, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: question about a compressed Ffs3 file inside FFS2 filesystem 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: Fri, 21 Oct 2016 01:01:40 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Sean, I guess the codes are reporting FvInfo PPI like below that makes the proble= m. PeiServicesInstallFvInfoPpi( NULL, (VOID *)PcdGet32(PcdFlashFvXXXBase), PcdGet32(PcdFlashFvXXXSize), NULL, NULL ); PeiServicesInstallFvInfoPpi() has below comments for FvFormat parameter. @param FvFormat Unique identifier of the format of the memor= y-mapped firmware volume. This parameter is optional= and may be NULL. If NULL is specified, the *EFI_FIRMWARE_FILE_SYSTEM2_GUID* format is a= ssumed. I suggest the codes can be updated to: PeiServicesInstallFvInfoPpi( &(((EFI_FIRMWARE_VOLUME_HEADER *) (UINTN) PcdGet32(PcdFlashFvXXXBas= e))->FileSystemGuid), (VOID *)PcdGet32(PcdFlashFvXXXBase), PcdGet32(PcdFlashFvXXXSize), NULL, NULL ); Thanks, Star -----Original Message----- From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Sean= Brogan Sent: Thursday, October 20, 2016 10:49 PM To: Gao, Liming ; edk2-devel@lists.01.org Subject: Re: [edk2] question about a compressed Ffs3 file inside FFS2 files= ystem Liming, Good catch not sure how that happened. Unfortunately now the problem doesn'= t make sense. The code should have IsFfs3Fv =3D True and the debug message= that indicates the code path which ignores the section should not get exec= uted. I'll look at it again today as the problem still exists, just my ana= lysis is incorrect. =20 Current workaround is to make sure FFS2 sizes and guids are used everywhere= so a problem with FFS3 is lurking somewhere. =20 Thanks Sean > -----Original Message----- > From: Gao, Liming [mailto:liming.gao@intel.com] > Sent: Thursday, October 20, 2016 1:27 AM > To: Sean Brogan ; edk2-devel@lists.01.org > Subject: RE: [edk2] question about a compressed Ffs3 file inside FFS2=20 > filesystem >=20 > Sean: > In MdePkg.dec, gEfiFirmwareFileSystem2Guid and=20 > gEfiFirmwareFileSystem3Guid are defined below. > gEfiFirmwareFileSystem2Guid =3D { 0x8c8ce578, 0x8a3d, 0x4f1c, { 0x9= 9, 0x35, > 0x89, 0x61, 0x85, 0xc3, 0x2d, 0xd3 }} > gEfiFirmwareFileSystem3Guid =3D { 0x5473c07a, 0x3dcb, 0x4dca, { 0xbd= , 0x6f, > 0x1e, 0x96, 0x89, 0xe7, 0x34, 0x9a }} >=20 > From the dump message, the root FV File System ID is=20 > 5473c07a-3dcb-4dca- bd6f-1e9689e7349a. It is FF3 file system. >=20 > Thanks > Liming > > -----Original Message----- > > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf=20 > > Of Sean Brogan > > Sent: Thursday, October 20, 2016 7:09 AM > > To: edk2-devel@lists.01.org > > Subject: [edk2] question about a compressed Ffs3 file inside FFS2=20 > > filesystem > > > > We have a condition that occurs when we boot where we see the=20 > > following message and our boot fails because of it. > > DEBUG ((EFI_D_ERROR, "Found a FFS3 formatted section in a non-FFS3=20 > > formatted FV.\n")); > > > > Which is on line 773 of FwVol.c > > ( https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Core/Pe > > i/FwVol/FwVol.c ) > > > > The condition is caused by a large firmware volume (greater than=20 > > 16mb) that is compressed and put into a smaller FV (less than 16mb). =20 > > My question is why isn't this allowed (seems like a valid scenario). > > Volinfo supports this and decodes binary fine. The PI Vol 3 spec=20 > > has a section 3.2.2 EFI_FIRMWARE_FILE_SYSTEM3_GUID which says=20 > > FileSystem2 doesn't support large files but it seems that the code=20 > > is not taking into account that the section is compressed and=20 > > therefore you can have a large file inside a compressed section inside = a FV with File System2. > > > > Feedback/thoughts/comments/Bug? > > > > Here are some details of my scenario. > > Compressed FV has filesystem =3D=3D 8c8ce578-8a3d-4f1c-9935-896185c32dd= 3 > > (ffs3) > > Non compressed FV has filesystem =3D=3D 5473c07a-3dcb-4dca-bd6f-=20 > > 1e9689e7349a (ffs2) > > > > VolInfo dump of the Non Compressed FV showing the nested/compressed=20 > > FV inside. > > > > Decoding > > VolInfo Version 1.0 Build Build 20909 > > Signature: _FVH (4856465F) > > Attributes: 4FEFF > > EFI_FVB2_READ_DISABLED_CAP > > EFI_FVB2_READ_ENABLED_CAP > > EFI_FVB2_READ_STATUS > > EFI_FVB2_WRITE_DISABLED_CAP > > EFI_FVB2_WRITE_ENABLED_CAP > > EFI_FVB2_WRITE_STATUS > > EFI_FVB2_LOCK_CAP > > EFI_FVB2_LOCK_STATUS > > EFI_FVB2_STICKY_WRITE > > EFI_FVB2_MEMORY_MAPPED > > EFI_FVB2_ERASE_POLARITY > > EFI_FVB2_READ_LOCK_CAP > > EFI_FVB2_READ_LOCK_STATUS > > EFI_FVB2_WRITE_LOCK_CAP > > EFI_FVB2_WRITE_LOCK_STATUS > > EFI_FVB2_ALIGNMENT_16 > > EFI_FVB2_ALIGNMENT_32 > > EFI_FVB2_ALIGNMENT_64 > > EFI_FVB2_ALIGNMENT_128 > > EFI_FVB2_ALIGNMENT_4K > > EFI_FVB2_ALIGNMENT_8K > > EFI_FVB2_ALIGNMENT_16K > > EFI_FVB2_ALIGNMENT_32K > > EFI_FVB2_ALIGNMENT_1M > > EFI_FVB2_ALIGNMENT_2M > > EFI_FVB2_ALIGNMENT_4M > > EFI_FVB2_ALIGNMENT_8M > > EFI_FVB2_ALIGNMENT_256M > > EFI_FVB2_ALIGNMENT_512M > > EFI_FVB2_ALIGNMENT_1G > > EFI_FVB2_ALIGNMENT_2G > > Header Length: 0x00000048 > > File System ID: 5473c07a-3dcb-4dca-bd6f-1e9689e7349a > > Revision: 0x0002 > > Number of Blocks: 0x00000028 > > Block Length: 0x00010000 > > Total Volume Size: 0x00280000 > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > =3D=3D > > File Name: 9E21FD93-9C72-4C15-8C4B-E77F1DB2D792 > > File Offset: 0x00000048 > > File Length: 0x001F3FFD > > File Attributes: 0x00 > > File State: 0xF8 > > EFI_FILE_DATA_VALID > > File Type: 0x0B EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE > > ------------------------------------------------------------ > > Type: EFI_SECTION_GUID_DEFINED > > Size: 0x001F3FE5 > > SectionDefinitionGuid: ee4e5898-3914-4259-9d6e-dc7bd79403cf > > > > DataOffset: 0x0018 > > Attributes: 0x0001 > > ------------------------------------------------------------ > > Type: EFI_SECTION_RAW > > Size: 0x00000FF8 > > ------------------------------------------------------------ > > Type: EFI_SECTION_FIRMWARE_VOLUME_IMAGE > > Size: 0x01010008 > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > > =3D=3D > > > > Thanks > > Sean > > _______________________________________________ > > 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