Initial import.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
161
MdePkg/Include/Ppi/BlockIo.h
Normal file
161
MdePkg/Include/Ppi/BlockIo.h
Normal file
@@ -0,0 +1,161 @@
|
||||
/** @file
|
||||
This file declares BlockIo PPI used to access block-oriented storage devices
|
||||
|
||||
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: BlockIo.h
|
||||
|
||||
@par Revision Reference:
|
||||
This PPI is defined in Framework of EFI Recovery Spec
|
||||
Version 0.9
|
||||
|
||||
**/
|
||||
|
||||
#ifndef _PEI_BLOCK_IO_H_
|
||||
#define _PEI_BLOCK_IO_H_
|
||||
|
||||
#define EFI_PEI_VIRTUAL_BLOCK_IO_PPI \
|
||||
{ \
|
||||
0x695d8aa1, 0x42ee, 0x4c46, {0x80, 0x5c, 0x6e, 0xa6, 0xbc, 0xe7, 0x99, 0xe3 } \
|
||||
}
|
||||
|
||||
typedef struct _EFI_PEI_RECOVERY_BLOCK_IO_PPI EFI_PEI_RECOVERY_BLOCK_IO_PPI;
|
||||
|
||||
typedef UINT64 EFI_PEI_LBA;
|
||||
|
||||
typedef enum {
|
||||
LegacyFloppy = 0,
|
||||
IdeCDROM = 1,
|
||||
IdeLS120 = 2,
|
||||
UsbMassStorage= 3,
|
||||
MaxDeviceType
|
||||
} EFI_PEI_BLOCK_DEVICE_TYPE;
|
||||
|
||||
typedef struct {
|
||||
EFI_PEI_BLOCK_DEVICE_TYPE DeviceType;
|
||||
BOOLEAN MediaPresent;
|
||||
UINTN LastBlock;
|
||||
UINTN BlockSize;
|
||||
} EFI_PEI_BLOCK_IO_MEDIA;
|
||||
|
||||
/**
|
||||
Gets the count of block I/O devices that one specific block driver detects.
|
||||
|
||||
@param PeiServices General-purpose services that are available to every PEIM.
|
||||
|
||||
@param This Indicates the EFI_PEI_RECOVERY_BLOCK_IO_PPI instance.
|
||||
|
||||
@param NumberBlockDevices The number of block I/O devices discovered.
|
||||
|
||||
@return Status code
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PEI_GET_NUMBER_BLOCK_DEVICES) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_RECOVERY_BLOCK_IO_PPI *This,
|
||||
OUT UINTN *NumberBlockDevices
|
||||
);
|
||||
|
||||
/**
|
||||
Gets a block device<63><65>s media information.
|
||||
|
||||
@param PeiServices General-purpose services that are available to every PEIM
|
||||
|
||||
@param This Indicates the EFI_PEI_RECOVERY_BLOCK_IO_PPI instance.
|
||||
|
||||
@param DeviceIndex Specifies the block device to which the function
|
||||
wants to talk. Because the driver that implements Block I/O PPIs
|
||||
will manage multiple block devices, the PPIs that want to talk to a single
|
||||
device must specify the device index that was assigned during the enumeration
|
||||
process. This index is a number from one to NumberBlockDevices.
|
||||
|
||||
@param MediaInfo The media information of the specified block media.
|
||||
|
||||
@retval EFI_SUCCESS Media information about the specified block device was obtained successfully.
|
||||
|
||||
@retval EFI_DEVICE_ERROR Cannot get the media information due to a hardware error.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PEI_GET_DEVICE_MEDIA_INFORMATION) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_RECOVERY_BLOCK_IO_PPI *This,
|
||||
IN UINTN DeviceIndex,
|
||||
OUT EFI_PEI_BLOCK_IO_MEDIA *MediaInfo
|
||||
);
|
||||
|
||||
/**
|
||||
Reads the requested number of blocks from the specified block device.
|
||||
|
||||
@param PeiServices General-purpose services that are available to every PEIM.
|
||||
|
||||
@param This Indicates the EFI_PEI_RECOVERY_BLOCK_IO_PPI instance.
|
||||
|
||||
@param DeviceIndex Specifies the block device to which the function wants to talk.
|
||||
|
||||
@param StartLBA The starting logical block address (LBA) to read from on the device
|
||||
|
||||
@param BufferSize The size of the Buffer in bytes. This number must
|
||||
be a multiple of the intrinsic block size of the device.
|
||||
|
||||
@param Buffer A pointer to the destination buffer for the data.
|
||||
The caller is responsible for the ownership of the buffer.
|
||||
|
||||
@retval EFI_SUCCESS The data was read correctly from the device.
|
||||
|
||||
@retval EFI_DEVICE_ERROR The device reported an error while attempting to perform the read operation.
|
||||
|
||||
@retval EFI_INVALID_PARAMETER The read request contains LBAs that are not valid,
|
||||
or the buffer is not properly aligned.
|
||||
|
||||
@retval EFI_BAD_BUFFER_SIZE The BufferSize parameter is not a multiple of
|
||||
the intrinsic block size of the device.
|
||||
|
||||
@retval EFI_NO_MEDIA There is no media in the device.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PEI_READ_BLOCKS) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_RECOVERY_BLOCK_IO_PPI *This,
|
||||
IN UINTN DeviceIndex,
|
||||
IN EFI_PEI_LBA StartLBA,
|
||||
IN UINTN BufferSize,
|
||||
OUT VOID *Buffer
|
||||
);
|
||||
|
||||
/**
|
||||
@par Ppi Description:
|
||||
EFI_PEI_RECOVERY_BLOCK_IO_PPI provides the services that are required
|
||||
to access a block I/O device during PEI recovery boot mode.
|
||||
|
||||
@param GetNumberOfBlockDevices
|
||||
Gets the number of block I/O devices that the specific block driver manages.
|
||||
|
||||
@param GetBlockDeviceMediaInfo
|
||||
Gets the specified media information.
|
||||
|
||||
@param ReadBlocks
|
||||
Reads the requested number of blocks from the specified block device.
|
||||
|
||||
**/
|
||||
struct _EFI_PEI_RECOVERY_BLOCK_IO_PPI {
|
||||
EFI_PEI_GET_NUMBER_BLOCK_DEVICES GetNumberOfBlockDevices;
|
||||
EFI_PEI_GET_DEVICE_MEDIA_INFORMATION GetBlockDeviceMediaInfo;
|
||||
EFI_PEI_READ_BLOCKS ReadBlocks;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiPeiBlockIoPpiGuid;
|
||||
|
||||
#endif
|
33
MdePkg/Include/Ppi/BootInRecoveryMode.h
Normal file
33
MdePkg/Include/Ppi/BootInRecoveryMode.h
Normal file
@@ -0,0 +1,33 @@
|
||||
/** @file
|
||||
This PPI is installed by the platform PEIM to designate that a recovery boot
|
||||
is in progress.
|
||||
|
||||
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: BootInRecoveryMode.h
|
||||
|
||||
@par Revision Reference:
|
||||
This PPI is defined in PEI CIS spec
|
||||
Version 0.91.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __BOOT_IN_RECOVERY_MODE_PPI_H__
|
||||
#define __BOOT_IN_RECOVERY_MODE_PPI_H__
|
||||
|
||||
#define EFI_PEI_BOOT_IN_RECOVERY_MODE_PEIM_PPI \
|
||||
{ \
|
||||
0x17ee496a, 0xd8e4, 0x4b9a, {0x94, 0xd1, 0xce, 0x82, 0x72, 0x30, 0x8, 0x50 } \
|
||||
}
|
||||
|
||||
|
||||
extern EFI_GUID gEfiPeiBootInRecoveryModePpiGuid;
|
||||
|
||||
#endif
|
78
MdePkg/Include/Ppi/BootScriptExecuter.h
Normal file
78
MdePkg/Include/Ppi/BootScriptExecuter.h
Normal file
@@ -0,0 +1,78 @@
|
||||
/** @file
|
||||
This file declares Boot Script Executer PPI.
|
||||
|
||||
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: BootScriptExecuter.h
|
||||
|
||||
@par Revision Reference:
|
||||
This PPI is defined in Framework of EFI BootScript spec.
|
||||
Version 0.91.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef _PEI_BOOT_SCRIPT_EXECUTER_PPI_H
|
||||
#define _PEI_BOOT_SCRIPT_EXECUTER_PPI_H
|
||||
|
||||
#define EFI_PEI_BOOT_SCRIPT_EXECUTER_PPI_GUID \
|
||||
{ \
|
||||
0xabd42895, 0x78cf, 0x4872, {0x84, 0x44, 0x1b, 0x5c, 0x18, 0x0b, 0xfb, 0xff } \
|
||||
}
|
||||
|
||||
typedef struct _EFI_PEI_BOOT_SCRIPT_EXECUTER_PPI EFI_PEI_BOOT_SCRIPT_EXECUTER_PPI;
|
||||
|
||||
/**
|
||||
Executes the Framework boot script table.
|
||||
|
||||
@param PeiServices A pointer to the system PEI Services Table.
|
||||
|
||||
@param This A pointer to the EFI_PEI_BOOT_SCRIPT_EXECUTER_PPI instance.
|
||||
|
||||
@param Address The physical memory address where the table is stored.
|
||||
It must be zero if the table to be executed is stored in a firmware volume file.
|
||||
|
||||
@param FvFile The firmware volume file name that contains the table to
|
||||
be executed. It must be NULL if the table to be executed is stored in physical memory.
|
||||
|
||||
@retval EFI_SUCCESS The boot script table was executed successfully.
|
||||
|
||||
@retval EFI_INVALID_PARAMETER Address is zero and FvFile is NULL.
|
||||
|
||||
@retval EFI_NOT_FOUND The file name specified in FvFile cannot be found.
|
||||
|
||||
@retval EFI_UNSUPPORTED The format of the boot script table is invalid.
|
||||
Or An unsupported opcode occurred in the table.
|
||||
Or There were opcode execution errors, such as an insufficient dependency.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PEI_BOOT_SCRIPT_EXECUTE) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_BOOT_SCRIPT_EXECUTER_PPI *This,
|
||||
IN EFI_PHYSICAL_ADDRESS Address,
|
||||
IN EFI_GUID *FvFile OPTIONAL
|
||||
);
|
||||
|
||||
/**
|
||||
@par Ppi Description:
|
||||
This PPI produces functions to interpret and execute the Framework boot script table.
|
||||
|
||||
@param Execute
|
||||
Executes a boot script table.
|
||||
|
||||
**/
|
||||
struct _EFI_PEI_BOOT_SCRIPT_EXECUTER_PPI {
|
||||
EFI_PEI_BOOT_SCRIPT_EXECUTE Execute;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiPeiBootScriptExecuterPpiGuid;
|
||||
|
||||
#endif
|
520
MdePkg/Include/Ppi/CpuIo.h
Normal file
520
MdePkg/Include/Ppi/CpuIo.h
Normal file
@@ -0,0 +1,520 @@
|
||||
/** @file
|
||||
This file declares CPU IO PPI that abstracts CPU IO access
|
||||
|
||||
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: CpuIo.h
|
||||
|
||||
@par Revision Reference:
|
||||
This PPI is defined in PEI CIS.
|
||||
Version 0.91.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __PEI_CPUIO_PPI_H__
|
||||
#define __PEI_CPUIO_PPI_H__
|
||||
|
||||
#define EFI_PEI_CPU_IO_PPI_INSTALLED_GUID \
|
||||
{ \
|
||||
0xe6af1f7b, 0xfc3f, 0x46da, {0xa8, 0x28, 0xa3, 0xb4, 0x57, 0xa4, 0x42, 0x82 } \
|
||||
}
|
||||
|
||||
typedef struct _EFI_PEI_CPU_IO_PPI EFI_PEI_CPU_IO_PPI;
|
||||
|
||||
//
|
||||
// *******************************************************
|
||||
// EFI_PEI_CPU_IO_PPI_WIDTH
|
||||
// *******************************************************
|
||||
//
|
||||
typedef enum {
|
||||
EfiPeiCpuIoWidthUint8,
|
||||
EfiPeiCpuIoWidthUint16,
|
||||
EfiPeiCpuIoWidthUint32,
|
||||
EfiPeiCpuIoWidthUint64,
|
||||
EfiPeiCpuIoWidthFifoUint8,
|
||||
EfiPeiCpuIoWidthFifoUint16,
|
||||
EfiPeiCpuIoWidthFifoUint32,
|
||||
EfiPeiCpuIoWidthFifoUint64,
|
||||
EfiPeiCpuIoWidthFillUint8,
|
||||
EfiPeiCpuIoWidthFillUint16,
|
||||
EfiPeiCpuIoWidthFillUint32,
|
||||
EfiPeiCpuIoWidthFillUint64,
|
||||
EfiPeiCpuIoWidthMaximum
|
||||
} EFI_PEI_CPU_IO_PPI_WIDTH;
|
||||
|
||||
/**
|
||||
Memory-based access services and I/O-based access services.
|
||||
|
||||
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
|
||||
|
||||
@param This Pointer to local data for the interface.
|
||||
|
||||
@param Width The width of the access. Enumerated in bytes.
|
||||
|
||||
@param Address The physical address of the access.
|
||||
|
||||
@param Count The number of accesses to perform.
|
||||
|
||||
@param Buffer A pointer to the buffer of data.
|
||||
|
||||
@retval EFI_SUCCESS The function completed successfully.
|
||||
|
||||
@retval EFI_NOT_YET_AVAILABLE The service has not been installed.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_MEM) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_CPU_IO_PPI *This,
|
||||
IN EFI_PEI_CPU_IO_PPI_WIDTH Width,
|
||||
IN UINT64 Address,
|
||||
IN UINTN Count,
|
||||
IN OUT VOID *Buffer
|
||||
);
|
||||
|
||||
//
|
||||
// *******************************************************
|
||||
// EFI_PEI_CPU_IO_PPI_ACCESS
|
||||
// *******************************************************
|
||||
//
|
||||
typedef struct {
|
||||
EFI_PEI_CPU_IO_PPI_IO_MEM Read;
|
||||
EFI_PEI_CPU_IO_PPI_IO_MEM Write;
|
||||
} EFI_PEI_CPU_IO_PPI_ACCESS;
|
||||
|
||||
/**
|
||||
8-bit I/O read operations.
|
||||
|
||||
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
|
||||
|
||||
@param This Pointer to local data for the interface.
|
||||
|
||||
@param Address The physical address of the access.
|
||||
|
||||
@return UINT8
|
||||
|
||||
**/
|
||||
typedef
|
||||
UINT8
|
||||
(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_READ8) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_CPU_IO_PPI *This,
|
||||
IN UINT64 Address
|
||||
);
|
||||
|
||||
/**
|
||||
16-bit I/O read operations.
|
||||
|
||||
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
|
||||
|
||||
@param This Pointer to local data for the interface.
|
||||
|
||||
@param Address The physical address of the access.
|
||||
|
||||
@return UINT16
|
||||
|
||||
**/
|
||||
typedef
|
||||
UINT16
|
||||
(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_READ16) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_CPU_IO_PPI *This,
|
||||
IN UINT64 Address
|
||||
);
|
||||
|
||||
/**
|
||||
32-bit I/O read operations.
|
||||
|
||||
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
|
||||
|
||||
@param This Pointer to local data for the interface.
|
||||
|
||||
@param Address The physical address of the access.
|
||||
|
||||
@return UINT32
|
||||
|
||||
**/
|
||||
typedef
|
||||
UINT32
|
||||
(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_READ32) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_CPU_IO_PPI *This,
|
||||
IN UINT64 Address
|
||||
);
|
||||
|
||||
/**
|
||||
64-bit I/O read operations.
|
||||
|
||||
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
|
||||
|
||||
@param This Pointer to local data for the interface.
|
||||
|
||||
@param Address The physical address of the access.
|
||||
|
||||
@return UINT64
|
||||
|
||||
**/
|
||||
typedef
|
||||
UINT64
|
||||
(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_READ64) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_CPU_IO_PPI *This,
|
||||
IN UINT64 Address
|
||||
);
|
||||
|
||||
/**
|
||||
8-bit I/O write operations.
|
||||
|
||||
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
|
||||
|
||||
@param This Pointer to local data for the interface.
|
||||
|
||||
@param Address The physical address of the access.
|
||||
|
||||
@param Data The data to write.
|
||||
|
||||
@return None
|
||||
|
||||
**/
|
||||
typedef
|
||||
VOID
|
||||
(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_WRITE8) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_CPU_IO_PPI *This,
|
||||
IN UINT64 Address,
|
||||
IN UINT8 Data
|
||||
);
|
||||
|
||||
/**
|
||||
16-bit I/O write operations.
|
||||
|
||||
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
|
||||
|
||||
@param This Pointer to local data for the interface.
|
||||
|
||||
@param Address The physical address of the access.
|
||||
|
||||
@param Data The data to write.
|
||||
|
||||
@return None
|
||||
|
||||
**/
|
||||
typedef
|
||||
VOID
|
||||
(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_WRITE16) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_CPU_IO_PPI *This,
|
||||
IN UINT64 Address,
|
||||
IN UINT16 Data
|
||||
);
|
||||
|
||||
/**
|
||||
32-bit I/O write operations.
|
||||
|
||||
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
|
||||
|
||||
@param This Pointer to local data for the interface.
|
||||
|
||||
@param Address The physical address of the access.
|
||||
|
||||
@param Data The data to write.
|
||||
|
||||
@return None
|
||||
|
||||
**/
|
||||
typedef
|
||||
VOID
|
||||
(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_WRITE32) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_CPU_IO_PPI *This,
|
||||
IN UINT64 Address,
|
||||
IN UINT32 Data
|
||||
);
|
||||
|
||||
/**
|
||||
64-bit I/O write operations.
|
||||
|
||||
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
|
||||
|
||||
@param This Pointer to local data for the interface.
|
||||
|
||||
@param Address The physical address of the access.
|
||||
|
||||
@param Data The data to write.
|
||||
|
||||
@return None
|
||||
|
||||
**/
|
||||
typedef
|
||||
VOID
|
||||
(EFIAPI *EFI_PEI_CPU_IO_PPI_IO_WRITE64) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_CPU_IO_PPI *This,
|
||||
IN UINT64 Address,
|
||||
IN UINT64 Data
|
||||
);
|
||||
|
||||
/**
|
||||
8-bit Memory read operations.
|
||||
|
||||
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
|
||||
|
||||
@param This Pointer to local data for the interface.
|
||||
|
||||
@param Address The physical address of the access.
|
||||
|
||||
@return UINT8
|
||||
|
||||
**/
|
||||
typedef
|
||||
UINT8
|
||||
(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_READ8) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_CPU_IO_PPI *This,
|
||||
IN UINT64 Address
|
||||
);
|
||||
|
||||
/**
|
||||
16-bit Memory read operations.
|
||||
|
||||
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
|
||||
|
||||
@param This Pointer to local data for the interface.
|
||||
|
||||
@param Address The physical address of the access.
|
||||
|
||||
@return UINT16
|
||||
|
||||
**/
|
||||
typedef
|
||||
UINT16
|
||||
(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_READ16) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_CPU_IO_PPI *This,
|
||||
IN UINT64 Address
|
||||
);
|
||||
|
||||
/**
|
||||
32-bit Memory read operations.
|
||||
|
||||
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
|
||||
|
||||
@param This Pointer to local data for the interface.
|
||||
|
||||
@param Address The physical address of the access.
|
||||
|
||||
@return UINT32
|
||||
|
||||
**/
|
||||
typedef
|
||||
UINT32
|
||||
(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_READ32) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_CPU_IO_PPI *This,
|
||||
IN UINT64 Address
|
||||
);
|
||||
|
||||
/**
|
||||
64-bit Memory read operations.
|
||||
|
||||
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
|
||||
|
||||
@param This Pointer to local data for the interface.
|
||||
|
||||
@param Address The physical address of the access.
|
||||
|
||||
@return UINT64
|
||||
|
||||
**/
|
||||
typedef
|
||||
UINT64
|
||||
(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_READ64) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_CPU_IO_PPI *This,
|
||||
IN UINT64 Address
|
||||
);
|
||||
|
||||
/**
|
||||
8-bit Memory write operations.
|
||||
|
||||
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
|
||||
|
||||
@param This Pointer to local data for the interface.
|
||||
|
||||
@param Address The physical address of the access.
|
||||
|
||||
@param Data The data to write.
|
||||
|
||||
@return None
|
||||
|
||||
**/
|
||||
typedef
|
||||
VOID
|
||||
(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_WRITE8) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_CPU_IO_PPI *This,
|
||||
IN UINT64 Address,
|
||||
IN UINT8 Data
|
||||
);
|
||||
|
||||
/**
|
||||
16-bit Memory write operations.
|
||||
|
||||
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
|
||||
|
||||
@param This Pointer to local data for the interface.
|
||||
|
||||
@param Address The physical address of the access.
|
||||
|
||||
@param Data The data to write.
|
||||
|
||||
@return None
|
||||
|
||||
**/
|
||||
typedef
|
||||
VOID
|
||||
(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_WRITE16) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_CPU_IO_PPI *This,
|
||||
IN UINT64 Address,
|
||||
IN UINT16 Data
|
||||
);
|
||||
|
||||
/**
|
||||
32-bit Memory write operations.
|
||||
|
||||
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
|
||||
|
||||
@param This Pointer to local data for the interface.
|
||||
|
||||
@param Address The physical address of the access.
|
||||
|
||||
@param Data The data to write.
|
||||
|
||||
@return None
|
||||
|
||||
**/
|
||||
typedef
|
||||
VOID
|
||||
(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_WRITE32) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_CPU_IO_PPI *This,
|
||||
IN UINT64 Address,
|
||||
IN UINT32 Data
|
||||
);
|
||||
|
||||
/**
|
||||
64-bit Memory write operations.
|
||||
|
||||
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
|
||||
|
||||
@param This Pointer to local data for the interface.
|
||||
|
||||
@param Address The physical address of the access.
|
||||
|
||||
@param Data The data to write.
|
||||
|
||||
@return None
|
||||
|
||||
**/
|
||||
typedef
|
||||
VOID
|
||||
(EFIAPI *EFI_PEI_CPU_IO_PPI_MEM_WRITE64) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_CPU_IO_PPI *This,
|
||||
IN UINT64 Address,
|
||||
IN UINT64 Data
|
||||
);
|
||||
|
||||
/**
|
||||
@par Ppi Description:
|
||||
EFI_PEI_CPU_IO_PPI provides a set of memory and I/O-based services.
|
||||
The perspective of the services is that of the processor, not the bus or system.
|
||||
|
||||
@param Mem
|
||||
Collection of memory-access services.
|
||||
|
||||
@param I/O
|
||||
Collection of I/O-access services.
|
||||
|
||||
@param IoRead8
|
||||
8-bit read service.
|
||||
|
||||
@param IoRead16
|
||||
16-bit read service.
|
||||
|
||||
@param IoRead32
|
||||
32-bit read service.
|
||||
|
||||
@param IoRead64
|
||||
64-bit read service.
|
||||
|
||||
@param IoWrite8
|
||||
8-bit write service.
|
||||
|
||||
@param IoWrite16
|
||||
16-bit write service.
|
||||
|
||||
@param IoWrite32
|
||||
32-bit write service.
|
||||
|
||||
@param IoWrite64
|
||||
64-bit write service.
|
||||
|
||||
@param MemRead8
|
||||
8-bit read service.
|
||||
|
||||
@param MemRead16
|
||||
16-bit read service.
|
||||
|
||||
@param MemRead32
|
||||
32-bit read service.
|
||||
|
||||
@param MemRead64
|
||||
64-bit read service.
|
||||
|
||||
@param MemWrite8
|
||||
8-bit write service.
|
||||
|
||||
@param MemWrite16
|
||||
16-bit write service.
|
||||
|
||||
@param MemWrite32
|
||||
32-bit write service.
|
||||
|
||||
@param MemWrite64
|
||||
64-bit write service.
|
||||
|
||||
**/
|
||||
struct _EFI_PEI_CPU_IO_PPI {
|
||||
EFI_PEI_CPU_IO_PPI_ACCESS Mem;
|
||||
EFI_PEI_CPU_IO_PPI_ACCESS Io;
|
||||
EFI_PEI_CPU_IO_PPI_IO_READ8 IoRead8;
|
||||
EFI_PEI_CPU_IO_PPI_IO_READ16 IoRead16;
|
||||
EFI_PEI_CPU_IO_PPI_IO_READ32 IoRead32;
|
||||
EFI_PEI_CPU_IO_PPI_IO_READ64 IoRead64;
|
||||
EFI_PEI_CPU_IO_PPI_IO_WRITE8 IoWrite8;
|
||||
EFI_PEI_CPU_IO_PPI_IO_WRITE16 IoWrite16;
|
||||
EFI_PEI_CPU_IO_PPI_IO_WRITE32 IoWrite32;
|
||||
EFI_PEI_CPU_IO_PPI_IO_WRITE64 IoWrite64;
|
||||
EFI_PEI_CPU_IO_PPI_MEM_READ8 MemRead8;
|
||||
EFI_PEI_CPU_IO_PPI_MEM_READ16 MemRead16;
|
||||
EFI_PEI_CPU_IO_PPI_MEM_READ32 MemRead32;
|
||||
EFI_PEI_CPU_IO_PPI_MEM_READ64 MemRead64;
|
||||
EFI_PEI_CPU_IO_PPI_MEM_WRITE8 MemWrite8;
|
||||
EFI_PEI_CPU_IO_PPI_MEM_WRITE16 MemWrite16;
|
||||
EFI_PEI_CPU_IO_PPI_MEM_WRITE32 MemWrite32;
|
||||
EFI_PEI_CPU_IO_PPI_MEM_WRITE64 MemWrite64;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiPeiCpuIoPpiInServiceTableGuid;
|
||||
|
||||
#endif
|
143
MdePkg/Include/Ppi/DeviceRecoveryModule.h
Normal file
143
MdePkg/Include/Ppi/DeviceRecoveryModule.h
Normal file
@@ -0,0 +1,143 @@
|
||||
/** @file
|
||||
This file declares Device Recovery Module PPI.
|
||||
|
||||
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: DeviceRecoveryModule.h
|
||||
|
||||
@par Revision Reference:
|
||||
This PPI is defined in Framework of EFI Recovery spec.
|
||||
Version 0.9
|
||||
|
||||
**/
|
||||
|
||||
#ifndef _PEI_DEVICE_RECOVERY_MODULE_PPI_H
|
||||
#define _PEI_DEVICE_RECOVERY_MODULE_PPI_H
|
||||
|
||||
#define EFI_PEI_DEVICE_RECOVERY_MODULE_PPI_GUID \
|
||||
{ \
|
||||
0x0DE2CE25, 0x446A, 0x45a7, {0xBF, 0xC9, 0x37, 0xDA, 0x26, 0x34, 0x4B, 0x37 } \
|
||||
}
|
||||
|
||||
typedef struct _EFI_PEI_DEVICE_RECOVERY_MODULE_PPI EFI_PEI_DEVICE_RECOVERY_MODULE_PPI;
|
||||
|
||||
/**
|
||||
This function, by whatever mechanism, searches for DXE capsules from the
|
||||
associated device and returns the number and maximum size in bytes of
|
||||
the capsules discovered. Entry 1 is assumed to be the highest load priority
|
||||
and entry N is assumed to be the lowest priority.
|
||||
|
||||
@param PeiServices General-purpose services that are available to every PEIM
|
||||
|
||||
@param This Indicates the EFI_PEI_DEVICE_RECOVERY_MODULE_PPI instance.
|
||||
|
||||
@param NumberRecoveryCapsules Pointer to a caller-allocated UINTN. On output,
|
||||
*NumberRecoveryCapsules contains the number of recovery capsule images available
|
||||
for retrieval from this PEIM instance.
|
||||
|
||||
@retval EFI_SUCCESS One or more capsules were discovered.
|
||||
|
||||
@retval EFI_DEVICE_ERROR A device error occurred.
|
||||
|
||||
@retval EFI_NOT_FOUND A recovery DXE capsule cannot be found.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PEI_DEVICE_GET_NUMBER_RECOVERY_CAPSULE) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_DEVICE_RECOVERY_MODULE_PPI *This,
|
||||
OUT UINTN *NumberRecoveryCapsules
|
||||
);
|
||||
|
||||
/**
|
||||
This function gets the size and type of the requested recovery capsule.
|
||||
|
||||
@param PeiServices General-purpose services that are available to every PEIM
|
||||
|
||||
@param This Indicates the EFI_PEI_DEVICE_RECOVERY_MODULE_PPI instance.
|
||||
|
||||
@param CapsuleInstance Specifies for which capsule instance to retrieve the information.
|
||||
|
||||
@param Size A pointer to a caller-allocated UINTN in which the size of
|
||||
the requested recovery module is returned.
|
||||
|
||||
@param CapsuleType A pointer to a caller-allocated EFI_GUID in
|
||||
which the type of the requested recovery capsule is returned.
|
||||
|
||||
@retval EFI_SUCCESS One or more capsules were discovered.
|
||||
|
||||
@retval EFI_DEVICE_ERROR A device error occurred.
|
||||
|
||||
@retval EFI_NOT_FOUND A recovery DXE capsule cannot be found.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PEI_DEVICE_GET_RECOVERY_CAPSULE_INFO) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_DEVICE_RECOVERY_MODULE_PPI *This,
|
||||
IN UINTN CapsuleInstance,
|
||||
OUT UINTN *Size,
|
||||
OUT EFI_GUID *CapsuleType
|
||||
);
|
||||
|
||||
/**
|
||||
This function, by whatever mechanism, retrieves a DXE capsule from some device
|
||||
and loads it into memory. Note that the published interface is device neutral.
|
||||
|
||||
@param PeiServices General-purpose services that are available to every PEIM
|
||||
|
||||
@param This Indicates the EFI_PEI_DEVICE_RECOVERY_MODULE_PPI instance.
|
||||
|
||||
@param CapsuleInstance Specifies which capsule instance to retrieve.
|
||||
|
||||
@param Buffer Specifies a caller-allocated buffer in which the requested recovery capsule will be returned.
|
||||
|
||||
@retval EFI_SUCCESS One or more capsules were discovered.
|
||||
|
||||
@retval EFI_DEVICE_ERROR A device error occurred.
|
||||
|
||||
@retval EFI_NOT_FOUND A recovery DXE capsule cannot be found.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PEI_DEVICE_LOAD_RECOVERY_CAPSULE) (
|
||||
IN OUT EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_DEVICE_RECOVERY_MODULE_PPI *This,
|
||||
IN UINTN CapsuleInstance,
|
||||
OUT VOID *Buffer
|
||||
);
|
||||
|
||||
/**
|
||||
@par Ppi Description:
|
||||
Presents a standard interface to EFI_PEI_DEVICE_RECOVERY_MODULE_PPI,
|
||||
regardless of the underlying device(s).
|
||||
|
||||
@param GetNumberRecoveryCapsules
|
||||
Returns the number of DXE capsules that were found.
|
||||
|
||||
@param GetRecoveryCapsuleInfo
|
||||
Returns the capsule image type and the size of a given image.
|
||||
|
||||
@param LoadRecoveryCapsule
|
||||
Loads a DXE capsule into memory
|
||||
|
||||
**/
|
||||
struct _EFI_PEI_DEVICE_RECOVERY_MODULE_PPI {
|
||||
EFI_PEI_DEVICE_GET_NUMBER_RECOVERY_CAPSULE GetNumberRecoveryCapsules;
|
||||
EFI_PEI_DEVICE_GET_RECOVERY_CAPSULE_INFO GetRecoveryCapsuleInfo;
|
||||
EFI_PEI_DEVICE_LOAD_RECOVERY_CAPSULE LoadRecoveryCapsule;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiPeiDeviceRecoveryModulePpiGuid;
|
||||
|
||||
#endif
|
70
MdePkg/Include/Ppi/DxeIpl.h
Normal file
70
MdePkg/Include/Ppi/DxeIpl.h
Normal file
@@ -0,0 +1,70 @@
|
||||
/** @file
|
||||
This file declares DXE Initial Program Load PPI.
|
||||
When the PEI core is done it calls the DXE IPL via this PPI.
|
||||
|
||||
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: DxeIpl.h
|
||||
|
||||
@par Revision Reference:
|
||||
This PPI is defined in PEI CIS.
|
||||
Version 0.91.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __DXE_IPL_H__
|
||||
#define __DXE_IPL_H__
|
||||
|
||||
#define EFI_DXE_IPL_PPI_GUID \
|
||||
{ \
|
||||
0xae8ce5d, 0xe448, 0x4437, {0xa8, 0xd7, 0xeb, 0xf5, 0xf1, 0x94, 0xf7, 0x31 } \
|
||||
}
|
||||
|
||||
typedef struct _EFI_DXE_IPL_PPI EFI_DXE_IPL_PPI;
|
||||
|
||||
/**
|
||||
The architectural PPI that the PEI Foundation invokes when
|
||||
there are no additional PEIMs to invoke.
|
||||
|
||||
@param This Pointer to the DXE IPL PPI instance
|
||||
|
||||
@param PeiServices Pointer to the PEI Services Table.
|
||||
|
||||
@param HobList Pointer to the list of Hand-Off Block (HOB) entries.
|
||||
|
||||
@retval EFI_SUCCESS Upon this return code, the PEI Foundation should enter
|
||||
some exception handling.Under normal circumstances, the DXE IPL PPI should not return.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_DXE_IPL_ENTRY) (
|
||||
IN EFI_DXE_IPL_PPI *This,
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_HOB_POINTERS HobList
|
||||
);
|
||||
|
||||
/**
|
||||
@par Ppi Description:
|
||||
Final service to be invoked by the PEI Foundation.
|
||||
The DXE IPL PPI is responsible for locating and loading the DXE Foundation.
|
||||
The DXE IPL PPI may use PEI services to locate and load the DXE Foundation.
|
||||
|
||||
@param Entry
|
||||
The entry point to the DXE IPL PPI.
|
||||
|
||||
**/
|
||||
struct _EFI_DXE_IPL_PPI {
|
||||
EFI_DXE_IPL_ENTRY Entry;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiDxeIplPpiGuid;
|
||||
|
||||
#endif
|
31
MdePkg/Include/Ppi/EndOfPeiPhase.h
Normal file
31
MdePkg/Include/Ppi/EndOfPeiPhase.h
Normal file
@@ -0,0 +1,31 @@
|
||||
/** @file
|
||||
PPI to be used to signal when the PEI ownership of the memory map
|
||||
officially ends and DXE will take over
|
||||
|
||||
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: EndOfPeiSignal.h
|
||||
|
||||
@par Revision Reference:
|
||||
This PPI is defined in PEI CIS spec Version 0.91.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __END_OF_PEI_SIGNAL_PPI_H__
|
||||
#define __END_OF_PEI_SIGNAL_PPI_H__
|
||||
|
||||
#define EFI_PEI_END_OF_PEI_PHASE_PPI_GUID \
|
||||
{ \
|
||||
0x605EA650, 0xC65C, 0x42e1, {0xBA, 0x80, 0x91, 0xA5, 0x2A, 0xB6, 0x18, 0xC6 } \
|
||||
}
|
||||
|
||||
extern EFI_GUID gEfiEndOfPeiSignalPpiGuid;
|
||||
|
||||
#endif
|
76
MdePkg/Include/Ppi/FindFv.h
Normal file
76
MdePkg/Include/Ppi/FindFv.h
Normal file
@@ -0,0 +1,76 @@
|
||||
/** @file
|
||||
This file declares FindFv PPI used to locate FVs that contain PEIMs in PEI
|
||||
|
||||
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: FindFv.h
|
||||
|
||||
@par Revision Reference:
|
||||
This PPI is defined in PEI CIS
|
||||
Version 0.91
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __FIND_FV_H__
|
||||
#define __FIND_FV_H__
|
||||
|
||||
#define EFI_PEI_FIND_FV_PPI_GUID \
|
||||
{ \
|
||||
0x36164812, 0xa023, 0x44e5, {0xbd, 0x85, 0x5, 0xbf, 0x3c, 0x77, 0x0, 0xaa } \
|
||||
}
|
||||
|
||||
typedef struct _EFI_PEI_FIND_FV_PPI EFI_PEI_FIND_FV_PPI;
|
||||
|
||||
/**
|
||||
This interface returns the base address of the firmware volume whose index
|
||||
was passed in FvNumber.Once this function reports a firmware volume
|
||||
index/base address pair, that index/address pairing must continue throughout PEI.
|
||||
|
||||
@param PeiServices Pointer to the PEI Services Table.
|
||||
|
||||
@param This Interface pointer that implements the Find FV service.
|
||||
|
||||
@param FvNumber The index of the firmware volume to locate.
|
||||
|
||||
@param FvAddress The address of the volume to discover.
|
||||
|
||||
@retval EFI_SUCCESS An additional firmware volume was found.
|
||||
|
||||
@retval EFI_OUT_OF_RESOURCES There are no firmware volumes for the given FvNumber.
|
||||
|
||||
@retval EFI_INVALID_PARAMETER *FvAddress is NULL.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PEI_FIND_FV_FINDFV) (
|
||||
IN EFI_PEI_FIND_FV_PPI *This,
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
UINT8 *FvNumber,
|
||||
EFI_FIRMWARE_VOLUME_HEADER **FVAddress
|
||||
);
|
||||
|
||||
/**
|
||||
@par Ppi Description:
|
||||
Hardware mechanisms for locating FVs in a platform vary widely.
|
||||
EFI_PEI_FIND_FV_PPI serves to abstract this variation so that the
|
||||
PEI Foundation can remain standard across a wide variety of platforms.
|
||||
|
||||
@param FindFv
|
||||
Service that abstracts the location of additional firmware volumes.
|
||||
|
||||
**/
|
||||
struct _EFI_PEI_FIND_FV_PPI {
|
||||
EFI_PEI_FIND_FV_FINDFV FindFv;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiFindFvPpiGuid;
|
||||
|
||||
#endif
|
78
MdePkg/Include/Ppi/LoadFile.h
Normal file
78
MdePkg/Include/Ppi/LoadFile.h
Normal file
@@ -0,0 +1,78 @@
|
||||
/** @file
|
||||
Load image file from fv to memory.
|
||||
|
||||
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: LoadFile.h
|
||||
|
||||
@par Revision Reference:
|
||||
This PPI is defined in PEI CIS spec Version 0.91.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __FV_FILE_LOADER_PPI_H__
|
||||
#define __FV_FILE_LOADER_PPI_H__
|
||||
|
||||
#define EFI_PEI_FV_FILE_LOADER_GUID \
|
||||
{ \
|
||||
0x7e1f0d85, 0x4ff, 0x4bb2, {0x86, 0x6a, 0x31, 0xa2, 0x99, 0x6a, 0x48, 0xa8 } \
|
||||
}
|
||||
|
||||
typedef struct _EFI_PEI_FV_FILE_LOADER_PPI EFI_PEI_FV_FILE_LOADER_PPI;
|
||||
|
||||
/**
|
||||
Loads a PEIM into memory for subsequent execution.
|
||||
|
||||
@param This Interface pointer that implements the Load File PPI instance.
|
||||
|
||||
@param FfsHeader Pointer to the FFS header of the file to load.
|
||||
|
||||
@param ImageAddress Pointer to the address of the loaded Image
|
||||
|
||||
@param ImageSize Pointer to the size of the loaded image.
|
||||
|
||||
@param EntryPoint Pointer to the entry point of the image.
|
||||
|
||||
@retval EFI_SUCCESS The image was loaded successfully.
|
||||
|
||||
@retval EFI_OUT_OF_RESOURCES There was not enough memory.
|
||||
|
||||
@retval EFI_INVALID_PARAMETER The contents of the FFS file did not
|
||||
contain a valid PE/COFF image that could be loaded.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PEI_FV_LOAD_FILE) (
|
||||
IN EFI_PEI_FV_FILE_LOADER_PPI *This,
|
||||
IN EFI_FFS_FILE_HEADER *FfsHeader,
|
||||
OUT EFI_PHYSICAL_ADDRESS *ImageAddress,
|
||||
OUT UINT64 *ImageSize,
|
||||
OUT EFI_PHYSICAL_ADDRESS *EntryPoint
|
||||
);
|
||||
|
||||
/**
|
||||
@par Ppi Description:
|
||||
This PPI is a pointer to the Load File service. This service will be
|
||||
published by a PEIM.The PEI Foundation will use this service to
|
||||
launch the known non-XIP PE/COFF PEIM images. This service may
|
||||
depend upon the presence of the EFI_PEI_PERMANENT_MEMORY_INSTALLED_PPI.
|
||||
|
||||
@param FvLoadFile
|
||||
Loads a PEIM into memory for subsequent execution
|
||||
|
||||
**/
|
||||
struct _EFI_PEI_FV_FILE_LOADER_PPI {
|
||||
EFI_PEI_FV_LOAD_FILE FvLoadFile;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiPeiFvFileLoaderPpiGuid;
|
||||
|
||||
#endif
|
34
MdePkg/Include/Ppi/MasterBootMode.h
Normal file
34
MdePkg/Include/Ppi/MasterBootMode.h
Normal file
@@ -0,0 +1,34 @@
|
||||
/** @file
|
||||
This file declares Boot Mode PPI
|
||||
The Master Boot Mode PPI is installed by a PEIM to signal that a final
|
||||
boot has been determined and set. This signal is useful in that PEIMs
|
||||
with boot-mode-specific behavior can put this PPI in their dependency expression.
|
||||
|
||||
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: MasterBootMode.h
|
||||
|
||||
@par Revision Reference:
|
||||
This PPI is defined in PEI CIS
|
||||
Version 0.91.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __MASTER_BOOT_MODE_PPI_H__
|
||||
#define __MASTER_BOOT_MODE_PPI_H__
|
||||
|
||||
#define EFI_PEI_MASTER_BOOT_MODE_PEIM_PPI \
|
||||
{ \
|
||||
0x7408d748, 0xfc8c, 0x4ee6, {0x92, 0x88, 0xc4, 0xbe, 0xc0, 0x92, 0xa4, 0x10 } \
|
||||
}
|
||||
|
||||
extern EFI_GUID gEfiPeiMasterBootModePpiGuid;
|
||||
|
||||
#endif
|
34
MdePkg/Include/Ppi/MemoryDiscovered.h
Normal file
34
MdePkg/Include/Ppi/MemoryDiscovered.h
Normal file
@@ -0,0 +1,34 @@
|
||||
/** @file
|
||||
This file declares Memory Discovered PPI.
|
||||
This PPI is installed by the PEI Foundation at the point of system
|
||||
evolution when the permanent memory size has been registered and
|
||||
waiting PEIMs can use the main memory store.
|
||||
|
||||
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: MemoryDiscovered.h
|
||||
|
||||
@par Revision Reference:
|
||||
This PPI is defined in PEI CIS
|
||||
Version 0.91.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __PEI_MEMORY_DISCOVERED_PPI_H__
|
||||
#define __PEI_MEMORY_DISCOVERED_PPI_H__
|
||||
|
||||
#define EFI_PEI_PERMANENT_MEMORY_INSTALLED_PPI_GUID \
|
||||
{ \
|
||||
0xf894643d, 0xc449, 0x42d1, {0x8e, 0xa8, 0x85, 0xbd, 0xd8, 0xc6, 0x5b, 0xde } \
|
||||
}
|
||||
|
||||
extern EFI_GUID gEfiPeiMemoryDiscoveredPpiGuid;
|
||||
|
||||
#endif
|
294
MdePkg/Include/Ppi/Pcd.h
Normal file
294
MdePkg/Include/Ppi/Pcd.h
Normal file
@@ -0,0 +1,294 @@
|
||||
/** @file
|
||||
Platform Configuration Database (PCD) Protocol
|
||||
|
||||
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: Pcd.h
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __PCD_H__
|
||||
#define __PCD_H__
|
||||
|
||||
extern EFI_GUID gPcdPpiGuid;
|
||||
|
||||
#define PCD_PPI_GUID \
|
||||
{ 0x632df884, 0x8023, 0x4872, { 0xb6, 0x70, 0xb7, 0x4a, 0x30, 0x19, 0x16, 0xe9 } }
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *PCD_PPI_SET_SKU) (
|
||||
IN UINTN SkuId
|
||||
);
|
||||
|
||||
typedef
|
||||
UINT8
|
||||
(EFIAPI *PCD_PPI_GET8) (
|
||||
IN UINTN TokenNumber
|
||||
);
|
||||
|
||||
typedef
|
||||
UINT16
|
||||
(EFIAPI *PCD_PPI_GET16) (
|
||||
IN UINTN TokenNumber
|
||||
);
|
||||
|
||||
typedef
|
||||
UINT32
|
||||
(EFIAPI *PCD_PPI_GET32) (
|
||||
IN UINTN TokenNumber
|
||||
);
|
||||
|
||||
typedef
|
||||
UINT64
|
||||
(EFIAPI *PCD_PPI_GET64) (
|
||||
IN UINTN TokenNumber
|
||||
);
|
||||
|
||||
typedef
|
||||
VOID *
|
||||
(EFIAPI *PCD_PPI_GET_POINTER) (
|
||||
IN UINTN TokenNumber
|
||||
);
|
||||
|
||||
typedef
|
||||
BOOLEAN
|
||||
(EFIAPI *PCD_PPI_GET_BOOLEAN) (
|
||||
IN UINTN TokenNumber
|
||||
);
|
||||
|
||||
typedef
|
||||
UINTN
|
||||
(EFIAPI *PCD_PPI_GET_SIZE) (
|
||||
IN UINTN TokenNumber
|
||||
);
|
||||
|
||||
typedef
|
||||
UINT8
|
||||
(EFIAPI *PCD_PPI_GET_EX_8) (
|
||||
IN CONST EFI_GUID *Guid,
|
||||
IN UINTN TokenNumber
|
||||
);
|
||||
|
||||
typedef
|
||||
UINT16
|
||||
(EFIAPI *PCD_PPI_GET_EX_16) (
|
||||
IN CONST EFI_GUID *Guid,
|
||||
IN UINTN TokenNumber
|
||||
);
|
||||
|
||||
typedef
|
||||
UINT32
|
||||
(EFIAPI *PCD_PPI_GET_EX_32) (
|
||||
IN CONST EFI_GUID *Guid,
|
||||
IN UINTN TokenNumber
|
||||
);
|
||||
|
||||
typedef
|
||||
UINT64
|
||||
(EFIAPI *PCD_PPI_GET_EX_64) (
|
||||
IN CONST EFI_GUID *Guid,
|
||||
IN UINTN TokenNumber
|
||||
);
|
||||
|
||||
typedef
|
||||
VOID *
|
||||
(EFIAPI *PCD_PPI_GET_EX_POINTER) (
|
||||
IN CONST EFI_GUID *Guid,
|
||||
IN UINTN TokenNumber
|
||||
);
|
||||
|
||||
typedef
|
||||
BOOLEAN
|
||||
(EFIAPI *PCD_PPI_GET_EX_BOOLEAN) (
|
||||
IN CONST EFI_GUID *Guid,
|
||||
IN UINTN TokenNumber
|
||||
);
|
||||
|
||||
typedef
|
||||
UINTN
|
||||
(EFIAPI *PCD_PPI_GET_EX_SIZE) (
|
||||
IN CONST EFI_GUID *Guid,
|
||||
IN UINTN TokenNumber
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *PCD_PPI_SET8) (
|
||||
IN UINTN TokenNumber,
|
||||
IN UINT8 Value
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *PCD_PPI_SET16) (
|
||||
IN UINTN TokenNumber,
|
||||
IN UINT16 Value
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *PCD_PPI_SET32) (
|
||||
IN UINTN TokenNumber,
|
||||
IN UINT32 Value
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *PCD_PPI_SET64) (
|
||||
IN UINTN TokenNumber,
|
||||
IN UINT64 Value
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *PCD_PPI_SET_POINTER) (
|
||||
IN UINTN TokenNumber,
|
||||
IN CONST VOID *Value
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *PCD_PPI_SET_BOOLEAN) (
|
||||
IN UINTN TokenNumber,
|
||||
IN BOOLEAN Value
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *PCD_PPI_SET_EX_8) (
|
||||
IN CONST EFI_GUID *Guid,
|
||||
IN UINTN TokenNumber,
|
||||
IN UINT8 Value
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *PCD_PPI_SET_EX_16) (
|
||||
IN CONST EFI_GUID *Guid,
|
||||
IN UINTN TokenNumber,
|
||||
IN UINT16 Value
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *PCD_PPI_SET_EX_32) (
|
||||
IN CONST EFI_GUID *Guid,
|
||||
IN UINTN TokenNumber,
|
||||
IN UINT32 Value
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *PCD_PPI_SET_EX_64) (
|
||||
IN CONST EFI_GUID *Guid,
|
||||
IN UINTN TokenNumber,
|
||||
IN UINT64 Value
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *PCD_PPI_SET_EX_POINTER) (
|
||||
IN CONST EFI_GUID *Guid,
|
||||
IN UINTN TokenNumber,
|
||||
IN CONST VOID *Value
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *PCD_PPI_SET_EX_BOOLEAN) (
|
||||
IN CONST EFI_GUID *Guid,
|
||||
IN UINTN TokenNumber,
|
||||
IN BOOLEAN Value
|
||||
);
|
||||
|
||||
/**
|
||||
Callback on SET function prototype definition.
|
||||
|
||||
@param[in] CallBackGuid The PCD token GUID being set.
|
||||
@param[in] CallBackToken The PCD token number being set.
|
||||
@param[in] TokenData A pointer to the token data being set.
|
||||
@param[in] TokenDataSize The size, in bytes, of the data being set.
|
||||
|
||||
@retval VOID
|
||||
|
||||
--*/
|
||||
typedef
|
||||
VOID
|
||||
(EFIAPI *PCD_PPI_CALLBACK) (
|
||||
IN CONST EFI_GUID *CallBackGuid, OPTIONAL
|
||||
IN UINTN CallBackToken,
|
||||
IN VOID *TokenData,
|
||||
IN UINTN TokenDataSize
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *PCD_PPI_CALLBACK_ONSET) (
|
||||
IN UINTN TokenNumber,
|
||||
IN CONST EFI_GUID *Guid, OPTIONAL
|
||||
IN PCD_PPI_CALLBACK CallBackFunction
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *PCD_PPI_CANCEL_CALLBACK) (
|
||||
IN UINTN TokenNumber,
|
||||
IN CONST EFI_GUID *Guid, OPTIONAL
|
||||
IN PCD_PPI_CALLBACK CallBackFunction
|
||||
);
|
||||
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *PCD_PPI_GET_NEXT_TOKEN) (
|
||||
IN CONST EFI_GUID *Guid, OPTIONAL
|
||||
IN OUT UINTN *TokenNumber
|
||||
);
|
||||
|
||||
typedef struct {
|
||||
PCD_PPI_SET_SKU SetSku;
|
||||
|
||||
PCD_PPI_GET8 Get8;
|
||||
PCD_PPI_GET16 Get16;
|
||||
PCD_PPI_GET32 Get32;
|
||||
PCD_PPI_GET64 Get64;
|
||||
PCD_PPI_GET_POINTER GetPtr;
|
||||
PCD_PPI_GET_BOOLEAN GetBool;
|
||||
PCD_PPI_GET_SIZE GetSize;
|
||||
|
||||
PCD_PPI_GET_EX_8 Get8Ex;
|
||||
PCD_PPI_GET_EX_16 Get16Ex;
|
||||
PCD_PPI_GET_EX_32 Get32Ex;
|
||||
PCD_PPI_GET_EX_64 Get64Ex;
|
||||
PCD_PPI_GET_EX_POINTER GetPtrEx;
|
||||
PCD_PPI_GET_EX_BOOLEAN GetBoolEx;
|
||||
PCD_PPI_GET_EX_SIZE GetSizeEx;
|
||||
|
||||
PCD_PPI_SET8 Set8;
|
||||
PCD_PPI_SET16 Set16;
|
||||
PCD_PPI_SET32 Set32;
|
||||
PCD_PPI_SET64 Set64;
|
||||
PCD_PPI_SET_POINTER SetPtr;
|
||||
PCD_PPI_SET_BOOLEAN SetBool;
|
||||
|
||||
PCD_PPI_SET_EX_8 Set8Ex;
|
||||
PCD_PPI_SET_EX_16 Set16Ex;
|
||||
PCD_PPI_SET_EX_32 Set32Ex;
|
||||
PCD_PPI_SET_EX_64 Set64Ex;
|
||||
PCD_PPI_SET_EX_POINTER SetPtrEx;
|
||||
PCD_PPI_SET_EX_BOOLEAN SetBoolEx;
|
||||
|
||||
PCD_PPI_CALLBACK_ONSET CallbackOnSet;
|
||||
PCD_PPI_CANCEL_CALLBACK CancelCallback;
|
||||
PCD_PPI_GET_NEXT_TOKEN GetNextToken;
|
||||
} PCD_PPI;
|
||||
|
||||
|
||||
#endif
|
133
MdePkg/Include/Ppi/PciCfg.h
Normal file
133
MdePkg/Include/Ppi/PciCfg.h
Normal file
@@ -0,0 +1,133 @@
|
||||
/** @file
|
||||
This file declares PciCfg PPI used to access PCI configuration space in PEI
|
||||
|
||||
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: PciCfg.h
|
||||
|
||||
@par Revision Reference:
|
||||
This PPI is defined in PEI CIS
|
||||
Version 0.91.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __PEI_PCI_CFG_H__
|
||||
#define __PEI_PCI_CFG_H__
|
||||
|
||||
#define EFI_PEI_PCI_CFG_PPI_INSTALLED_GUID \
|
||||
{ \
|
||||
0xe1f2eba0, 0xf7b9, 0x4a26, {0x86, 0x20, 0x13, 0x12, 0x21, 0x64, 0x2a, 0x90 } \
|
||||
}
|
||||
|
||||
typedef struct _EFI_PEI_PCI_CFG_PPI EFI_PEI_PCI_CFG_PPI;
|
||||
|
||||
#define PEI_PCI_CFG_ADDRESS(bus, dev, func, reg) ( \
|
||||
(UINT64) ((((UINTN) bus) << 24) + (((UINTN) dev) << 16) + (((UINTN) func) << 8) + ((UINTN) reg)) \
|
||||
) & 0x00000000ffffffff
|
||||
|
||||
typedef enum {
|
||||
EfiPeiPciCfgWidthUint8 = 0,
|
||||
EfiPeiPciCfgWidthUint16 = 1,
|
||||
EfiPeiPciCfgWidthUint32 = 2,
|
||||
EfiPeiPciCfgWidthUint64 = 3,
|
||||
EfiPeiPciCfgWidthMaximum
|
||||
} EFI_PEI_PCI_CFG_PPI_WIDTH;
|
||||
|
||||
typedef struct {
|
||||
UINT8 Register;
|
||||
UINT8 Function;
|
||||
UINT8 Device;
|
||||
UINT8 Bus;
|
||||
UINT8 Reserved[4];
|
||||
} EFI_PEI_PCI_CFG_PPI_PCI_ADDRESS;
|
||||
|
||||
/**
|
||||
PCI read and write operation.
|
||||
|
||||
@param PeiServices An indirect pointer to the PEI Services Table
|
||||
published by the PEI Foundation.
|
||||
|
||||
@param This Pointer to local data for the interface.
|
||||
|
||||
@param Width The width of the access. Enumerated in bytes.
|
||||
|
||||
@param Address The physical address of the access.
|
||||
|
||||
@param Buffer A pointer to the buffer of data.
|
||||
|
||||
@retval EFI_SUCCESS The function completed successfully.
|
||||
|
||||
@retval EFI_NOT_YET_AVAILABLE The service has not been installed.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PEI_PCI_CFG_PPI_IO) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_PCI_CFG_PPI *This,
|
||||
IN EFI_PEI_PCI_CFG_PPI_WIDTH Width,
|
||||
IN UINT64 Address,
|
||||
IN OUT VOID *Buffer
|
||||
);
|
||||
|
||||
/**
|
||||
PCI read-modify-write operation.
|
||||
|
||||
@param PeiServices An indirect pointer to the PEI Services Table
|
||||
published by the PEI Foundation.
|
||||
|
||||
@param This Pointer to local data for the interface.
|
||||
|
||||
@param Width The width of the access. Enumerated in bytes.
|
||||
|
||||
@param Address The physical address of the access.
|
||||
|
||||
@param SetBits Value of the bits to set.
|
||||
|
||||
@param ClearBits Value of the bits to clear.
|
||||
|
||||
@retval EFI_SUCCESS The function completed successfully.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PEI_PCI_CFG_PPI_RW) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_PCI_CFG_PPI *This,
|
||||
IN EFI_PEI_PCI_CFG_PPI_WIDTH Width,
|
||||
IN UINT64 Address,
|
||||
IN UINTN SetBits,
|
||||
IN UINTN ClearBits
|
||||
);
|
||||
|
||||
/**
|
||||
@par Ppi Description:
|
||||
The EFI_PEI_PCI_CFG_PPI interfaces are used to abstract accesses to PCI
|
||||
controllers behind a PCI root bridge controller.
|
||||
|
||||
@param Read
|
||||
PCI read services. See the Read() function description.
|
||||
|
||||
@param Write
|
||||
PCI write services. See the Write() function description.
|
||||
|
||||
@param Modify
|
||||
PCI read-modify-write services. See the Modify() function description.
|
||||
|
||||
**/
|
||||
struct _EFI_PEI_PCI_CFG_PPI {
|
||||
EFI_PEI_PCI_CFG_PPI_IO Read;
|
||||
EFI_PEI_PCI_CFG_PPI_IO Write;
|
||||
EFI_PEI_PCI_CFG_PPI_RW Modify;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiPciCfgPpiInServiceTableGuid;
|
||||
|
||||
#endif
|
136
MdePkg/Include/Ppi/ReadOnlyVariable.h
Normal file
136
MdePkg/Include/Ppi/ReadOnlyVariable.h
Normal file
@@ -0,0 +1,136 @@
|
||||
/** @file
|
||||
This file declares Read-only Variable Service PPI
|
||||
|
||||
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: ReadOnlyVariable.h
|
||||
|
||||
@par Revision Reference:
|
||||
This PPI is defined in PEI CIS
|
||||
Version 0.91.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __PEI_READ_ONLY_VARIABLE_PPI_H__
|
||||
#define __PEI_READ_ONLY_VARIABLE_PPI_H__
|
||||
|
||||
#define EFI_PEI_READ_ONLY_VARIABLE_ACCESS_PPI_GUID \
|
||||
{ \
|
||||
0x3cdc90c6, 0x13fb, 0x4a75, {0x9e, 0x79, 0x59, 0xe9, 0xdd, 0x78, 0xb9, 0xfa } \
|
||||
}
|
||||
|
||||
typedef struct _EFI_PEI_READ_ONLY_VARIABLE_PPI EFI_PEI_READ_ONLY_VARIABLE_PPI;
|
||||
|
||||
//
|
||||
// Variable attributes
|
||||
//
|
||||
#define EFI_VARIABLE_NON_VOLATILE 0x00000001
|
||||
#define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x00000002
|
||||
#define EFI_VARIABLE_RUNTIME_ACCESS 0x00000004
|
||||
#define EFI_VARIABLE_READ_ONLY 0x00000008
|
||||
|
||||
/**
|
||||
Get Variable value by Name and GUID pair
|
||||
|
||||
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
|
||||
|
||||
@param VariableName A NULL-terminated Unicode string that is the name of the vendor<6F><72>s variable.
|
||||
|
||||
@param VendorGuid A unique identifier for the vendor.
|
||||
|
||||
@param Attributes If not NULL, a pointer to the memory location to return
|
||||
the attributes bitmask for the variable.
|
||||
|
||||
@param DataSize On input, the size in bytes of the return Data buffer.
|
||||
On output, the size of data returned in Data.
|
||||
|
||||
@param Data The buffer to return the contents of the variable.
|
||||
|
||||
@retval EFI_SUCCESS The function completed successfully.
|
||||
|
||||
@retval EFI_NOT_FOUND The variable was not found.
|
||||
|
||||
@retval EFI_BUFFER_TOO_SMALL The BufferSize is too small for the result.
|
||||
|
||||
@retval EFI_INVALID_PARAMETER One of the parameters has an invalid value.
|
||||
|
||||
@retval EFI_DEVICE_ERROR The variable could not be retrieved due to a hardware error.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PEI_GET_VARIABLE) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN CHAR16 *VariableName,
|
||||
IN EFI_GUID *VendorGuid,
|
||||
OUT UINT32 *Attributes OPTIONAL,
|
||||
IN OUT UINTN *DataSize,
|
||||
OUT VOID *Data
|
||||
);
|
||||
|
||||
/**
|
||||
This function can be called multiple times to retrieve the VariableName
|
||||
and VendorGuid of all variables currently available in the system. On each call
|
||||
to GetNextVariableName() the previous results are passed into the interface,
|
||||
and on output the interface returns the next variable name data. When the
|
||||
entire variable list has been returned, the error EFI_NOT_FOUND is returned.
|
||||
|
||||
@param PeiServices An indirect pointer to the PEI Services Table published by the PEI Foundation.
|
||||
|
||||
@param VariableNameSize The size of the VariableName buffer.
|
||||
|
||||
@param VariableName On input, supplies the last VariableName that was
|
||||
returned by GetNextVariableName(). On output, returns the Null-terminated
|
||||
Unicode string of the current variable.
|
||||
|
||||
@param VendorGuid On input, supplies the last VendorGuid that was
|
||||
returned by GetNextVariableName(). On output, returns the VendorGuid
|
||||
of the current variable.
|
||||
|
||||
@retval EFI_SUCCESS The function completed successfully.
|
||||
|
||||
@retval EFI_NOT_FOUND The next variable was not found.
|
||||
|
||||
@retval EFI_BUFFER_TOO_SMALL The VariableNameSize is too small for the result.
|
||||
|
||||
@retval EFI_INVALID_PARAMETER One of the parameters has an invalid value.
|
||||
|
||||
@retval EFI_DEVICE_ERROR The variable name could not be retrieved due to a hardware error.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PEI_GET_NEXT_VARIABLE_NAME) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN OUT UINTN *VariableNameSize,
|
||||
IN OUT CHAR16 *VariableName,
|
||||
IN OUT EFI_GUID *VendorGuid
|
||||
);
|
||||
|
||||
/**
|
||||
@par Ppi Description:
|
||||
This PPI provides a lightweight, read-only variant of the full EFI
|
||||
variable services.
|
||||
|
||||
@param GetVariable
|
||||
A service to ascertain a given variable name.
|
||||
|
||||
@param GetNextVariableName
|
||||
A service to ascertain a variable based upon a given, known variable
|
||||
|
||||
**/
|
||||
struct _EFI_PEI_READ_ONLY_VARIABLE_PPI {
|
||||
EFI_PEI_GET_VARIABLE PeiGetVariable;
|
||||
EFI_PEI_GET_NEXT_VARIABLE_NAME PeiGetNextVariableName;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiPeiReadOnlyVariablePpiGuid;
|
||||
|
||||
#endif
|
67
MdePkg/Include/Ppi/RecoveryModule.h
Normal file
67
MdePkg/Include/Ppi/RecoveryModule.h
Normal file
@@ -0,0 +1,67 @@
|
||||
/** @file
|
||||
This file declares Recovery Module PPI.
|
||||
|
||||
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: RecoveryModule.h
|
||||
|
||||
@par Revision Reference:
|
||||
This PPI is defined in Framework of EFI Recovery Spec.
|
||||
Version 0.9
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __PEI_RECOVERY_MODULE_PPI_H__
|
||||
#define __PEI_RECOVERY_MODULE_PPI_H__
|
||||
|
||||
#define EFI_PEI_RECOVERY_MODULE_PPI_GUID \
|
||||
{ \
|
||||
0xFB6D9542, 0x612D, 0x4f45, {0x87, 0x2F, 0x5C, 0xFF, 0x52, 0xE9, 0x3D, 0xCF } \
|
||||
}
|
||||
|
||||
typedef struct _EFI_PEI_RECOVERY_MODULE_PPI EFI_PEI_RECOVERY_MODULE_PPI;
|
||||
|
||||
/**
|
||||
Loads a DXE capsule from some media into memory and updates the HOB table
|
||||
with the DXE firmware volume information.
|
||||
|
||||
@param PeiServices General-purpose services that are available to every PEIM.
|
||||
|
||||
@param This Indicates the EFI_PEI_RECOVERY_MODULE_PPI instance.
|
||||
|
||||
@retval EFI_SUCCESS The capsule was loaded correctly.
|
||||
|
||||
@retval EFI_DEVICE_ERROR A device error occurred.
|
||||
|
||||
@retval EFI_NOT_FOUND A recovery DXE capsule cannot be found.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PEI_LOAD_RECOVERY_CAPSULE) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_RECOVERY_MODULE_PPI *This
|
||||
);
|
||||
|
||||
/**
|
||||
@par Ppi Description:
|
||||
Finds and loads the recovery files.
|
||||
|
||||
@param LoadRecoveryCapsule
|
||||
Loads a DXE binary capsule into memory.
|
||||
|
||||
**/
|
||||
struct _EFI_PEI_RECOVERY_MODULE_PPI {
|
||||
EFI_PEI_LOAD_RECOVERY_CAPSULE LoadRecoveryCapsule;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiPeiRecoveryModulePpiGuid;
|
||||
|
||||
#endif
|
35
MdePkg/Include/Ppi/Reset.h
Normal file
35
MdePkg/Include/Ppi/Reset.h
Normal file
@@ -0,0 +1,35 @@
|
||||
/** @file
|
||||
This file declares Reset PPI used to reset the platform
|
||||
|
||||
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: Reset.h
|
||||
|
||||
@par Revision Reference:
|
||||
This PPI is defined in PEI CIS
|
||||
Version 0.91.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __RESET_PPI_H__
|
||||
#define __RESET_PPI_H__
|
||||
|
||||
#define EFI_PEI_RESET_PPI_GUID \
|
||||
{ \
|
||||
0xef398d58, 0x9dfd, 0x4103, {0xbf, 0x94, 0x78, 0xc6, 0xf4, 0xfe, 0x71, 0x2f } \
|
||||
}
|
||||
|
||||
typedef struct {
|
||||
EFI_PEI_RESET_SYSTEM ResetSystem;
|
||||
} EFI_PEI_RESET_PPI;
|
||||
|
||||
extern EFI_GUID gEfiPeiResetPpiGuid;
|
||||
|
||||
#endif
|
65
MdePkg/Include/Ppi/S3Resume.h
Normal file
65
MdePkg/Include/Ppi/S3Resume.h
Normal file
@@ -0,0 +1,65 @@
|
||||
/** @file
|
||||
This file declares S3 Resume PPI.
|
||||
|
||||
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: S3Resume.h
|
||||
|
||||
@par Revision Reference:
|
||||
This PPI is defined in Framework of EFI S3 Resume Boot Path spec.
|
||||
Version 0.9
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __PEI_S3_RESUME_PPI_H__
|
||||
#define __PEI_S3_RESUME_PPI_H__
|
||||
|
||||
#define EFI_PEI_S3_RESUME_PPI_GUID \
|
||||
{ \
|
||||
0x4426CCB2, 0xE684, 0x4a8a, {0xAE, 0x40, 0x20, 0xD4, 0xB0, 0x25, 0xB7, 0x10 } \
|
||||
}
|
||||
|
||||
typedef struct _EFI_PEI_S3_RESUME_PPI EFI_PEI_S3_RESUME_PPI;
|
||||
|
||||
/**
|
||||
Restores the platform to its preboot configuration for an S3 resume and
|
||||
jumps to the OS waking vector.
|
||||
|
||||
@param PeiServices Pointer to the PEI Services Table
|
||||
|
||||
@retval EFI_ABORTED Execution of the S3 resume boot script table failed.
|
||||
|
||||
@retval EFI_NOT_FOUND Some necessary information that is used for
|
||||
the S3 resume boot path could not be located.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PEI_S3_RESUME_PPI_RESTORE_CONFIG) (
|
||||
IN EFI_PEI_SERVICES **PeiServices
|
||||
);
|
||||
|
||||
/**
|
||||
@par Ppi Description:
|
||||
EFI_PEI_S3_RESUME_PPI accomplishes the firmware S3 resume boot
|
||||
path and transfers control to OS.
|
||||
|
||||
@param S3RestoreConfig
|
||||
Restores the platform to its preboot configuration for an S3 resume and
|
||||
jumps to the OS waking vector.
|
||||
|
||||
**/
|
||||
struct _EFI_PEI_S3_RESUME_PPI {
|
||||
EFI_PEI_S3_RESUME_PPI_RESTORE_CONFIG S3RestoreConfig;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiPeiS3ResumePpiGuid;
|
||||
|
||||
#endif
|
86
MdePkg/Include/Ppi/SecPlatformInformation.h
Normal file
86
MdePkg/Include/Ppi/SecPlatformInformation.h
Normal file
@@ -0,0 +1,86 @@
|
||||
/** @file
|
||||
This file declares Sec Platform Information PPI.
|
||||
|
||||
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: SecPlatformInformation.h
|
||||
|
||||
@par Revision Reference:
|
||||
This PPI is defined in PEI CIS.
|
||||
Version 0.91.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __SEC_PLATFORM_INFORMATION_PPI_H__
|
||||
#define __SEC_PLATFORM_INFORMATION_PPI_H__
|
||||
|
||||
#define EFI_SEC_PLATFORM_INFORMATION_GUID \
|
||||
{ \
|
||||
0x6f8c2b35, 0xfef4, 0x448d, {0x82, 0x56, 0xe1, 0x1b, 0x19, 0xd6, 0x10, 0x77 } \
|
||||
}
|
||||
|
||||
typedef struct _EFI_SEC_PLATFORM_INFORMATION_PPI EFI_SEC_PLATFORM_INFORMATION_PPI;
|
||||
|
||||
extern EFI_GUID gEfiSecPlatformInformationPpiGuid;
|
||||
|
||||
///
|
||||
/// EFI_HEALTH_FLAGS
|
||||
///
|
||||
typedef union {
|
||||
struct {
|
||||
UINT32 Status : 2;
|
||||
UINT32 Tested : 1;
|
||||
UINT32 Reserved1 :13;
|
||||
UINT32 VirtualMemoryUnavailable : 1;
|
||||
UINT32 Ia32ExecutionUnavailable : 1;
|
||||
UINT32 FloatingPointUnavailable : 1;
|
||||
UINT32 MiscFeaturesUnavailable : 1;
|
||||
UINT32 Reserved2 :12;
|
||||
} Bits;
|
||||
UINT32 Uint32;
|
||||
} EFI_HEALTH_FLAGS;
|
||||
|
||||
typedef struct {
|
||||
EFI_HEALTH_FLAGS HealthFlags;
|
||||
} EFI_SEC_PLATFORM_INFORMATION_RECORD;
|
||||
|
||||
/**
|
||||
This interface conveys state information out of the Security (SEC) phase into PEI.
|
||||
|
||||
@param PeiServices Pointer to the PEI Services Table.
|
||||
|
||||
@param StructureSize Pointer to the variable describing size of the input buffer.
|
||||
|
||||
@param PlatformInformationRecord Pointer to the EFI_SEC_PLATFORM_INFORMATION_RECORD.
|
||||
|
||||
@retval EFI_SUCCESS The data was successfully returned.
|
||||
|
||||
@retval EFI_BUFFER_TOO_SMALL The buffer was too small.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_SEC_PLATFORM_INFORMATION) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN OUT UINT64 *StructureSize,
|
||||
OUT EFI_SEC_PLATFORM_INFORMATION_RECORD *PlatformInformationRecord
|
||||
);
|
||||
|
||||
/**
|
||||
@par Ppi Description:
|
||||
|
||||
@param Name
|
||||
|
||||
**/
|
||||
struct _EFI_SEC_PLATFORM_INFORMATION_PPI {
|
||||
EFI_SEC_PLATFORM_INFORMATION PlatformInformation;
|
||||
};
|
||||
|
||||
#endif
|
118
MdePkg/Include/Ppi/SectionExtraction.h
Normal file
118
MdePkg/Include/Ppi/SectionExtraction.h
Normal file
@@ -0,0 +1,118 @@
|
||||
/** @file
|
||||
This file declares Section Extraction PPI.
|
||||
|
||||
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: SectionExtraction.h
|
||||
|
||||
@par Revision Reference:
|
||||
This PPI is defined in PEI CIS.
|
||||
Version 0.91.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __SECTION_EXTRACTION_PPI_H__
|
||||
#define __SECTION_EXTRACTION_PPI_H__
|
||||
|
||||
#define EFI_PEI_SECTION_EXTRACTION_PPI_GUID \
|
||||
{ \
|
||||
0x4F89E208, 0xE144, 0x4804, {0x9E, 0xC8, 0x0F, 0x89, 0x4F, 0x7E, 0x36, 0xD7 } \
|
||||
}
|
||||
|
||||
typedef struct _EFI_PEI_SECTION_EXTRACTION_PPI EFI_PEI_SECTION_EXTRACTION_PPI;
|
||||
|
||||
//
|
||||
// Bit values for AuthenticationStatus
|
||||
//
|
||||
#define EFI_PEI_AUTH_STATUS_PLATFORM_OVERRIDE 0x01
|
||||
#define EFI_PEI_AUTH_STATUS_IMAGE_SIGNED 0x02
|
||||
#define EFI_PEI_AUTH_STATUS_NOT_TESTED 0x04
|
||||
#define EFI_PEI_AUTH_STATUS_TEST_FAILED 0x08
|
||||
|
||||
/**
|
||||
The function is used to retrieve a section from within a section file.
|
||||
It will retrieve both encapsulation sections and leaf sections in their entirety,
|
||||
exclusive of the section header.
|
||||
|
||||
@param PeiServices Pointer to the PEI Services Table.
|
||||
|
||||
@param This Indicates the calling context
|
||||
|
||||
@param SectionType Pointer to an EFI_SECTION_TYPE. If SectionType == NULL,
|
||||
the contents of the entire section are returned in Buffer. If SectionType
|
||||
is not NULL, only the requested section is returned.
|
||||
|
||||
@param SectionDefinitionGuid Pointer to an EFI_GUID.
|
||||
If SectionType == EFI_SECTION_GUID_DEFINED, SectionDefinitionGuid
|
||||
indicates for which section GUID to search.
|
||||
If SectionType != EFI_SECTION_GUID_DEFINED, SectionDefinitionGuid
|
||||
is unused and is ignored.
|
||||
|
||||
@param SectionInstance If SectionType is not NULL, indicates which
|
||||
instance of the requested section type to return.
|
||||
|
||||
@param Buffer Pointer to a pointer to a buffer in which the section
|
||||
contents are returned.
|
||||
|
||||
@param BufferSize A pointer to a caller-allocated UINT32.On input, *BufferSize
|
||||
indicates the size in bytes of the memory region pointed to by Buffer.On output,
|
||||
*BufferSize contains the number of bytes required to read the section.
|
||||
|
||||
@param AuthenticationStatus A pointer to a caller-allocated UINT32 in
|
||||
which any metadata from encapsulating GUID-defined sections is returned.
|
||||
|
||||
@retval EFI_SUCCESS The section was successfully processed and the section
|
||||
contents were returned in Buffer.
|
||||
|
||||
@retval EFI_PROTOCOL_ERROR A GUID-defined section was encountered in
|
||||
the file with its EFI_GUIDED_SECTION_PROCESSING_REQUIRED bit set, but
|
||||
there was no corresponding GUIDed Section Extraction Protocol in the
|
||||
handle database.*Buffer is unmodified.
|
||||
|
||||
@retval EFI_NOT_FOUND The requested section does not exist.*Buffer is unmodified.
|
||||
|
||||
@retval EFI_OUT_OF_RESOURCES The system has insufficient resources to process the request.
|
||||
|
||||
@retval EFI_INVALID_PARAMETER The SectionStreamHandle does not exist.
|
||||
|
||||
@retval EFI_WARN_TOO_SMALL The size of the input buffer is insufficient to
|
||||
contain the requested section. The input buffer is filled and contents are
|
||||
section contents are truncated.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PEI_GET_SECTION) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_SECTION_EXTRACTION_PPI *This,
|
||||
IN EFI_SECTION_TYPE *SectionType,
|
||||
IN EFI_GUID *SectionDefinitionGuid, OPTIONAL
|
||||
IN UINTN SectionInstance,
|
||||
IN VOID **Buffer,
|
||||
IN OUT UINT32 *BufferSize,
|
||||
OUT UINT32 *AuthenticationStatus
|
||||
);
|
||||
|
||||
/**
|
||||
@par Ppi Description:
|
||||
This PPI supports encapsulating sections, such as GUIDed sections used to
|
||||
authenticate the file encapsulation of other domain-specific wrapping.
|
||||
|
||||
@param GetSection
|
||||
Retrieves a section from within a section file.
|
||||
|
||||
**/
|
||||
struct _EFI_PEI_SECTION_EXTRACTION_PPI {
|
||||
EFI_PEI_GET_SECTION PeiGetSection;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiPeiSectionExtractionPpiGuid;
|
||||
|
||||
#endif
|
77
MdePkg/Include/Ppi/Security.h
Normal file
77
MdePkg/Include/Ppi/Security.h
Normal file
@@ -0,0 +1,77 @@
|
||||
/** @file
|
||||
This file declares Security Architectural PPI.
|
||||
|
||||
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: Security.h
|
||||
|
||||
@par Revision Reference:
|
||||
This PPI is defined in PEI CIS.
|
||||
Version 0.91.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __SECURITY_PPI_H__
|
||||
#define __SECURITY_PPI_H__
|
||||
|
||||
#define EFI_PEI_SECURITY_PPI_GUID \
|
||||
{ \
|
||||
0x1388066e, 0x3a57, 0x4efa, {0x98, 0xf3, 0xc1, 0x2f, 0x3a, 0x95, 0x8a, 0x29 } \
|
||||
}
|
||||
|
||||
typedef struct _EFI_PEI_SECURITY_PPI EFI_PEI_SECURITY_PPI;
|
||||
|
||||
/**
|
||||
Allows the platform builder to implement a security policy in response
|
||||
to varying file authentication states.
|
||||
|
||||
@param PeiServices Pointer to the PEI Services Table.
|
||||
|
||||
@param This Interface pointer that implements the particular EFI_PEI_SECURITY_PPI instance.
|
||||
|
||||
@param AuthenticationStatus Status returned by the verification service as part of section extraction.
|
||||
|
||||
@param FfsFileHeader Pointer to the file under review.
|
||||
|
||||
@param DeferExecution Pointer to a variable that alerts the PEI Foundation to defer execution of a PEIM.
|
||||
|
||||
@retval EFI_SUCCESS The service performed its action successfully.
|
||||
|
||||
@retval EFI_SECURITY_VIOLATION The object cannot be trusted
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PEI_SECURITY_AUTHENTICATION_STATE) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_SECURITY_PPI *This,
|
||||
IN UINT32 AuthenticationStatus,
|
||||
IN EFI_FFS_FILE_HEADER *FfsFileHeader,
|
||||
IN OUT BOOLEAN *StartCrisisRecovery
|
||||
);
|
||||
|
||||
/**
|
||||
@par Ppi Description:
|
||||
This PPI is installed by some platform PEIM that abstracts the security
|
||||
policy to the PEI Foundation, namely the case of a PEIM<49><4D>s authentication
|
||||
state being returned during the PEI section extraction process.
|
||||
|
||||
@param AuthenticationState
|
||||
Allows the platform builder to implement a security policy in response
|
||||
to varying file authentication states.
|
||||
|
||||
**/
|
||||
struct _EFI_PEI_SECURITY_PPI {
|
||||
EFI_PEI_SECURITY_AUTHENTICATION_STATE AuthenticationState;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiPeiSecurityPpiGuid;
|
||||
|
||||
#endif
|
258
MdePkg/Include/Ppi/Smbus.h
Normal file
258
MdePkg/Include/Ppi/Smbus.h
Normal file
@@ -0,0 +1,258 @@
|
||||
/** @file
|
||||
This file declares Smbus PPI.
|
||||
|
||||
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: Smbus.h
|
||||
|
||||
@par Revision Reference:
|
||||
This PPI is defined in Framework of EFI SmBus PPI spec.
|
||||
Version 0.9
|
||||
|
||||
**/
|
||||
|
||||
#ifndef _PEI_SMBUS_PPI_H
|
||||
#define _PEI_SMBUS_PPI_H
|
||||
|
||||
#define EFI_PEI_SMBUS_PPI_GUID \
|
||||
{ \
|
||||
0xabd42895, 0x78cf, 0x4872, {0x84, 0x44, 0x1b, 0x5c, 0x18, 0xb, 0xfb, 0xda } \
|
||||
}
|
||||
|
||||
typedef struct _EFI_PEI_SMBUS_PPI EFI_PEI_SMBUS_PPI;
|
||||
|
||||
/**
|
||||
Executes an SMBus operation to an SMBus controller.
|
||||
|
||||
@param PeiServices A pointer to the system PEI Services Table.
|
||||
|
||||
@param This A pointer to the EFI_PEI_SMBUS_PPI instance.
|
||||
|
||||
@param SlaveAddress The SMBUS hardware address to which the SMBUS
|
||||
device is preassigned or allocated.
|
||||
|
||||
@param Command This command is transmitted by the SMBus host
|
||||
controller to the SMBus slave device and the interpretation is
|
||||
SMBus slave device specific.
|
||||
|
||||
@param Operation Signifies which particular SMBus hardware protocol
|
||||
instance that it will use to execute the SMBus transactions.
|
||||
|
||||
@param PecCheck Defines if Packet Error Code (PEC) checking is required
|
||||
for this operation.
|
||||
|
||||
@param Length Signifies the number of bytes that this operation will do.
|
||||
|
||||
@param Buffer Contains the value of data to execute to the SMBus slave device.
|
||||
|
||||
@retval EFI_SUCCESS The last data that was returned from the access
|
||||
matched the poll exit criteria.
|
||||
|
||||
@retval EFI_CRC_ERROR The checksum is not correct (PEC is incorrect)
|
||||
|
||||
@retval EFI_TIMEOUT Timeout expired before the operation was completed.
|
||||
Timeout is determined by the SMBus host controller device.
|
||||
|
||||
@retval EFI_OUT_OF_RESOURCES The request could not be completed
|
||||
due to a lack of resources.
|
||||
|
||||
@retval EFI_DEVICE_ERROR The request was not completed because
|
||||
a failure reflected in the Host Status Register bit.
|
||||
|
||||
@retval EFI_INVALID_PARAMETER Operation is not defined in EFI_SMBUS_OPERATION.
|
||||
Or Length/Buffer is NULL for operations except for EfiSmbusQuickRead and
|
||||
EfiSmbusQuickWrite. Length is outside the range of valid values.
|
||||
|
||||
@retval EFI_UNSUPPORTED The SMBus operation or PEC is not supported.
|
||||
|
||||
@retval EFI_BUFFER_TOO_SMALL Buffer is not sufficient for this operation.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PEI_SMBUS_PPI_EXECUTE_OPERATION) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_SMBUS_PPI *This,
|
||||
IN EFI_SMBUS_DEVICE_ADDRESS SlaveAddress,
|
||||
IN EFI_SMBUS_DEVICE_COMMAND Command,
|
||||
IN EFI_SMBUS_OPERATION Operation,
|
||||
IN BOOLEAN PecCheck,
|
||||
IN OUT UINTN *Length,
|
||||
IN OUT VOID *Buffer
|
||||
);
|
||||
|
||||
typedef struct {
|
||||
UINT32 VendorSpecificId;
|
||||
UINT16 SubsystemDeviceId;
|
||||
UINT16 SubsystemVendorId;
|
||||
UINT16 Interface;
|
||||
UINT16 DeviceId;
|
||||
UINT16 VendorId;
|
||||
UINT8 VendorRevision;
|
||||
UINT8 DeviceCapabilities;
|
||||
} EFI_SMBUS_UDID;
|
||||
|
||||
/**
|
||||
CallBack function can be registered in EFI_PEI_SMBUS_PPI_NOTIFY.
|
||||
|
||||
@param PeiServices A pointer to the system PEI Services Table.
|
||||
|
||||
@param This A pointer to the EFI_PEI_SMBUS_PPI instance.
|
||||
|
||||
@param SlaveAddress The SMBUS hardware address to which the SMBUS
|
||||
device is preassigned or allocated.
|
||||
|
||||
@param Data Data of the SMBus host notify command that
|
||||
the caller wants to be called.
|
||||
|
||||
@return Status Code
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PEI_SMBUS_NOTIFY_FUNCTION) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_SMBUS_PPI *SmbusPpi,
|
||||
IN EFI_SMBUS_DEVICE_ADDRESS SlaveAddress,
|
||||
IN UINTN Data
|
||||
);
|
||||
|
||||
/**
|
||||
The ArpDevice() function enumerates the entire bus or enumerates a specific
|
||||
device that is identified by SmbusUdid.
|
||||
|
||||
@param PeiServices A pointer to the system PEI Services Table.
|
||||
|
||||
@param This A pointer to the EFI_PEI_SMBUS_PPI instance.
|
||||
|
||||
@param ArpAll A Boolean expression that indicates if the host drivers need
|
||||
to enumerate all the devices or enumerate only the device that is identified
|
||||
by SmbusUdid. If ArpAll is TRUE, SmbusUdid and SlaveAddress are optional.
|
||||
If ArpAll is FALSE, ArpDevice will enumerate SmbusUdid and the address
|
||||
will be at SlaveAddress.
|
||||
|
||||
@param SmbusUdid The targeted SMBus Unique Device Identifier (UDID).
|
||||
The UDID may not exist for SMBus devices with fixed addresses.
|
||||
|
||||
@param SlaveAddress The new SMBus address for the slave device for
|
||||
which the operation is targeted.
|
||||
|
||||
@retval EFI_SUCCESS The SMBus slave device address was set.
|
||||
|
||||
@retval EFI_INVALID_PARAMETER SlaveAddress is NULL.
|
||||
|
||||
@retval EFI_OUT_OF_RESOURCES The request could not be completed
|
||||
due to a lack of resources.
|
||||
|
||||
@retval EFI_TIMEOUT The SMBus slave device did not respond.
|
||||
|
||||
@retval EFI_DEVICE_ERROR The request was not completed because the transaction failed.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PEI_SMBUS_PPI_ARP_DEVICE) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_SMBUS_PPI *This,
|
||||
IN BOOLEAN ArpAll,
|
||||
IN EFI_SMBUS_UDID *SmbusUdid, OPTIONAL
|
||||
IN OUT EFI_SMBUS_DEVICE_ADDRESS *SlaveAddress OPTIONAL
|
||||
);
|
||||
|
||||
typedef struct {
|
||||
EFI_SMBUS_DEVICE_ADDRESS SmbusDeviceAddress;
|
||||
EFI_SMBUS_UDID SmbusDeviceUdid;
|
||||
} EFI_SMBUS_DEVICE_MAP;
|
||||
|
||||
/**
|
||||
The GetArpMap() function returns the mapping of all the SMBus devices
|
||||
that are enumerated by the SMBus host driver.
|
||||
|
||||
@param PeiServices A pointer to the system PEI Services Table.
|
||||
|
||||
@param This A pointer to the EFI_PEI_SMBUS_PPI instance.
|
||||
|
||||
@param Length Size of the buffer that contains the SMBus device map.
|
||||
|
||||
@param SmbusDeviceMap The pointer to the device map as enumerated
|
||||
by the SMBus controller driver.
|
||||
|
||||
@retval EFI_SUCCESS The device map was returned correctly in the buffer.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PEI_SMBUS_PPI_GET_ARP_MAP) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_SMBUS_PPI *This,
|
||||
IN OUT UINTN *Length,
|
||||
IN OUT EFI_SMBUS_DEVICE_MAP **SmbusDeviceMap
|
||||
);
|
||||
|
||||
/**
|
||||
The Notify() function registers all the callback functions to allow the
|
||||
bus driver to call these functions when the SlaveAddress/Data pair happens.
|
||||
|
||||
@param PeiServices A pointer to the system PEI Services Table.
|
||||
|
||||
@param This A pointer to the EFI_PEI_SMBUS_PPI instance.
|
||||
|
||||
@param SlaveAddress Address that the host controller detects as
|
||||
sending a message and calls all the registered functions.
|
||||
|
||||
@param Data Data that the host controller detects as sending a message
|
||||
and calls all the registered functions.
|
||||
|
||||
@param NotifyFunction The function to call when the bus driver
|
||||
detects the SlaveAddress and Data pair.
|
||||
|
||||
@retval EFI_SUCCESS NotifyFunction has been registered.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PEI_SMBUS_PPI_NOTIFY) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_SMBUS_PPI *This,
|
||||
IN EFI_SMBUS_DEVICE_ADDRESS SlaveAddress,
|
||||
IN UINTN Data,
|
||||
IN EFI_PEI_SMBUS_NOTIFY_FUNCTION NotifyFunction
|
||||
);
|
||||
|
||||
/**
|
||||
@par Ppi Description:
|
||||
Provides the basic I/O interfaces that a PEIM uses to access
|
||||
its SMBus controller and the slave devices attached to it.
|
||||
|
||||
@param Execute
|
||||
Executes the SMBus operation to an SMBus slave device.
|
||||
|
||||
@param ArpDevice
|
||||
Allows an SMBus 2.0 device(s) to be Address Resolution Protocol (ARP)
|
||||
|
||||
@param GetArpMap
|
||||
Allows a PEIM to retrieve the address that was allocated by the SMBus
|
||||
host controller during enumeration/ARP.
|
||||
|
||||
@param Notify
|
||||
Allows a driver to register for a callback to the SMBus host
|
||||
controller driver when the bus issues a notification to the bus controller PEIM.
|
||||
|
||||
**/
|
||||
struct _EFI_PEI_SMBUS_PPI {
|
||||
EFI_PEI_SMBUS_PPI_EXECUTE_OPERATION Execute;
|
||||
EFI_PEI_SMBUS_PPI_ARP_DEVICE ArpDevice;
|
||||
EFI_PEI_SMBUS_PPI_GET_ARP_MAP GetArpMap;
|
||||
EFI_PEI_SMBUS_PPI_NOTIFY Notify;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiPeiSmbusPpiGuid;
|
||||
|
||||
#endif
|
73
MdePkg/Include/Ppi/Stall.h
Normal file
73
MdePkg/Include/Ppi/Stall.h
Normal file
@@ -0,0 +1,73 @@
|
||||
/** @file
|
||||
This file declares Stall PPI.
|
||||
|
||||
This code abstracts the PEI core to provide Stall services.
|
||||
|
||||
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: Stall.h
|
||||
|
||||
@par Revision Reference:
|
||||
This PPI is defined in PEI CIS.
|
||||
Version 0.91.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __STALL_PPI_H__
|
||||
#define __STALL_PPI_H__
|
||||
|
||||
#define EFI_PEI_STALL_PPI_GUID \
|
||||
{ \
|
||||
0x1f4c6f90, 0xb06b, 0x48d8, {0xa2, 0x01, 0xba, 0xe5, 0xf1, 0xcd, 0x7d, 0x56 } \
|
||||
}
|
||||
|
||||
typedef struct _EFI_PEI_STALL_PPI EFI_PEI_STALL_PPI;
|
||||
|
||||
/**
|
||||
The Stall() function provides a blocking stall for at least the number
|
||||
of microseconds stipulated in the final argument of the API.
|
||||
|
||||
@param PeiServices An indirect pointer to the PEI Services Table
|
||||
published by the PEI Foundation.
|
||||
|
||||
@param This Pointer to the local data for the interface.
|
||||
|
||||
@param Microseconds Number of microseconds for which to stall.
|
||||
|
||||
@retval EFI_SUCCESS The service provided at least the required delay.
|
||||
|
||||
**/
|
||||
typedef
|
||||
EFI_STATUS
|
||||
(EFIAPI *EFI_PEI_STALL) (
|
||||
IN EFI_PEI_SERVICES **PeiServices,
|
||||
IN EFI_PEI_STALL_PPI *This,
|
||||
IN UINTN Microseconds
|
||||
);
|
||||
|
||||
/**
|
||||
@par Ppi Description:
|
||||
This service provides a simple, blocking stall with platform-specific resolution.
|
||||
|
||||
@param Resolution
|
||||
The resolution in microseconds of the stall services.
|
||||
|
||||
@param Stall
|
||||
The actual stall procedure call.
|
||||
|
||||
**/
|
||||
struct _EFI_PEI_STALL_PPI {
|
||||
UINTN Resolution;
|
||||
EFI_PEI_STALL Stall;
|
||||
};
|
||||
|
||||
extern EFI_GUID gEfiPeiStallPpiGuid;
|
||||
|
||||
#endif
|
42
MdePkg/Include/Ppi/StatusCode.h
Normal file
42
MdePkg/Include/Ppi/StatusCode.h
Normal file
@@ -0,0 +1,42 @@
|
||||
/** @file
|
||||
This file declares Status Code PPI.
|
||||
|
||||
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: StatusCode.h
|
||||
|
||||
@par Revision Reference:
|
||||
This PPI is defined in PEI CIS.
|
||||
Version 0.91.
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __STATUS_CODE_PPI_H__
|
||||
#define __STATUS_CODE_PPI_H__
|
||||
|
||||
#define EFI_PEI_REPORT_PROGRESS_CODE_PPI_GUID \
|
||||
{ 0x229832d3, 0x7a30, 0x4b36, {0xb8, 0x27, 0xf4, 0xc, 0xb7, 0xd4, 0x54, 0x36 } }
|
||||
|
||||
/**
|
||||
@par Ppi Description:
|
||||
This ppi provides the sevice to report status code. There can be only one instance
|
||||
of this service in the system.
|
||||
|
||||
@param ReportStatusCode
|
||||
Service that allows PEIMs to report status codes. This function is defined in Peicis.h
|
||||
|
||||
**/
|
||||
typedef struct {
|
||||
EFI_PEI_REPORT_STATUS_CODE ReportStatusCode;
|
||||
} EFI_PEI_PROGRESS_CODE_PPI;
|
||||
|
||||
extern EFI_GUID gEfiPeiStatusCodePpiGuid;
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user