- REPORT_STATUS_CODE_WITH_EXTENDED_DATA (\r
- EFI_PROGRESS_CODE,\r
- (EFI_SOFTWARE_DXE_CORE | EFI_SW_PC_INIT_BEGIN),\r
- &DriverEntry->ImageHandle,\r
- sizeof (DriverEntry->ImageHandle)\r
- );\r
-\r
- Status = CoreStartImage (DriverEntry->ImageHandle, NULL, NULL);\r
-\r
- REPORT_STATUS_CODE_WITH_EXTENDED_DATA (\r
- EFI_PROGRESS_CODE,\r
- (EFI_SOFTWARE_DXE_CORE | EFI_SW_PC_INIT_END),\r
- &DriverEntry->ImageHandle,\r
- sizeof (DriverEntry->ImageHandle)\r
- );\r
+ if (DriverEntry->IsFvImage) {\r
+ //\r
+ // Produce a firmware volume block protocol for FvImage so it gets dispatched from. \r
+ //\r
+ Status = CoreProcessFvImageFile (DriverEntry->Fv, DriverEntry->FvHandle, &DriverEntry->FileName);\r
+ } else {\r
+ REPORT_STATUS_CODE_WITH_EXTENDED_DATA (\r
+ EFI_PROGRESS_CODE,\r
+ (EFI_SOFTWARE_DXE_CORE | EFI_SW_PC_INIT_BEGIN),\r
+ &DriverEntry->ImageHandle,\r
+ sizeof (DriverEntry->ImageHandle)\r
+ );\r
+ \r
+ Status = CoreStartImage (DriverEntry->ImageHandle, NULL, NULL);\r
+ \r
+ REPORT_STATUS_CODE_WITH_EXTENDED_DATA (\r
+ EFI_PROGRESS_CODE,\r
+ (EFI_SOFTWARE_DXE_CORE | EFI_SW_PC_INIT_END),\r
+ &DriverEntry->ImageHandle,\r
+ sizeof (DriverEntry->ImageHandle)\r
+ );\r
+ }\r