Skip to content

Commit 8f4c516

Browse files
mintsukiFlyGoat
authored andcommitted
Do not run Legacy16DispatchOprom for VGA OpROM if one isn't present
1 parent 0590877 commit 8f4c516

File tree

1 file changed

+11
-9
lines changed

1 file changed

+11
-9
lines changed

src/csmwrap.c

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -260,15 +260,17 @@ EFI_STATUS efi_main(EFI_HANDLE ImageHandle, EFI_SYSTEM_TABLE *SystemTable)
260260
NULL,
261261
0);
262262

263-
memset(&Regs, 0, sizeof(EFI_IA32_REGISTER_SET));
264-
Regs.X.AX = Legacy16DispatchOprom;
265-
Regs.X.ES = EFI_SEGMENT(&priv.low_stub->vga_oprom_table);
266-
Regs.X.BX = EFI_OFFSET(&priv.low_stub->vga_oprom_table);
267-
LegacyBiosFarCall86(priv.csm_efi_table->Compatibility16CallSegment,
268-
priv.csm_efi_table->Compatibility16CallOffset,
269-
&Regs,
270-
NULL,
271-
0);
263+
if (priv.video_type == CSMWRAP_VIDEO_OPROM) {
264+
memset(&Regs, 0, sizeof(EFI_IA32_REGISTER_SET));
265+
Regs.X.AX = Legacy16DispatchOprom;
266+
Regs.X.ES = EFI_SEGMENT(&priv.low_stub->vga_oprom_table);
267+
Regs.X.BX = EFI_OFFSET(&priv.low_stub->vga_oprom_table);
268+
LegacyBiosFarCall86(priv.csm_efi_table->Compatibility16CallSegment,
269+
priv.csm_efi_table->Compatibility16CallOffset,
270+
&Regs,
271+
NULL,
272+
0);
273+
}
272274

273275
memset(&Regs, 0, sizeof(EFI_IA32_REGISTER_SET));
274276
Regs.X.AX = Legacy16PrepareToBoot;

0 commit comments

Comments
 (0)