//\r
Ptr = Buffer;\r
for (Index = 0; Index < FtwLiteDevice->NumberOfSpareBlock; Index += 1) {\r
- Count = FtwLiteDevice->SizeOfSpareBlock;\r
+ Count = FtwLiteDevice->BlockSize;\r
Status = FtwLiteDevice->FtwBackupFvb->Read (\r
FtwLiteDevice->FtwBackupFvb,\r
FtwLiteDevice->FtwSpareLba + Index,\r
//\r
Ptr = Buffer;\r
for (Index = 0; Index < FtwLiteDevice->NumberOfSpareBlock; Index += 1) {\r
- Count = FtwLiteDevice->SizeOfSpareBlock;\r
+ Count = FtwLiteDevice->BlockSize;\r
Status = FvBlock->Write (FvBlock, Lba + Index, 0, &Count, Ptr);\r
if (EFI_ERROR (Status)) {\r
- DEBUG ((EFI_D_FTW_LITE, "FtwLite: FVB Write block - %r\n", Status));\r
+ DEBUG ((EFI_D_ERROR, "FtwLite: FVB Write block - %r\n", Status));\r
FreePool (Buffer);\r
return Status;\r
}\r
return EFI_OUT_OF_RESOURCES;\r
}\r
//\r
- // To guarantee that the WorkingBlockValid is set on spare block\r
+ // To guarantee that the WorkingBlockValid is set on spare block\r
+ //\r
+ // Offset = OFFSET_OF(EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER,\r
+ // WorkingBlockValid);\r
+ // To skip Signature and Crc: sizeof(EFI_GUID)+sizeof(UINT32).\r
//\r
WorkSpaceLbaOffset = FtwLiteDevice->FtwWorkSpaceLba - FtwLiteDevice->FtwWorkBlockLba;\r
FtwUpdateFvState (\r
//\r
Ptr = Buffer;\r
for (Index = 0; Index < FtwLiteDevice->NumberOfSpareBlock; Index += 1) {\r
- Count = FtwLiteDevice->SizeOfSpareBlock;\r
+ Count = FtwLiteDevice->BlockSize;\r
Status = FtwLiteDevice->FtwBackupFvb->Read (\r
FtwLiteDevice->FtwBackupFvb,\r
FtwLiteDevice->FtwSpareLba + Index,\r
//\r
// Clear the CRC and STATE, copy data from spare to working block.\r
//\r
- WorkingBlockHeader = (EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *) (Buffer + (UINTN) WorkSpaceLbaOffset * FtwLiteDevice->SizeOfSpareBlock + FtwLiteDevice->FtwWorkSpaceBase);\r
+ WorkingBlockHeader = (EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *) (Buffer + (UINTN) WorkSpaceLbaOffset * FtwLiteDevice->BlockSize + FtwLiteDevice->FtwWorkSpaceBase);\r
InitWorkSpaceHeader (WorkingBlockHeader);\r
WorkingBlockHeader->WorkingBlockValid = FTW_ERASE_POLARITY;\r
WorkingBlockHeader->WorkingBlockInvalid = FTW_ERASE_POLARITY;\r
//\r
Ptr = Buffer;\r
for (Index = 0; Index < FtwLiteDevice->NumberOfSpareBlock; Index += 1) {\r
- Count = FtwLiteDevice->SizeOfSpareBlock;\r
+ Count = FtwLiteDevice->BlockSize;\r
Status = FtwLiteDevice->FtwFvBlock->Write (\r
FtwLiteDevice->FtwFvBlock,\r
FtwLiteDevice->FtwWorkBlockLba + Index,\r
Ptr\r
);\r
if (EFI_ERROR (Status)) {\r
- DEBUG ((EFI_D_FTW_LITE, "FtwLite: FVB Write block - %r\n", Status));\r
+ DEBUG ((EFI_D_ERROR, "FtwLite: FVB Write block - %r\n", Status));\r
FreePool (Buffer);\r
return Status;\r
}\r