3 Ipf platform related code to support FtwLite..
5 Copyright (c) 2006 - 2008, Intel Corporation
6 All rights reserved. This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
20 // MACROs for boot block update
22 #define BOOT_BLOCK_BASE
27 IN EFI_FTW_LITE_DEVICE
*FtwLiteDevice
,
28 OUT BOOLEAN
*SwapState
38 FtwLiteDevice - Calling context
39 SwapState - Swap state
43 EFI_SUCCESS - State successfully got
53 IN EFI_FTW_LITE_DEVICE
*FtwLiteDevice
,
62 FtwLiteDevice - Indicates a pointer to the calling context.
63 TopSwap - New swap state
66 EFI_SUCCESS - The function completed successfully
69 the Top-Swap bit (bit 13, D31: F0, Offset D4h). Note that
70 software will not be able to clear the Top-Swap bit until the system is
71 rebooted without GNT[A]# being pulled down.
80 EFI_FTW_LITE_DEVICE
*FtwLiteDevice
,
81 EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL
*FvBlock
,
88 Check whether the block is a boot block.
92 FtwLiteDevice - Calling context
93 FvBlock - Fvb protocol instance
98 Is a boot block or not
103 // IPF doesn't support safe bootblock update
104 // so treat bootblock as normal block
110 FlushSpareBlockToBootBlock (
111 EFI_FTW_LITE_DEVICE
*FtwLiteDevice
116 Copy the content of spare block to a boot block. Size is FTW_BLOCK_SIZE.
117 Spare block is accessed by FTW backup FVB protocol interface. LBA is
118 FtwLiteDevice->FtwSpareLba.
119 Boot block is accessed by BootFvb protocol interface. LBA is 0.
122 FtwLiteDevice - The private data of FTW_LITE driver
125 EFI_SUCCESS - Spare block content is copied to boot block
126 EFI_INVALID_PARAMETER - Input parameter error
127 EFI_OUT_OF_RESOURCES - Allocate memory error
128 EFI_ABORTED - The function could not complete successfully