From 6c8e40caa950432587b77291a167610d0284d224 Mon Sep 17 00:00:00 2001 From: klu2 Date: Thu, 16 Apr 2009 04:46:18 +0000 Subject: [PATCH] Fix BiosVideo thunk bug about invalid legacy region area. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8099 6f19259b-4bc3-4df7-8a09-765794883524 --- DuetPkg/BiosVideoThunkDxe/LegacyBiosThunk.c | 11 +++++------ DuetPkg/DuetPkg.fdf | 4 ++-- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/DuetPkg/BiosVideoThunkDxe/LegacyBiosThunk.c b/DuetPkg/BiosVideoThunkDxe/LegacyBiosThunk.c index e21ab362ef..0f02659b6b 100644 --- a/DuetPkg/BiosVideoThunkDxe/LegacyBiosThunk.c +++ b/DuetPkg/BiosVideoThunkDxe/LegacyBiosThunk.c @@ -30,26 +30,25 @@ InitializeBiosIntCaller ( UINT32 RealModeBufferSize; UINT32 ExtraStackSize; EFI_PHYSICAL_ADDRESS LegacyRegionBase; - + UINT32 LegacyRegionSize; // // Get LegacyRegion // AsmGetThunk16Properties (&RealModeBufferSize, &ExtraStackSize); - + LegacyRegionSize = (((RealModeBufferSize + ExtraStackSize) / EFI_PAGE_SIZE) + 1) * EFI_PAGE_SIZE; LegacyRegionBase = 0x100000; Status = gBS->AllocatePages ( AllocateMaxAddress, EfiACPIMemoryNVS, - EFI_SIZE_TO_PAGES(RealModeBufferSize + ExtraStackSize + 200), + EFI_SIZE_TO_PAGES(LegacyRegionSize), &LegacyRegionBase ); ASSERT_EFI_ERROR (Status); ThunkContext->RealModeBuffer = (VOID*)(UINTN)LegacyRegionBase; - ThunkContext->RealModeBufferSize = EFI_PAGES_TO_SIZE (RealModeBufferSize); - ThunkContext->ThunkAttributes = 3; + ThunkContext->RealModeBufferSize = LegacyRegionSize; + ThunkContext->ThunkAttributes = THUNK_ATTRIBUTE_BIG_REAL_MODE|THUNK_ATTRIBUTE_DISABLE_A20_MASK_INT_15; AsmPrepareThunk16(ThunkContext); - } /** diff --git a/DuetPkg/DuetPkg.fdf b/DuetPkg/DuetPkg.fdf index 5edc962e25..3a8b3594dd 100644 --- a/DuetPkg/DuetPkg.fdf +++ b/DuetPkg/DuetPkg.fdf @@ -108,14 +108,14 @@ INF IntelFrameworkModulePkg/Universal/Console/VgaClassDxe/VgaClassDxe.inf # ISA Support INF PcAtChipsetPkg/IsaAcpiDxe/IsaAcpi.inf INF IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf -#INF IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf +INF IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf INF IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf INF IntelFrameworkModulePkg/Bus/Isa/IsaFloppyDxe/IsaFloppyDxe.inf INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf -#INF DuetPkg/BiosVideoThunkDxe/BiosVideo.inf +INF DuetPkg/BiosVideoThunkDxe/BiosVideo.inf # Binary INF file to support toggle among different CPU architectures. INF FatBinPkg/EnhancedFatDxe/Fat.inf -- 2.39.2