return EFI_ABORTED;\r
}\r
\r
+ FtwDevice->FtwWorkSpaceHeader->WorkingBlockInvalid = FTW_INVALID_STATE;\r
FtwDevice->FtwWorkSpaceHeader->WorkingBlockValid = FTW_VALID_STATE;\r
\r
return EFI_SUCCESS;\r
Offset = sizeof (EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER);\r
\r
while (FtwHeader->Complete == FTW_VALID_STATE) {\r
- Offset += WRITE_TOTAL_SIZE (FtwHeader->NumberOfWrites, FtwHeader->PrivateDataSize);\r
+ Offset += FTW_WRITE_TOTAL_SIZE (FtwHeader->NumberOfWrites, FtwHeader->PrivateDataSize);\r
//\r
// If Offset exceed the FTW work space boudary, return error.\r
//\r
FtwRecord++;\r
\r
if (FtwWriteHeader->PrivateDataSize != 0) {\r
- FtwRecord = (EFI_FAULT_TOLERANT_WRITE_RECORD *) ((UINTN) FtwRecord + FtwWriteHeader->PrivateDataSize);\r
+ FtwRecord = (EFI_FAULT_TOLERANT_WRITE_RECORD *) ((UINTN) FtwRecord + (UINTN) FtwWriteHeader->PrivateDataSize);\r
}\r
}\r
//\r
// also return the last record.\r
//\r
if (Index == FtwWriteHeader->NumberOfWrites) {\r
- *FtwWriteRecord = (EFI_FAULT_TOLERANT_WRITE_RECORD *) ((UINTN) FtwRecord - RECORD_SIZE (FtwWriteHeader->PrivateDataSize));\r
+ *FtwWriteRecord = (EFI_FAULT_TOLERANT_WRITE_RECORD *) ((UINTN) FtwRecord - FTW_RECORD_SIZE (FtwWriteHeader->PrivateDataSize));\r
return EFI_SUCCESS;\r
}\r
\r
Head = (UINT8 *) FtwHeader;\r
Ptr = (UINT8 *) FtwRecord;\r
\r
- Head += WRITE_TOTAL_SIZE (FtwHeader->NumberOfWrites - 1, FtwHeader->PrivateDataSize);\r
+ Head += FTW_WRITE_TOTAL_SIZE (FtwHeader->NumberOfWrites - 1, FtwHeader->PrivateDataSize);\r
return (BOOLEAN) (Head == Ptr);\r
}\r
\r
}\r
\r
Ptr = (UINT8 *) (*FtwRecord);\r
- Ptr -= RECORD_SIZE (FtwHeader->PrivateDataSize);\r
+ Ptr -= FTW_RECORD_SIZE (FtwHeader->PrivateDataSize);\r
*FtwRecord = (EFI_FAULT_TOLERANT_WRITE_RECORD *) Ptr;\r
return EFI_SUCCESS;\r
}\r
FtwHeader = FtwDevice->FtwLastWriteHeader;\r
Offset = (UINT8 *) FtwHeader - FtwDevice->FtwWorkSpace;\r
if (FtwDevice->FtwWorkSpace[Offset] != FTW_ERASED_BYTE) {\r
- Offset += WRITE_TOTAL_SIZE (FtwHeader->NumberOfWrites, FtwHeader->PrivateDataSize);\r
+ Offset += FTW_WRITE_TOTAL_SIZE (FtwHeader->NumberOfWrites, FtwHeader->PrivateDataSize);\r
}\r
\r
if (!IsErasedFlashBuffer (FtwDevice->FtwWorkSpace + Offset, FtwDevice->FtwWorkSpaceSize - Offset)) {\r
// if (SpareCompleted) THEN Restart to fault tolerant write.\r
//\r
FvbHandle = NULL;\r
- FvbHandle = GetFvbByAddress (FtwDevice->FtwLastWriteRecord->FvBaseAddress, &Fvb);\r
+ FvbHandle = GetFvbByAddress ((EFI_PHYSICAL_ADDRESS) (UINTN) ((INT64) FtwDevice->SpareAreaAddress + FtwDevice->FtwLastWriteRecord->RelativeOffset), &Fvb);\r
if (FvbHandle != NULL) {\r
Status = FtwRestart (&FtwDevice->FtwInstance, FvbHandle);\r
DEBUG ((EFI_D_ERROR, "FtwLite: Restart last write - %r\n", Status));\r