X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdeModulePkg%2FUniversal%2FFirmwareVolume%2FFaultTolerantWriteDxe%2FFtwMisc.c;fp=MdeModulePkg%2FUniversal%2FFirmwareVolume%2FFaultTolerantWriteDxe%2FFtwMisc.c;h=1283215864d2a09208e35f8b32545f606b1e880f;hp=a81a67cf30d8eea656fc0e5eeffa7a7566d213a7;hb=276a49b699785cb3faf99744265f7051b08dc20d;hpb=2374b9734b6780b61133ed4a1ec9cec44cf7a4b5 diff --git a/MdeModulePkg/Universal/FirmwareVolume/FaultTolerantWriteDxe/FtwMisc.c b/MdeModulePkg/Universal/FirmwareVolume/FaultTolerantWriteDxe/FtwMisc.c index a81a67cf30..1283215864 100644 --- a/MdeModulePkg/Universal/FirmwareVolume/FaultTolerantWriteDxe/FtwMisc.c +++ b/MdeModulePkg/Universal/FirmwareVolume/FaultTolerantWriteDxe/FtwMisc.c @@ -295,7 +295,7 @@ FlushSpareBlockToTargetBlock ( // Ptr = Buffer; for (Index = 0; Index < FtwLiteDevice->NumberOfSpareBlock; Index += 1) { - Count = FtwLiteDevice->SizeOfSpareBlock; + Count = FtwLiteDevice->BlockSize; Status = FtwLiteDevice->FtwBackupFvb->Read ( FtwLiteDevice->FtwBackupFvb, FtwLiteDevice->FtwSpareLba + Index, @@ -323,10 +323,10 @@ FlushSpareBlockToTargetBlock ( // Ptr = Buffer; for (Index = 0; Index < FtwLiteDevice->NumberOfSpareBlock; Index += 1) { - Count = FtwLiteDevice->SizeOfSpareBlock; + Count = FtwLiteDevice->BlockSize; Status = FvBlock->Write (FvBlock, Lba + Index, 0, &Count, Ptr); if (EFI_ERROR (Status)) { - DEBUG ((EFI_D_FTW_LITE, "FtwLite: FVB Write block - %r\n", Status)); + DEBUG ((EFI_D_ERROR, "FtwLite: FVB Write block - %r\n", Status)); FreePool (Buffer); return Status; } @@ -381,7 +381,11 @@ FlushSpareBlockToWorkingBlock ( return EFI_OUT_OF_RESOURCES; } // - // To guarantee that the WorkingBlockValid is set on spare block + // To guarantee that the WorkingBlockValid is set on spare block + // + // Offset = OFFSET_OF(EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER, + // WorkingBlockValid); + // To skip Signature and Crc: sizeof(EFI_GUID)+sizeof(UINT32). // WorkSpaceLbaOffset = FtwLiteDevice->FtwWorkSpaceLba - FtwLiteDevice->FtwWorkBlockLba; FtwUpdateFvState ( @@ -395,7 +399,7 @@ FlushSpareBlockToWorkingBlock ( // Ptr = Buffer; for (Index = 0; Index < FtwLiteDevice->NumberOfSpareBlock; Index += 1) { - Count = FtwLiteDevice->SizeOfSpareBlock; + Count = FtwLiteDevice->BlockSize; Status = FtwLiteDevice->FtwBackupFvb->Read ( FtwLiteDevice->FtwBackupFvb, FtwLiteDevice->FtwSpareLba + Index, @@ -413,7 +417,7 @@ FlushSpareBlockToWorkingBlock ( // // Clear the CRC and STATE, copy data from spare to working block. // - WorkingBlockHeader = (EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *) (Buffer + (UINTN) WorkSpaceLbaOffset * FtwLiteDevice->SizeOfSpareBlock + FtwLiteDevice->FtwWorkSpaceBase); + WorkingBlockHeader = (EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER *) (Buffer + (UINTN) WorkSpaceLbaOffset * FtwLiteDevice->BlockSize + FtwLiteDevice->FtwWorkSpaceBase); InitWorkSpaceHeader (WorkingBlockHeader); WorkingBlockHeader->WorkingBlockValid = FTW_ERASE_POLARITY; WorkingBlockHeader->WorkingBlockInvalid = FTW_ERASE_POLARITY; @@ -457,7 +461,7 @@ FlushSpareBlockToWorkingBlock ( // Ptr = Buffer; for (Index = 0; Index < FtwLiteDevice->NumberOfSpareBlock; Index += 1) { - Count = FtwLiteDevice->SizeOfSpareBlock; + Count = FtwLiteDevice->BlockSize; Status = FtwLiteDevice->FtwFvBlock->Write ( FtwLiteDevice->FtwFvBlock, FtwLiteDevice->FtwWorkBlockLba + Index, @@ -466,7 +470,7 @@ FlushSpareBlockToWorkingBlock ( Ptr ); if (EFI_ERROR (Status)) { - DEBUG ((EFI_D_FTW_LITE, "FtwLite: FVB Write block - %r\n", Status)); + DEBUG ((EFI_D_ERROR, "FtwLite: FVB Write block - %r\n", Status)); FreePool (Buffer); return Status; }