Sean,

I agree this seems like a reasonable scenario.

Looks like the BaseTools allows generation of this content and the FW code
does not support unwrapping it, so there is a mismatch.

Please enter a Bugzilla issue for this and we can investigate further.

Mike

> -----Original Message-----
> From: edk2-devel [mailto:[email protected]] On Behalf Of Andrew 
> Fish
> Sent: Thursday, October 20, 2016 8:12 AM
> To: Sean Brogan <[email protected]>
> Cc: [email protected]
> Subject: Re: [edk2] question about a compressed Ffs3 file inside FFS2 
> filesystem
> 
> 
> > On Oct 19, 2016, at 4:59 PM, Sean Brogan <[email protected]> wrote:
> >
> > Yes. I think the challenge in the code is the compressed section is a guided
> section and the decompression is all handled transparently.
> > One solution might be that once a section was processed that had attributes 
> > of
> EFI_GUIDED_SECTION_PROCESSING_REQUIRED then the check for filesystems should 
> no
> longer be performed.
> >
> 
> That seems reasonable. Lets see what other people think.
> 
> We can also, independently, bring it up at the UEFI Forum to see if we need to
> clarify the PI spec.
> 
> Thanks,
> 
> Andrew Fish
> 
> > Thanks
> > Sean
> >
> >
> >> -----Original Message-----
> >> From: [email protected] [mailto:[email protected]]
> >> Sent: Wednesday, October 19, 2016 4:40 PM
> >> To: Sean Brogan <[email protected]>
> >> Cc: [email protected]
> >> Subject: Re: [edk2] question about a compressed Ffs3 file inside FFS2
> >> filesystem
> >>
> >>
> >>> On Oct 19, 2016, at 4:09 PM, Sean Brogan <[email protected]>
> >> wrote:
> >>>
> >>> We have a condition that occurs when we boot where we see the following
> >> message and our boot fails because of it.
> >>> DEBUG ((EFI_D_ERROR, "Found a FFS3 formatted section in a non-FFS3
> >>> formatted FV.\n"));
> >>>
> >>> Which is on line 773 of FwVol.c (
> >>>
> >> https://github.com/tianocore/edk2/blob/master/MdeModulePkg/Core/Pei/
> >> Fw
> >>> Vol/FwVol.c )
> >>>
> >>> The condition is caused by a large firmware volume (greater than 16mb)
> >> that is compressed and put into a smaller FV (less than 16mb).  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 has a section 3.2.2
> >> EFI_FIRMWARE_FILE_SYSTEM3_GUID which says FileSystem2 doesn't
> >> support large files but it seems that the code is not taking into account 
> >> that
> >> the section is compressed and therefore you can have a large file inside a
> >> compressed section inside a FV with File System2.
> >>>
> >>> Feedback/thoughts/comments/Bug?
> >>>
> >>
> >> Sean,
> >>
> >> If I understand correctly you are stating that the contents of an 
> >> Encapsulation
> >> section should not have any restrictions on content type. The only error
> >> checking should be that the raw encapsulation section data needs to fit 
> >> into
> >> the file type. That seems reasonable to me? I'm not sure if the PI spec 
> >> makes
> >> some statement that the code is enforcing, or I guess the PI spec could be
> >> vague and people are interpreting it differently.
> >>
> >> Thanks,
> >>
> >> Andrew Fish
> >>
> >>> Here are some details of my scenario.
> >>> Compressed FV has filesystem == 8c8ce578-8a3d-4f1c-9935-896185c32dd3
> >>> (ffs3) Non compressed FV has filesystem ==
> >>> 5473c07a-3dcb-4dca-bd6f-1e9689e7349a (ffs2)
> >>>
> >>> VolInfo dump of the Non Compressed FV showing the nested/compressed
> >> 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
> >>>
> >> ==========================================================
> >> ==
> >>> 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
> >>>
> >> ==========================================================
> >> ==
> >>>
> >>> Thanks
> >>> Sean
> >>> _______________________________________________
> >>> edk2-devel mailing list
> >>> [email protected]
> >>> https://lists.01.org/mailman/listinfo/edk2-devel
> >
> > _______________________________________________
> > edk2-devel mailing list
> > [email protected]
> > https://lists.01.org/mailman/listinfo/edk2-devel
> 
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to