diff options
author | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
---|---|---|
committer | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
commit | b7c51c9cf4864df6aabb99a1ae843becd577237c (patch) | |
tree | eebe9b0d0ca03062955223097e57da84dd618b9a /EDK/Foundation/Framework/Ppi | |
download | zprj-master.tar.xz |
Diffstat (limited to 'EDK/Foundation/Framework/Ppi')
68 files changed, 3198 insertions, 0 deletions
diff --git a/EDK/Foundation/Framework/Ppi/BlockIo/BlockIo.c b/EDK/Foundation/Framework/Ppi/BlockIo/BlockIo.c new file mode 100644 index 0000000..b8b0953 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/BlockIo/BlockIo.c @@ -0,0 +1,29 @@ +/*++ + +Copyright (c) 1999 - 2002, 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.c + +Abstract: + + BlockIo PPI GUID as defined in EFI 2.0 + +--*/ + +#include "Tiano.h" +#include "Pei.h" +#include EFI_PPI_DEFINITION (BlockIo) + +EFI_GUID gPeiBlockIoPpiGuid = PEI_BLOCK_IO_PPI_GUID; + +EFI_GUID_STRING(&gPeiBlockIoPpiGuid, "BlockIo", "PEI Block I/O PPI"); diff --git a/EDK/Foundation/Framework/Ppi/BlockIo/BlockIo.h b/EDK/Foundation/Framework/Ppi/BlockIo/BlockIo.h new file mode 100644 index 0000000..c518b37 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/BlockIo/BlockIo.h @@ -0,0 +1,88 @@ +/*++ + +Copyright (c) 1999 - 2002, 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 + +Abstract: + + BlockIo PPI as defined in EFI 2.0 + + Used to access block-oriented storage devices + +--*/ + +#ifndef _PEI_BLOCK_IO_H_ +#define _PEI_BLOCK_IO_H_ + +#define PEI_BLOCK_IO_PPI_GUID \ + { \ + 0x695d8aa1, 0x42ee, 0x4c46, 0x80, 0x5c, 0x6e, 0xa6, 0xbc, 0xe7, 0x99, 0xe3 \ + } + +EFI_FORWARD_DECLARATION (PEI_RECOVERY_BLOCK_IO_INTERFACE); + +typedef UINT64 PEI_LBA; + +typedef enum { + LegacyFloppy = 0, + IdeCDROM = 1, + IdeLS120 = 2, + UsbMassStorage= 3, + MaxDeviceType +} PEI_BLOCK_DEVICE_TYPE; + +typedef struct { + PEI_BLOCK_DEVICE_TYPE DeviceType; + BOOLEAN MediaPresent; + UINTN LastBlock; + UINTN BlockSize; +} PEI_BLOCK_IO_MEDIA; + +typedef +EFI_STATUS +(EFIAPI *PEI_GET_NUMBER_BLOCK_DEVICES) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_RECOVERY_BLOCK_IO_INTERFACE * This, + OUT UINTN *NumberBlockDevices + ); + +typedef +EFI_STATUS +(EFIAPI *PEI_GET_DEVICE_MEDIA_INFORMATION) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_RECOVERY_BLOCK_IO_INTERFACE * This, + IN UINTN DeviceIndex, + OUT PEI_BLOCK_IO_MEDIA * MediaInfo + ); + +typedef +EFI_STATUS +(EFIAPI *PEI_READ_BLOCKS) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_RECOVERY_BLOCK_IO_INTERFACE * This, + IN UINTN DeviceIndex, + IN PEI_LBA StartLBA, + IN UINTN BufferSize, + OUT VOID *Buffer + ); + +typedef struct _PEI_RECOVERY_BLOCK_IO_INTERFACE { + PEI_GET_NUMBER_BLOCK_DEVICES GetNumberOfBlockDevices; + PEI_GET_DEVICE_MEDIA_INFORMATION GetBlockDeviceMediaInfo; + PEI_READ_BLOCKS ReadBlocks; +} PEI_RECOVERY_BLOCK_IO_INTERFACE; + +extern EFI_GUID gPeiBlockIoPpiGuid; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/BootInRecoveryMode/BootInRecoveryMode.c b/EDK/Foundation/Framework/Ppi/BootInRecoveryMode/BootInRecoveryMode.c new file mode 100644 index 0000000..e5840a8 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/BootInRecoveryMode/BootInRecoveryMode.c @@ -0,0 +1,29 @@ +/*++ + +Copyright (c) 2004, 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.c + +Abstract: + + Boot Mode PPI GUID as defined in PEI EAS + +--*/ + +#include "Tiano.h" +#include "PeiBind.h" +#include "PeiApi.h" +#include EFI_PPI_DEFINITION (BootInRecoveryMode) + +EFI_GUID gPeiBootInRecoveryModePpiGuid = PEI_BOOT_IN_RECOVERY_MODE_PEIM_PPI; + +EFI_GUID_STRING(&gPeiMasterBootModePpiGuid, "BootMode", "Master Boot Mode PPI"); diff --git a/EDK/Foundation/Framework/Ppi/BootInRecoveryMode/BootInRecoveryMode.h b/EDK/Foundation/Framework/Ppi/BootInRecoveryMode/BootInRecoveryMode.h new file mode 100644 index 0000000..15ca5ca --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/BootInRecoveryMode/BootInRecoveryMode.h @@ -0,0 +1,34 @@ +/*++ + +Copyright (c) 2004, 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 + +Abstract: + + Boot Mode PPI as defined in Tiano + +--*/ + +#ifndef _PEI_BOOT_IN_RECOVERY_MODE_PPI_H +#define _PEI_BOOT_IN_RECOVERY_MODE_PPI_H + +#define PEI_BOOT_IN_RECOVERY_MODE_PEIM_PPI \ + { \ + 0x17ee496a, 0xd8e4, 0x4b9a, 0x94, 0xd1, 0xce, 0x82, 0x72, 0x30, 0x8, 0x50 \ + } + +EFI_FORWARD_DECLARATION (PEI_BOOT_IN_RECOVERY_MODE_PPI); + +extern EFI_GUID gPeiBootInRecoveryModePpiGuid; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/BootMode/BootMode.c b/EDK/Foundation/Framework/Ppi/BootMode/BootMode.c new file mode 100644 index 0000000..f88b757 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/BootMode/BootMode.c @@ -0,0 +1,29 @@ +/*++ + +Copyright (c) 2004, 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: + + BootMode.c + +Abstract: + + Boot Mode PPI GUID as defined in PEI EAS + +--*/ + +#include "Tiano.h" +#include "PeiBind.h" +#include "PeiApi.h" +#include EFI_PPI_DEFINITION (BootMode) + +EFI_GUID gPeiMasterBootModePpiGuid = PEI_MASTER_BOOT_MODE_PEIM_PPI; + +EFI_GUID_STRING(&gPeiMasterBootModePpiGuid, "BootMode", "Master Boot Mode PPI"); diff --git a/EDK/Foundation/Framework/Ppi/BootMode/BootMode.h b/EDK/Foundation/Framework/Ppi/BootMode/BootMode.h new file mode 100644 index 0000000..552ed23 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/BootMode/BootMode.h @@ -0,0 +1,34 @@ +/*++ + +Copyright (c) 2004, 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: + + BootMode.h + +Abstract: + + Boot Mode PPI as defined in Tiano + +--*/ + +#ifndef _PEI_MASTER_BOOT_MODE_PPI_H +#define _PEI_MASTER_BOOT_MODE_PPI_H + +#define PEI_MASTER_BOOT_MODE_PEIM_PPI \ + { \ + 0x7408d748, 0xfc8c, 0x4ee6, 0x92, 0x88, 0xc4, 0xbe, 0xc0, 0x92, 0xa4, 0x10 \ + } + +EFI_FORWARD_DECLARATION (PEI_MASTER_BOOT_MODE_PPI); + +extern EFI_GUID gPeiMasterBootModePpiGuid; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/BootScriptExecuter/BootScriptExecuter.c b/EDK/Foundation/Framework/Ppi/BootScriptExecuter/BootScriptExecuter.c new file mode 100644 index 0000000..bcb7d48 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/BootScriptExecuter/BootScriptExecuter.c @@ -0,0 +1,29 @@ +/*++ + +Copyright (c) 2001 - 2002, 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.c + +Abstract: + + Boot Script Executer PPI GUID as defined in EFI 2.0 + +--*/ + +#include "Tiano.h" +#include "PeiBind.h" +#include "PeiApi.h" +#include EFI_PPI_DEFINITION (BootScriptExecuter) + +EFI_GUID gPeiBootScriptExecuterPpiGuid = PEI_BOOT_SCRIPT_EXECUTER_PPI_GUID; + +EFI_GUID_STRING(&gPeiBootScriptExecuterPpiGuid, "BootScriptExecuter", "Boot Script Executer PPI"); diff --git a/EDK/Foundation/Framework/Ppi/BootScriptExecuter/BootScriptExecuter.h b/EDK/Foundation/Framework/Ppi/BootScriptExecuter/BootScriptExecuter.h new file mode 100644 index 0000000..72540f0 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/BootScriptExecuter/BootScriptExecuter.h @@ -0,0 +1,50 @@ +/*++ + +Copyright (c) 2001 - 2002, 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 + +Abstract: + + Boot Script Executer PPI as defined in EFI 2.0 + +--*/ + +#ifndef _PEI_BOOT_SCRIPT_EXECUTER_PPI_H +#define _PEI_BOOT_SCRIPT_EXECUTER_PPI_H + +#define PEI_BOOT_SCRIPT_EXECUTER_PPI_GUID \ + { \ + 0xabd42895, 0x78cf, 0x4872, 0x84, 0x44, 0x1b, 0x5c, 0x18, 0x0b, 0xfb, 0xff \ + } + +EFI_FORWARD_DECLARATION (PEI_BOOT_SCRIPT_EXECUTER_PPI); + +#define PEI_BOOT_SCRIPT_EXECUTER_PPI_REVISION 0x00000001 + +typedef +EFI_STATUS +(EFIAPI *PEI_BOOT_SCRIPT_EXECUTE) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_BOOT_SCRIPT_EXECUTER_PPI * This, + IN EFI_PHYSICAL_ADDRESS Address, + IN EFI_GUID * FvFile OPTIONAL + ); + +typedef struct _PEI_BOOT_SCRIPT_EXECUTER_PPI { + UINT64 Revision; + PEI_BOOT_SCRIPT_EXECUTE Execute; +} PEI_BOOT_SCRIPT_EXECUTER_PPI; + +extern EFI_GUID gPeiBootScriptExecuterPpiGuid; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/CpuIo/CpuIo.c b/EDK/Foundation/Framework/Ppi/CpuIo/CpuIo.c new file mode 100644 index 0000000..10daaf3 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/CpuIo/CpuIo.c @@ -0,0 +1,29 @@ +/*++ + +Copyright (c) 2004, 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.c + +Abstract: + + CPU IO PPI GUID as defined in Tiano + + +--*/ + +#include "Tiano.h" +#include "Pei.h" +#include EFI_PPI_DEFINITION (CpuIo) + +EFI_GUID gPeiCpuIoPpiInServiceTableGuid = PEI_CPU_IO_PPI_GUID; + +EFI_GUID_STRING(&gPeiCpuIoPpiInServiceTableGuid, "CPU IO", "CPU IO PPI"); diff --git a/EDK/Foundation/Framework/Ppi/CpuIo/CpuIo.h b/EDK/Foundation/Framework/Ppi/CpuIo/CpuIo.h new file mode 100644 index 0000000..b99fca9 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/CpuIo/CpuIo.h @@ -0,0 +1,250 @@ +/*++ + +Copyright (c) 2004, 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 + +Abstract: + + CPU IO PPI defined in Tiano + CPU IO PPI abstracts CPU IO access + + +--*/ + +#ifndef _PEI_CPUIO_PPI_H_ +#define _PEI_CPUIO_PPI_H_ + +#define PEI_CPU_IO_PPI_GUID \ + { \ + 0xe6af1f7b, 0xfc3f, 0x46da, 0xa8, 0x28, 0xa3, 0xb4, 0x57, 0xa4, 0x42, 0x82 \ + } + +EFI_FORWARD_DECLARATION (PEI_CPU_IO_PPI); + +// +// ******************************************************* +// PEI_CPU_IO_PPI_WIDTH +// ******************************************************* +// +typedef enum { + PeiCpuIoWidthUint8, + PeiCpuIoWidthUint16, + PeiCpuIoWidthUint32, + PeiCpuIoWidthUint64, + PeiCpuIoWidthFifoUint8, + PeiCpuIoWidthFifoUint16, + PeiCpuIoWidthFifoUint32, + PeiCpuIoWidthFifoUint64, + PeiCpuIoWidthFillUint8, + PeiCpuIoWidthFillUint16, + PeiCpuIoWidthFillUint32, + PeiCpuIoWidthFillUint64, + PeiCpuIoWidthMaximum +} PEI_CPU_IO_PPI_WIDTH; + +// +// ******************************************************* +// PEI_CPU_IO_PPI_IO_MEM +// ******************************************************* +// +typedef +EFI_STATUS +(EFIAPI *PEI_CPU_IO_PPI_IO_MEM) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_CPU_IO_PPI * This, + IN PEI_CPU_IO_PPI_WIDTH Width, + IN UINT64 Address, + IN UINTN Count, + IN OUT VOID *Buffer + ); + +// +// ******************************************************* +// PEI_CPU_IO_PPI_ACCESS +// ******************************************************* +// +typedef struct { + PEI_CPU_IO_PPI_IO_MEM Read; + PEI_CPU_IO_PPI_IO_MEM Write; +} PEI_CPU_IO_PPI_ACCESS; + +// +// ******************************************************* +// Base IO Class Functions +// ******************************************************* +// +typedef +UINT8 +(EFIAPI *PEI_CPU_IO_PPI_IO_READ8) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_CPU_IO_PPI * This, + IN UINT64 Address + ); + +typedef +UINT16 +(EFIAPI *PEI_CPU_IO_PPI_IO_READ16) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_CPU_IO_PPI * This, + IN UINT64 Address + ); + +typedef +UINT32 +(EFIAPI *PEI_CPU_IO_PPI_IO_READ32) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_CPU_IO_PPI * This, + IN UINT64 Address + ); + +typedef +UINT64 +(EFIAPI *PEI_CPU_IO_PPI_IO_READ64) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_CPU_IO_PPI * This, + IN UINT64 Address + ); + +typedef +VOID +(EFIAPI *PEI_CPU_IO_PPI_IO_WRITE8) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_CPU_IO_PPI * This, + IN UINT64 Address, + IN UINT8 Data + ); + +typedef +VOID +(EFIAPI *PEI_CPU_IO_PPI_IO_WRITE16) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_CPU_IO_PPI * This, + IN UINT64 Address, + IN UINT16 Data + ); + +typedef +VOID +(EFIAPI *PEI_CPU_IO_PPI_IO_WRITE32) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_CPU_IO_PPI * This, + IN UINT64 Address, + IN UINT32 Data + ); + +typedef +VOID +(EFIAPI *PEI_CPU_IO_PPI_IO_WRITE64) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_CPU_IO_PPI * This, + IN UINT64 Address, + IN UINT64 Data + ); + +typedef +UINT8 +(EFIAPI *PEI_CPU_IO_PPI_MEM_READ8) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_CPU_IO_PPI * This, + IN UINT64 Address + ); + +typedef +UINT16 +(EFIAPI *PEI_CPU_IO_PPI_MEM_READ16) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_CPU_IO_PPI * This, + IN UINT64 Address + ); + +typedef +UINT32 +(EFIAPI *PEI_CPU_IO_PPI_MEM_READ32) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_CPU_IO_PPI * This, + IN UINT64 Address + ); + +typedef +UINT64 +(EFIAPI *PEI_CPU_IO_PPI_MEM_READ64) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_CPU_IO_PPI * This, + IN UINT64 Address + ); + +typedef +VOID +(EFIAPI *PEI_CPU_IO_PPI_MEM_WRITE8) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_CPU_IO_PPI * This, + IN UINT64 Address, + IN UINT8 Data + ); + +typedef +VOID +(EFIAPI *PEI_CPU_IO_PPI_MEM_WRITE16) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_CPU_IO_PPI * This, + IN UINT64 Address, + IN UINT16 Data + ); + +typedef +VOID +(EFIAPI *PEI_CPU_IO_PPI_MEM_WRITE32) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_CPU_IO_PPI * This, + IN UINT64 Address, + IN UINT32 Data + ); + +typedef +VOID +(EFIAPI *PEI_CPU_IO_PPI_MEM_WRITE64) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_CPU_IO_PPI * This, + IN UINT64 Address, + IN UINT64 Data + ); + +// +// ******************************************************* +// PEI_CPU_IO_PPI +// ******************************************************* +// +typedef struct _PEI_CPU_IO_PPI { + PEI_CPU_IO_PPI_ACCESS Mem; + PEI_CPU_IO_PPI_ACCESS Io; + PEI_CPU_IO_PPI_IO_READ8 IoRead8; + PEI_CPU_IO_PPI_IO_READ16 IoRead16; + PEI_CPU_IO_PPI_IO_READ32 IoRead32; + PEI_CPU_IO_PPI_IO_READ64 IoRead64; + PEI_CPU_IO_PPI_IO_WRITE8 IoWrite8; + PEI_CPU_IO_PPI_IO_WRITE16 IoWrite16; + PEI_CPU_IO_PPI_IO_WRITE32 IoWrite32; + PEI_CPU_IO_PPI_IO_WRITE64 IoWrite64; + PEI_CPU_IO_PPI_MEM_READ8 MemRead8; + PEI_CPU_IO_PPI_MEM_READ16 MemRead16; + PEI_CPU_IO_PPI_MEM_READ32 MemRead32; + PEI_CPU_IO_PPI_MEM_READ64 MemRead64; + PEI_CPU_IO_PPI_MEM_WRITE8 MemWrite8; + PEI_CPU_IO_PPI_MEM_WRITE16 MemWrite16; + PEI_CPU_IO_PPI_MEM_WRITE32 MemWrite32; + PEI_CPU_IO_PPI_MEM_WRITE64 MemWrite64; +} PEI_CPU_IO_PPI; + +extern EFI_GUID gPeiCpuIoPpiInServiceTableGuid; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/Decompress/Decompress.c b/EDK/Foundation/Framework/Ppi/Decompress/Decompress.c new file mode 100644 index 0000000..4b95013 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/Decompress/Decompress.c @@ -0,0 +1,28 @@ +/*++ + +Copyright (c) 2007, 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: + + Decompress.c + +Abstract: + + PI 1.0 spec definition. + +--*/ + +#include "Tiano.h" +#include "Pei.h" +#include EFI_PPI_DEFINITION (Decompress) + + +EFI_GUID gEfiPeiDecompressPpiGuid = EFI_PEI_DECOMPRESS_PPI_GUID; +EFI_GUID_STRING(&gEfiPeiDecompressPpiGuid, "PeiDecompress", "PeiDecompress PPI"); diff --git a/EDK/Foundation/Framework/Ppi/Decompress/Decompress.h b/EDK/Foundation/Framework/Ppi/Decompress/Decompress.h new file mode 100644 index 0000000..7007576 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/Decompress/Decompress.h @@ -0,0 +1,49 @@ +/*++ + +Copyright (c) 2007, 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: + + Decompress.h + +Abstract: + + PI 1.0 spec definition. + +--*/ + +#ifndef __DECOMPRESS_PPI_H__ +#define __DECOMPRESS_PPI_H__ + + +#define EFI_PEI_DECOMPRESS_PPI_GUID \ + { 0x1a36e4e7, 0xfab6, 0x476a, 0x8e, 0x75, 0x69, 0x5a, 0x5, 0x76, 0xfd, 0xd7} + +EFI_FORWARD_DECLARATION (EFI_PEI_DECOMPRESS_PPI); + + +typedef +EFI_STATUS +(EFIAPI *EFI_PEI_DECOMPRESS_DECOMPRESS)( + IN CONST EFI_PEI_DECOMPRESS_PPI *This, + IN CONST EFI_COMPRESSION_SECTION *InputSection, + OUT VOID **OutputBuffer, + OUT UINTN *OutputSize + ); + +typedef struct _EFI_PEI_DECOMPRESS_PPI { + EFI_PEI_DECOMPRESS_DECOMPRESS Decompress; +} EFI_PEI_DECOMPRESS_PPI; + + + +extern EFI_GUID gEfiPeiDecompressPpiGuid; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/DeviceRecoveryModule/DeviceRecoveryModule.c b/EDK/Foundation/Framework/Ppi/DeviceRecoveryModule/DeviceRecoveryModule.c new file mode 100644 index 0000000..909b8d7 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/DeviceRecoveryModule/DeviceRecoveryModule.c @@ -0,0 +1,30 @@ +/*++ + +Copyright (c) 1999 - 2002, 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.c + +Abstract: + + Device Recovery Module PPI GUID as defined in PEI EAS + +--*/ + +#include "Tiano.h" +#include "PeiBind.h" +#include "PeiApi.h" +#include EFI_PPI_DEFINITION (DeviceRecoveryModule) + +EFI_GUID gPeiDeviceRecoveryModulePpiGuid = PEI_DEVICE_RECOVERY_MODULE_INTERFACE_PPI; + +EFI_GUID_STRING(&gPeiDeviceRecoveryModulePpiGuid, "DeviceRecoveryModule", "Device Recovery Module PPI"); diff --git a/EDK/Foundation/Framework/Ppi/DeviceRecoveryModule/DeviceRecoveryModule.h b/EDK/Foundation/Framework/Ppi/DeviceRecoveryModule/DeviceRecoveryModule.h new file mode 100644 index 0000000..40d0602 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/DeviceRecoveryModule/DeviceRecoveryModule.h @@ -0,0 +1,68 @@ +/*++ + +Copyright (c) 1999 - 2002, 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 + +Abstract: + + Device Recovery Module PPI as defined in EFI 2.0 + +--*/ + +#ifndef _PEI_DEVICE_RECOVERY_MODULE_PPI_H +#define _PEI_DEVICE_RECOVERY_MODULE_PPI_H + +#define PEI_DEVICE_RECOVERY_MODULE_INTERFACE_PPI \ + { \ + 0x0DE2CE25, 0x446A, 0x45a7, 0xBF, 0xC9, 0x37, 0xDA, 0x26, 0x34, 0x4B, 0x37 \ + } + +EFI_FORWARD_DECLARATION (PEI_DEVICE_RECOVERY_MODULE_INTERFACE); + +typedef +EFI_STATUS +(EFIAPI *PEI_DEVICE_GET_NUMBER_RECOVERY_CAPSULE) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_DEVICE_RECOVERY_MODULE_INTERFACE * This, + OUT UINTN *NumberRecoveryCapsules + ); + +typedef +EFI_STATUS +(EFIAPI *PEI_DEVICE_GET_RECOVERY_CAPSULE_INFO) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_DEVICE_RECOVERY_MODULE_INTERFACE * This, + IN UINTN CapsuleInstance, + OUT UINTN *Size, + OUT EFI_GUID * CapsuleType + ); + +typedef +EFI_STATUS +(EFIAPI *PEI_DEVICE_LOAD_RECOVERY_CAPSULE) ( + IN OUT EFI_PEI_SERVICES **PeiServices, + IN PEI_DEVICE_RECOVERY_MODULE_INTERFACE * This, + IN UINTN CapsuleInstance, + OUT VOID *Buffer + ); + +typedef struct _PEI_DEVICE_RECOVERY_MODULE_INTERFACE { + PEI_DEVICE_GET_NUMBER_RECOVERY_CAPSULE GetNumberRecoveryCapsules; + PEI_DEVICE_GET_RECOVERY_CAPSULE_INFO GetRecoveryCapsuleInfo; + PEI_DEVICE_LOAD_RECOVERY_CAPSULE LoadRecoveryCapsule; +} PEI_DEVICE_RECOVERY_MODULE_INTERFACE; + +extern EFI_GUID gPeiDeviceRecoveryModulePpiGuid; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/DxeIpl/DxeIpl.c b/EDK/Foundation/Framework/Ppi/DxeIpl/DxeIpl.c new file mode 100644 index 0000000..4884011 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/DxeIpl/DxeIpl.c @@ -0,0 +1,29 @@ +/*++ + +Copyright (c) 2004, 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.c + +Abstract: + + DXE Initial Program Load PPI GUID as defined in Tiano + +--*/ + +#include "Tiano.h" +#include "PeiBind.h" +#include "PeiApi.h" +#include EFI_PPI_DEFINITION (DxeIpl) + +EFI_GUID gEfiDxeIplPpiGuid = EFI_DXE_IPL_PPI_GUID; + +EFI_GUID_STRING(&gEfiDxeIplPpiGuid, "DxeIpl", "DXE IPL PPI"); diff --git a/EDK/Foundation/Framework/Ppi/DxeIpl/DxeIpl.h b/EDK/Foundation/Framework/Ppi/DxeIpl/DxeIpl.h new file mode 100644 index 0000000..688ec8a --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/DxeIpl/DxeIpl.h @@ -0,0 +1,51 @@ +/*++ + +Copyright (c) 2004, 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 + +Abstract: + + DXE Initial Program Load PPI as defined in Tiano + + When the PEI core is done it calls the DXE IPL via this PPI. + +--*/ + +#ifndef _DXE_IPL_H_ +#define _DXE_IPL_H_ + +#include "Tiano.h" +#include "PeiHob.h" + +#define EFI_DXE_IPL_PPI_GUID \ + { \ + 0xae8ce5d, 0xe448, 0x4437, 0xa8, 0xd7, 0xeb, 0xf5, 0xf1, 0x94, 0xf7, 0x31 \ + } + +EFI_FORWARD_DECLARATION (EFI_DXE_IPL_PPI); + +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 + ); + +typedef struct _EFI_DXE_IPL_PPI { + EFI_DXE_IPL_ENTRY Entry; +} EFI_DXE_IPL_PPI; + +extern EFI_GUID gEfiDxeIplPpiGuid; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/EcpPciCfg/EcpPciCfg.c b/EDK/Foundation/Framework/Ppi/EcpPciCfg/EcpPciCfg.c new file mode 100644 index 0000000..6a2194e --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/EcpPciCfg/EcpPciCfg.c @@ -0,0 +1,28 @@ +/*++ + +Copyright (c) 2004, 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. + +Module Name: + + EcpPciCfg.c + +Abstract: + + This PPI which is same with PciCfg PPI. But Modify API is removed. + +--*/ + +#include "Tiano.h" +#include "Pei.h" +#include EFI_PPI_DEFINITION (EcpPciCfg) + +EFI_GUID gEcpPeiPciCfgPpiGuid = ECP_PEI_PCI_CFG_PPI_GUID; + +EFI_GUID_STRING(&gEcpPeiPciCfgPpiGuid, "Ecp PciCfg", "Ecp PciCfg PPI"); diff --git a/EDK/Foundation/Framework/Ppi/EcpPciCfg/EcpPciCfg.h b/EDK/Foundation/Framework/Ppi/EcpPciCfg/EcpPciCfg.h new file mode 100644 index 0000000..eddd9bb --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/EcpPciCfg/EcpPciCfg.h @@ -0,0 +1,50 @@ +/*++ + +Copyright (c) 2008, 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. + +Module Name: + + PciCfg.h + +Abstract: + + This PPI which is same with PciCfg PPI. But Modify API is removed. + +--*/ + +#ifndef _ECP_PEI_PCI_CFG_H_ +#define _ECP_PEI_PCI_CFG_H_ +#include EFI_PPI_DEFINITION (PciCfg) + +#define ECP_PEI_PCI_CFG_PPI_GUID \ + {0xb0ee53d4, 0xa049, 0x4a79, { 0xb2, 0xff, 0x19, 0xd9, 0xfa, 0xef, 0xaa, 0x94 }} + +EFI_FORWARD_DECLARATION (ECP_PEI_PCI_CFG_PPI); + + +typedef +EFI_STATUS +(EFIAPI *ECP_PEI_PCI_CFG_PPI_IO) ( + IN EFI_PEI_SERVICES **PeiServices, + IN ECP_PEI_PCI_CFG_PPI *This, + IN PEI_PCI_CFG_PPI_WIDTH Width, + IN UINT64 Address, + IN OUT VOID *Buffer + ); + +struct _ECP_PEI_PCI_CFG_PPI { + ECP_PEI_PCI_CFG_PPI_IO Read; + ECP_PEI_PCI_CFG_PPI_IO Write; +}; + +extern EFI_GUID gEcpPeiPciCfgPpiGuid; + +#endif + diff --git a/EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.cif b/EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.cif new file mode 100644 index 0000000..fecf03f --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.cif @@ -0,0 +1,74 @@ +<component> + name = "EdkFrameworkPpiLib" + category = ModulePart + LocalRoot = "Edk\Foundation\Framework\Ppi\" + RefName = "EdkFrameworkPpiLib" +[files] +"EdkFrameworkPpiLib.sdl" +"EdkFrameworkPpiLib.mak" +"BlockIo\BlockIo.h" +"BlockIo\BlockIo.c" +"BootInRecoveryMode\BootInRecoveryMode.h" +"BootInRecoveryMode\BootInRecoveryMode.c" +"BootMode\BootMode.h" +"BootMode\BootMode.c" +"BootScriptExecuter\BootScriptExecuter.h" +"BootScriptExecuter\BootScriptExecuter.c" +"CpuIo\CpuIo.h" +"CpuIo\CpuIo.c" +"DeviceRecoveryModule\DeviceRecoveryModule.h" +"DeviceRecoveryModule\DeviceRecoveryModule.c" +"DxeIpl\DxeIpl.h" +"DxeIpl\DxeIpl.c" +"EndOfPeiSignal\EndOfPeiSignal.h" +"EndOfPeiSignal\EndOfPeiSignal.c" +"FindFv\FindFv.h" +"FindFv\FindFv.c" +"LoadFile\LoadFile.h" +"LoadFile\LoadFile.c" +"MemoryDiscovered\MemoryDiscovered.h" +"MemoryDiscovered\MemoryDiscovered.c" +"PciCfg\PciCfg.h" +"PciCfg\PciCfg.c" +"PciCfg2\PciCfg2.h" +"PciCfg2\PciCfg2.c" +"RecoveryModule\RecoveryModule.h" +"RecoveryModule\RecoveryModule.c" +"Reset\Reset.h" +"Reset\Reset.c" +"S3Resume\S3Resume.h" +"S3Resume\S3Resume.c" +"SecPlatformInformation\SecPlatformInformation.h" +"SecPlatformInformation\SecPlatformInformation.c" +"SectionExtraction\SectionExtraction.h" +"SectionExtraction\SectionExtraction.c" +"Security\Security.h" +"Security\Security.c" +"Smbus\Smbus.h" +"Smbus\Smbus.c" +"Smbus2\Smbus2.h" +"Smbus2\Smbus2.c" +"Stall\Stall.h" +"Stall\Stall.c" +"StatusCode\StatusCode.h" +"StatusCode\StatusCode.c" +"Variable\Variable.h" +"Variable\Variable.c" +"Variable2\Variable2.h" +"Variable2\Variable2.c" +"Decompress\Decompress.h" +"Decompress\Decompress.c" +"FirmwareVolumeInfo\FirmwareVolumeInfo.h" +"FirmwareVolumeInfo\FirmwareVolumeInfo.c" +"LoadFile2\LoadFile2.h" +"LoadFile2\LoadFile2.c" +"Security2\Security2.h" +"Security2\Security2.c" +"FirmwareVolume\FirmwareVolume.h" +"FirmwareVolume\FirmwareVolume.c" +"GuidedSectionExtraction\GuidedSectionExtraction.h" +"GuidedSectionExtraction\GuidedSectionExtraction.c" +"EdkFrameworkPpiLib.inf" +"EcpPciCfg\EcpPciCfg.c" +"EcpPciCfg\EcpPciCfg.h" +<endComponent> diff --git a/EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.inf b/EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.inf new file mode 100644 index 0000000..95e2542 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.inf @@ -0,0 +1,91 @@ +#/*++ +# +# Copyright (c) 2004, 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: +# +# EdkFrameworkPpiLib.inf +# +# Abstract: +# +# Component description file. +# +#--*/ + +[defines] +BASE_NAME= EdkFrameworkPpiLib +COMPONENT_TYPE= LIBRARY + +[includes.common] + $(EDK_SOURCE)\Foundation\Framework + $(EDK_SOURCE)\Foundation\Efi + $(EDK_SOURCE)\Foundation\Include + $(EDK_SOURCE)\Foundation\Efi\Include + $(EDK_SOURCE)\Foundation\Framework\Include + $(EDK_SOURCE)\Foundation\Include\IndustryStandard + $(EDK_SOURCE)\Foundation\Include\Pei + $(EDK_SOURCE)\Foundation\Library\Pei\Include + $(EDK_SOURCE)\Foundation\Core\Dxe + $(EDK_SOURCE)\Foundation\Library\Dxe\Include + +[nmake.common] +C_STD_INCLUDE= + +[sources.common] + BlockIo\BlockIo.h + BlockIo\BlockIo.c + BootInRecoveryMode\BootInRecoveryMode.h + BootInRecoveryMode\BootInRecoveryMode.c + BootMode\BootMode.h + BootMode\BootMode.c + BootScriptExecuter\BootScriptExecuter.h + BootScriptExecuter\BootScriptExecuter.c + CpuIo\CpuIo.h + CpuIo\CpuIo.c + DeviceRecoveryModule\DeviceRecoveryModule.h + DeviceRecoveryModule\DeviceRecoveryModule.c + DxeIpl\DxeIpl.h + DxeIpl\DxeIpl.c + EndOfPeiSignal\EndOfPeiSignal.h + EndOfPeiSignal\EndOfPeiSignal.c + FindFv\FindFv.h + FindFv\FindFv.c + LoadFile\LoadFile.h + LoadFile\LoadFile.c + MemoryDiscovered\MemoryDiscovered.h + MemoryDiscovered\MemoryDiscovered.c + PciCfg\PciCfg.h + PciCfg\PciCfg.c + PciCfg2\PciCfg2.h + PciCfg2\PciCfg2.c + RecoveryModule\RecoveryModule.h + RecoveryModule\RecoveryModule.c + Reset\Reset.h + Reset\Reset.c + S3Resume\S3Resume.h + S3Resume\S3Resume.c + SecPlatformInformation\SecPlatformInformation.h + SecPlatformInformation\SecPlatformInformation.c + SectionExtraction\SectionExtraction.h + SectionExtraction\SectionExtraction.c + Security\Security.h + Security\Security.c + Smbus\Smbus.h + Smbus\Smbus.c + Stall\Stall.h + Stall\Stall.c + StatusCode\StatusCode.h + StatusCode\StatusCode.c + Variable\Variable.h + Variable\Variable.c + FirmwareVolumeInfo\FirmwareVolumeInfo.h + FirmwareVolumeInfo\FirmwareVolumeInfo.c + EcpPciCfg\EcpPciCfg.h + EcpPciCfg\EcpPciCfg.c diff --git a/EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.mak b/EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.mak new file mode 100644 index 0000000..1aec2e0 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.mak @@ -0,0 +1,70 @@ +#********************************************************************** +#********************************************************************** +#** ** +#** (C)Copyright 1985-2009, American Megatrends, Inc. ** +#** ** +#** All Rights Reserved. ** +#** ** +#** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 ** +#** ** +#** Phone: (770)-246-8600 ** +#** ** +#********************************************************************** +#********************************************************************** + +#********************************************************************** +# $Header: /Alaska/SOURCE/Modules/SharkBayRefCodes/IntelEDK/EdkFrameworkPpiLib/EdkFrameworkPpiLib.mak 2 3/27/12 4:26a Jeffch $ +# +# $Revision: 2 $ +# +# $Date: 3/27/12 4:26a $ +#********************************************************************** +# Revision History +# ---------------- +# $Log: /Alaska/SOURCE/Modules/SharkBayRefCodes/IntelEDK/EdkFrameworkPpiLib/EdkFrameworkPpiLib.mak $ +# +# 2 3/27/12 4:26a Jeffch +# +# 1 1/20/12 4:03a Jeffch +# Create Intel EDK 1117 Patch 7. +# +# 1 9/27/11 6:26a Wesleychen +# Intel EDK initially releases. +# +# 2 9/02/09 3:19a Iminglin +# EIP24919 +# +#********************************************************************** +#<AMI_FHDR_START> +# +# Name: EdkFrameworkPpiLib.mak +# +# Description: +# +#<AMI_FHDR_END> +#********************************************************************** + +$(EDKFRAMEWORKPPILIB) : EdkFrameworkPpiLib + +EdkFrameworkPpiLib : $(BUILD_DIR)\EdkFrameworkPpiLib.mak EdkFrameworkPpiLibBin + +$(BUILD_DIR)\EdkFrameworkPpiLib.mak : $(EdkFrameworkPpiLib_DIR)\$(@B).cif $(EdkFrameworkPpiLib_DIR)\$(@B).mak $(BUILD_RULES) + $(CIF2MAK) $(EdkFrameworkPpiLib_DIR)\$(@B).cif $(CIF2MAK_DEFAULTS) + +EdkFrameworkPpiLibBin : $(EDKPPILIB) + $(MAKE) /$(MAKEFLAGS) $(EDK_DEFAULTS)\ + /f $(BUILD_DIR)\EdkFrameworkPpiLib.mak all\ + TYPE=PEI_LIBRARY \ +#********************************************************************** +#********************************************************************** +#** ** +#** (C)Copyright 1985-2009, American Megatrends, Inc. ** +#** ** +#** All Rights Reserved. ** +#** ** +#** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 ** +#** ** +#** Phone: (770)-246-8600 ** +#** ** +#********************************************************************** +#**********************************************************************
\ No newline at end of file diff --git a/EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.sdl b/EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.sdl new file mode 100644 index 0000000..5485bc0 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/EdkFrameworkPpiLib.sdl @@ -0,0 +1,26 @@ +TOKEN + Name = "EdkFrameworkPpiLib_SUPPORT" + Value = "1" + Help = "Main switch to enable EdkFrameworkPpiLib support in Project" + TokenType = Boolean + TargetEQU = Yes + TargetMAK = Yes + Master = Yes +End + +TOKEN + Name = "EDKFRAMEWORKPPILIB" + Value = "$(BUILD_DIR)\EdkFrameworkPpiLib.lib" + TokenType = Expression + TargetMAK = Yes +End + +PATH + Name = "EdkFrameworkPpiLib_DIR" +End + +MODULE + Help = "Includes EdkFrameworkPpiLib.mak to Project" + File = "EdkFrameworkPpiLib.mak" +End + diff --git a/EDK/Foundation/Framework/Ppi/EndOfPeiSignal/EndOfPeiSignal.c b/EDK/Foundation/Framework/Ppi/EndOfPeiSignal/EndOfPeiSignal.c new file mode 100644 index 0000000..eb43147 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/EndOfPeiSignal/EndOfPeiSignal.c @@ -0,0 +1,29 @@ +/*++ + +Copyright (c) 2004, 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.c + +Abstract: + + This is installed prior to DXE taking over the memory map + +--*/ + +#include "Tiano.h" +#include "PeiBind.h" +#include "PeiApi.h" +#include EFI_PPI_DEFINITION (EndOfPeiSignal) + +EFI_GUID gEndOfPeiSignalPpiGuid = PEI_END_OF_PEI_PHASE_PPI_GUID; + +EFI_GUID_STRING(&gEndOfPeiSignalPpiGuid, "EndOfPeiSignal", "End of PEI Phase Signalled PPI"); diff --git a/EDK/Foundation/Framework/Ppi/EndOfPeiSignal/EndOfPeiSignal.h b/EDK/Foundation/Framework/Ppi/EndOfPeiSignal/EndOfPeiSignal.h new file mode 100644 index 0000000..155ed82 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/EndOfPeiSignal/EndOfPeiSignal.h @@ -0,0 +1,35 @@ +/*++ + +Copyright (c) 2004, 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 + +Abstract: + + PPI to be used to signal when the PEI ownership of the memory map + officially ends and DXE will take over + +--*/ + +#ifndef _PEI_END_OF_PEI_SIGNAL_PPI_H +#define _PEI_END_OF_PEI_SIGNAL_PPI_H + +#define PEI_END_OF_PEI_PHASE_PPI_GUID \ + { \ + 0x605EA650, 0xC65C, 0x42e1, 0xBA, 0x80, 0x91, 0xA5, 0x2A, 0xB6, 0x18, 0xC6 \ + } + +EFI_FORWARD_DECLARATION (PEI_END_OF_PEI_SIGNAL_PPI); + +extern EFI_GUID gEndOfPeiSignalPpiGuid; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/FindFv/FindFv.c b/EDK/Foundation/Framework/Ppi/FindFv/FindFv.c new file mode 100644 index 0000000..91b06fd --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/FindFv/FindFv.c @@ -0,0 +1,29 @@ +/*++ + +Copyright (c) 2004, 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.c + +Abstract: + + FindFv PPI GUID as defined in Tiano + +--*/ + +#include "Tiano.h" +#include "PeiBind.h" +#include "PeiApi.h" +#include EFI_PPI_DEFINITION (FindFv) + +EFI_GUID gEfiFindFvPpiGuid = EFI_FIND_FV_PPI_GUID; + +EFI_GUID_STRING(&gEfiFindFvPpiGuid, "FindFv", "FindFv PPI"); diff --git a/EDK/Foundation/Framework/Ppi/FindFv/FindFv.h b/EDK/Foundation/Framework/Ppi/FindFv/FindFv.h new file mode 100644 index 0000000..da87115 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/FindFv/FindFv.h @@ -0,0 +1,51 @@ +/*++ + +Copyright (c) 2004, 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 + +Abstract: + + FindFv PPI as defined in Tiano + + Used to locate FVs that contain PEIMs in PEI + +--*/ + +#ifndef _FIND_FV_H_ +#define _FIND_FV_H_ + +#include "EfiFirmwareVolumeHeader.h" + +#define EFI_FIND_FV_PPI_GUID \ + { \ + 0x36164812, 0xa023, 0x44e5, 0xbd, 0x85, 0x5, 0xbf, 0x3c, 0x77, 0x0, 0xaa \ + } + +EFI_FORWARD_DECLARATION (EFI_FIND_FV_PPI); + +typedef +EFI_STATUS +(EFIAPI *EFI_FIND_FV_FINDFV) ( + IN EFI_FIND_FV_PPI * This, + IN EFI_PEI_SERVICES **PeiServices, + UINT8 *FvNumber, + EFI_FIRMWARE_VOLUME_HEADER **FVAddress + ); + +typedef struct _EFI_FIND_FV_PPI { + EFI_FIND_FV_FINDFV FindFv; +} EFI_FIND_FV_PPI; + +extern EFI_GUID gEfiFindFvPpiGuid; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/FirmwareVolume/FirmwareVolume.c b/EDK/Foundation/Framework/Ppi/FirmwareVolume/FirmwareVolume.c new file mode 100644 index 0000000..5afe01f --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/FirmwareVolume/FirmwareVolume.c @@ -0,0 +1,30 @@ +/*++ + +Copyright (c) 2007, 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: + + FirmwareVolume.c + +Abstract: + + PI 1.0 spec definition. + +--*/ + + +#include "Tiano.h" +#include "Pei.h" +#include EFI_PPI_DEFINITION (FirmwareVolume) + +// +// There is no PPI Guid definition here, since the guid of +// this ppi is the same as the firmware volume format Guid. +//
\ No newline at end of file diff --git a/EDK/Foundation/Framework/Ppi/FirmwareVolume/FirmwareVolume.h b/EDK/Foundation/Framework/Ppi/FirmwareVolume/FirmwareVolume.h new file mode 100644 index 0000000..0c8b508 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/FirmwareVolume/FirmwareVolume.h @@ -0,0 +1,112 @@ +/*++ + +Copyright (c) 2007 - 2009, 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: + + FirmwareVolume.h + +Abstract: + + PI 1.0 spec definition. + +--*/ + +#ifndef __FIRMWARE_VOLUME_H__ +#define __FIRMWARE_VOLUME_H__ + +EFI_FORWARD_DECLARATION (EFI_PEI_FIRMWARE_VOLUME_PPI); + +typedef UINT32 EFI_FV_FILE_ATTRIBUTES; +typedef VOID * EFI_PEI_FILE_HANDLE; +typedef VOID * EFI_PEI_FV_HANDLE; + + +typedef struct { + EFI_GUID FileName; + EFI_FV_FILETYPE FileType; + EFI_FV_FILE_ATTRIBUTES FileAttributes; + VOID *Buffer; + UINT32 BufferSize; +} EFI_FV_FILE_INFO; + +typedef struct { + EFI_FVB_ATTRIBUTES FvAttributes; + EFI_GUID FvFormat; + EFI_GUID FvName; + VOID *FvStart; + UINT64 FvSize; +} EFI_FV_INFO; + + + +typedef +EFI_STATUS +(EFIAPI *EFI_PEI_FV_PROCESS_FV) ( + IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This, + IN VOID *Buffer, + IN UINTN BufferSize, + OUT EFI_PEI_FV_HANDLE *FvHandle + ); + + +typedef +EFI_STATUS +(EFIAPI *EFI_PEI_FV_FIND_FILE_TYPE) ( + IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This, + IN EFI_FV_FILETYPE SearchType, + IN EFI_PEI_FV_HANDLE FvHandle, + IN OUT EFI_PEI_FILE_HANDLE *FileHandle + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_PEI_FV_FIND_FILE_NAME) ( + IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This, + IN CONST EFI_GUID *FileName, + IN OUT EFI_PEI_FV_HANDLE *FvHandle, + OUT EFI_PEI_FILE_HANDLE *FileHandle + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_PEI_FV_GET_FILE_INFO) ( + IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This, + IN EFI_PEI_FILE_HANDLE FileHandle, + OUT EFI_FV_FILE_INFO *FileInfo + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_PEI_FV_GET_INFO)( + IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This, + IN EFI_PEI_FV_HANDLE FvHandle, + OUT EFI_FV_INFO *VolumeInfo + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_PEI_FV_FIND_SECTION) ( + IN CONST EFI_PEI_FIRMWARE_VOLUME_PPI *This, + IN EFI_SECTION_TYPE SearchType, + IN EFI_PEI_FILE_HANDLE FileHandle, + OUT VOID **SectionData + ); + +typedef struct _EFI_PEI_FIRMWARE_VOLUME_PPI { + EFI_PEI_FV_PROCESS_FV ProcessVolume; + EFI_PEI_FV_FIND_FILE_TYPE FindFileByType; + EFI_PEI_FV_FIND_FILE_NAME FindFileByName; + EFI_PEI_FV_GET_FILE_INFO GetFileInfo; + EFI_PEI_FV_GET_INFO GetVolumeInfo; + EFI_PEI_FV_FIND_SECTION FindSectionByType; +} EFI_PEI_FIRMWARE_VOLUME_PPI; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/FirmwareVolumeInfo/FirmwareVolumeInfo.c b/EDK/Foundation/Framework/Ppi/FirmwareVolumeInfo/FirmwareVolumeInfo.c new file mode 100644 index 0000000..ed00f62 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/FirmwareVolumeInfo/FirmwareVolumeInfo.c @@ -0,0 +1,28 @@ +/*++ + +Copyright (c) 2007, 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. + +Module Name: + + FirmwareVolumeInfo.c + +Abstract: + + PI 1.0 spec definition. + +--*/ + + +#include "Tiano.h" +#include "Pei.h" +#include EFI_PPI_DEFINITION (FirmwareVolumeInfo) + +EFI_GUID gEfiFirmwareVolumeInfoPpiGuid = EFI_PEI_FIRMWARE_VOLUME_INFO_PPI_GUID; +EFI_GUID_STRING(&gEfiFirmwareVolumeInfoPpiGuid, "FirmwareVolumeInfo", "FirmwareVolumeInfo PPI"); diff --git a/EDK/Foundation/Framework/Ppi/FirmwareVolumeInfo/FirmwareVolumeInfo.h b/EDK/Foundation/Framework/Ppi/FirmwareVolumeInfo/FirmwareVolumeInfo.h new file mode 100644 index 0000000..f1a49ee --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/FirmwareVolumeInfo/FirmwareVolumeInfo.h @@ -0,0 +1,46 @@ +/*++ + +Copyright (c) 2007, 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. + +Module Name: + + FirmwareVolumeInfo.h + +Abstract: + + PI 1.0 spec definition. + +--*/ + +#ifndef __FIRMWARE_VOLUME_INFO_PPI__ +#define __FIRMWARE_VOLUME_INFO_PPI__ + +EFI_FORWARD_DECLARATION (EFI_PEI_FIRMWARE_VOLUME_INFO_PPI); + + +// +// The PPI GUID must match the EFI_GUID FvFormat value +// +#define EFI_PEI_FIRMWARE_VOLUME_INFO_PPI_GUID \ + { 0x49edb1c1, 0xbf21, 0x4761, { 0xbb, 0x12, 0xeb, 0x0, 0x31, 0xaa, 0xbb, 0x39 } } + + +struct _EFI_PEI_FIRMWARE_VOLUME_INFO_PPI { + EFI_GUID FvFormat; + VOID *FvInfo; + UINT32 FvInfoSize; + EFI_GUID *ParentFvName; + EFI_GUID *ParentFileName; +}; + + +extern EFI_GUID gEfiFirmwareVolumeInfoPpiGuid; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/GuidedSectionExtraction/GuidedSectionExtraction.c b/EDK/Foundation/Framework/Ppi/GuidedSectionExtraction/GuidedSectionExtraction.c new file mode 100644 index 0000000..a7460ac --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/GuidedSectionExtraction/GuidedSectionExtraction.c @@ -0,0 +1,29 @@ +/*++ + +Copyright (c) 2007, 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: + + GuidedSectionExtraction.c + +Abstract: + + PI 1.0 spec definition. + +--*/ + +#include "Tiano.h" +#include "Pei.h" +#include EFI_PPI_DEFINITION (GuidedSectionExtraction) + +// +// There is no PPI Guid definition here since this PPI is for +// extract EFI_SECTION_GUID_DEFINED type section. +//
\ No newline at end of file diff --git a/EDK/Foundation/Framework/Ppi/GuidedSectionExtraction/GuidedSectionExtraction.h b/EDK/Foundation/Framework/Ppi/GuidedSectionExtraction/GuidedSectionExtraction.h new file mode 100644 index 0000000..b53ffa6 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/GuidedSectionExtraction/GuidedSectionExtraction.h @@ -0,0 +1,42 @@ +/*++ + +Copyright (c) 2007, 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: + + GuidedSectionExtraction.h + +Abstract: + + PI 1.0 spec definition. + +--*/ + + +#ifndef __GUIDED_SECTION_EXTRACTION_PPI_H__ +#define __GUIDED_SECTION_EXTRACTION_PPI_H__ + +EFI_FORWARD_DECLARATION (EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI); + +typedef +EFI_STATUS +(EFIAPI *EFI_PEI_EXTRACT_GUIDED_SECTION)( + IN CONST EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI *This, + IN CONST VOID *InputSection, + OUT VOID **OutputBuffer, + OUT UINTN *OutputSize, + OUT UINT32 *AuthenticationStatus + ); + +typedef struct _EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI { + EFI_PEI_EXTRACT_GUIDED_SECTION ExtractSection; +} EFI_PEI_GUIDED_SECTION_EXTRACTION_PPI; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/LoadFile/LoadFile.c b/EDK/Foundation/Framework/Ppi/LoadFile/LoadFile.c new file mode 100644 index 0000000..e8a4065 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/LoadFile/LoadFile.c @@ -0,0 +1,29 @@ +/*++ + +Copyright (c) 2004, 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.c + +Abstract: + + Load File PPI GUID. + +--*/ + +#include "Tiano.h" +#include "PeiBind.h" +#include "PeiApi.h" +#include EFI_PPI_DEFINITION (LoadFile) + +EFI_GUID gPeiFvFileLoaderPpiGuid = EFI_PEI_FV_FILE_LOADER_GUID; + +EFI_GUID_STRING(&gPeiFvFileLoaderPpiGuid, "FvFileLoader", "Fv File Loader Support PPI"); diff --git a/EDK/Foundation/Framework/Ppi/LoadFile/LoadFile.h b/EDK/Foundation/Framework/Ppi/LoadFile/LoadFile.h new file mode 100644 index 0000000..6cd4b1d --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/LoadFile/LoadFile.h @@ -0,0 +1,48 @@ +/*++ + +Copyright (c) 2004, 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 + +Abstract: + + Load image file from fv to memory. + +--*/ + +#ifndef _PEI_FV_FILE_LOADER_PPI_H +#define _PEI_FV_FILE_LOADER_PPI_H + +#define EFI_PEI_FV_FILE_LOADER_GUID \ + { \ + 0x7e1f0d85, 0x4ff, 0x4bb2, 0x86, 0x6a, 0x31, 0xa2, 0x99, 0x6a, 0x48, 0xa8 \ + } + +EFI_FORWARD_DECLARATION (EFI_PEI_FV_FILE_LOADER_PPI); + +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 + ); + +typedef struct _EFI_PEI_FV_FILE_LOADER_PPI { + EFI_PEI_FV_LOAD_FILE FvLoadFile; +} EFI_PEI_FV_FILE_LOADER_PPI; + +extern EFI_GUID gPeiFvFileLoaderPpiGuid; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/LoadFile2/LoadFile2.c b/EDK/Foundation/Framework/Ppi/LoadFile2/LoadFile2.c new file mode 100644 index 0000000..9e63e7b --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/LoadFile2/LoadFile2.c @@ -0,0 +1,29 @@ +/*++ + +Copyright (c) 2007, 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: + + LoadFile2.c + +Abstract: + + PI 1.0 spec definition. + +--*/ + + +#include "Tiano.h" +#include "Pei.h" +#include EFI_PPI_DEFINITION (LoadFile2) + + +EFI_GUID gEfiLoadFile2PpiGuid = EFI_PEI_LOAD_FILE_GUID; +EFI_GUID_STRING(&gEfiLoadFile2PpiGuid, "PeiLoadFile2", "PeiLoadFile2 PPI"); diff --git a/EDK/Foundation/Framework/Ppi/LoadFile2/LoadFile2.h b/EDK/Foundation/Framework/Ppi/LoadFile2/LoadFile2.h new file mode 100644 index 0000000..4646b1c --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/LoadFile2/LoadFile2.h @@ -0,0 +1,49 @@ +/*++ + +Copyright (c) 2007, 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: + + LoadFile2.h + +Abstract: + + PI 1.0 spec definition. + +--*/ + +#ifndef __LOAD_FILE_PPI_H__ +#define __LOAD_FILE_PPI_H__ + +EFI_FORWARD_DECLARATION (EFI_PEI_LOAD_FILE_PPI); + +#define EFI_PEI_LOAD_FILE_GUID \ + { 0xb9e0abfe, 0x5979, 0x4914, 0x97, 0x7f, 0x6d, 0xee, 0x78, 0xc2, 0x78, 0xa6} + + +typedef +EFI_STATUS +(EFIAPI *EFI_PEI_LOAD_FILE) ( + IN CONST EFI_PEI_LOAD_FILE_PPI *This, + IN EFI_PEI_FILE_HANDLE FileHandle, + OUT EFI_PHYSICAL_ADDRESS *ImageAddress, + OUT UINT64 *ImageSize, + OUT EFI_PHYSICAL_ADDRESS *EntryPoint, + OUT UINT32 *AuthenticationState + ); + + +typedef struct _EFI_PEI_LOAD_FILE_PPI { + EFI_PEI_LOAD_FILE LoadFile; +} EFI_PEI_LOAD_FILE_PPI; + + +extern EFI_GUID gEfiLoadFile2PpiGuid; +#endif diff --git a/EDK/Foundation/Framework/Ppi/MemoryDiscovered/MemoryDiscovered.c b/EDK/Foundation/Framework/Ppi/MemoryDiscovered/MemoryDiscovered.c new file mode 100644 index 0000000..8a4779f --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/MemoryDiscovered/MemoryDiscovered.c @@ -0,0 +1,29 @@ +/*++ + +Copyright (c) 2004, 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.c + +Abstract: + + Memory Discovered PPI GUID as defined in PEI EAS + +--*/ + +#include "Tiano.h" +#include "PeiBind.h" +#include "PeiApi.h" +#include EFI_PPI_DEFINITION (MemoryDiscovered) + +EFI_GUID gPeiMemoryDiscoveredPpiGuid = PEI_PERMANENT_MEMORY_INSTALLED_PPI_GUID; + +EFI_GUID_STRING(&gPeiMemoryDiscoveredPpiGuid, "MemoryDiscovered", "Memory Discovered PPI"); diff --git a/EDK/Foundation/Framework/Ppi/MemoryDiscovered/MemoryDiscovered.h b/EDK/Foundation/Framework/Ppi/MemoryDiscovered/MemoryDiscovered.h new file mode 100644 index 0000000..7cde19a --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/MemoryDiscovered/MemoryDiscovered.h @@ -0,0 +1,34 @@ +/*++ + +Copyright (c) 2004, 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 + +Abstract: + + Memory Discovered PPI as defined in Tiano + +--*/ + +#ifndef _PEI_MEMORY_DISCOVERED_PPI_H +#define _PEI_MEMORY_DISCOVERED_PPI_H + +#define PEI_PERMANENT_MEMORY_INSTALLED_PPI_GUID \ + { \ + 0xf894643d, 0xc449, 0x42d1, 0x8e, 0xa8, 0x85, 0xbd, 0xd8, 0xc6, 0x5b, 0xde \ + } + +EFI_FORWARD_DECLARATION (PEI_PERMANENT_MEMORY_INSTALLED_PPI); + +extern EFI_GUID gPeiMemoryDiscoveredPpiGuid; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/PciCfg/PciCfg.c b/EDK/Foundation/Framework/Ppi/PciCfg/PciCfg.c new file mode 100644 index 0000000..5bc6f68 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/PciCfg/PciCfg.c @@ -0,0 +1,28 @@ +/*++ + +Copyright (c) 2004, 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.c + +Abstract: + + PciCfg PPI GUID as defined in PEI CIS specification. + +--*/ + +#include "Tiano.h" +#include "Pei.h" +#include EFI_PPI_DEFINITION (PciCfg) + +EFI_GUID gPeiPciCfgPpiInServiceTableGuid = PEI_PCI_CFG_PPI_GUID; + +EFI_GUID_STRING(&gPeiPciCfgPpiInServiceTableGuid, "PciCfg", "PciCfg PPI"); diff --git a/EDK/Foundation/Framework/Ppi/PciCfg/PciCfg.h b/EDK/Foundation/Framework/Ppi/PciCfg/PciCfg.h new file mode 100644 index 0000000..d116b50 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/PciCfg/PciCfg.h @@ -0,0 +1,65 @@ +/*++ + +Copyright (c) 2004 - 2007, 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 + +Abstract: + + PciCfg PPI as defined in PEI CIS specification + + Used to access PCI configuration space in PEI + +--*/ + +#ifndef _PEI_PCI_CFG_H_ +#define _PEI_PCI_CFG_H_ +#include "EfiPciCfg.h" + +#define PEI_PCI_CFG_PPI_GUID \ + { \ + 0xe1f2eba0, 0xf7b9, 0x4a26, 0x86, 0x20, 0x13, 0x12, 0x21, 0x64, 0x2a, 0x90 \ + } + +EFI_FORWARD_DECLARATION (PEI_PCI_CFG_PPI); + + +typedef +EFI_STATUS +(EFIAPI *PEI_PCI_CFG_PPI_IO) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_PCI_CFG_PPI * This, + IN PEI_PCI_CFG_PPI_WIDTH Width, + IN UINT64 Address, + IN OUT VOID *Buffer + ); + +typedef +EFI_STATUS +(EFIAPI *PEI_PCI_CFG_PPI_RW) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_PCI_CFG_PPI * This, + IN PEI_PCI_CFG_PPI_WIDTH Width, + IN UINT64 Address, + IN UINTN SetBits, + IN UINTN ClearBits + ); + +typedef struct _PEI_PCI_CFG_PPI { + PEI_PCI_CFG_PPI_IO Read; + PEI_PCI_CFG_PPI_IO Write; + PEI_PCI_CFG_PPI_RW Modify; +} PEI_PCI_CFG_PPI; + +extern EFI_GUID gPeiPciCfgPpiInServiceTableGuid; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/PciCfg2/PciCfg2.c b/EDK/Foundation/Framework/Ppi/PciCfg2/PciCfg2.c new file mode 100644 index 0000000..e733d74 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/PciCfg2/PciCfg2.c @@ -0,0 +1,28 @@ +/*++ + +Copyright (c) 2007, 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: + + PciCfg2.c + +Abstract: + + PciCfg2 PPI GUID as defined in PI1.0 specification. + +--*/ + +#include "Tiano.h" +#include "Pei.h" +#include EFI_PPI_DEFINITION (PciCfg2) + +EFI_GUID gPeiPciCfg2PpiGuid = EFI_PEI_PCI_CFG2_PPI_GUID; + +EFI_GUID_STRING(&gPeiPciCfg2PpiGuid, "PciCfg2", "PciCfg2 PPI"); diff --git a/EDK/Foundation/Framework/Ppi/PciCfg2/PciCfg2.h b/EDK/Foundation/Framework/Ppi/PciCfg2/PciCfg2.h new file mode 100644 index 0000000..285f97c --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/PciCfg2/PciCfg2.h @@ -0,0 +1,67 @@ +/*++ + +Copyright (c) 2007, 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: + + PciCfg2.h + +Abstract: + + PciCfg2 PPI as defined in PI1.0 specification + + Used to access PCI configuration space in PEI + +--*/ + +#ifndef _PEI_PCI_CFG2_H_ +#define _PEI_PCI_CFG2_H_ +#include "EfiPciCfg.h" + +//;;## ...AMI_OVERRIDE... Fixed Build error issue. +#define EFI_PEI_PCI_CFG2_PPI_GUID \ + { \ + 0x57a449a, 0x1fdc, 0x4c06, 0xbf, 0xc9, 0xf5, 0x3f, 0x6a, 0x99, 0xbb, 0x92 \ + } + +EFI_FORWARD_DECLARATION (EFI_PEI_PCI_CFG2_PPI); + + +typedef +EFI_STATUS +(EFIAPI *EFI_PEI_PCI_CFG_PPI_IO) ( + IN CONST EFI_PEI_SERVICES **PeiServices, + IN CONST EFI_PEI_PCI_CFG2_PPI *This, + IN EFI_PEI_PCI_CFG_PPI_WIDTH Width, + IN UINT64 Address, + IN OUT VOID *Buffer + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_PEI_PCI_CFG_PPI_RW) ( + IN CONST EFI_PEI_SERVICES **PeiServices, + IN CONST EFI_PEI_PCI_CFG2_PPI *This, + IN EFI_PEI_PCI_CFG_PPI_WIDTH Width, + IN UINT64 Address, + IN VOID *SetBits, + IN VOID *ClearBits + ); + +struct _EFI_PEI_PCI_CFG2_PPI { + EFI_PEI_PCI_CFG_PPI_IO Read; + EFI_PEI_PCI_CFG_PPI_IO Write; + EFI_PEI_PCI_CFG_PPI_RW Modify; + UINT16 Segment; +}; + +extern EFI_GUID gPeiPciCfg2PpiGuid; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/RecoveryModule/RecoveryModule.c b/EDK/Foundation/Framework/Ppi/RecoveryModule/RecoveryModule.c new file mode 100644 index 0000000..ad53fe3 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/RecoveryModule/RecoveryModule.c @@ -0,0 +1,29 @@ +/*++ + +Copyright (c) 2004, 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.c + +Abstract: + + Recovery Module PPI GUID as defined in PEI EAS + +--*/ + +#include "Tiano.h" +#include "PeiBind.h" +#include "PeiApi.h" +#include EFI_PPI_DEFINITION (RecoveryModule) + +EFI_GUID gPeiRecoveryModulePpiGuid = PEI_RECOVERY_MODULE_INTERFACE_PPI; + +EFI_GUID_STRING(&gPeiRecoveryModulePpiGuid, "RecoveryModule", "Recovery Module PPI"); diff --git a/EDK/Foundation/Framework/Ppi/RecoveryModule/RecoveryModule.h b/EDK/Foundation/Framework/Ppi/RecoveryModule/RecoveryModule.h new file mode 100644 index 0000000..c36e914 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/RecoveryModule/RecoveryModule.h @@ -0,0 +1,45 @@ +/*++ + +Copyright (c) 2004, 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 + +Abstract: + + Recovery Module PPI as defined in Tiano + +--*/ + +#ifndef _PEI_RECOVERY_MODULE_PPI_H +#define _PEI_RECOVERY_MODULE_PPI_H + +#define PEI_RECOVERY_MODULE_INTERFACE_PPI \ + { \ + 0xFB6D9542, 0x612D, 0x4f45, 0x87, 0x2F, 0x5C, 0xFF, 0x52, 0xE9, 0x3D, 0xCF \ + } + +EFI_FORWARD_DECLARATION (PEI_RECOVERY_MODULE_INTERFACE); + +typedef +EFI_STATUS +(EFIAPI *PEI_LOAD_RECOVERY_CAPSULE) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_RECOVERY_MODULE_INTERFACE * This + ); + +typedef struct _PEI_RECOVERY_MODULE_INTERFACE { + PEI_LOAD_RECOVERY_CAPSULE LoadRecoveryCapsule; +} PEI_RECOVERY_MODULE_INTERFACE; + +extern EFI_GUID gPeiRecoveryModulePpiGuid; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/Reset/Reset.c b/EDK/Foundation/Framework/Ppi/Reset/Reset.c new file mode 100644 index 0000000..6f680b2 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/Reset/Reset.c @@ -0,0 +1,28 @@ +/*++ + +Copyright (c) 2004, 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.c + +Abstract: + + Reset Service PPI GUID as defined in Tiano + +--*/ + +#include "Tiano.h" +#include "Pei.h" +#include EFI_PPI_DEFINITION (Reset) + +EFI_GUID gPeiResetPpiGuid = PEI_RESET_PPI_GUID; + +EFI_GUID_STRING(&gPeiResetPpiGuid, "Reset", "Reset PPI"); diff --git a/EDK/Foundation/Framework/Ppi/Reset/Reset.h b/EDK/Foundation/Framework/Ppi/Reset/Reset.h new file mode 100644 index 0000000..8239b42 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/Reset/Reset.h @@ -0,0 +1,54 @@ +/*++ + +Copyright (c) 2004, 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 + +Abstract: + + Reset PPI as defined in Tiano + + Used to reset the platform from PEI + +--*/ + +#ifndef _PEI_RESET_H_ +#define _PEI_RESET_H_ + +#define PEI_RESET_PPI_GUID \ + { \ + 0xef398d58, 0x9dfd, 0x4103, 0xbf, 0x94, 0x78, 0xc6, 0xf4, 0xfe, 0x71, 0x2f \ + } + +// +// ******************************************************* +// PEI_RESET_TYPE +// ******************************************************* +// +typedef enum { + PeiResetCold, + PeiResetWarm, +} PEI_RESET_TYPE; + +typedef +EFI_STATUS +(EFIAPI *EFI_PEI_RESET_SYSTEM) ( + IN EFI_PEI_SERVICES **PeiServices + ); + +typedef struct { + EFI_PEI_RESET_SYSTEM ResetSystem; +} PEI_RESET_PPI; + +extern EFI_GUID gPeiResetPpiGuid; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/S3Resume/S3Resume.c b/EDK/Foundation/Framework/Ppi/S3Resume/S3Resume.c new file mode 100644 index 0000000..12b8e56 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/S3Resume/S3Resume.c @@ -0,0 +1,29 @@ +/*++ + + Copyright (c) 2004, 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.c + +Abstract: + + Boot Script Executer PPI GUID as defined in Tiano + +--*/ + +#include "Tiano.h" +#include "PeiBind.h" +#include "PeiApi.h" +#include EFI_PPI_DEFINITION (S3Resume) + +EFI_GUID gPeiS3ResumePpiGuid = PEI_S3_RESUME_PPI_GUID; + +EFI_GUID_STRING(&gPeiS3ResumePpiGuid, "S3Resume", "S3 Resume PPI"); diff --git a/EDK/Foundation/Framework/Ppi/S3Resume/S3Resume.h b/EDK/Foundation/Framework/Ppi/S3Resume/S3Resume.h new file mode 100644 index 0000000..43a2afb --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/S3Resume/S3Resume.h @@ -0,0 +1,44 @@ +/*++ + + Copyright (c) 2004, 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 + +Abstract: + + S3 Resume PPI + +--*/ + +#ifndef _PEI_S3_RESUME_PPI_H +#define _PEI_S3_RESUME_PPI_H + +#define PEI_S3_RESUME_PPI_GUID \ + { \ + 0x4426CCB2, 0xE684, 0x4a8a, 0xAE, 0x40, 0x20, 0xD4, 0xB0, 0x25, 0xB7, 0x10 \ + } + +EFI_FORWARD_DECLARATION (PEI_S3_RESUME_PPI); + +typedef +EFI_STATUS +(EFIAPI *PEI_S3_RESUME_PPI_RESTORE_CONFIG) ( + IN EFI_PEI_SERVICES **PeiServices + ); + +typedef struct _PEI_S3_RESUME_PPI { + PEI_S3_RESUME_PPI_RESTORE_CONFIG S3RestoreConfig; +} PEI_S3_RESUME_PPI; + +extern EFI_GUID gPeiS3ResumePpiGuid; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/SecPlatformInformation/SecPlatformInformation.c b/EDK/Foundation/Framework/Ppi/SecPlatformInformation/SecPlatformInformation.c new file mode 100644 index 0000000..ecc0c34 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/SecPlatformInformation/SecPlatformInformation.c @@ -0,0 +1,29 @@ +/*++ + +Copyright (c) 2004, 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.c + +Abstract: + + Sec Platform Information as defined in PEI EAS + +--*/ + +#include "Tiano.h" +#include "PeiBind.h" +#include "PeiApi.h" +#include EFI_PPI_DEFINITION (SecPlatformInformation) + +EFI_GUID gEfiSecPlatformInformationPpiGuid = EFI_SEC_PLATFORM_INFORMATION_GUID; + +EFI_GUID_STRING(&gEfiSecPlatformInformationPpiGuid, "SecPlatformInformation", "Sec Platform Information"); diff --git a/EDK/Foundation/Framework/Ppi/SecPlatformInformation/SecPlatformInformation.h b/EDK/Foundation/Framework/Ppi/SecPlatformInformation/SecPlatformInformation.h new file mode 100644 index 0000000..f9ea0e6 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/SecPlatformInformation/SecPlatformInformation.h @@ -0,0 +1,57 @@ +/*++ + +Copyright (c) 2004, 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 + +Abstract: + + Sec Platform Information PPI as defined in Tiano + +--*/ + +#ifndef _PEI_SEC_PLATFORM_INFORMATION_PPI_H +#define _PEI_SEC_PLATFORM_INFORMATION_PPI_H + +#define EFI_SEC_PLATFORM_INFORMATION_GUID \ + { \ + 0x6f8c2b35, 0xfef4, 0x448d, 0x82, 0x56, 0xe1, 0x1b, 0x19, 0xd6, 0x10, 0x77 \ + } + +EFI_FORWARD_DECLARATION (EFI_SEC_PLATFORM_INFORMATION_PPI); + +extern EFI_GUID gEfiSecPlatformInformationPpiGuid; + +typedef struct { + UINTN HealthFlags; +} SEC_PLATFORM_INFORMATION_RECORD; + +typedef struct { + UINTN BootPhase; // entry r20 value + UINTN UniqueId; // PAL arbitration ID + UINTN HealthStat; // Health Status + UINTN PALRetAddress; // return address to PAL +} IPF_HANDOFF_STATUS; + +typedef +EFI_STATUS +(EFIAPI *SEC_PLATFORM_INFORMATION) ( + IN EFI_PEI_SERVICES **PeiServices, + IN OUT UINT64 *StructureSize, + IN OUT SEC_PLATFORM_INFORMATION_RECORD * PlatformInformationRecord + ); + +typedef struct _EFI_SEC_PLATFORM_INFORMATION_PPI { + SEC_PLATFORM_INFORMATION PlatformInformation; +} EFI_SEC_PLATFORM_INFORMATION_PPI; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/SectionExtraction/SectionExtraction.c b/EDK/Foundation/Framework/Ppi/SectionExtraction/SectionExtraction.c new file mode 100644 index 0000000..7f3d962 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/SectionExtraction/SectionExtraction.c @@ -0,0 +1,28 @@ +/*++ + +Copyright (c) 2004, 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.c + +Abstract: + + Section Extraction Protocol PPI GUID as defined in Tiano + +--*/ + +#include "Tiano.h" +#include "Pei.h" +#include EFI_PPI_DEFINITION (SectionExtraction) + +EFI_GUID gPeiSectionExtractionPpiGuid = EFI_PEI_SECTION_EXTRACTION_PPI_GUID; + +EFI_GUID_STRING(&gPeiSectionExtractionPpiGuid, "Section Extraction PPI", "Section Extraction PPI"); diff --git a/EDK/Foundation/Framework/Ppi/SectionExtraction/SectionExtraction.h b/EDK/Foundation/Framework/Ppi/SectionExtraction/SectionExtraction.h new file mode 100644 index 0000000..1e1a501 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/SectionExtraction/SectionExtraction.h @@ -0,0 +1,59 @@ +/*++ + +Copyright (c) 2004, 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 + +Abstract: + + Section Extraction PPI as defined in Tiano + +--*/ + +#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 \ + } + +EFI_FORWARD_DECLARATION (EFI_PEI_SECTION_EXTRACTION_PPI); + +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 + ); + +// +// 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 + +typedef struct _EFI_PEI_SECTION_EXTRACTION_PPI { + EFI_PEI_GET_SECTION PeiGetSection; +} EFI_PEI_SECTION_EXTRACTION_PPI; + +extern EFI_GUID gPeiSectionExtractionPpiGuid; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/Security/Security.c b/EDK/Foundation/Framework/Ppi/Security/Security.c new file mode 100644 index 0000000..9d18044 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/Security/Security.c @@ -0,0 +1,28 @@ +/*++ + +Copyright (c) 2004, 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.c + +Abstract: + + Security Architectural Protocol PPI GUID as defined in Tiano + +--*/ + +#include "Tiano.h" +#include "Pei.h" +#include EFI_PPI_DEFINITION (Security) + +EFI_GUID gPeiSecurityPpiGuid = PEI_SECURITY_PPI_GUID; + +EFI_GUID_STRING(&gPeiSecurityPpiGuid, "Security PPI", "Security Arch PPI"); diff --git a/EDK/Foundation/Framework/Ppi/Security/Security.h b/EDK/Foundation/Framework/Ppi/Security/Security.h new file mode 100644 index 0000000..ec72ffa --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/Security/Security.h @@ -0,0 +1,48 @@ +/*++ + +Copyright (c) 2004, 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 + +Abstract: + + Security Architectural PPI as defined in Tiano + +--*/ + +#ifndef _SECURITY_PPI_H_ +#define _SECURITY_PPI_H_ + +#define PEI_SECURITY_PPI_GUID \ + { \ + 0x1388066e, 0x3a57, 0x4efa, 0x98, 0xf3, 0xc1, 0x2f, 0x3a, 0x95, 0x8a, 0x29 \ + } + +EFI_FORWARD_DECLARATION (PEI_SECURITY_PPI); + +typedef +EFI_STATUS +(EFIAPI *PEI_SECURITY_AUTHENTICATION_STATE) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_SECURITY_PPI * This, + IN UINT32 AuthenticationStatus, + IN EFI_FFS_FILE_HEADER * FfsFileHeader, + IN OUT BOOLEAN *StartCrisisRecovery + ); + +typedef struct _PEI_SECURITY_PPI { + PEI_SECURITY_AUTHENTICATION_STATE AuthenticationState; +} PEI_SECURITY_PPI; + +extern EFI_GUID gPeiSecurityPpiGuid; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/Security2/Security2.c b/EDK/Foundation/Framework/Ppi/Security2/Security2.c new file mode 100644 index 0000000..b2ada7f --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/Security2/Security2.c @@ -0,0 +1,28 @@ +/*++ + +Copyright (c) 2007, 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: + + Security2.c + +Abstract: + + PI 1.0 spec definition. + +--*/ + +#include "Tiano.h" +#include "Pei.h" +#include EFI_PPI_DEFINITION (Security2) + +EFI_GUID gEfiPeiSecurity2PpiGuid = EFI_PEI_SECURITY2_PPI_GUID; + +EFI_GUID_STRING(&gEfiPeiSecurity2PpiGuid, "Security2 PPI", "Security2 Arch PPI"); diff --git a/EDK/Foundation/Framework/Ppi/Security2/Security2.h b/EDK/Foundation/Framework/Ppi/Security2/Security2.h new file mode 100644 index 0000000..55d2031 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/Security2/Security2.h @@ -0,0 +1,50 @@ +/*++ + +Copyright (c) 2007, 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: + + Security2.h + +Abstract: + + PI 1.0 spec definition. + +--*/ + + +#ifndef __SECURITY2_PPI_H__ +#define __SECURITY2_PPI_H__ + +#define EFI_PEI_SECURITY2_PPI_GUID \ + { 0xdcd0be23, 0x9586, 0x40f4, 0xb6, 0x43, 0x6, 0x52, 0x2c, 0xed, 0x4e, 0xde} + + +EFI_FORWARD_DECLARATION (EFI_PEI_SECURITY2_PPI); + +typedef +EFI_STATUS +(EFIAPI *EFI_PEI_SECURITY_AUTHENTICATION_STATE) ( + IN CONST EFI_PEI_SERVICES **PeiServices, + IN CONST EFI_PEI_SECURITY2_PPI *This, + IN UINT32 AuthenticationStatus, + IN EFI_PEI_FV_HANDLE FvHandle, + IN EFI_PEI_FILE_HANDLE FileHandle, + IN OUT BOOLEAN *DeferExection + ); + +typedef struct _EFI_PEI_SECURITY2_PPI { + EFI_PEI_SECURITY_AUTHENTICATION_STATE AuthenticationState; +} EFI_PEI_SECURITY2_PPI; + + +extern EFI_GUID gEfiPeiSecurity2PpiGuid; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/Smbus/Smbus.c b/EDK/Foundation/Framework/Ppi/Smbus/Smbus.c new file mode 100644 index 0000000..ad2340c --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/Smbus/Smbus.c @@ -0,0 +1,29 @@ +/*++ + +Copyright (c) 1999 - 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.c + +Abstract: + + Smbus PPI GUID as defined in EFI 2.0 + +--*/ + +#include "Tiano.h" +#include "Pei.h" +#include EFI_PPI_DEFINITION (Smbus) + +EFI_GUID gPeiSmbusPpiGuid = PEI_SMBUS_PPI_GUID; + +EFI_GUID_STRING(&gPeiSmbusPpiGuid, "Smbus", "Smbus PPI"); diff --git a/EDK/Foundation/Framework/Ppi/Smbus/Smbus.h b/EDK/Foundation/Framework/Ppi/Smbus/Smbus.h new file mode 100644 index 0000000..c4c6fbe --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/Smbus/Smbus.h @@ -0,0 +1,115 @@ +/*++ + +Copyright (c) 1999 - 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 + +Abstract: + + Smbus PPI as defined in EFI 2.0 + +--*/ + +#ifndef _PEI_SMBUS_PPI_H +#define _PEI_SMBUS_PPI_H + +#include "EfiSmbus.h" + +#define PEI_SMBUS_PPI_GUID \ + { \ + 0xabd42895, 0x78cf, 0x4872, 0x84, 0x44, 0x1b, 0x5c, 0x18, 0xb, 0xfb, 0xda \ + } + +EFI_FORWARD_DECLARATION (PEI_SMBUS_PPI); + +typedef +EFI_STATUS +(EFIAPI *PEI_SMBUS_PPI_EXECUTE_OPERATION) ( + IN EFI_PEI_SERVICES **PeiServices, + IN 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 + ); + +//;;## ...AMI_OVERRIDE... Support PI1.x typedef struct { +//;;## ...AMI_OVERRIDE... Support PI1.x UINT32 VendorSpecificId; +//;;## ...AMI_OVERRIDE... Support PI1.x UINT16 SubsystemDeviceId; +//;;## ...AMI_OVERRIDE... Support PI1.x UINT16 SubsystemVendorId; +//;;## ...AMI_OVERRIDE... Support PI1.x UINT16 Interface; +//;;## ...AMI_OVERRIDE... Support PI1.x UINT16 DeviceId; +//;;## ...AMI_OVERRIDE... Support PI1.x UINT16 VendorId; +//;;## ...AMI_OVERRIDE... Support PI1.x UINT8 VendorRevision; +//;;## ...AMI_OVERRIDE... Support PI1.x UINT8 DeviceCapabilities; +//;;## ...AMI_OVERRIDE... Support PI1.x } EFI_SMBUS_UDID; + +typedef +EFI_STATUS +(EFIAPI *PEI_SMBUS_NOTIFY_FUNCTION) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_SMBUS_PPI * SmbusPpi, + IN EFI_SMBUS_DEVICE_ADDRESS SlaveAddress, + IN UINTN Data + ); + +// +// If ArpAll is TRUE, SmbusUdid/SlaveAddress is Optional. +// If FALSE, ArpDevice will enum SmbusUdid and the address will be at SlaveAddress +// +typedef +EFI_STATUS +(EFIAPI *PEI_SMBUS_PPI_ARP_DEVICE) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_SMBUS_PPI * This, + IN BOOLEAN ArpAll, + IN EFI_SMBUS_UDID * SmbusUdid, OPTIONAL + IN OUT EFI_SMBUS_DEVICE_ADDRESS * SlaveAddress OPTIONAL + ); + +//;;## ...AMI_OVERRIDE... Support PI1.x typedef struct { +//;;## ...AMI_OVERRIDE... Support PI1.x EFI_SMBUS_DEVICE_ADDRESS SmbusDeviceAddress; +//;;## ...AMI_OVERRIDE... Support PI1.x EFI_SMBUS_UDID SmbusDeviceUdid; +//;;## ...AMI_OVERRIDE... Support PI1.x } EFI_SMBUS_DEVICE_MAP; + +typedef +EFI_STATUS +(EFIAPI *PEI_SMBUS_PPI_GET_ARP_MAP) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_SMBUS_PPI * This, + IN OUT UINTN *Length, + IN OUT EFI_SMBUS_DEVICE_MAP **SmbusDeviceMap + ); + +typedef +EFI_STATUS +(EFIAPI *PEI_SMBUS_PPI_NOTIFY) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_SMBUS_PPI * This, + IN EFI_SMBUS_DEVICE_ADDRESS SlaveAddress, + IN UINTN Data, + IN PEI_SMBUS_NOTIFY_FUNCTION NotifyFunction + ); + +typedef struct _PEI_SMBUS_PPI { + PEI_SMBUS_PPI_EXECUTE_OPERATION Execute; + PEI_SMBUS_PPI_ARP_DEVICE ArpDevice; + PEI_SMBUS_PPI_GET_ARP_MAP GetArpMap; + PEI_SMBUS_PPI_NOTIFY Notify; +} PEI_SMBUS_PPI; + +extern EFI_GUID gPeiSmbusPpiGuid; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/Smbus2/Smbus2.c b/EDK/Foundation/Framework/Ppi/Smbus2/Smbus2.c new file mode 100644 index 0000000..bbd372a --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/Smbus2/Smbus2.c @@ -0,0 +1,29 @@ +/*++ + +Copyright (c) 2007, 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: + + Smbus2.c + +Abstract: + + Smbus2 PPI GUID as defined in PI1.0 + +--*/ + +#include "Tiano.h" +#include "Pei.h" +#include EFI_PPI_DEFINITION (Smbus2) + +EFI_GUID gPeiSmbus2PpiGuid = PEI_SMBUS2_PPI_GUID; + +EFI_GUID_STRING(&gPeiSmbus2PpiGuid, "Smbus2", "Smbus2 PPI"); diff --git a/EDK/Foundation/Framework/Ppi/Smbus2/Smbus2.h b/EDK/Foundation/Framework/Ppi/Smbus2/Smbus2.h new file mode 100644 index 0000000..23bfa93 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/Smbus2/Smbus2.h @@ -0,0 +1,96 @@ +/*++ + +Copyright (c) 2007, 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: + + Smbus2.h + +Abstract: + + Smbus2 PPI as defined in PI 1.0 + +--*/ + +#ifndef _PEI_SMBUS2_PPI_H +#define _PEI_SMBUS2_PPI_H + +#include "EfiSmbus.h" + +#define PEI_SMBUS2_PPI_GUID \ + { \ + 0x9ca93627, 0xb65b, 0x4324, 0xa2, 0x2, 0xc0, 0xb4, 0x61, 0x76, 0x45, 0x43 \ + } + +EFI_FORWARD_DECLARATION (EFI_PEI_SMBUS2_PPI); + +typedef +EFI_STATUS +(EFIAPI *EFI_PEI_SMBUS2_PPI_EXECUTE_OPERATION) ( + IN CONST EFI_PEI_SMBUS2_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 +EFI_STATUS +(EFIAPI *EFI_PEI_SMBUS_NOTIFY2_FUNCTION) ( + IN CONST EFI_PEI_SMBUS2_PPI * SmbusPpi, + IN EFI_SMBUS_DEVICE_ADDRESS SlaveAddress, + IN UINTN Data + ); + +// +// If ArpAll is TRUE, SmbusUdid/SlaveAddress is Optional. +// If FALSE, ArpDevice will enum SmbusUdid and the address will be at SlaveAddress +// +typedef +EFI_STATUS +(EFIAPI *EFI_PEI_SMBUS2_PPI_ARP_DEVICE) ( + IN CONST EFI_PEI_SMBUS2_PPI * This, + IN BOOLEAN ArpAll, + IN EFI_SMBUS_UDID * SmbusUdid, OPTIONAL + IN OUT EFI_SMBUS_DEVICE_ADDRESS * SlaveAddress OPTIONAL + ); + + +typedef +EFI_STATUS +(EFIAPI *EFI_PEI_SMBUS2_PPI_GET_ARP_MAP) ( + IN CONST EFI_PEI_SMBUS2_PPI * This, + IN OUT UINTN *Length, + IN OUT EFI_SMBUS_DEVICE_MAP **SmbusDeviceMap + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_PEI_SMBUS2_PPI_NOTIFY) ( + IN CONST EFI_PEI_SMBUS2_PPI * This, + IN EFI_SMBUS_DEVICE_ADDRESS SlaveAddress, + IN UINTN Data, + IN EFI_PEI_SMBUS_NOTIFY2_FUNCTION NotifyFunction + ); + +typedef struct _EFI_PEI_SMBUS2_PPI { + EFI_PEI_SMBUS2_PPI_EXECUTE_OPERATION Execute; + EFI_PEI_SMBUS2_PPI_ARP_DEVICE ArpDevice; + EFI_PEI_SMBUS2_PPI_GET_ARP_MAP GetArpMap; + EFI_PEI_SMBUS2_PPI_NOTIFY Notify; + EFI_GUID Identifier; +} EFI_PEI_SMBUS2_PPI; + +extern EFI_GUID gPeiSmbus2PpiGuid; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/Stall/Stall.c b/EDK/Foundation/Framework/Ppi/Stall/Stall.c new file mode 100644 index 0000000..8d00347 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/Stall/Stall.c @@ -0,0 +1,28 @@ +/*++ + + Copyright (c) 1999 - 2002, 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.c + +Abstract: + + Stall PPI + +--*/ + +#include "Tiano.h" +#include "Pei.h" +#include EFI_PPI_DEFINITION (Stall) + +EFI_GUID gPeiStallPpiGuid = PEI_STALL_PPI_GUID; + +EFI_GUID_STRING(&gPeiStallPpiGuid, "Stall", "Stall PPI"); diff --git a/EDK/Foundation/Framework/Ppi/Stall/Stall.h b/EDK/Foundation/Framework/Ppi/Stall/Stall.h new file mode 100644 index 0000000..c878a63 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/Stall/Stall.h @@ -0,0 +1,47 @@ +/*++ + + Copyright (c) 1999 - 2002, 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 + +Abstract: + + Stall PPI + +--*/ + +#ifndef _PEI_STALL_PPI_H_ +#define _PEI_STALL_PPI_H_ + +#define PEI_STALL_PPI_GUID \ + { \ + 0x1f4c6f90, 0xb06b, 0x48d8, 0xa2, 0x01, 0xba, 0xe5, 0xf1, 0xcd, 0x7d, 0x56 \ + } + +EFI_FORWARD_DECLARATION (PEI_STALL_PPI); + +typedef +EFI_STATUS +(EFIAPI *PEI_STALL) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_STALL_PPI * This, + IN UINTN Microseconds + ); + +typedef struct _PEI_STALL_PPI { + UINTN Resolution; + PEI_STALL Stall; +} PEI_STALL_PPI; + +extern EFI_GUID gPeiStallPpiGuid; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/StatusCode/StatusCode.c b/EDK/Foundation/Framework/Ppi/StatusCode/StatusCode.c new file mode 100644 index 0000000..6fc697c --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/StatusCode/StatusCode.c @@ -0,0 +1,29 @@ +/*++ + +Copyright (c) 2004, 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.c + +Abstract: + + Status Code PPI GUID as defined in PEI EAS + +--*/ + +#include "Tiano.h" +#include "PeiBind.h" +#include "PeiApi.h" +#include EFI_PPI_DEFINITION (StatusCode) + +EFI_GUID gPeiStatusCodePpiGuid = PEI_STATUS_CODE_PPI_GUID; + +EFI_GUID_STRING(&gPeiProgressCodePpiGuid, "StatusCode", "Status Code PPI"); diff --git a/EDK/Foundation/Framework/Ppi/StatusCode/StatusCode.h b/EDK/Foundation/Framework/Ppi/StatusCode/StatusCode.h new file mode 100644 index 0000000..a19800b --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/StatusCode/StatusCode.h @@ -0,0 +1,49 @@ +/*++ + +Copyright (c) 2004, 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 + +Abstract: + + Status Code PPI as defined in Tiano + +--*/ + +#ifndef _PEI_STATUS_CODE_PPI_H +#define _PEI_STATUS_CODE_PPI_H + +#define PEI_STATUS_CODE_PPI_GUID \ + { \ + 0x229832d3, 0x7a30, 0x4b36, 0xb8, 0x27, 0xf4, 0xc, 0xb7, 0xd4, 0x54, 0x36 \ + } + +EFI_FORWARD_DECLARATION (PEI_STATUS_CODE_PPI); + +typedef +EFI_STATUS +(EFIAPI *PEI_REPORT_STATUS_CODE) ( + IN EFI_PEI_SERVICES **PeiServices, + IN EFI_STATUS_CODE_TYPE CodeType, + IN EFI_STATUS_CODE_VALUE Value, + IN UINT32 Instance, + IN EFI_GUID * CallerId, + IN EFI_STATUS_CODE_DATA * Data OPTIONAL + ); + +typedef struct _PEI_STATUS_CODE_PPI { + PEI_REPORT_STATUS_CODE ReportStatusCode; +} PEI_STATUS_CODE_PPI; + +extern EFI_GUID gPeiStatusCodePpiGuid; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/Variable/Variable.c b/EDK/Foundation/Framework/Ppi/Variable/Variable.c new file mode 100644 index 0000000..77d8359 --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/Variable/Variable.c @@ -0,0 +1,29 @@ +/*++ + +Copyright (c) 2004, 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: + + Variable.c + +Abstract: + + Boot Mode PPI GUID as defined in PEI EAS + +--*/ + +#include "Tiano.h" +#include "PeiBind.h" +#include "PeiApi.h" +#include EFI_PPI_DEFINITION (Variable) + +EFI_GUID gPeiReadOnlyVariablePpiGuid = PEI_READ_ONLY_VARIABLE_ACCESS_PPI_GUID; + +EFI_GUID_STRING(&gPeiReadOnlyVariablePpiGuid, "Variable", "Read Only Variable PPI"); diff --git a/EDK/Foundation/Framework/Ppi/Variable/Variable.h b/EDK/Foundation/Framework/Ppi/Variable/Variable.h new file mode 100644 index 0000000..90965cb --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/Variable/Variable.h @@ -0,0 +1,69 @@ +/*++ + +Copyright (c) 2004, 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: + + Variable.h + +Abstract: + + Read-only Variable Service PPI as defined in Tiano + +--*/ + +#ifndef _PEI_READ_ONLY_VARIABLE_PPI_H +#define _PEI_READ_ONLY_VARIABLE_PPI_H + +#include "EfiVariable.h" //;;## ...AMI_OVERRIDE... Support PI1.x + +#define PEI_READ_ONLY_VARIABLE_ACCESS_PPI_GUID \ + { \ + 0x3cdc90c6, 0x13fb, 0x4a75, 0x9e, 0x79, 0x59, 0xe9, 0xdd, 0x78, 0xb9, 0xfa \ + } + +// +// Variable attributes +// +//;;## ...AMI_OVERRIDE... Support PI1.x #define EFI_VARIABLE_NON_VOLATILE 0x00000001 +//;;## ...AMI_OVERRIDE... Support PI1.x #define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x00000002 +//;;## ...AMI_OVERRIDE... Support PI1.x #define EFI_VARIABLE_RUNTIME_ACCESS 0x00000004 +//;;## ...AMI_OVERRIDE... Support PI1.x #define EFI_VARIABLE_READ_ONLY 0x00000008 + +typedef +EFI_STATUS +(EFIAPI *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 + ); + +typedef +EFI_STATUS +(EFIAPI *PEI_GET_NEXT_VARIABLE_NAME) ( + IN EFI_PEI_SERVICES **PeiServices, + IN OUT UINTN *VariableNameSize, + IN OUT CHAR16 *VariableName, + IN OUT EFI_GUID * VendorGuid + ); + +typedef struct PEI_READ_ONLY_VARIABLE_PPI { + PEI_GET_VARIABLE PeiGetVariable; + PEI_GET_NEXT_VARIABLE_NAME PeiGetNextVariableName; +} PEI_READ_ONLY_VARIABLE_PPI; + +EFI_FORWARD_DECLARATION (PEI_MASTER_BOOT_MODE_PPI); + +extern EFI_GUID gPeiReadOnlyVariablePpiGuid; + +#endif diff --git a/EDK/Foundation/Framework/Ppi/Variable2/Variable2.c b/EDK/Foundation/Framework/Ppi/Variable2/Variable2.c new file mode 100644 index 0000000..3f4d57a --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/Variable2/Variable2.c @@ -0,0 +1,29 @@ +/*++ + +Copyright (c) 2007, 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: + + Variable2.c + +Abstract: + + Read-only Variable2 Service PPI as defined in PI1.0 + +--*/ + +#include "Tiano.h" +#include "PeiBind.h" +#include "PeiApi.h" +#include EFI_PPI_DEFINITION (Variable2) + +EFI_GUID gPeiReadOnlyVariable2PpiGuid = EFI_PEI_READ_ONLY_VARIABLE2_PPI_GUID; + +EFI_GUID_STRING(&gPeiReadOnlyVariable2PpiGuid, "Variable2", "Read Only Variable2 PPI"); diff --git a/EDK/Foundation/Framework/Ppi/Variable2/Variable2.h b/EDK/Foundation/Framework/Ppi/Variable2/Variable2.h new file mode 100644 index 0000000..31020ed --- /dev/null +++ b/EDK/Foundation/Framework/Ppi/Variable2/Variable2.h @@ -0,0 +1,61 @@ +/*++ + +Copyright (c) 2007, 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: + + Variable2.h + +Abstract: + + Read-only Variable2 Service PPI as defined in PI1.0 + +--*/ + +#ifndef _PEI_READ_ONLY_VARIABLE2_PPI_H +#define _PEI_READ_ONLY_VARIABLE2_PPI_H + +#include "EfiVariable.h" + +#define EFI_PEI_READ_ONLY_VARIABLE2_PPI_GUID \ + { \ + 0x2ab86ef5, 0xecb5, 0x4134, 0xb5, 0x56, 0x38, 0x54, 0xca, 0x1f, 0xe1, 0xb4 \ + } + +EFI_FORWARD_DECLARATION (EFI_PEI_READ_ONLY_VARIABLE2_PPI); + +typedef +EFI_STATUS +(EFIAPI *EFI_PEI_GET_VARIABLE2) ( + IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI *This, + IN CONST CHAR16 *VariableName, + IN CONST EFI_GUID *VariableGuid, + OUT UINT32 *Attributes, + IN OUT UINTN *DataSize, + OUT VOID *Data + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_PEI_GET_NEXT_VARIABLE_NAME2) ( + IN CONST EFI_PEI_READ_ONLY_VARIABLE2_PPI *This, + IN OUT UINTN *VariableNameSize, + IN OUT CHAR16 *VariableName, + IN OUT EFI_GUID *VariableGuid + ); + +typedef struct _EFI_PEI_READ_ONLY_VARIABLE2_PPI { + EFI_PEI_GET_VARIABLE2 GetVariable; + EFI_PEI_GET_NEXT_VARIABLE_NAME2 GetNextVariableName; +} EFI_PEI_READ_ONLY_VARIABLE2_PPI; + +extern EFI_GUID gPeiReadOnlyVariable2PpiGuid; + +#endif |