4 Copyright (c) 2006, Intel Corporation
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
19 X64 platform related code to support FtwLite..
29 // MACROs for boot block update
31 #define BOOT_BLOCK_BASE
36 IN EFI_FTW_LITE_DEVICE
*FtwLiteDevice
,
37 OUT BOOLEAN
*SwapState
47 FtwLiteDevice - Calling context
48 SwapState - Swap state
52 EFI_SUCCESS - State successfully got
62 IN EFI_FTW_LITE_DEVICE
*FtwLiteDevice
,
71 FtwLiteDevice - Indicates a pointer to the calling context.
72 TopSwap - New swap state
75 EFI_SUCCESS - The function completed successfully
78 the Top-Swap bit (bit 13, D31: F0, Offset D4h). Note that
79 software will not be able to clear the Top-Swap bit until the system is
80 rebooted without GNT[A]# being pulled down.
89 EFI_FTW_LITE_DEVICE
*FtwLiteDevice
,
90 EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL
*FvBlock
,
97 Check whether the block is a boot block.
101 FtwLiteDevice - Calling context
102 FvBlock - Fvb protocol instance
107 Is a boot block or not
115 FlushSpareBlockToBootBlock (
116 EFI_FTW_LITE_DEVICE
*FtwLiteDevice
121 Copy the content of spare block to a boot block. Size is FTW_BLOCK_SIZE.
122 Spare block is accessed by FTW backup FVB protocol interface. LBA is
123 FtwLiteDevice->FtwSpareLba.
124 Boot block is accessed by BootFvb protocol interface. LBA is 0.
127 FtwLiteDevice - The private data of FTW_LITE driver
130 EFI_SUCCESS - Spare block content is copied to boot block
131 EFI_INVALID_PARAMETER - Input parameter error
132 EFI_OUT_OF_RESOURCES - Allocate memory error
133 EFI_ABORTED - The function could not complete successfully