Add SMM Variable implementation.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11151 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
38
MdeModulePkg/Include/Protocol/SmmFaultTolerantWrite.h
Normal file
38
MdeModulePkg/Include/Protocol/SmmFaultTolerantWrite.h
Normal file
@@ -0,0 +1,38 @@
|
||||
/** @file
|
||||
SMM Fault Tolerant Write protocol is related to EDK II-specific implementation of FTW,
|
||||
provides boot-time service for fault tolerant write capability for block devices in
|
||||
EFI SMM environment. The protocol provides for non-volatile storage of the intermediate
|
||||
data and private information a caller would need to recover from a critical fault,
|
||||
such as a power failure.
|
||||
|
||||
Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that 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.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __SMM_FAULT_TOLERANT_WRITE_H__
|
||||
#define __SMM_FAULT_TOLERANT_WRITE_H__
|
||||
|
||||
#include <Protocol/FaultTolerantWrite.h>
|
||||
|
||||
#define EFI_SMM_FAULT_TOLERANT_WRITE_PROTOCOL_GUID \
|
||||
{ \
|
||||
0x3868fc3b, 0x7e45, 0x43a7, { 0x90, 0x6c, 0x4b, 0xa4, 0x7d, 0xe1, 0x75, 0x4d } \
|
||||
}
|
||||
|
||||
//
|
||||
// SMM Fault Tolerant Write protocol structure is the same as Fault Tolerant Write protocol.
|
||||
// The SMM one is intend to run in SMM environment, which means it can be used by
|
||||
// SMM drivers after ExitPmAuth.
|
||||
//
|
||||
typedef EFI_FAULT_TOLERANT_WRITE_PROTOCOL EFI_SMM_FAULT_TOLERANT_WRITE_PROTOCOL;
|
||||
|
||||
extern EFI_GUID gEfiSmmFaultTolerantWriteProtocolGuid;
|
||||
|
||||
#endif
|
36
MdeModulePkg/Include/Protocol/SmmFirmwareVolumeBlock.h
Normal file
36
MdeModulePkg/Include/Protocol/SmmFirmwareVolumeBlock.h
Normal file
@@ -0,0 +1,36 @@
|
||||
/** @file
|
||||
SMM Firmware Volume Block protocol is related to EDK II-specific implementation of
|
||||
FVB driver, provides control over block-oriented firmware devices and is intended
|
||||
to use in the EFI SMM environment.
|
||||
|
||||
Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that 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.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __SMM_FIRMWARE_VOLUME_BLOCK_H__
|
||||
#define __SMM_FIRMWARE_VOLUME_BLOCK_H__
|
||||
|
||||
#include <Protocol/FirmwareVolumeBlock.h>
|
||||
|
||||
#define EFI_SMM_FIRMWARE_VOLUME_BLOCK_PROTOCOL_GUID \
|
||||
{ \
|
||||
0xf52fc9ff, 0x8025, 0x4432, { 0xa5, 0x3b, 0xb4, 0x7b, 0x5e, 0x9, 0xdb, 0xf9 } \
|
||||
}
|
||||
|
||||
//
|
||||
// SMM Firmware Volume Block protocol structure is the same as Firmware Volume Block
|
||||
// protocol. The SMM one is intend to run in SMM environment, which means it can be
|
||||
// used by SMM drivers after ExitPmAuth.
|
||||
//
|
||||
typedef EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL EFI_SMM_FIRMWARE_VOLUME_BLOCK_PROTOCOL;
|
||||
|
||||
extern EFI_GUID gEfiSmmFirmwareVolumeBlockProtocolGuid;
|
||||
|
||||
#endif
|
40
MdeModulePkg/Include/Protocol/SmmSwapAddressRange.h
Normal file
40
MdeModulePkg/Include/Protocol/SmmSwapAddressRange.h
Normal file
@@ -0,0 +1,40 @@
|
||||
/** @file
|
||||
The EFI_SMM_SWAP_ADDRESS_RANGE_PROTOCOL is related to EDK II-specific implementation
|
||||
and used to abstract the swap operation of boot block and backup block of FV in EFI
|
||||
SMM environment. This swap is especially needed when updating the boot block of FV.
|
||||
If a power failure happens during the boot block update, the swapped backup block
|
||||
(now the boot block) can boot the machine with the old boot block backed up in it.
|
||||
The swap operation is platform dependent, so other protocols such as SMM FTW (Fault
|
||||
Tolerant Write) should use this protocol instead of handling hardware directly.
|
||||
|
||||
Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
|
||||
This program and the accompanying materials are licensed and made available under
|
||||
the terms and conditions of the BSD License that 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.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __SMM_SWAP_ADDRESS_RANGE_H__
|
||||
#define __SMM_SWAP_ADDRESS_RANGE_H__
|
||||
|
||||
#include <Protocol/SwapAddressRange.h>
|
||||
|
||||
#define EFI_SMM_SWAP_ADDRESS_RANGE_PROTOCOL_GUID \
|
||||
{ \
|
||||
0x67c4f112, 0x3385, 0x4e55, { 0x9c, 0x5b, 0xc0, 0x5b, 0x71, 0x7c, 0x42, 0x28 } \
|
||||
}
|
||||
|
||||
//
|
||||
// SMM Swap Address Range protocol structure is the same as Swap Address Range protocol.
|
||||
// The SMM one is intend to run in SMM environment, which means it can be used by
|
||||
// SMM drivers after ExitPmAuth.
|
||||
//
|
||||
typedef EFI_SWAP_ADDRESS_RANGE_PROTOCOL EFI_SMM_SWAP_ADDRESS_RANGE_PROTOCOL;
|
||||
|
||||
extern EFI_GUID gEfiSmmSwapAddressRangeProtocolGuid;
|
||||
|
||||
#endif
|
39
MdeModulePkg/Include/Protocol/SmmVariable.h
Normal file
39
MdeModulePkg/Include/Protocol/SmmVariable.h
Normal file
@@ -0,0 +1,39 @@
|
||||
/** @file
|
||||
EFI SMM Variable Protocol is related to EDK II-specific implementation of variables
|
||||
and intended for use as a means to store data in the EFI SMM environment.
|
||||
|
||||
Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
|
||||
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.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __SMM_VARIABLE_H__
|
||||
#define __SMM_VARIABLE_H__
|
||||
|
||||
#define EFI_SMM_VARIABLE_PROTOCOL_GUID \
|
||||
{ \
|
||||
0xed32d533, 0x99e6, 0x4209, { 0x9c, 0xc0, 0x2d, 0x72, 0xcd, 0xd9, 0x98, 0xa7 } \
|
||||
}
|
||||
|
||||
typedef struct _EFI_SMM_VARIABLE_PROTOCOL EFI_SMM_VARIABLE_PROTOCOL;
|
||||
|
||||
///
|
||||
/// EFI SMM Variable Protocol is intended for use as a means
|
||||
/// to store data in the EFI SMM environment.
|
||||
///
|
||||
struct _EFI_SMM_VARIABLE_PROTOCOL {
|
||||
EFI_GET_VARIABLE SmmGetVariable;
|
||||
EFI_GET_NEXT_VARIABLE_NAME SmmGetNextVariableName;
|
||||
EFI_SET_VARIABLE SmmSetVariable;
|
||||
EFI_QUERY_VARIABLE_INFO SmmQueryVariableInfo;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiSmmVariableProtocolGuid;
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user