//\r
// Setup BDA and EBDA standard areas before Legacy Boot\r
//\r
- LegacyBiosCompleteBdaBeforeBoot (Private);\r
+ ACCESS_PAGE0_CODE (\r
+ LegacyBiosCompleteBdaBeforeBoot (Private);\r
+ );\r
LegacyBiosCompleteStandardCmosBeforeBoot (Private);\r
\r
//\r
// Use 182/10 to avoid floating point math.\r
//\r
LocalTime = (LocalTime * 182) / 10;\r
- DisableNullDetection ();\r
- BdaPtr = (UINT32 *) (UINTN)0x46C;\r
- *BdaPtr = LocalTime;\r
- EnableNullDetection ();\r
+ ACCESS_PAGE0_CODE (\r
+ BdaPtr = (UINT32 *) (UINTN)0x46C;\r
+ *BdaPtr = LocalTime;\r
+ );\r
\r
//\r
// Shadow PCI ROMs. We must do this near the end since this will kick\r
// set of TIANO vectors) or takes it over.\r
//\r
//\r
- DisableNullDetection ();\r
- BaseVectorMaster = (UINT32 *) (sizeof (UINT32) * PROTECTED_MODE_BASE_VECTOR_MASTER);\r
- for (Index = 0; Index < 8; Index++) {\r
- Private->ThunkSavedInt[Index] = BaseVectorMaster[Index];\r
- if (Private->ThunkSeg == (UINT16) (BaseVectorMaster[Index] >> 16)) {\r
- BaseVectorMaster[Index] = (UINT32) (Private->BiosUnexpectedInt);\r
+ ACCESS_PAGE0_CODE (\r
+ BaseVectorMaster = (UINT32 *) (sizeof (UINT32) * PROTECTED_MODE_BASE_VECTOR_MASTER);\r
+ for (Index = 0; Index < 8; Index++) {\r
+ Private->ThunkSavedInt[Index] = BaseVectorMaster[Index];\r
+ if (Private->ThunkSeg == (UINT16) (BaseVectorMaster[Index] >> 16)) {\r
+ BaseVectorMaster[Index] = (UINT32) (Private->BiosUnexpectedInt);\r
+ }\r
}\r
- }\r
- EnableNullDetection ();\r
+ );\r
\r
ZeroMem (&Regs, sizeof (EFI_IA32_REGISTER_SET));\r
Regs.X.AX = Legacy16Boot;\r
0\r
);\r
\r
- DisableNullDetection ();\r
- BaseVectorMaster = (UINT32 *) (sizeof (UINT32) * PROTECTED_MODE_BASE_VECTOR_MASTER);\r
- for (Index = 0; Index < 8; Index++) {\r
- BaseVectorMaster[Index] = Private->ThunkSavedInt[Index];\r
- }\r
- EnableNullDetection ();\r
+ ACCESS_PAGE0_CODE (\r
+ BaseVectorMaster = (UINT32 *) (sizeof (UINT32) * PROTECTED_MODE_BASE_VECTOR_MASTER);\r
+ for (Index = 0; Index < 8; Index++) {\r
+ BaseVectorMaster[Index] = Private->ThunkSavedInt[Index];\r
+ }\r
+ );\r
}\r
Private->LegacyBootEntered = TRUE;\r
if ((mBootMode == BOOT_LEGACY_OS) || (mBootMode == BOOT_UNCONVENTIONAL_DEVICE)) {\r
//\r
// First entry is 0 to (640k - EBDA)\r
//\r
- DisableNullDetection ();\r
- E820Table[0].BaseAddr = 0;\r
- E820Table[0].Length = (UINT64) ((*(UINT16 *) (UINTN)0x40E) << 4);\r
- E820Table[0].Type = EfiAcpiAddressRangeMemory;\r
- EnableNullDetection ();\r
+ ACCESS_PAGE0_CODE (\r
+ E820Table[0].BaseAddr = 0;\r
+ E820Table[0].Length = (UINT64) ((*(UINT16 *) (UINTN)0x40E) << 4);\r
+ E820Table[0].Type = EfiAcpiAddressRangeMemory;\r
+ );\r
\r
//\r
// Second entry is (640k - EBDA) to 640k\r
UINT16 MachineConfig;\r
DEVICE_PRODUCER_DATA_HEADER *SioPtr;\r
\r
- DisableNullDetection ();\r
-\r
Bda = (BDA_STRUC *) ((UINTN) 0x400);\r
MachineConfig = 0;\r
\r
MachineConfig = (UINT16) (MachineConfig + 0x00 + 0x02 + (SioPtr->MousePresent * 0x04));\r
Bda->MachineConfig = MachineConfig;\r
\r
- EnableNullDetection ();\r
-\r
return EFI_SUCCESS;\r
}\r
\r
\r
Private = LEGACY_BIOS_INSTANCE_FROM_THIS (This);\r
\r
- DisableNullDetection ();\r
-\r
- Bda = (BDA_STRUC *) ((UINTN) 0x400);\r
- LocalLeds = Leds;\r
- Bda->LedStatus = (UINT8) ((Bda->LedStatus &~0x07) | LocalLeds);\r
- LocalLeds = (UINT8) (LocalLeds << 4);\r
- Bda->ShiftStatus = (UINT8) ((Bda->ShiftStatus &~0x70) | LocalLeds);\r
- LocalLeds = (UINT8) (Leds & 0x20);\r
- Bda->KeyboardStatus = (UINT8) ((Bda->KeyboardStatus &~0x20) | LocalLeds);\r
-\r
- EnableNullDetection ();\r
+ ACCESS_PAGE0_CODE (\r
+ Bda = (BDA_STRUC *) ((UINTN) 0x400);\r
+ LocalLeds = Leds;\r
+ Bda->LedStatus = (UINT8) ((Bda->LedStatus &~0x07) | LocalLeds);\r
+ LocalLeds = (UINT8) (LocalLeds << 4);\r
+ Bda->ShiftStatus = (UINT8) ((Bda->ShiftStatus &~0x70) | LocalLeds);\r
+ LocalLeds = (UINT8) (Leds & 0x20);\r
+ Bda->KeyboardStatus = (UINT8) ((Bda->KeyboardStatus &~0x20) | LocalLeds);\r
+ );\r
\r
//\r
// Call into Legacy16 code to allow it to do any processing\r
// to large capacity drives\r
// CMOS 14 = BDA 40:10 plus bit 3(display enabled)\r
//\r
- DisableNullDetection ();\r
- Bda = (UINT8)(*((UINT8 *)((UINTN)0x410)) | BIT3);\r
- EnableNullDetection ();\r
+ ACCESS_PAGE0_CODE (\r
+ Bda = (UINT8)(*((UINT8 *)((UINTN)0x410)) | BIT3);\r
+ );\r
\r
//\r
// Force display enabled\r