From 88f2012778d7a6d6f6d68789d90cc8cd214e6c4a Mon Sep 17 00:00:00 2001 From: vanjeff Date: Tue, 26 Jun 2007 08:03:14 +0000 Subject: [PATCH] 1. added common header files, Guid header filess, Protocol header files, PPI header files. 2. added Guids/Protocols/PPIs/Pcds definitions in .nspd, .dec files. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2744 6f19259b-4bc3-4df7-8a09-765794883524 --- MdeModulePkg/Include/Common/CapsuleName.h | 28 ++ MdeModulePkg/Include/Common/Variable.h | 87 ++++ .../Include/Common/WorkingBlockHeader.h | 47 ++ MdeModulePkg/Include/Guid/AlternateFvBlock.h | 32 ++ MdeModulePkg/Include/Guid/Bmp.h | 62 +++ MdeModulePkg/Include/Guid/BootState.h | 36 ++ MdeModulePkg/Include/Guid/CapsuleVendor.h | 35 ++ MdeModulePkg/Include/Guid/ConsoleInDevice.h | 29 ++ MdeModulePkg/Include/Guid/ConsoleOutDevice.h | 29 ++ .../Include/Guid/GenericPlatformVariable.h | 27 ++ MdeModulePkg/Include/Guid/HotPlugDevice.h | 28 ++ .../Include/Guid/MemoryTypeInformation.h | 35 ++ MdeModulePkg/Include/Guid/PeiPerformanceHob.h | 56 +++ .../Include/Guid/PrimaryConsoleInDevice.h | 29 ++ .../Include/Guid/PrimaryConsoleOutDevice.h | 28 ++ .../Include/Guid/PrimaryStandardErrorDevice.h | 28 ++ .../Include/Guid/StandardErrorDevice.h | 29 ++ MdeModulePkg/Include/Guid/SystemNvDataGuid.h | 45 ++ MdeModulePkg/Include/Ppi/BaseMemoryTest.h | 56 +++ MdeModulePkg/Include/Protocol/Capsule.h | 39 ++ .../Include/Protocol/ConsoleControl.h | 121 +++++ MdeModulePkg/Include/Protocol/DiskInfo.h | 179 ++++++++ .../Include/Protocol/FaultTolerantWriteLite.h | 88 ++++ MdeModulePkg/Include/Protocol/FvbExtension.h | 53 +++ .../Include/Protocol/GenericMemoryTest.h | 156 +++++++ MdeModulePkg/Include/Protocol/OEMBadging.h | 79 ++++ MdeModulePkg/Include/Protocol/Performance.h | 166 +++++++ MdeModulePkg/Include/Protocol/Print.h | 50 +++ MdeModulePkg/Include/Protocol/ScsiIo.h | 241 ++++++++++ MdeModulePkg/Include/Protocol/usbatapi.h | 83 ++++ MdeModulePkg/MdeModulePkg.dec | 128 ++++-- MdeModulePkg/MdeModulePkg.nspd | 421 ++++++++++++++++++ 32 files changed, 2525 insertions(+), 25 deletions(-) create mode 100644 MdeModulePkg/Include/Common/CapsuleName.h create mode 100644 MdeModulePkg/Include/Common/Variable.h create mode 100644 MdeModulePkg/Include/Common/WorkingBlockHeader.h create mode 100644 MdeModulePkg/Include/Guid/AlternateFvBlock.h create mode 100644 MdeModulePkg/Include/Guid/Bmp.h create mode 100644 MdeModulePkg/Include/Guid/BootState.h create mode 100644 MdeModulePkg/Include/Guid/CapsuleVendor.h create mode 100644 MdeModulePkg/Include/Guid/ConsoleInDevice.h create mode 100644 MdeModulePkg/Include/Guid/ConsoleOutDevice.h create mode 100644 MdeModulePkg/Include/Guid/GenericPlatformVariable.h create mode 100644 MdeModulePkg/Include/Guid/HotPlugDevice.h create mode 100644 MdeModulePkg/Include/Guid/MemoryTypeInformation.h create mode 100644 MdeModulePkg/Include/Guid/PeiPerformanceHob.h create mode 100644 MdeModulePkg/Include/Guid/PrimaryConsoleInDevice.h create mode 100644 MdeModulePkg/Include/Guid/PrimaryConsoleOutDevice.h create mode 100644 MdeModulePkg/Include/Guid/PrimaryStandardErrorDevice.h create mode 100644 MdeModulePkg/Include/Guid/StandardErrorDevice.h create mode 100644 MdeModulePkg/Include/Guid/SystemNvDataGuid.h create mode 100644 MdeModulePkg/Include/Ppi/BaseMemoryTest.h create mode 100644 MdeModulePkg/Include/Protocol/Capsule.h create mode 100644 MdeModulePkg/Include/Protocol/ConsoleControl.h create mode 100644 MdeModulePkg/Include/Protocol/DiskInfo.h create mode 100644 MdeModulePkg/Include/Protocol/FaultTolerantWriteLite.h create mode 100644 MdeModulePkg/Include/Protocol/FvbExtension.h create mode 100644 MdeModulePkg/Include/Protocol/GenericMemoryTest.h create mode 100644 MdeModulePkg/Include/Protocol/OEMBadging.h create mode 100644 MdeModulePkg/Include/Protocol/Performance.h create mode 100644 MdeModulePkg/Include/Protocol/Print.h create mode 100644 MdeModulePkg/Include/Protocol/ScsiIo.h create mode 100644 MdeModulePkg/Include/Protocol/usbatapi.h diff --git a/MdeModulePkg/Include/Common/CapsuleName.h b/MdeModulePkg/Include/Common/CapsuleName.h new file mode 100644 index 0000000000..d446bbdc7e --- /dev/null +++ b/MdeModulePkg/Include/Common/CapsuleName.h @@ -0,0 +1,28 @@ +/*++ + +Copyright (c) 2006, Intel Corporation +All rights reserved. This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +Module Name: + + CapsuleName.h + +Abstract: + +--*/ + +#ifndef __CAPSULE_NAME_H__ +#define __CAPSULE_NAME_H__ + +// +// If capsule data is passed via a variable, then this name should be used. +// +#define EFI_CAPSULE_VARIABLE_NAME L"CapsuleUpdateData" + +#endif diff --git a/MdeModulePkg/Include/Common/Variable.h b/MdeModulePkg/Include/Common/Variable.h new file mode 100644 index 0000000000..ef9e4c4993 --- /dev/null +++ b/MdeModulePkg/Include/Common/Variable.h @@ -0,0 +1,87 @@ +/**@file + Header file for EFI Variable Services. + +Copyright (c) 2006 - 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. + +**/ + +#ifndef __EFI_VARIABLE_H__ +#define __EFI_VARIABLE_H__ + +#define VARIABLE_STORE_SIGNATURE EFI_SIGNATURE_32 ('$', 'V', 'S', 'S') + +#define MAX_VARIABLE_SIZE 1024 + +// +// Enlarges the hardware error record maximum variable size to 32K bytes +// +#define MAX_HARDWARE_ERROR_VARIABLE_SIZE 0x8000 + +#define VARIABLE_DATA 0x55AA + +// +// Variable Store Header flags +// +#define VARIABLE_STORE_FORMATTED 0x5a +#define VARIABLE_STORE_HEALTHY 0xfe + +// +// The alignment of variable's start offset. +// For IA32/X64 architecture, the alignment is set to 1, and +// 8 is for IPF archtecture. +// +#if defined (MDE_CPU_IPF) +#define ALIGNMENT 8 +#else +#define ALIGNMENT 1 +#endif + +// +// Variable Store Status +// +typedef enum { + EfiRaw, + EfiValid, + EfiInvalid, + EfiUnknown +} VARIABLE_STORE_STATUS; + +// +// Variable State flags +// +#define VAR_IN_DELETED_TRANSITION 0xfe // Variable is in obsolete transistion +#define VAR_DELETED 0xfd // Variable is obsolete +#define VAR_ADDED 0x7f // Variable has been completely added +#define IS_VARIABLE_STATE(_c, _Mask) (BOOLEAN) (((~_c) & (~_Mask)) != 0) + +#pragma pack(1) + +typedef struct { + UINT32 Signature; + UINT32 Size; + UINT8 Format; + UINT8 State; + UINT16 Reserved; + UINT32 Reserved1; +} VARIABLE_STORE_HEADER; + +typedef struct { + UINT16 StartId; + UINT8 State; + UINT8 Reserved; + UINT32 Attributes; + UINT32 NameSize; + UINT32 DataSize; + EFI_GUID VendorGuid; +} VARIABLE_HEADER; + +#pragma pack() + +#endif // _EFI_VARIABLE_H_ diff --git a/MdeModulePkg/Include/Common/WorkingBlockHeader.h b/MdeModulePkg/Include/Common/WorkingBlockHeader.h new file mode 100644 index 0000000000..fc023ffe69 --- /dev/null +++ b/MdeModulePkg/Include/Common/WorkingBlockHeader.h @@ -0,0 +1,47 @@ +/*++ + +Copyright (c) 2006, Intel Corporation +All rights reserved. This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +Module Name: + + EfiWorkingBlockHeader.h + +Abstract: + + Defines data structure that is the headers found at the runtime + updatable firmware volumes, such as the FileSystemGuid of the + working block, the header structure of the variable block, FTW + working block, or event log block. + +--*/ + +#ifndef __EFI_WORKING_BLOCK_HEADER_H__ +#define __EFI_WORKING_BLOCK_HEADER_H__ + +// +// EFI Fault tolerant working block header +// The header is immediately followed by the write queue. +// +typedef struct { + EFI_GUID Signature; + UINT32 Crc; + UINT8 WorkingBlockValid : 1; + UINT8 WorkingBlockInvalid : 1; +#define WORKING_BLOCK_VALID 0x1 +#define WORKING_BLOCK_INVALID 0x2 + UINT8 Reserved : 6; + UINT8 Reserved3[3]; + UINT32 WriteQueueSize; + // + // UINT8 WriteQueue[WriteQueueSize]; + // +} EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER; + +#endif diff --git a/MdeModulePkg/Include/Guid/AlternateFvBlock.h b/MdeModulePkg/Include/Guid/AlternateFvBlock.h new file mode 100644 index 0000000000..5eac2fe620 --- /dev/null +++ b/MdeModulePkg/Include/Guid/AlternateFvBlock.h @@ -0,0 +1,32 @@ +/*++ + +Copyright (c) 2006 - 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: + + AlternateFvBlock.h + +Abstract: + + Tiano Guid used to define the Alternate Firmware Volume Block Guid. + +--*/ + +#ifndef __ALT_FVB_GUID_H__ +#define __ALT_FVB_GUID_H__ + +#define EFI_ALTERNATE_FV_BLOCK_GUID \ + { \ + 0xf496922d, 0x172f, 0x4bbc, {0xa1, 0xeb, 0xe, 0xeb, 0x94, 0x9c, 0x34, 0x86 } \ + } + +extern EFI_GUID gEfiAlternateFvBlockGuid; + +#endif diff --git a/MdeModulePkg/Include/Guid/Bmp.h b/MdeModulePkg/Include/Guid/Bmp.h new file mode 100644 index 0000000000..43c354d411 --- /dev/null +++ b/MdeModulePkg/Include/Guid/Bmp.h @@ -0,0 +1,62 @@ +/*++ + +Copyright (c) 2006 - 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: + + Bmp.h + +Abstract: + +--*/ + +#ifndef __BMP_GUID_H__ +#define __BMP_GUID_H__ + + +// +// Definitions for BMP files +// +#pragma pack(1) + +typedef struct { + UINT8 Blue; + UINT8 Green; + UINT8 Red; + UINT8 Reserved; +} BMP_COLOR_MAP; + +typedef struct { + CHAR8 CharB; + CHAR8 CharM; + UINT32 Size; + UINT16 Reserved[2]; + UINT32 ImageOffset; + UINT32 HeaderSize; + UINT32 PixelWidth; + UINT32 PixelHeight; + UINT16 Planes; // Must be 1 + UINT16 BitPerPixel; // 1, 4, 8, or 24 + UINT32 CompressionType; + UINT32 ImageSize; // Compressed image size in bytes + UINT32 XPixelsPerMeter; + UINT32 YPixelsPerMeter; + UINT32 NumberOfColors; + UINT32 ImportantColors; +} BMP_IMAGE_HEADER; + +#pragma pack() + +#define EFI_DEFAULT_BMP_LOGO_GUID \ + {0x7BB28B99,0x61BB,0x11d5,{0x9A,0x5D,0x00,0x90,0x27,0x3F,0xC1,0x4D}} + +extern EFI_GUID gEfiDefaultBmpLogoGuid; + +#endif diff --git a/MdeModulePkg/Include/Guid/BootState.h b/MdeModulePkg/Include/Guid/BootState.h new file mode 100644 index 0000000000..5965965c0e --- /dev/null +++ b/MdeModulePkg/Include/Guid/BootState.h @@ -0,0 +1,36 @@ +/*++ + +Copyright (c) 2006 - 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: + + BootState.h + +Abstract: + + Constants and declarations that are common accross PEI and DXE. +--*/ + +#ifndef __BOOT_STATE_H__ +#define __BOOT_STATE_H__ + +// +// BOOT STATE +// + +typedef UINT32 EFI_BOOT_STATE; + +#define BOOT_STATE_VARIABLE_NAME L"BootState" + +#define EFI_BOOT_STATE_VARIABLE_GUID \ + {0x60b5e939, 0xfcf, 0x4227, {0xba, 0x83, 0x6b, 0xbe, 0xd4, 0x5b, 0xc0, 0xe3} } + +extern EFI_GUID gEfiBootStateGuid; +#endif diff --git a/MdeModulePkg/Include/Guid/CapsuleVendor.h b/MdeModulePkg/Include/Guid/CapsuleVendor.h new file mode 100644 index 0000000000..cd48c39dcf --- /dev/null +++ b/MdeModulePkg/Include/Guid/CapsuleVendor.h @@ -0,0 +1,35 @@ +/*++ + +Copyright (c) 2006 - 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: + + CapsuleVendor.h + +Abstract: + + Capsule update Guid definitions + +--*/ + +#ifndef __EFI_CAPSULE_VENDOR_GUID_H__ +#define __EFI_CAPSULE_VENDOR_GUID_H__ + +// +// Note -- This guid is used as a vendor GUID (depending on implementation) +// for the capsule variable if the capsule pointer is passes through reset +// via a variable. +// +#define EFI_CAPSULE_VENDOR_GUID \ + { 0x711C703F, 0xC285, 0x4B10, { 0xA3, 0xB0, 0x36, 0xEC, 0xBD, 0x3C, 0x8B, 0xE2 } } + +extern EFI_GUID gEfiCapsuleVendorGuid; + +#endif // #ifndef _EFI_CAPSULE_VENDOR_GUID_H_ diff --git a/MdeModulePkg/Include/Guid/ConsoleInDevice.h b/MdeModulePkg/Include/Guid/ConsoleInDevice.h new file mode 100644 index 0000000000..85e487d0e1 --- /dev/null +++ b/MdeModulePkg/Include/Guid/ConsoleInDevice.h @@ -0,0 +1,29 @@ +/*++ + +Copyright (c) 2006 - 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: + + ConsoleInDevice.h + +Abstract: + + +--*/ + +#ifndef __CONSOLE_IN_DEVICE_H__ +#define __CONSOLE_IN_DEVICE_H__ + +#define EFI_CONSOLE_IN_DEVICE_GUID \ + { 0xd3b36f2b, 0xd551, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } } + +extern EFI_GUID gEfiConsoleInDeviceGuid; + +#endif diff --git a/MdeModulePkg/Include/Guid/ConsoleOutDevice.h b/MdeModulePkg/Include/Guid/ConsoleOutDevice.h new file mode 100644 index 0000000000..d2103c0e5d --- /dev/null +++ b/MdeModulePkg/Include/Guid/ConsoleOutDevice.h @@ -0,0 +1,29 @@ +/*++ + +Copyright (c) 2006 - 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: + + ConsoleOutDevice.h + +Abstract: + + +--*/ + +#ifndef __CONSOLE_OUT_DEVICE_H__ +#define __CONSOLE_OUT_DEVICE_H__ + +#define EFI_CONSOLE_OUT_DEVICE_GUID \ + { 0xd3b36f2c, 0xd551, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } } + +extern EFI_GUID gEfiConsoleOutDeviceGuid; + +#endif diff --git a/MdeModulePkg/Include/Guid/GenericPlatformVariable.h b/MdeModulePkg/Include/Guid/GenericPlatformVariable.h new file mode 100644 index 0000000000..595ef7830b --- /dev/null +++ b/MdeModulePkg/Include/Guid/GenericPlatformVariable.h @@ -0,0 +1,27 @@ +/*++ + +Copyright (c) 2006 - 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: + + GenericPlatformVariable.h + +Abstract: + + The variable space Guid to pair with a Unicode string name to tag an EFI variable. + +--*/ + +#ifndef __GENERIC_PLATFORM_VARIABLE_H__ +#define __GENERIC_PLATFORM_VARIABLE_H__ + +extern EFI_GUID gEfiGenericPlatformVariableGuid; + +#endif diff --git a/MdeModulePkg/Include/Guid/HotPlugDevice.h b/MdeModulePkg/Include/Guid/HotPlugDevice.h new file mode 100644 index 0000000000..b15dc89bbd --- /dev/null +++ b/MdeModulePkg/Include/Guid/HotPlugDevice.h @@ -0,0 +1,28 @@ +/*++ + +Copyright (c) 2006, Intel Corporation +All rights reserved. This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +Module Name: + + HotPlugDevice.h + +Abstract: + + +--*/ + +#ifndef __HOT_PLUG_DEVICE_H__ +#define __HOT_PLUG_DEVICE_H__ + +#define HOT_PLUG_DEVICE_GUID \ + { 0x220ac432, 0x1d43, 0x49e5, {0xa7, 0x4f, 0x4c, 0x9d, 0xa6, 0x7a, 0xd2, 0x3b } } + +extern EFI_GUID gEfiHotPlugDeviceGuid; +#endif diff --git a/MdeModulePkg/Include/Guid/MemoryTypeInformation.h b/MdeModulePkg/Include/Guid/MemoryTypeInformation.h new file mode 100644 index 0000000000..ed9270b09d --- /dev/null +++ b/MdeModulePkg/Include/Guid/MemoryTypeInformation.h @@ -0,0 +1,35 @@ +/*++ + +Copyright (c) 2006, Intel Corporation +All rights reserved. This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +Module Name: + MemoryTypeInformation.h + +Abstract: + GUID used for Memory Type Information entries in the HOB list. + +--*/ + +#ifndef __MEMORY_TYPE_INFORMATION_GUID_H__ +#define __MEMORY_TYPE_INFORMATION_GUID_H__ + +#define EFI_MEMORY_TYPE_INFORMATION_GUID \ + { 0x4c19049f,0x4137,0x4dd3, { 0x9c,0x10,0x8b,0x97,0xa8,0x3f,0xfd,0xfa } } + +#define EFI_MEMORY_TYPE_INFORMATION_VARIABLE_NAME L"MemoryTypeInformation" + +extern EFI_GUID gEfiMemoryTypeInformationGuid; + +typedef struct { + UINT32 Type; + UINT32 NumberOfPages; +} EFI_MEMORY_TYPE_INFORMATION; + +#endif diff --git a/MdeModulePkg/Include/Guid/PeiPerformanceHob.h b/MdeModulePkg/Include/Guid/PeiPerformanceHob.h new file mode 100644 index 0000000000..c3bfc1f77a --- /dev/null +++ b/MdeModulePkg/Include/Guid/PeiPerformanceHob.h @@ -0,0 +1,56 @@ +/*++ + +Copyright (c) 2006, Intel Corporation +All rights reserved. This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +Module Name: + + PeiPerformanceHob.h + +Abstract: + + GUIDs used for PEI Performance HOB data structures + +--*/ + +#ifndef __PEI_PERFORMANCE_HOB_H__ +#define __PEI_PERFORMANCE_HOB_H__ + +// +// This is the GUID of PEI performance HOB +// +#define PEI_PERFORMANCE_HOB_GUID \ + { 0xec4df5af, 0x4395, 0x4cc9, { 0x94, 0xde, 0x77, 0x50, 0x6d, 0x12, 0xc7, 0xb8 } } + +// +// PEI_PERFORMANCE_STRING_SIZE must be a multiple of 8. +// +#define PEI_PERFORMANCE_STRING_SIZE 8 +#define PEI_PERFORMANCE_STRING_LENGTH (PEI_PERFORMANCE_STRING_SIZE - 1) + +typedef struct { + EFI_PHYSICAL_ADDRESS Handle; + CHAR8 Token[PEI_PERFORMANCE_STRING_SIZE]; + CHAR8 Module[PEI_PERFORMANCE_STRING_SIZE]; + UINT64 StartTimeStamp; + UINT64 EndTimeStamp; +} PEI_PERFORMANCE_LOG_ENTRY; + +// +// The header must be aligned at 8 bytes. +// +typedef struct { + UINT32 NumberOfEntries; + UINT32 Reserved; +} PEI_PERFORMANCE_LOG_HEADER; + + +extern EFI_GUID gPeiPerformanceHobGuid; + +#endif diff --git a/MdeModulePkg/Include/Guid/PrimaryConsoleInDevice.h b/MdeModulePkg/Include/Guid/PrimaryConsoleInDevice.h new file mode 100644 index 0000000000..686ffa333c --- /dev/null +++ b/MdeModulePkg/Include/Guid/PrimaryConsoleInDevice.h @@ -0,0 +1,29 @@ +/*++ + +Copyright (c) 2006, Intel Corporation +All rights reserved. This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +Module Name: + + PrimaryConsoleInDevice.h + +Abstract: + + +--*/ + +#ifndef __PRIMARY_CONSOLE_IN_DEVICE_H__ +#define __PRIMARY_CONSOLE_IN_DEVICE_H__ + +#define EFI_PRIMARY_CONSOLE_IN_DEVICE_GUID \ + { 0xe451dcbe, 0x96a1, 0x4729, {0xa5, 0xcf, 0x6b, 0x9c, 0x2c, 0xff, 0x47, 0xfd } } + +extern EFI_GUID gEfiPrimaryConsoleInDeviceGuid; + +#endif diff --git a/MdeModulePkg/Include/Guid/PrimaryConsoleOutDevice.h b/MdeModulePkg/Include/Guid/PrimaryConsoleOutDevice.h new file mode 100644 index 0000000000..34195b5219 --- /dev/null +++ b/MdeModulePkg/Include/Guid/PrimaryConsoleOutDevice.h @@ -0,0 +1,28 @@ +/*++ + +Copyright (c) 2006, Intel Corporation +All rights reserved. This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +Module Name: + + PrimaryConsoleOutDevice.h + +Abstract: + +--*/ + +#ifndef __PRIMARY_CONSOLE_OUT_DEVICE_H__ +#define __PRIMARY_CONSOLE_OUT_DEVICE_H__ + +#define EFI_PRIMARY_CONSOLE_OUT_DEVICE_GUID \ + { 0x62bdf38a, 0xe3d5, 0x492c, {0x95, 0xc, 0x23, 0xa7, 0xf6, 0x6e, 0x67, 0x2e } } + +extern EFI_GUID gEfiPrimaryConsoleOutDeviceGuid; + +#endif diff --git a/MdeModulePkg/Include/Guid/PrimaryStandardErrorDevice.h b/MdeModulePkg/Include/Guid/PrimaryStandardErrorDevice.h new file mode 100644 index 0000000000..9523d97ac3 --- /dev/null +++ b/MdeModulePkg/Include/Guid/PrimaryStandardErrorDevice.h @@ -0,0 +1,28 @@ +/*++ + +Copyright (c) 2006, Intel Corporation +All rights reserved. This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +Module Name: + + PrimaryStandardErrorDevice.h + +Abstract: + +--*/ + +#ifndef __PRIMARY_STANDARD_ERROR_DEVICE_H__ +#define __PRIMARY_STANDARD_ERROR_DEVICE_H__ + +#define EFI_PRIMARY_STANDARD_ERROR_DEVICE_GUID \ + { 0x5a68191b, 0x9b97, 0x4752, {0x99, 0x46, 0xe3, 0x6a, 0x5d, 0xa9, 0x42, 0xb1 } } + +extern EFI_GUID gEfiPrimaryStandardErrorDeviceGuid; + +#endif diff --git a/MdeModulePkg/Include/Guid/StandardErrorDevice.h b/MdeModulePkg/Include/Guid/StandardErrorDevice.h new file mode 100644 index 0000000000..7806f55d3b --- /dev/null +++ b/MdeModulePkg/Include/Guid/StandardErrorDevice.h @@ -0,0 +1,29 @@ +/*++ + +Copyright (c) 2006, Intel Corporation +All rights reserved. This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +Module Name: + + StandardErrorDevice.h + +Abstract: + + +--*/ + +#ifndef __STANDARD_ERROR_DEVICE_H__ +#define __STANDARD_ERROR_DEVICE_H__ + +#define EFI_STANDARD_ERROR_DEVICE_GUID \ + { 0xd3b36f2d, 0xd551, 0x11d4, {0x9a, 0x46, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } } + +extern EFI_GUID gEfiStandardErrorDeviceGuid; + +#endif diff --git a/MdeModulePkg/Include/Guid/SystemNvDataGuid.h b/MdeModulePkg/Include/Guid/SystemNvDataGuid.h new file mode 100644 index 0000000000..946d4d8d03 --- /dev/null +++ b/MdeModulePkg/Include/Guid/SystemNvDataGuid.h @@ -0,0 +1,45 @@ +/*++ + +Copyright (c) 2006, Intel Corporation +All rights reserved. This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +Module Name: + + SystemNvDataGuid.h + +Abstract: + + GUIDs used for System Non Volatile HOB entries in the in the HOB list and FV Guids carrying + the System specific information. + +--*/ + +#ifndef __SYSTEM_NV_DATA_GUID_H__ +#define __SYSTEM_NV_DATA_GUID_H__ + +#define EFI_SYSTEM_NV_DATA_FV_GUID \ + {0xfff12b8d, 0x7696, 0x4c8b, {0xa9, 0x85, 0x27, 0x47, 0x7, 0x5b, 0x4f, 0x50} } + +#define EFI_SYSTEM_NV_DATA_HOB_GUID \ + {0xd6e5092d, 0xc7b2, 0x4872, {0xaf, 0x66, 0xfd, 0xc0, 0xe6, 0xf9, 0x5e, 0x78} } + +typedef struct { + EFI_GUID SystemNvDataHobGuid; + EFI_GUID SystemNvDataFvGuid; + EFI_LBA StartLba; + UINTN StartLbaOffset; + EFI_LBA EndLba; + UINTN EndLbaOffset; + UINT32 DataTypeSignature; +} NV_SYSTEM_DATA_GUID_TYPE; + +extern EFI_GUID gEfiSystemNvDataHobGuid; +extern EFI_GUID gEfiSystemNvDataFvGuid; + +#endif diff --git a/MdeModulePkg/Include/Ppi/BaseMemoryTest.h b/MdeModulePkg/Include/Ppi/BaseMemoryTest.h new file mode 100644 index 0000000000..aa9a8ba61a --- /dev/null +++ b/MdeModulePkg/Include/Ppi/BaseMemoryTest.h @@ -0,0 +1,56 @@ +/*++ + +Copyright (c) 2006 - 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: + + BaseMemoryTest.h + +Abstract: + + Pei memory test PPI as defined in Tiano + + Used to Pei memory test in PEI + +--*/ + +#ifndef __BASE_MEMORY_TEST_H__ +#define __BASE_MEMORY_TEST_H__ + +#define PEI_BASE_MEMORY_TEST_GUID \ + { 0xb6ec423c, 0x21d2, 0x490d, {0x85, 0xc6, 0xdd, 0x58, 0x64, 0xea, 0xa6, 0x74 } } + +typedef struct _PEI_BASE_MEMORY_TEST_PPI PEI_BASE_MEMORY_TEST_PPI; + +typedef enum { + Ignore, + Quick, + Sparse, + Extensive +} PEI_MEMORY_TEST_OP; + +typedef +EFI_STATUS +(EFIAPI *PEI_BASE_MEMORY_TEST) ( + IN EFI_PEI_SERVICES **PeiServices, + IN PEI_BASE_MEMORY_TEST_PPI * This, + IN EFI_PHYSICAL_ADDRESS BeginAddress, + IN UINT64 MemoryLength, + IN PEI_MEMORY_TEST_OP Operation, + OUT EFI_PHYSICAL_ADDRESS * ErrorAddress + ); + +struct _PEI_BASE_MEMORY_TEST_PPI { + PEI_BASE_MEMORY_TEST BaseMemoryTest; +}; + +extern EFI_GUID gPeiBaseMemoryTestPpiGuid; + +#endif diff --git a/MdeModulePkg/Include/Protocol/Capsule.h b/MdeModulePkg/Include/Protocol/Capsule.h new file mode 100644 index 0000000000..1af0b65f9d --- /dev/null +++ b/MdeModulePkg/Include/Protocol/Capsule.h @@ -0,0 +1,39 @@ +/*++ + +Copyright (c) 2006 - 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: + + Capsule.h + +Abstract: + + Capsule Architectural Protocol is newly added to produce UEFI2.0 capsule runtime services. + +--*/ + +#ifndef __ARCH_PROTOCOL_CAPSULE_ARCH_H__ +#define __ARCH_PROTOCOL_CAPSULE_ARCH_H__ + +// +// Global ID for the Capsule Architectural Protocol +// +#define EFI_CAPSULE_ARCH_PROTOCOL_GUID \ + { 0x5053697e, 0x2ebc, 0x4819, {0x90, 0xd9, 0x05, 0x80, 0xde, 0xee, 0x57, 0x54 }} + +extern EFI_GUID gEfiCapsuleArchProtocolGuid; + +typedef struct { + UINT32 CapsuleArrayNumber; + VOID* CapsulePtr[1]; +} EFI_CAPSULE_TABLE; + + +#endif diff --git a/MdeModulePkg/Include/Protocol/ConsoleControl.h b/MdeModulePkg/Include/Protocol/ConsoleControl.h new file mode 100644 index 0000000000..c894302c66 --- /dev/null +++ b/MdeModulePkg/Include/Protocol/ConsoleControl.h @@ -0,0 +1,121 @@ +/*++ + +Copyright (c) 2006, Intel Corporation +All rights reserved. This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +Module Name: + + ConsoleControl.h + +Abstract: + + Abstraction of a Text mode or UGA screen + +--*/ + +#ifndef __CONSOLE_CONTROL_H__ +#define __CONSOLE_CONTROL_H__ + +#define EFI_CONSOLE_CONTROL_PROTOCOL_GUID \ + { 0xf42f7782, 0x12e, 0x4c12, {0x99, 0x56, 0x49, 0xf9, 0x43, 0x4, 0xf7, 0x21 } } + +typedef struct _EFI_CONSOLE_CONTROL_PROTOCOL EFI_CONSOLE_CONTROL_PROTOCOL; + + +typedef enum { + EfiConsoleControlScreenText, + EfiConsoleControlScreenGraphics, + EfiConsoleControlScreenMaxValue +} EFI_CONSOLE_CONTROL_SCREEN_MODE; + + +typedef +EFI_STATUS +(EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_GET_MODE) ( + IN EFI_CONSOLE_CONTROL_PROTOCOL *This, + OUT EFI_CONSOLE_CONTROL_SCREEN_MODE *Mode, + OUT BOOLEAN *UgaExists, OPTIONAL + OUT BOOLEAN *StdInLocked OPTIONAL + ) +/*++ + + Routine Description: + Return the current video mode information. Also returns info about existence + of UGA Draw devices in system, and if the Std In device is locked. All the + arguments are optional and only returned if a non NULL pointer is passed in. + + Arguments: + This - Protocol instance pointer. + Mode - Are we in text of grahics mode. + UgaExists - TRUE if UGA Spliter has found a UGA device + StdInLocked - TRUE if StdIn device is keyboard locked + + Returns: + EFI_SUCCESS - Mode information returned. + +--*/ +; + + +typedef +EFI_STATUS +(EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_SET_MODE) ( + IN EFI_CONSOLE_CONTROL_PROTOCOL *This, + OUT EFI_CONSOLE_CONTROL_SCREEN_MODE Mode + ) +/*++ + + Routine Description: + Set the current mode to either text or graphics. Graphics is + for Quiet Boot. + + Arguments: + This - Protocol instance pointer. + Mode - Mode to set the + + Returns: + EFI_SUCCESS - Mode information returned. + +--*/ +; + + +typedef +EFI_STATUS +(EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_LOCK_STD_IN) ( + IN EFI_CONSOLE_CONTROL_PROTOCOL *This, + IN CHAR16 *Password + ) +/*++ + + Routine Description: + Lock Std In devices until Password is typed. + + Arguments: + This - Protocol instance pointer. + Password - Password needed to unlock screen. NULL means unlock keyboard + + Returns: + EFI_SUCCESS - Mode information returned. + EFI_DEVICE_ERROR - Std In not locked + +--*/ +; + + + +struct _EFI_CONSOLE_CONTROL_PROTOCOL { + EFI_CONSOLE_CONTROL_PROTOCOL_GET_MODE GetMode; + EFI_CONSOLE_CONTROL_PROTOCOL_SET_MODE SetMode; + EFI_CONSOLE_CONTROL_PROTOCOL_LOCK_STD_IN LockStdIn; +}; + +extern EFI_GUID gEfiConsoleControlProtocolGuid; + +#endif diff --git a/MdeModulePkg/Include/Protocol/DiskInfo.h b/MdeModulePkg/Include/Protocol/DiskInfo.h new file mode 100644 index 0000000000..374d41d995 --- /dev/null +++ b/MdeModulePkg/Include/Protocol/DiskInfo.h @@ -0,0 +1,179 @@ +/*++ + +Copyright (c) 2006, Intel Corporation +All rights reserved. This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +Module Name: + + DiskInfo.h + +Abstract: + + Disk Info protocol is used to export Inquiry Data for a drive. + Its needed to support low level formating of drives in a mannor + thats DOS compatible. + +--*/ + +#ifndef __DISK_INFO_H__ +#define __DISK_INFO_H__ + +#define EFI_DISK_INFO_PROTOCOL_GUID \ + { \ + 0xd432a67f, 0x14dc, 0x484b, {0xb3, 0xbb, 0x3f, 0x2, 0x91, 0x84, 0x93, 0x27 } \ + } + +// +// Forward reference for pure ANSI compatability +// +typedef struct _EFI_DISK_INFO_PROTOCOL EFI_DISK_INFO_PROTOCOL; + +typedef +EFI_STATUS +(EFIAPI *EFI_DISK_INFO_INQUIRY) ( + IN EFI_DISK_INFO_PROTOCOL * This, + IN OUT VOID *InquiryData, + IN OUT UINT32 *IntquiryDataSize + ) +/*++ + + Routine Description: + Return the results of the Inquiry command to a drive in InquiryData. + Data format of Inquiry data is defined by the Interface GUID. + + Arguments: + This - Protocol instance pointer. + InquiryData - Results of Inquiry command to device + InquiryDataSize - Size of InquiryData in bytes. + + Returns: + EFI_SUCCESS - InquiryData valid + EFI_NOT_FOUND - Device does not support this data class + EFI_DEVICE_ERROR - Error reading InquiryData from device + EFI_BUFFER_TOO_SMALL - IntquiryDataSize not big enough + +--*/ +; + +typedef +EFI_STATUS +(EFIAPI *EFI_DISK_INFO_IDENTIFY) ( + IN EFI_DISK_INFO_PROTOCOL * This, + IN OUT VOID *IdentifyData, + IN OUT UINT32 *IdentifyDataSize + ) +/*++ + + Routine Description: + Return the results of the Identify command to a drive in IdentifyData. + Data format of Identify data is defined by the Interface GUID. + + Arguments: + This - Protocol instance pointer. + IdentifyData - Results of Identify command to device + IdentifyDataSize - Size of IdentifyData in bytes. + + Returns: + EFI_SUCCESS - IdentifyData valid + EFI_NOT_FOUND - Device does not support this data class + EFI_DEVICE_ERROR - Error reading IdentifyData from device + EFI_BUFFER_TOO_SMALL - IdentifyDataSize not big enough + +--*/ +; + +typedef +EFI_STATUS +(EFIAPI *EFI_DISK_INFO_SENSE_DATA) ( + IN EFI_DISK_INFO_PROTOCOL * This, + IN OUT VOID *SenseData, + IN OUT UINT32 *SenseDataSize, + OUT UINT8 *SenseDataNumber + ) +/*++ + + Routine Description: + Return the results of the Request Sense command to a drive in SenseData. + Data format of Sense data is defined by the Interface GUID. + + Arguments: + This - Protocol instance pointer. + SenseData - Results of Request Sense command to device + SenseDataSize - Size of SenseData in bytes. + SenseDataNumber - Type of SenseData + + Returns: + EFI_SUCCESS - InquiryData valid + EFI_NOT_FOUND - Device does not support this data class + EFI_DEVICE_ERROR - Error reading InquiryData from device + EFI_BUFFER_TOO_SMALL - SenseDataSize not big enough + +--*/ +; + +typedef +EFI_STATUS +(EFIAPI *EFI_DISK_INFO_WHICH_IDE) ( + IN EFI_DISK_INFO_PROTOCOL * This, + OUT UINT32 *IdeChannel, + OUT UINT32 *IdeDevice + ) +/*++ + + Routine Description: + Return the results of the Request Sense command to a drive in SenseData. + Data format of Sense data is defined by the Interface GUID. + + Arguments: + This - Protocol instance pointer. + IdeChannel - Primary or Secondary + IdeDevice - Master or Slave + + Returns: + EFI_SUCCESS - IdeChannel and IdeDevice are valid + EFI_UNSUPPORTED - This is not an IDE device + +--*/ +; + +// +// GUIDs for EFI_DISK_INFO_PROTOCOL.Interface. Defines the format of the +// buffers returned by member functions +// +#define EFI_DISK_INFO_IDE_INTERFACE_GUID \ + { \ + 0x5e948fe3, 0x26d3, 0x42b5, {0xaf, 0x17, 0x61, 0x2, 0x87, 0x18, 0x8d, 0xec } \ + } +extern EFI_GUID gEfiDiskInfoIdeInterfaceGuid; + +#define EFI_DISK_INFO_SCSI_INTERFACE_GUID \ + { \ + 0x8f74baa, 0xea36, 0x41d9, {0x95, 0x21, 0x21, 0xa7, 0xf, 0x87, 0x80, 0xbc } \ + } +extern EFI_GUID gEfiDiskInfoScsiInterfaceGuid; + +#define EFI_DISK_INFO_USB_INTERFACE_GUID \ + { \ + 0xcb871572, 0xc11a, 0x47b5, {0xb4, 0x92, 0x67, 0x5e, 0xaf, 0xa7, 0x77, 0x27 } \ + } +extern EFI_GUID gEfiDiskInfoUsbInterfaceGuid; + +struct _EFI_DISK_INFO_PROTOCOL { + EFI_GUID Interface; + EFI_DISK_INFO_INQUIRY Inquiry; + EFI_DISK_INFO_IDENTIFY Identify; + EFI_DISK_INFO_SENSE_DATA SenseData; + EFI_DISK_INFO_WHICH_IDE WhichIde; +}; + +extern EFI_GUID gEfiDiskInfoProtocolGuid; + +#endif + + diff --git a/MdeModulePkg/Include/Protocol/FaultTolerantWriteLite.h b/MdeModulePkg/Include/Protocol/FaultTolerantWriteLite.h new file mode 100644 index 0000000000..d345b77a87 --- /dev/null +++ b/MdeModulePkg/Include/Protocol/FaultTolerantWriteLite.h @@ -0,0 +1,88 @@ +/*++ + +Copyright (c) 2006 - 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: + + FaultTolerantWriteLite.h + +Abstract: + + This is a simple fault tolerant write driver, based on PlatformFd library. + And it only supports write BufferSize <= SpareAreaLength. + +--*/ + +#ifndef __FW_FAULT_TOLERANT_WRITE_LITE_PROTOCOL_H__ +#define __FW_FAULT_TOLERANT_WRITE_LITE_PROTOCOL_H__ + +#define EFI_FTW_LITE_PROTOCOL_GUID \ +{ 0x3f557189, 0x8dae, 0x45ae, {0xa0, 0xb3, 0x2b, 0x99, 0xca, 0x7a, 0xa7, 0xa0 } } + +// +// Forward reference for pure ANSI compatability +// +typedef struct _EFI_FTW_LITE_PROTOCOL EFI_FTW_LITE_PROTOCOL; + +// +// Protocol API definitions +// + +typedef +EFI_STATUS +(EFIAPI * EFI_FTW_LITE_WRITE) ( + IN EFI_FTW_LITE_PROTOCOL *This, + IN EFI_HANDLE FvbHandle, + IN EFI_LBA Lba, + IN UINTN Offset, + IN UINTN *NumBytes, + IN VOID *Buffer + ); +/*++ + +Routine Description: + + Starts a target block update. This records information about the write + in fault tolerant storage and will complete the write in a recoverable + manner, ensuring at all times that either the original contents or + the modified contents are available. + +Arguments: + + This - Calling context + FvBlockHandle - The handle of FVB protocol that provides services for + reading, writing, and erasing the target block. + Lba - The logical block address of the target block. + Offset - The offset within the target block to place the data. + Length - The number of bytes to write to the target block. + Buffer - The data to write. + +Returns: + + EFI_SUCCESS - The function completed successfully + EFI_ABORTED - The function could not complete successfully. + EFI_BAD_BUFFER_SIZE - The write would span a block boundary, + which is not a valid action. + EFI_ACCESS_DENIED - No writes have been allocated. + EFI_NOT_READY - The last write has not been completed. + Restart () must be called to complete it. + +--*/ + +// +// Protocol declaration +// +struct _EFI_FTW_LITE_PROTOCOL { + EFI_FTW_LITE_WRITE Write; +}; + +extern EFI_GUID gEfiFaultTolerantWriteLiteProtocolGuid; + +#endif diff --git a/MdeModulePkg/Include/Protocol/FvbExtension.h b/MdeModulePkg/Include/Protocol/FvbExtension.h new file mode 100644 index 0000000000..8a85d3d905 --- /dev/null +++ b/MdeModulePkg/Include/Protocol/FvbExtension.h @@ -0,0 +1,53 @@ +/*++ + +Copyright (c) 2006 - 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: + + FvbExtension.h + +Abstract: + + FVB Extension protocol that extends the FVB Class in a component fashion. + +--*/ + +#ifndef __FVB_EXTENSION_H__ +#define __FVB_EXTENSION_H__ + +#define EFI_FVB_EXTENSION_PROTOCOL_GUID \ + {0x53a4c71b, 0xb581, 0x4170, {0x91, 0xb3, 0x8d, 0xb8, 0x7a, 0x4b, 0x5c, 0x46 } } + +typedef struct _EFI_FVB_EXTENSION_PROTOCOL EFI_FVB_EXTENSION_PROTOCOL; + +// +// FVB Extension Function Prototypes +// +typedef +EFI_STATUS +(EFIAPI * EFI_FV_ERASE_CUSTOM_BLOCK) ( + IN EFI_FVB_EXTENSION_PROTOCOL *This, + IN EFI_LBA StartLba, + IN UINTN OffsetStartLba, + IN EFI_LBA LastLba, + IN UINTN OffsetLastLba +); + +// +// IPMI TRANSPORT PROTOCOL +// +struct _EFI_FVB_EXTENSION_PROTOCOL { + EFI_FV_ERASE_CUSTOM_BLOCK EraseFvbCustomBlock; +}; + +extern EFI_GUID gEfiFvbExtensionProtocolGuid; + +#endif + diff --git a/MdeModulePkg/Include/Protocol/GenericMemoryTest.h b/MdeModulePkg/Include/Protocol/GenericMemoryTest.h new file mode 100644 index 0000000000..8f566d3763 --- /dev/null +++ b/MdeModulePkg/Include/Protocol/GenericMemoryTest.h @@ -0,0 +1,156 @@ +/*++ + +Copyright (c) 2006, Intel Corporation +All rights reserved. This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +Module Name: + + GenericMemoryTest.h + +Abstract: + + The EFI generic memory test protocol + For more information please look at EfiMemoryTest.doc + +--*/ + +#ifndef __GENERIC_MEMORY_TEST_H__ +#define __GENERIC_MEMORY_TEST_H__ + +#define EFI_GENERIC_MEMORY_TEST_PROTOCOL_GUID \ + { 0x309de7f1, 0x7f5e, 0x4ace, {0xb4, 0x9c, 0x53, 0x1b, 0xe5, 0xaa, 0x95, 0xef} } + +typedef struct _EFI_GENERIC_MEMORY_TEST_PROTOCOL EFI_GENERIC_MEMORY_TEST_PROTOCOL; + +typedef enum { + IGNORE, + QUICK, + SPARSE, + EXTENSIVE, + MAXLEVEL +} EXTENDMEM_COVERAGE_LEVEL; + +typedef +EFI_STATUS +(EFIAPI *EFI_MEMORY_TEST_INIT) ( + IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This, + IN EXTENDMEM_COVERAGE_LEVEL Level, + OUT BOOLEAN *RequireSoftECCInit + ) +/*++ + + Routine Description: + Initialize the generic memory test. + + Arguments: + This - Protocol instance pointer. + Level - The coverage level of the memory test. + RequireSoftECCInit - Indicate if the memory need software ECC init. + + Returns: + EFI_SUCCESS - The generic memory test initialized correctly. + EFI_NO_MEDIA - There is not any non-tested memory found, in this + function if not any non-tesed memory found means + that the memory test driver have not detect any + non-tested extended memory of current system. + +--*/ +; + +typedef +EFI_STATUS +(EFIAPI *EFI_PERFORM_MEMORY_TEST) ( + IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This, + OUT UINT64 *TestedMemorySize, + OUT UINT64 *TotalMemorySize, + OUT BOOLEAN *ErrorOut, + IN BOOLEAN IfTestAbort + ) +/*++ + + Routine Description: + Perform the memory test. + + Arguments: + This - Protocol instance pointer. + TestedMemorySize - Return the tested extended memory size. + TotalMemorySize - Return the whole system physical memory size, this + value may be changed if in some case some error + DIMMs be disabled. + ErrorOut - Any time the memory error occurs, this will be TRUE. + IfTestAbort - Indicate if the user press "ESC" to skip the memory + test. + + Returns: + EFI_SUCCESS - One block of memory test ok, the block size is hide + internally. + EFI_NOT_FOUND - Indicate all the non-tested memory blocks have + already go through. + +--*/ +; + +typedef +EFI_STATUS +(EFIAPI *EFI_MEMORY_TEST_FINISHED) ( + IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This + ) +/*++ + + Routine Description: + The memory test finished. + + Arguments: + This - Protocol instance pointer. + + Returns: + EFI_SUCCESS - Successful free all the generic memory test driver + allocated resource and notify to platform memory + test driver that memory test finished. + +--*/ +; + +typedef +EFI_STATUS +(EFIAPI *EFI_MEMORY_TEST_COMPATIBLE_RANGE) ( + IN EFI_GENERIC_MEMORY_TEST_PROTOCOL *This, + IN EFI_PHYSICAL_ADDRESS StartAddress, + IN UINT64 Length + ) +/*++ + + Routine Description: + Provide capability to test compatible range which used by some sepcial + driver required using memory range before BDS perform memory test. + + Arguments: + This - Protocol instance pointer. + StartAddress - The start address of the memory range. + Length - The memory range's length. + + Return: + EFI_SUCCESS - The compatible memory range pass the memory test. + EFI_DEVICE_ERROR - The compatible memory range test find memory error + and also return return the error address. + +--*/ +; + +struct _EFI_GENERIC_MEMORY_TEST_PROTOCOL { + EFI_MEMORY_TEST_INIT MemoryTestInit; + EFI_PERFORM_MEMORY_TEST PerformMemoryTest; + EFI_MEMORY_TEST_FINISHED Finished; + EFI_MEMORY_TEST_COMPATIBLE_RANGE CompatibleRangeTest; +}; + +extern EFI_GUID gEfiGenericMemTestProtocolGuid; + +#endif + diff --git a/MdeModulePkg/Include/Protocol/OEMBadging.h b/MdeModulePkg/Include/Protocol/OEMBadging.h new file mode 100644 index 0000000000..ec63d00345 --- /dev/null +++ b/MdeModulePkg/Include/Protocol/OEMBadging.h @@ -0,0 +1,79 @@ +/*++ + +Copyright (c) 2006 - 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: + + EfiOEMBadging.h + +Abstract: + + EFI OEM Badging Protocol definition header file + +Revision History + +--*/ + +#ifndef __EFI_OEM_BADGING_H__ +#define __EFI_OEM_BADGING_H__ + +// +// GUID for EFI OEM Badging Protocol +// +#define EFI_OEM_BADGING_PROTOCOL_GUID \ + { 0x170e13c0, 0xbf1b, 0x4218, {0x87, 0x1d, 0x2a, 0xbd, 0xc6, 0xf8, 0x87, 0xbc } } + + +typedef struct _EFI_OEM_BADGING_PROTOCOL EFI_OEM_BADGING_PROTOCOL; + +typedef enum { + EfiBadgingFormatBMP, + EfiBadgingFormatJPEG, + EfiBadgingFormatTIFF, + EfiBadgingFormatGIF, + EfiBadgingFormatUnknown +} EFI_BADGING_FORMAT; + +typedef enum { + EfiBadgingDisplayAttributeLeftTop, + EfiBadgingDisplayAttributeCenterTop, + EfiBadgingDisplayAttributeRightTop, + EfiBadgingDisplayAttributeCenterRight, + EfiBadgingDisplayAttributeRightBottom, + EfiBadgingDisplayAttributeCenterBottom, + EfiBadgingDisplayAttributeLeftBottom, + EfiBadgingDisplayAttributeCenterLeft, + EfiBadgingDisplayAttributeCenter, + EfiBadgingDisplayAttributeCustomized +} EFI_BADGING_DISPLAY_ATTRIBUTE; + + +typedef +EFI_STATUS +(EFIAPI *EFI_BADGING_GET_IMAGE) ( + IN EFI_OEM_BADGING_PROTOCOL *This, + IN OUT UINT32 *Instance, + OUT EFI_BADGING_FORMAT *Format, + OUT UINT8 **ImageData, + OUT UINTN *ImageSize, + OUT EFI_BADGING_DISPLAY_ATTRIBUTE *Attribute, + OUT UINTN *CoordinateX, + OUT UINTN *CoordinateY +); + + +struct _EFI_OEM_BADGING_PROTOCOL { + EFI_BADGING_GET_IMAGE GetImage; +}; + + +extern EFI_GUID gEfiOEMBadgingProtocolGuid; + +#endif diff --git a/MdeModulePkg/Include/Protocol/Performance.h b/MdeModulePkg/Include/Protocol/Performance.h new file mode 100644 index 0000000000..84e1cca553 --- /dev/null +++ b/MdeModulePkg/Include/Protocol/Performance.h @@ -0,0 +1,166 @@ +/*++ + +Copyright (c) 2006 - 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: + + Performance.h + +Abstract: + + +--*/ + +#ifndef __PERFORMANCE_H__ +#define __PERFORMANCE_H__ + +#define PERFORMANCE_PROTOCOL_GUID \ + { 0x76b6bdfa, 0x2acd, 0x4462, {0x9E, 0x3F, 0xcb, 0x58, 0xC9, 0x69, 0xd9, 0x37 } } + +// +// Forward reference for pure ANSI compatability +// +typedef struct _PERFORMANCE_PROTOCOL PERFORMANCE_PROTOCOL; + +#define DXE_TOK "DXE" +#define SHELL_TOK "SHELL" +#define PEI_TOK "PEI" +#define BDS_TOK "BDS" +#define DRIVERBINDING_START_TOK "DriverBinding:Start" +#define DRIVERBINDING_SUPPORT_TOK "DriverBinding:Support" +#define START_IMAGE_TOK "StartImage" +#define LOAD_IMAGE_TOK "LoadImage" + +// +// DXE_PERFORMANCE_STRING_SIZE must be a multiple of 8. +// +#define DXE_PERFORMANCE_STRING_SIZE 32 +#define DXE_PERFORMANCE_STRING_LENGTH (DXE_PERFORMANCE_STRING_SIZE - 1) + +// +// The default guage entries number for DXE phase. +// +#define INIT_DXE_GAUGE_DATA_ENTRIES 800 + +typedef struct { + EFI_PHYSICAL_ADDRESS Handle; + CHAR8 Token[DXE_PERFORMANCE_STRING_SIZE]; + CHAR8 Module[DXE_PERFORMANCE_STRING_SIZE]; + UINT64 StartTimeStamp; + UINT64 EndTimeStamp; +} GAUGE_DATA_ENTRY; + +// +// The header must be aligned at 8 bytes +// +typedef struct { + UINT32 NumberOfEntries; + UINT32 Reserved; +} GAUGE_DATA_HEADER; + +/** + Adds a record at the end of the performance measurement log + that records the start time of a performance measurement. + + Adds a record to the end of the performance measurement log + that contains the Handle, Token, and Module. + The end time of the new record must be set to zero. + If TimeStamp is not zero, then TimeStamp is used to fill in the start time in the record. + If TimeStamp is zero, the start time in the record is filled in with the value + read from the current time stamp. + + @param Handle Pointer to environment specific context used + to identify the component being measured. + @param Token Pointer to a Null-terminated ASCII string + that identifies the component being measured. + @param Module Pointer to a Null-terminated ASCII string + that identifies the module being measured. + @param TimeStamp 64-bit time stamp. + + @retval EFI_SUCCESS The data was read correctly from the device. + @retval EFI_OUT_OF_RESOURCES There are not enough resources to record the measurement. + +**/ +typedef +EFI_STATUS +(EFIAPI * PERFORMANCE_START_GAUGE) ( + IN CONST VOID *Handle, OPTIONAL + IN CONST CHAR8 *Token, OPTIONAL + IN CONST CHAR8 *Module, OPTIONAL + IN UINT64 TimeStamp + ); + +/** + Searches the performance measurement log from the beginning of the log + for the first matching record that contains a zero end time and fills in a valid end time. + + Searches the performance measurement log from the beginning of the log + for the first record that matches Handle, Token, and Module and has an end time value of zero. + If the record can not be found then return EFI_NOT_FOUND. + If the record is found and TimeStamp is not zero, + then the end time in the record is filled in with the value specified by TimeStamp. + If the record is found and TimeStamp is zero, then the end time in the matching record + is filled in with the current time stamp value. + + @param Handle Pointer to environment specific context used + to identify the component being measured. + @param Token Pointer to a Null-terminated ASCII string + that identifies the component being measured. + @param Module Pointer to a Null-terminated ASCII string + that identifies the module being measured. + @param TimeStamp 64-bit time stamp. + + @retval EFI_SUCCESS The end of the measurement was recorded. + @retval EFI_NOT_FOUND The specified measurement record could not be found. + +**/ +typedef +EFI_STATUS +(EFIAPI * PERFORMANCE_END_GAUGE) ( + IN CONST VOID *Handle, OPTIONAL + IN CONST CHAR8 *Token, OPTIONAL + IN CONST CHAR8 *Module, OPTIONAL + IN UINT64 TimeStamp + ); + +/** + Retrieves a previously logged performance measurement. + + Retrieves the performance log entry from the performance log specified by LogEntryKey. + If it stands for a valid entry, then EFI_SUCCESS is returned and + GaugeDataEntry stores the pointer to that entry. + + @param LogEntryKey The key for the previous performance measurement log entry. + If 0, then the first performance measurement log entry is retrieved. + @param GaugeDataEntry The indirect pointer to the gauge data entry specified by LogEntryKey + if the retrieval is successful. + + @retval EFI_SUCCESS The GuageDataEntry is successfuly found based on LogEntryKey. + @retval EFI_NOT_FOUND The LogEntryKey is the last entry (equals to the total entry number). + @retval EFI_INVALIDE_PARAMETER The LogEntryKey is not a valid entry (greater than the total entry number). + @retval EFI_INVALIDE_PARAMETER GaugeDataEntry is NULL. + +**/ +typedef +EFI_STATUS +(EFIAPI * PERFORMANCE_GET_GAUGE) ( + IN UINTN LogEntryKey, + OUT GAUGE_DATA_ENTRY **GaugeDataEntry + ); + +struct _PERFORMANCE_PROTOCOL { + PERFORMANCE_START_GAUGE StartGauge; + PERFORMANCE_END_GAUGE EndGauge; + PERFORMANCE_GET_GAUGE GetGauge; +}; + +extern EFI_GUID gPerformanceProtocolGuid; + +#endif diff --git a/MdeModulePkg/Include/Protocol/Print.h b/MdeModulePkg/Include/Protocol/Print.h new file mode 100644 index 0000000000..c381295f31 --- /dev/null +++ b/MdeModulePkg/Include/Protocol/Print.h @@ -0,0 +1,50 @@ +/*++ + +Copyright (c) 2006 - 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: + + Print.h + +Abstract: + + This file defines the Print protocol + +--*/ + +#ifndef __PPRINT_H__ +#define __PPRINT_H__ + +#define EFI_PRINT_PROTOCOL_GUID \ + { 0xdf2d868e, 0x32fc, 0x4cf0, {0x8e, 0x6b, 0xff, 0xd9, 0x5d, 0x13, 0x43, 0xd0 } } + +// +// Forward reference for pure ANSI compatability +// +typedef struct _EFI_PRINT_PROTOCOL EFI_PRINT_PROTOCOL; + + +typedef +UINTN +(EFIAPI *EFI_VSPRINT) ( + OUT CHAR16 *StartOfBuffer, + IN UINTN BufferSize, + IN CONST CHAR16 *FormatString, + IN VA_LIST Marker + ); + +struct _EFI_PRINT_PROTOCOL { + EFI_VSPRINT VSPrint; +}; + + +extern EFI_GUID gEfiPrintProtocolGuid; + +#endif diff --git a/MdeModulePkg/Include/Protocol/ScsiIo.h b/MdeModulePkg/Include/Protocol/ScsiIo.h new file mode 100644 index 0000000000..4e3a170de0 --- /dev/null +++ b/MdeModulePkg/Include/Protocol/ScsiIo.h @@ -0,0 +1,241 @@ +/*++ + +Copyright (c) 2006, Intel Corporation +All rights reserved. This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +Module Name: + + ScsiIo.h + +Abstract: + + SCSI I/O protocol. + +--*/ + +#ifndef __SCSI_IO_H__ +#define __SCSI_IO_H__ + +#define EFI_SCSI_IO_PROTOCOL_GUID \ + { 0x403cd195, 0xf233, 0x48ec, {0x84, 0x55, 0xb2, 0xe5, 0x2f, 0x1d, 0x9e, 0x2 } } + +// +// Forward reference for pure ANSI compatability +// +typedef struct _EFI_SCSI_IO_PROTOCOL EFI_SCSI_IO_PROTOCOL; + +// +// SCSI Host Adapter Status definition +// +#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_OK 0x00 +#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_TIMEOUT_COMMAND 0x09 // timeout when processing the command +#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_TIMEOUT 0x0b // timeout when waiting for the command processing +#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_MESSAGE_REJECT 0x0d // a message reject was received when processing command +#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_BUS_RESET 0x0e // a bus reset was detected +#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_PARITY_ERROR 0x0f +#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_REQUEST_SENSE_FAILED 0x10 // the adapter failed in issuing request sense command +#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_SELECTION_TIMEOUT 0x11 // selection timeout +#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_DATA_OVERRUN_UNDERRUN 0x12 // data overrun or data underrun +#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_BUS_FREE 0x13 // Unexepected bus free +#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_PHASE_ERROR 0x14 // Target bus phase sequence failure +#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_OTHER 0x7f + + +// +// SCSI Target Status definition +// +#define EFI_SCSI_IO_STATUS_TARGET_GOOD 0x00 +#define EFI_SCSI_IO_STATUS_TARGET_CHECK_CONDITION 0x02 // check condition +#define EFI_SCSI_IO_STATUS_TARGET_CONDITION_MET 0x04 // condition met +#define EFI_SCSI_IO_STATUS_TARGET_BUSY 0x08 // busy +#define EFI_SCSI_IO_STATUS_TARGET_INTERMEDIATE 0x10 // intermediate +#define EFI_SCSI_IO_STATUS_TARGET_INTERMEDIATE_CONDITION_MET 0x14 // intermediate-condition met +#define EFI_SCSI_IO_STATUS_TARGET_RESERVATION_CONFLICT 0x18 // reservation conflict +#define EFI_SCSI_IO_STATUS_TARGET_COMMOND_TERMINATED 0x22 // command terminated +#define EFI_SCSI_IO_STATUS_TARGET_QUEUE_FULL 0x28 // queue full + +typedef struct { + UINT64 Timeout; + VOID *DataBuffer; + VOID *SenseData; + VOID *Cdb; + UINT32 TransferLength; + UINT8 CdbLength; + UINT8 DataDirection; + UINT8 HostAdapterStatus; + UINT8 TargetStatus; + UINT8 SenseDataLength; +}EFI_SCSI_IO_SCSI_REQUEST_PACKET; + +typedef +EFI_STATUS +(EFIAPI *EFI_SCSI_IO_PROTOCOL_GET_DEVICE_TYPE) ( + IN EFI_SCSI_IO_PROTOCOL *This, + OUT UINT8 *DeviceType + ) +/*++ + + Routine Description: + Retrieves the device type information of the SCSI Controller. + + Arguments: + This - Protocol instance pointer. + DeviceType - A pointer to the device type information + retrieved from the SCSI Controller. + + Returns: + EFI_SUCCESS - Retrieves the device type information successfully. + EFI_INVALID_PARAMETER - The DeviceType is NULL. +--*/ +; + +typedef +EFI_STATUS +(EFIAPI *EFI_SCSI_IO_PROTOCOL_GET_DEVICE_LOCATION) ( + IN EFI_SCSI_IO_PROTOCOL *This, + OUT UINT32 *Target, + OUT UINT64 *Lun + ) +/*++ + Routine Description: + Retrieves the device location in the SCSI channel. + + Arguments: + This - Protocol instance pointer. + Target - A pointer to the Target ID of a SCSI device + on the SCSI channel. + Lun - A pointer to the LUN of the SCSI device on + the SCSI channel. + + Returns: + EFI_SUCCESS - Retrieves the device location successfully. + EFI_INVALID_PARAMETER - The Target or Lun is NULL. +--*/ +; + +typedef +EFI_STATUS +(EFIAPI *EFI_SCSI_IO_PROTOCOL_RESET_BUS) ( + IN EFI_SCSI_IO_PROTOCOL *This + ) +/*++ + + Routine Description: + Resets the SCSI Bus that the SCSI Controller is attached to. + + Arguments: + This - Protocol instance pointer. + + Returns: + EFI_SUCCESS - The SCSI bus is reset successfully. + EFI_DEVICE_ERROR - Errors encountered when resetting the SCSI bus. + EFI_UNSUPPORTED - The bus reset operation is not supported by the + SCSI Host Controller. + EFI_TIMEOUT - A timeout occurred while attempting to reset + the SCSI bus. +--*/ +; + +typedef +EFI_STATUS +(EFIAPI *EFI_SCSI_IO_PROTOCOL_RESET_DEVICE) ( + IN EFI_SCSI_IO_PROTOCOL *This + ) +/*++ + + Routine Description: + Resets the SCSI Controller that the device handle specifies. + + Arguments: + This - Protocol instance pointer. + + + Returns: + EFI_SUCCESS - Reset the SCSI controller successfully. + EFI_DEVICE_ERROR - Errors are encountered when resetting the + SCSI Controller. + EFI_UNSUPPORTED - The SCSI bus does not support a device + reset operation. + EFI_TIMEOUT - A timeout occurred while attempting to + reset the SCSI Controller. +--*/ +; + + +typedef +EFI_STATUS +(EFIAPI *EFI_SCSI_IO_PROTOCOL_EXEC_SCSI_CMD) ( + IN EFI_SCSI_IO_PROTOCOL *This, + IN OUT EFI_SCSI_IO_SCSI_REQUEST_PACKET *Packet, + IN EFI_EVENT Event OPTIONAL + ) +/*++ + + Routine Description: + Sends a SCSI Request Packet to the SCSI Controller for execution. + + Arguments: + This - Protocol instance pointer. + Packet - The SCSI request packet to send to the SCSI + Controller specified by the device handle. + Event - If the SCSI bus where the SCSI device is attached + does not support non-blocking I/O, then Event is + ignored, and blocking I/O is performed. + If Event is NULL, then blocking I/O is performed. + If Event is not NULL and non-blocking I/O is + supported, then non-blocking I/O is performed, + and Event will be signaled when the SCSI Request + Packet completes. + Returns: + EFI_SUCCESS - The SCSI Request Packet was sent by the host + successfully, and TransferLength bytes were + transferred to/from DataBuffer.See + HostAdapterStatus, TargetStatus, + SenseDataLength, and SenseData in that order + for additional status information. + EFI_WARN_BUFFER_TOO_SMALL - The SCSI Request Packet was executed, + but the entire DataBuffer could not be transferred. + The actual number of bytes transferred is returned + in TransferLength. See HostAdapterStatus, + TargetStatus, SenseDataLength, and SenseData in + that order for additional status information. + EFI_NOT_READY - The SCSI Request Packet could not be sent because + there are too many SCSI Command Packets already + queued.The caller may retry again later. + EFI_DEVICE_ERROR - A device error occurred while attempting to send + the SCSI Request Packet. See HostAdapterStatus, + TargetStatus, SenseDataLength, and SenseData in + that order for additional status information. + EFI_INVALID_PARAMETER - The contents of CommandPacket are invalid. + The SCSI Request Packet was not sent, so no + additional status information is available. + EFI_UNSUPPORTED - The command described by the SCSI Request Packet + is not supported by the SCSI initiator(i.e., SCSI + Host Controller). The SCSI Request Packet was not + sent, so no additional status information is + available. + EFI_TIMEOUT - A timeout occurred while waiting for the SCSI + Request Packet to execute. See HostAdapterStatus, + TargetStatus, SenseDataLength, and SenseData in + that order for additional status information. +--*/ +; + +struct _EFI_SCSI_IO_PROTOCOL { + EFI_SCSI_IO_PROTOCOL_GET_DEVICE_TYPE GetDeviceType; + EFI_SCSI_IO_PROTOCOL_GET_DEVICE_LOCATION GetDeviceLocation; + EFI_SCSI_IO_PROTOCOL_RESET_BUS ResetBus; + EFI_SCSI_IO_PROTOCOL_RESET_DEVICE ResetDevice; + EFI_SCSI_IO_PROTOCOL_EXEC_SCSI_CMD ExecuteSCSICommand; +}; + +extern EFI_GUID gEfiScsiIoProtocolGuid; + +#endif + diff --git a/MdeModulePkg/Include/Protocol/usbatapi.h b/MdeModulePkg/Include/Protocol/usbatapi.h new file mode 100644 index 0000000000..daa05293be --- /dev/null +++ b/MdeModulePkg/Include/Protocol/usbatapi.h @@ -0,0 +1,83 @@ +/*++ + +Copyright (c) 2006 - 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: + + UsbAtapi.h + +Abstract: + + EFI Atapi Protocol definition. + +Revision History + +--*/ + +#ifndef __EFI_USB_ATAPI_H__ +#define __EFI_USB_ATAPI_H__ + +// +// Transfer protocol types +// +#define BOT 0x50 +#define CBI0 0x00 +#define CBI1 0x01 + +// +// SubClass Code (defines command set) +// +#define EFI_USB_SUBCLASS_RBC 0x01 +#define EFI_USB_SUBCLASS_ATAPI 0x02 +#define EFI_USB_SUBCLASS_QIC_157 0x03 +#define EFI_USB_SUBCLASS_UFI 0x04 +#define EFI_USB_SUBCLASS_SFF_8070i 0x05 +#define EFI_USB_SUBCLASS_SCSI 0x06 +#define EFI_USB_SUBCLASS_RESERVED_LOW 0x07 +#define EFI_USB_SUBCLASS_RESERVED_HIGH 0xff +// +// Global GUID for transfer protocol interface +// +#define EFI_USB_ATAPI_PROTOCOL_GUID \ + { 0x2B2F68DA, 0x0CD2, 0x44cf, {0x8E, 0x8B, 0xBB, 0xA2, 0x0B, 0x1B, 0x5B, 0x75 } } + +typedef struct _EFI_USB_ATAPI_PROTOCOL EFI_USB_ATAPI_PROTOCOL; + +typedef +EFI_STATUS +(EFIAPI *EFI_USB_ATAPI_PACKET_CMD) ( + IN EFI_USB_ATAPI_PROTOCOL *This, + IN VOID *Command, + IN UINT8 CommandSize, + IN VOID *DataBuffer, + IN UINT32 BufferLength, + IN EFI_USB_DATA_DIRECTION Direction, + IN UINT16 TimeOutInMilliSeconds +); + +typedef +EFI_STATUS +(EFIAPI *EFI_USB_MASS_STORAGE_RESET) ( + IN EFI_USB_ATAPI_PROTOCOL *This, + IN BOOLEAN ExtendedVerification +); + +// +// Protocol Interface Structure +// +struct _EFI_USB_ATAPI_PROTOCOL { + EFI_USB_ATAPI_PACKET_CMD UsbAtapiPacketCmd; + EFI_USB_MASS_STORAGE_RESET UsbAtapiReset; + UINT32 CommandProtocol; +}; + +extern EFI_GUID gEfiUsbAtapiProtocolGuid; + +#endif diff --git a/MdeModulePkg/MdeModulePkg.dec b/MdeModulePkg/MdeModulePkg.dec index 31fe01a30e..bf790be59d 100644 --- a/MdeModulePkg/MdeModulePkg.dec +++ b/MdeModulePkg/MdeModulePkg.dec @@ -1,15 +1,17 @@ #/** @file # Mde Module Package Reference Implementations # -# This Module provides standard reference information for EFI/PI implementations. +# This module provides headers and libraries that conform to EFI/PI Industry standards. # 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. +# 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. # #**/ @@ -30,43 +32,70 @@ ################################################################################ # -# Include Section - list of Include Paths that are provided by this package. -# Comments are used for Keywords and Module Types. -# -# Supported Module Types: -# SEC PEI_CORE PEIM DXE_CORE DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SMM_DRIVER DXE_SAL_DRIVER UEFI_DRIVER +# Global Guid Definition section - list of Global Guid C Name Data Structures +# that are provided by this package. # ################################################################################ -[Includes.common] +[Guids.common] + gEfiGenericPlatformVariableGuid = { 0x59d1c24f, 0x50f1, 0x401a, { 0xb1, 0x01, 0xf3, 0x3e, 0x0d, 0xae, 0xd4, 0x43 }} + gPeiPerformanceHobGuid = { 0xEC4DF5AF, 0x4395, 0x4CC9, { 0x94, 0xDE, 0x77, 0x50, 0x6D, 0x12, 0xC7, 0xB8 }} + gEfiCapsuleVendorGuid = { 0x711C703F, 0xC285, 0x4B10, { 0xA3, 0xB0, 0x36, 0xEC, 0xBD, 0x3C, 0x8B, 0xE2 }} + gEfiPciHotplugDeviceGuid = { 0x0B280816, 0x52E7, 0x4E51, { 0xAA, 0x57, 0x11, 0xBD, 0x41, 0xCB, 0xEF, 0xC3 }} + gEfiBootStateGuid = { 0x60B5E939, 0x0FCF, 0x4227, { 0xBA, 0x83, 0x6B, 0xBE, 0xD4, 0x5B, 0xC0, 0xE3 }} + gEfiDefaultBmpLogoGuid = { 0x7BB28B99, 0x61BB, 0x11D5, { 0x9A, 0x5D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }} + gEfiPrimaryConsoleOutDeviceGuid = { 0x62BDF38A, 0xE3D5, 0x492C, { 0x95, 0x0C, 0x23, 0xA7, 0xF6, 0x6E, 0x67, 0x2E }} + gEfiPrimaryConsoleInDeviceGuid = { 0xE451DCBE, 0x96A1, 0x4729, { 0xA5, 0xCF, 0x6B, 0x9C, 0x2C, 0xFF, 0x47, 0xFD }} + gEfiPrimaryStandardErrorDeviceGuid = { 0x5A68191B, 0x9B97, 0x4752, { 0x99, 0x46, 0xE3, 0x6A, 0x5D, 0xA9, 0x42, 0xB1 }} + gEfiHotPlugDeviceGuid = { 0x220AC432, 0x1D43, 0x49E5, { 0xA7, 0x4F, 0x4C, 0x9D, 0xA6, 0x7A, 0xD2, 0x3B }} + gEfiStandardErrorDeviceGuid = { 0xD3B36F2D, 0xD551, 0x11D4, { 0x9A, 0x46, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }} + gEfiConsoleOutDeviceGuid = { 0xD3B36F2C, 0xD551, 0x11D4, { 0x9A, 0x46, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }} + gEfiConsoleInDeviceGuid = { 0xD3B36F2B, 0xD551, 0x11D4, { 0x9A, 0x46, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }} + gEfiAlternateFvBlockGuid = { 0xF496922D, 0x172F, 0x4BBC, { 0xA1, 0xEB, 0x0E, 0xEB, 0x94, 0x9C, 0x34, 0x86 }} + gEfiDiskInfoUsbInterfaceGuid = { 0xCB871572, 0xC11A, 0x47B5, { 0xB4, 0x92, 0x67, 0x5E, 0xAF, 0xA7, 0x77, 0x27 }} + gEfiDiskInfoScsiInterfaceGuid = { 0x08F74BAA, 0xEA36, 0x41D9, { 0x95, 0x21, 0x21, 0xA7, 0x0F, 0x87, 0x80, 0xBC }} + gEfiDiskInfoIdeInterfaceGuid = { 0x5E948FE3, 0x26D3, 0x42B5, { 0xAF, 0x17, 0x61, 0x02, 0x87, 0x18, 0x8D, 0xEC }} + gEfiSystemNvDataFvGuid = { 0xFFF12B8D, 0x7696, 0x4C8B, { 0xA9, 0x85, 0x27, 0x47, 0x07, 0x5B, 0x4F, 0x50 }} + gEfiSystemNvDataHobGuid = { 0xD6E5092D, 0xC7B2, 0x4872, { 0xAF, 0x66, 0xFD, 0xC0, 0xE6, 0xF9, 0x5E, 0x78 }} + gPcdPeiCallbackFnTableHobGuid = { 0xC625F4B2, 0xEA09, 0x4675, { 0x82, 0xD7, 0xBA, 0x36, 0x82, 0x15, 0x7A, 0x14 }} + gPcdDataBaseHobGuid = { 0xEA296D92, 0x0B69, 0x423C, { 0x8C, 0x28, 0x33, 0xB4, 0xE0, 0xA9, 0x12, 0x68 }} + gEfiMdePkgTokenSpaceGuid = { 0xA1AFF049, 0xFDEB, 0x442a, { 0xB3, 0x20, 0x13, 0xAB, 0x4C, 0xB7, 0x2B, 0xBC }} + ################################################################################ # -# Library Class Header section - list of Library Class header files that are -# provided by this package. +# Global Protocols Definition section - list of Global Protocols C Name Data +# Structures that are provided by this package. # ################################################################################ -[LibraryClasses.common] +[Protocols.common] + gEfiScsiIoProtocolGuid = { 0x403CD195, 0xF233, 0x48EC, { 0x84, 0x55, 0xB2, 0xE5, 0x2F, 0x1D, 0x9E, 0x02 }} + gPerformanceProtocolGuid = { 0x76B6BDFA, 0x2ACD, 0x4462, { 0x9E, 0x3F, 0xCB, 0x58, 0xC9, 0x69, 0xD9, 0x37 }} + gEfiUsbAtapiProtocolGuid = { 0x2B2F68DA, 0x0CD2, 0x44CF, { 0x8E, 0x8B, 0xBB, 0xA2, 0x0B, 0x1B, 0x5B, 0x75 }} + gEfiOEMBadgingProtocolGuid = { 0x170E13C0, 0xBF1B, 0x4218, { 0x87, 0x1D, 0x2A, 0xBD, 0xC6, 0xF8, 0x87, 0xBC }} + gEfiConsoleControlProtocolGuid = { 0xF42F7782, 0x012E, 0x4C12, { 0x99, 0x56, 0x49, 0xF9, 0x43, 0x04, 0xF7, 0x21 }} + gEfiFaultTolerantWriteLiteProtocolGuid = { 0x3F557189, 0x8DAE, 0x45AE, { 0xA0, 0xB3, 0x2B, 0x99, 0xCA, 0x7A, 0xA7, 0xA0 }} + gEfiFvbExtensionProtocolGuid = { 0x53A4C71B, 0xB581, 0x4170, { 0x91, 0xB3, 0x8D, 0xB8, 0x7A, 0x4B, 0x5C, 0x46 }} + gEfiDiskInfoProtocolGuid = { 0xD432A67F, 0x14DC, 0x484B, { 0xB3, 0xBB, 0x3F, 0x02, 0x91, 0x84, 0x93, 0x27 }} + gEfiGenericMemTestProtocolGuid = { 0x309DE7F1, 0x7F5E, 0x4ACE, { 0xB4, 0x9C, 0x53, 0x1B, 0xE5, 0xAA, 0x95, 0xEF }} + gEfiPrintProtocolGuid = { 0xDF2D868E, 0x32FC, 0x4CF0, { 0x8E, 0x6B, 0xFF, 0xD9, 0x5D, 0x13, 0x43, 0xD0 }} + gEfiLoadPeImageProtocolGuid = { 0x5CB5C776, 0x60D5, 0x45EE, { 0x88, 0x3C, 0x45, 0x27, 0x08, 0xCD, 0x74, 0x3F }} + gEfiCapsuleArchProtocolGuid = { 0x5053697E, 0x2EBC, 0x4819, { 0x90, 0xD9, 0x05, 0x80, 0xDE, 0xEE, 0x57, 0x54 }} + ################################################################################ # -# Global Guid Definition section - list of Global Guid C Name Data Structures +# Global Ppis Definition section - list of Global Ppis C Name Data Structures # that are provided by this package. # ################################################################################ -[Guids.common] +[Ppis.common] + gPeiBaseMemoryTestPpiGuid = { 0xB6EC423C, 0x21D2, 0x490D, { 0x85, 0xC6, 0xDD, 0x58, 0x64, 0xEA, 0xA6, 0x74 }} -################################################################################ -# -# Global Protocols Definition section - list of Global Protocols C Name Data -# Structures that are provided by this package. -# -################################################################################ -[Protocols.common] ################################################################################ @@ -77,5 +106,54 @@ # ################################################################################ -[PcdsFeatureFlag.common] +[PcdFeatureFlag.common] + PcdSupportUpdateCapsuleRest|0x0001001d|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|FALSE + PcdPeiPcdDatabaseTraverseEnabled|0x00010020|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|TRUE + PcdDxePcdDatabaseTraverseEnabled|0x00010021|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|TRUE + PcdPeiPcdDatabaseSetEnabled|0x00010030|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|TRUE + PcdPeiPcdDatabaseGetSizeEnabled|0x00010031|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|TRUE + PcdPeiPcdDatabaseCallbackOnSetEnabled|0x00010032|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|TRUE + PcdPeiPcdDatabaseExEnabled|0x00010033|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|TRUE + PcdDxeIplSupportEfiDecompress|0x00010034|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|TRUE + PcdDxeIplSupportTianoDecompress|0x00010035|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|TRUE + PcdDxeIplSupportCustomDecompress|0x00010036|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|TRUE + PcdDevicePathSupportDevicePathToText|0x00010037|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|FALSE + PcdDevicePathSupportDevicePathFromText|0x00010038|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|FALSE + PcdDxeIplBuildShareCodeHobs|0x0001003c|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|FALSE + PcdNtEmulatorEnable|0x0001003e|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|FALSE + +[PcdFixedAtBuild.common] + PcdMaxPeiPcdCallBackNumberPerPcdEntry|0x0001000f|gEfiEdkModulePkgTokenSpaceGuid|UINT32|0x08 + PcdVpdBaseAddress|0x00010010|gEfiEdkModulePkgTokenSpaceGuid|UINT32|0x0 + PcdMaxSizePopulateCapsule|0x0001001e|gEfiEdkModulePkgTokenSpaceGuid|UINT32|0x0 + PcdMaxSizeNonPopulateCapsule|0x0001001f|gEfiEdkModulePkgTokenSpaceGuid|UINT32|0x0 + PcdMaxPeiPerformanceLogEntries|0x0001002f|gEfiEdkModulePkgTokenSpaceGuid|UINT8|28 + PcdFlashNvStorageVariableBase|0x30000001|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 + PcdFlashNvStorageVariableSize|0x30000002|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 + PcdFlashNvStorageFtwSpareBase|0x30000013|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 + PcdFlashNvStorageFtwSpareSize|0x30000014|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 + PcdFlashNvStorageFtwWorkingBase|0x30000010|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 + PcdFlashNvStorageFtwWorkingSize|0x30000011|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 + +[PcdDynamic.common] + PcdFlashNvStorageVariableBase|0x30000001|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 + PcdFlashNvStorageVariableSize|0x30000002|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 + PcdFlashNvStorageFtwSpareBase|0x30000013|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 + PcdFlashNvStorageFtwSpareSize|0x30000014|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 + PcdFlashNvStorageFtwWorkingBase|0x30000010|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 + PcdFlashNvStorageFtwWorkingSize|0x30000011|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 + +[PcdPatchableInModule.common] + PcdMaxPeiPerformanceLogEntries|0x0001002f|gEfiEdkModulePkgTokenSpaceGuid|UINT8|28 + PcdFlashNvStorageVariableBase|0x30000001|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 + PcdFlashNvStorageVariableSize|0x30000002|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 + PcdFlashNvStorageFtwSpareBase|0x30000013|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 + PcdFlashNvStorageFtwSpareSize|0x30000014|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 + PcdFlashNvStorageFtwWorkingBase|0x30000010|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 + PcdFlashNvStorageFtwWorkingSize|0x30000011|gEfiGenericPlatformTokenSpaceGuid|UINT32|0x0 + + +[PcdFeatureFlag.IA32] + PcdDxeIplSwitchToLongMode|0x0001003b|gEfiEdkModulePkgTokenSpaceGuid|BOOLEAN|TRUE + diff --git a/MdeModulePkg/MdeModulePkg.nspd b/MdeModulePkg/MdeModulePkg.nspd index 79287dd871..44214f4661 100644 --- a/MdeModulePkg/MdeModulePkg.nspd +++ b/MdeModulePkg/MdeModulePkg.nspd @@ -27,4 +27,425 @@ Universal/Disk/Partition/Dxe/Partition.msa Universal/Security/SecurityStub/SecurityStub.msa + + + gEfiMdePkgTokenSpaceGuid + A1AFF049-FDEB-442a-B320-13AB4CB72BBC + All PCD define in MdeModulePkg is in this token space scope + + + gPcdDataBaseHobGuid + EA296D92-0B69-423C-8C28-33B4E0A91268 + + + + gPcdPeiCallbackFnTableHobGuid + C625F4B2-EA09-4675-82D7-BA3682157A14 + + + + gEfiSystemNvDataHobGuid + D6E5092D-C7B2-4872-AF66-FDC0E6F95E78 + + + + gEfiSystemNvDataFvGuid + FFF12B8D-7696-4C8B-A985-2747075B4F50 + + + + gEfiDiskInfoIdeInterfaceGuid + 5E948FE3-26D3-42B5-AF17-610287188DEC + + + + gEfiDiskInfoScsiInterfaceGuid + 08F74BAA-EA36-41D9-9521-21A70F8780BC + + + + gEfiDiskInfoUsbInterfaceGuid + CB871572-C11A-47B5-B492-675EAFA77727 + + + + gEfiAlternateFvBlockGuid + F496922D-172F-4BBC-A1EB-0EEB949C3486 + + + + gEfiConsoleInDeviceGuid + D3B36F2B-D551-11D4-9A46-0090273FC14D + + + + gEfiConsoleOutDeviceGuid + D3B36F2C-D551-11D4-9A46-0090273FC14D + + + + gEfiStandardErrorDeviceGuid + D3B36F2D-D551-11D4-9A46-0090273FC14D + + + + gEfiHotPlugDeviceGuid + 220AC432-1D43-49E5-A74F-4C9DA67AD23B + + + + gEfiPrimaryStandardErrorDeviceGuid + 5A68191B-9B97-4752-9946-E36A5DA942B1 + + + + gEfiPrimaryConsoleInDeviceGuid + E451DCBE-96A1-4729-A5CF-6B9C2CFF47FD + + + + gEfiPrimaryConsoleOutDeviceGuid + 62BDF38A-E3D5-492C-950C-23A7F66E672E + + + + gEfiDefaultBmpLogoGuid + 7BB28B99-61BB-11D5-9A5D-0090273FC14D + + + + gEfiBootStateGuid + 60B5E939-0FCF-4227-BA83-6BBED45BC0E3 + + + + gEfiPciHotplugDeviceGuid + 0B280816-52E7-4E51-AA57-11BD41CBEFC3 + + + + gEfiCapsuleVendorGuid + 711C703F-C285-4B10-A3B0-36ECBD3C8BE2 + + + + gPeiPerformanceHobGuid + EC4DF5AF-4395-4CC9-94DE-77506D12C7B8 + + + + gEfiGenericPlatformVariableGuid + 59d1c24f-50f1-401a-b101-f33e0daed443 + The variable space Guid to pair with a Unicode string name to tag an EFI variable + + + + + gEfiCapsuleArchProtocolGuid + 5053697E-2EBC-4819-90D9-0580DEEE5754 + + + + gEfiLoadPeImageProtocolGuid + 5CB5C776-60D5-45EE-883C-452708CD743F + + + + gEfiPrintProtocolGuid + DF2D868E-32FC-4CF0-8E6B-FFD95D1343D0 + + + + gEfiGenericMemTestProtocolGuid + 309DE7F1-7F5E-4ACE-B49C-531BE5AA95EF + + + + gEfiDiskInfoProtocolGuid + D432A67F-14DC-484B-B3BB-3F0291849327 + + + + gEfiFvbExtensionProtocolGuid + 53A4C71B-B581-4170-91B3-8DB87A4B5C46 + + + + gEfiFaultTolerantWriteLiteProtocolGuid + 3F557189-8DAE-45AE-A0B3-2B99CA7AA7A0 + + + + gEfiConsoleControlProtocolGuid + F42F7782-012E-4C12-9956-49F94304F721 + + + + gEfiOEMBadgingProtocolGuid + 170E13C0-BF1B-4218-871D-2ABDC6F887BC + + + + gEfiUsbAtapiProtocolGuid + 2B2F68DA-0CD2-44CF-8E8B-BBA20B1B5B75 + + + + gPerformanceProtocolGuid + 76B6BDFA-2ACD-4462-9E3F-CB58C969D937 + + + + gEfiScsiIoProtocolGuid + 403CD195-F233-48EC-8455-B2E52F1D9E02 + + + + + + gPeiBaseMemoryTestPpiGuid + B6EC423C-21D2-490D-85C6-DD5864EAA674 + + + + + + PcdMaxPeiPcdCallBackNumberPerPcdEntry + 0x0001000f + gEfiEdkModulePkgTokenSpaceGuid + UINT32 + FIXED_AT_BUILD + 0x08 + The maximum number of callback function, which will be triggered when + a PCD entry is been set, can be registered for a single PCD entry in PEI phase. + + + PcdVpdBaseAddress + 0x00010010 + gEfiEdkModulePkgTokenSpaceGuid + UINT32 + FIXED_AT_BUILD + 0x0 + The base address of the VPD (Vital Product Data) region. It is + normally a region reserved on flash. + + + PcdSupportUpdateCapsuleRest + 0x0001001d + gEfiEdkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + FALSE + Indicate whether platform can support update capsule across a system reset + + + PcdMaxSizePopulateCapsule + 0x0001001e + gEfiEdkModulePkgTokenSpaceGuid + UINT32 + FIXED_AT_BUILD + 0x0 + Indicate the max size the platform can support in case of populated capsules + + + PcdMaxSizeNonPopulateCapsule + 0x0001001f + gEfiEdkModulePkgTokenSpaceGuid + UINT32 + FIXED_AT_BUILD + 0x0 + Indicate the max size the platform can support in case of non-populated capsules + + + PcdPeiPcdDatabaseTraverseEnabled + 0x00010020 + gEfiEdkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + TRUE + This feature flag can be used to enable or disable the Pcd PEIM database + traverse capability. Disable it can reduce the size of final image generated. + + + PcdDxePcdDatabaseTraverseEnabled + 0x00010021 + gEfiEdkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + TRUE + This feature flag can be used to enable or disable the Pcd DXE database + traverse capability. Disable it can reduce the size of final image generated. + + + PcdMaxPeiPerformanceLogEntries + 0x0001002f + gEfiEdkModulePkgTokenSpaceGuid + UINT8 + FIXED_AT_BUILD PATCHABLE_IN_MODULE + 28 + Maximun number of performance log entries during PEI phase. + + + PcdPeiPcdDatabaseSetEnabled + 0x00010030 + gEfiEdkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + TRUE + This feature flag can be used to enable or disable the SET capability of PCD service PEIM. If a platform does not do PCD SET operation in PEI phase. This flag can be set to DISABLE to save size. + + + PcdPeiPcdDatabaseGetSizeEnabled + 0x00010031 + gEfiEdkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + TRUE + This feature flag can be used to enable or disable the GET size capability of PCD service PEIM. If a platform does not do PCD get size operation in PEI phase. This flag can be set to DISABLE to save size. + + + PcdPeiPcdDatabaseCallbackOnSetEnabled + 0x00010032 + gEfiEdkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + TRUE + This feature flag can be used to enable or disable the Callback On SET capability of PCD service PEIM. If a platform does not register any callback on set in PEI phase. This flag can be set to DISABLE to save size. + + + PcdPeiPcdDatabaseExEnabled + 0x00010033 + gEfiEdkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + TRUE + This feature flag can be used to enable or disable the PCD service PEIM to handle DynamicEX PCD. If a platform has no module to use DynamicEX in PEI phase. This flag can be set to DISABLE to save size. + + + PcdFlashNvStorageVariableBase + 0x30000001 + gEfiGenericPlatformTokenSpaceGuid + UINT32 + FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC + 0x0 + Base address of the variable section in NV firmware volume. + + + PcdFlashNvStorageVariableSize + 0x30000002 + gEfiGenericPlatformTokenSpaceGuid + UINT32 + FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC + 0x0 + Size of the variable section in NV firmware volume.. + + + PcdFlashNvStorageFtwSpareBase + 0x30000013 + gEfiGenericPlatformTokenSpaceGuid + UINT32 + FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC + 0x0 + Base address of the FTW spare block section in NV firmware volume. + + + PcdFlashNvStorageFtwSpareSize + 0x30000014 + gEfiGenericPlatformTokenSpaceGuid + UINT32 + FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC + 0x0 + Size of the FTW spare block section in NV firmware volume. + + + PcdFlashNvStorageFtwWorkingBase + 0x30000010 + gEfiGenericPlatformTokenSpaceGuid + UINT32 + FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC + 0x0 + Base address of the FTW working block section in NV firmware volume. + + + PcdFlashNvStorageFtwWorkingSize + 0x30000011 + gEfiGenericPlatformTokenSpaceGuid + UINT32 + FIXED_AT_BUILD PATCHABLE_IN_MODULE DYNAMIC + 0x0 + Size of the FTW working block section in NV firmware volume. + + + PcdDxeIplSupportEfiDecompress + 0x00010034 + gEfiEdkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + TRUE + If this feature is enabled, then the DXE IPL must support decompressing files compressed with the EFI Compression algorithm + + + PcdDxeIplSupportTianoDecompress + 0x00010035 + gEfiEdkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + TRUE + If this feature is enabled, then the DXE IPL must support decompressing files compressed with the Tiano Compression algorithm + + + PcdDxeIplSupportCustomDecompress + 0x00010036 + gEfiEdkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + TRUE + If this feature is enabled, then the DXE IPL must support decompressing files compressed with the Custom Compression algorithm + + + PcdDevicePathSupportDevicePathToText + 0x00010037 + gEfiEdkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + FALSE + If TRUE, then the Device Path To Text Protocol should be produced by the platform + + + PcdDevicePathSupportDevicePathFromText + 0x00010038 + gEfiEdkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + FALSE + If TRUE, then the Device Path From Text Protocol should be produced by the platform + + + PcdDxeIplSwitchToLongMode + 0x0001003b + gEfiEdkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + TRUE + If this feature is enabled, then the DXE IPL will load a 64-bit DxeCore. + + + PcdDxeIplBuildShareCodeHobs + 0x0001003c + gEfiEdkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + FALSE + If this feature is enabled, DXE IPL will build a series of HOBs to share code with DXE Core. + + + PcdNtEmulatorEnable + 0x0001003e + gEfiEdkModulePkgTokenSpaceGuid + BOOLEAN + FEATURE_FLAG + FALSE + If this PCD is set as TRUE, NT emulator will be endabled. + + -- 2.39.2