| /*++ | |
| Copyright (c) 2006, 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. | |
| Module Name: | |
| IpfFtwMisc.c | |
| Abstract: | |
| Ipf platform related code to support FtwLite.. | |
| Revision History | |
| --*/ | |
| #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; | |
| } |