//\r
// This is needed for runtime variable access.\r
//\r
-EFI_EVENT mEmuVarsFvbAddrChangeEvent = NULL;\r
+EFI_EVENT mEmuVarsFvbAddrChangeEvent = NULL;\r
\r
//\r
// This is the single instance supported by this driver. It\r
// supports the FVB and Device Path protocols.\r
//\r
-EFI_FW_VOL_BLOCK_DEVICE mEmuVarsFvb = {\r
+EFI_FW_VOL_BLOCK_DEVICE mEmuVarsFvb = {\r
FVB_DEVICE_SIGNATURE,\r
{ // DevicePath\r
{\r
}\r
}\r
},\r
- NULL, // BufferPtr\r
+ NULL, // BufferPtr\r
EMU_FVB_BLOCK_SIZE, // BlockSize\r
- EMU_FVB_SIZE, // Size\r
+ EMU_FVB_SIZE, // Size\r
{ // FwVolBlockInstance\r
FvbProtocolGetAttributes,\r
FvbProtocolSetAttributes,\r
},\r
};\r
\r
-\r
/**\r
Notification function of EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE.\r
\r
VOID\r
EFIAPI\r
FvbVirtualAddressChangeEvent (\r
- IN EFI_EVENT Event,\r
- IN VOID *Context\r
+ IN EFI_EVENT Event,\r
+ IN VOID *Context\r
)\r
{\r
EfiConvertPointer (0x0, &mEmuVarsFvb.BufferPtr);\r
}\r
\r
-\r
//\r
// FVB protocol APIs\r
//\r
EFI_STATUS\r
EFIAPI\r
FvbProtocolGetPhysicalAddress (\r
- IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,\r
- OUT EFI_PHYSICAL_ADDRESS *Address\r
+ IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,\r
+ OUT EFI_PHYSICAL_ADDRESS *Address\r
)\r
{\r
- EFI_FW_VOL_BLOCK_DEVICE *FvbDevice;\r
+ EFI_FW_VOL_BLOCK_DEVICE *FvbDevice;\r
\r
FvbDevice = FVB_DEVICE_FROM_THIS (This);\r
\r
- *Address = (EFI_PHYSICAL_ADDRESS)(UINTN) FvbDevice->BufferPtr;\r
+ *Address = (EFI_PHYSICAL_ADDRESS)(UINTN)FvbDevice->BufferPtr;\r
\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
The GetBlockSize() function retrieves the size of the requested\r
block. It also returns the number of additional blocks with\r
EFI_STATUS\r
EFIAPI\r
FvbProtocolGetBlockSize (\r
- IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,\r
- IN EFI_LBA Lba,\r
- OUT UINTN *BlockSize,\r
- OUT UINTN *NumberOfBlocks\r
+ IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,\r
+ IN EFI_LBA Lba,\r
+ OUT UINTN *BlockSize,\r
+ OUT UINTN *NumberOfBlocks\r
)\r
{\r
- EFI_FW_VOL_BLOCK_DEVICE *FvbDevice;\r
+ EFI_FW_VOL_BLOCK_DEVICE *FvbDevice;\r
\r
if (Lba >= EMU_FVB_NUM_TOTAL_BLOCKS) {\r
return EFI_INVALID_PARAMETER;\r
\r
FvbDevice = FVB_DEVICE_FROM_THIS (This);\r
\r
- *BlockSize = FvbDevice->BlockSize;\r
+ *BlockSize = FvbDevice->BlockSize;\r
*NumberOfBlocks = (UINTN)(EMU_FVB_NUM_TOTAL_BLOCKS - Lba);\r
\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
The GetAttributes() function retrieves the attributes and\r
current settings of the block. Status Codes Returned\r
EFI_STATUS\r
EFIAPI\r
FvbProtocolGetAttributes (\r
- IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,\r
- OUT EFI_FVB_ATTRIBUTES_2 *Attributes\r
+ IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,\r
+ OUT EFI_FVB_ATTRIBUTES_2 *Attributes\r
)\r
{\r
*Attributes =\r
- (EFI_FVB_ATTRIBUTES_2) (\r
- EFI_FVB2_READ_ENABLED_CAP |\r
- EFI_FVB2_READ_STATUS |\r
- EFI_FVB2_WRITE_ENABLED_CAP |\r
- EFI_FVB2_WRITE_STATUS |\r
- EFI_FVB2_ERASE_POLARITY\r
- );\r
+ (EFI_FVB_ATTRIBUTES_2)(\r
+ EFI_FVB2_READ_ENABLED_CAP |\r
+ EFI_FVB2_READ_STATUS |\r
+ EFI_FVB2_WRITE_ENABLED_CAP |\r
+ EFI_FVB2_WRITE_STATUS |\r
+ EFI_FVB2_ERASE_POLARITY\r
+ );\r
\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
The SetAttributes() function sets configurable firmware volume\r
attributes and returns the new settings of the firmware volume.\r
EFI_STATUS\r
EFIAPI\r
FvbProtocolSetAttributes (\r
- IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,\r
- IN OUT EFI_FVB_ATTRIBUTES_2 *Attributes\r
+ IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,\r
+ IN OUT EFI_FVB_ATTRIBUTES_2 *Attributes\r
)\r
{\r
return EFI_ACCESS_DENIED;\r
}\r
\r
-\r
/**\r
Erases and initializes a firmware volume block.\r
\r
EFI_STATUS\r
EFIAPI\r
FvbProtocolEraseBlocks (\r
- IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,\r
+ IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,\r
...\r
)\r
{\r
- EFI_FW_VOL_BLOCK_DEVICE *FvbDevice;\r
- VA_LIST Args;\r
- EFI_LBA StartingLba;\r
- UINTN NumOfLba;\r
- UINT8 *ErasePtr;\r
- UINTN EraseSize;\r
+ EFI_FW_VOL_BLOCK_DEVICE *FvbDevice;\r
+ VA_LIST Args;\r
+ EFI_LBA StartingLba;\r
+ UINTN NumOfLba;\r
+ UINT8 *ErasePtr;\r
+ UINTN EraseSize;\r
\r
FvbDevice = FVB_DEVICE_FROM_THIS (This);\r
\r
if (StartingLba == EFI_LBA_LIST_TERMINATOR) {\r
break;\r
}\r
+\r
NumOfLba = VA_ARG (Args, UINTN);\r
\r
- if (StartingLba > EMU_FVB_NUM_TOTAL_BLOCKS ||\r
- NumOfLba > EMU_FVB_NUM_TOTAL_BLOCKS - StartingLba) {\r
+ if ((StartingLba > EMU_FVB_NUM_TOTAL_BLOCKS) ||\r
+ (NumOfLba > EMU_FVB_NUM_TOTAL_BLOCKS - StartingLba))\r
+ {\r
VA_END (Args);\r
return EFI_INVALID_PARAMETER;\r
}\r
} while (1);\r
+\r
VA_END (Args);\r
\r
//\r
if (StartingLba == EFI_LBA_LIST_TERMINATOR) {\r
break;\r
}\r
+\r
NumOfLba = VA_ARG (Args, UINTN);\r
\r
- ErasePtr = FvbDevice->BufferPtr;\r
+ ErasePtr = FvbDevice->BufferPtr;\r
ErasePtr += (UINTN)StartingLba * FvbDevice->BlockSize;\r
EraseSize = NumOfLba * FvbDevice->BlockSize;\r
\r
SetMem (ErasePtr, EraseSize, ERASED_UINT8);\r
} while (1);\r
+\r
VA_END (Args);\r
\r
//\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Writes the specified number of bytes from the input buffer to the block.\r
\r
EFI_STATUS\r
EFIAPI\r
FvbProtocolWrite (\r
- IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,\r
- IN EFI_LBA Lba,\r
- IN UINTN Offset,\r
- IN OUT UINTN *NumBytes,\r
- IN UINT8 *Buffer\r
+ IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,\r
+ IN EFI_LBA Lba,\r
+ IN UINTN Offset,\r
+ IN OUT UINTN *NumBytes,\r
+ IN UINT8 *Buffer\r
)\r
{\r
- EFI_FW_VOL_BLOCK_DEVICE *FvbDevice;\r
- UINT8 *FvbDataPtr;\r
- EFI_STATUS Status;\r
+ EFI_FW_VOL_BLOCK_DEVICE *FvbDevice;\r
+ UINT8 *FvbDataPtr;\r
+ EFI_STATUS Status;\r
\r
FvbDevice = FVB_DEVICE_FROM_THIS (This);\r
\r
- if (Lba >= EMU_FVB_NUM_TOTAL_BLOCKS ||\r
- Offset > FvbDevice->BlockSize) {\r
+ if ((Lba >= EMU_FVB_NUM_TOTAL_BLOCKS) ||\r
+ (Offset > FvbDevice->BlockSize))\r
+ {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
Status = EFI_SUCCESS;\r
if (*NumBytes > FvbDevice->BlockSize - Offset) {\r
*NumBytes = FvbDevice->BlockSize - Offset;\r
- Status = EFI_BAD_BUFFER_SIZE;\r
+ Status = EFI_BAD_BUFFER_SIZE;\r
}\r
\r
- FvbDataPtr = FvbDevice->BufferPtr;\r
+ FvbDataPtr = FvbDevice->BufferPtr;\r
FvbDataPtr += (UINTN)Lba * FvbDevice->BlockSize;\r
FvbDataPtr += Offset;\r
\r
return Status;\r
}\r
\r
-\r
/**\r
Reads the specified number of bytes into a buffer from the specified block.\r
\r
EFI_STATUS\r
EFIAPI\r
FvbProtocolRead (\r
- IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,\r
- IN EFI_LBA Lba,\r
- IN UINTN Offset,\r
- IN OUT UINTN *NumBytes,\r
- IN OUT UINT8 *Buffer\r
+ IN CONST EFI_FIRMWARE_VOLUME_BLOCK2_PROTOCOL *This,\r
+ IN EFI_LBA Lba,\r
+ IN UINTN Offset,\r
+ IN OUT UINTN *NumBytes,\r
+ IN OUT UINT8 *Buffer\r
)\r
{\r
- EFI_FW_VOL_BLOCK_DEVICE *FvbDevice;\r
- UINT8 *FvbDataPtr;\r
- EFI_STATUS Status;\r
+ EFI_FW_VOL_BLOCK_DEVICE *FvbDevice;\r
+ UINT8 *FvbDataPtr;\r
+ EFI_STATUS Status;\r
\r
FvbDevice = FVB_DEVICE_FROM_THIS (This);\r
\r
- if (Lba >= EMU_FVB_NUM_TOTAL_BLOCKS ||\r
- Offset > FvbDevice->BlockSize) {\r
+ if ((Lba >= EMU_FVB_NUM_TOTAL_BLOCKS) ||\r
+ (Offset > FvbDevice->BlockSize))\r
+ {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
Status = EFI_SUCCESS;\r
if (*NumBytes > FvbDevice->BlockSize - Offset) {\r
*NumBytes = FvbDevice->BlockSize - Offset;\r
- Status = EFI_BAD_BUFFER_SIZE;\r
+ Status = EFI_BAD_BUFFER_SIZE;\r
}\r
\r
- FvbDataPtr = FvbDevice->BufferPtr;\r
+ FvbDataPtr = FvbDevice->BufferPtr;\r
FvbDataPtr += (UINTN)Lba * FvbDevice->BlockSize;\r
FvbDataPtr += Offset;\r
\r
return Status;\r
}\r
\r
-\r
/**\r
Check the integrity of firmware volume header.\r
\r
**/\r
EFI_STATUS\r
ValidateFvHeader (\r
- IN EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader\r
+ IN EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader\r
)\r
{\r
UINT16 Checksum;\r
(FwVolHeader->Signature != EFI_FVH_SIGNATURE) ||\r
(FwVolHeader->FvLength != EMU_FVB_SIZE) ||\r
(FwVolHeader->HeaderLength != EMU_FV_HEADER_LENGTH)\r
- ) {\r
+ )\r
+ {\r
DEBUG ((DEBUG_INFO, "EMU Variable FVB: Basic FV headers were invalid\n"));\r
return EFI_NOT_FOUND;\r
}\r
+\r
//\r
// Verify the header checksum\r
//\r
- Checksum = CalculateSum16((VOID*) FwVolHeader, FwVolHeader->HeaderLength);\r
+ Checksum = CalculateSum16 ((VOID *)FwVolHeader, FwVolHeader->HeaderLength);\r
\r
if (Checksum != 0) {\r
DEBUG ((DEBUG_INFO, "EMU Variable FVB: FV checksum was invalid\n"));\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Initializes the FV Header and Variable Store Header\r
to support variable operations.\r
**/\r
VOID\r
InitializeFvAndVariableStoreHeaders (\r
- IN VOID *Ptr\r
+ IN VOID *Ptr\r
)\r
{\r
//\r
// Templates for authenticated variable FV header\r
//\r
- STATIC FVB_FV_HDR_AND_VARS_TEMPLATE FvAndAuthenticatedVarTemplate = {\r
+ STATIC FVB_FV_HDR_AND_VARS_TEMPLATE FvAndAuthenticatedVarTemplate = {\r
{ // EFI_FIRMWARE_VOLUME_HEADER FvHdr;\r
// UINT8 ZeroVector[16];\r
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },\r
0,\r
\r
// UINT8 Reserved[1];\r
- {0},\r
+ { 0 },\r
\r
// UINT8 Revision;\r
EFI_FVH_REVISION,\r
{\r
{\r
EMU_FVB_NUM_TOTAL_BLOCKS, // UINT32 NumBlocks;\r
- EMU_FVB_BLOCK_SIZE // UINT32 Length;\r
+ EMU_FVB_BLOCK_SIZE // UINT32 Length;\r
}\r
}\r
},\r
// EFI_FV_BLOCK_MAP_ENTRY EndBlockMap;\r
{ 0, 0 }, // End of block map\r
{ // VARIABLE_STORE_HEADER VarHdr;\r
- // EFI_GUID Signature; // need authenticated variables for secure boot\r
- EFI_AUTHENTICATED_VARIABLE_GUID,\r
+ // EFI_GUID Signature; // need authenticated variables for secure boot\r
+ EFI_AUTHENTICATED_VARIABLE_GUID,\r
\r
// UINT32 Size;\r
(\r
- FixedPcdGet32 (PcdFlashNvStorageVariableSize) -\r
- OFFSET_OF (FVB_FV_HDR_AND_VARS_TEMPLATE, VarHdr)\r
+ FixedPcdGet32 (PcdFlashNvStorageVariableSize) -\r
+ OFFSET_OF (FVB_FV_HDR_AND_VARS_TEMPLATE, VarHdr)\r
),\r
\r
// UINT8 Format;\r
//\r
// Update the checksum for the FV header\r
//\r
- Fv = (EFI_FIRMWARE_VOLUME_HEADER*) Ptr;\r
+ Fv = (EFI_FIRMWARE_VOLUME_HEADER *)Ptr;\r
Fv->Checksum = CalculateCheckSum16 (Ptr, Fv->HeaderLength);\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
FvbInitialize (\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
- EFI_STATUS Status;\r
- VOID *Ptr;\r
- VOID *SubPtr;\r
- BOOLEAN Initialize;\r
- EFI_HANDLE Handle;\r
- EFI_PHYSICAL_ADDRESS Address;\r
- RETURN_STATUS PcdStatus;\r
+ EFI_STATUS Status;\r
+ VOID *Ptr;\r
+ VOID *SubPtr;\r
+ BOOLEAN Initialize;\r
+ EFI_HANDLE Handle;\r
+ EFI_PHYSICAL_ADDRESS Address;\r
+ RETURN_STATUS PcdStatus;\r
\r
DEBUG ((DEBUG_INFO, "EMU Variable FVB Started\n"));\r
\r
//\r
// Verify that the PCD's are set correctly.\r
//\r
- ASSERT (FixedPcdGet32 (PcdFlashNvStorageFtwSpareSize) %\r
- EMU_FVB_BLOCK_SIZE == 0);\r
+ ASSERT (\r
+ FixedPcdGet32 (PcdFlashNvStorageFtwSpareSize) %\r
+ EMU_FVB_BLOCK_SIZE == 0\r
+ );\r
if (\r
- (PcdGet32 (PcdFlashNvStorageVariableSize) +\r
- PcdGet32 (PcdFlashNvStorageFtwWorkingSize)\r
- ) >\r
- EMU_FVB_NUM_SPARE_BLOCKS * EMU_FVB_BLOCK_SIZE\r
- ) {\r
+ (PcdGet32 (PcdFlashNvStorageVariableSize) +\r
+ PcdGet32 (PcdFlashNvStorageFtwWorkingSize)\r
+ ) >\r
+ EMU_FVB_NUM_SPARE_BLOCKS * EMU_FVB_BLOCK_SIZE\r
+ )\r
+ {\r
DEBUG ((DEBUG_ERROR, "EMU Variable invalid PCD sizes\n"));\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
if (PcdGet64 (PcdFlashNvStorageVariableBase64) != 0) {\r
- DEBUG ((DEBUG_INFO, "Disabling EMU Variable FVB since "\r
- "flash variables appear to be supported.\n"));\r
+ DEBUG ((\r
+ DEBUG_INFO,\r
+ "Disabling EMU Variable FVB since "\r
+ "flash variables appear to be supported.\n"\r
+ ));\r
return EFI_ABORTED;\r
}\r
\r
//\r
Initialize = TRUE;\r
if (PcdGet64 (PcdEmuVariableNvStoreReserved) != 0) {\r
- Ptr = (VOID*)(UINTN) PcdGet64 (PcdEmuVariableNvStoreReserved);\r
+ Ptr = (VOID *)(UINTN)PcdGet64 (PcdEmuVariableNvStoreReserved);\r
DEBUG ((\r
DEBUG_INFO,\r
"EMU Variable FVB: Using pre-reserved block at %p\n",\r
SetMem (Ptr, EMU_FVB_SIZE, ERASED_UINT8);\r
InitializeFvAndVariableStoreHeaders (Ptr);\r
}\r
- PcdStatus = PcdSet64S (PcdFlashNvStorageVariableBase64, (UINT32)(UINTN) Ptr);\r
+\r
+ PcdStatus = PcdSet64S (PcdFlashNvStorageVariableBase64, (UINT32)(UINTN)Ptr);\r
ASSERT_RETURN_ERROR (PcdStatus);\r
\r
//\r
// Initialize the Fault Tolerant Write data area\r
//\r
- SubPtr = (VOID*) ((UINT8*) Ptr + PcdGet32 (PcdFlashNvStorageVariableSize));\r
- PcdStatus = PcdSet32S (PcdFlashNvStorageFtwWorkingBase,\r
- (UINT32)(UINTN) SubPtr);\r
+ SubPtr = (VOID *)((UINT8 *)Ptr + PcdGet32 (PcdFlashNvStorageVariableSize));\r
+ PcdStatus = PcdSet32S (\r
+ PcdFlashNvStorageFtwWorkingBase,\r
+ (UINT32)(UINTN)SubPtr\r
+ );\r
ASSERT_RETURN_ERROR (PcdStatus);\r
\r
//\r
// Initialize the Fault Tolerant Write spare block\r
//\r
- SubPtr = (VOID*) ((UINT8*) Ptr +\r
+ SubPtr = (VOID *)((UINT8 *)Ptr +\r
EMU_FVB_NUM_SPARE_BLOCKS * EMU_FVB_BLOCK_SIZE);\r
- PcdStatus = PcdSet32S (PcdFlashNvStorageFtwSpareBase,\r
- (UINT32)(UINTN) SubPtr);\r
+ PcdStatus = PcdSet32S (\r
+ PcdFlashNvStorageFtwSpareBase,\r
+ (UINT32)(UINTN)SubPtr\r
+ );\r
ASSERT_RETURN_ERROR (PcdStatus);\r
\r
//\r
// Setup FVB device path\r
//\r
- Address = (EFI_PHYSICAL_ADDRESS)(UINTN) Ptr;\r
+ Address = (EFI_PHYSICAL_ADDRESS)(UINTN)Ptr;\r
mEmuVarsFvb.DevicePath.MemMapDevPath.StartingAddress = Address;\r
- mEmuVarsFvb.DevicePath.MemMapDevPath.EndingAddress = Address + EMU_FVB_SIZE - 1;\r
+ mEmuVarsFvb.DevicePath.MemMapDevPath.EndingAddress = Address + EMU_FVB_SIZE - 1;\r
\r
//\r
// Install the protocols\r
\r
return EFI_SUCCESS;\r
}\r
-\r
-\r