#define BOOT_EFI_OS 1\r
#define BOOT_UNCONVENTIONAL_DEVICE 2\r
\r
-UINT32 mLoadOptionsSize = 0;\r
-UINTN mBootMode = BOOT_LEGACY_OS;\r
-VOID *mLoadOptions = NULL;\r
-BBS_BBS_DEVICE_PATH *mBbsDevicePathPtr = NULL;\r
-BBS_BBS_DEVICE_PATH mBbsDevicePathNode;\r
-UDC_ATTRIBUTES mAttributes = { 0, 0, 0, 0 };\r
-UINTN mBbsEntry = 0;\r
-VOID *mBeerData = NULL;\r
-VOID *mServiceAreaData = NULL;\r
-UINT64 mLowWater = 0xffffffffffffffffULL;\r
-\r
-extern BBS_TABLE *mBbsTable;\r
+UINT32 mLoadOptionsSize = 0;\r
+UINTN mBootMode = BOOT_LEGACY_OS;\r
+VOID *mLoadOptions = NULL;\r
+BBS_BBS_DEVICE_PATH *mBbsDevicePathPtr = NULL;\r
+BBS_BBS_DEVICE_PATH mBbsDevicePathNode;\r
+UDC_ATTRIBUTES mAttributes = { 0, 0, 0, 0 };\r
+UINTN mBbsEntry = 0;\r
+VOID *mBeerData = NULL;\r
+VOID *mServiceAreaData = NULL;\r
+UINT64 mLowWater = 0xffffffffffffffffULL;\r
+\r
+extern BBS_TABLE *mBbsTable;\r
\r
extern VOID *mRuntimeSmbiosEntryPoint;\r
extern EFI_PHYSICAL_ADDRESS mReserveSmbiosEntryPoint;\r
**/\r
VOID\r
PrintBbsTable (\r
- IN BBS_TABLE *BbsTable\r
+ IN BBS_TABLE *BbsTable\r
)\r
{\r
- UINT16 Index;\r
- UINT16 SubIndex;\r
- CHAR8 *String;\r
+ UINT16 Index;\r
+ UINT16 SubIndex;\r
+ CHAR8 *String;\r
\r
DEBUG ((DEBUG_INFO, "\n"));\r
DEBUG ((DEBUG_INFO, " NO Prio bb/dd/ff cl/sc Type Stat segm:offs mfgs:mfgo dess:deso\n"));\r
DEBUG ((\r
DEBUG_INFO,\r
" %02x: %04x %02x/%02x/%02x %02x/%02x %04x %04x",\r
- (UINTN) Index,\r
- (UINTN) BbsTable[Index].BootPriority,\r
- (UINTN) BbsTable[Index].Bus,\r
- (UINTN) BbsTable[Index].Device,\r
- (UINTN) BbsTable[Index].Function,\r
- (UINTN) BbsTable[Index].Class,\r
- (UINTN) BbsTable[Index].SubClass,\r
- (UINTN) BbsTable[Index].DeviceType,\r
- (UINTN) * (UINT16 *) &BbsTable[Index].StatusFlags\r
+ (UINTN)Index,\r
+ (UINTN)BbsTable[Index].BootPriority,\r
+ (UINTN)BbsTable[Index].Bus,\r
+ (UINTN)BbsTable[Index].Device,\r
+ (UINTN)BbsTable[Index].Function,\r
+ (UINTN)BbsTable[Index].Class,\r
+ (UINTN)BbsTable[Index].SubClass,\r
+ (UINTN)BbsTable[Index].DeviceType,\r
+ (UINTN)*(UINT16 *)&BbsTable[Index].StatusFlags\r
));\r
DEBUG ((\r
DEBUG_INFO,\r
" %04x:%04x %04x:%04x %04x:%04x",\r
- (UINTN) BbsTable[Index].BootHandlerSegment,\r
- (UINTN) BbsTable[Index].BootHandlerOffset,\r
- (UINTN) BbsTable[Index].MfgStringSegment,\r
- (UINTN) BbsTable[Index].MfgStringOffset,\r
- (UINTN) BbsTable[Index].DescStringSegment,\r
- (UINTN) BbsTable[Index].DescStringOffset\r
+ (UINTN)BbsTable[Index].BootHandlerSegment,\r
+ (UINTN)BbsTable[Index].BootHandlerOffset,\r
+ (UINTN)BbsTable[Index].MfgStringSegment,\r
+ (UINTN)BbsTable[Index].MfgStringOffset,\r
+ (UINTN)BbsTable[Index].DescStringSegment,\r
+ (UINTN)BbsTable[Index].DescStringOffset\r
));\r
\r
//\r
//\r
String = (CHAR8 *)(((UINTN)BbsTable[Index].DescStringSegment << 4) + BbsTable[Index].DescStringOffset);\r
if (String != NULL) {\r
- DEBUG ((DEBUG_INFO," ("));\r
+ DEBUG ((DEBUG_INFO, " ("));\r
for (SubIndex = 0; String[SubIndex] != 0; SubIndex++) {\r
DEBUG ((DEBUG_INFO, "%c", String[SubIndex]));\r
}\r
- DEBUG ((DEBUG_INFO,")"));\r
+\r
+ DEBUG ((DEBUG_INFO, ")"));\r
}\r
- DEBUG ((DEBUG_INFO,"\n"));\r
+\r
+ DEBUG ((DEBUG_INFO, "\n"));\r
}\r
\r
DEBUG ((DEBUG_INFO, "\n"));\r
\r
- return ;\r
+ return;\r
}\r
\r
/**\r
**/\r
VOID\r
PrintHddInfo (\r
- IN HDD_INFO *HddInfo\r
+ IN HDD_INFO *HddInfo\r
)\r
{\r
- UINTN Index;\r
+ UINTN Index;\r
\r
DEBUG ((DEBUG_INFO, "\n"));\r
for (Index = 0; Index < MAX_IDE_CONTROLLER; Index++) {\r
\r
DEBUG ((DEBUG_INFO, "\n"));\r
\r
- return ;\r
+ return;\r
}\r
\r
/**\r
VOID\r
)\r
{\r
- EFI_STATUS Status;\r
- UINTN Index;\r
- EFI_HANDLE *Handles;\r
- UINTN HandleNum;\r
- EFI_PCI_IO_PROTOCOL *PciIo;\r
- UINT8 Interrupt[2];\r
- UINTN Segment;\r
- UINTN Bus;\r
- UINTN Device;\r
- UINTN Function;\r
+ EFI_STATUS Status;\r
+ UINTN Index;\r
+ EFI_HANDLE *Handles;\r
+ UINTN HandleNum;\r
+ EFI_PCI_IO_PROTOCOL *PciIo;\r
+ UINT8 Interrupt[2];\r
+ UINTN Segment;\r
+ UINTN Bus;\r
+ UINTN Device;\r
+ UINTN Function;\r
\r
gBS->LocateHandleBuffer (\r
ByProtocol,\r
DEBUG ((DEBUG_INFO, " bb/dd/ff interrupt line interrupt pin\n"));\r
DEBUG ((DEBUG_INFO, "======================================\n"));\r
for (Index = 0; Index < HandleNum; Index++) {\r
- Status = gBS->HandleProtocol (Handles[Index], &gEfiPciIoProtocolGuid, (VOID **) &PciIo);\r
+ Status = gBS->HandleProtocol (Handles[Index], &gEfiPciIoProtocolGuid, (VOID **)&PciIo);\r
if (!EFI_ERROR (Status)) {\r
Status = PciIo->Pci.Read (\r
PciIo,\r
Interrupt\r
);\r
}\r
+\r
if (!EFI_ERROR (Status)) {\r
Status = PciIo->GetLocation (\r
PciIo,\r
&Function\r
);\r
}\r
+\r
if (!EFI_ERROR (Status)) {\r
- DEBUG ((DEBUG_INFO, " %02x/%02x/%02x 0x%02x 0x%02x\n",\r
- Bus, Device, Function, Interrupt[0], Interrupt[1]));\r
+ DEBUG ((\r
+ DEBUG_INFO,\r
+ " %02x/%02x/%02x 0x%02x 0x%02x\n",\r
+ Bus,\r
+ Device,\r
+ Function,\r
+ Interrupt[0],\r
+ Interrupt[1]\r
+ ));\r
}\r
}\r
+\r
DEBUG ((DEBUG_INFO, "\n"));\r
\r
if (Handles != NULL) {\r
**/\r
VOID\r
UpdateIdentifyDriveData (\r
- IN UINT8 *IdentifyDriveData\r
+ IN UINT8 *IdentifyDriveData\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
UpdateSioData (\r
- IN LEGACY_BIOS_INSTANCE *Private\r
+ IN LEGACY_BIOS_INSTANCE *Private\r
)\r
{\r
- EFI_STATUS Status;\r
- UINTN Index;\r
- UINTN Index1;\r
- UINT8 LegacyInterrupts[16];\r
- EFI_LEGACY_IRQ_ROUTING_ENTRY *RoutingTable;\r
- UINTN RoutingTableEntries;\r
- EFI_LEGACY_IRQ_PRIORITY_TABLE_ENTRY *IrqPriorityTable;\r
- UINTN NumberPriorityEntries;\r
- EFI_TO_COMPATIBILITY16_BOOT_TABLE *EfiToLegacy16BootTable;\r
- UINT8 HddIrq;\r
- UINT16 LegacyInt;\r
- UINT16 LegMask;\r
- UINT32 Register;\r
- UINTN HandleCount;\r
- EFI_HANDLE *HandleBuffer;\r
- EFI_ISA_IO_PROTOCOL *IsaIo;\r
-\r
- LegacyInt = 0;\r
- HandleBuffer = NULL;\r
-\r
- EfiToLegacy16BootTable = &Private->IntThunk->EfiToLegacy16BootTable;\r
+ EFI_STATUS Status;\r
+ UINTN Index;\r
+ UINTN Index1;\r
+ UINT8 LegacyInterrupts[16];\r
+ EFI_LEGACY_IRQ_ROUTING_ENTRY *RoutingTable;\r
+ UINTN RoutingTableEntries;\r
+ EFI_LEGACY_IRQ_PRIORITY_TABLE_ENTRY *IrqPriorityTable;\r
+ UINTN NumberPriorityEntries;\r
+ EFI_TO_COMPATIBILITY16_BOOT_TABLE *EfiToLegacy16BootTable;\r
+ UINT8 HddIrq;\r
+ UINT16 LegacyInt;\r
+ UINT16 LegMask;\r
+ UINT32 Register;\r
+ UINTN HandleCount;\r
+ EFI_HANDLE *HandleBuffer;\r
+ EFI_ISA_IO_PROTOCOL *IsaIo;\r
+\r
+ LegacyInt = 0;\r
+ HandleBuffer = NULL;\r
+\r
+ EfiToLegacy16BootTable = &Private->IntThunk->EfiToLegacy16BootTable;\r
LegacyBiosBuildSioData (Private);\r
SetMem (LegacyInterrupts, sizeof (LegacyInterrupts), 0);\r
\r
}\r
\r
Private->LegacyBiosPlatform->GetRoutingTable (\r
- Private->LegacyBiosPlatform,\r
- (VOID *) &RoutingTable,\r
- &RoutingTableEntries,\r
- NULL,\r
- NULL,\r
- (VOID **) &IrqPriorityTable,\r
- &NumberPriorityEntries\r
- );\r
+ Private->LegacyBiosPlatform,\r
+ (VOID *)&RoutingTable,\r
+ &RoutingTableEntries,\r
+ NULL,\r
+ NULL,\r
+ (VOID **)&IrqPriorityTable,\r
+ &NumberPriorityEntries\r
+ );\r
//\r
// Remove legacy interrupts from the list of PCI interrupts available.\r
//\r
for (Index = 0; Index <= 0x0b; Index++) {\r
for (Index1 = 0; Index1 <= NumberPriorityEntries; Index1++) {\r
if (LegacyInterrupts[Index] != 0) {\r
- LegacyInt = (UINT16) (LegacyInt | (1 << LegacyInterrupts[Index]));\r
+ LegacyInt = (UINT16)(LegacyInt | (1 << LegacyInterrupts[Index]));\r
if (LegacyInterrupts[Index] == IrqPriorityTable[Index1].Irq) {\r
IrqPriorityTable[Index1].Used = LEGACY_USED;\r
}\r
}\r
\r
Private->Legacy8259->GetMask (\r
- Private->Legacy8259,\r
- &LegMask,\r
- NULL,\r
- NULL,\r
- NULL\r
- );\r
+ Private->Legacy8259,\r
+ &LegMask,\r
+ NULL,\r
+ NULL,\r
+ NULL\r
+ );\r
\r
//\r
// Set SIO interrupts and disable mouse. Let mouse driver\r
// re-enable it.\r
//\r
- LegMask = (UINT16) ((LegMask &~LegacyInt) | 0x1000);\r
+ LegMask = (UINT16)((LegMask &~LegacyInt) | 0x1000);\r
Private->Legacy8259->SetMask (\r
- Private->Legacy8259,\r
- &LegMask,\r
- NULL,\r
- NULL,\r
- NULL\r
- );\r
+ Private->Legacy8259,\r
+ &LegMask,\r
+ NULL,\r
+ NULL,\r
+ NULL\r
+ );\r
\r
//\r
// Disable mouse in keyboard controller\r
//\r
Register = 0xA7;\r
- Status = gBS->LocateHandleBuffer (\r
- ByProtocol,\r
- &gEfiIsaIoProtocolGuid,\r
- NULL,\r
- &HandleCount,\r
- &HandleBuffer\r
- );\r
+ Status = gBS->LocateHandleBuffer (\r
+ ByProtocol,\r
+ &gEfiIsaIoProtocolGuid,\r
+ NULL,\r
+ &HandleCount,\r
+ &HandleBuffer\r
+ );\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
Status = gBS->HandleProtocol (\r
HandleBuffer[Index],\r
&gEfiIsaIoProtocolGuid,\r
- (VOID **) &IsaIo\r
+ (VOID **)&IsaIo\r
);\r
ASSERT_EFI_ERROR (Status);\r
IsaIo->Io.Write (IsaIo, EfiIsaIoWidthUint8, 0x64, 1, &Register);\r
-\r
}\r
\r
if (HandleBuffer != NULL) {\r
}\r
\r
return EFI_SUCCESS;\r
-\r
}\r
\r
/**\r
**/\r
EFI_STATUS\r
CalculateIdentifyDriveChecksum (\r
- IN UINT8 *IdentifyDriveData,\r
- OUT UINT8 *Checksum\r
+ IN UINT8 *IdentifyDriveData,\r
+ OUT UINT8 *Checksum\r
)\r
{\r
- UINTN Index;\r
- UINT8 LocalChecksum;\r
+ UINTN Index;\r
+ UINT8 LocalChecksum;\r
+\r
LocalChecksum = 0;\r
*Checksum = 0;\r
if (IdentifyDriveData[510] != 0xA5) {\r
}\r
\r
for (Index = 0; Index < 512; Index++) {\r
- LocalChecksum = (UINT8) (LocalChecksum + IdentifyDriveData[Index]);\r
+ LocalChecksum = (UINT8)(LocalChecksum + IdentifyDriveData[Index]);\r
}\r
\r
*Checksum = LocalChecksum;\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Identify drive data must be updated to actual parameters before boot.\r
\r
**/\r
VOID\r
UpdateIdentifyDriveData (\r
- IN UINT8 *IdentifyDriveData\r
+ IN UINT8 *IdentifyDriveData\r
)\r
{\r
UINT16 NumberCylinders;\r
// Status indicates if Integrity byte is correct. Checksum should be\r
// 0 if valid.\r
//\r
- ReadInfo = (ATAPI_IDENTIFY *) IdentifyDriveData;\r
- Status = CalculateIdentifyDriveChecksum (IdentifyDriveData, &OriginalChecksum);\r
+ ReadInfo = (ATAPI_IDENTIFY *)IdentifyDriveData;\r
+ Status = CalculateIdentifyDriveChecksum (IdentifyDriveData, &OriginalChecksum);\r
if (OriginalChecksum != 0) {\r
Status = EFI_SECURITY_VIOLATION;\r
}\r
+\r
//\r
// If NumberCylinders = 0 then do data(Controller present but don drive attached).\r
//\r
NumberCylinders = ReadInfo->Raw[1];\r
if (NumberCylinders != 0) {\r
- ReadInfo->Raw[54] = NumberCylinders;\r
+ ReadInfo->Raw[54] = NumberCylinders;\r
\r
- NumberHeads = ReadInfo->Raw[3];\r
- ReadInfo->Raw[55] = NumberHeads;\r
+ NumberHeads = ReadInfo->Raw[3];\r
+ ReadInfo->Raw[55] = NumberHeads;\r
\r
- NumberSectorsTrack = ReadInfo->Raw[6];\r
- ReadInfo->Raw[56] = NumberSectorsTrack;\r
+ NumberSectorsTrack = ReadInfo->Raw[6];\r
+ ReadInfo->Raw[56] = NumberSectorsTrack;\r
\r
//\r
// Copy Multisector info and set valid bit.\r
//\r
- ReadInfo->Raw[59] = (UINT16) (ReadInfo->Raw[47] + 0x100);\r
- CapacityInSectors = (UINT32) ((UINT32) (NumberCylinders) * (UINT32) (NumberHeads) * (UINT32) (NumberSectorsTrack));\r
- ReadInfo->Raw[57] = (UINT16) (CapacityInSectors >> 16);\r
- ReadInfo->Raw[58] = (UINT16) (CapacityInSectors & 0xffff);\r
+ ReadInfo->Raw[59] = (UINT16)(ReadInfo->Raw[47] + 0x100);\r
+ CapacityInSectors = (UINT32)((UINT32)(NumberCylinders) * (UINT32)(NumberHeads) * (UINT32)(NumberSectorsTrack));\r
+ ReadInfo->Raw[57] = (UINT16)(CapacityInSectors >> 16);\r
+ ReadInfo->Raw[58] = (UINT16)(CapacityInSectors & 0xffff);\r
if (Status == EFI_SUCCESS) {\r
//\r
// Forece checksum byte to 0 and get new checksum.\r
//\r
// Force new checksum such that sum is 0.\r
//\r
- FinalChecksum = (UINT8) ((UINT8)0 - FinalChecksum);\r
- ReadInfo->Raw[255] = (UINT16) (ReadInfo->Raw[255] | (FinalChecksum << 8));\r
+ FinalChecksum = (UINT8)((UINT8)0 - FinalChecksum);\r
+ ReadInfo->Raw[255] = (UINT16)(ReadInfo->Raw[255] | (FinalChecksum << 8));\r
}\r
}\r
}\r
**/\r
VOID\r
UpdateAllIdentifyDriveData (\r
- IN LEGACY_BIOS_INSTANCE *Private\r
+ IN LEGACY_BIOS_INSTANCE *Private\r
)\r
{\r
UINTN Index;\r
// Each controller can have 2 devices. Update for each device\r
//\r
if ((HddInfo[Index].Status & HDD_MASTER_IDE) != 0) {\r
- UpdateIdentifyDriveData ((UINT8 *) (&HddInfo[Index].IdentifyDrive[0].Raw[0]));\r
+ UpdateIdentifyDriveData ((UINT8 *)(&HddInfo[Index].IdentifyDrive[0].Raw[0]));\r
}\r
\r
if ((HddInfo[Index].Status & HDD_SLAVE_IDE) != 0) {\r
- UpdateIdentifyDriveData ((UINT8 *) (&HddInfo[Index].IdentifyDrive[1].Raw[0]));\r
+ UpdateIdentifyDriveData ((UINT8 *)(&HddInfo[Index].IdentifyDrive[1].Raw[0]));\r
}\r
}\r
}\r
**/\r
VOID\r
EnableIdeController (\r
- IN LEGACY_BIOS_INSTANCE *Private\r
+ IN LEGACY_BIOS_INSTANCE *Private\r
)\r
{\r
- EFI_PCI_IO_PROTOCOL *PciIo;\r
- EFI_STATUS Status;\r
- EFI_HANDLE IdeController;\r
- UINT8 ByteBuffer;\r
- UINTN HandleCount;\r
- EFI_HANDLE *HandleBuffer;\r
+ EFI_PCI_IO_PROTOCOL *PciIo;\r
+ EFI_STATUS Status;\r
+ EFI_HANDLE IdeController;\r
+ UINT8 ByteBuffer;\r
+ UINTN HandleCount;\r
+ EFI_HANDLE *HandleBuffer;\r
\r
Status = Private->LegacyBiosPlatform->GetPlatformHandle (\r
Private->LegacyBiosPlatform,\r
);\r
if (!EFI_ERROR (Status)) {\r
IdeController = HandleBuffer[0];\r
- Status = gBS->HandleProtocol (\r
- IdeController,\r
- &gEfiPciIoProtocolGuid,\r
- (VOID **) &PciIo\r
- );\r
+ Status = gBS->HandleProtocol (\r
+ IdeController,\r
+ &gEfiPciIoProtocolGuid,\r
+ (VOID **)&PciIo\r
+ );\r
ByteBuffer = 0x1f;\r
if (!EFI_ERROR (Status)) {\r
PciIo->Pci.Write (PciIo, EfiPciIoWidthUint8, 0x04, 1, &ByteBuffer);\r
}\r
}\r
\r
-\r
/**\r
Enable ide controller. This gets disabled when LegacyBoot.c is about\r
to run the Option ROMs.\r
**/\r
VOID\r
EnableAllControllers (\r
- IN LEGACY_BIOS_INSTANCE *Private\r
+ IN LEGACY_BIOS_INSTANCE *Private\r
)\r
{\r
- UINTN HandleCount;\r
- EFI_HANDLE *HandleBuffer;\r
- UINTN Index;\r
- EFI_PCI_IO_PROTOCOL *PciIo;\r
- PCI_TYPE01 PciConfigHeader;\r
- EFI_STATUS Status;\r
+ UINTN HandleCount;\r
+ EFI_HANDLE *HandleBuffer;\r
+ UINTN Index;\r
+ EFI_PCI_IO_PROTOCOL *PciIo;\r
+ PCI_TYPE01 PciConfigHeader;\r
+ EFI_STATUS Status;\r
\r
//\r
//\r
Status = gBS->HandleProtocol (\r
HandleBuffer[Index],\r
&gEfiPciIoProtocolGuid,\r
- (VOID **) &PciIo\r
+ (VOID **)&PciIo\r
);\r
ASSERT_EFI_ERROR (Status);\r
\r
PciIo->Pci.Read (\r
- PciIo,\r
- EfiPciIoWidthUint32,\r
- 0,\r
- sizeof (PciConfigHeader) / sizeof (UINT32),\r
- &PciConfigHeader\r
- );\r
+ PciIo,\r
+ EfiPciIoWidthUint32,\r
+ 0,\r
+ sizeof (PciConfigHeader) / sizeof (UINT32),\r
+ &PciConfigHeader\r
+ );\r
\r
//\r
// We do not enable PPB here. This is for HotPlug Consideration.\r
IS_PCI_IDE (&PciConfigHeader) ||\r
IS_PCI_P2P (&PciConfigHeader) ||\r
IS_PCI_P2P_SUB (&PciConfigHeader) ||\r
- IS_PCI_LPC (&PciConfigHeader) )) {\r
-\r
+ IS_PCI_LPC (&PciConfigHeader)))\r
+ {\r
PciConfigHeader.Hdr.Command |= 0x1f;\r
\r
PciIo->Pci.Write (PciIo, EfiPciIoWidthUint32, 4, 1, &PciConfigHeader.Hdr.Command);\r
**/\r
EFI_STATUS\r
LegacyGetDataOrTable (\r
- IN EFI_LEGACY_BIOS_PROTOCOL *This,\r
- IN EFI_GET_PLATFORM_INFO_MODE Id\r
+ IN EFI_LEGACY_BIOS_PROTOCOL *This,\r
+ IN EFI_GET_PLATFORM_INFO_MODE Id\r
)\r
{\r
- VOID *Table;\r
- UINT32 TablePtr;\r
- UINTN TableSize;\r
- UINTN Alignment;\r
- UINTN Location;\r
- EFI_STATUS Status;\r
- EFI_LEGACY_BIOS_PLATFORM_PROTOCOL *LegacyBiosPlatform;\r
- EFI_COMPATIBILITY16_TABLE *Legacy16Table;\r
- EFI_IA32_REGISTER_SET Regs;\r
- LEGACY_BIOS_INSTANCE *Private;\r
+ VOID *Table;\r
+ UINT32 TablePtr;\r
+ UINTN TableSize;\r
+ UINTN Alignment;\r
+ UINTN Location;\r
+ EFI_STATUS Status;\r
+ EFI_LEGACY_BIOS_PLATFORM_PROTOCOL *LegacyBiosPlatform;\r
+ EFI_COMPATIBILITY16_TABLE *Legacy16Table;\r
+ EFI_IA32_REGISTER_SET Regs;\r
+ LEGACY_BIOS_INSTANCE *Private;\r
\r
- Private = LEGACY_BIOS_INSTANCE_FROM_THIS (This);\r
+ Private = LEGACY_BIOS_INSTANCE_FROM_THIS (This);\r
\r
- LegacyBiosPlatform = Private->LegacyBiosPlatform;\r
- Legacy16Table = Private->Legacy16Table;\r
+ LegacyBiosPlatform = Private->LegacyBiosPlatform;\r
+ Legacy16Table = Private->Legacy16Table;\r
\r
//\r
// Phase 1 - get an address allocated in 16-bit code\r
//\r
while (TRUE) {\r
switch (Id) {\r
- case EfiGetPlatformBinaryMpTable:\r
- case EfiGetPlatformBinaryOemIntData:\r
- case EfiGetPlatformBinaryOem32Data:\r
- case EfiGetPlatformBinaryOem16Data:\r
+ case EfiGetPlatformBinaryMpTable:\r
+ case EfiGetPlatformBinaryOemIntData:\r
+ case EfiGetPlatformBinaryOem32Data:\r
+ case EfiGetPlatformBinaryOem16Data:\r
{\r
Status = LegacyBiosPlatform->GetPlatformInfo (\r
- LegacyBiosPlatform,\r
- Id,\r
- (VOID *) &Table,\r
- &TableSize,\r
- &Location,\r
- &Alignment,\r
- 0,\r
- 0\r
- );\r
+ LegacyBiosPlatform,\r
+ Id,\r
+ (VOID *)&Table,\r
+ &TableSize,\r
+ &Location,\r
+ &Alignment,\r
+ 0,\r
+ 0\r
+ );\r
DEBUG ((DEBUG_INFO, "LegacyGetDataOrTable - ID: %x, %r\n", (UINTN)Id, Status));\r
DEBUG ((DEBUG_INFO, " Table - %x, Size - %x, Location - %x, Alignment - %x\n", (UINTN)Table, (UINTN)TableSize, (UINTN)Location, (UINTN)Alignment));\r
break;\r
}\r
\r
- default:\r
+ default:\r
{\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
ZeroMem (&Regs, sizeof (EFI_IA32_REGISTER_SET));\r
Regs.X.AX = Legacy16GetTableAddress;\r
- Regs.X.CX = (UINT16) TableSize;\r
- Regs.X.BX = (UINT16) Location;\r
- Regs.X.DX = (UINT16) Alignment;\r
+ Regs.X.CX = (UINT16)TableSize;\r
+ Regs.X.BX = (UINT16)Location;\r
+ Regs.X.DX = (UINT16)Alignment;\r
Private->LegacyBios.FarCall86 (\r
- This,\r
- Private->Legacy16CallSegment,\r
- Private->Legacy16CallOffset,\r
- &Regs,\r
- NULL,\r
- 0\r
- );\r
+ This,\r
+ Private->Legacy16CallSegment,\r
+ Private->Legacy16CallOffset,\r
+ &Regs,\r
+ NULL,\r
+ 0\r
+ );\r
\r
if (Regs.X.AX != 0) {\r
DEBUG ((DEBUG_ERROR, "Table ID %x length insufficient\n", Id));\r
break;\r
}\r
}\r
+\r
//\r
// Phase 2 Call routine second time with address to allow address adjustment\r
//\r
Status = LegacyBiosPlatform->GetPlatformInfo (\r
- LegacyBiosPlatform,\r
- Id,\r
- (VOID *) &Table,\r
- &TableSize,\r
- &Location,\r
- &Alignment,\r
- Regs.X.DS,\r
- Regs.X.BX\r
- );\r
+ LegacyBiosPlatform,\r
+ Id,\r
+ (VOID *)&Table,\r
+ &TableSize,\r
+ &Location,\r
+ &Alignment,\r
+ Regs.X.DS,\r
+ Regs.X.BX\r
+ );\r
switch (Id) {\r
- case EfiGetPlatformBinaryMpTable:\r
+ case EfiGetPlatformBinaryMpTable:\r
{\r
- Legacy16Table->MpTablePtr = (UINT32) (Regs.X.DS * 16 + Regs.X.BX);\r
- Legacy16Table->MpTableLength = (UINT32)TableSize;\r
+ Legacy16Table->MpTablePtr = (UINT32)(Regs.X.DS * 16 + Regs.X.BX);\r
+ Legacy16Table->MpTableLength = (UINT32)TableSize;\r
DEBUG ((DEBUG_INFO, "MP table in legacy region - %x\n", (UINTN)Legacy16Table->MpTablePtr));\r
break;\r
}\r
\r
- case EfiGetPlatformBinaryOemIntData:\r
+ case EfiGetPlatformBinaryOemIntData:\r
{\r
-\r
- Legacy16Table->OemIntSegment = Regs.X.DS;\r
- Legacy16Table->OemIntOffset = Regs.X.BX;\r
+ Legacy16Table->OemIntSegment = Regs.X.DS;\r
+ Legacy16Table->OemIntOffset = Regs.X.BX;\r
DEBUG ((DEBUG_INFO, "OemInt table in legacy region - %04x:%04x\n", (UINTN)Legacy16Table->OemIntSegment, (UINTN)Legacy16Table->OemIntOffset));\r
break;\r
}\r
\r
- case EfiGetPlatformBinaryOem32Data:\r
+ case EfiGetPlatformBinaryOem32Data:\r
{\r
Legacy16Table->Oem32Segment = Regs.X.DS;\r
Legacy16Table->Oem32Offset = Regs.X.BX;\r
break;\r
}\r
\r
- case EfiGetPlatformBinaryOem16Data:\r
+ case EfiGetPlatformBinaryOem16Data:\r
{\r
//\r
// Legacy16Table->Oem16Segment = Regs.X.DS;\r
break;\r
}\r
\r
- default:\r
+ default:\r
{\r
return EFI_INVALID_PARAMETER;\r
}\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+\r
//\r
// Phase 3 Copy table to final location\r
//\r
- TablePtr = (UINT32) (Regs.X.DS * 16 + Regs.X.BX);\r
+ TablePtr = (UINT32)(Regs.X.DS * 16 + Regs.X.BX);\r
\r
CopyMem (\r
- (VOID *) (UINTN)TablePtr,\r
+ (VOID *)(UINTN)TablePtr,\r
Table,\r
TableSize\r
);\r
VOID\r
)\r
{\r
- SMBIOS_TABLE_ENTRY_POINT *EntryPointStructure;\r
+ SMBIOS_TABLE_ENTRY_POINT *EntryPointStructure;\r
\r
if ((mRuntimeSmbiosEntryPoint == NULL) ||\r
(mReserveSmbiosEntryPoint == 0) ||\r
- (mStructureTableAddress == 0)) {\r
+ (mStructureTableAddress == 0))\r
+ {\r
return;\r
}\r
\r
- EntryPointStructure = (SMBIOS_TABLE_ENTRY_POINT *) mRuntimeSmbiosEntryPoint;\r
+ EntryPointStructure = (SMBIOS_TABLE_ENTRY_POINT *)mRuntimeSmbiosEntryPoint;\r
\r
//\r
// Copy SMBIOS Entry Point Structure\r
//\r
CopyMem (\r
- (VOID *)(UINTN) mReserveSmbiosEntryPoint,\r
+ (VOID *)(UINTN)mReserveSmbiosEntryPoint,\r
EntryPointStructure,\r
EntryPointStructure->EntryPointLength\r
- );\r
+ );\r
\r
//\r
// Copy SMBIOS Structure Table into EfiReservedMemoryType memory\r
//\r
CopyMem (\r
- (VOID *)(UINTN) mStructureTableAddress,\r
- (VOID *)(UINTN) EntryPointStructure->TableAddress,\r
+ (VOID *)(UINTN)mStructureTableAddress,\r
+ (VOID *)(UINTN)EntryPointStructure->TableAddress,\r
EntryPointStructure->TableLength\r
- );\r
+ );\r
\r
//\r
// Update TableAddress in Entry Point Structure\r
//\r
- EntryPointStructure = (SMBIOS_TABLE_ENTRY_POINT *)(UINTN) mReserveSmbiosEntryPoint;\r
- EntryPointStructure->TableAddress = (UINT32)(UINTN) mStructureTableAddress;\r
+ EntryPointStructure = (SMBIOS_TABLE_ENTRY_POINT *)(UINTN)mReserveSmbiosEntryPoint;\r
+ EntryPointStructure->TableAddress = (UINT32)(UINTN)mStructureTableAddress;\r
\r
//\r
// Fixup checksums in the Entry Point Structure\r
//\r
- EntryPointStructure->IntermediateChecksum = 0;\r
+ EntryPointStructure->IntermediateChecksum = 0;\r
EntryPointStructure->EntryPointStructureChecksum = 0;\r
\r
EntryPointStructure->IntermediateChecksum =\r
CalculateCheckSum8 (\r
- (UINT8 *) EntryPointStructure + OFFSET_OF (SMBIOS_TABLE_ENTRY_POINT, IntermediateAnchorString),\r
+ (UINT8 *)EntryPointStructure + OFFSET_OF (SMBIOS_TABLE_ENTRY_POINT, IntermediateAnchorString),\r
EntryPointStructure->EntryPointLength - OFFSET_OF (SMBIOS_TABLE_ENTRY_POINT, IntermediateAnchorString)\r
);\r
EntryPointStructure->EntryPointStructureChecksum =\r
- CalculateCheckSum8 ((UINT8 *) EntryPointStructure, EntryPointStructure->EntryPointLength);\r
+ CalculateCheckSum8 ((UINT8 *)EntryPointStructure, EntryPointStructure->EntryPointLength);\r
}\r
\r
/**\r
**/\r
EFI_STATUS\r
GenericLegacyBoot (\r
- IN EFI_LEGACY_BIOS_PROTOCOL *This\r
+ IN EFI_LEGACY_BIOS_PROTOCOL *This\r
)\r
{\r
- EFI_STATUS Status;\r
- LEGACY_BIOS_INSTANCE *Private;\r
- EFI_IA32_REGISTER_SET Regs;\r
- EFI_TO_COMPATIBILITY16_BOOT_TABLE *EfiToLegacy16BootTable;\r
- EFI_LEGACY_BIOS_PLATFORM_PROTOCOL *LegacyBiosPlatform;\r
- UINTN CopySize;\r
- VOID *AcpiPtr;\r
- HDD_INFO *HddInfo;\r
- HDD_INFO *LocalHddInfo;\r
- UINTN Index;\r
- EFI_COMPATIBILITY16_TABLE *Legacy16Table;\r
- UINT32 *BdaPtr;\r
- UINT16 HddCount;\r
- UINT16 BbsCount;\r
- BBS_TABLE *LocalBbsTable;\r
- UINT32 *BaseVectorMaster;\r
- EFI_TIME BootTime;\r
- UINT32 LocalTime;\r
- EFI_HANDLE IdeController;\r
- UINTN HandleCount;\r
- EFI_HANDLE *HandleBuffer;\r
- VOID *AcpiTable;\r
- UINTN ShadowAddress;\r
- UINT32 Granularity;\r
+ EFI_STATUS Status;\r
+ LEGACY_BIOS_INSTANCE *Private;\r
+ EFI_IA32_REGISTER_SET Regs;\r
+ EFI_TO_COMPATIBILITY16_BOOT_TABLE *EfiToLegacy16BootTable;\r
+ EFI_LEGACY_BIOS_PLATFORM_PROTOCOL *LegacyBiosPlatform;\r
+ UINTN CopySize;\r
+ VOID *AcpiPtr;\r
+ HDD_INFO *HddInfo;\r
+ HDD_INFO *LocalHddInfo;\r
+ UINTN Index;\r
+ EFI_COMPATIBILITY16_TABLE *Legacy16Table;\r
+ UINT32 *BdaPtr;\r
+ UINT16 HddCount;\r
+ UINT16 BbsCount;\r
+ BBS_TABLE *LocalBbsTable;\r
+ UINT32 *BaseVectorMaster;\r
+ EFI_TIME BootTime;\r
+ UINT32 LocalTime;\r
+ EFI_HANDLE IdeController;\r
+ UINTN HandleCount;\r
+ EFI_HANDLE *HandleBuffer;\r
+ VOID *AcpiTable;\r
+ UINTN ShadowAddress;\r
+ UINT32 Granularity;\r
\r
LocalHddInfo = NULL;\r
HddCount = 0;\r
BbsCount = 0;\r
LocalBbsTable = NULL;\r
\r
- Private = LEGACY_BIOS_INSTANCE_FROM_THIS (This);\r
+ Private = LEGACY_BIOS_INSTANCE_FROM_THIS (This);\r
DEBUG_CODE (\r
DEBUG ((DEBUG_ERROR, "Start of legacy boot\n"));\r
- );\r
+ );\r
\r
- Legacy16Table = Private->Legacy16Table;\r
- EfiToLegacy16BootTable = &Private->IntThunk->EfiToLegacy16BootTable;\r
- HddInfo = &EfiToLegacy16BootTable->HddInfo[0];\r
+ Legacy16Table = Private->Legacy16Table;\r
+ EfiToLegacy16BootTable = &Private->IntThunk->EfiToLegacy16BootTable;\r
+ HddInfo = &EfiToLegacy16BootTable->HddInfo[0];\r
\r
LegacyBiosPlatform = Private->LegacyBiosPlatform;\r
\r
IdeController = NULL;\r
if ((mBootMode == BOOT_LEGACY_OS) || (mBootMode == BOOT_UNCONVENTIONAL_DEVICE)) {\r
Status = LegacyBiosPlatform->GetPlatformHandle (\r
- Private->LegacyBiosPlatform,\r
- EfiGetPlatformIdeHandle,\r
- 0,\r
- &HandleBuffer,\r
- &HandleCount,\r
- NULL\r
- );\r
+ Private->LegacyBiosPlatform,\r
+ EfiGetPlatformIdeHandle,\r
+ 0,\r
+ &HandleBuffer,\r
+ &HandleCount,\r
+ NULL\r
+ );\r
if (!EFI_ERROR (Status)) {\r
IdeController = HandleBuffer[0];\r
}\r
}\r
+\r
//\r
// Unlock the Legacy BIOS region\r
//\r
if (CopySize > Private->Legacy16Table->E820Length) {\r
ZeroMem (&Regs, sizeof (EFI_IA32_REGISTER_SET));\r
Regs.X.AX = Legacy16GetTableAddress;\r
- Regs.X.BX = (UINT16) 0x0; // Any region\r
- Regs.X.CX = (UINT16) CopySize;\r
- Regs.X.DX = (UINT16) 0x4; // Alignment\r
+ Regs.X.BX = (UINT16)0x0; // Any region\r
+ Regs.X.CX = (UINT16)CopySize;\r
+ Regs.X.DX = (UINT16)0x4; // Alignment\r
Private->LegacyBios.FarCall86 (\r
- &Private->LegacyBios,\r
- Private->Legacy16Table->Compatibility16CallSegment,\r
- Private->Legacy16Table->Compatibility16CallOffset,\r
- &Regs,\r
- NULL,\r
- 0\r
- );\r
-\r
- Private->Legacy16Table->E820Pointer = (UINT32) (Regs.X.DS * 16 + Regs.X.BX);\r
- Private->Legacy16Table->E820Length = (UINT32) CopySize;\r
+ &Private->LegacyBios,\r
+ Private->Legacy16Table->Compatibility16CallSegment,\r
+ Private->Legacy16Table->Compatibility16CallOffset,\r
+ &Regs,\r
+ NULL,\r
+ 0\r
+ );\r
+\r
+ Private->Legacy16Table->E820Pointer = (UINT32)(Regs.X.DS * 16 + Regs.X.BX);\r
+ Private->Legacy16Table->E820Length = (UINT32)CopySize;\r
if (Regs.X.AX != 0) {\r
DEBUG ((DEBUG_ERROR, "Legacy16 E820 length insufficient\n"));\r
return EFI_OUT_OF_RESOURCES;\r
} else {\r
CopyMem (\r
- (VOID *)(UINTN) Private->Legacy16Table->E820Pointer,\r
+ (VOID *)(UINTN)Private->Legacy16Table->E820Pointer,\r
Private->E820Table,\r
CopySize\r
);\r
}\r
} else {\r
CopyMem (\r
- (VOID *)(UINTN) Private->Legacy16Table->E820Pointer,\r
+ (VOID *)(UINTN)Private->Legacy16Table->E820Pointer,\r
Private->E820Table,\r
CopySize\r
);\r
- Private->Legacy16Table->E820Length = (UINT32) CopySize;\r
+ Private->Legacy16Table->E820Length = (UINT32)CopySize;\r
}\r
\r
//\r
if (mReserveSmbiosEntryPoint == 0) {\r
DEBUG ((DEBUG_INFO, "Smbios table is not found!\n"));\r
}\r
+\r
CreateSmbiosTableInReservedMemory ();\r
EfiToLegacy16BootTable->SmbiosTable = (UINT32)(UINTN)mReserveSmbiosEntryPoint;\r
\r
AcpiTable = NULL;\r
- Status = EfiGetSystemConfigurationTable (\r
- &gEfiAcpi20TableGuid,\r
- &AcpiTable\r
- );\r
+ Status = EfiGetSystemConfigurationTable (\r
+ &gEfiAcpi20TableGuid,\r
+ &AcpiTable\r
+ );\r
if (EFI_ERROR (Status)) {\r
Status = EfiGetSystemConfigurationTable (\r
&gEfiAcpi10TableGuid,\r
&AcpiTable\r
);\r
}\r
+\r
//\r
// We do not ASSERT if AcpiTable not found. It is possible that a platform does not produce AcpiTable.\r
//\r
if (AcpiTable == NULL) {\r
DEBUG ((DEBUG_INFO, "ACPI table is not found!\n"));\r
}\r
+\r
EfiToLegacy16BootTable->AcpiTable = (UINT32)(UINTN)AcpiTable;\r
\r
//\r
// Rev != 0 Length is UINT32 at offset 20 decimal\r
//\r
if (AcpiTable != NULL) {\r
-\r
AcpiPtr = AcpiTable;\r
- if (*((UINT8 *) AcpiPtr + 15) == 0) {\r
+ if (*((UINT8 *)AcpiPtr + 15) == 0) {\r
CopySize = 20;\r
} else {\r
- AcpiPtr = ((UINT8 *) AcpiPtr + 20);\r
- CopySize = (*(UINT32 *) AcpiPtr);\r
+ AcpiPtr = ((UINT8 *)AcpiPtr + 20);\r
+ CopySize = (*(UINT32 *)AcpiPtr);\r
}\r
\r
CopyMem (\r
- (VOID *)(UINTN) Private->Legacy16Table->AcpiRsdPtrPointer,\r
+ (VOID *)(UINTN)Private->Legacy16Table->AcpiRsdPtrPointer,\r
AcpiTable,\r
CopySize\r
);\r
}\r
+\r
//\r
// Make sure all PCI Interrupt Line register are programmed to match 8259\r
//\r
if ((mBootMode == BOOT_LEGACY_OS) || (mBootMode == BOOT_UNCONVENTIONAL_DEVICE)) {\r
UpdateSioData (Private);\r
}\r
+\r
//\r
// Setup BDA and EBDA standard areas before Legacy Boot\r
//\r
ACCESS_PAGE0_CODE (\r
LegacyBiosCompleteBdaBeforeBoot (Private);\r
- );\r
+ );\r
LegacyBiosCompleteStandardCmosBeforeBoot (Private);\r
\r
//\r
// Adjust value by 1 second.\r
//\r
gRT->GetTime (&BootTime, NULL);\r
- LocalTime = BootTime.Hour * 3600 + BootTime.Minute * 60 + BootTime.Second;\r
+ LocalTime = BootTime.Hour * 3600 + BootTime.Minute * 60 + BootTime.Second;\r
LocalTime += 1;\r
\r
//\r
//\r
LocalTime = (LocalTime * 182) / 10;\r
ACCESS_PAGE0_CODE (\r
- BdaPtr = (UINT32 *) (UINTN)0x46C;\r
- *BdaPtr = LocalTime;\r
- );\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
for (Index = 0; Index < MAX_IDE_CONTROLLER; Index++) {\r
if ((LocalHddInfo[Index].IdentifyDrive[0].Raw[0] != 0) &&\r
(LocalBbsTable[2 * Index + 1].BootPriority == BBS_IGNORE_ENTRY)\r
- ) {\r
+ )\r
+ {\r
LocalBbsTable[2 * Index + 1].BootPriority = BBS_UNPRIORITIZED_ENTRY;\r
}\r
\r
if ((LocalHddInfo[Index].IdentifyDrive[1].Raw[0] != 0) &&\r
(LocalBbsTable[2 * Index + 2].BootPriority == BBS_IGNORE_ENTRY)\r
- ) {\r
+ )\r
+ {\r
LocalBbsTable[2 * Index + 2].BootPriority = BBS_UNPRIORITIZED_ENTRY;\r
}\r
}\r
mBbsTable,\r
mLoadOptionsSize,\r
mLoadOptions,\r
- (VOID *) &Private->IntThunk->EfiToLegacy16BootTable\r
+ (VOID *)&Private->IntThunk->EfiToLegacy16BootTable\r
);\r
\r
//\r
// If no boot device return to BDS\r
//\r
if ((mBootMode == BOOT_LEGACY_OS) || (mBootMode == BOOT_UNCONVENTIONAL_DEVICE)) {\r
- for (Index = 0; Index < BbsCount; Index++){\r
+ for (Index = 0; Index < BbsCount; Index++) {\r
if ((LocalBbsTable[Index].BootPriority != BBS_DO_NOT_BOOT_FROM) &&\r
(LocalBbsTable[Index].BootPriority != BBS_UNPRIORITIZED_ENTRY) &&\r
- (LocalBbsTable[Index].BootPriority != BBS_IGNORE_ENTRY)) {\r
+ (LocalBbsTable[Index].BootPriority != BBS_IGNORE_ENTRY))\r
+ {\r
break;\r
}\r
}\r
+\r
if (Index == BbsCount) {\r
return EFI_DEVICE_ERROR;\r
}\r
}\r
+\r
//\r
// Let the Legacy16 code know the device path type for legacy boot\r
//\r
Regs.X.BX = NORMALIZE_EFI_OFFSET ((UINTN)EfiToLegacy16BootTable);\r
\r
Private->LegacyBios.FarCall86 (\r
- This,\r
- Private->Legacy16CallSegment,\r
- Private->Legacy16CallOffset,\r
- &Regs,\r
- NULL,\r
- 0\r
- );\r
+ This,\r
+ Private->Legacy16CallSegment,\r
+ Private->Legacy16CallOffset,\r
+ &Regs,\r
+ NULL,\r
+ 0\r
+ );\r
\r
if (Regs.X.AX != 0) {\r
return EFI_DEVICE_ERROR;\r
}\r
+\r
//\r
// Lock the Legacy BIOS region\r
//\r
);\r
\r
if ((Private->Legacy16Table->TableLength >= OFFSET_OF (EFI_COMPATIBILITY16_TABLE, HiPermanentMemoryAddress)) &&\r
- ((Private->Legacy16Table->UmaAddress != 0) && (Private->Legacy16Table->UmaSize != 0))) {\r
+ ((Private->Legacy16Table->UmaAddress != 0) && (Private->Legacy16Table->UmaSize != 0)))\r
+ {\r
//\r
// Here we could reduce UmaAddress down as far as Private->OptionRom, taking into\r
// account the granularity of the access control.\r
//\r
- DEBUG((DEBUG_INFO, "Unlocking UMB RAM region 0x%x-0x%x\n", Private->Legacy16Table->UmaAddress,\r
- Private->Legacy16Table->UmaAddress + Private->Legacy16Table->UmaSize));\r
+ DEBUG ((\r
+ DEBUG_INFO,\r
+ "Unlocking UMB RAM region 0x%x-0x%x\n",\r
+ Private->Legacy16Table->UmaAddress,\r
+ Private->Legacy16Table->UmaAddress + Private->Legacy16Table->UmaSize\r
+ ));\r
\r
Private->LegacyRegion->UnLock (\r
Private->LegacyRegion,\r
//\r
EnableAllControllers (Private);\r
if ((mBootMode == BOOT_LEGACY_OS) || (mBootMode == BOOT_UNCONVENTIONAL_DEVICE)) {\r
-\r
//\r
// Signal all the events that are waiting on EVT_SIGNAL_LEGACY_BOOT\r
//\r
//\r
SaveAndSetDebugTimerInterrupt (FALSE);\r
\r
-\r
//\r
// Put the 8259 into its legacy mode by reprogramming the vector bases\r
//\r
//\r
//\r
ACCESS_PAGE0_CODE (\r
- BaseVectorMaster = (UINT32 *) (sizeof (UINT32) * PROTECTED_MODE_BASE_VECTOR_MASTER);\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
+ Private->ThunkSavedInt[Index] = BaseVectorMaster[Index];\r
+ if (Private->ThunkSeg == (UINT16)(BaseVectorMaster[Index] >> 16)) {\r
+ BaseVectorMaster[Index] = (UINT32)(Private->BiosUnexpectedInt);\r
}\r
- );\r
+ }\r
+\r
+ );\r
\r
ZeroMem (&Regs, sizeof (EFI_IA32_REGISTER_SET));\r
Regs.X.AX = Legacy16Boot;\r
\r
Private->LegacyBios.FarCall86 (\r
- This,\r
- Private->Legacy16CallSegment,\r
- Private->Legacy16CallOffset,\r
- &Regs,\r
- NULL,\r
- 0\r
- );\r
+ This,\r
+ Private->Legacy16CallSegment,\r
+ Private->Legacy16CallOffset,\r
+ &Regs,\r
+ NULL,\r
+ 0\r
+ );\r
\r
ACCESS_PAGE0_CODE (\r
- BaseVectorMaster = (UINT32 *) (sizeof (UINT32) * PROTECTED_MODE_BASE_VECTOR_MASTER);\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
+ BaseVectorMaster[Index] = Private->ThunkSavedInt[Index];\r
+ }\r
+\r
+ );\r
}\r
+\r
Private->LegacyBootEntered = TRUE;\r
if ((mBootMode == BOOT_LEGACY_OS) || (mBootMode == BOOT_UNCONVENTIONAL_DEVICE)) {\r
//\r
}\r
}\r
\r
-\r
/**\r
Assign drive number to legacy HDD drives prior to booting an EFI\r
aware OS so the OS can access drives without an EFI driver.\r
EFI_STATUS\r
EFIAPI\r
LegacyBiosPrepareToBootEfi (\r
- IN EFI_LEGACY_BIOS_PROTOCOL *This,\r
- OUT UINT16 *BbsCount,\r
- OUT BBS_TABLE **BbsTable\r
+ IN EFI_LEGACY_BIOS_PROTOCOL *This,\r
+ OUT UINT16 *BbsCount,\r
+ OUT BBS_TABLE **BbsTable\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_TO_COMPATIBILITY16_BOOT_TABLE *EfiToLegacy16BootTable;\r
- LEGACY_BIOS_INSTANCE *Private;\r
-\r
- Private = LEGACY_BIOS_INSTANCE_FROM_THIS (This);\r
- EfiToLegacy16BootTable = &Private->IntThunk->EfiToLegacy16BootTable;\r
- mBootMode = BOOT_EFI_OS;\r
- mBbsDevicePathPtr = NULL;\r
- Status = GenericLegacyBoot (This);\r
- *BbsTable = (BBS_TABLE*)(UINTN)EfiToLegacy16BootTable->BbsTable;\r
- *BbsCount = (UINT16) (sizeof (Private->IntThunk->BbsTable) / sizeof (BBS_TABLE));\r
+ EFI_STATUS Status;\r
+ EFI_TO_COMPATIBILITY16_BOOT_TABLE *EfiToLegacy16BootTable;\r
+ LEGACY_BIOS_INSTANCE *Private;\r
+\r
+ Private = LEGACY_BIOS_INSTANCE_FROM_THIS (This);\r
+ EfiToLegacy16BootTable = &Private->IntThunk->EfiToLegacy16BootTable;\r
+ mBootMode = BOOT_EFI_OS;\r
+ mBbsDevicePathPtr = NULL;\r
+ Status = GenericLegacyBoot (This);\r
+ *BbsTable = (BBS_TABLE *)(UINTN)EfiToLegacy16BootTable->BbsTable;\r
+ *BbsCount = (UINT16)(sizeof (Private->IntThunk->BbsTable) / sizeof (BBS_TABLE));\r
return Status;\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
LegacyBiosBootUnconventionalDevice (\r
- IN EFI_LEGACY_BIOS_PROTOCOL *This,\r
- IN UDC_ATTRIBUTES Attributes,\r
- IN UINTN BbsEntry,\r
- IN VOID *BeerData,\r
- IN VOID *ServiceAreaData\r
+ IN EFI_LEGACY_BIOS_PROTOCOL *This,\r
+ IN UDC_ATTRIBUTES Attributes,\r
+ IN UINTN BbsEntry,\r
+ IN VOID *BeerData,\r
+ IN VOID *ServiceAreaData\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_TO_COMPATIBILITY16_BOOT_TABLE *EfiToLegacy16BootTable;\r
- LEGACY_BIOS_INSTANCE *Private;\r
- UD_TABLE *UcdTable;\r
- UINTN Index;\r
- UINT16 BootPriority;\r
- BBS_TABLE *BbsTable;\r
-\r
- BootPriority = 0;\r
- Private = LEGACY_BIOS_INSTANCE_FROM_THIS (This);\r
- mBootMode = BOOT_UNCONVENTIONAL_DEVICE;\r
+ EFI_STATUS Status;\r
+ EFI_TO_COMPATIBILITY16_BOOT_TABLE *EfiToLegacy16BootTable;\r
+ LEGACY_BIOS_INSTANCE *Private;\r
+ UD_TABLE *UcdTable;\r
+ UINTN Index;\r
+ UINT16 BootPriority;\r
+ BBS_TABLE *BbsTable;\r
+\r
+ BootPriority = 0;\r
+ Private = LEGACY_BIOS_INSTANCE_FROM_THIS (This);\r
+ mBootMode = BOOT_UNCONVENTIONAL_DEVICE;\r
mBbsDevicePathPtr = &mBbsDevicePathNode;\r
- mAttributes = Attributes;\r
- mBbsEntry = BbsEntry;\r
- mBeerData = BeerData, mServiceAreaData = ServiceAreaData;\r
+ mAttributes = Attributes;\r
+ mBbsEntry = BbsEntry;\r
+ mBeerData = BeerData, mServiceAreaData = ServiceAreaData;\r
\r
EfiToLegacy16BootTable = &Private->IntThunk->EfiToLegacy16BootTable;\r
\r
if ((Attributes.DirectoryServiceValidity == 0) &&\r
(Attributes.RabcaUsedFlag == 0) &&\r
(Attributes.ExecuteHddDiagnosticsFlag == 0)\r
- ) {\r
+ )\r
+ {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
if (((Attributes.DirectoryServiceValidity != 0) && (ServiceAreaData == NULL)) ||\r
(((Attributes.DirectoryServiceValidity | Attributes.RabcaUsedFlag) != 0) && (BeerData == NULL))\r
- ) {\r
+ )\r
+ {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- UcdTable = (UD_TABLE *) AllocatePool (\r
- sizeof (UD_TABLE)\r
- );\r
+ UcdTable = (UD_TABLE *)AllocatePool (\r
+ sizeof (UD_TABLE)\r
+ );\r
if (NULL == UcdTable) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
\r
EfiToLegacy16BootTable->UnconventionalDeviceTable = (UINT32)(UINTN)UcdTable;\r
- UcdTable->Attributes = Attributes;\r
- UcdTable->BbsTableEntryNumberForParentDevice = (UINT8) BbsEntry;\r
+ UcdTable->Attributes = Attributes;\r
+ UcdTable->BbsTableEntryNumberForParentDevice = (UINT8)BbsEntry;\r
//\r
// Force all existing BBS entries to DoNotBoot. This allows 16-bit CSM\r
// to assign drive numbers but bot boot from. Only newly created entries\r
// will be valid.\r
//\r
- BbsTable = (BBS_TABLE*)(UINTN)EfiToLegacy16BootTable->BbsTable;\r
+ BbsTable = (BBS_TABLE *)(UINTN)EfiToLegacy16BootTable->BbsTable;\r
for (Index = 0; Index < EfiToLegacy16BootTable->NumberBbsEntries; Index++) {\r
BbsTable[Index].BootPriority = BBS_DO_NOT_BOOT_FROM;\r
}\r
+\r
//\r
// If parent is onboard IDE then assign controller & device number\r
// else they are 0.\r
//\r
if (BbsEntry < MAX_IDE_CONTROLLER * 2) {\r
- UcdTable->DeviceNumber = (UINT8) ((BbsEntry - 1) % 2);\r
+ UcdTable->DeviceNumber = (UINT8)((BbsEntry - 1) % 2);\r
}\r
\r
if (BeerData != NULL) {\r
CopyMem (\r
- (VOID *) UcdTable->BeerData,\r
+ (VOID *)UcdTable->BeerData,\r
BeerData,\r
- (UINTN) 128\r
+ (UINTN)128\r
);\r
}\r
\r
if (ServiceAreaData != NULL) {\r
CopyMem (\r
- (VOID *) UcdTable->ServiceAreaData,\r
+ (VOID *)UcdTable->ServiceAreaData,\r
ServiceAreaData,\r
- (UINTN) 64\r
+ (UINTN)64\r
);\r
}\r
+\r
//\r
// For each new entry do the following:\r
// 1. Increment current number of BBS entries\r
EfiToLegacy16BootTable->NumberBbsEntries += 1;\r
\r
CopyMem (\r
- (VOID *) &BbsTable[EfiToLegacy16BootTable->NumberBbsEntries].BootPriority,\r
- (VOID *) &BbsTable[BbsEntry].BootPriority,\r
+ (VOID *)&BbsTable[EfiToLegacy16BootTable->NumberBbsEntries].BootPriority,\r
+ (VOID *)&BbsTable[BbsEntry].BootPriority,\r
sizeof (BBS_TABLE)\r
);\r
\r
BbsTable[EfiToLegacy16BootTable->NumberBbsEntries].BootHandlerSegment = 0;\r
BbsTable[EfiToLegacy16BootTable->NumberBbsEntries].DeviceType = 0x80;\r
\r
- UcdTable->BbsTableEntryNumberForHddDiag = (UINT8) (EfiToLegacy16BootTable->NumberBbsEntries - 1);\r
+ UcdTable->BbsTableEntryNumberForHddDiag = (UINT8)(EfiToLegacy16BootTable->NumberBbsEntries - 1);\r
\r
BbsTable[EfiToLegacy16BootTable->NumberBbsEntries].BootPriority = BootPriority;\r
- BootPriority += 1;\r
+ BootPriority += 1;\r
\r
//\r
// Set device type as BBS_TYPE_DEV for PARTIES diagnostic\r
if (((Attributes.DirectoryServiceValidity | Attributes.RabcaUsedFlag)) != 0) {\r
EfiToLegacy16BootTable->NumberBbsEntries += 1;\r
CopyMem (\r
- (VOID *) &BbsTable[EfiToLegacy16BootTable->NumberBbsEntries].BootPriority,\r
- (VOID *) &BbsTable[BbsEntry].BootPriority,\r
+ (VOID *)&BbsTable[EfiToLegacy16BootTable->NumberBbsEntries].BootPriority,\r
+ (VOID *)&BbsTable[BbsEntry].BootPriority,\r
sizeof (BBS_TABLE)\r
);\r
\r
BbsTable[EfiToLegacy16BootTable->NumberBbsEntries].BootHandlerOffset = 0;\r
BbsTable[EfiToLegacy16BootTable->NumberBbsEntries].BootHandlerSegment = 0;\r
BbsTable[EfiToLegacy16BootTable->NumberBbsEntries].DeviceType = 0x01;\r
- UcdTable->BbsTableEntryNumberForBoot = (UINT8) (EfiToLegacy16BootTable->NumberBbsEntries - 1);\r
- BbsTable[EfiToLegacy16BootTable->NumberBbsEntries].BootPriority = BootPriority;\r
+ UcdTable->BbsTableEntryNumberForBoot = (UINT8)(EfiToLegacy16BootTable->NumberBbsEntries - 1);\r
+ BbsTable[EfiToLegacy16BootTable->NumberBbsEntries].BootPriority = BootPriority;\r
\r
//\r
// Set device type as BBS_TYPE_FLOPPY for PARTIES boot as floppy\r
//\r
mBbsDevicePathNode.DeviceType = BBS_TYPE_FLOPPY;\r
}\r
+\r
//\r
// Build the BBS Device Path for this boot selection\r
//\r
mBbsDevicePathNode.StatusFlag = 0;\r
mBbsDevicePathNode.String[0] = 0;\r
\r
- Status = GenericLegacyBoot (This);\r
+ Status = GenericLegacyBoot (This);\r
return Status;\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
LegacyBiosLegacyBoot (\r
- IN EFI_LEGACY_BIOS_PROTOCOL *This,\r
- IN BBS_BBS_DEVICE_PATH *BbsDevicePath,\r
- IN UINT32 LoadOptionsSize,\r
- IN VOID *LoadOptions\r
+ IN EFI_LEGACY_BIOS_PROTOCOL *This,\r
+ IN BBS_BBS_DEVICE_PATH *BbsDevicePath,\r
+ IN UINT32 LoadOptionsSize,\r
+ IN VOID *LoadOptions\r
)\r
{\r
EFI_STATUS Status;\r
**/\r
EFI_ACPI_MEMORY_TYPE\r
EfiMemoryTypeToE820Type (\r
- IN UINT32 Type\r
+ IN UINT32 Type\r
)\r
{\r
switch (Type) {\r
- case EfiLoaderCode:\r
- case EfiLoaderData:\r
- case EfiBootServicesCode:\r
- case EfiBootServicesData:\r
- case EfiConventionalMemory:\r
- //\r
- // The memory of EfiRuntimeServicesCode and EfiRuntimeServicesData are\r
- // usable memory for legacy OS, because legacy OS is not aware of EFI runtime concept.\r
- // In ACPI specification, EfiRuntimeServiceCode and EfiRuntimeServiceData\r
- // should be mapped to AddressRangeReserved. This statement is for UEFI OS, not for legacy OS.\r
- //\r
- case EfiRuntimeServicesCode:\r
- case EfiRuntimeServicesData:\r
- return EfiAcpiAddressRangeMemory;\r
+ case EfiLoaderCode:\r
+ case EfiLoaderData:\r
+ case EfiBootServicesCode:\r
+ case EfiBootServicesData:\r
+ case EfiConventionalMemory:\r
+ //\r
+ // The memory of EfiRuntimeServicesCode and EfiRuntimeServicesData are\r
+ // usable memory for legacy OS, because legacy OS is not aware of EFI runtime concept.\r
+ // In ACPI specification, EfiRuntimeServiceCode and EfiRuntimeServiceData\r
+ // should be mapped to AddressRangeReserved. This statement is for UEFI OS, not for legacy OS.\r
+ //\r
+ case EfiRuntimeServicesCode:\r
+ case EfiRuntimeServicesData:\r
+ return EfiAcpiAddressRangeMemory;\r
\r
- case EfiPersistentMemory:\r
- return EfiAddressRangePersistentMemory;\r
+ case EfiPersistentMemory:\r
+ return EfiAddressRangePersistentMemory;\r
\r
- case EfiACPIReclaimMemory:\r
- return EfiAcpiAddressRangeACPI;\r
+ case EfiACPIReclaimMemory:\r
+ return EfiAcpiAddressRangeACPI;\r
\r
- case EfiACPIMemoryNVS:\r
- return EfiAcpiAddressRangeNVS;\r
+ case EfiACPIMemoryNVS:\r
+ return EfiAcpiAddressRangeNVS;\r
\r
- //\r
- // All other types map to reserved.\r
- // Adding the code just waists FLASH space.\r
- //\r
- // case EfiReservedMemoryType:\r
- // case EfiUnusableMemory:\r
- // case EfiMemoryMappedIO:\r
- // case EfiMemoryMappedIOPortSpace:\r
- // case EfiPalCode:\r
- //\r
- default:\r
- return EfiAcpiAddressRangeReserved;\r
+ //\r
+ // All other types map to reserved.\r
+ // Adding the code just waists FLASH space.\r
+ //\r
+ // case EfiReservedMemoryType:\r
+ // case EfiUnusableMemory:\r
+ // case EfiMemoryMappedIO:\r
+ // case EfiMemoryMappedIOPortSpace:\r
+ // case EfiPalCode:\r
+ //\r
+ default:\r
+ return EfiAcpiAddressRangeReserved;\r
}\r
}\r
\r
**/\r
EFI_STATUS\r
LegacyBiosBuildE820 (\r
- IN LEGACY_BIOS_INSTANCE *Private,\r
- OUT UINTN *Size\r
+ IN LEGACY_BIOS_INSTANCE *Private,\r
+ OUT UINTN *Size\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_E820_ENTRY64 *E820Table;\r
- EFI_MEMORY_DESCRIPTOR *EfiMemoryMap;\r
- EFI_MEMORY_DESCRIPTOR *EfiMemoryMapEnd;\r
- EFI_MEMORY_DESCRIPTOR *EfiEntry;\r
- EFI_MEMORY_DESCRIPTOR *NextEfiEntry;\r
- EFI_MEMORY_DESCRIPTOR TempEfiEntry;\r
- UINTN EfiMemoryMapSize;\r
- UINTN EfiMapKey;\r
- UINTN EfiDescriptorSize;\r
- UINT32 EfiDescriptorVersion;\r
- UINTN Index;\r
- EFI_PEI_HOB_POINTERS Hob;\r
- EFI_HOB_RESOURCE_DESCRIPTOR *ResourceHob;\r
- UINTN TempIndex;\r
- UINTN IndexSort;\r
- UINTN TempNextIndex;\r
- EFI_E820_ENTRY64 TempE820;\r
- EFI_ACPI_MEMORY_TYPE TempType;\r
- BOOLEAN ChangedFlag;\r
- UINTN Above1MIndex;\r
- UINT64 MemoryBlockLength;\r
-\r
- E820Table = (EFI_E820_ENTRY64 *) Private->E820Table;\r
+ EFI_STATUS Status;\r
+ EFI_E820_ENTRY64 *E820Table;\r
+ EFI_MEMORY_DESCRIPTOR *EfiMemoryMap;\r
+ EFI_MEMORY_DESCRIPTOR *EfiMemoryMapEnd;\r
+ EFI_MEMORY_DESCRIPTOR *EfiEntry;\r
+ EFI_MEMORY_DESCRIPTOR *NextEfiEntry;\r
+ EFI_MEMORY_DESCRIPTOR TempEfiEntry;\r
+ UINTN EfiMemoryMapSize;\r
+ UINTN EfiMapKey;\r
+ UINTN EfiDescriptorSize;\r
+ UINT32 EfiDescriptorVersion;\r
+ UINTN Index;\r
+ EFI_PEI_HOB_POINTERS Hob;\r
+ EFI_HOB_RESOURCE_DESCRIPTOR *ResourceHob;\r
+ UINTN TempIndex;\r
+ UINTN IndexSort;\r
+ UINTN TempNextIndex;\r
+ EFI_E820_ENTRY64 TempE820;\r
+ EFI_ACPI_MEMORY_TYPE TempType;\r
+ BOOLEAN ChangedFlag;\r
+ UINTN Above1MIndex;\r
+ UINT64 MemoryBlockLength;\r
+\r
+ E820Table = (EFI_E820_ENTRY64 *)Private->E820Table;\r
\r
//\r
// Get the EFI memory map.\r
//\r
- EfiMemoryMapSize = 0;\r
- EfiMemoryMap = NULL;\r
- Status = gBS->GetMemoryMap (\r
- &EfiMemoryMapSize,\r
- EfiMemoryMap,\r
- &EfiMapKey,\r
- &EfiDescriptorSize,\r
- &EfiDescriptorVersion\r
- );\r
+ EfiMemoryMapSize = 0;\r
+ EfiMemoryMap = NULL;\r
+ Status = gBS->GetMemoryMap (\r
+ &EfiMemoryMapSize,\r
+ EfiMemoryMap,\r
+ &EfiMapKey,\r
+ &EfiDescriptorSize,\r
+ &EfiDescriptorVersion\r
+ );\r
ASSERT (Status == EFI_BUFFER_TOO_SMALL);\r
\r
do {\r
// EfiMemoryMapEnd which is dependent upon EfiMemoryMapSize. Otherwise\r
// we process bogus entries and create bogus E820 entries.\r
//\r
- EfiMemoryMap = (EFI_MEMORY_DESCRIPTOR *) AllocatePool (EfiMemoryMapSize);\r
+ EfiMemoryMap = (EFI_MEMORY_DESCRIPTOR *)AllocatePool (EfiMemoryMapSize);\r
ASSERT (EfiMemoryMap != NULL);\r
Status = gBS->GetMemoryMap (\r
&EfiMemoryMapSize,\r
// First entry is 0 to (640k - EBDA)\r
//\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
+ 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
//\r
- E820Table[1].BaseAddr = E820Table[0].Length;\r
- E820Table[1].Length = (UINT64) ((640 * 1024) - E820Table[0].Length);\r
- E820Table[1].Type = EfiAcpiAddressRangeReserved;\r
+ E820Table[1].BaseAddr = E820Table[0].Length;\r
+ E820Table[1].Length = (UINT64)((640 * 1024) - E820Table[0].Length);\r
+ E820Table[1].Type = EfiAcpiAddressRangeReserved;\r
\r
//\r
// Third Entry is legacy BIOS\r
// The CSM binary image size is not the actually size that CSM binary used,\r
// to avoid memory corrupt, we declare the 0E0000 - 0FFFFF is used by CSM binary.\r
//\r
- E820Table[2].BaseAddr = 0xE0000;\r
- E820Table[2].Length = 0x20000;\r
- E820Table[2].Type = EfiAcpiAddressRangeReserved;\r
+ E820Table[2].BaseAddr = 0xE0000;\r
+ E820Table[2].Length = 0x20000;\r
+ E820Table[2].Type = EfiAcpiAddressRangeReserved;\r
\r
Above1MIndex = 2;\r
\r
//\r
EfiEntry = EfiMemoryMap;\r
NextEfiEntry = NEXT_MEMORY_DESCRIPTOR (EfiEntry, EfiDescriptorSize);\r
- EfiMemoryMapEnd = (EFI_MEMORY_DESCRIPTOR *) ((UINT8 *) EfiMemoryMap + EfiMemoryMapSize);\r
+ EfiMemoryMapEnd = (EFI_MEMORY_DESCRIPTOR *)((UINT8 *)EfiMemoryMap + EfiMemoryMapSize);\r
while (EfiEntry < EfiMemoryMapEnd) {\r
while (NextEfiEntry < EfiMemoryMapEnd) {\r
if (EfiEntry->PhysicalStart > NextEfiEntry->PhysicalStart) {\r
NextEfiEntry = NEXT_MEMORY_DESCRIPTOR (NextEfiEntry, EfiDescriptorSize);\r
}\r
\r
- EfiEntry = NEXT_MEMORY_DESCRIPTOR (EfiEntry, EfiDescriptorSize);\r
- NextEfiEntry = NEXT_MEMORY_DESCRIPTOR (EfiEntry, EfiDescriptorSize);\r
+ EfiEntry = NEXT_MEMORY_DESCRIPTOR (EfiEntry, EfiDescriptorSize);\r
+ NextEfiEntry = NEXT_MEMORY_DESCRIPTOR (EfiEntry, EfiDescriptorSize);\r
}\r
\r
EfiEntry = EfiMemoryMap;\r
- EfiMemoryMapEnd = (EFI_MEMORY_DESCRIPTOR *) ((UINT8 *) EfiMemoryMap + EfiMemoryMapSize);\r
+ EfiMemoryMapEnd = (EFI_MEMORY_DESCRIPTOR *)((UINT8 *)EfiMemoryMap + EfiMemoryMapSize);\r
for (Index = Above1MIndex; (EfiEntry < EfiMemoryMapEnd) && (Index < EFI_MAX_E820_ENTRY - 1); ) {\r
- MemoryBlockLength = (UINT64) (LShiftU64 (EfiEntry->NumberOfPages, 12));\r
+ MemoryBlockLength = (UINT64)(LShiftU64 (EfiEntry->NumberOfPages, 12));\r
if ((EfiEntry->PhysicalStart + MemoryBlockLength) < 0x100000) {\r
//\r
// Skip the memory block if under 1MB\r
//\r
// When the memory block spans below 1MB, ensure the memory block start address is at least 1MB\r
//\r
- MemoryBlockLength -= 0x100000 - EfiEntry->PhysicalStart;\r
+ MemoryBlockLength -= 0x100000 - EfiEntry->PhysicalStart;\r
EfiEntry->PhysicalStart = 0x100000;\r
}\r
\r
// Make a new entry\r
//\r
++Index;\r
- E820Table[Index].BaseAddr = EfiEntry->PhysicalStart;\r
- E820Table[Index].Length = MemoryBlockLength;\r
- E820Table[Index].Type = TempType;\r
+ E820Table[Index].BaseAddr = EfiEntry->PhysicalStart;\r
+ E820Table[Index].Length = MemoryBlockLength;\r
+ E820Table[Index].Type = TempType;\r
}\r
}\r
+\r
EfiEntry = NEXT_MEMORY_DESCRIPTOR (EfiEntry, EfiDescriptorSize);\r
}\r
\r
// Process the reserved memory map to produce E820 map ;\r
//\r
for (Hob.Raw = GetHobList (); !END_OF_HOB_LIST (Hob); Hob.Raw = GET_NEXT_HOB (Hob)) {\r
- if (Hob.Raw != NULL && GET_HOB_TYPE (Hob) == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR) {\r
+ if ((Hob.Raw != NULL) && (GET_HOB_TYPE (Hob) == EFI_HOB_TYPE_RESOURCE_DESCRIPTOR)) {\r
ResourceHob = Hob.ResourceDescriptor;\r
if (((ResourceHob->ResourceType == EFI_RESOURCE_MEMORY_MAPPED_IO) ||\r
- (ResourceHob->ResourceType == EFI_RESOURCE_FIRMWARE_DEVICE) ||\r
- (ResourceHob->ResourceType == EFI_RESOURCE_MEMORY_RESERVED) ) &&\r
+ (ResourceHob->ResourceType == EFI_RESOURCE_FIRMWARE_DEVICE) ||\r
+ (ResourceHob->ResourceType == EFI_RESOURCE_MEMORY_RESERVED)) &&\r
(ResourceHob->PhysicalStart > 0x100000) &&\r
- (Index < EFI_MAX_E820_ENTRY - 1)) {\r
+ (Index < EFI_MAX_E820_ENTRY - 1))\r
+ {\r
++Index;\r
- E820Table[Index].BaseAddr = ResourceHob->PhysicalStart;\r
- E820Table[Index].Length = ResourceHob->ResourceLength;\r
- E820Table[Index].Type = EfiAcpiAddressRangeReserved;\r
+ E820Table[Index].BaseAddr = ResourceHob->PhysicalStart;\r
+ E820Table[Index].Length = ResourceHob->ResourceLength;\r
+ E820Table[Index].Type = EfiAcpiAddressRangeReserved;\r
}\r
}\r
}\r
\r
- Index ++;\r
+ Index++;\r
Private->IntThunk->EfiToLegacy16InitTable.NumberE820Entries = (UINT32)Index;\r
Private->IntThunk->EfiToLegacy16BootTable.NumberE820Entries = (UINT32)Index;\r
- Private->NumberE820Entries = (UINT32)Index;\r
- *Size = (UINTN) (Index * sizeof (EFI_E820_ENTRY64));\r
+ Private->NumberE820Entries = (UINT32)Index;\r
+ *Size = (UINTN)(Index * sizeof (EFI_E820_ENTRY64));\r
\r
//\r
// Sort E820Table from low to high\r
ChangedFlag = FALSE;\r
for (TempNextIndex = 1; TempNextIndex < Index - TempIndex; TempNextIndex++) {\r
if (E820Table[TempNextIndex - 1].BaseAddr > E820Table[TempNextIndex].BaseAddr) {\r
- ChangedFlag = TRUE;\r
- TempE820.BaseAddr = E820Table[TempNextIndex - 1].BaseAddr;\r
- TempE820.Length = E820Table[TempNextIndex - 1].Length;\r
- TempE820.Type = E820Table[TempNextIndex - 1].Type;\r
-\r
- E820Table[TempNextIndex - 1].BaseAddr = E820Table[TempNextIndex].BaseAddr;\r
- E820Table[TempNextIndex - 1].Length = E820Table[TempNextIndex].Length;\r
- E820Table[TempNextIndex - 1].Type = E820Table[TempNextIndex].Type;\r
-\r
- E820Table[TempNextIndex].BaseAddr = TempE820.BaseAddr;\r
- E820Table[TempNextIndex].Length = TempE820.Length;\r
- E820Table[TempNextIndex].Type = TempE820.Type;\r
+ ChangedFlag = TRUE;\r
+ TempE820.BaseAddr = E820Table[TempNextIndex - 1].BaseAddr;\r
+ TempE820.Length = E820Table[TempNextIndex - 1].Length;\r
+ TempE820.Type = E820Table[TempNextIndex - 1].Type;\r
+\r
+ E820Table[TempNextIndex - 1].BaseAddr = E820Table[TempNextIndex].BaseAddr;\r
+ E820Table[TempNextIndex - 1].Length = E820Table[TempNextIndex].Length;\r
+ E820Table[TempNextIndex - 1].Type = E820Table[TempNextIndex].Type;\r
+\r
+ E820Table[TempNextIndex].BaseAddr = TempE820.BaseAddr;\r
+ E820Table[TempNextIndex].Length = TempE820.Length;\r
+ E820Table[TempNextIndex].Type = TempE820.Type;\r
}\r
}\r
\r
// Remove the overlap range\r
//\r
for (TempIndex = 1; TempIndex < Index; TempIndex++) {\r
- if (E820Table[TempIndex - 1].BaseAddr <= E820Table[TempIndex].BaseAddr &&\r
+ if ((E820Table[TempIndex - 1].BaseAddr <= E820Table[TempIndex].BaseAddr) &&\r
((E820Table[TempIndex - 1].BaseAddr + E820Table[TempIndex - 1].Length) >=\r
- (E820Table[TempIndex].BaseAddr +E820Table[TempIndex].Length))) {\r
- //\r
- //Overlap range is found\r
- //\r
- ASSERT (E820Table[TempIndex - 1].Type == E820Table[TempIndex].Type);\r
-\r
- if (TempIndex == Index - 1) {\r
- E820Table[TempIndex].BaseAddr = 0;\r
- E820Table[TempIndex].Length = 0;\r
- E820Table[TempIndex].Type = (EFI_ACPI_MEMORY_TYPE) 0;\r
- Index--;\r
- break;\r
- } else {\r
- for (IndexSort = TempIndex; IndexSort < Index - 1; IndexSort ++) {\r
- E820Table[IndexSort].BaseAddr = E820Table[IndexSort + 1].BaseAddr;\r
- E820Table[IndexSort].Length = E820Table[IndexSort + 1].Length;\r
- E820Table[IndexSort].Type = E820Table[IndexSort + 1].Type;\r
- }\r
- Index--;\r
- }\r
- }\r
- }\r
+ (E820Table[TempIndex].BaseAddr +E820Table[TempIndex].Length)))\r
+ {\r
+ //\r
+ // Overlap range is found\r
+ //\r
+ ASSERT (E820Table[TempIndex - 1].Type == E820Table[TempIndex].Type);\r
\r
+ if (TempIndex == Index - 1) {\r
+ E820Table[TempIndex].BaseAddr = 0;\r
+ E820Table[TempIndex].Length = 0;\r
+ E820Table[TempIndex].Type = (EFI_ACPI_MEMORY_TYPE)0;\r
+ Index--;\r
+ break;\r
+ } else {\r
+ for (IndexSort = TempIndex; IndexSort < Index - 1; IndexSort++) {\r
+ E820Table[IndexSort].BaseAddr = E820Table[IndexSort + 1].BaseAddr;\r
+ E820Table[IndexSort].Length = E820Table[IndexSort + 1].Length;\r
+ E820Table[IndexSort].Type = E820Table[IndexSort + 1].Type;\r
+ }\r
\r
+ Index--;\r
+ }\r
+ }\r
+ }\r
\r
Private->IntThunk->EfiToLegacy16InitTable.NumberE820Entries = (UINT32)Index;\r
Private->IntThunk->EfiToLegacy16BootTable.NumberE820Entries = (UINT32)Index;\r
- Private->NumberE820Entries = (UINT32)Index;\r
- *Size = (UINTN) (Index * sizeof (EFI_E820_ENTRY64));\r
+ Private->NumberE820Entries = (UINT32)Index;\r
+ *Size = (UINTN)(Index * sizeof (EFI_E820_ENTRY64));\r
\r
//\r
// Determine OS usable memory above 1MB\r
//\r
Private->IntThunk->EfiToLegacy16BootTable.OsMemoryAbove1Mb = 0x0000;\r
for (TempIndex = Above1MIndex; TempIndex < Index; TempIndex++) {\r
- if (E820Table[TempIndex].BaseAddr >= 0x100000 && E820Table[TempIndex].BaseAddr < 0x100000000ULL) { // not include above 4G memory\r
+ if ((E820Table[TempIndex].BaseAddr >= 0x100000) && (E820Table[TempIndex].BaseAddr < 0x100000000ULL)) {\r
+ // not include above 4G memory\r
//\r
// ACPIReclaimMemory is also usable memory for ACPI OS, after OS dumps all ACPI tables.\r
//\r
if ((E820Table[TempIndex].Type == EfiAcpiAddressRangeMemory) || (E820Table[TempIndex].Type == EfiAcpiAddressRangeACPI)) {\r
- Private->IntThunk->EfiToLegacy16BootTable.OsMemoryAbove1Mb += (UINT32) (E820Table[TempIndex].Length);\r
+ Private->IntThunk->EfiToLegacy16BootTable.OsMemoryAbove1Mb += (UINT32)(E820Table[TempIndex].Length);\r
} else {\r
break; // break at first not normal memory, because SMM may use reserved memory.\r
}\r
// Print DEBUG information\r
//\r
for (TempIndex = 0; TempIndex < Index; TempIndex++) {\r
- DEBUG((DEBUG_INFO, "E820[%2d]: 0x%016lx - 0x%016lx, Type = %d\n",\r
+ DEBUG ((\r
+ DEBUG_INFO,\r
+ "E820[%2d]: 0x%016lx - 0x%016lx, Type = %d\n",\r
TempIndex,\r
E820Table[TempIndex].BaseAddr,\r
(E820Table[TempIndex].BaseAddr + E820Table[TempIndex].Length),\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Fill in the standard BDA and EBDA stuff prior to legacy Boot\r
\r
**/\r
EFI_STATUS\r
LegacyBiosCompleteBdaBeforeBoot (\r
- IN LEGACY_BIOS_INSTANCE *Private\r
+ IN LEGACY_BIOS_INSTANCE *Private\r
)\r
{\r
- BDA_STRUC *Bda;\r
- UINT16 MachineConfig;\r
- DEVICE_PRODUCER_DATA_HEADER *SioPtr;\r
+ BDA_STRUC *Bda;\r
+ UINT16 MachineConfig;\r
+ DEVICE_PRODUCER_DATA_HEADER *SioPtr;\r
\r
- Bda = (BDA_STRUC *) ((UINTN) 0x400);\r
+ Bda = (BDA_STRUC *)((UINTN)0x400);\r
MachineConfig = 0;\r
\r
- SioPtr = &(Private->IntThunk->EfiToLegacy16BootTable.SioData);\r
- Bda->Com1 = SioPtr->Serial[0].Address;\r
- Bda->Com2 = SioPtr->Serial[1].Address;\r
- Bda->Com3 = SioPtr->Serial[2].Address;\r
- Bda->Com4 = SioPtr->Serial[3].Address;\r
+ SioPtr = &(Private->IntThunk->EfiToLegacy16BootTable.SioData);\r
+ Bda->Com1 = SioPtr->Serial[0].Address;\r
+ Bda->Com2 = SioPtr->Serial[1].Address;\r
+ Bda->Com3 = SioPtr->Serial[2].Address;\r
+ Bda->Com4 = SioPtr->Serial[3].Address;\r
\r
if (SioPtr->Serial[0].Address != 0x00) {\r
MachineConfig += 0x200;\r
MachineConfig += 0x4000;\r
}\r
\r
- Bda->NumberOfDrives = (UINT8) (Bda->NumberOfDrives + Private->IdeDriveCount);\r
+ Bda->NumberOfDrives = (UINT8)(Bda->NumberOfDrives + Private->IdeDriveCount);\r
if (SioPtr->Floppy.NumberOfFloppy != 0x00) {\r
- MachineConfig = (UINT16) (MachineConfig + 0x01 + (SioPtr->Floppy.NumberOfFloppy - 1) * 0x40);\r
- Bda->FloppyXRate = 0x07;\r
+ MachineConfig = (UINT16)(MachineConfig + 0x01 + (SioPtr->Floppy.NumberOfFloppy - 1) * 0x40);\r
+ Bda->FloppyXRate = 0x07;\r
}\r
\r
- Bda->Lpt1_2Timeout = 0x1414;\r
- Bda->Lpt3_4Timeout = 0x1414;\r
- Bda->Com1_2Timeout = 0x0101;\r
- Bda->Com3_4Timeout = 0x0101;\r
+ Bda->Lpt1_2Timeout = 0x1414;\r
+ Bda->Lpt3_4Timeout = 0x1414;\r
+ Bda->Com1_2Timeout = 0x0101;\r
+ Bda->Com3_4Timeout = 0x0101;\r
\r
//\r
// Force VGA and Coprocessor, indicate 101/102 keyboard\r
//\r
- MachineConfig = (UINT16) (MachineConfig + 0x00 + 0x02 + (SioPtr->MousePresent * 0x04));\r
- Bda->MachineConfig = MachineConfig;\r
+ MachineConfig = (UINT16)(MachineConfig + 0x00 + 0x02 + (SioPtr->MousePresent * 0x04));\r
+ Bda->MachineConfig = MachineConfig;\r
\r
return EFI_SUCCESS;\r
}\r
EFI_STATUS\r
EFIAPI\r
LegacyBiosUpdateKeyboardLedStatus (\r
- IN EFI_LEGACY_BIOS_PROTOCOL *This,\r
- IN UINT8 Leds\r
+ IN EFI_LEGACY_BIOS_PROTOCOL *This,\r
+ IN UINT8 Leds\r
)\r
{\r
- LEGACY_BIOS_INSTANCE *Private;\r
- BDA_STRUC *Bda;\r
- UINT8 LocalLeds;\r
- EFI_IA32_REGISTER_SET Regs;\r
+ LEGACY_BIOS_INSTANCE *Private;\r
+ BDA_STRUC *Bda;\r
+ UINT8 LocalLeds;\r
+ EFI_IA32_REGISTER_SET Regs;\r
\r
- Private = LEGACY_BIOS_INSTANCE_FROM_THIS (This);\r
+ Private = LEGACY_BIOS_INSTANCE_FROM_THIS (This);\r
\r
ACCESS_PAGE0_CODE (\r
- Bda = (BDA_STRUC *) ((UINTN) 0x400);\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
+ 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
Regs.H.CL = Leds;\r
\r
Private->LegacyBios.FarCall86 (\r
- &Private->LegacyBios,\r
- Private->Legacy16Table->Compatibility16CallSegment,\r
- Private->Legacy16Table->Compatibility16CallOffset,\r
- &Regs,\r
- NULL,\r
- 0\r
- );\r
+ &Private->LegacyBios,\r
+ Private->Legacy16Table->Compatibility16CallSegment,\r
+ Private->Legacy16Table->Compatibility16CallOffset,\r
+ &Regs,\r
+ NULL,\r
+ 0\r
+ );\r
\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Fill in the standard CMOS stuff prior to legacy Boot\r
\r
**/\r
EFI_STATUS\r
LegacyBiosCompleteStandardCmosBeforeBoot (\r
- IN LEGACY_BIOS_INSTANCE *Private\r
+ IN LEGACY_BIOS_INSTANCE *Private\r
)\r
{\r
UINT8 Bda;\r
//\r
ACCESS_PAGE0_CODE (\r
Bda = (UINT8)(*((UINT8 *)((UINTN)0x410)) | BIT3);\r
- );\r
+ );\r
\r
//\r
// Force display enabled\r
//\r
Size = (15 * SIZE_1MB) >> 10;\r
if (Private->IntThunk->EfiToLegacy16InitTable.OsMemoryAbove1Mb < (15 * SIZE_1MB)) {\r
- Size = Private->IntThunk->EfiToLegacy16InitTable.OsMemoryAbove1Mb >> 10;\r
+ Size = Private->IntThunk->EfiToLegacy16InitTable.OsMemoryAbove1Mb >> 10;\r
}\r
\r
LegacyWriteStandardCmos (CMOS_17, (UINT8)(Size & 0xFF));\r
**/\r
EFI_STATUS\r
RelocateImageUnder4GIfNeeded (\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
+ IN EFI_HANDLE ImageHandle,\r
+ IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
{\r
return EFI_SUCCESS;\r