So, I managed to solve this issue by adding my file to the [FV.DXEFV] section. I don't know why my files aren't found when I add them in [FV.FVMAIN_COMPACT] section.


On Thu, Mar 2, 2023 at 3:16 PM Alireza Banejad via groups.io <alibanejad1376=gmail.com@groups.io> wrote:
Any thoughts?

On Tue, Feb 28, 2023 at 3:32 PM Alireza Banejad via groups.io <alibanejad1376=gmail.com@groups.io> wrote:
Hi everyone,
I have this bmp file which I defined in the FV.FVMAIN_COMPACT section of the OvmfPkgX64.fdf file. when I get the a hexdump on the built firmware (OVMF.fd) I can see the file inside it. but whenever I call the the GetSectionFromAnyFv() function from a Application it fails to find the file.
This is how I defined the file in OvmfX64.fdf:
____________________________________
[FV.FVMAIN_COMPACT]
FvNameGuid         = 48DB5E17-707C-472D-91CD-1613E7EF51B0
FvAlignment        = 16
ERASE_POLARITY     = 1
MEMORY_MAPPED      = TRUE
STICKY_WRITE       = TRUE
LOCK_CAP           = TRUE
LOCK_STATUS        = TRUE
WRITE_DISABLED_CAP = TRUE
WRITE_ENABLED_CAP  = TRUE
WRITE_STATUS       = TRUE
WRITE_LOCK_CAP     = TRUE
WRITE_LOCK_STATUS  = TRUE
READ_DISABLED_CAP  = TRUE
READ_ENABLED_CAP   = TRUE
READ_STATUS        = TRUE
READ_LOCK_CAP      = TRUE
READ_LOCK_STATUS   = TRUE




FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {
   SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE {
     #
     # These firmware volumes will have files placed in them uncompressed,
     # and then both firmware volumes will be compressed in a single
     # compression operation in order to achieve better overall compression.
     #
     SECTION FV_IMAGE = PEIFV
     SECTION FV_IMAGE = DXEFV
   }
 }
  FILE FREEFORM = AFDAEAB5-3F81-4E93-8EE3-228434BA283D {
    SECTION RAW = OemPkg/FrontPage/Resources/FrontpageLogo.bmp
  }



!include FvmainCompactScratchEnd.fdf.inc
__________________________________________

and this is how I am using the GetSectionFromAnyFv() function:
  Status = GetSectionFromAnyFv (
             FileGuid,
             EFI_SECTION_RAW,
             0,
             (VOID **)&BMPData,
             &BMPDataSize
             );
So there's nothing much to it, yet I still don't know why it fails to find the file. I also must mention that I checked the GUID being passed to the function and the GUID of the file, they are both the same. I still don't know what's going on