// Global variable for this FVB driver which contains\r
// the private data of all firmware volume block instances\r
//\r
-FWB_GLOBAL mFvbModuleGlobal;\r
+FWB_GLOBAL mFvbModuleGlobal;\r
\r
-FV_MEMMAP_DEVICE_PATH mFvMemmapDevicePathTemplate = {\r
+FV_MEMMAP_DEVICE_PATH mFvMemmapDevicePathTemplate = {\r
{\r
{\r
HARDWARE_DEVICE_PATH,\r
}\r
},\r
EfiMemoryMappedIO,\r
- (EFI_PHYSICAL_ADDRESS) 0,\r
- (EFI_PHYSICAL_ADDRESS) 0,\r
+ (EFI_PHYSICAL_ADDRESS)0,\r
+ (EFI_PHYSICAL_ADDRESS)0,\r
},\r
{\r
END_DEVICE_PATH_TYPE,\r
}\r
};\r
\r
-FV_PIWG_DEVICE_PATH mFvPIWGDevicePathTemplate = {\r
+FV_PIWG_DEVICE_PATH mFvPIWGDevicePathTemplate = {\r
{\r
{\r
MEDIA_DEVICE_PATH,\r
}\r
};\r
\r
-\r
-EFI_FW_VOL_BLOCK_DEVICE mFvbDeviceTemplate = {\r
+EFI_FW_VOL_BLOCK_DEVICE mFvbDeviceTemplate = {\r
FVB_DEVICE_SIGNATURE,\r
NULL,\r
0, // Instance\r
} // FwVolBlockInstance\r
};\r
\r
-\r
/**\r
Get the pointer to EFI_FW_VOL_INSTANCE from the buffer pointed\r
by mFvbModuleGlobal.FvInstance based on a index.\r
**/\r
EFI_FW_VOL_INSTANCE *\r
GetFvbInstance (\r
- IN UINTN Instance\r
+ IN UINTN Instance\r
)\r
{\r
- EFI_FW_VOL_INSTANCE *FwhRecord;\r
+ EFI_FW_VOL_INSTANCE *FwhRecord;\r
\r
if ( Instance >= mFvbModuleGlobal.NumFv ) {\r
ASSERT_EFI_ERROR (EFI_INVALID_PARAMETER);\r
//\r
FwhRecord = mFvbModuleGlobal.FvInstance;\r
while ( Instance > 0 ) {\r
- FwhRecord = (EFI_FW_VOL_INSTANCE *) ((UINTN)((UINT8 *)FwhRecord) +\r
- FwhRecord->VolumeHeader.HeaderLength +\r
- (sizeof (EFI_FW_VOL_INSTANCE) - sizeof (EFI_FIRMWARE_VOLUME_HEADER)));\r
+ FwhRecord = (EFI_FW_VOL_INSTANCE *)((UINTN)((UINT8 *)FwhRecord) +\r
+ FwhRecord->VolumeHeader.HeaderLength +\r
+ (sizeof (EFI_FW_VOL_INSTANCE) - sizeof (EFI_FIRMWARE_VOLUME_HEADER)));\r
Instance--;\r
}\r
\r
return FwhRecord;\r
-\r
}\r
\r
-\r
/**\r
Get the EFI_FVB_ATTRIBUTES_2 of a FV.\r
\r
STATIC\r
EFI_FVB_ATTRIBUTES_2\r
FvbGetVolumeAttributes (\r
- IN UINTN Instance\r
+ IN UINTN Instance\r
)\r
{\r
- EFI_FW_VOL_INSTANCE * FwInstance;\r
- FwInstance = GetFvbInstance(Instance);\r
+ EFI_FW_VOL_INSTANCE *FwInstance;\r
+\r
+ FwInstance = GetFvbInstance (Instance);\r
ASSERT (FwInstance != NULL);\r
\r
if (FwInstance == NULL) {\r
return FwInstance->VolumeHeader.Attributes;\r
}\r
\r
-\r
-\r
/**\r
Retrieves the starting address of an LBA in an FV. It also\r
return a few other attribut of the FV.\r
STATIC\r
EFI_STATUS\r
FvbGetLbaAddress (\r
- IN UINTN Instance,\r
- IN EFI_LBA Lba,\r
- OUT UINTN *LbaAddress,\r
- OUT UINTN *LbaLength,\r
- OUT UINTN *NumOfBlocks\r
+ IN UINTN Instance,\r
+ IN EFI_LBA Lba,\r
+ OUT UINTN *LbaAddress,\r
+ OUT UINTN *LbaLength,\r
+ OUT UINTN *NumOfBlocks\r
)\r
{\r
- UINT32 NumBlocks;\r
- UINT32 BlockLength;\r
- UINTN Offset;\r
- EFI_LBA StartLba;\r
- EFI_LBA NextLba;\r
- EFI_FW_VOL_INSTANCE *FwhInstance;\r
- EFI_FV_BLOCK_MAP_ENTRY *BlockMap;\r
+ UINT32 NumBlocks;\r
+ UINT32 BlockLength;\r
+ UINTN Offset;\r
+ EFI_LBA StartLba;\r
+ EFI_LBA NextLba;\r
+ EFI_FW_VOL_INSTANCE *FwhInstance;\r
+ EFI_FV_BLOCK_MAP_ENTRY *BlockMap;\r
\r
//\r
// Find the right instance of the FVB private data\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- StartLba = 0;\r
- Offset = 0;\r
- BlockMap = &FwhInstance->VolumeHeader.BlockMap[0];\r
+ StartLba = 0;\r
+ Offset = 0;\r
+ BlockMap = &FwhInstance->VolumeHeader.BlockMap[0];\r
ASSERT (BlockMap != NULL);\r
\r
//\r
BlockLength = BlockMap->Length;\r
}\r
\r
- if ( NumBlocks == 0 || BlockLength == 0) {\r
+ if ((NumBlocks == 0) || (BlockLength == 0)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
//\r
// The map entry found\r
//\r
- if (Lba >= StartLba && Lba < NextLba) {\r
- Offset = Offset + (UINTN)MultU64x32((Lba - StartLba), BlockLength);\r
+ if ((Lba >= StartLba) && (Lba < NextLba)) {\r
+ Offset = Offset + (UINTN)MultU64x32 ((Lba - StartLba), BlockLength);\r
if (LbaAddress != NULL) {\r
*LbaAddress = FwhInstance->FvBase + Offset;\r
}\r
if (NumOfBlocks != NULL) {\r
*NumOfBlocks = (UINTN)(NextLba - Lba);\r
}\r
+\r
return EFI_SUCCESS;\r
}\r
\r
- StartLba = NextLba;\r
- Offset = Offset + NumBlocks * BlockLength;\r
+ StartLba = NextLba;\r
+ Offset = Offset + NumBlocks * BlockLength;\r
BlockMap++;\r
}\r
}\r
\r
-\r
/**\r
Reads specified number of bytes into a buffer from the specified block\r
\r
STATIC\r
EFI_STATUS\r
FvbReadBlock (\r
- IN UINTN Instance,\r
- IN EFI_LBA Lba,\r
- IN UINTN BlockOffset,\r
- IN OUT UINTN *NumBytes,\r
- IN UINT8 *Buffer\r
+ IN UINTN Instance,\r
+ IN EFI_LBA Lba,\r
+ IN UINTN BlockOffset,\r
+ IN OUT UINTN *NumBytes,\r
+ IN UINT8 *Buffer\r
)\r
{\r
- EFI_FVB_ATTRIBUTES_2 Attributes;\r
- UINTN LbaAddress;\r
- UINTN LbaLength;\r
- EFI_STATUS Status;\r
- EFI_STATUS ReadStatus;\r
+ EFI_FVB_ATTRIBUTES_2 Attributes;\r
+ UINTN LbaAddress;\r
+ UINTN LbaLength;\r
+ EFI_STATUS Status;\r
+ EFI_STATUS ReadStatus;\r
\r
- if ( (NumBytes == NULL) || (Buffer == NULL)) {\r
+ if ((NumBytes == NULL) || (Buffer == NULL)) {\r
return (EFI_INVALID_PARAMETER);\r
}\r
+\r
if (*NumBytes == 0) {\r
return (EFI_INVALID_PARAMETER);\r
}\r
\r
Status = FvbGetLbaAddress (Instance, Lba, &LbaAddress, &LbaLength, NULL);\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
\r
Attributes = FvbGetVolumeAttributes (Instance);\r
\r
- if ( (Attributes & EFI_FVB2_READ_STATUS) == 0) {\r
+ if ((Attributes & EFI_FVB2_READ_STATUS) == 0) {\r
return (EFI_ACCESS_DENIED);\r
}\r
\r
if (BlockOffset > LbaLength) {\r
- return (EFI_INVALID_PARAMETER);\r
+ return (EFI_INVALID_PARAMETER);\r
}\r
\r
- if (LbaLength < ( *NumBytes + BlockOffset ) ) {\r
- *NumBytes = (UINT32) (LbaLength - BlockOffset);\r
- Status = EFI_BAD_BUFFER_SIZE;\r
+ if (LbaLength < (*NumBytes + BlockOffset)) {\r
+ *NumBytes = (UINT32)(LbaLength - BlockOffset);\r
+ Status = EFI_BAD_BUFFER_SIZE;\r
}\r
\r
ReadStatus = LibFvbFlashDeviceRead (LbaAddress + BlockOffset, NumBytes, Buffer);\r
- if (EFI_ERROR(ReadStatus)) {\r
+ if (EFI_ERROR (ReadStatus)) {\r
return ReadStatus;\r
}\r
\r
return Status;\r
}\r
\r
-\r
/**\r
Writes specified number of bytes from the input buffer to the block\r
\r
**/\r
EFI_STATUS\r
FvbWriteBlock (\r
- IN UINTN Instance,\r
- IN EFI_LBA Lba,\r
- IN UINTN BlockOffset,\r
- IN OUT UINTN *NumBytes,\r
- IN UINT8 *Buffer\r
+ IN UINTN Instance,\r
+ IN EFI_LBA Lba,\r
+ IN UINTN BlockOffset,\r
+ IN OUT UINTN *NumBytes,\r
+ IN UINT8 *Buffer\r
)\r
{\r
- EFI_FVB_ATTRIBUTES_2 Attributes;\r
- UINTN LbaAddress;\r
- UINTN LbaLength;\r
- EFI_STATUS Status;\r
+ EFI_FVB_ATTRIBUTES_2 Attributes;\r
+ UINTN LbaAddress;\r
+ UINTN LbaLength;\r
+ EFI_STATUS Status;\r
\r
- if ( (NumBytes == NULL) || (Buffer == NULL)) {\r
+ if ((NumBytes == NULL) || (Buffer == NULL)) {\r
return (EFI_INVALID_PARAMETER);\r
}\r
+\r
if (*NumBytes == 0) {\r
return (EFI_INVALID_PARAMETER);\r
}\r
\r
Status = FvbGetLbaAddress (Instance, Lba, &LbaAddress, &LbaLength, NULL);\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
\r
// Check if the FV is write enabled\r
//\r
Attributes = FvbGetVolumeAttributes (Instance);\r
- if ( (Attributes & EFI_FVB2_WRITE_STATUS) == 0) {\r
+ if ((Attributes & EFI_FVB2_WRITE_STATUS) == 0) {\r
return EFI_ACCESS_DENIED;\r
}\r
\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- if ( LbaLength < ( *NumBytes + BlockOffset ) ) {\r
- DEBUG ((DEBUG_ERROR,\r
+ if ( LbaLength < (*NumBytes + BlockOffset)) {\r
+ DEBUG ((\r
+ DEBUG_ERROR,\r
"FvWriteBlock: Reducing Numbytes from 0x%x to 0x%x\n",\r
- *NumBytes, (UINT32)(LbaLength - BlockOffset)));\r
- *NumBytes = (UINT32) (LbaLength - BlockOffset);\r
+ *NumBytes,\r
+ (UINT32)(LbaLength - BlockOffset)\r
+ ));\r
+ *NumBytes = (UINT32)(LbaLength - BlockOffset);\r
return EFI_BAD_BUFFER_SIZE;\r
}\r
\r
Status = LibFvbFlashDeviceWrite (LbaAddress + BlockOffset, NumBytes, Buffer);\r
\r
LibFvbFlashDeviceBlockLock (LbaAddress, LbaLength, TRUE);\r
- WriteBackInvalidateDataCacheRange ((VOID *) (LbaAddress + BlockOffset), *NumBytes);\r
+ WriteBackInvalidateDataCacheRange ((VOID *)(LbaAddress + BlockOffset), *NumBytes);\r
return Status;\r
}\r
\r
-\r
/**\r
Erases and initializes a firmware volume block\r
\r
**/\r
EFI_STATUS\r
FvbEraseBlock (\r
- IN UINTN Instance,\r
- IN EFI_LBA Lba\r
+ IN UINTN Instance,\r
+ IN EFI_LBA Lba\r
)\r
{\r
-\r
- EFI_FVB_ATTRIBUTES_2 Attributes;\r
- UINTN LbaAddress;\r
- UINTN LbaLength;\r
- EFI_STATUS Status;\r
+ EFI_FVB_ATTRIBUTES_2 Attributes;\r
+ UINTN LbaAddress;\r
+ UINTN LbaLength;\r
+ EFI_STATUS Status;\r
\r
//\r
// Check if the FV is write enabled\r
//\r
Attributes = FvbGetVolumeAttributes (Instance);\r
\r
- if( (Attributes & EFI_FVB2_WRITE_STATUS) == 0) {\r
+ if ((Attributes & EFI_FVB2_WRITE_STATUS) == 0) {\r
return (EFI_ACCESS_DENIED);\r
}\r
\r
// Get the starting address of the block for erase.\r
//\r
Status = FvbGetLbaAddress (Instance, Lba, &LbaAddress, &LbaLength, NULL);\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
\r
\r
LibFvbFlashDeviceBlockLock (LbaAddress, LbaLength, TRUE);\r
\r
- WriteBackInvalidateDataCacheRange ((VOID *) LbaAddress, LbaLength);\r
+ WriteBackInvalidateDataCacheRange ((VOID *)LbaAddress, LbaLength);\r
\r
return Status;\r
}\r
STATIC\r
EFI_STATUS\r
FvbSetVolumeAttributes (\r
- IN UINTN Instance,\r
- IN OUT EFI_FVB_ATTRIBUTES_2 *Attributes\r
+ IN UINTN Instance,\r
+ IN OUT EFI_FVB_ATTRIBUTES_2 *Attributes\r
)\r
{\r
- EFI_FW_VOL_INSTANCE *FwhInstance;\r
- EFI_FVB_ATTRIBUTES_2 OldAttributes;\r
- EFI_FVB_ATTRIBUTES_2 *AttribPtr;\r
- EFI_FVB_ATTRIBUTES_2 UnchangedAttributes;\r
- UINT32 Capabilities;\r
- UINT32 OldStatus;\r
- UINT32 NewStatus;\r
+ EFI_FW_VOL_INSTANCE *FwhInstance;\r
+ EFI_FVB_ATTRIBUTES_2 OldAttributes;\r
+ EFI_FVB_ATTRIBUTES_2 *AttribPtr;\r
+ EFI_FVB_ATTRIBUTES_2 UnchangedAttributes;\r
+ UINT32 Capabilities;\r
+ UINT32 OldStatus;\r
+ UINT32 NewStatus;\r
\r
//\r
// Find the right instance of the FVB private data\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- AttribPtr = (EFI_FVB_ATTRIBUTES_2 *) &(FwhInstance->VolumeHeader.Attributes);\r
+ AttribPtr = (EFI_FVB_ATTRIBUTES_2 *)&(FwhInstance->VolumeHeader.Attributes);\r
ASSERT (AttribPtr != NULL);\r
if ( AttribPtr == NULL) {\r
return EFI_INVALID_PARAMETER;\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Retrieves the physical address of the device.\r
\r
EFI_STATUS\r
EFIAPI\r
FvbProtocolGetPhysicalAddress (\r
- IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *This,\r
- OUT EFI_PHYSICAL_ADDRESS *Address\r
+ IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *This,\r
+ OUT EFI_PHYSICAL_ADDRESS *Address\r
)\r
{\r
- EFI_FW_VOL_BLOCK_DEVICE *FvbDevice;\r
- EFI_FW_VOL_INSTANCE *FwhInstance;\r
+ EFI_FW_VOL_BLOCK_DEVICE *FvbDevice;\r
+ EFI_FW_VOL_INSTANCE *FwhInstance;\r
\r
FvbDevice = FVB_DEVICE_FROM_THIS (This);\r
- FwhInstance = GetFvbInstance(FvbDevice->Instance);\r
+ FwhInstance = GetFvbInstance (FvbDevice->Instance);\r
if (FwhInstance == NULL) {\r
return EFI_INVALID_PARAMETER;\r
}\r
return EFI_SUCCESS;\r
}\r
\r
-\r
-\r
/**\r
Retrieve the size of a logical block\r
\r
EFI_STATUS\r
EFIAPI\r
FvbProtocolGetBlockSize (\r
- IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *This,\r
- IN EFI_LBA Lba,\r
- OUT UINTN *BlockSize,\r
- OUT UINTN *NumOfBlocks\r
+ IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *This,\r
+ IN EFI_LBA Lba,\r
+ OUT UINTN *BlockSize,\r
+ OUT UINTN *NumOfBlocks\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
return FvbGetLbaAddress (FvbDevice->Instance, Lba, NULL, BlockSize, NumOfBlocks);\r
}\r
\r
-\r
/**\r
Retrieves Volume attributes. No polarity translations are done.\r
\r
EFI_STATUS\r
EFIAPI\r
FvbProtocolGetAttributes (\r
- IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *This,\r
- OUT EFI_FVB_ATTRIBUTES_2 *Attributes\r
+ IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *This,\r
+ OUT EFI_FVB_ATTRIBUTES_2 *Attributes\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
+ FvbDevice = FVB_DEVICE_FROM_THIS (This);\r
*Attributes = FvbGetVolumeAttributes (FvbDevice->Instance);\r
\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Sets Volume attributes. No polarity translations are done.\r
\r
EFI_STATUS\r
EFIAPI\r
FvbProtocolSetAttributes (\r
- IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *This,\r
- IN OUT EFI_FVB_ATTRIBUTES_2 *Attributes\r
+ IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *This,\r
+ IN OUT EFI_FVB_ATTRIBUTES_2 *Attributes\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_FW_VOL_BLOCK_DEVICE *FvbDevice;\r
+ EFI_STATUS Status;\r
+ EFI_FW_VOL_BLOCK_DEVICE *FvbDevice;\r
\r
FvbDevice = FVB_DEVICE_FROM_THIS (This);\r
Status = FvbSetVolumeAttributes (FvbDevice->Instance, Attributes);\r
return Status;\r
}\r
\r
-\r
-\r
/**\r
This function erases one or more blocks as denoted by the\r
variable argument list. The entire parameter list of blocks must be verified\r
EFI_STATUS\r
EFIAPI\r
FvbProtocolEraseBlocks (\r
- IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *This,\r
+ IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *This,\r
...\r
)\r
{\r
- EFI_FW_VOL_BLOCK_DEVICE *FvbDevice;\r
- EFI_FW_VOL_INSTANCE *FwhInstance;\r
- UINTN NumOfBlocks;\r
- VA_LIST args;\r
- EFI_LBA StartingLba;\r
- UINTN NumOfLba;\r
- EFI_STATUS Status;\r
-\r
- FvbDevice = FVB_DEVICE_FROM_THIS (This);\r
- FwhInstance = GetFvbInstance (FvbDevice->Instance);\r
+ EFI_FW_VOL_BLOCK_DEVICE *FvbDevice;\r
+ EFI_FW_VOL_INSTANCE *FwhInstance;\r
+ UINTN NumOfBlocks;\r
+ VA_LIST args;\r
+ EFI_LBA StartingLba;\r
+ UINTN NumOfLba;\r
+ EFI_STATUS Status;\r
+\r
+ FvbDevice = FVB_DEVICE_FROM_THIS (This);\r
+ FwhInstance = GetFvbInstance (FvbDevice->Instance);\r
if (FwhInstance == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- if ( ( StartingLba + NumOfLba ) > NumOfBlocks ) {\r
+ if ((StartingLba + NumOfLba) > NumOfBlocks ) {\r
return EFI_INVALID_PARAMETER;\r
}\r
- } while ( 1 );\r
+ } while (1);\r
\r
VA_END (args);\r
\r
\r
while ( NumOfLba > 0 ) {\r
Status = FvbEraseBlock (FvbDevice->Instance, StartingLba);\r
- if ( EFI_ERROR(Status)) {\r
+ if ( EFI_ERROR (Status)) {\r
VA_END (args);\r
return Status;\r
}\r
+\r
StartingLba++;\r
NumOfLba--;\r
}\r
- } while ( 1 );\r
+ } while (1);\r
\r
VA_END (args);\r
\r
return EFI_SUCCESS;\r
}\r
\r
-\r
-\r
/**\r
Writes data beginning at Lba:Offset from FV. The write terminates either\r
when *NumBytes of data have been written, or when a block boundary is\r
EFI_STATUS\r
EFIAPI\r
FvbProtocolWrite (\r
- IN CONST EFI_FIRMWARE_VOLUME_BLOCK_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_BLOCK_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
- EFI_STATUS Status;\r
+ EFI_FW_VOL_BLOCK_DEVICE *FvbDevice;\r
+ EFI_STATUS Status;\r
\r
FvbDevice = FVB_DEVICE_FROM_THIS (This);\r
Status = FvbWriteBlock (FvbDevice->Instance, Lba, Offset, NumBytes, Buffer);\r
- DEBUG((DEBUG_VERBOSE,\r
+ DEBUG ((\r
+ DEBUG_VERBOSE,\r
"FvbWrite: Lba: 0x%lx Offset: 0x%x NumBytes: 0x%x, Buffer: 0x%x Status:%r\n",\r
- Lba, Offset, *NumBytes, Buffer, Status));\r
+ Lba,\r
+ Offset,\r
+ *NumBytes,\r
+ Buffer,\r
+ Status\r
+ ));\r
\r
return Status;\r
}\r
\r
-\r
/**\r
Reads data beginning at Lba:Offset from FV. The Read terminates either\r
when *NumBytes of data have been read, or when a block boundary is\r
EFI_STATUS\r
EFIAPI\r
FvbProtocolRead (\r
- IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *This,\r
- IN EFI_LBA Lba,\r
- IN UINTN Offset,\r
- IN OUT UINTN *NumBytes,\r
- OUT UINT8 *Buffer\r
+ IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *This,\r
+ IN EFI_LBA Lba,\r
+ IN UINTN Offset,\r
+ IN OUT UINTN *NumBytes,\r
+ OUT UINT8 *Buffer\r
)\r
{\r
-\r
- EFI_FW_VOL_BLOCK_DEVICE *FvbDevice;\r
- EFI_STATUS Status;\r
+ EFI_FW_VOL_BLOCK_DEVICE *FvbDevice;\r
+ EFI_STATUS Status;\r
\r
FvbDevice = FVB_DEVICE_FROM_THIS (This);\r
Status = FvbReadBlock (FvbDevice->Instance, Lba, Offset, NumBytes, Buffer);\r
- DEBUG((DEBUG_VERBOSE,\r
+ DEBUG ((\r
+ DEBUG_VERBOSE,\r
"FvbRead: Lba: 0x%lx Offset: 0x%x NumBytes: 0x%x, Buffer: 0x%x, Status:%r\n",\r
- Lba, Offset, *NumBytes, Buffer, Status));\r
+ Lba,\r
+ Offset,\r
+ *NumBytes,\r
+ Buffer,\r
+ Status\r
+ ));\r
\r
return Status;\r
}\r
**/\r
BOOLEAN\r
IsFvHeaderValid (\r
- IN EFI_PHYSICAL_ADDRESS FvBase\r
+ IN EFI_PHYSICAL_ADDRESS FvBase\r
)\r
{\r
- UINT16 Sum;\r
- EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader;\r
+ UINT16 Sum;\r
+ EFI_FIRMWARE_VOLUME_HEADER *FwVolHeader;\r
\r
- FwVolHeader = (EFI_FIRMWARE_VOLUME_HEADER *) (UINTN) FvBase;\r
- if (FvBase == PcdGet32(PcdFlashNvStorageVariableBase)) {\r
- if (CompareMem (&FwVolHeader->FileSystemGuid, &gEfiSystemNvDataFvGuid, sizeof(EFI_GUID)) != 0 ) {\r
- DEBUG((DEBUG_INFO, " --FileSystemGuid not match: %g\n", &FwVolHeader->FileSystemGuid));\r
+ FwVolHeader = (EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)FvBase;\r
+ if (FvBase == PcdGet32 (PcdFlashNvStorageVariableBase)) {\r
+ if (CompareMem (&FwVolHeader->FileSystemGuid, &gEfiSystemNvDataFvGuid, sizeof (EFI_GUID)) != 0 ) {\r
+ DEBUG ((DEBUG_INFO, " --FileSystemGuid not match: %g\n", &FwVolHeader->FileSystemGuid));\r
return FALSE;\r
}\r
} else {\r
- if (CompareMem (&FwVolHeader->FileSystemGuid, &gEfiFirmwareFileSystem2Guid, sizeof(EFI_GUID)) != 0 ) {\r
- DEBUG((DEBUG_INFO, " --not expected guid.\n"));\r
+ if (CompareMem (&FwVolHeader->FileSystemGuid, &gEfiFirmwareFileSystem2Guid, sizeof (EFI_GUID)) != 0 ) {\r
+ DEBUG ((DEBUG_INFO, " --not expected guid.\n"));\r
return FALSE;\r
}\r
}\r
\r
- if ( (FwVolHeader->Revision != EFI_FVH_REVISION) ||\r
- (FwVolHeader->Signature != EFI_FVH_SIGNATURE) ||\r
- (FwVolHeader->FvLength == ((UINTN) -1)) ||\r
- ((FwVolHeader->HeaderLength & 0x01 ) !=0) ) {\r
- DEBUG((DEBUG_INFO, " -- >Revision = 0x%x, Signature = 0x%x\n", FwVolHeader->Revision, FwVolHeader->Signature ));\r
- DEBUG((DEBUG_INFO, " -- >FvLength = 0x%lx, HeaderLength = 0x%x\n", FwVolHeader->FvLength, FwVolHeader->HeaderLength ));\r
+ if ((FwVolHeader->Revision != EFI_FVH_REVISION) ||\r
+ (FwVolHeader->Signature != EFI_FVH_SIGNATURE) ||\r
+ (FwVolHeader->FvLength == ((UINTN)-1)) ||\r
+ ((FwVolHeader->HeaderLength & 0x01) != 0))\r
+ {\r
+ DEBUG ((DEBUG_INFO, " -- >Revision = 0x%x, Signature = 0x%x\n", FwVolHeader->Revision, FwVolHeader->Signature));\r
+ DEBUG ((DEBUG_INFO, " -- >FvLength = 0x%lx, HeaderLength = 0x%x\n", FwVolHeader->FvLength, FwVolHeader->HeaderLength));\r
return FALSE;\r
}\r
\r
- Sum = CalculateSum16 ((UINT16 *) FwVolHeader, FwVolHeader->HeaderLength);\r
+ Sum = CalculateSum16 ((UINT16 *)FwVolHeader, FwVolHeader->HeaderLength);\r
if (Sum != 0) {\r
- DEBUG((DEBUG_INFO, "error: checksum: 0x%04X (expect 0x0)\n", Sum));\r
+ DEBUG ((DEBUG_INFO, "error: checksum: 0x%04X (expect 0x0)\n", Sum));\r
return FALSE;\r
}\r
\r
return TRUE;\r
}\r
\r
-\r
/**\r
Get intial variable data.\r
\r
**/\r
EFI_STATUS\r
GetInitialVariableData (\r
- OUT VOID **VarData,\r
- OUT UINTN *VarSize\r
+ OUT VOID **VarData,\r
+ OUT UINTN *VarSize\r
)\r
{\r
EFI_STATUS Status;\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- Status = GetSectionFromAnyFv (PcdGetPtr(PcdNvsDataFile), EFI_SECTION_RAW, 0, &ImageData, &ImageSize);\r
+ Status = GetSectionFromAnyFv (PcdGetPtr (PcdNvsDataFile), EFI_SECTION_RAW, 0, &ImageData, &ImageSize);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
\r
- FvHeader = (EFI_FIRMWARE_VOLUME_HEADER *) ImageData;\r
- VariableStore = (VARIABLE_STORE_HEADER *) ((UINT8 *)ImageData + FvHeader->HeaderLength);\r
+ FvHeader = (EFI_FIRMWARE_VOLUME_HEADER *)ImageData;\r
+ VariableStore = (VARIABLE_STORE_HEADER *)((UINT8 *)ImageData + FvHeader->HeaderLength);\r
VarEndAddr = (UINTN)VariableStore + VariableStore->Size;\r
- Variable = (AUTHENTICATED_VARIABLE_HEADER *) HEADER_ALIGN (VariableStore + 1);\r
+ Variable = (AUTHENTICATED_VARIABLE_HEADER *)HEADER_ALIGN (VariableStore + 1);\r
*VarData = (VOID *)Variable;\r
while (((UINTN)Variable < VarEndAddr)) {\r
if (Variable->StartId != VARIABLE_DATA) {\r
break;\r
}\r
+\r
VariableSize = sizeof (AUTHENTICATED_VARIABLE_HEADER) + Variable->DataSize + Variable->NameSize;\r
- Variable = (AUTHENTICATED_VARIABLE_HEADER *) HEADER_ALIGN ((UINTN) Variable + VariableSize);\r
+ Variable = (AUTHENTICATED_VARIABLE_HEADER *)HEADER_ALIGN ((UINTN)Variable + VariableSize);\r
}\r
\r
*VarSize = (UINTN)Variable - HEADER_ALIGN (VariableStore + 1);\r
VOID\r
)\r
{\r
- EFI_FW_VOL_INSTANCE *FwVolInstance;\r
- EFI_FIRMWARE_VOLUME_HEADER *FvHeader;\r
- EFI_FV_BLOCK_MAP_ENTRY *BlockMap;\r
- EFI_PHYSICAL_ADDRESS BaseAddress;\r
- UINTN WriteAddr;\r
- EFI_STATUS Status;\r
- UINTN BufferSize;\r
- UINTN Length;\r
- VARIABLE_STORE_HEADER VariableStore;\r
- VOID *VarData;\r
+ EFI_FW_VOL_INSTANCE *FwVolInstance;\r
+ EFI_FIRMWARE_VOLUME_HEADER *FvHeader;\r
+ EFI_FV_BLOCK_MAP_ENTRY *BlockMap;\r
+ EFI_PHYSICAL_ADDRESS BaseAddress;\r
+ UINTN WriteAddr;\r
+ EFI_STATUS Status;\r
+ UINTN BufferSize;\r
+ UINTN Length;\r
+ VARIABLE_STORE_HEADER VariableStore;\r
+ VOID *VarData;\r
\r
InitVariableStore ();\r
- BaseAddress = PcdGet32(PcdFlashNvStorageVariableBase);\r
- FvHeader = (EFI_FIRMWARE_VOLUME_HEADER *) (UINTN) BaseAddress;\r
+ BaseAddress = PcdGet32 (PcdFlashNvStorageVariableBase);\r
+ FvHeader = (EFI_FIRMWARE_VOLUME_HEADER *)(UINTN)BaseAddress;\r
\r
//\r
// Check FV header and variable store header\r
LibFvbFlashDeviceBlockLock ((UINTN)BaseAddress, FvHeader->BlockMap->Length, FALSE);\r
\r
Status = LibFvbFlashDeviceBlockErase ((UINTN)BaseAddress, FvHeader->BlockMap->Length);\r
- ASSERT_EFI_ERROR(Status);\r
+ ASSERT_EFI_ERROR (Status);\r
\r
- Length = FvHeader->HeaderLength;\r
- WriteAddr = (UINTN)BaseAddress;\r
- Status = LibFvbFlashDeviceWrite (WriteAddr, &Length, (UINT8 *) FvHeader);\r
+ Length = FvHeader->HeaderLength;\r
+ WriteAddr = (UINTN)BaseAddress;\r
+ Status = LibFvbFlashDeviceWrite (WriteAddr, &Length, (UINT8 *)FvHeader);\r
WriteAddr += Length;\r
- ASSERT_EFI_ERROR(Status);\r
+ ASSERT_EFI_ERROR (Status);\r
\r
//\r
// Write back variable store header\r
//\r
- VariableStore.Size = PcdGet32(PcdFlashNvStorageVariableSize) - FvHeader->HeaderLength;\r
+ VariableStore.Size = PcdGet32 (PcdFlashNvStorageVariableSize) - FvHeader->HeaderLength;\r
VariableStore.Format = VARIABLE_STORE_FORMATTED;\r
VariableStore.State = VARIABLE_STORE_HEALTHY;\r
CopyGuid (&VariableStore.Signature, &gEfiAuthenticatedVariableGuid);\r
BufferSize = sizeof (VARIABLE_STORE_HEADER);\r
- Status = LibFvbFlashDeviceWrite (WriteAddr, &BufferSize, (UINT8 *) &VariableStore);\r
+ Status = LibFvbFlashDeviceWrite (WriteAddr, &BufferSize, (UINT8 *)&VariableStore);\r
WriteAddr += BufferSize;\r
- ASSERT_EFI_ERROR(Status);\r
+ ASSERT_EFI_ERROR (Status);\r
\r
//\r
// Write initial variable data if found\r
//\r
Status = GetInitialVariableData (&VarData, &Length);\r
if (!EFI_ERROR (Status)) {\r
- Status = LibFvbFlashDeviceWrite (WriteAddr, &Length, (UINT8 *) VarData);\r
- ASSERT_EFI_ERROR(Status);\r
+ Status = LibFvbFlashDeviceWrite (WriteAddr, &Length, (UINT8 *)VarData);\r
+ ASSERT_EFI_ERROR (Status);\r
}\r
\r
LibFvbFlashDeviceBlockLock ((UINTN)BaseAddress, FvHeader->BlockMap->Length, TRUE);\r
- WriteBackInvalidateDataCacheRange ((VOID *) (UINTN) BaseAddress, FvHeader->BlockMap->Length);\r
+ WriteBackInvalidateDataCacheRange ((VOID *)(UINTN)BaseAddress, FvHeader->BlockMap->Length);\r
}\r
\r
//\r
// Create a new FW volume instance for NVS variable\r
//\r
BufferSize = FvHeader->HeaderLength + sizeof (EFI_FW_VOL_INSTANCE) - sizeof (EFI_FIRMWARE_VOLUME_HEADER);\r
- FwVolInstance = (EFI_FW_VOL_INSTANCE *) AllocateRuntimeZeroPool (BufferSize);\r
+ FwVolInstance = (EFI_FW_VOL_INSTANCE *)AllocateRuntimeZeroPool (BufferSize);\r
if (FwVolInstance == NULL) {\r
return EFI_OUT_OF_RESOURCES;\r
}\r
+\r
FwVolInstance->FvBase = (UINTN)BaseAddress;\r
CopyMem (&FwVolInstance->VolumeHeader, FvHeader, FvHeader->HeaderLength);\r
\r
// Process the block map for each FV. Assume it has same block size.\r
//\r
FwVolInstance->NumOfBlocks = 0;\r
- FvHeader = &FwVolInstance->VolumeHeader;\r
+ FvHeader = &FwVolInstance->VolumeHeader;\r
for (BlockMap = FvHeader->BlockMap; BlockMap->NumBlocks != 0; BlockMap++) {\r
FwVolInstance->NumOfBlocks += BlockMap->NumBlocks;\r
}\r