3 Copyright (c) 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
18 Ipf platform related code to support FtwLite..
28 // MACROs for boot block update
30 #define BOOT_BLOCK_BASE
35 IN EFI_FTW_LITE_DEVICE
*FtwLiteDevice
,
36 OUT BOOLEAN
*SwapState
46 FtwLiteDevice - Calling context
47 SwapState - Swap state
51 EFI_SUCCESS - State successfully got
61 IN EFI_FTW_LITE_DEVICE
*FtwLiteDevice
,
70 FtwLiteDevice - Indicates a pointer to the calling context.
71 TopSwap - New swap state
74 EFI_SUCCESS - The function completed successfully
77 the Top-Swap bit (bit 13, D31: F0, Offset D4h). Note that
78 software will not be able to clear the Top-Swap bit until the system is
79 rebooted without GNT[A]# being pulled down.
88 EFI_FTW_LITE_DEVICE
*FtwLiteDevice
,
89 EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL
*FvBlock
,
96 Check whether the block is a boot block.
100 FtwLiteDevice - Calling context
101 FvBlock - Fvb protocol instance
106 Is a boot block or not
111 // IPF doesn't support safe bootblock update
112 // so treat bootblock as normal block
118 FlushSpareBlockToBootBlock (
119 EFI_FTW_LITE_DEVICE
*FtwLiteDevice
124 Copy the content of spare block to a boot block. Size is FTW_BLOCK_SIZE.
125 Spare block is accessed by FTW backup FVB protocol interface. LBA is
126 FtwLiteDevice->FtwSpareLba.
127 Boot block is accessed by BootFvb protocol interface. LBA is 0.
130 FtwLiteDevice - The private data of FTW_LITE driver
133 EFI_SUCCESS - Spare block content is copied to boot block
134 EFI_INVALID_PARAMETER - Input parameter error
135 EFI_OUT_OF_RESOURCES - Allocate memory error
136 EFI_ABORTED - The function could not complete successfully