]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Fix BiosVideo thunk bug about invalid legacy region area.
authorklu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 16 Apr 2009 04:46:18 +0000 (04:46 +0000)
committerklu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 16 Apr 2009 04:46:18 +0000 (04:46 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8099 6f19259b-4bc3-4df7-8a09-765794883524

DuetPkg/BiosVideoThunkDxe/LegacyBiosThunk.c
DuetPkg/DuetPkg.fdf

index e21ab362ef630b70e2d58e38dc842887db75c249..0f02659b6b84eaecb5bbeae8dc0616a67d374885 100644 (file)
@@ -30,26 +30,25 @@ InitializeBiosIntCaller (
   UINT32                RealModeBufferSize;\r
   UINT32                ExtraStackSize;\r
   EFI_PHYSICAL_ADDRESS  LegacyRegionBase;\r
   UINT32                RealModeBufferSize;\r
   UINT32                ExtraStackSize;\r
   EFI_PHYSICAL_ADDRESS  LegacyRegionBase;\r
-  \r
+  UINT32                LegacyRegionSize;\r
   //\r
   // Get LegacyRegion\r
   //\r
   AsmGetThunk16Properties (&RealModeBufferSize, &ExtraStackSize);\r
   //\r
   // Get LegacyRegion\r
   //\r
   AsmGetThunk16Properties (&RealModeBufferSize, &ExtraStackSize);\r
-\r
+  LegacyRegionSize = (((RealModeBufferSize + ExtraStackSize) / EFI_PAGE_SIZE) + 1) * EFI_PAGE_SIZE;\r
   LegacyRegionBase = 0x100000;\r
   Status = gBS->AllocatePages (\r
                   AllocateMaxAddress,\r
                   EfiACPIMemoryNVS,\r
   LegacyRegionBase = 0x100000;\r
   Status = gBS->AllocatePages (\r
                   AllocateMaxAddress,\r
                   EfiACPIMemoryNVS,\r
-                  EFI_SIZE_TO_PAGES(RealModeBufferSize + ExtraStackSize + 200),\r
+                  EFI_SIZE_TO_PAGES(LegacyRegionSize),\r
                   &LegacyRegionBase\r
                   );\r
   ASSERT_EFI_ERROR (Status);\r
   \r
   ThunkContext->RealModeBuffer     = (VOID*)(UINTN)LegacyRegionBase;\r
                   &LegacyRegionBase\r
                   );\r
   ASSERT_EFI_ERROR (Status);\r
   \r
   ThunkContext->RealModeBuffer     = (VOID*)(UINTN)LegacyRegionBase;\r
-  ThunkContext->RealModeBufferSize = EFI_PAGES_TO_SIZE (RealModeBufferSize);\r
-  ThunkContext->ThunkAttributes    = 3;\r
+  ThunkContext->RealModeBufferSize = LegacyRegionSize;\r
+  ThunkContext->ThunkAttributes    = THUNK_ATTRIBUTE_BIG_REAL_MODE|THUNK_ATTRIBUTE_DISABLE_A20_MASK_INT_15;\r
   AsmPrepareThunk16(ThunkContext);\r
   AsmPrepareThunk16(ThunkContext);\r
-  \r
 }\r
 \r
 /**\r
 }\r
 \r
 /**\r
index 5edc962e25544384e17253aef5b02ff3f0fa2817..3a8b3594dde3caef90934c7a3020f785ea7a5a61 100644 (file)
@@ -108,14 +108,14 @@ INF  IntelFrameworkModulePkg/Universal/Console/VgaClassDxe/VgaClassDxe.inf
   # ISA Support\r
 INF  PcAtChipsetPkg/IsaAcpiDxe/IsaAcpi.inf\r
 INF  IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf\r
   # ISA Support\r
 INF  PcAtChipsetPkg/IsaAcpiDxe/IsaAcpi.inf\r
 INF  IntelFrameworkModulePkg/Bus/Isa/IsaBusDxe/IsaBusDxe.inf\r
-#INF  IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf\r
+INF  IntelFrameworkModulePkg/Bus/Isa/IsaSerialDxe/IsaSerialDxe.inf\r
 INF  IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf\r
 INF  IntelFrameworkModulePkg/Bus/Isa/IsaFloppyDxe/IsaFloppyDxe.inf\r
 \r
 INF  MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf\r
 INF  MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf\r
 INF  MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf\r
 INF  IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe.inf\r
 INF  IntelFrameworkModulePkg/Bus/Isa/IsaFloppyDxe/IsaFloppyDxe.inf\r
 \r
 INF  MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf\r
 INF  MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf\r
 INF  MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf\r
-#INF  DuetPkg/BiosVideoThunkDxe/BiosVideo.inf\r
+INF  DuetPkg/BiosVideoThunkDxe/BiosVideo.inf\r
 \r
   # Binary INF file to support toggle among different CPU architectures.\r
 INF  FatBinPkg/EnhancedFatDxe/Fat.inf\r
 \r
   # Binary INF file to support toggle among different CPU architectures.\r
 INF  FatBinPkg/EnhancedFatDxe/Fat.inf\r