audk/MdeModulePkg/Universal/FirmwareVolume/FaultTolerantWriteDxe/Ipf/IpfFtwMisc.c

136 lines
3.1 KiB
C

/** @file
Ipf platform related code to support FtwLite..
Copyright (c) 2006 - 2008, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
#include <FtwLite.h>
//
// MACROs for boot block update
//
#define BOOT_BLOCK_BASE
STATIC
EFI_STATUS
GetSwapState (
IN EFI_FTW_LITE_DEVICE *FtwLiteDevice,
OUT BOOLEAN *SwapState
)
/*++
Routine Description:
Get swap state
Arguments:
FtwLiteDevice - Calling context
SwapState - Swap state
Returns:
EFI_SUCCESS - State successfully got
--*/
{
return EFI_SUCCESS;
}
STATIC
EFI_STATUS
SetSwapState (
IN EFI_FTW_LITE_DEVICE *FtwLiteDevice,
IN BOOLEAN TopSwap
)
/*++
Routine Description:
Set swap state.
Arguments:
FtwLiteDevice - Indicates a pointer to the calling context.
TopSwap - New swap state
Returns:
EFI_SUCCESS - The function completed successfully
Note:
the Top-Swap bit (bit 13, D31: F0, Offset D4h). Note that
software will not be able to clear the Top-Swap bit until the system is
rebooted without GNT[A]# being pulled down.
--*/
{
return EFI_SUCCESS;
}
BOOLEAN
IsBootBlock (
EFI_FTW_LITE_DEVICE *FtwLiteDevice,
EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *FvBlock,
EFI_LBA Lba
)
/*++
Routine Description:
Check whether the block is a boot block.
Arguments:
FtwLiteDevice - Calling context
FvBlock - Fvb protocol instance
Lba - Lba value
Returns:
Is a boot block or not
--*/
{
//
// IPF doesn't support safe bootblock update
// so treat bootblock as normal block
//
return FALSE;
}
EFI_STATUS
FlushSpareBlockToBootBlock (
EFI_FTW_LITE_DEVICE *FtwLiteDevice
)
/*++
Routine Description:
Copy the content of spare block to a boot block. Size is FTW_BLOCK_SIZE.
Spare block is accessed by FTW backup FVB protocol interface. LBA is
FtwLiteDevice->FtwSpareLba.
Boot block is accessed by BootFvb protocol interface. LBA is 0.
Arguments:
FtwLiteDevice - The private data of FTW_LITE driver
Returns:
EFI_SUCCESS - Spare block content is copied to boot block
EFI_INVALID_PARAMETER - Input parameter error
EFI_OUT_OF_RESOURCES - Allocate memory error
EFI_ABORTED - The function could not complete successfully
Notes:
--*/
{
return EFI_SUCCESS;
}