public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* question about a compressed Ffs3 file inside FFS2 filesystem
@ 2016-10-19 23:09 Sean Brogan
  2016-10-19 23:39 ` Andrew Fish
  2016-10-20  8:27 ` Gao, Liming
  0 siblings, 2 replies; 13+ messages in thread
From: Sean Brogan @ 2016-10-19 23:09 UTC (permalink / raw)
  To: edk2-devel@lists.01.org

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/FwVol/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?

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


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2016-10-24  2:15 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-19 23:09 question about a compressed Ffs3 file inside FFS2 filesystem Sean Brogan
2016-10-19 23:39 ` Andrew Fish
2016-10-19 23:59   ` valerij zaporogeci
2016-10-19 23:59   ` Sean Brogan
2016-10-20  0:11     ` Andrew Fish
2016-10-20  0:15       ` Kinney, Michael D
2016-10-20  1:50         ` Zeng, Star
2016-10-20  8:27 ` Gao, Liming
2016-10-20 14:49   ` Sean Brogan
2016-10-21  1:01     ` Zeng, Star
2016-10-21 16:39       ` Sean Brogan
2016-10-22 10:41         ` Zeng, Star
2016-10-24  2:15           ` Gao, Liming

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox