diff options
Diffstat (limited to 'EDK/Foundation/Protocol')
75 files changed, 5452 insertions, 0 deletions
diff --git a/EDK/Foundation/Protocol/ConsoleControl/ConsoleControl.c b/EDK/Foundation/Protocol/ConsoleControl/ConsoleControl.c new file mode 100644 index 0000000..3484668 --- /dev/null +++ b/EDK/Foundation/Protocol/ConsoleControl/ConsoleControl.c @@ -0,0 +1,29 @@ +/*++ + +Copyright (c) 2004 - 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.c + +Abstract: + + Abstraction of a Text mode or GOP/UGA screen + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION (ConsoleControl) + + +EFI_GUID gEfiConsoleControlProtocolGuid = EFI_CONSOLE_CONTROL_PROTOCOL_GUID; + +EFI_GUID_STRING (&gEfiConsoleControlProtocolGuid, "Console Control Protocol", "Console Control Protocol"); + diff --git a/EDK/Foundation/Protocol/ConsoleControl/ConsoleControl.h b/EDK/Foundation/Protocol/ConsoleControl/ConsoleControl.h new file mode 100644 index 0000000..2fc4d6a --- /dev/null +++ b/EDK/Foundation/Protocol/ConsoleControl/ConsoleControl.h @@ -0,0 +1,122 @@ +/*++ + +Copyright (c) 2004 - 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 GOP/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 *GopUgaExists, OPTIONAL + OUT BOOLEAN *StdInLocked OPTIONAL + ) +/*++ + + Routine Description: + Return the current video mode information. Also returns info about existence + of Graphics Output devices or 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. + GopUgaExists - TRUE if Console Spliter has found a GOP or 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 + +--*/ +; + + + +typedef 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; +} EFI_CONSOLE_CONTROL_PROTOCOL; + +extern EFI_GUID gEfiConsoleControlProtocolGuid; + +#endif diff --git a/EDK/Foundation/Protocol/CustomizedDecompress/CustomizedDecompress.c b/EDK/Foundation/Protocol/CustomizedDecompress/CustomizedDecompress.c new file mode 100644 index 0000000..08fd681 --- /dev/null +++ b/EDK/Foundation/Protocol/CustomizedDecompress/CustomizedDecompress.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: + + CustomizedDecompress.c + +Abstract: + + The GUID for the user Customized Decompress Protocol + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION(CustomizedDecompress) + +EFI_GUID gEfiCustomizedDecompressProtocolGuid = EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiCustomizedDecompressProtocolGuid, "Cutomized Decompress", "Customized Decompression Protocol"); + diff --git a/EDK/Foundation/Protocol/CustomizedDecompress/CustomizedDecompress.h b/EDK/Foundation/Protocol/CustomizedDecompress/CustomizedDecompress.h new file mode 100644 index 0000000..71815bc --- /dev/null +++ b/EDK/Foundation/Protocol/CustomizedDecompress/CustomizedDecompress.h @@ -0,0 +1,139 @@ +/*++ + +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: + + CustomizedDecompress.h + +Abstract: + + The user Customized Decompress Protocol Interface + +--*/ + +#ifndef _CUSTOMIZED_DECOMPRESS_H_ +#define _CUSTOMIZED_DECOMPRESS_H_ + +#define EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL_GUID \ + { 0x9a44198e, 0xa4a2, 0x44e6, 0x8a, 0x1f, 0x39, 0xbe, 0xfd, 0xac, 0x89, 0x6f } + +EFI_FORWARD_DECLARATION (EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL); + +typedef +EFI_STATUS +(EFIAPI *EFI_CUSTOMIZED_DECOMPRESS_GET_INFO) ( + IN EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL *This, + IN VOID *Source, + IN UINT32 SourceSize, + OUT UINT32 *DestinationSize, + OUT UINT32 *ScratchSize + ); +/*++ + +Routine Description: + + The GetInfo() function retrieves the size of the uncompressed buffer + and the temporary scratch buffer required to decompress the buffer + specified by Source and SourceSize. If the size of the uncompressed + buffer or the size of the scratch buffer cannot be determined from + the compressed data specified by Source and SourceData, then + EFI_INVALID_PARAMETER is returned. Otherwise, the size of the uncompressed + buffer is returned in DestinationSize, the size of the scratch buffer is + returned in ScratchSize, and EFI_SUCCESS is returned. + + The GetInfo() function does not have scratch buffer available to perform + a thorough checking of the validity of the source data. It just retrieves + the 'Original Size' field from the beginning bytes of the source data and + output it as DestinationSize. And ScratchSize is specific to the decompression + implementation. + +Arguments: + + This - The protocol instance pointer + Source - The source buffer containing the compressed data. + SourceSize - The size, in bytes, of source buffer. + DestinationSize - A pointer to the size, in bytes, of the uncompressed buffer + that will be generated when the compressed buffer specified + by Source and SourceSize is decompressed. + ScratchSize - A pointer to the size, in bytes, of the scratch buffer that + is required to decompress the compressed buffer specified by + Source and SourceSize. + +Returns: + EFI_SUCCESS - The size of the uncompressed data was returned in DestinationSize + and the size of the scratch buffer was returned in ScratchSize. + EFI_INVALID_PARAMETER - The size of the uncompressed data or the size of the scratch + buffer cannot be determined from the compressed data specified by + Source and SourceData. + +--*/ + + +typedef +EFI_STATUS +(EFIAPI *EFI_CUSTOMIZED_DECOMPRESS_DECOMPRESS) ( + IN EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL *This, + IN VOID* Source, + IN UINT32 SourceSize, + IN OUT VOID* Destination, + IN UINT32 DestinationSize, + IN OUT VOID* Scratch, + IN UINT32 ScratchSize + ); +/*++ + +Routine Description: + + The Decompress() function extracts decompressed data to its original form. + + This protocol is designed so that the decompression algorithm can be + implemented without using any memory services. As a result, the + Decompress() function is not allowed to call AllocatePool() or + AllocatePages() in its implementation. It is the caller's responsibility + to allocate and free the Destination and Scratch buffers. + + If the compressed source data specified by Source and SourceSize is + sucessfully decompressed into Destination, then EFI_SUCCESS is returned. + If the compressed source data specified by Source and SourceSize is not in + a valid compressed data format, then EFI_INVALID_PARAMETER is returned. + +Arguments: + + This - The protocol instance pointer + Source - The source buffer containing the compressed data. + SourceSize - The size of source data. + Destination - On output, the destination buffer that contains + the uncompressed data. + DestinationSize - The size of destination buffer. The size of destination + buffer needed is obtained from GetInfo(). + Scratch - A temporary scratch buffer that is used to perform the + decompression. + ScratchSize - The size of scratch buffer. The size of scratch buffer needed + is obtained from GetInfo(). + +Returns: + + EFI_SUCCESS - Decompression completed successfully, and the uncompressed + buffer is returned in Destination. + EFI_INVALID_PARAMETER + - The source buffer specified by Source and SourceSize is + corrupted (not in a valid compressed format). + +--*/ + +typedef struct _EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL { + EFI_CUSTOMIZED_DECOMPRESS_GET_INFO GetInfo; + EFI_CUSTOMIZED_DECOMPRESS_DECOMPRESS Decompress; +} EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL; + +extern EFI_GUID gEfiCustomizedDecompressProtocolGuid; + +#endif diff --git a/EDK/Foundation/Protocol/DebugAssert/DebugAssert.c b/EDK/Foundation/Protocol/DebugAssert/DebugAssert.c new file mode 100644 index 0000000..529e2b7 --- /dev/null +++ b/EDK/Foundation/Protocol/DebugAssert/DebugAssert.c @@ -0,0 +1,30 @@ +/*++ + +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: + + DebugAssert.c + +Abstract: + + This protocol allows provides debug services to a driver. This is not + debugger support, but things like ASSERT() and DEBUG() macros + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION(DebugAssert) + + +EFI_GUID gEfiDebugAssertProtocolGuid = EFI_DEBUG_ASSERT_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiDebugAssertProtocolGuid, "EFI Debug Assert", "Efi Debug Assert Protocol"); + diff --git a/EDK/Foundation/Protocol/DebugAssert/DebugAssert.h b/EDK/Foundation/Protocol/DebugAssert/DebugAssert.h new file mode 100644 index 0000000..83b5c36 --- /dev/null +++ b/EDK/Foundation/Protocol/DebugAssert/DebugAssert.h @@ -0,0 +1,89 @@ +/*++ + +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: + + DebugAssert.h + +Abstract: + + This protocol allows provides debug services to a driver. This is not + debugger support, but things like ASSERT() and DEBUG() macros + +--*/ + +#ifndef _DEBUG_ASSERT_H_ +#define _DEBUG_ASSERT_H_ + + +#define EFI_DEBUG_ASSERT_PROTOCOL_GUID \ + { 0xbe499c92, 0x7d4b, 0x11d4, 0xbc, 0xee, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81 } + +// +// Forward reference for pure ANSI compatability +// +EFI_FORWARD_DECLARATION (EFI_DEBUG_ASSERT_PROTOCOL); + + +typedef +EFI_STATUS +(EFIAPI *EFI_DEBUG_ASSERT) ( + IN EFI_DEBUG_ASSERT_PROTOCOL *This, + IN CHAR8 *FileName, + IN INTN LineNumber, + IN CHAR8 *Description + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_DEBUG_PRINT) ( + IN EFI_DEBUG_ASSERT_PROTOCOL *This, + IN UINTN ErrorLevel, + IN CHAR8 *Format, + IN VA_LIST Marker + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_POST_CODE) ( + IN EFI_DEBUG_ASSERT_PROTOCOL *This, + IN UINT16 PostCode, + IN CHAR8 *PostCodeString OPTIONAL + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_GET_ERROR_LEVEL) ( + IN EFI_DEBUG_ASSERT_PROTOCOL *This, + IN UINTN *ErrorLevel + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_SET_ERROR_LEVEL) ( + IN EFI_DEBUG_ASSERT_PROTOCOL *This, + IN UINTN ErrorLevel + ); + +typedef struct _EFI_DEBUG_ASSERT_PROTOCOL { + + EFI_DEBUG_ASSERT Assert; + EFI_DEBUG_PRINT Print; + EFI_POST_CODE PostCode; + + EFI_GET_ERROR_LEVEL GetErrorLevel; + EFI_SET_ERROR_LEVEL SetErrorLevel; + +} EFI_DEBUG_ASSERT_PROTOCOL; + +extern EFI_GUID gEfiDebugAssertProtocolGuid; + +#endif diff --git a/EDK/Foundation/Protocol/DebugMask/DebugMask.c b/EDK/Foundation/Protocol/DebugMask/DebugMask.c new file mode 100644 index 0000000..0bfe8ec --- /dev/null +++ b/EDK/Foundation/Protocol/DebugMask/DebugMask.c @@ -0,0 +1,33 @@ +/*++ + +Copyright (c) 2004 - 2011, 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: + + DebugMask.c + +Abstract: + + This protocol is used to abstract the Debug Mask serivces for + the specific driver or application image. + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION(DebugMask) + + +EFI_GUID gEfiDebugMaskProtocolGuid = EFI_DEBUG_MASK_PROTOCOL_GUID; +EFI_GUID gEfiSmmDebugMaskProtocolGuid = EFI_SMM_DEBUG_MASK_PROTOCOL_GUID; +EFI_GUID gEfiRuntimeDebugMaskProtocolGuid = EFI_RUNTIME_DEBUG_MASK_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiDebugMaskProtocolGuid, "DebugMask Protocol", "Efi Debug Mask Protocol"); +EFI_GUID_STRING(&gEfiSmmDebugMaskProtocolGuid, "Smm DebugMask Protocol", "Efi Smm Debug Mask Protocol"); +EFI_GUID_STRING(&gEfiRuntimeDebugMaskProtocolGuid, "Runtime DebugMask Protocol", "Efi Runtime Debug Mask Protocol");
\ No newline at end of file diff --git a/EDK/Foundation/Protocol/DebugMask/DebugMask.h b/EDK/Foundation/Protocol/DebugMask/DebugMask.h new file mode 100644 index 0000000..99a0c25 --- /dev/null +++ b/EDK/Foundation/Protocol/DebugMask/DebugMask.h @@ -0,0 +1,72 @@ +/*++ + +Copyright (c) 2004 - 2011, 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: + + DebugMask.h + +Abstract: + + This protocol is used to abstract the Debug Mask serivces for + the specific driver or application image. + +--*/ + +#ifndef _DEBUG_MASK_H_ +#define _DEBUG_MASK_H_ + +#define EFI_DEBUG_MASK_PROTOCOL_GUID \ + { 0x4c8a2451, 0xc207, 0x405b, 0x96, 0x94, 0x99, 0xea, 0x13, 0x25, 0x13, 0x41 } + +#define EFI_SMM_DEBUG_MASK_PROTOCOL_GUID \ + { 0x3bce1d9f, 0x3b8d, 0x4117, 0x9f, 0x7, 0x5c, 0x4f, 0x79, 0x3e, 0xb0, 0xa4 } + +#define EFI_RUNTIME_DEBUG_MASK_PROTOCOL_GUID \ + { 0x6378fef3, 0xc89f, 0x492f, 0xbd, 0xb1, 0xbf, 0xb4, 0x43, 0x19, 0xcf, 0xda } + +#define EFI_DEBUG_MASK_REVISION 0x00010000 + +// +// Forward reference for pure ANSI compatability +// +EFI_FORWARD_DECLARATION (EFI_DEBUG_MASK_PROTOCOL); + +// +// DebugMask member functions definition +// +typedef +EFI_STATUS +(EFIAPI * EFI_GET_DEBUG_MASK) ( + IN EFI_DEBUG_MASK_PROTOCOL *This, // Calling context + IN OUT UINTN *CurrentDebugMask // Ptr to store current debug mask + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_SET_DEBUG_MASK) ( + IN EFI_DEBUG_MASK_PROTOCOL *This, // Calling context + IN UINTN NewDebugMask // New Debug Mask value to set + ); + +// +// DebugMask protocol definition +// +typedef struct _EFI_DEBUG_MASK_PROTOCOL { + INT64 Revision; + EFI_GET_DEBUG_MASK GetDebugMask; + EFI_SET_DEBUG_MASK SetDebugMask; +} EFI_DEBUG_MASK_PROTOCOL; + +extern EFI_GUID gEfiDebugMaskProtocolGuid; +extern EFI_GUID gEfiSmmDebugMaskProtocolGuid; +extern EFI_GUID gEfiRuntimeDebugMaskProtocolGuid; + +#endif diff --git a/EDK/Foundation/Protocol/DiskInfo/DiskInfo.c b/EDK/Foundation/Protocol/DiskInfo/DiskInfo.c new file mode 100644 index 0000000..d028a53 --- /dev/null +++ b/EDK/Foundation/Protocol/DiskInfo/DiskInfo.c @@ -0,0 +1,30 @@ +/*++ + +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: + + DiskInfo.c + +Abstract: + + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION (DiskInfo) + +EFI_GUID gEfiDiskInfoProtocolGuid = EFI_DISK_INFO_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiDiskInfoProtocolGuid, "Disk Info Protocol", "Disk Info Protocol"); + +EFI_GUID gEfiDiskInfoIdeInterfaceGuid = EFI_DISK_INFO_IDE_INTERFACE_GUID; +EFI_GUID gEfiDiskInfoScsiInterfaceGuid = EFI_DISK_INFO_SCSI_INTERFACE_GUID; +EFI_GUID gEfiDiskInfoUsbInterfaceGuid = EFI_DISK_INFO_USB_INTERFACE_GUID; diff --git a/EDK/Foundation/Protocol/DiskInfo/DiskInfo.h b/EDK/Foundation/Protocol/DiskInfo/DiskInfo.h new file mode 100644 index 0000000..42decf9 --- /dev/null +++ b/EDK/Foundation/Protocol/DiskInfo/DiskInfo.h @@ -0,0 +1,174 @@ +/*++ + +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: + + 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 \ + } + +EFI_FORWARD_DECLARATION (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; + +typedef 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; +} EFI_DISK_INFO_PROTOCOL; + +extern EFI_GUID gEfiDiskInfoProtocolGuid; + +#endif diff --git a/EDK/Foundation/Protocol/EdkProtocolLib.cif b/EDK/Foundation/Protocol/EdkProtocolLib.cif new file mode 100644 index 0000000..ae1df13 --- /dev/null +++ b/EDK/Foundation/Protocol/EdkProtocolLib.cif @@ -0,0 +1,78 @@ +<component> + name = "EdkProtocolLib" + category = ModulePart + LocalRoot = "Edk\Foundation\Protocol\" + RefName = "EdkProtocolLib" +[files] +"EdkProtocolLib.sdl" +"EdkProtocolLib.mak" +"ConsoleControl\ConsoleControl.h" +"ConsoleControl\ConsoleControl.c" +"CustomizedDecompress\CustomizedDecompress.h" +"CustomizedDecompress\CustomizedDecompress.c" +"DebugAssert\DebugAssert.h" +"DebugAssert\DebugAssert.c" +"DebugMask\DebugMask.h" +"DebugMask\DebugMask.c" +"DiskInfo\DiskInfo.h" +"DiskInfo\DiskInfo.c" +"EfiOEMBadging\EfiOEMBadging.h" +"EfiOEMBadging\EfiOEMBadging.c" +"FaultTolerantWriteLite\FaultTolerantWriteLite.h" +"FaultTolerantWriteLite\FaultTolerantWriteLite.c" +"FirmwarePerformance\FirmwarePerformance.h" +"FirmwarePerformance\FirmwarePerformance.c" +"FirmwareVolumeDispatch\FirmwareVolumeDispatch.h" +"FirmwareVolumeDispatch\FirmwareVolumeDispatch.c" +"FvbExtension\FvbExtension.h" +"FvbExtension\FvbExtension.c" +"GenericMemoryTest\GenericMemoryTest.h" +"GenericMemoryTest\GenericMemoryTest.c" +"GuidedSectionExtraction\GuidedSectionExtraction.h" +"GuidedSectionExtraction\GuidedSectionExtraction.c" +"IsaAcpi\IsaAcpi.h" +"IsaAcpi\IsaAcpi.c" +"IsaIo\IsaIo.h" +"IsaIo\IsaIo.c" +"LoadPe32Image\LoadPe32Image.h" +"LoadPe32Image\LoadPe32Image.c" +"NicIp4Config\NicIp4Config.h" +"NicIp4Config\NicIp4Config.c" +"PciHotPlugRequest\PciHotPlugRequest.h" +"PciHotPlugRequest\PciHotPlugRequest.c" +"Performance\Performance.h" +"Performance\Performance.c" +"Fpdt\Fpdt.h" +"Fpdt\Fpdt.c" +"PlatformMemTest\PlatformMemTest.h" +"PlatformMemTest\PlatformMemTest.c" +"Print\Print.h" +"Print\Print.c" +"PxeDhcp4\PxeDhcp4.h" +"PxeDhcp4\PxeDhcp4.c" +"PxeDhcp4Callback\PxeDhcp4CallBack.h" +"PxeDhcp4Callback\PxeDhcp4CallBack.c" +"Tcp\Tcp.h" +"Tcp\Tcp.c" +"TianoDecompress\TianoDecompress.h" +"TianoDecompress\TianoDecompress.c" +"UgaSplash\UgaSplash.h" +"UgaSplash\UgaSplash.c" +"UsbAtapi\usbatapi.h" +"UsbAtapi\usbatapi.c" +"VariableStore\VariableStore.h" +"VariableStore\VariableStore.c" +"VirtualMemoryAccess\VirtualMemoryAccess.h" +"VirtualMemoryAccess\VirtualMemoryAccess.c" +"TcgService\TcgService.h" +"TcgService\TcgService.c" +"Ps2Policy\Ps2Policy.h" +"Ps2Policy\Ps2Policy.c" +"VgaMiniPort\VgaMiniPort.h" +"VgaMiniPort\VgaMiniPort.c" +"EdkProtocolLib.inf" +"FastBootException\FastBootException.c" +"FastBootException\FastBootException.h" +[parts] +"EdkProtocolLibIPF" +<endComponent> diff --git a/EDK/Foundation/Protocol/EdkProtocolLib.inf b/EDK/Foundation/Protocol/EdkProtocolLib.inf new file mode 100644 index 0000000..3d78d29 --- /dev/null +++ b/EDK/Foundation/Protocol/EdkProtocolLib.inf @@ -0,0 +1,112 @@ +#/*++ +# +# Copyright (c) 2004 - 2011, 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: +# +# EdkProtocolLib.inf +# +# Abstract: +# +# Component description file. +# +#--*/ + +[defines] +BASE_NAME= EdkProtocolLib +COMPONENT_TYPE= LIBRARY + +[includes.common] + $(EDK_SOURCE)\Foundation + $(EDK_SOURCE)\Foundation\Efi + $(EDK_SOURCE)\Foundation\Framework + $(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] + ConsoleControl\ConsoleControl.h + ConsoleControl\ConsoleControl.c + CustomizedDecompress\CustomizedDecompress.c + CustomizedDecompress\CustomizedDecompress.h + DebugAssert\DebugAssert.h + DebugAssert\DebugAssert.c + DebugMask\DebugMask.h + DebugMask\DebugMask.c + DiskInfo\DiskInfo.h + DiskInfo\DiskInfo.c + EfiOemBadging\EfiOemBadging.h + EfiOemBadging\EfiOemBadging.c + FaultTolerantWriteLite\FaultTolerantWriteLite.h + FaultTolerantWriteLite\FaultTolerantWriteLite.c + FirmwareVolumeDispatch\FirmwareVolumeDispatch.h + FirmwareVolumeDispatch\FirmwareVolumeDispatch.c + FvbExtension\FvbExtension.h + FvbExtension\FvbExtension.c + GenericMemoryTest\GenericMemoryTest.h + GenericMemoryTest\GenericMemoryTest.c + GuidedSectionExtraction\GuidedSectionExtraction.h + GuidedSectionExtraction\GuidedSectionExtraction.c + IsaAcpi\IsaAcpi.h + IsaAcpi\IsaAcpi.c + IsaIo\IsaIo.h + IsaIo\IsaIo.c + LoadPe32Image\LoadPe32Image.h + LoadPe32Image\LoadPe32Image.c + NicIp4Config\NicIp4Config.h + NicIp4Config\NicIp4Config.c + PciHotPlugRequest\PciHotPlugRequest.h + PciHotPlugRequest\PciHotPlugRequest.c + FirmwarePerformance\FirmwarePerformance.h + FirmwarePerformance\FirmwarePerformance.c + Fpdt\Fpdt.h + Fpdt\Fpdt.c + PlatformMemTest\PlatformMemTest.h + PlatformMemTest\PlatformMemTest.c + Print\Print.h + Print\Print.c + PxeDhcp4\PxeDhcp4.h + PxeDhcp4\PxeDhcp4.c + PxeDhcp4Callback\PxeDhcp4Callback.h + PxeDhcp4Callback\PxeDhcp4Callback.c + Tcp\Tcp.h + Tcp\Tcp.c + TianoDecompress\TianoDecompress.h + TianoDecompress\TianoDecompress.c + UgaSplash\UgaSplash.h + UgaSplash\UgaSplash.c + UsbAtapi\UsbAtapi.h + UsbAtapi\UsbAtapi.c + VariableStore\VariableStore.h + VariableStore\VariableStore.c + VirtualMemoryAccess\VirtualMemoryAccess.h + VirtualMemoryAccess\VirtualMemoryAccess.c + TcgService\TcgService.h + TcgService\TcgService.c + Ps2Policy\Ps2Policy.h + Ps2Policy\Ps2Policy.c + VgaMiniPort\VgaMiniPort.h + VgaMiniPort\VgaMiniPort.c + FastBootException\FastBootException.h + FastBootException\FastBootException.c + +[sources.ipf] + ExtendedSalBootService\ExtendedSalBootService.c + ExtendedSalBootService\ExtendedSalBootService.h + ExtendedSalGuid\ExtendedSalGuid.c + ExtendedSalGuid\ExtendedSalGuid.h diff --git a/EDK/Foundation/Protocol/EdkProtocolLib.mak b/EDK/Foundation/Protocol/EdkProtocolLib.mak new file mode 100644 index 0000000..6f06448 --- /dev/null +++ b/EDK/Foundation/Protocol/EdkProtocolLib.mak @@ -0,0 +1,72 @@ +#********************************************************************** +#********************************************************************** +#** ** +#** (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/EdkProtocolLib/EdkProtocolLib.mak 1 1/20/12 4:05a Jeffch $ +# +# $Revision: 1 $ +# +# $Date: 1/20/12 4:05a $ +#********************************************************************** +# Revision History +# ---------------- +# $Log: /Alaska/SOURCE/Modules/SharkBayRefCodes/IntelEDK/EdkProtocolLib/EdkProtocolLib.mak $ +# +# 1 1/20/12 4:05a Jeffch +# Create Intel EDK 1117 Patch 7. +# +# 1 9/27/11 6:29a Wesleychen +# Intel EDK initially releases. +# +# 2 9/02/09 4:04a Iminglin +# +#********************************************************************** +#<AMI_FHDR_START> +# +# Name: EdkProtocolLib.mak +# +# Description: +# +#<AMI_FHDR_END> +#********************************************************************** +$(EDKPROTOCOLLIB) : EdkProtocolLib + +$(BUILD_DIR)\EdkProtocolLib.lib : EdkProtocolLib + +EdkProtocolLib : $(BUILD_DIR)\EdkProtocolLib.mak EdkProtocolLibBin + +!IF "$(PROCESSOR)"=="IPF" +EDK_PROTOCOL_LIB_PROCESSOR_CIF=$(EdkProtocolLib_DIR)\EdkProtocolLibIPF.cif +!ENDIF + +$(BUILD_DIR)\EdkProtocolLib.mak : $(EdkProtocolLib_DIR)\$(@B).cif $(EdkProtocolLib_DIR)\$(@B).mak $(BUILD_RULES) $(EDK_PROTOCOL_LIB_PROCESSOR_CIF) + $(CIF2MAK) $(EdkProtocolLib_DIR)\$(@B).cif $(CIF2MAK_DEFAULTS) $(EDK_PROTOCOL_LIB_PROCESSOR_CIF) + +EdkProtocolLibBin : + $(MAKE) /$(MAKEFLAGS) $(EDK_DEFAULTS)\ + /f $(BUILD_DIR)\EdkProtocolLib.mak all\ + TYPE=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/Protocol/EdkProtocolLib.sdl b/EDK/Foundation/Protocol/EdkProtocolLib.sdl new file mode 100644 index 0000000..8a8c3e9 --- /dev/null +++ b/EDK/Foundation/Protocol/EdkProtocolLib.sdl @@ -0,0 +1,26 @@ +TOKEN + Name = "EdkProtocolLib_SUPPORT" + Value = "1" + Help = "Main switch to enable EdkProtocolLib support in Project" + TokenType = Boolean + TargetEQU = Yes + TargetMAK = Yes + Master = Yes +End + +TOKEN + Name = "EDKPROTOCOLLIB" + Value = "$(BUILD_DIR)\EdkProtocolLib.lib" + TokenType = Expression + TargetMAK = Yes +End + +PATH + Name = "EdkProtocolLib_DIR" +End + +MODULE + Help = "Includes EdkProtocolLib.mak to Project" + File = "EdkProtocolLib.mak" +End + diff --git a/EDK/Foundation/Protocol/EdkProtocolLibIPF.cif b/EDK/Foundation/Protocol/EdkProtocolLibIPF.cif new file mode 100644 index 0000000..c119123 --- /dev/null +++ b/EDK/Foundation/Protocol/EdkProtocolLibIPF.cif @@ -0,0 +1,11 @@ +<component> + name = "EdkProtocolLibIPF" + category = ModulePart + LocalRoot = "EDK\Foundation\Protocol\" + RefName = "EdkProtocolLibIPF" +[files] +"ExtendedSalBootService\ExtendedSalBootService.h" +"ExtendedSalBootService\ExtendedSalBootService.c" +"ExtendedSalGuid\ExtendedSalGuid.h" +"ExtendedSalGuid\ExtendedSalGuid.c" +<endComponent> diff --git a/EDK/Foundation/Protocol/EfiOEMBadging/EfiOEMBadging.c b/EDK/Foundation/Protocol/EfiOEMBadging/EfiOEMBadging.c new file mode 100644 index 0000000..bf60211 --- /dev/null +++ b/EDK/Foundation/Protocol/EfiOEMBadging/EfiOEMBadging.c @@ -0,0 +1,30 @@ +/*++ + +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: + + EfiOEMBadging.c + +Abstract: + + EFI OEM Badging Protocol definition source file + +Revision History + +--*/ + +#include "Tiano.h" + +#include EFI_PROTOCOL_DEFINITION (EfiOEMBadging) + +EFI_GUID gEfiOEMBadgingProtocolGuid = EFI_OEM_BADGING_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiOEMBadgingProtocolGuid, "OEM Badging Protocol", "OEM Badging Protocol"); diff --git a/EDK/Foundation/Protocol/EfiOEMBadging/EfiOEMBadging.h b/EDK/Foundation/Protocol/EfiOEMBadging/EfiOEMBadging.h new file mode 100644 index 0000000..90b32c6 --- /dev/null +++ b/EDK/Foundation/Protocol/EfiOEMBadging/EfiOEMBadging.h @@ -0,0 +1,79 @@ +/*++ + +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: + + 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 } + + +EFI_FORWARD_DECLARATION (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 +); + + +typedef struct _EFI_OEM_BADGING_PROTOCOL { + EFI_BADGING_GET_IMAGE GetImage; +} EFI_OEM_BADGING_PROTOCOL; + + +extern EFI_GUID gEfiOEMBadgingProtocolGuid; + +#endif diff --git a/EDK/Foundation/Protocol/ExtendedSalBootService/ExtendedSalBootService.c b/EDK/Foundation/Protocol/ExtendedSalBootService/ExtendedSalBootService.c new file mode 100644 index 0000000..6d4d2c4 --- /dev/null +++ b/EDK/Foundation/Protocol/ExtendedSalBootService/ExtendedSalBootService.c @@ -0,0 +1,27 @@ +/*++ + +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: + + ExtendedSalBootService.c + +Abstract: + + This is a protocol creates infrastructure to register Extended Sal Procs. + + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION(ExtendedSalBootService) + +EFI_GUID gEfiExtendedSalBootServiceProtocolGuid = EXTENDED_SAL_BOOT_SERVICE_PROTOCOL_GUID; +EFI_GUID_STRING(&gEfiExtendedSalBootServiceProtocolGuid, "EXT SAL", "Extended Sal Protocol"); diff --git a/EDK/Foundation/Protocol/ExtendedSalBootService/ExtendedSalBootService.h b/EDK/Foundation/Protocol/ExtendedSalBootService/ExtendedSalBootService.h new file mode 100644 index 0000000..af35700 --- /dev/null +++ b/EDK/Foundation/Protocol/ExtendedSalBootService/ExtendedSalBootService.h @@ -0,0 +1,118 @@ +/*++ + +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: + + ExtendedSalBootService.h + +Abstract: + +--*/ + +#ifndef _EXTENDED_SAL_PROTOCOL_H_ +#define _EXTENDED_SAL_PROTOCOL_H_ + +#include "SalApi.h" +#include "LinkedList.h" +#include EFI_PROTOCOL_CONSUMER (CpuIo) + + +#define EXTENDED_SAL_BOOT_SERVICE_PROTOCOL_GUID \ + {0xde0ee9a4,0x3c7a,0x44f2,0xb7,0x8b,0xe3,0xcc,0xd6,0x9c,0x3a,0xf7} + +#define EXTENDED_SAL_SIGNATURE EFI_SIGNATURE_32('e', 's', 'a', 'l') + +#define SAL_MIN_STATE_SIZE 0x400 * 1 +#define PAL_SCARTCH_SIZE 0x400 * 3 +#define ALIGN_MINSTATE_SIZE 512 +#define MAX_SAL_RECORD_SIZE 8*1024 + +#define SAL_RUNTIMESERVICE + +typedef UINT16 EFI_SAL_PROCESSOR_ID; + +EFI_FORWARD_DECLARATION (EXTENDED_SAL_BOOT_SERVICE_PROTOCOL); + +typedef +SAL_RUNTIMESERVICE +SAL_RETURN_REGS +(EFIAPI *SAL_EXTENDED_SAL_PROC) ( + IN EFI_GUID *ClassGuid, + IN UINT64 FunctionId, + IN UINT64 Arg2, + IN UINT64 Arg3, + IN UINT64 Arg4, + IN UINT64 Arg5, + IN UINT64 Arg6, + IN UINT64 Arg7, + IN UINT64 Arg8 + ); + +typedef +SAL_RUNTIMESERVICE +SAL_RETURN_REGS +(EFIAPI *SAL_INTERNAL_EXTENDED_SAL_PROC) ( + IN UINT64 FunctionId, + IN UINT64 Arg2, + IN UINT64 Arg3, + IN UINT64 Arg4, + IN UINT64 Arg5, + IN UINT64 Arg6, + IN UINT64 Arg7, + IN UINT64 Arg8, + IN SAL_EXTENDED_SAL_PROC ExtendedSalProc, + IN BOOLEAN VirtualMode, + IN VOID *ModuleGlobal + ); + +typedef +EFI_STATUS +(EFIAPI *EXTENDED_SAL_ADD_SST_INFO) ( + IN EXTENDED_SAL_BOOT_SERVICE_PROTOCOL *This, + IN UINT16 SalAVersion, + IN UINT16 SalBVersion, + IN CHAR8 *OemId, + IN CHAR8 *ProductId + ); + +typedef +EFI_STATUS +(EFIAPI *EXTENDED_SAL_ADD_SST_ENTRY) ( + IN EXTENDED_SAL_BOOT_SERVICE_PROTOCOL *This, + IN UINT8 EntryType, + IN UINT8 *TableEntry, + IN UINTN EntrySize + ); + +typedef +EFI_STATUS +(EFIAPI *EXTENDED_SAL_REGISTER_INTERNAL_PROC) ( + IN EXTENDED_SAL_BOOT_SERVICE_PROTOCOL *This, + IN EFI_GUID *ClassGuid, + IN UINT64 FunctionId, + IN SAL_INTERNAL_EXTENDED_SAL_PROC InternalSalProc, + IN VOID *PhysicalModuleGlobal + ); + +// +// Extended Sal Boot Service Protocol Interface +// +typedef struct _EXTENDED_SAL_BOOT_SERVICE_PROTOCOL{ + EXTENDED_SAL_ADD_SST_INFO AddSalSystemTableInfo; + EXTENDED_SAL_ADD_SST_ENTRY AddSalSystemTableEntry; + EXTENDED_SAL_REGISTER_INTERNAL_PROC AddExtendedSalProc; + SAL_EXTENDED_SAL_PROC ExtendedSalProc; + SAL_PROC SalProc; +} EXTENDED_SAL_BOOT_SERVICE_PROTOCOL; + +extern EFI_GUID gEfiExtendedSalBootServiceProtocolGuid; + +#endif diff --git a/EDK/Foundation/Protocol/ExtendedSalGuid/ExtendedSalGuid.c b/EDK/Foundation/Protocol/ExtendedSalGuid/ExtendedSalGuid.c new file mode 100644 index 0000000..ec19a8d --- /dev/null +++ b/EDK/Foundation/Protocol/ExtendedSalGuid/ExtendedSalGuid.c @@ -0,0 +1,74 @@ +/*++ + +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: + + ExtendedSalGuid.c + +Abstract: + + The Extended SAL Lock Services protocol as defined in SAL CIS. + + This protocol is installed by the entity that supplies low level + lock primitives that work in dual mode. There are 3 functions + as defined below. + +--*/ + + + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION(ExtendedSalGuid) + +EFI_GUID gEfiExtendedSalBaseIoServicesProtocolGuid = EFI_EXTENDED_SAL_BASE_IO_SERVICES_PROTOCOL_GUID; +EFI_GUID gEfiExtendedSalStallServicesProtocolGuid = EFI_EXTENDED_SAL_STALL_SERVICES_PROTOCOL_GUID; +EFI_GUID gEfiExtendedSalLockServicesProtocolGuid = EFI_EXTENDED_SAL_LOCK_SERVICES_PROTOCOL_GUID; +EFI_GUID gEfiExtendedSalVirtualServicesProtocolGuid = EFI_EXTENDED_SAL_VIRTUAL_SERVICES_PROTOCOL_GUID; +EFI_GUID gEfiExtendedSalRtcServicesProtocolGuid = EFI_EXTENDED_SAL_RTC_SERVICES_PROTOCOL_GUID; +EFI_GUID gEfiExtendedSalVariableServicesProtocolGuid = EFI_EXTENDED_SAL_VARIABLE_SERVICES_PROTOCOL_GUID; +EFI_GUID gEfiExtendedSalMtcServicesProtocolGuid = EFI_EXTENDED_SAL_MTC_SERVICES_PROTOCOL_GUID; +EFI_GUID gEfiExtendedSalResetServicesProtocolGuid = EFI_EXTENDED_SAL_RESET_SERVICES_PROTOCOL_GUID; +EFI_GUID gEfiExtendedSalStatusCodeServicesProtocolGuid = EFI_EXTENDED_SAL_STATUS_CODE_SERVICES_PROTOCOL_GUID; +EFI_GUID gEfiExtendedSalFvBlockServicesProtocolGuid = EFI_EXTENDED_SAL_FV_BLOCK_SERVICES_PROTOCOL_GUID; +EFI_GUID gEfiExtendedSalMpServicesProtocolGuid = EFI_EXTENDED_SAL_MP_SERVICES_PROTOCOL_GUID; +EFI_GUID gEfiExtendedSalPalServicesProtocolGuid = EFI_EXTENDED_SAL_PAL_SERVICES_PROTOCOL_GUID; +EFI_GUID gEfiExtendedSalBaseServicesProtocolGuid = EFI_EXTENDED_SAL_BASE_SERVICES_PROTOCOL_GUID; +EFI_GUID gEfiExtendedSalMcaServicesProtocolGuid = EFI_EXTENDED_SAL_MCA_SERVICES_PROTOCOL_GUID; +EFI_GUID gEfiExtendedSalPciServicesProtocolGuid = EFI_EXTENDED_SAL_PCI_SERVICES_PROTOCOL_GUID; +EFI_GUID gEfiExtendedSalCacheServicesProtocolGuid = EFI_EXTENDED_SAL_CACHE_SERVICES_PROTOCOL_GUID; +EFI_GUID gEfiExtendedSalMcaLogServicesProtocolGuid = EFI_EXTENDED_SAL_MCA_LOG_SERVICES_PROTOCOL_GUID; +EFI_GUID gEfiExtendedSalElogServicesProtocolGuid = EFI_EXTENDED_SAL_ELOG_SERVICES_PROTOCOL_GUID; +EFI_GUID gEfiExtendedSalSensorServicesProtocolGuid = EFI_EXTENDED_SAL_SENSOR_SERVICES_PROTOCOL_GUID; +EFI_GUID gEfiExtendedSalSmComLayerServicesProtocolGuid = EFI_EXTENDED_SAL_SM_COM_LAYER_SERVICES_PROTOCOL_GUID; +EFI_GUID gEfiExtendedSalSstGuid = EFI_EXTENDED_SAL_SST_GUID; + + +EFI_GUID_STRING(&gEfiExtendedSalBaseIoServicesProtocolGuid, "SAL IO", "Extended SAL Base IO Protocol"); +EFI_GUID_STRING(&gEfiExtendedSalStallServicesProtocolGuid, "SAL STALL", "Extended SAL Stall Services Protocol"); +EFI_GUID_STRING(&gEfiExtendedSalLockServicesProtocolGuid, "SAL LOCK", "Extended SAL Lock Services Protocol"); +EFI_GUID_STRING(&gEfiExtendedSalVirtualServicesProtocolGuid, "SAL VIRT", "Extended SAL Virtual Services Protocol"); +EFI_GUID_STRING(&gEfiExtendedSalRtcServicesProtocolGuid, "SAL RTC", "Extended SAL Lock RTC Protocol"); +EFI_GUID_STRING(&gEfiExtendedSalVariableServicesProtocolGuid, "SAL VARIABLE", "Extended SAL Variable Services Protocol"); +EFI_GUID_STRING(&gEfiExtendedSalMtcServicesProtocolGuid, "SAL MTC", "Extended SAL MTC Services Protocol"); +EFI_GUID_STRING(&gEfiExtendedSalResetServicesProtocolGuid, "SAL RESET", "Extended SAL Reset Services Protocol"); +EFI_GUID_STRING(&gEfiExtendedSalStatusCodeServicesProtocolGuid, "SAL STATUS CODE", "Extended SAL Status Call Services Protocol"); +EFI_GUID_STRING(&gEfiExtendedSalFvBlockServicesProtocolGuid, "SAL FVB", "Extended SAL FVB Services Protocol"); +EFI_GUID_STRING(&gEfiExtendedSalMpServicesProtocolGuid, "SAL MP", "Extended SAL MP Services Protocol"); +EFI_GUID_STRING(&gEfiExtendedSalPalServicesProtocolGuid, "SAL PAL", "Extended SAL PAL Services Protocol"); +EFI_GUID_STRING(&gEfiExtendedSalBaseServicesProtocolGuid, "SAL BASE", "Extended SAL Base Services Protocol"); +EFI_GUID_STRING(&gEfiExtendedSalBaseServicesProtocolGuid, "SAL MCA", "Extended SAL MCA Services Protocol"); +EFI_GUID_STRING(&gEfiExtendedSalPciServicesProtocolGuid, "SAL PCI", "Extended SAL PCI Services Protocol"); +EFI_GUID_STRING(&gEfiExtendedSalCacheServicesProtocolGuid, "SAL CACHE", "Extended SAL Cache Services Protocol"); +EFI_GUID_STRING(&gEfiExtendedSalMcaLogServicesProtocolGuid, "MCA LOG", "Extended SAL MCA LOG Services Protocol"); +EFI_GUID_STRING(&gEfiExtendedSalElogServicesProtocolGuid, "ELOG", "Extended SAL ELOG Services Protocol"); +EFI_GUID_STRING(&gEfiExtendedSalSensorServicesProtocolGuid, "SENSOR", "Extended SAL SENSOR Services Protocol"); +EFI_GUID_STRING(&gEfiExtendedSalSmComLayerServicesProtocolGuid, "SAL SM COM", "Extended SAL SM COM Services Protocol"); +EFI_GUID_STRING(&gEfiExtendedSalSstGuid, "SST SET UP", "SAL System Table Header Set up"); diff --git a/EDK/Foundation/Protocol/ExtendedSalGuid/ExtendedSalGuid.h b/EDK/Foundation/Protocol/ExtendedSalGuid/ExtendedSalGuid.h new file mode 100644 index 0000000..de540e5 --- /dev/null +++ b/EDK/Foundation/Protocol/ExtendedSalGuid/ExtendedSalGuid.h @@ -0,0 +1,283 @@ +/*++ + +Copyright (c) 2004 - 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: + + ExtendedSalGuid.h + +Abstract: + + +--*/ + +#ifndef _EXTENDED_SAL_GUID_H_ +#define _EXTENDED_SAL_GUID_H_ + +// +// Extended SAL Services protocol GUIDs +// + +#define EFI_EXTENDED_SAL_BASE_IO_SERVICES_PROTOCOL_GUID \ + { 0x5aea42b5, 0x31e1, 0x4515, 0xbc, 0x31, 0xb8, 0xd5, 0x25, 0x75, 0x65, 0xa6 } + +#define EFI_EXTENDED_SAL_STALL_SERVICES_PROTOCOL_GUID \ + { 0x53a58d06, 0xac27, 0x4d8c, 0xb5, 0xe9, 0xf0, 0x8a, 0x80, 0x65, 0x41, 0x70 } + +#define EFI_EXTENDED_SAL_LOCK_SERVICES_PROTOCOL_GUID \ + { 0x76b75c23, 0xfe4f, 0x4e17, 0xa2, 0xad, 0x1a, 0x65, 0x3d, 0xbb, 0x49, 0x4a } + +#define EFI_EXTENDED_SAL_VIRTUAL_SERVICES_PROTOCOL_GUID \ + { 0xc1a74056, 0x260e, 0x4871, 0xa0, 0x31, 0xe6, 0x45, 0xa6, 0x5b, 0x6e, 0x11 } + +#define EFI_EXTENDED_SAL_RTC_SERVICES_PROTOCOL_GUID \ + { 0x7e97a470, 0xefdb, 0x4d02, 0x8f, 0xce, 0x61, 0x90, 0xd2, 0x7b, 0xa2, 0x96 } + +#define EFI_EXTENDED_SAL_VARIABLE_SERVICES_PROTOCOL_GUID \ + { 0x4ecb6c53, 0xc641, 0x4370, 0x8c, 0xb2, 0x3b, 0x0e, 0x49, 0x6e, 0x83, 0x78 } + +#define EFI_EXTENDED_SAL_MTC_SERVICES_PROTOCOL_GUID \ + { 0x899afd18, 0x75e8, 0x408b, 0xa4, 0x1a, 0x6e, 0x2e, 0x7e, 0xcd, 0xf4, 0x54 } + +#define EFI_EXTENDED_SAL_RESET_SERVICES_PROTOCOL_GUID \ + { 0x7d019990, 0x8ce1, 0x46f5, 0xa7, 0x76, 0x3c, 0x51, 0x98, 0x67, 0x6a, 0xa0 } + +#define EFI_EXTENDED_SAL_STATUS_CODE_SERVICES_PROTOCOL_GUID \ + { 0xdbd91d, 0x55e9, 0x420f, 0x96, 0x39, 0x5e, 0x9f, 0x84, 0x37, 0xb4, 0x4f } + +#define EFI_EXTENDED_SAL_FV_BLOCK_SERVICES_PROTOCOL_GUID \ + { 0xa2271df1, 0xbcbb, 0x4f1d, 0x98, 0xa9, 0x06, 0xbc, 0x17, 0x2f, 0x07, 0x1a } + +#define EFI_EXTENDED_SAL_MP_SERVICES_PROTOCOL_GUID \ + { 0x697d81a2, 0xcf18, 0x4dc0, 0x9e, 0x0d, 0x06, 0x11, 0x3b, 0x61, 0x8a, 0x3f } + +#define EFI_EXTENDED_SAL_PAL_SERVICES_PROTOCOL_GUID \ + { 0xe1cd9d21, 0x0fc2, 0x438d, 0x97, 0x03, 0x04, 0xe6, 0x6d, 0x96, 0x1e, 0x57 } + +#define EFI_EXTENDED_SAL_BASE_SERVICES_PROTOCOL_GUID \ + { 0xd9e9fa06, 0x0fe0, 0x41c3, 0x96, 0xfb, 0x83, 0x42, 0x5a, 0x33, 0x94, 0xf8 } + +#define EFI_EXTENDED_SAL_MCA_SERVICES_PROTOCOL_GUID \ + { 0x2a591128, 0x6cc7, 0x42b1, 0x8a, 0xf0, 0x58, 0x93, 0x3b, 0x68, 0x2d, 0xbb } + +#define EFI_EXTENDED_SAL_PCI_SERVICES_PROTOCOL_GUID \ + { 0xa46b1a31, 0xad66, 0x4905, 0x92, 0xf6, 0x2b, 0x46, 0x59, 0xdc, 0x30, 0x63 } + +#define EFI_EXTENDED_SAL_CACHE_SERVICES_PROTOCOL_GUID \ + { 0xedc9494, 0x2743, 0x4ba5, 0x88, 0x18, 0x0a, 0xef, 0x52, 0x13, 0xf1, 0x88 } + +#define EFI_EXTENDED_SAL_MCA_LOG_SERVICES_PROTOCOL_GUID \ + { 0xcb3fd86e, 0x38a3, 0x4c03, 0x9a, 0x5c, 0x90, 0xcf, 0xa3, 0xa2, 0xab, 0x7a } + +#define EFI_EXTENDED_SAL_ELOG_SERVICES_PROTOCOL_GUID \ + { 0xd5e4ee5f, 0x3e0a, 0x453c, 0xa7, 0x25, 0xb6, 0x92, 0xbb, 0x6, 0x36, 0x5a } + +#define EFI_EXTENDED_SAL_SENSOR_SERVICES_PROTOCOL_GUID \ + { 0x4a153b6e, 0x85a1, 0x4982, 0x98, 0xf4, 0x6a, 0x8c, 0xfc, 0xa4, 0xab, 0xa1 } + +#define EFI_EXTENDED_SAL_SM_COM_LAYER_SERVICES_PROTOCOL_GUID \ + { 0x4356799, 0x81b7, 0x4e08, 0xa3, 0x8d, 0xd9, 0x78, 0xfa, 0x47, 0xba, 0x42 } + +#define EFI_EXTENDED_SAL_SST_GUID \ + { 0x38802700, 0x868a, 0x4b4e, 0x81, 0xd4, 0x4f, 0x1b, 0xdc, 0xcf, 0xb4, 0x6f } + +// +// Extended Sal Proc Function IDs. +// + +// +// BugBug: These enums are name colisions waiting to happen. They should all be +// prefixed with Esal! It might be better to just make them #define, so +// they would be all caps. +// + +typedef enum { + IoRead, + IoWrite, + MemRead, + MemWrite +} EFI_EXTENDED_SAL_BASE_IO_SERVICES_FUNC_ID; + +typedef enum { + Stall +} EFI_EXTENDED_SAL_STALL_FUNC_ID; + + +typedef enum { + InitializeLockService, + AcquireLockService, + ReleaseLockService, + MaxLockServiceFunctionId +} EFI_EXTENDED_SAL_LOCK_SERVICES_FUNC_ID; + +// +// BugBug : Covert the first 3 functions into a lib functions +// and move SalRegisterPhysicalAddress to SAL BASE Class +// +typedef enum { + SetVirtualAddress, + IsVirtual, + IsEfiRuntime, + SalRegisterPhysicalAddress +} EFI_EXTENDED_SAL_VIRTUAL_SERVICES_FUNC_ID; + +typedef enum { + GetTime, + SetTime, + GetWakeupTime, + SetWakeupTime, + GetRtcFreq, + InitializeThreshold, + BumpThresholdCount, + GetThresholdCount +} EFI_EXTENDED_SAL_RTC_SERVICES_FUNC_ID; + +typedef enum { + EsalGetVariable, + EsalGetNextVariableName, + EsalSetVariable +#if (EFI_SPECIFICATION_VERSION >= 0x00020000) + , + EsalQueryVariableInfo +#endif +} EFI_EXTENDED_SAL_VARIABLE_SERVICES_FUNC_ID; + +typedef enum { + GetNextHighMonotonicCount +} EFI_EXTENDED_SAL_MTC_SERVICES_FUNC_ID; + +typedef enum { + ResetSystem +} EFI_EXTENDED_SAL_RESET_SERVICES_FUNC_ID; + +typedef enum { + StatusCode +} EFI_EXTENDED_SAL_STATUS_CODE_FUNC_ID; + +typedef enum { + ReportStatusCode +} EFI_EXTENDED_SAL_STATUS_CODE_SERVICES_FUNC_ID; + +typedef enum { + Read, + Write, + EraseBlock, + GetVolumeAttributes, + SetVolumeAttributes, + GetPhysicalAddress, + GetBlockSize, + EraseCustomBlockRange, +} EFI_EXTENDED_SAL_FV_BLOCK_SERVICES_FUNC_ID; + +typedef enum { + AddCpuData, + RemoveCpuData, + ModifyCpuData, + GetCpuDataByID, + GetCpuDataByIndex, + SendIpi, + CurrentProcInfo, + NumProcessors, + SetMinState, + GetMinState +} EFI_EXTENDED_SAL_MP_SERVICES_FUNC_ID; + +typedef enum { + PalProc, + SetNewPalEntry, + GetNewPalEntry +} EFI_EXTENDED_SAL_PAL_SERVICES_FUNC_ID; + +typedef enum { + SalSetVectors, + SalMcRendez, + SalMcSetParams, + EsalGetVectors, + EsalMcGetParams, + EsalMcGetMcParams, + EsalGetMcCheckinFlags, + EsalGetPlatformBaseFreq +} EFI_EXTENDED_SAL_BASE_SERVICES_FUNC_ID; + +typedef enum { + McaGetStateInfo, + McaRegisterCpu +} EFI_EXTENDED_SAL_MCA_SERVICES_FUNC_ID; + +typedef enum { + SalPciConfigRead, + SalPciConfigWrite +} EFI_EXTENDED_SAL_PCI_SERVICES_FUNC_ID; + +typedef enum { + SalCacheInit, + SalCacheFlush +} EFI_EXTENDED_SAL_CACHE_SERVICES_FUNC_ID; + +typedef enum { + SalGetStateInfo, + SalGetStateInfoSize, + SalClearStateInfo, + EsalGetStateBuffer, + EsalSaveStateBuffer +} EFI_EXTENDED_SAL_MCA_LOG_SERVICES_FUNC_ID; + +typedef enum { + SalSetEventLogData, + SalGetEventLogData, + SalEraseEventLogData, + SalActivateEventLogData +} EFI_EXTENDED_SAL_ELOG_SERVICES_FUNC_ID; + +typedef enum { + EsalGetComControllerInfo, + EsalSendComData, + EsalReceiveComData +} EFI_EXTENDED_SAL_SM_COM_LAYER_SERVICES_FUNC_ID; + +typedef enum { + SalUpdatePal +} EFI_EXTENDED_SAL_UPDATE_PAL_SERVICES_FUNC_ID; + +typedef enum { + EsalReadSensorInfo, + EsalReadSensorStatus, + EsalRearmSensor, + EsalReadSensorData +} EFI_EXTENDED_SAL_SENSOR_SERVICES_FUNC_ID; + +typedef struct { + UINT64 ProtoData; +} ESAL_GUID_DUMMY_PROTOCOL; + +extern EFI_GUID gEfiExtendedSalBaseIoServicesProtocolGuid; +extern EFI_GUID gEfiExtendedSalStallServicesProtocolGuid; +extern EFI_GUID gEfiExtendedSalLockServicesProtocolGuid; +extern EFI_GUID gEfiExtendedSalVirtualServicesProtocolGuid; +extern EFI_GUID gEfiExtendedSalRtcServicesProtocolGuid; +extern EFI_GUID gEfiExtendedSalVariableServicesProtocolGuid; +extern EFI_GUID gEfiExtendedSalMtcServicesProtocolGuid; +extern EFI_GUID gEfiExtendedSalResetServicesProtocolGuid; +extern EFI_GUID gEfiExtendedSalStatusCodeServicesProtocolGuid; +extern EFI_GUID gEfiExtendedSalFvBlockServicesProtocolGuid; +extern EFI_GUID gEfiExtendedSalMpServicesProtocolGuid; +extern EFI_GUID gEfiExtendedSalPalServicesProtocolGuid; +extern EFI_GUID gEfiExtendedSalBaseServicesProtocolGuid; +extern EFI_GUID gEfiExtendedSalMcaServicesProtocolGuid; +extern EFI_GUID gEfiExtendedSalPciServicesProtocolGuid; +extern EFI_GUID gEfiExtendedSalCacheServicesProtocolGuid; +extern EFI_GUID gEfiExtendedSalMcaLogServicesProtocolGuid; +extern EFI_GUID gEfiExtendedSalElogServicesProtocolGuid; +extern EFI_GUID gEfiExtendedSalSensorServicesProtocolGuid; +extern EFI_GUID gEfiExtendedSalSmComLayerServicesProtocolGuid; +extern EFI_GUID gEfiExtendedSalSstGuid; + + +#endif diff --git a/EDK/Foundation/Protocol/FastBootException/FastBootException.c b/EDK/Foundation/Protocol/FastBootException/FastBootException.c new file mode 100644 index 0000000..5c6bea1 --- /dev/null +++ b/EDK/Foundation/Protocol/FastBootException/FastBootException.c @@ -0,0 +1,27 @@ +/*++ + +Copyright (c) 1999 - 2011 Intel Corporation. All rights reserved +This software and associated documentation (if any) is furnished +under a license and may only be used or copied in accordance +with the terms of the license. Except as permitted by such +license, no part of this software or documentation may be +reproduced, stored in a retrieval system, or transmitted in any +form or by any means without the express written consent of +Intel Corporation. + +Module Name: + + FastBootException.c + +Abstract: + + +--*/ + +#include "Tiano.h" + +#include EFI_PROTOCOL_DEFINITION(FastBootException) + +EFI_GUID gFastBootExceptionProtocolGuid = FAST_BOOT_EXCEPTION_PROTOCOL_GUID; + +EFI_GUID_STRING(&gFastBootExceptionProtocolGuid, "FastBootException", "Fast Boot Exception Protocol"); diff --git a/EDK/Foundation/Protocol/FastBootException/FastBootException.h b/EDK/Foundation/Protocol/FastBootException/FastBootException.h new file mode 100644 index 0000000..4019ceb --- /dev/null +++ b/EDK/Foundation/Protocol/FastBootException/FastBootException.h @@ -0,0 +1,41 @@ +/*++ + +Copyright (c) 1999 - 2011 Intel Corporation. All rights reserved +This software and associated documentation (if any) is furnished +under a license and may only be used or copied in accordance +with the terms of the license. Except as permitted by such +license, no part of this software or documentation may be +reproduced, stored in a retrieval system, or transmitted in any +form or by any means without the express written consent of +Intel Corporation. + + +Module Name: + + FastBootException.h + +Abstract: + + This file defines Fast Boot Exception abstraction protocol containing the + exception type and category, which is the indication of an exception occurrence. + +--*/ + +#ifndef _FAST_BOOT_EXCEPTION_H_ +#define _FAST_BOOT_EXCEPTION_H_ + +#include <FastBootDataDef.h> + +#define FAST_BOOT_EXCEPTION_PROTOCOL_GUID \ + {0x3da3f62e, 0x291e, 0x4224, 0x80, 0x5f, 0x2d, 0x5e, 0xb6, 0xb2, 0x9c, 0xe2} + +EFI_FORWARD_DECLARATION (FAST_BOOT_EXCEPTION_PROTOCOL); + +typedef struct _FAST_BOOT_EXCEPTION_PROTOCOL { + FAST_BOOT_EXCEPTION_TYPE FbExceptionType; + FAST_BOOT_EXCEPTION_CATEGORY FbExceptionCategory; +} FAST_BOOT_EXCEPTION_PROTOCOL; + +extern EFI_GUID gFastBootExceptionProtocolGuid; + +#endif diff --git a/EDK/Foundation/Protocol/FaultTolerantWriteLite/FaultTolerantWriteLite.c b/EDK/Foundation/Protocol/FaultTolerantWriteLite/FaultTolerantWriteLite.c new file mode 100644 index 0000000..78892ff --- /dev/null +++ b/EDK/Foundation/Protocol/FaultTolerantWriteLite/FaultTolerantWriteLite.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: + + FaultTolerantWriteLite.c + +Abstract: + + This is a simple fault tolerant write driver, based on PlatformFd library. + And it only supports write BufferSize <= SpareAreaLength. + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION(FaultTolerantWriteLite) + +EFI_GUID gEfiFaultTolerantWriteLiteProtocolGuid = EFI_FTW_LITE_PROTOCOL_GUID; + +EFI_GUID_STRING (&gEfiFaultTolerantWriteLiteProtocolGuid, "FaultTolerantWriteLite Protocol", + "Fault Tolerant Write Lite protocol"); diff --git a/EDK/Foundation/Protocol/FaultTolerantWriteLite/FaultTolerantWriteLite.h b/EDK/Foundation/Protocol/FaultTolerantWriteLite/FaultTolerantWriteLite.h new file mode 100644 index 0000000..90cdf34 --- /dev/null +++ b/EDK/Foundation/Protocol/FaultTolerantWriteLite/FaultTolerantWriteLite.h @@ -0,0 +1,88 @@ +/*++ + +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: + + 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 +// +EFI_FORWARD_DECLARATION (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 +// +typedef struct _EFI_FTW_LITE_PROTOCOL { + EFI_FTW_LITE_WRITE Write; +} EFI_FTW_LITE_PROTOCOL; + +extern EFI_GUID gEfiFaultTolerantWriteLiteProtocolGuid; + +#endif diff --git a/EDK/Foundation/Protocol/FirmwarePerformance/FirmwarePerformance.c b/EDK/Foundation/Protocol/FirmwarePerformance/FirmwarePerformance.c new file mode 100644 index 0000000..aeec629 --- /dev/null +++ b/EDK/Foundation/Protocol/FirmwarePerformance/FirmwarePerformance.c @@ -0,0 +1,27 @@ +/*++ + +Copyright (c) 2011, 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: + + FirmwarePerformance.c + +Abstract: + + Firmware Performance Protocol + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION (FirmwarePerformance) + +EFI_GUID gFirmwarePerformanceProtocolGuid = FIRMWARE_PERFORMANCE_PROTOCOL_GUID; + +EFI_GUID_STRING(&gFirmwarePerformanceProtocolGuid, "Firmware Performance Protocol", "Firmware Performance Protocol"); diff --git a/EDK/Foundation/Protocol/FirmwarePerformance/FirmwarePerformance.h b/EDK/Foundation/Protocol/FirmwarePerformance/FirmwarePerformance.h new file mode 100644 index 0000000..cc6589e --- /dev/null +++ b/EDK/Foundation/Protocol/FirmwarePerformance/FirmwarePerformance.h @@ -0,0 +1,213 @@ +/*++ + +Copyright (c) 2011 - 2012, 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: + + FirmwarePerformance.h + +Abstract: + + Firmware Performance Protocol + +--*/ + +#ifndef _FIRMWARE_PERFORMANCE_H_ +#define _FIRMWARE_PERFORMANCE_H_ + +#define FIRMWARE_PERFORMANCE_PROTOCOL_GUID \ + { \ + 0xbc412d75, 0x2729, 0x4c3a, 0xb1, 0x93, 0x5b, 0x9a, 0x58, 0x8f, 0xf6, 0x6f \ + } + +#define EFI_NULL_GUID \ + { \ + 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 \ + } + +EFI_FORWARD_DECLARATION (FIRMWARE_PERFORMANCE_PROTOCOL); + +// +// FPDT Record types +// +typedef enum { + BASIC_BOOT_PTR_TYPE = 0x0000, + S3_TABLE_PTR_TYPE, + BOOT_MODULE_TABLE_PTR_TYPE = 0x1002, + RUNTIME_MODULE_TABLE_PTR_TYPE, + TIMESTAMP_DELTA_TYPE, + HARDWARE_BOOT_TYPE, + GUID_EVENT_REC_TYPE = 0x1010, + STRING_EVENT_REC_TYPE, + BDS_ATTEMPT_EVENT_REC_TYPE, + PERFORMANCE_RECORD_TYPE_MAX +} PERFORMANCE_RECORD_TYPE; + +// +// Progress Identifiers for Event Records +// +typedef enum { + MODULE_START_ID = 1, + MODULE_END_ID, + MODULE_LOADIMAGE_START_ID, + MODULE_LOADIMAGE_END_ID, + MODULE_DRIVERBINDING_START_ID, + MODULE_DRIVERBINDING_END_ID +} EVENT_RECORD_PROGRESS_ID; + +// +// Performance tokens +// +#define PEI_TOK L"PEI" +#define DXE_TOK L"DXE" +#define BDS_TOK L"BDS" +#define START_IMAGE_TOK L"StartImage" +#define LOAD_IMAGE_TOK L"LoadImage" +#define DRIVERBINDING_START_TOK L"DriverBinding:Start" +#define DRIVERBINDING_SUPPORT_TOK L"DriverBinding:Support" +#define BASIC_BOOT_TOK L"BasicBoot" +#define HARDWARE_BOOT_TOK L"HardwareBoot" +#define EVENT_REC_TOK L"EventRec" +#define BDS_ATTEMPT_TOK L"BdsAttempt" +#define DXE_CORE_DISP_INIT_TOK L"CoreInitializeDispatcher" +#define COREDISPATCHER_TOK L"CoreDispatcher" +#define SMM_MODULE_TOK L"SmmModule" +#define SMM_FUNCTION_TOK L"SmmFunction" + +#define FIRMWARE_MAX_BUFFER 0x16800 // pre-defined buffer size of 90K to accomodate all FPDT records +#define RECORD_REVISION_1 0x1 +#define RECORD_REVISION_2 0x2 +#define STRING_EVENT_RECORD_NAME_LENGTH 24 +#define RMPT_SIG EFI_SIGNATURE_32 ('R', 'M', 'P', 'T') +#define RUNTIME_MODULE_TABLE_PTR_TYPE 0x1003 +#define RUNTIME_MODULE_REC_TYPE 0x1020 +#define RUNTIME_FUNCTION_REC_TYPE 0x1021 +#define DXE_START_ID 0x7000 +#define DXE_END_ID 0x7001 +#define DXE_CORE_DISP_START_ID 0x7010 +#define DXE_CORE_DISP_END_ID 0x7011 +#define COREDISPATCHER_START_ID 0x7020 +#define COREDISPATCHER_END_ID 0x7021 +// +// Fpdt record table structures +// +#pragma pack(push, 1) +typedef struct _BASIC_BOOT_REC { + UINT16 RecType; + UINT8 RecLength; + UINT8 Revision; + UINT32 Reserved; + UINT64 ResetEnd; + UINT64 BootLoaderLoadImage; + UINT64 BootLoaderStartImage; + UINT64 ExitBootServiceEntry; + UINT64 ExitBootServiceExit; +} BASIC_BOOT_REC; + +typedef struct _HARDWARE_BOOT_REC { + UINT16 RecType; + UINT8 RecLength; + UINT8 Revision; + UINT64 HardwareBoot; +} HARDWARE_BOOT_REC; + +typedef struct _STRING_EVENT_REC { + UINT16 RecType; + UINT8 RecLength; + UINT8 Revision; + UINT16 ProgressID; + UINT32 ApicID; + UINT64 Timestamp; + EFI_GUID Guid; + UINT8 NameString[STRING_EVENT_RECORD_NAME_LENGTH]; +} STRING_EVENT_REC; + +typedef struct _GUID_EVENT_REC { + UINT16 RecType; + UINT8 RecLength; + UINT8 Revision; + UINT16 ProgressID; + UINT32 ApicID; + UINT64 Timestamp; + EFI_GUID Guid; +} GUID_EVENT_REC; + +typedef struct _BDS_ATTEMPT_REC { + UINT16 RecType; + UINT8 RecLength; + UINT8 Revision; + UINT32 ApicID; + UINT16 BdsAttemptNo; + UINT64 Timestamp; + UINT64 UEFIBootVar; + CHAR16 DevicePathString; +} BDS_ATTEMPT_REC; + +typedef struct _RUNTIME_PERF_TABLE_HEADER { + UINT32 Signature; + UINT32 Length; + EFI_GUID Guid; +} RUNTIME_PERF_TABLE_HEADER; + +typedef struct _RUNTIME_MODULE_PERF_RECORD { + UINT16 RuntimeRecType; + UINT8 Reclength; + UINT8 Revision; + UINT32 ModuleCallCount; + UINT64 ModuleResidency; +} RUNTIME_MODULE_PERF_RECORD; + +typedef struct _RUNTIME_FUNCTION_PERF_RECORD { + UINT16 RuntimeRecType; + UINT8 Reclength; + UINT8 Revision; + UINT32 Reserved; + UINT32 FunctionId; + UINT32 FunctionCallCount; + UINT64 FunctionResidency; +} RUNTIME_FUNCTION_PERF_RECORD; + +#pragma pack(pop) +// +// Firmware Performance Protocol definition +// +typedef +EFI_STATUS +(EFIAPI *FIRMWARE_PERFORMANCE_PROTOCOL_INSERT_MEASUREMENT) ( + IN FIRMWARE_PERFORMANCE_PROTOCOL *This, + IN EFI_HANDLE Handle, + IN UINT16 RecordType, + IN UINT64 Ticker, + IN UINT16 Identifier OPTIONAL + ); + +typedef +EFI_STATUS +(EFIAPI *FIRMWARE_PERFORMANCE_PROTOCOL_GET_PERFBUFFER_ADDR) ( + IN FIRMWARE_PERFORMANCE_PROTOCOL *This, + OUT UINT32 *PerformanceBuffer + ); + +typedef +UINT32 +(EFIAPI *FIRMWARE_PERFORMANCE_PROTOCOL_GET_PERFBUFFER_LEN) ( + IN FIRMWARE_PERFORMANCE_PROTOCOL *This + ); + + +typedef struct _FIRMWARE_PERFORMANCE_PROTOCOL { + FIRMWARE_PERFORMANCE_PROTOCOL_INSERT_MEASUREMENT InsertMeasurement; + FIRMWARE_PERFORMANCE_PROTOCOL_GET_PERFBUFFER_ADDR GetPerfBufferAddr; + FIRMWARE_PERFORMANCE_PROTOCOL_GET_PERFBUFFER_LEN GetPerfBufferLength; +} FIRMWARE_PERFORMANCE_PROTOCOL; + +extern EFI_GUID gFirmwarePerformanceProtocolGuid; + +#endif diff --git a/EDK/Foundation/Protocol/FirmwareVolumeDispatch/FirmwareVolumeDispatch.c b/EDK/Foundation/Protocol/FirmwareVolumeDispatch/FirmwareVolumeDispatch.c new file mode 100644 index 0000000..04faa1c --- /dev/null +++ b/EDK/Foundation/Protocol/FirmwareVolumeDispatch/FirmwareVolumeDispatch.c @@ -0,0 +1,32 @@ +/*++ + +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: + + FirmwareVolumeDispatch.c + +Abstract: + + Firmware Volume Dispatch protocol as defined in the Tiano Firmware Volume + specification. + + Presence of this protocol tells the dispatch to dispatch from this Firmware + Volume + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION (FirmwareVolumeDispatch) + +EFI_GUID gEfiFirmwareVolumeDispatchProtocolGuid = EFI_FIRMWARE_VOLUME_DISPATCH_PROTOCOL_GUID; + +EFI_GUID_STRING (&gEfiFirmwareVolumeDispatchProtocolGuid, "FirmwareVolumeDispatch Protocol", + "Firmware Volume Dispatch protocol"); diff --git a/EDK/Foundation/Protocol/FirmwareVolumeDispatch/FirmwareVolumeDispatch.h b/EDK/Foundation/Protocol/FirmwareVolumeDispatch/FirmwareVolumeDispatch.h new file mode 100644 index 0000000..0ec478d --- /dev/null +++ b/EDK/Foundation/Protocol/FirmwareVolumeDispatch/FirmwareVolumeDispatch.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: + + FirmwareVolumeDispatch.h + +Abstract: + + Firmware Volume Dispatch protocol as defined in the Tiano Firmware Volume + specification. + + Presence of this protocol tells the dispatch to dispatch from this Firmware + Volume + +--*/ + +#ifndef __FIRMWARE_VOLUME_DISPATCH_H__ +#define __FIRMWARE_VOLUME_DISPATCH_H__ + +#define EFI_FIRMWARE_VOLUME_DISPATCH_PROTOCOL_GUID \ + { 0x7aa35a69, 0x506c, 0x444f, 0xa7, 0xaf, 0x69, 0x4b, 0xf5, 0x6f, 0x71, 0xc8 } + + +extern EFI_GUID gEfiFirmwareVolumeDispatchProtocolGuid; + +#endif diff --git a/EDK/Foundation/Protocol/Fpdt/Fpdt.c b/EDK/Foundation/Protocol/Fpdt/Fpdt.c new file mode 100644 index 0000000..6d4e28d --- /dev/null +++ b/EDK/Foundation/Protocol/Fpdt/Fpdt.c @@ -0,0 +1,31 @@ +/*++ + This file contains a 'Sample Driver' and is licensed as such + under the terms of your license agreement with Intel or your + vendor. This file may be modified by the user, subject to +/*++ + +Copyright (c) 2011, 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: + + Fpdt.c + +Abstract: + + Fpdt Performance Protocol + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION (Fpdt) + +EFI_GUID gFpdtPerformanceProtocolGuid = FPDT_PERFORMANCE_PROTOCOL_GUID; + +EFI_GUID_STRING(&gFpdtPerformanceProtocolGuid, "FPDT Performance Protocol", "FPDT Performance Protocol"); diff --git a/EDK/Foundation/Protocol/Fpdt/Fpdt.h b/EDK/Foundation/Protocol/Fpdt/Fpdt.h new file mode 100644 index 0000000..db243c1 --- /dev/null +++ b/EDK/Foundation/Protocol/Fpdt/Fpdt.h @@ -0,0 +1,56 @@ +/*++ + +Copyright (c) 2011, 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: + + Fpdt.h + +Abstract: + + Fpdt Performance Protocol + +--*/ + +#ifndef _FPDT_H +#define _FPDT_H + +#define FPDT_PERFORMANCE_PROTOCOL_GUID \ + { \ + 0x444c3203, 0xf8b1, 0x42a7, 0xab, 0xe9, 0x2e, 0x58, 0x2, 0x5b, 0xe1, 0x2a \ + } + +EFI_FORWARD_DECLARATION (FPDT_PERFORMANCE_PROTOCOL); + +typedef +EFI_STATUS +(EFIAPI *FPDT_PERFORMANCE_PROTOCOL_GET_FPDT_ADDRESS) ( + IN FPDT_PERFORMANCE_PROTOCOL *This, + OUT UINT32 *FpdtAddress + ); + +typedef +EFI_STATUS +(EFIAPI *FPDT_PERFORMANCE_PROTOCOL_UPDATE_RECORD) ( + IN FPDT_PERFORMANCE_PROTOCOL *This, + IN EFI_HANDLE Handle OPTIONAL, + IN UINT16 Recordtype, + IN UINT64 Data, + IN UINT16 Identifier OPTIONAL + ); + +typedef struct _FPDT_PERFORMANCE_PROTOCOL { + FPDT_PERFORMANCE_PROTOCOL_GET_FPDT_ADDRESS GetFpdtAddress; + FPDT_PERFORMANCE_PROTOCOL_UPDATE_RECORD UpdateRecord; +} FPDT_PERFORMANCE_PROTOCOL; + +extern EFI_GUID gFpdtPerformanceProtocolGuid; + +#endif
\ No newline at end of file diff --git a/EDK/Foundation/Protocol/FvbExtension/FvbExtension.c b/EDK/Foundation/Protocol/FvbExtension/FvbExtension.c new file mode 100644 index 0000000..6bc312c --- /dev/null +++ b/EDK/Foundation/Protocol/FvbExtension/FvbExtension.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: + + FvbExtension.c + +Abstract: + + IPMI Extension Protocol to extend the FVB functionality to multiple erase blocks + at different block offsets. + + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION(FvbExtension) + +EFI_GUID gEfiFvbExtensionProtocolGuid = EFI_FVB_EXTENSION_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiFvbExtensionProtocolGuid, "FVB EXTENSION", "FVB EXTENSION"); diff --git a/EDK/Foundation/Protocol/FvbExtension/FvbExtension.h b/EDK/Foundation/Protocol/FvbExtension/FvbExtension.h new file mode 100644 index 0000000..90dac56 --- /dev/null +++ b/EDK/Foundation/Protocol/FvbExtension/FvbExtension.h @@ -0,0 +1,53 @@ +/*++ + +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: + + 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 } + +EFI_FORWARD_DECLARATION (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 +// +typedef struct _EFI_FVB_EXTENSION_PROTOCOL { + EFI_FV_ERASE_CUSTOM_BLOCK EraseFvbCustomBlock; + } EFI_FVB_EXTENSION_PROTOCOL; + +extern EFI_GUID gEfiFvbExtensionProtocolGuid; + +#endif + diff --git a/EDK/Foundation/Protocol/GenericMemoryTest/GenericMemoryTest.c b/EDK/Foundation/Protocol/GenericMemoryTest/GenericMemoryTest.c new file mode 100644 index 0000000..a80d5f5 --- /dev/null +++ b/EDK/Foundation/Protocol/GenericMemoryTest/GenericMemoryTest.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: + + GenericMemoryTest.c + +Abstract: + + The generic memory test protocol is used to test EFI memory. + + For more information please look at EfiMemoryTest.doc + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION (GenericMemoryTest) + +EFI_GUID gEfiGenericMemTestProtocolGuid = EFI_GENERIC_MEMORY_TEST_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiGenericMemTestProtocolGuid, "GenericMemoryTest Protocol", "Tiano Generic Memory Test Protocol"); diff --git a/EDK/Foundation/Protocol/GenericMemoryTest/GenericMemoryTest.h b/EDK/Foundation/Protocol/GenericMemoryTest/GenericMemoryTest.h new file mode 100644 index 0000000..5638616 --- /dev/null +++ b/EDK/Foundation/Protocol/GenericMemoryTest/GenericMemoryTest.h @@ -0,0 +1,154 @@ +/*++ + +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: + + 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} + +EFI_FORWARD_DECLARATION (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. + +--*/ +; + +typedef 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; +} EFI_GENERIC_MEMORY_TEST_PROTOCOL; + +extern EFI_GUID gEfiGenericMemTestProtocolGuid; +#endif
\ No newline at end of file diff --git a/EDK/Foundation/Protocol/GuidedSectionExtraction/GuidedSectionExtraction.c b/EDK/Foundation/Protocol/GuidedSectionExtraction/GuidedSectionExtraction.c new file mode 100644 index 0000000..b56508e --- /dev/null +++ b/EDK/Foundation/Protocol/GuidedSectionExtraction/GuidedSectionExtraction.c @@ -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: + + GuidedSectionExtraction.c + +Abstract: + + GUIDed section extraction protocol as defined in the Tiano File Image + Format specification. + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION (GuidedSectionExtraction) + +// +// may add more GUIDed section extraction protocol GUID here. +// +EFI_GUID gEfiCrc32GuidedSectionExtractionProtocolGuid = EFI_CRC32_GUIDED_SECTION_EXTRACTION_PROTOCOL_GUID; + +EFI_GUID_STRING + ( + &gEfiSectionExtractionProtocolGuid, "CRC32 GUIDed Section Extraction Protocol", + "Tiano CRC32 GUIDed Section Extraction Protocol" + ); diff --git a/EDK/Foundation/Protocol/GuidedSectionExtraction/GuidedSectionExtraction.h b/EDK/Foundation/Protocol/GuidedSectionExtraction/GuidedSectionExtraction.h new file mode 100644 index 0000000..2107761 --- /dev/null +++ b/EDK/Foundation/Protocol/GuidedSectionExtraction/GuidedSectionExtraction.h @@ -0,0 +1,73 @@ +/*++ + +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: + + GuidedSectionExtraction.h + +Abstract: + + GUIDed section extraction protocol as defined in the Tiano File + Image Format specification. + + This interface provides a means of decoding a GUID defined encapsulation + section. There may be multiple different GUIDs associated with the GUIDed + section extraction protocol. That is, all instances of the GUIDed section + extraction protocol must have the same interface structure. + +--*/ + +#ifndef _GUIDED_SECTION_EXTRACTION_PROTOCOL_H +#define _GUIDED_SECTION_EXTRACTION_PROTOCOL_H + +#include "EfiFirmwareFileSystem.h" + +// +// Protocol GUID definition. Each GUIDed section extraction protocol has the +// same interface but with different GUID. All the GUIDs is defined here. +// May add multiple GUIDs here. +// +#define EFI_CRC32_GUIDED_SECTION_EXTRACTION_PROTOCOL_GUID \ + { \ + 0xFC1BCDB0, 0x7D31, 0x49aa, 0x93, 0x6A, 0xA4, 0x60, 0x0D, 0x9D, 0xD0, 0x83 \ + } + +// +// Forward reference for pure ANSI compatability +// +EFI_FORWARD_DECLARATION (EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL); + +// +// Protocol member functions +// +typedef +EFI_STATUS +(EFIAPI *EFI_EXTRACT_GUIDED_SECTION) ( + IN EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL * This, + IN VOID *InputSection, + OUT VOID **OutputBuffer, + OUT UINTN *OutputSize, + OUT UINT32 *AuthenticationStatus + ); + +// +// Protocol definition +// +typedef struct _EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL { + EFI_EXTRACT_GUIDED_SECTION ExtractSection; +} EFI_GUIDED_SECTION_EXTRACTION_PROTOCOL; + +// +// may add other GUID here +// +extern EFI_GUID gEfiCrc32GuidedSectionExtractionProtocolGuid; + +#endif diff --git a/EDK/Foundation/Protocol/IsaAcpi/IsaAcpi.c b/EDK/Foundation/Protocol/IsaAcpi/IsaAcpi.c new file mode 100644 index 0000000..21e7f39 --- /dev/null +++ b/EDK/Foundation/Protocol/IsaAcpi/IsaAcpi.c @@ -0,0 +1,30 @@ +/*++ + +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: + + IsaAcpi.c + +Abstract: + + EFI ISA ACPI Protocol + +Revision History + +--*/ + +#include "Tiano.h" + +#include EFI_PROTOCOL_DEFINITION (IsaAcpi) + +EFI_GUID gEfiIsaAcpiProtocolGuid = EFI_ISA_ACPI_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiIsaAcpiProtocolGuid, "ISA Acpi Protocol", "ISA Acpi Protocol"); diff --git a/EDK/Foundation/Protocol/IsaAcpi/IsaAcpi.h b/EDK/Foundation/Protocol/IsaAcpi/IsaAcpi.h new file mode 100644 index 0000000..e4a2618 --- /dev/null +++ b/EDK/Foundation/Protocol/IsaAcpi/IsaAcpi.h @@ -0,0 +1,177 @@ +/*++ + +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: + + IsaAcpi.h + +Abstract: + + EFI ISA Acpi Protocol + +Revision History + +--*/ + +#ifndef _ISA_ACPI_H_ +#define _ISA_ACPI_H_ + +#define EFI_ISA_ACPI_PROTOCOL_GUID \ + {0x64a892dc, 0x5561, 0x4536, 0x92, 0xc7, 0x79, 0x9b, 0xfc, 0x18, 0x33, 0x55} + +EFI_FORWARD_DECLARATION (EFI_ISA_ACPI); + +// +// Resource Attribute definition +// +#define EFI_ISA_ACPI_IRQ_TYPE_HIGH_TRUE_EDGE_SENSITIVE 0x01 +#define EFI_ISA_ACPI_IRQ_TYPE_LOW_TRUE_EDGE_SENSITIVE 0x02 +#define EFI_ISA_ACPI_IRQ_TYPE_HIGH_TRUE_LEVEL_SENSITIVE 0x04 +#define EFI_ISA_ACPI_IRQ_TYPE_LOW_TRUE_LEVEL_SENSITIVE 0x08 + +#define EFI_ISA_ACPI_DMA_SPEED_TYPE_MASK 0x03 + +#define EFI_ISA_ACPI_DMA_SPEED_TYPE_COMPATIBILITY 0x00 +#define EFI_ISA_ACPI_DMA_SPEED_TYPE_A 0x01 +#define EFI_ISA_ACPI_DMA_SPEED_TYPE_B 0x02 +#define EFI_ISA_ACPI_DMA_SPEED_TYPE_F 0x03 +#define EFI_ISA_ACPI_DMA_COUNT_BY_BYTE 0x04 +#define EFI_ISA_ACPI_DMA_COUNT_BY_WORD 0x08 +#define EFI_ISA_ACPI_DMA_BUS_MASTER 0x10 +#define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_8_BIT 0x20 +#define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_8_BIT_AND_16_BIT 0x40 +#define EFI_ISA_ACPI_DMA_TRANSFER_TYPE_16_BIT 0x80 + +#define EFI_ISA_ACPI_MEMORY_WIDTH_MASK 0x03 + +#define EFI_ISA_ACPI_MEMORY_WIDTH_8_BIT 0x00 +#define EFI_ISA_ACPI_MEMORY_WIDTH_16_BIT 0x01 +#define EFI_ISA_ACPI_MEMORY_WIDTH_8_BIT_AND_16_BIT 0x02 +#define EFI_ISA_ACPI_MEMORY_WRITEABLE 0x04 +#define EFI_ISA_ACPI_MEMORY_CACHEABLE 0x08 +#define EFI_ISA_ACPI_MEMORY_SHADOWABLE 0x10 +#define EFI_ISA_ACPI_MEMORY_EXPANSION_ROM 0x20 + +#define EFI_ISA_ACPI_IO_DECODE_10_BITS 0x01 +#define EFI_ISA_ACPI_IO_DECODE_16_BITS 0x02 + +// +// Resource List definition: +// at first, the resource was defined as below +// but in the future, it will be defined again that follow ACPI spec: ACPI resource type +// so that, in this driver, we can interpret the ACPI table and get the ISA device information. +// + +typedef enum { + EfiIsaAcpiResourceEndOfList, + EfiIsaAcpiResourceIo, + EfiIsaAcpiResourceMemory, + EfiIsaAcpiResourceDma, + EfiIsaAcpiResourceInterrupt +} EFI_ISA_ACPI_RESOURCE_TYPE; + +typedef struct { + EFI_ISA_ACPI_RESOURCE_TYPE Type; + UINT32 Attribute; + UINT32 StartRange; + UINT32 EndRange; +} EFI_ISA_ACPI_RESOURCE; + +typedef struct { + UINT32 HID; + UINT32 UID; +} EFI_ISA_ACPI_DEVICE_ID; + +typedef struct { + EFI_ISA_ACPI_DEVICE_ID Device; + EFI_ISA_ACPI_RESOURCE *ResourceItem; +} EFI_ISA_ACPI_RESOURCE_LIST; + +// +// Prototypes for the ISA ACPI Protocol +// +typedef +EFI_STATUS +(EFIAPI *EFI_ISA_ACPI_DEVICE_ENUMERATE) ( + IN EFI_ISA_ACPI *This, + OUT EFI_ISA_ACPI_DEVICE_ID **Device + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_ISA_ACPI_SET_DEVICE_POWER) ( + IN EFI_ISA_ACPI *This, + IN EFI_ISA_ACPI_DEVICE_ID *Device, + IN BOOLEAN OnOff + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_ISA_ACPI_GET_CUR_RESOURCE) ( + IN EFI_ISA_ACPI *This, + IN EFI_ISA_ACPI_DEVICE_ID *Device, + OUT EFI_ISA_ACPI_RESOURCE_LIST **ResourceList + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_ISA_ACPI_GET_POS_RESOURCE) ( + IN EFI_ISA_ACPI *This, + IN EFI_ISA_ACPI_DEVICE_ID *Device, + OUT EFI_ISA_ACPI_RESOURCE_LIST **ResourceList + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_ISA_ACPI_SET_RESOURCE) ( + IN EFI_ISA_ACPI *This, + IN EFI_ISA_ACPI_DEVICE_ID *Device, + IN EFI_ISA_ACPI_RESOURCE_LIST *ResourceList + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_ISA_ACPI_ENABLE_DEVICE) ( + IN EFI_ISA_ACPI *This, + IN EFI_ISA_ACPI_DEVICE_ID *Device, + IN BOOLEAN Enable + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_ISA_ACPI_INIT_DEVICE) ( + IN EFI_ISA_ACPI *This, + IN EFI_ISA_ACPI_DEVICE_ID *Device + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_ISA_ACPI_INTERFACE_INIT) ( + IN EFI_ISA_ACPI *This + ); + +// +// Interface structure for the ISA ACPI Protocol +// +typedef struct _EFI_ISA_ACPI { + EFI_ISA_ACPI_DEVICE_ENUMERATE DeviceEnumerate; + EFI_ISA_ACPI_SET_DEVICE_POWER SetPower; + EFI_ISA_ACPI_GET_CUR_RESOURCE GetCurResource; + EFI_ISA_ACPI_GET_POS_RESOURCE GetPosResource; + EFI_ISA_ACPI_SET_RESOURCE SetResource; + EFI_ISA_ACPI_ENABLE_DEVICE EnableDevice; + EFI_ISA_ACPI_INIT_DEVICE InitDevice; + EFI_ISA_ACPI_INTERFACE_INIT InterfaceInit; +} EFI_ISA_ACPI_PROTOCOL; + +extern EFI_GUID gEfiIsaAcpiProtocolGuid; + +#endif diff --git a/EDK/Foundation/Protocol/IsaIo/IsaIo.c b/EDK/Foundation/Protocol/IsaIo/IsaIo.c new file mode 100644 index 0000000..fcbbafb --- /dev/null +++ b/EDK/Foundation/Protocol/IsaIo/IsaIo.c @@ -0,0 +1,30 @@ +/*++ + +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: + + IsaIo.c + +Abstract: + + EFI ISA I/O Protocol + +Revision History + +--*/ + +#include "Tiano.h" + +#include EFI_PROTOCOL_DEFINITION (IsaIo) + +EFI_GUID gEfiIsaIoProtocolGuid = EFI_ISA_IO_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiIsaIoProtocolGuid, "ISA IO Protocol", "ISA IO Protocol"); diff --git a/EDK/Foundation/Protocol/IsaIo/IsaIo.h b/EDK/Foundation/Protocol/IsaIo/IsaIo.h new file mode 100644 index 0000000..5ddd9eb --- /dev/null +++ b/EDK/Foundation/Protocol/IsaIo/IsaIo.h @@ -0,0 +1,176 @@ +/*++ + +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: + + IsaIo.h + +Abstract: + + EFI ISA I/O Protocol + +Revision History + +--*/ + +#ifndef _EFI_ISA_IO_H +#define _EFI_ISA_IO_H + +#include EFI_PROTOCOL_DEFINITION(IsaAcpi) + +// +// Global ID for the ISA I/O Protocol +// + +#define EFI_ISA_IO_PROTOCOL_GUID \ + { 0x7ee2bd44, 0x3da0, 0x11d4, 0x9a, 0x38, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } + +EFI_FORWARD_DECLARATION (EFI_ISA_IO_PROTOCOL); + +// +// Prototypes for the ISA I/O Protocol +// + +typedef enum { + EfiIsaIoWidthUint8, + EfiIsaIoWidthUint16, + EfiIsaIoWidthUint32, + EfiIsaIoWidthReserved, + EfiIsaIoWidthFifoUint8, + EfiIsaIoWidthFifoUint16, + EfiIsaIoWidthFifoUint32, + EfiIsaIoWidthFifoReserved, + EfiIsaIoWidthFillUint8, + EfiIsaIoWidthFillUint16, + EfiIsaIoWidthFillUint32, + EfiIsaIoWidthFillReserved, + EfiIsaIoWidthMaximum +} EFI_ISA_IO_PROTOCOL_WIDTH; + +// +// Attributes for common buffer allocations +// +#define EFI_ISA_IO_ATTRIBUTE_MEMORY_WRITE_COMBINE 0x080 // Map a memory range so write are combined +#define EFI_ISA_IO_ATTRIBUTE_MEMORY_CACHED 0x800 // Map a memory range so all r/w accesses are cached +#define EFI_ISA_IO_ATTRIBUTE_MEMORY_DISABLE 0x1000 // Disable a memory range + +// +// Channel attribute for DMA operations +// +#define EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_SPEED_COMPATIBLE 0x001 +#define EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_SPEED_A 0x002 +#define EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_SPEED_B 0x004 +#define EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_SPEED_C 0x008 +#define EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_WIDTH_8 0x010 +#define EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_WIDTH_16 0x020 +#define EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_SINGLE_MODE 0x040 +#define EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_DEMAND_MODE 0x080 +#define EFI_ISA_IO_SLAVE_DMA_ATTRIBUTE_AUTO_INITIALIZE 0x100 + +typedef enum { + EfiIsaIoOperationBusMasterRead, + EfiIsaIoOperationBusMasterWrite, + EfiIsaIoOperationBusMasterCommonBuffer, + EfiIsaIoOperationSlaveRead, + EfiIsaIoOperationSlaveWrite, + EfiIsaIoOperationMaximum +} EFI_ISA_IO_PROTOCOL_OPERATION; + +typedef +EFI_STATUS +(EFIAPI *EFI_ISA_IO_PROTOCOL_IO_MEM) ( + IN EFI_ISA_IO_PROTOCOL *This, + IN EFI_ISA_IO_PROTOCOL_WIDTH Width, + IN UINT32 Offset, + IN UINTN Count, + IN OUT VOID *Buffer + ); + +typedef struct { + EFI_ISA_IO_PROTOCOL_IO_MEM Read; + EFI_ISA_IO_PROTOCOL_IO_MEM Write; +} EFI_ISA_IO_PROTOCOL_ACCESS; + +typedef +EFI_STATUS +(EFIAPI *EFI_ISA_IO_PROTOCOL_COPY_MEM) ( + IN EFI_ISA_IO_PROTOCOL *This, + IN EFI_ISA_IO_PROTOCOL_WIDTH Width, + IN UINT32 DestOffset, + IN UINT32 SrcOffset, + IN UINTN Count + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_ISA_IO_PROTOCOL_MAP) ( + IN EFI_ISA_IO_PROTOCOL *This, + IN EFI_ISA_IO_PROTOCOL_OPERATION Operation, + IN UINT8 ChannelNumber OPTIONAL, + IN UINT32 ChannelAttributes, + IN VOID *HostAddress, + IN OUT UINTN *NumberOfBytes, + OUT EFI_PHYSICAL_ADDRESS *DeviceAddress, + OUT VOID **Mapping + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_ISA_IO_PROTOCOL_UNMAP) ( + IN EFI_ISA_IO_PROTOCOL *This, + IN VOID *Mapping + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_ISA_IO_PROTOCOL_ALLOCATE_BUFFER) ( + IN EFI_ISA_IO_PROTOCOL *This, + IN EFI_ALLOCATE_TYPE Type, + IN EFI_MEMORY_TYPE MemoryType, + IN UINTN Pages, + OUT VOID **HostAddress, + IN UINT64 Attributes + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_ISA_IO_PROTOCOL_FREE_BUFFER) ( + IN EFI_ISA_IO_PROTOCOL *This, + IN UINTN Pages, + IN VOID *HostAddress + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_ISA_IO_PROTOCOL_FLUSH) ( + IN EFI_ISA_IO_PROTOCOL *This + ); + +// +// Interface structure for the ISA I/O Protocol +// +typedef struct _EFI_ISA_IO_PROTOCOL { + EFI_ISA_IO_PROTOCOL_ACCESS Mem; + EFI_ISA_IO_PROTOCOL_ACCESS Io; + EFI_ISA_IO_PROTOCOL_COPY_MEM CopyMem; + EFI_ISA_IO_PROTOCOL_MAP Map; + EFI_ISA_IO_PROTOCOL_UNMAP Unmap; + EFI_ISA_IO_PROTOCOL_ALLOCATE_BUFFER AllocateBuffer; + EFI_ISA_IO_PROTOCOL_FREE_BUFFER FreeBuffer; + EFI_ISA_IO_PROTOCOL_FLUSH Flush; + EFI_ISA_ACPI_RESOURCE_LIST *ResourceList; + UINT32 RomSize; + VOID *RomImage; +} EFI_ISA_IO_PROTOCOL; + +extern EFI_GUID gEfiIsaIoProtocolGuid; + +#endif diff --git a/EDK/Foundation/Protocol/LoadPe32Image/LoadPe32Image.c b/EDK/Foundation/Protocol/LoadPe32Image/LoadPe32Image.c new file mode 100644 index 0000000..0600aee --- /dev/null +++ b/EDK/Foundation/Protocol/LoadPe32Image/LoadPe32Image.c @@ -0,0 +1,27 @@ +/*++ + +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: + + LoadPe32Image.c + +Abstract: + + Load PE32 Image Protocol + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION (LoadPe32Image) + +EFI_GUID gEfiLoadPeImageGuid = PE32_IMAGE_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiLoadPeImageGuid, "LoadPe32Image Protocol", "Tiano Load Pe32 Image Protocol"); diff --git a/EDK/Foundation/Protocol/LoadPe32Image/LoadPe32Image.h b/EDK/Foundation/Protocol/LoadPe32Image/LoadPe32Image.h new file mode 100644 index 0000000..ae54e84 --- /dev/null +++ b/EDK/Foundation/Protocol/LoadPe32Image/LoadPe32Image.h @@ -0,0 +1,64 @@ +/*++ + +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: + + LoadPe32Image.h + +Abstract: + + Load PE32 Image Protocol + +--*/ + +#ifndef _LOAD_PE32_IMAGE_H_ +#define _LOAD_PE32_IMAGE_H_ + +#define PE32_IMAGE_PROTOCOL_GUID \ + {0x5cb5c776,0x60d5,0x45ee,0x88,0x3c,0x45,0x27,0x8,0xcd,0x74,0x3f } + +#define EFI_LOAD_PE_IMAGE_ATTRIBUTE_NONE 0x00 +#define EFI_LOAD_PE_IMAGE_ATTRIBUTE_RUNTIME_REGISTRATION 0x01 +#define EFI_LOAD_PE_IMAGE_ATTRIBUTE_DEBUG_IMAGE_INFO_TABLE_REGISTRATION 0x02 + +EFI_FORWARD_DECLARATION (EFI_PE32_IMAGE_PROTOCOL); + +typedef +EFI_STATUS +(EFIAPI *LOAD_PE_IMAGE) ( + IN EFI_PE32_IMAGE_PROTOCOL *This, + IN EFI_HANDLE ParentImageHandle, + IN EFI_DEVICE_PATH_PROTOCOL *FilePath, + IN VOID *SourceBuffer OPTIONAL, + IN UINTN SourceSize, + IN EFI_PHYSICAL_ADDRESS DstBuffer OPTIONAL, + OUT UINTN *NumberOfPages OPTIONAL, + OUT EFI_HANDLE *ImageHandle, + OUT EFI_PHYSICAL_ADDRESS *EntryPoint OPTIONAL, + IN UINT32 Attribute + ); + +typedef +EFI_STATUS +(EFIAPI *UNLOAD_PE_IMAGE) ( + IN EFI_PE32_IMAGE_PROTOCOL *This, + IN EFI_HANDLE ImageHandle + ); + +typedef struct _EFI_PE32_IMAGE_PROTOCOL { + LOAD_PE_IMAGE LoadPeImage; + UNLOAD_PE_IMAGE UnLoadPeImage; +} EFI_PE32_IMAGE_PROTOCOL; + +extern EFI_GUID gEfiLoadPeImageGuid; + +#endif + diff --git a/EDK/Foundation/Protocol/NicIp4Config/NicIp4Config.c b/EDK/Foundation/Protocol/NicIp4Config/NicIp4Config.c new file mode 100644 index 0000000..ced316c --- /dev/null +++ b/EDK/Foundation/Protocol/NicIp4Config/NicIp4Config.c @@ -0,0 +1,37 @@ +/*++ + +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: + + NicIp4Config.c + +Abstract: + +--*/ + +#include "EfiSpec.h" +#include EFI_PROTOCOL_DEFINITION (NicIp4Config) + +EFI_GUID gEfiNicIp4ConfigProtocolGuid = EFI_NIC_IP4_CONFIG_PROTOCOL_GUID; + +EFI_GUID_STRING ( + &gEfiNicIp4ConfigProtocolGuid, + "NicIP4Config Protocol", + "NicIP4Config Protocol" + ); + +EFI_GUID gEfiNicIp4ConfigVariableGuid = EFI_NIC_IP4_CONFIG_VARIABLE_GUID; + +EFI_GUID_STRING( + &gEfiNicIp4ConfigVariableGuid, + "Ip4 Static Config", + "Ip4 Configuration Data" + ); diff --git a/EDK/Foundation/Protocol/NicIp4Config/NicIp4Config.h b/EDK/Foundation/Protocol/NicIp4Config/NicIp4Config.h new file mode 100644 index 0000000..6cd1ec3 --- /dev/null +++ b/EDK/Foundation/Protocol/NicIp4Config/NicIp4Config.h @@ -0,0 +1,118 @@ +/*++ + +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: + + NicIp4Config.h + +Abstract: + +--*/ + +#ifndef _NIC_IP4_CONFIG_H_ +#define _NIC_IP4_CONFIG_H_ + +#include EFI_PROTOCOL_DEFINITION (Ip4Config) + +#define EFI_NIC_IP4_CONFIG_PROTOCOL_GUID \ + {0xdca3d4d, 0x12da, 0x4728, 0xbf, 0x7e, 0x86, 0xce, 0xb9, 0x28, 0xd0, 0x67} + +#define EFI_NIC_IP4_CONFIG_VARIABLE_GUID \ + {0xd8944553, 0xc4dd, 0x41f4, 0x9b, 0x30, 0xe1, 0x39, 0x7c, 0xfb, 0x26, 0x7b} + +#define EFI_NIC_IP4_CONFIG_VARIABLE L"EfiNicIp4ConfigVariable" + + +typedef struct _EFI_NIC_IP4_CONFIG_PROTOCOL EFI_NIC_IP4_CONFIG_PROTOCOL; + +typedef enum { + // + // Config source: dhcp or static + // + IP4_CONFIG_SOURCE_DHCP = 0, + IP4_CONFIG_SOURCE_STATIC, + IP4_CONFIG_SOURCE_MAX, + + IP4_NIC_NAME_LENGTH = 64, + MAX_IP4_CONFIG_IN_VARIABLE = 16, +}; + +// +// The following structures are used by drivers/applications other +// than EFI_IP4_PROTOCOL, such as ifconfig shell application, to +// communicate the IP configuration information to EFI_IP4_CONFIG_PROTOCOL. +// EFI_IP4_CONFIG_PROTOCOL in turn is used by EFI_IP4_PROTOCOL to get +// the default IP4 configuration. ifconfig can't use the EFI_IP4_PROTOCOL +// because it don't know how to configure the default IP address even +// it has got the address. +// +// NIC_ADDR contains the interface's type and MAC address to identify +// a specific NIC. NIC_IP4_CONFIG_INFO contains the IP4 configure +// parameters for that NIC. IP4_CONFIG_VARIABLE is the EFI variable to +// save the configuration. NIC_IP4_CONFIG_INFO and IP4_CONFIG_VARIABLE +// is of variable length. +// +// EFI_NIC_IP4_CONFIG_PROTOCOL is a priority protocol, not defined by UEFI2.0 +// +typedef struct { + UINT16 Type; + UINT8 Len; + EFI_MAC_ADDRESS MacAddr; +} NIC_ADDR; + +typedef struct { + NIC_ADDR NicAddr; // Link layer address to identify the NIC + UINT32 Source; // Static or DHCP + BOOLEAN Perment; // Survive the reboot or not + EFI_IP4_IPCONFIG_DATA Ip4Info; // IP addresses +} NIC_IP4_CONFIG_INFO; + +typedef struct { + UINT32 Len; // Total length of the variable + UINT16 CheckSum; // CheckSum, the same as IP4 head checksum + UINT32 Count; // Number of NIC_IP4_CONFIG_INFO follows + NIC_IP4_CONFIG_INFO ConfigInfo; +} IP4_CONFIG_VARIABLE; + +typedef +EFI_STATUS +(EFIAPI *EFI_NIC_IP4_CONFIG_GET_INFO) ( + IN EFI_NIC_IP4_CONFIG_PROTOCOL *This, + IN OUT UINTN *Len, + OUT NIC_IP4_CONFIG_INFO *NicConfig OPTIONAL + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_NIC_IP4_CONFIG_SET_INFO) ( + IN EFI_NIC_IP4_CONFIG_PROTOCOL *This, + IN NIC_IP4_CONFIG_INFO *NicConfig, OPTIONAL + IN BOOLEAN ReConfig + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_NIC_IP4_CONFIG_GET_NAME) ( + IN EFI_NIC_IP4_CONFIG_PROTOCOL *This, + IN UINT16 *Name, OPTIONAL + IN NIC_ADDR *NicAddr OPTIONAL + ); + +typedef +struct _EFI_NIC_IP4_CONFIG_PROTOCOL { + EFI_NIC_IP4_CONFIG_GET_NAME GetName; + EFI_NIC_IP4_CONFIG_GET_INFO GetInfo; + EFI_NIC_IP4_CONFIG_SET_INFO SetInfo; +}; + +extern EFI_GUID gEfiNicIp4ConfigVariableGuid; +extern EFI_GUID gEfiNicIp4ConfigProtocolGuid; +#endif diff --git a/EDK/Foundation/Protocol/PciHotPlugRequest/PciHotPlugRequest.c b/EDK/Foundation/Protocol/PciHotPlugRequest/PciHotPlugRequest.c new file mode 100644 index 0000000..07c41bf --- /dev/null +++ b/EDK/Foundation/Protocol/PciHotPlugRequest/PciHotPlugRequest.c @@ -0,0 +1,27 @@ +/*++ + +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: + + PciHotPlugRequest.c + +Abstract: + + + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION (PciHotPlugRequest) + +EFI_GUID gEfiPciHotPlugRequestProtocolGuid = EFI_PCI_HOTPLUG_REQUEST_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiPciHotPlugRequestProtocolGuid, "Pci Hot Plug Request Protocol", "Tiano Hot Plug Request Protocol"); diff --git a/EDK/Foundation/Protocol/PciHotPlugRequest/PciHotPlugRequest.h b/EDK/Foundation/Protocol/PciHotPlugRequest/PciHotPlugRequest.h new file mode 100644 index 0000000..11b2d66 --- /dev/null +++ b/EDK/Foundation/Protocol/PciHotPlugRequest/PciHotPlugRequest.h @@ -0,0 +1,55 @@ +/*++ + +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: + + PciHotPlugRequest.h + +Abstract: + + + +--*/ + +#ifndef _PCI_HOTPLUG_REQUEST_H_ +#define _PCI_HOTPLUG_REQUEST_H_ + +#define EFI_PCI_HOTPLUG_REQUEST_PROTOCOL_GUID \ +{0x19cb87ab,0x2cb9,0x4665,0x83,0x60,0xdd,0xcf,0x60,0x54,0xf7,0x9d} + +typedef enum { + EfiPciHotPlugRequestAdd, + EfiPciHotplugRequestRemove +} EFI_PCI_HOTPLUG_OPERATION; + +EFI_FORWARD_DECLARATION (EFI_PCI_HOTPLUG_REQUEST_PROTOCOL); + +typedef +EFI_STATUS +(EFIAPI *EFI_PCI_HOTPLUG_REQUEST_NOTIFY) ( + IN EFI_PCI_HOTPLUG_REQUEST_PROTOCOL *This, + IN EFI_PCI_HOTPLUG_OPERATION Operation, + IN EFI_HANDLE Controller, + IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath OPTIONAL, + IN OUT UINT8 *NumberOfChildren, + IN OUT EFI_HANDLE *ChildHandleBuffer +); + + + +typedef struct _EFI_PCI_HOTPLUG_REQUEST_PROTOCOL { + EFI_PCI_HOTPLUG_REQUEST_NOTIFY Notify; +} EFI_PCI_HOTPLUG_REQUEST_PROTOCOL; + + +extern EFI_GUID gEfiPciHotPlugRequestProtocolGuid; + +#endif diff --git a/EDK/Foundation/Protocol/Performance/Performance.c b/EDK/Foundation/Protocol/Performance/Performance.c new file mode 100644 index 0000000..faad0ca --- /dev/null +++ b/EDK/Foundation/Protocol/Performance/Performance.c @@ -0,0 +1,27 @@ +/*++ + +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: + + Performance.c + +Abstract: + + DXE performance checking infrastructure + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION (Performance) + +EFI_GUID gEfiPerformanceProtocolGuid = EFI_PERFORMANCE_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiPerformanceProtocolGuid, "Performance Protocol", "Performance Protocol"); diff --git a/EDK/Foundation/Protocol/Performance/Performance.h b/EDK/Foundation/Protocol/Performance/Performance.h new file mode 100644 index 0000000..0fd5cc9 --- /dev/null +++ b/EDK/Foundation/Protocol/Performance/Performance.h @@ -0,0 +1,103 @@ +/*++ + +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: + + Performance.h + +Abstract: + + +--*/ + +#ifndef _EFI_PERFORMANCE_H_ +#define _EFI_PERFORMANCE_H_ + +#define EFI_PERFORMANCE_PROTOCOL_GUID \ + { 0xFFECFFFF, 0x923C, 0x14d2, 0x9E, 0x3F, 0x22, 0xA0, 0xC9, 0x69, 0x56, 0x3B } + +#define EFI_NULL_GUID \ + { 0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } + + +EFI_FORWARD_DECLARATION (EFI_PERFORMANCE_PROTOCOL); + +#define DXE_TOK L"DXE" +#define SHELL_TOK L"SHELL" +#define PEI_TOK L"PEI" +#define BDS_TOK L"BDS" +#define DRIVERBINDING_START_TOK L"DriverBinding:Start" +#define DRIVERBINDING_SUPPORT_TOK L"DriverBinding:Support" +#define START_IMAGE_TOK L"StartImage" +#define LOAD_IMAGE_TOK L"LoadImage" + +#define DXE_PHASE 0 +#define SHELL_PHASE 1 +#define PEI_PHASE 2 + +#define EFI_PERF_TOKEN_LENGTH 32 +#define EFI_PERF_HOST_LENGTH 32 +#define EFI_PERF_PDBFILENAME_LENGTH 28 + +typedef struct { + EFI_HANDLE Handle; + UINT16 Token[EFI_PERF_TOKEN_LENGTH]; + UINT16 Host[EFI_PERF_HOST_LENGTH]; + UINT64 StartTick; + UINT64 EndTick; + EFI_GUID GuidName; + UINT8 PdbFileName[EFI_PERF_PDBFILENAME_LENGTH]; + UINT8 Phase; +} EFI_GAUGE_DATA ; + + +typedef +EFI_STATUS +(EFIAPI * EFI_PERF_START_GAUGE) ( + IN EFI_PERFORMANCE_PROTOCOL *This, + IN EFI_HANDLE Handle, + IN UINT16 *Token, + IN UINT16 *Host, + IN UINT64 Ticker + ); + +typedef +EFI_STATUS +(EFIAPI * EFI_PERF_END_GAUGE) ( + IN EFI_PERFORMANCE_PROTOCOL *This, + IN EFI_HANDLE Handle, + IN UINT16 *Token, + IN UINT16 *Host, + IN UINT64 Ticker + ); + + +typedef +EFI_GAUGE_DATA * +(EFIAPI * EFI_PERF_GET_GAUGE) ( + IN EFI_PERFORMANCE_PROTOCOL *This, + IN EFI_HANDLE Handle, + IN UINT16 *Token, + IN UINT16 *Host, + IN EFI_GAUGE_DATA *PrevGauge + ); + + +typedef struct _EFI_PERFORMANCE_PROTOCOL{ + EFI_PERF_START_GAUGE StartGauge; + EFI_PERF_END_GAUGE EndGauge; + EFI_PERF_GET_GAUGE GetGauge; +} EFI_PERFORMANCE_PROTOCOL; + +extern EFI_GUID gEfiPerformanceProtocolGuid; + +#endif + diff --git a/EDK/Foundation/Protocol/PlatformMemTest/PlatformMemTest.c b/EDK/Foundation/Protocol/PlatformMemTest/PlatformMemTest.c new file mode 100644 index 0000000..7789c37 --- /dev/null +++ b/EDK/Foundation/Protocol/PlatformMemTest/PlatformMemTest.c @@ -0,0 +1,30 @@ +/*++ + +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: + + PlatformMemTest.c + +Abstract: + + // TBD defined in the Tiano specification?? + + The Platform memory test protocol is used to provide platform specific + information and functionality for memory test + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION (PlatformMemTest) + +EFI_GUID gEfiPlatformMemTestGuid = EFI_PLATFORM_MEMTEST_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiPlatformMemTestGuid, "Platform Memory Test Protocol", "Platform MemTest protocol"); diff --git a/EDK/Foundation/Protocol/PlatformMemTest/PlatformMemTest.h b/EDK/Foundation/Protocol/PlatformMemTest/PlatformMemTest.h new file mode 100644 index 0000000..d2270e9 --- /dev/null +++ b/EDK/Foundation/Protocol/PlatformMemTest/PlatformMemTest.h @@ -0,0 +1,261 @@ + + /*++ + +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: + + PlatformMemtest.h + +Abstract: + This files defines the protocol produced by platform memory test driver. + +--*/ + +#ifndef __PLATFORM_MEMTEST_H__ +#define __PLATFORM_MEMTEST_H__ + +#if (EFI_SPECIFICATION_VERSION >= 0x0002000A) +#include EFI_PROTOCOL_CONSUMER (HiiDatabase) +#else +#include EFI_PROTOCOL_CONSUMER (Hii) +#endif +#include EFI_PROTOCOL_CONSUMER (GenericMemoryTest) + + +#define EFI_PLATFORM_MEMTEST_PROTOCOL_GUID \ + { 0x859ba18, 0x7dd7, 0x4ed7, 0xa8, 0x8e, 0x10, 0x9c, 0x63, 0x91, 0x7b, 0xdd } + +// +// Forward reference for pure ANSI compatability +// +EFI_FORWARD_DECLARATION (EFI_PLATFORM_MEMTEST_PROTOCOL); + + +// +// Basic type definitions +// +typedef UINT16 EFI_DIMM_ID; +#define EFI_INVALID_DIMM_ID 0xFFFF + +// +// This describes the capabilities +// +typedef struct { + UINT32 HwCap; + EFI_PHYSICAL_ADDRESS InitBlockSize; + EFI_PHYSICAL_ADDRESS TestBlockSize; +} EFI_PLATFORM_MEMTEST_CAPABILITIES; + +// +// This defines the platform driver phases to use in notify phase +// +typedef enum { + EfiMemtestPhaseBegin, + EfiMemtestPhaseEnd, + EfiMemtestPhaseMaximum +} EFI_MEMTEST_PHASE ; + + +// +// Definitions of Capability bits +// +#define EFI_MEMTEST_CAP_NONE 0X00000000 +#define EFI_MEMTEST_CAP_ECC 0X00000001 +#define EFI_MEMTEST_CAP_HW_TEST 0X00000002 +#define EFI_MEMTEST_CAP_HW_INIT 0X00000004 + +// +// This describes the pattern for testing all memory cells +// +typedef struct { + UINT32 Count; // Number of patterns + UINT32 Width; // Width of patterns + VOID *Pattern; // Array of patterns +}EFI_MEMTEST_DATA_PATTERN; + +// +// This describes the data and address line patterns +// +typedef struct { + UINT32 Count; // Number of patterns + EFI_PHYSICAL_ADDRESS *Address; // Array of addresses + EFI_PHYSICAL_ADDRESS *Pattern; // Array of patterns +} EFI_MEMTEST_ADDRESS_PATTERN; + + +#define EFI_INVALID_DIMM_ID 0xFFFF + +// +// DIMM information exported by the platform driver +// + +typedef struct { + EFI_DIMM_ID DimmId; + STRING_REF DimmReference; +} EFI_MEMTEST_DIMM_INFO; + + +// +// Various types of errors +// +typedef enum { + EfiMemtestCorrectableError = 1, + EfiMemtestUncorrectableError, + EfiMemtestErrorMaximum, +} EFI_DIMM_ERROR; + +// +// Actions to be taken. +// +typedef enum { + EfiMemtestActionReport = 1, + EfiMemtestActionDisableMem, + EfiMemtestActionMaximum, +} EFI_MEMTEST_ERROR_ACTION; + + +// +// Structure indicating a policy entry. +// + +typedef struct { + EFI_DIMM_ERROR ErrorType; + UINT32 Threshold; + EFI_MEMTEST_ERROR_ACTION Action; +} EFI_MEMTEST_POLICY_ENTRY; + + + +// +// Error Information. +// +typedef struct { + EFI_DIMM_ERROR Error; + EFI_DIMM_ID DimmId; +} EFI_PLATFORM_MEMTEST_ERROR; + + +typedef +EFI_STATUS +(EFIAPI *EFI_PLATFORM_MEMTEST_NOTIFY_PHASE) ( + IN EFI_PLATFORM_MEMTEST_PROTOCOL *This, + IN EFI_MEMTEST_PHASE Phase + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_PLATFORM_MEMTEST_GET_PLATFORM_INFO) ( + IN EFI_PLATFORM_MEMTEST_PROTOCOL *This, + OUT EFI_PLATFORM_MEMTEST_CAPABILITIES *Capabilities, + OUT EFI_MEMTEST_ADDRESS_PATTERN *AddressPattern, + OUT EFI_MEMTEST_DATA_PATTERN *DataPattern, + OUT EFI_MEMTEST_DATA_PATTERN *MemoryPattern, + OUT UINT32 *EntryCount, + OUT EFI_MEMTEST_POLICY_ENTRY **PolicyGrid + ); + +typedef +EFI_STATUS +(EFIAPI * EFI_PLATFORM_MEMTEST_GET_NEXT_DIMM_INFO) ( + IN EFI_PLATFORM_MEMTEST_PROTOCOL *This, + IN OUT EFI_MEMTEST_DIMM_INFO *DimmInfo + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_PLATFORM_MEMTEST_INITIALIZE_MEMORY) ( + IN EFI_PLATFORM_MEMTEST_PROTOCOL *This, + IN EFI_PHYSICAL_ADDRESS Start, + IN EFI_PHYSICAL_ADDRESS Size + ); + +typedef +EFI_STATUS +(EFIAPI * EFI_PLATFORM_MEMTEST_HW_MEMORY_TEST) ( + IN EFI_PLATFORM_MEMTEST_PROTOCOL *This, + IN EXTENDMEM_COVERAGE_LEVEL Level, + IN EFI_PHYSICAL_ADDRESS Start, + IN EFI_PHYSICAL_ADDRESS Size, + OUT UINTN *ErrorCount, + OUT EFI_PLATFORM_MEMTEST_ERROR **ErrorInfo + ); + +typedef +EFI_STATUS +(EFIAPI * EFI_PLATFORM_MEMTEST_FLUSH_BUFFER) ( + IN EFI_PLATFORM_MEMTEST_PROTOCOL *This + ); + +typedef +EFI_STATUS +(EFIAPI * EFI_PLATFORM_MEMTEST_CHECK_FOR_ERROR) ( + IN EFI_PLATFORM_MEMTEST_PROTOCOL *This, + OUT UINT32 *ErrorCount, + OUT EFI_PLATFORM_MEMTEST_ERROR **ErrorInfo + + ); + +typedef +EFI_STATUS +(EFIAPI * EFI_PLATFORM_MEMTEST_LOCATE_BAD_DIMM) ( + IN EFI_PLATFORM_MEMTEST_PROTOCOL *This, + IN EFI_PHYSICAL_ADDRESS FailingAddress, + IN UINT8 Expected, + IN UINT8 Found, + OUT UINT32 *ErrorInfoCount, + OUT EFI_PLATFORM_MEMTEST_ERROR **ErrorInfoBuffer + ); + +typedef +EFI_STATUS +(EFIAPI * EFI_PLATFORM_MEMTEST_CLEAR_ERROR) ( + IN EFI_PLATFORM_MEMTEST_PROTOCOL *This + ); + +typedef +EFI_STATUS +(EFIAPI * EFI_PLATFORM_MEMTEST_DISABLE_DIMM) ( + IN EFI_PLATFORM_MEMTEST_PROTOCOL *This, + IN UINT16 *DimmCount, + IN EFI_DIMM_ID *DimmIds, + IN BOOLEAN RebootRequired + + ); + +typedef +EFI_STATUS +(EFIAPI * EFI_PLATFORM_MEMTEST_OVERLAP) ( + IN EFI_PLATFORM_MEMTEST_PROTOCOL *This, + IN EFI_DIMM_ID DimmId, + IN EFI_PHYSICAL_ADDRESS start, + IN EFI_PHYSICAL_ADDRESS Size, + OUT BOOLEAN *Overlap + ); + +typedef struct _EFI_PLATFORM_MEMTEST_PROTOCOL { + EFI_PLATFORM_MEMTEST_NOTIFY_PHASE NotifyPhase; + EFI_PLATFORM_MEMTEST_GET_PLATFORM_INFO GetPlatformInfo; + EFI_PLATFORM_MEMTEST_GET_NEXT_DIMM_INFO GetNextDimmInfo; + EFI_PLATFORM_MEMTEST_INITIALIZE_MEMORY InitializeMem; + EFI_PLATFORM_MEMTEST_HW_MEMORY_TEST HwTest; + EFI_PLATFORM_MEMTEST_FLUSH_BUFFER FlushBuffer; + EFI_PLATFORM_MEMTEST_CHECK_FOR_ERROR CheckError; + EFI_PLATFORM_MEMTEST_LOCATE_BAD_DIMM LocateBadDimm; + EFI_PLATFORM_MEMTEST_CLEAR_ERROR ClearError; + EFI_PLATFORM_MEMTEST_DISABLE_DIMM DisableDimm; + EFI_PLATFORM_MEMTEST_OVERLAP Overlap; +} EFI_PLATFORM_MEMTEST_PROTOCOL; + + + +extern EFI_GUID gEfiPlatformMemTestGuid; + +#endif diff --git a/EDK/Foundation/Protocol/Print/Print.c b/EDK/Foundation/Protocol/Print/Print.c new file mode 100644 index 0000000..d3caecf --- /dev/null +++ b/EDK/Foundation/Protocol/Print/Print.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: + + Print.c + +Abstract: + + This file defines the Print protocol interface to provide a unified + print function + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION (Print) + +EFI_GUID gEfiPrintProtocolGuid = EFI_PRINT_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiPrintProtocolGuid, "Print Protocol", "Print 1.0 protocol"); + diff --git a/EDK/Foundation/Protocol/Print/Print.h b/EDK/Foundation/Protocol/Print/Print.h new file mode 100644 index 0000000..094591f --- /dev/null +++ b/EDK/Foundation/Protocol/Print/Print.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: + + 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 +// +EFI_FORWARD_DECLARATION (EFI_PRINT_PROTOCOL); + +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 + ); + +typedef struct _EFI_PRINT_PROTOCOL { + EFI_VSPRINT VSPrint; +} EFI_PRINT_PROTOCOL; + + +extern EFI_GUID gEfiPrintProtocolGuid; + +#endif
\ No newline at end of file diff --git a/EDK/Foundation/Protocol/Ps2Policy/Ps2Policy.c b/EDK/Foundation/Protocol/Ps2Policy/Ps2Policy.c new file mode 100644 index 0000000..cb49b7f --- /dev/null +++ b/EDK/Foundation/Protocol/Ps2Policy/Ps2Policy.c @@ -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: + + Ps2Policy.c + +Abstract: + + Protocol used for PS/2 Policy definition. + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION (Ps2Policy) + +EFI_GUID gEfiPs2PolicyProtocolGuid = EFI_PS2_POLICY_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiPs2PolicyProtocolGuid, "PS2 Policy", "Policy for Configuring PS2"); diff --git a/EDK/Foundation/Protocol/Ps2Policy/Ps2Policy.h b/EDK/Foundation/Protocol/Ps2Policy/Ps2Policy.h new file mode 100644 index 0000000..89ce6bf --- /dev/null +++ b/EDK/Foundation/Protocol/Ps2Policy/Ps2Policy.h @@ -0,0 +1,50 @@ +/*++ + +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: + + Ps2Policy.h + +Abstract: + + Protocol used for PS/2 Policy definition. + +--*/ + +#ifndef _PS2_POLICY_PROTOCOL_H_ +#define _PS2_POLICY_PROTOCOL_H_ + +EFI_FORWARD_DECLARATION (EFI_PS2_POLICY_PROTOCOL); + +#define EFI_PS2_POLICY_PROTOCOL_GUID \ + { \ + 0x4df19259, 0xdc71, 0x4d46, 0xbe, 0xf1, 0x35, 0x7b, 0xb5, 0x78, 0xc4, 0x18 \ + } + +#define EFI_KEYBOARD_CAPSLOCK 0x0004 +#define EFI_KEYBOARD_NUMLOCK 0x0002 +#define EFI_KEYBOARD_SCROLLLOCK 0x0001 + +typedef +EFI_STATUS +(EFIAPI *EFI_PS2_INIT_HARDWARE) ( + IN EFI_HANDLE Handle + ); + +typedef struct _EFI_PS2_POLICY_PROTOCOL { + UINT8 KeyboardLight; + EFI_PS2_INIT_HARDWARE Ps2InitHardware; +} EFI_PS2_POLICY_PROTOCOL; + +extern EFI_GUID gEfiPs2PolicyProtocolGuid; + +#endif diff --git a/EDK/Foundation/Protocol/PxeDhcp4/PxeDhcp4.c b/EDK/Foundation/Protocol/PxeDhcp4/PxeDhcp4.c new file mode 100644 index 0000000..d5befac --- /dev/null +++ b/EDK/Foundation/Protocol/PxeDhcp4/PxeDhcp4.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: + PxeDhcp4.c + +Abstract: + PxeDhcp4 GUID declaration + +--*/ + +#include "Tiano.h" + +#include EFI_PROTOCOL_DEFINITION (PxeDhcp4) + +EFI_GUID gEfiPxeDhcp4ProtocolGuid = EFI_PXE_DHCP4_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiPxeDhcp4ProtocolGuid, "PXE DHCP4 Protocol", "PXE DHCPv4 Protocol"); + +/* EOF - PxeDhcp4.c */ diff --git a/EDK/Foundation/Protocol/PxeDhcp4/PxeDhcp4.h b/EDK/Foundation/Protocol/PxeDhcp4/PxeDhcp4.h new file mode 100644 index 0000000..f1ecf42 --- /dev/null +++ b/EDK/Foundation/Protocol/PxeDhcp4/PxeDhcp4.h @@ -0,0 +1,350 @@ +/*++ + +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: + PxeDhcp4.h + +Abstract: + EFI PXE DHCPv4 protocol definition + +--*/ + +#ifndef _PXEDHCP4_H_ +#define _PXEDHCP4_H_ + + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +// +// PXE DHCPv4 GUID definition +// + +#define EFI_PXE_DHCP4_PROTOCOL_GUID \ + { 0x03c4e624, 0xac28, 0x11d3, 0x9a, 0x2d, 0x00, 0x90, 0x29, 0x3f, 0xc1, 0x4d } + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +// +// Interface definition +// + +EFI_FORWARD_DECLARATION (EFI_PXE_DHCP4_PROTOCOL); + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +// +// Descriptions of the DHCP version 4 header and options can be found +// in RFC-2131 and RFC-2132 at www.ietf.org +// + +#pragma pack(1) +typedef struct { + + UINT8 op; +#define BOOTP_REQUEST 1 +#define BOOTP_REPLY 2 + + UINT8 htype; + + UINT8 hlen; + + UINT8 hops; + + UINT32 xid; + + UINT16 secs; +#define DHCP4_INITIAL_SECONDS 4 + + UINT16 flags; +#define DHCP4_BROADCAST_FLAG 0x8000 + + UINT32 ciaddr; + + UINT32 yiaddr; + + UINT32 siaddr; + + UINT32 giaddr; + + UINT8 chaddr[16]; + + UINT8 sname[64]; + + UINT8 fname[128]; + +// +// This is the minimum option length as specified in RFC-2131. +// The packet must be padded out this far with DHCP4_PAD. +// DHCPv4 packets are usually 576 bytes in length. This length +// includes the IPv4 and UDPv4 headers but not the media header. +// Note: Not all DHCP relay agents will forward DHCPv4 packets +// if they are less than 384 bytes or exceed 576 bytes. Even if +// the underlying hardware can handle smaller and larger packets, +// many older relay agents will not accept them. +// + UINT32 magik; +#define DHCP4_MAGIK_NUMBER 0x63825363 + + UINT8 options[308]; + +} DHCP4_HEADER; +#pragma pack() + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +// +// DHCPv4 packet definition. Room for 576 bytes including IP and +// UDP header. +// + +#define DHCP4_MAX_PACKET_SIZE 576 +#define DHCP4_UDP_HEADER_SIZE 8 +#define DHCP4_IP_HEADER_SIZE 20 + +#pragma pack(1) +typedef union _DHCP4_PACKET { + UINT32 _force_data_alignment; + + UINT8 raw[1500]; + + DHCP4_HEADER dhcp4; +} DHCP4_PACKET; +#pragma pack() + +#define DHCP4_SERVER_PORT 67 +#define DHCP4_CLIENT_PORT 68 + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +// +// DHCPv4 and PXE option numbers. +// + +#define DHCP4_PAD 0 +#define DHCP4_END 255 +#define DHCP4_SUBNET_MASK 1 +#define DHCP4_TIME_OFFSET 2 +#define DHCP4_ROUTER_LIST 3 +#define DHCP4_TIME_SERVERS 4 +#define DHCP4_NAME_SERVERS 5 +#define DHCP4_DNS_SERVERS 6 +#define DHCP4_LOG_SERVERS 7 +#define DHCP4_COOKIE_SERVERS 8 +#define DHCP4_LPR_SREVERS 9 +#define DHCP4_IMPRESS_SERVERS 10 +#define DHCP4_RESOURCE_LOCATION_SERVERS 11 +#define DHCP4_HOST_NAME 12 +#define DHCP4_BOOT_FILE_SIZE 13 +#define DHCP4_DUMP_FILE 14 +#define DHCP4_DOMAIN_NAME 15 +#define DHCP4_SWAP_SERVER 16 +#define DHCP4_ROOT_PATH 17 +#define DHCP4_EXTENSION_PATH 18 +#define DHCP4_IP_FORWARDING 19 +#define DHCP4_NON_LOCAL_SOURCE_ROUTE 20 +#define DHCP4_POLICY_FILTER 21 +#define DHCP4_MAX_DATAGRAM_SIZE 22 +#define DHCP4_DEFAULT_TTL 23 +#define DHCP4_MTU_AGING_TIMEOUT 24 +#define DHCP4_MTU_SIZES 25 +#define DHCP4_MTU_TO_USE 26 +#define DHCP4_ALL_SUBNETS_LOCAL 27 +#define DHCP4_BROADCAST_ADDRESS 28 +#define DHCP4_PERFORM_MASK_DISCOVERY 29 +#define DHCP4_RESPOND_TO_MASK_REQ 30 +#define DHCP4_PERFORM_ROUTER_DISCOVERY 31 +#define DHCP4_ROUTER_SOLICIT_ADDRESS 32 +#define DHCP4_STATIC_ROUTER_LIST 33 +#define DHCP4_USE_ARP_TRAILERS 34 +#define DHCP4_ARP_CACHE_TIMEOUT 35 +#define DHCP4_ETHERNET_ENCAPSULATION 36 +#define DHCP4_TCP_DEFAULT_TTL 37 +#define DHCP4_TCP_KEEP_ALIVE_INT 38 +#define DHCP4_KEEP_ALIVE_GARBAGE 39 +#define DHCP4_NIS_DOMAIN_NAME 40 +#define DHCP4_NIS_SERVERS 41 +#define DHCP4_NTP_SERVERS 42 +#define DHCP4_VENDOR_SPECIFIC 43 +# define PXE_MTFTP_IP 1 +# define PXE_MTFTP_CPORT 2 +# define PXE_MTFTP_SPORT 3 +# define PXE_MTFTP_TMOUT 4 +# define PXE_MTFTP_DELAY 5 +# define PXE_DISCOVERY_CONTROL 6 +# define PXE_DISABLE_BROADCAST_DISCOVERY 0x01 +# define PXE_DISABLE_MULTICAST_DISCOVERY 0x02 +# define PXE_ACCEPT_ONLY_PXE_BOOT_SERVERS 0x04 +# define PXE_DO_NOT_PROMPT 0x08 +# define PXE_DISCOVERY_MCAST_ADDR 7 +# define PXE_BOOT_SERVERS 8 +# define PXE_BOOT_MENU 9 +# define PXE_BOOT_PROMPT 10 +# define PXE_MCAST_ADDRS_ALLOC 11 +# define PXE_CREDENTIAL_TYPES 12 +# define PXE_BOOT_ITEM 71 +#define DHCP4_NBNS_SERVERS 44 +#define DHCP4_NBDD_SERVERS 45 +#define DHCP4_NETBIOS_NODE_TYPE 46 +#define DHCP4_NETBIOS_SCOPE 47 +#define DHCP4_XWINDOW_SYSTEM_FONT_SERVERS 48 +#define DHCP4_XWINDOW_SYSTEM_DISPLAY_MANAGERS 49 +#define DHCP4_REQUESTED_IP_ADDRESS 50 +#define DHCP4_LEASE_TIME 51 +#define DHCP4_OPTION_OVERLOAD 52 +# define DHCP4_OVERLOAD_FNAME 1 +# define DHCP4_OVERLOAD_SNAME 2 +# define DHCP4_OVERLOAD_FNAME_AND_SNAME 3 +#define DHCP4_MESSAGE_TYPE 53 +# define DHCP4_MESSAGE_TYPE_DISCOVER 1 +# define DHCP4_MESSAGE_TYPE_OFFER 2 +# define DHCP4_MESSAGE_TYPE_REQUEST 3 +# define DHCP4_MESSAGE_TYPE_DECLINE 4 +# define DHCP4_MESSAGE_TYPE_ACK 5 +# define DHCP4_MESSAGE_TYPE_NAK 6 +# define DHCP4_MESSAGE_TYPE_RELEASE 7 +# define DHCP4_MESSAGE_TYPE_INFORM 8 +#define DHCP4_SERVER_IDENTIFIER 54 +#define DHCP4_PARAMETER_REQUEST_LIST 55 +#define DHCP4_ERROR_MESSAGE 56 +#define DHCP4_MAX_MESSAGE_SIZE 57 +# define DHCP4_DEFAULT_MAX_MESSAGE_SIZE 576 +#define DHCP4_RENEWAL_TIME 58 +#define DHCP4_REBINDING_TIME 59 +#define DHCP4_CLASS_IDENTIFIER 60 +#define DHCP4_CLIENT_IDENTIFIER 61 +#define DHCP4_NISPLUS_DOMAIN_NAME 64 +#define DHCP4_NISPLUS_SERVERS 65 +#define DHCP4_TFTP_SERVER_NAME 66 +#define DHCP4_BOOTFILE 67 +#define DHCP4_MOBILE_IP_HOME_AGENTS 68 +#define DHCP4_SMPT_SERVERS 69 +#define DHCP4_POP3_SERVERS 70 +#define DHCP4_NNTP_SERVERS 71 +#define DHCP4_WWW_SERVERS 72 +#define DHCP4_FINGER_SERVERS 73 +#define DHCP4_IRC_SERVERS 74 +#define DHCP4_STREET_TALK_SERVERS 75 +#define DHCP4_STREET_TALK_DIR_ASSIST_SERVERS 76 +#define DHCP4_NDS_SERVERS 85 +#define DHCP4_NDS_TREE_NAME 86 +#define DHCP4_NDS_CONTEXT 87 +#define DHCP4_SYSTEM_ARCHITECTURE 93 +#define DHCP4_NETWORK_ARCHITECTURE 94 +#define DHCP4_PLATFORM_ID 97 + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +// +// DHCP4 option format. +// + +#pragma pack(1) +typedef struct { + UINT8 op; + UINT8 len; + UINT8 data[1]; +} DHCP4_OP; +#pragma pack() + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + +typedef struct { + DHCP4_PACKET Discover; + DHCP4_PACKET Offer; + DHCP4_PACKET Request; + DHCP4_PACKET AckNak; + BOOLEAN SetupCompleted; + BOOLEAN InitCompleted; + BOOLEAN SelectCompleted; + BOOLEAN IsBootp; + BOOLEAN IsAck; +} EFI_PXE_DHCP4_DATA; + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +typedef +EFI_STATUS +(EFIAPI *EFI_PXE_DHCP4_RUN) ( + IN EFI_PXE_DHCP4_PROTOCOL *This, + IN OPTIONAL UINTN OpLen, + IN OPTIONAL VOID *OpList + ); + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +typedef +EFI_STATUS +(EFIAPI *EFI_PXE_DHCP4_SETUP) ( + IN EFI_PXE_DHCP4_PROTOCOL *This, + IN OPTIONAL EFI_PXE_DHCP4_DATA * NewData + ); + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +typedef +EFI_STATUS +(EFIAPI *EFI_PXE_DHCP4_INIT) ( + IN EFI_PXE_DHCP4_PROTOCOL *This, + IN UINTN SecondsTimeout, + OUT UINTN *Offers, + OUT DHCP4_PACKET **OfferList + ); + +#define DHCP4_MIN_SECONDS 1 +#define DHCP4_MAX_SECONDS 60 + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +typedef +EFI_STATUS +(EFIAPI *EFI_PXE_DHCP4_SELECT) ( + IN EFI_PXE_DHCP4_PROTOCOL *This, + IN UINTN SecondsTimeout, + IN DHCP4_PACKET * offer + ); + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +typedef +EFI_STATUS +(EFIAPI *EFI_PXE_DHCP4_RENEW) ( + IN EFI_PXE_DHCP4_PROTOCOL *This, + UINTN seconds_timeout + ); + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +typedef +EFI_STATUS +(EFIAPI *EFI_PXE_DHCP4_REBIND) ( + IN EFI_PXE_DHCP4_PROTOCOL *This, + UINTN seconds_timeout + ); + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ +typedef +EFI_STATUS +(EFIAPI *EFI_PXE_DHCP4_RELEASE) ( + IN EFI_PXE_DHCP4_PROTOCOL * This + ); + +/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ + +#define EFI_PXE_DHCP4_PROTOCOL_REVISION 0x00010000 + +typedef struct _EFI_PXE_DHCP4_PROTOCOL { + UINT64 Revision; + EFI_PXE_DHCP4_RUN Run; + EFI_PXE_DHCP4_SETUP Setup; + EFI_PXE_DHCP4_INIT Init; + EFI_PXE_DHCP4_SELECT Select; + EFI_PXE_DHCP4_RENEW Renew; + EFI_PXE_DHCP4_REBIND Rebind; + EFI_PXE_DHCP4_RELEASE Release; + EFI_PXE_DHCP4_DATA *Data; +} EFI_PXE_DHCP4_PROTOCOL; + +// +// +// + +extern EFI_GUID gEfiPxeDhcp4ProtocolGuid; + +#endif /* _PXEDHCP4_H_ */ +/* EOF - PxeDhcp4.h */ diff --git a/EDK/Foundation/Protocol/PxeDhcp4Callback/PxeDhcp4CallBack.c b/EDK/Foundation/Protocol/PxeDhcp4Callback/PxeDhcp4CallBack.c new file mode 100644 index 0000000..309b91d --- /dev/null +++ b/EDK/Foundation/Protocol/PxeDhcp4Callback/PxeDhcp4CallBack.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: + PxeDhcp4Callback.c + +Abstract: + PxeDhcp4Callback protocol GUID definition. + +--*/ + +#include "Tiano.h" + +#include EFI_PROTOCOL_DEFINITION (PxeDhcp4CallBack) + +EFI_GUID gEfiPxeDhcp4CallbackProtocolGuid = EFI_PXE_DHCP4_CALLBACK_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiPxeDhcp4CallbackProtocolGuid, "PXE DHCP4 Callback Protocol", "PXE DHCP IPv4 Callback Protocol"); + +/* EOF - PxeDhcp4Callback.c */ diff --git a/EDK/Foundation/Protocol/PxeDhcp4Callback/PxeDhcp4CallBack.h b/EDK/Foundation/Protocol/PxeDhcp4Callback/PxeDhcp4CallBack.h new file mode 100644 index 0000000..8df6026 --- /dev/null +++ b/EDK/Foundation/Protocol/PxeDhcp4Callback/PxeDhcp4CallBack.h @@ -0,0 +1,86 @@ +/*++ + +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: + PxeDhcp4Callback.h + +Abstract: + EFI PXE DHCP4 Callback protocol definition. + +--*/ + +#ifndef _PXE_DHCP4CALLBACK_H +#define _PXE_DHCP4CALLBACK_H + +#include "..\PxeDhcp4\PxeDhcp4.h" + +// +// GUID definition +// + +#define EFI_PXE_DHCP4_CALLBACK_PROTOCOL_GUID \ +{ 0xc1544c01, 0x92a4, 0x4198, 0x8a, 0x84, 0x77, 0x85, 0x83, 0xc2, 0x36, 0x21 } + + +// +// Revision number +// + +#define EFI_PXE_DHCP4_CALLBACK_INTERFACE_REVISION 0x00010000 + +// +// Interface definition +// + +EFI_FORWARD_DECLARATION (EFI_PXE_DHCP4_CALLBACK_PROTOCOL); + +typedef enum { + EFI_PXE_DHCP4_FUNCTION_FIRST, + EFI_PXE_DHCP4_FUNCTION_INIT, + EFI_PXE_DHCP4_FUNCTION_SELECT, + EFI_PXE_DHCP4_FUNCTION_RENEW, + EFI_PXE_DHCP4_FUNCTION_REBIND, + EFI_PXE_DHCP4_FUNCTION_LAST +} EFI_PXE_DHCP4_FUNCTION; + +typedef enum { + EFI_PXE_DHCP4_CALLBACK_STATUS_FIRST, + EFI_PXE_DHCP4_CALLBACK_STATUS_ABORT, + EFI_PXE_DHCP4_CALLBACK_STATUS_IGNORE_ABORT, + EFI_PXE_DHCP4_CALLBACK_STATUS_KEEP_ABORT, + EFI_PXE_DHCP4_CALLBACK_STATUS_CONTINUE, + EFI_PXE_DHCP4_CALLBACK_STATUS_IGNORE_CONTINUE, + EFI_PXE_DHCP4_CALLBACK_STATUS_KEEP_CONTINUE, + EFI_PXE_DHCP4_CALLBACK_STATUS_LAST +} EFI_PXE_DHCP4_CALLBACK_STATUS; + +typedef +EFI_PXE_DHCP4_CALLBACK_STATUS +(EFIAPI *EFI_PXE_DHCP4_CALLBACK) ( + IN EFI_PXE_DHCP4_PROTOCOL *This, + IN EFI_PXE_DHCP4_FUNCTION Function, + IN UINT32 PacketLen, + IN DHCP4_PACKET *Packet OPTIONAL + ); + +typedef struct _EFI_PXE_DHCP4_CALLBACK_PROTOCOL { + UINT64 Revision; + EFI_PXE_DHCP4_CALLBACK Callback; +} EFI_PXE_DHCP4_CALLBACK_PROTOCOL; + +// +// GUID declaration +// + +extern EFI_GUID gEfiPxeDhcp4CallbackProtocolGuid; + +#endif /* _PXE_DHCP4CALLBACK_H */ +/* EOF - PxeDhcp4Callback.h */ diff --git a/EDK/Foundation/Protocol/TcgService/TcgService.c b/EDK/Foundation/Protocol/TcgService/TcgService.c new file mode 100644 index 0000000..71fae5a --- /dev/null +++ b/EDK/Foundation/Protocol/TcgService/TcgService.c @@ -0,0 +1,31 @@ +/*++ + +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: + + TcgService.c + +Abstract: + + TcgService Protocol GUID as defined in TCG_EFI_Protocol_1_20_Final + + See http://trustedcomputinggroup.org for the latest specification + +--*/ + +#include "Tiano.h" + +#include EFI_PROTOCOL_DEFINITION(TcgService) + +EFI_GUID gEfiTcgProtocolGuid = EFI_TCG_PROTOCOL_GUID; +EFI_GUID gEfiTcgPlatformProtocolGuid = EFI_TCG_PLATFORM_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiTcgServiceProtocolGuid, "TcgService", "TCG Services Protocol"); diff --git a/EDK/Foundation/Protocol/TcgService/TcgService.h b/EDK/Foundation/Protocol/TcgService/TcgService.h new file mode 100644 index 0000000..e03342d --- /dev/null +++ b/EDK/Foundation/Protocol/TcgService/TcgService.h @@ -0,0 +1,177 @@ +/*++ + +Copyright (c) 2006 - 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: + + TcgService.h + +Abstract: + + TCG Service Protocol as defined in TCG_EFI_Protocol_1_20_Final + + See http://trustedcomputinggroup.org for the latest specification + +--*/ + +#ifndef _TCG_SERVICE_PROTOCOL_H_ +#define _TCG_SERVICE_PROTOCOL_H_ + +#include "EfiTpm.h" + +#define EFI_TCG_PROTOCOL_GUID \ + {0xf541796d, 0xa62e, 0x4954, 0xa7, 0x75, 0x95, 0x84, 0xf6, 0x1b, 0x9c, 0xdd} + +#define EFI_TCG_PLATFORM_PROTOCOL_GUID \ + { 0x8c4c9a41, 0xbf56, 0x4627, 0x9e, 0xa, 0xc8, 0x38, 0x6d, 0x66, 0x11, 0x5c } + +#define TSS_EVENT_DATA_MAX_SIZE 256 + +#define EFI_CALLING_EFI_APPLICATION \ + "Calling EFI Application from Boot Option" +#define EFI_RETURNING_FROM_EFI_APPLICATOIN \ + "Returning from EFI Application from Boot Option" +#define EFI_EXIT_BOOT_SERVICES_INVOCATION \ + "Exit Boot Services Invocation" +#define EFI_EXIT_BOOT_SERVICES_FAILED \ + "Exit Boot Services Returned with Failure" +#define EFI_EXIT_BOOT_SERVICES_SUCCEEDED \ + "Exit Boot Services Returned with Success" + +EFI_FORWARD_DECLARATION (EFI_TCG_PROTOCOL); + +// +// Set structure alignment to 1-byte +// +#pragma pack (push, 1) + +typedef struct { + UINT8 Major; + UINT8 Minor; + UINT8 RevMajor; + UINT8 RevMinor; +} TCG_VERSION; + +typedef struct _TCG_EFI_BOOT_SERVICE_CAPABILITY { + UINT8 Size; // Size of this structure + TCG_VERSION StructureVersion; + TCG_VERSION ProtocolSpecVersion; + UINT8 HashAlgorithmBitmap; // Hash algorithms + // this protocol is capable of : 01=SHA-1 + BOOLEAN TPMPresentFlag; // 00h = TPM not present + BOOLEAN TPMDeactivatedFlag; // 01h = TPM currently deactivated +} TCG_EFI_BOOT_SERVICE_CAPABILITY; + +typedef UINT32 TCG_ALGORITHM_ID; + +// +// Restore original structure alignment +// +#pragma pack (pop) + +typedef +EFI_STATUS +(EFIAPI *EFI_TCG_STATUS_CHECK) ( + IN EFI_TCG_PROTOCOL *This, + OUT TCG_EFI_BOOT_SERVICE_CAPABILITY + *ProtocolCapability, + OUT UINT32 *TCGFeatureFlags, + OUT EFI_PHYSICAL_ADDRESS *EventLogLocation, + OUT EFI_PHYSICAL_ADDRESS *EventLogLastEntry + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_TCG_HASH_ALL) ( + IN EFI_TCG_PROTOCOL *This, + IN UINT8 *HashData, + IN UINT64 HashDataLen, + IN TCG_ALGORITHM_ID AlgorithmId, + IN OUT UINT64 *HashedDataLen, + IN OUT UINT8 **HashedDataResult + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_TCG_LOG_EVENT) ( + IN EFI_TCG_PROTOCOL *This, + IN TCG_PCR_EVENT *TCGLogData, + IN OUT UINT32 *EventNumber, + IN UINT32 Flags + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_TCG_PASS_THROUGH_TO_TPM) ( + IN EFI_TCG_PROTOCOL *This, + IN UINT32 TpmInputParameterBlockSize, + IN UINT8 *TpmInputParameterBlock, + IN UINT32 TpmOutputParameterBlockSize, + IN UINT8 *TpmOutputParameterBlock + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_TCG_HASH_LOG_EXTEND_EVENT) ( + IN EFI_TCG_PROTOCOL *This, + IN EFI_PHYSICAL_ADDRESS HashData, + IN UINT64 HashDataLen, + IN TCG_ALGORITHM_ID AlgorithmId, + IN OUT TCG_PCR_EVENT *TCGLogData, + IN OUT UINT32 *EventNumber, + OUT EFI_PHYSICAL_ADDRESS *EventLogLastEntry + ); + +typedef struct _EFI_TCG_PROTOCOL { + EFI_TCG_STATUS_CHECK StatusCheck; + EFI_TCG_HASH_ALL HashAll; + EFI_TCG_LOG_EVENT LogEvent; + EFI_TCG_PASS_THROUGH_TO_TPM PassThroughToTpm; + EFI_TCG_HASH_LOG_EXTEND_EVENT HashLogExtendEvent; +} EFI_TCG_PROTOCOL; + +extern EFI_GUID gEfiTcgProtocolGuid; + +// +// EFI TCG Platform Protocol +// +typedef +EFI_STATUS +(EFIAPI *EFI_TCG_MEASURE_PE_IMAGE) ( + IN BOOLEAN BootPolicy, + IN EFI_PHYSICAL_ADDRESS ImageAddress, + IN UINTN ImageSize, + IN UINTN LinkTimeBase, + IN UINT16 ImageType, + IN EFI_HANDLE DeviceHandle, + IN EFI_DEVICE_PATH_PROTOCOL *FilePath + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_TCG_MEASURE_ACTION) ( + IN CHAR8 *ActionString + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_TCG_MEASURE_GPT_TABLE) ( + IN EFI_DEVICE_PATH_PROTOCOL *DevicePath + ); + +typedef struct _EFI_TCG_PLATFORM_PROTOCOL { + EFI_TCG_MEASURE_PE_IMAGE MeasurePeImage; + EFI_TCG_MEASURE_ACTION MeasureAction; + EFI_TCG_MEASURE_GPT_TABLE MeasureGptTable; +} EFI_TCG_PLATFORM_PROTOCOL; + +extern EFI_GUID gEfiTcgPlatformProtocolGuid; + +#endif diff --git a/EDK/Foundation/Protocol/Tcp/Tcp.c b/EDK/Foundation/Protocol/Tcp/Tcp.c new file mode 100644 index 0000000..08eb225 --- /dev/null +++ b/EDK/Foundation/Protocol/Tcp/Tcp.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: + + Tcp.c + +Abstract: + + +Revision History + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION(Tcp) + + +EFI_GUID gEfiTcpProtocolGuid = EFI_TCP_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiTcpProtocolGuid, "Transmission Control Protocol", "EFI Transmission Control Protocol"); diff --git a/EDK/Foundation/Protocol/Tcp/Tcp.h b/EDK/Foundation/Protocol/Tcp/Tcp.h new file mode 100644 index 0000000..bfec1cc --- /dev/null +++ b/EDK/Foundation/Protocol/Tcp/Tcp.h @@ -0,0 +1,110 @@ +/*++ + +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: + + tcp.h + +Abstract: + + EFI Transmission Control Protocol + + + +Revision History + +--*/ + + +#ifndef _EFITCP_H +#define _EFITCP_H + + +#include EFI_PROTOCOL_DEFINITION(PxeBaseCode) + +// +// PXE Base Code protocol +// + +#define EFI_TCP_PROTOCOL_GUID \ + { 0x02b3d5f2, 0xac28, 0x11d3, 0x9a, 0x2d, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d } + +EFI_FORWARD_DECLARATION (EFI_TCP_PROTOCOL); + + +typedef UINT16 EFI_PXE_BASE_CODE_TCP_PORT; + +// +// Port Receive Filter definitions +// +#define EFI_PXE_BASE_CODE_MAX_PORTCNT 8 +typedef struct { + UINT8 Filters; + UINT8 IpCnt; + UINT16 reserved; + EFI_IP_ADDRESS IpList[EFI_PXE_BASE_CODE_MAX_PORTCNT]; +} EFI_TCP_PORT_FILTER; + +typedef +EFI_STATUS +(EFIAPI *EFI_TCP_WRITE) ( + IN EFI_PXE_BASE_CODE_PROTOCOL *This, + IN UINT16 OpFlags, + IN UINT16 *UrgentPointer, + IN UINT32 *SequenceNumber, + IN UINT32 *AckNumber, + IN UINT16 *HlenResCode, + IN UINT16 *Window, + IN EFI_IP_ADDRESS *DestIp, + IN UINT16 *DestPort, + IN EFI_IP_ADDRESS *GatewayIp, OPTIONAL + IN EFI_IP_ADDRESS *SrcIp, OPTIONAL + IN UINT16 *SrcPort, OPTIONAL + IN UINTN *HeaderSize, OPTIONAL + IN VOID *HeaderPtr, OPTIONAL + IN UINTN *BufferSize, + IN VOID *BufferPtr + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_TCP_READ) ( + IN EFI_PXE_BASE_CODE_PROTOCOL *This, + IN UINT16 OpFlags, + IN OUT EFI_IP_ADDRESS *DestIp, OPTIONAL + IN OUT UINT16 *DestPort, OPTIONAL + IN OUT EFI_IP_ADDRESS *SrcIp, OPTIONAL + IN OUT UINT16 *SrcPort, OPTIONAL + IN UINTN *HeaderSize, OPTIONAL + IN VOID *HeaderPtr, OPTIONAL + IN OUT UINTN *BufferSize, + IN VOID *BufferPtr + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_TCP_SET_PORT_FILTER) ( + IN EFI_PXE_BASE_CODE_PROTOCOL *This, + IN EFI_TCP_PORT_FILTER *NewFilter + ); + +// +// TCP Protocol structure +// +typedef struct _EFI_TCP_PROTOCOL { + EFI_TCP_WRITE TcpWrite; + EFI_TCP_READ TcpRead; + EFI_TCP_SET_PORT_FILTER SetPortFilter; +} EFI_TCP_PROTOCOL; + +extern EFI_GUID gEfiTcpProtocolGuid; + +#endif /* _EFITCP_H */ diff --git a/EDK/Foundation/Protocol/TianoDecompress/TianoDecompress.c b/EDK/Foundation/Protocol/TianoDecompress/TianoDecompress.c new file mode 100644 index 0000000..62f035b --- /dev/null +++ b/EDK/Foundation/Protocol/TianoDecompress/TianoDecompress.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: + + TianoDecompress.c + +Abstract: + + The GUID for the Tiano Decompress Protocol + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION(TianoDecompress) + +EFI_GUID gEfiTianoDecompressProtocolGuid = EFI_TIANO_DECOMPRESS_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiTianoDecompressProtocolGuid, "Tiano Decompress", "Tiano Decompression Protocol"); + diff --git a/EDK/Foundation/Protocol/TianoDecompress/TianoDecompress.h b/EDK/Foundation/Protocol/TianoDecompress/TianoDecompress.h new file mode 100644 index 0000000..2c45da4 --- /dev/null +++ b/EDK/Foundation/Protocol/TianoDecompress/TianoDecompress.h @@ -0,0 +1,139 @@ +/*++ + +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: + + TianoDecompress.h + +Abstract: + + The Tiano Decompress Protocol Interface + +--*/ + +#ifndef _TIANO_DECOMPRESS_H_ +#define _TIANO_DECOMPRESS_H_ + +#define EFI_TIANO_DECOMPRESS_PROTOCOL_GUID \ + { 0xe84cf29c, 0x191f, 0x4eae, 0x96, 0xe1, 0xf4, 0x6a, 0xec, 0xea, 0xea, 0x0b } + +EFI_FORWARD_DECLARATION (EFI_TIANO_DECOMPRESS_PROTOCOL); + +typedef +EFI_STATUS +(EFIAPI *EFI_TIANO_DECOMPRESS_GET_INFO) ( + IN EFI_TIANO_DECOMPRESS_PROTOCOL *This, + IN VOID *Source, + IN UINT32 SourceSize, + OUT UINT32 *DestinationSize, + OUT UINT32 *ScratchSize + ); +/*++ + +Routine Description: + + The GetInfo() function retrieves the size of the uncompressed buffer + and the temporary scratch buffer required to decompress the buffer + specified by Source and SourceSize. If the size of the uncompressed + buffer or the size of the scratch buffer cannot be determined from + the compressed data specified by Source and SourceData, then + EFI_INVALID_PARAMETER is returned. Otherwise, the size of the uncompressed + buffer is returned in DestinationSize, the size of the scratch buffer is + returned in ScratchSize, and EFI_SUCCESS is returned. + + The GetInfo() function does not have scratch buffer available to perform + a thorough checking of the validity of the source data. It just retrieves + the 'Original Size' field from the beginning bytes of the source data and + output it as DestinationSize. And ScratchSize is specific to the decompression + implementation. + +Arguments: + + This - The protocol instance pointer + Source - The source buffer containing the compressed data. + SourceSize - The size, in bytes, of source buffer. + DestinationSize - A pointer to the size, in bytes, of the uncompressed buffer + that will be generated when the compressed buffer specified + by Source and SourceSize is decompressed. + ScratchSize - A pointer to the size, in bytes, of the scratch buffer that + is required to decompress the compressed buffer specified by + Source and SourceSize. + +Returns: + EFI_SUCCESS - The size of the uncompressed data was returned in DestinationSize + and the size of the scratch buffer was returned in ScratchSize. + EFI_INVALID_PARAMETER - The size of the uncompressed data or the size of the scratch + buffer cannot be determined from the compressed data specified by + Source and SourceData. + +--*/ + + +typedef +EFI_STATUS +(EFIAPI *EFI_TIANO_DECOMPRESS_DECOMPRESS) ( + IN EFI_TIANO_DECOMPRESS_PROTOCOL *This, + IN VOID* Source, + IN UINT32 SourceSize, + IN OUT VOID* Destination, + IN UINT32 DestinationSize, + IN OUT VOID* Scratch, + IN UINT32 ScratchSize + ); +/*++ + +Routine Description: + + The Decompress() function extracts decompressed data to its original form. + + This protocol is designed so that the decompression algorithm can be + implemented without using any memory services. As a result, the + Decompress() function is not allowed to call AllocatePool() or + AllocatePages() in its implementation. It is the caller's responsibility + to allocate and free the Destination and Scratch buffers. + + If the compressed source data specified by Source and SourceSize is + sucessfully decompressed into Destination, then EFI_SUCCESS is returned. + If the compressed source data specified by Source and SourceSize is not in + a valid compressed data format, then EFI_INVALID_PARAMETER is returned. + +Arguments: + + This - The protocol instance pointer + Source - The source buffer containing the compressed data. + SourceSize - The size of source data. + Destination - On output, the destination buffer that contains + the uncompressed data. + DestinationSize - The size of destination buffer. The size of destination + buffer needed is obtained from GetInfo(). + Scratch - A temporary scratch buffer that is used to perform the + decompression. + ScratchSize - The size of scratch buffer. The size of scratch buffer needed + is obtained from GetInfo(). + +Returns: + + EFI_SUCCESS - Decompression completed successfully, and the uncompressed + buffer is returned in Destination. + EFI_INVALID_PARAMETER + - The source buffer specified by Source and SourceSize is + corrupted (not in a valid compressed format). + +--*/ + +typedef struct _EFI_TIANO_DECOMPRESS_PROTOCOL { + EFI_TIANO_DECOMPRESS_GET_INFO GetInfo; + EFI_TIANO_DECOMPRESS_DECOMPRESS Decompress; +} EFI_TIANO_DECOMPRESS_PROTOCOL; + +extern EFI_GUID gEfiTianoDecompressProtocolGuid; + +#endif diff --git a/EDK/Foundation/Protocol/UgaSplash/UgaSplash.c b/EDK/Foundation/Protocol/UgaSplash/UgaSplash.c new file mode 100644 index 0000000..cc25287 --- /dev/null +++ b/EDK/Foundation/Protocol/UgaSplash/UgaSplash.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: + + UgaSplash.c + +Abstract: + + UGA Splash protocol. + + Abstraction of a very simple graphics device splash screen. + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION (UgaSplash) + +EFI_GUID gEfiUgaSplashProtocolGuid = EFI_UGA_SPLASH_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiUgaSplashProtocolGuid, "UGA Splash Protocol", "UGA Splash Protocol"); diff --git a/EDK/Foundation/Protocol/UgaSplash/UgaSplash.h b/EDK/Foundation/Protocol/UgaSplash/UgaSplash.h new file mode 100644 index 0000000..38a13cf --- /dev/null +++ b/EDK/Foundation/Protocol/UgaSplash/UgaSplash.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: + + UgaSplash.h + +Abstract: + + UGA Splash screen protocol. + + Abstraction of a very simple graphics device. + +--*/ + +#ifndef __UGA_SPLASH_H__ +#define __UGA_SPLASH_H__ + +#include EFI_PROTOCOL_DEFINITION (GraphicsOutput) +#include EFI_PROTOCOL_DEFINITION (UgaDraw) + + +#define EFI_UGA_SPLASH_PROTOCOL_GUID \ + { 0xa45b3a0d, 0x2e55, 0x4c03, 0xad, 0x9c, 0x27, 0xd4, 0x82, 0xb, 0x50, 0x7e } + +typedef struct _EFI_UGA_SPLASH_PROTOCOL EFI_UGA_SPLASH_PROTOCOL; + + +typedef struct _EFI_UGA_SPLASH_PROTOCOL { + UINT32 PixelWidth; + UINT32 PixelHeight; + EFI_GRAPHICS_OUTPUT_BLT_PIXEL *Image; +} EFI_UGA_SPLASH_PROTOCOL; + +extern EFI_GUID gEfiUgaSplashProtocolGuid; + +#endif diff --git a/EDK/Foundation/Protocol/UsbAtapi/usbatapi.c b/EDK/Foundation/Protocol/UsbAtapi/usbatapi.c new file mode 100644 index 0000000..850f46d --- /dev/null +++ b/EDK/Foundation/Protocol/UsbAtapi/usbatapi.c @@ -0,0 +1,31 @@ +/*++ + +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: + + UsbAtapi.c + +Abstract: + + EFI USB Atapi Protocol + +Revision History + +--*/ + +#include "Tiano.h" + +#include EFI_PROTOCOL_DEFINITION (UsbIo) +#include EFI_PROTOCOL_DEFINITION (UsbAtapi) + +EFI_GUID gEfiUsbAtapiProtocolGuid = EFI_USB_ATAPI_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiUsbAtapiProtocolGuid, "Usb Atapi Protocol", "Usb Atapi Protocol"); diff --git a/EDK/Foundation/Protocol/UsbAtapi/usbatapi.h b/EDK/Foundation/Protocol/UsbAtapi/usbatapi.h new file mode 100644 index 0000000..c16954f --- /dev/null +++ b/EDK/Foundation/Protocol/UsbAtapi/usbatapi.h @@ -0,0 +1,83 @@ +/*++ + +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: + + 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 } + +EFI_FORWARD_DECLARATION (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 +// +typedef struct _EFI_USB_ATAPI_PROTOCOL { + EFI_USB_ATAPI_PACKET_CMD UsbAtapiPacketCmd; + EFI_USB_MASS_STORAGE_RESET UsbAtapiReset; + UINT32 CommandProtocol; +} EFI_USB_ATAPI_PROTOCOL; + +extern EFI_GUID gEfiUsbAtapiProtocolGuid; + +#endif diff --git a/EDK/Foundation/Protocol/VariableStore/VariableStore.c b/EDK/Foundation/Protocol/VariableStore/VariableStore.c new file mode 100644 index 0000000..cf87c1b --- /dev/null +++ b/EDK/Foundation/Protocol/VariableStore/VariableStore.c @@ -0,0 +1,36 @@ +/*++ + +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: + + VariableStore.c + +Abstract: + +Revision History + +--*/ + +// +// The variable store protocol interface is specific to the reference +// implementation. The initialization code adds variable store devices +// to the system, and the FW connects to the devices to provide the +// variable store interfaces through these devices. +// +// +// Variable Store Device protocol +// +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION (VariableStore) + +EFI_GUID gEfiVariableStoreProtocolGuid = EFI_VARIABLE_STORE_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiVariableStoreProtocolGuid, "Variable Storage Protocol", "Tiano Variable Storage Protocol"); diff --git a/EDK/Foundation/Protocol/VariableStore/VariableStore.h b/EDK/Foundation/Protocol/VariableStore/VariableStore.h new file mode 100644 index 0000000..0a237b6 --- /dev/null +++ b/EDK/Foundation/Protocol/VariableStore/VariableStore.h @@ -0,0 +1,105 @@ +/*++ + +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: + + VariableStore.h + +Abstract: + +Revision History + +--*/ + +#ifndef _VARIABLE_STORE_H +#define _VARIABLE_STORE_H + +// +// The variable store protocol interface is specific to the reference +// implementation. The initialization code adds variable store devices +// to the system, and the FW connects to the devices to provide the +// variable store interfaces through these devices. +// + +// +// Variable Store Device protocol +// +#define EFI_VARIABLE_STORE_PROTOCOL_GUID \ + { 0xf088cd91, 0xa046, 0x11d2, 0x8e, 0x42, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b } + +EFI_FORWARD_DECLARATION (EFI_VARIABLE_STORE_PROTOCOL); + +typedef +EFI_STATUS +(EFIAPI *EFI_CLEAR_STORE) ( + IN EFI_VARIABLE_STORE_PROTOCOL *This, + IN OUT VOID *Scratch + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_READ_STORE) ( + IN EFI_VARIABLE_STORE_PROTOCOL *This, + IN UINTN Offset, + IN UINTN BufferSize, + OUT VOID *Buffer + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_UPDATE_STORE) ( + IN EFI_VARIABLE_STORE_PROTOCOL *This, + IN UINTN Offset, + IN UINTN BufferSize, + IN VOID *Buffer + ); + +typedef +EFI_STATUS +(EFIAPI *EFI_CLEANUP_STORE) ( + IN EFI_VARIABLE_STORE_PROTOCOL *This + ); + +typedef struct _EFI_VARIABLE_STORE_PROTOCOL { + + // + // Number of banks and bank size + // + UINT32 Attributes; + UINT32 BankSize; + + // + // Functions to access the storage banks + // + EFI_CLEAR_STORE ClearStore; + EFI_READ_STORE ReadStore; + EFI_UPDATE_STORE UpdateStore; + EFI_CLEANUP_STORE CleanupStore; + +} EFI_VARIABLE_STORE_PROTOCOL; + +// +// +// ClearStore() - A function to clear the requested storage bank. A cleared +// bank contains all "on" bits. +// +// ReadStore() - Read data from the requested store. +// +// UpdateStore() - Updates data on the requested store. The FW will only +// ever issue updates to clear bits in the store. Updates must +// be performed in LSb to MSb order of the update buffer. +// +// CleanupStore() - Do garbage collection and reclaim operation. +// + +extern EFI_GUID gEfiVariableStoreProtocolGuid; + +#endif // _VARIABLE_STORE_H diff --git a/EDK/Foundation/Protocol/VgaMiniPort/VgaMiniPort.c b/EDK/Foundation/Protocol/VgaMiniPort/VgaMiniPort.c new file mode 100644 index 0000000..1b1e0b9 --- /dev/null +++ b/EDK/Foundation/Protocol/VgaMiniPort/VgaMiniPort.c @@ -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: + + VgaMiniPort.c + +Abstract: + + EFI VGA Mini Port Protocol + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION (VgaMiniPort) + +EFI_GUID gEfiVgaMiniPortProtocolGuid = EFI_VGA_MINI_PORT_PROTOCOL_GUID; + +EFI_GUID_STRING(&gEfiVgaMiniPortProtocolGuid, "VGA Mini Port Protocol", "EFI VGA Mini Port Protocol"); diff --git a/EDK/Foundation/Protocol/VgaMiniPort/VgaMiniPort.h b/EDK/Foundation/Protocol/VgaMiniPort/VgaMiniPort.h new file mode 100644 index 0000000..27217e0 --- /dev/null +++ b/EDK/Foundation/Protocol/VgaMiniPort/VgaMiniPort.h @@ -0,0 +1,70 @@ +/*++ + +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: + + VgaMiniPort.h + +Abstract: + + Vga Mini port binding for a VGA controller + +--*/ + +#ifndef _VGA_MINI_PORT_H +#define _VGA_MINI_PORT_H + +#define EFI_VGA_MINI_PORT_PROTOCOL_GUID \ + { \ + 0xc7735a2f, 0x88f5, 0x4882, 0xae, 0x63, 0xfa, 0xac, 0x8c, 0x8b, 0x86, 0xb3 \ + } + +EFI_FORWARD_DECLARATION (EFI_VGA_MINI_PORT_PROTOCOL); + +typedef +EFI_STATUS +(EFIAPI *EFI_VGA_MINI_PORT_SET_MODE) ( + IN EFI_VGA_MINI_PORT_PROTOCOL * This, + IN UINTN ModeNumber + ); + +/*++ + + Routine Description: + Sets the text display mode of a VGA controller + + Arguments: + This - Protocol instance pointer. + Mode - Mode number. 0 - 80x25 1-80x50 + + Returns: + EFI_SUCCESS - The mode was set + EFI_DEVICE_ERROR - The device is not functioning properly. + +--*/ +typedef struct _EFI_VGA_MINI_PORT_PROTOCOL { + EFI_VGA_MINI_PORT_SET_MODE SetMode; + + UINT64 VgaMemoryOffset; + UINT64 CrtcAddressRegisterOffset; + UINT64 CrtcDataRegisterOffset; + + UINT8 VgaMemoryBar; + UINT8 CrtcAddressRegisterBar; + UINT8 CrtcDataRegisterBar; + + UINT8 MaxMode; +} EFI_VGA_MINI_PORT_PROTOCOL; + +extern EFI_GUID gEfiVgaMiniPortProtocolGuid; + +#endif diff --git a/EDK/Foundation/Protocol/VirtualMemoryAccess/VirtualMemoryAccess.c b/EDK/Foundation/Protocol/VirtualMemoryAccess/VirtualMemoryAccess.c new file mode 100644 index 0000000..ea59d88 --- /dev/null +++ b/EDK/Foundation/Protocol/VirtualMemoryAccess/VirtualMemoryAccess.c @@ -0,0 +1,27 @@ +/*++ + +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: + + VirtualMemoryAccess.c + +Abstract: + + +--*/ + +#include "Tiano.h" +#include EFI_PROTOCOL_DEFINITION (VirtualMemoryAccess) + +EFI_GUID gEfiVirtualMemoryAccessProtocolGuid = EFI_VIRTUAL_MEMORY_ACCESS_PROTOCOL_GUID; + +EFI_GUID_STRING + (&gEfiVirtualMemoryAccessProtocolGuid, "Virtual Memory Access Protocol", "Tiano Virtual Memory Access Protocol"); diff --git a/EDK/Foundation/Protocol/VirtualMemoryAccess/VirtualMemoryAccess.h b/EDK/Foundation/Protocol/VirtualMemoryAccess/VirtualMemoryAccess.h new file mode 100644 index 0000000..95c017d --- /dev/null +++ b/EDK/Foundation/Protocol/VirtualMemoryAccess/VirtualMemoryAccess.h @@ -0,0 +1,64 @@ +/*++ + +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: + + VirtualmemoryAccess.h + +Abstract: + + +--*/ + +#ifndef _VIRTUAL_MEMORY_ACCESS_H_ +#define _VIRTUAL_MEMORY_ACCESS_H_ + +#define EFI_VIRTUAL_MEMORY_ACCESS_PROTOCOL_GUID \ + {0x745d377a, 0xb988, 0x47b2, 0xb1, 0x8f, 0xbb, 0xc8, 0xd, 0xc5, 0x66, 0x98} + + +EFI_FORWARD_DECLARATION (EFI_VIRTUAL_MEMORY_ACCESS_PROTOCOL); + +typedef +EFI_STATUS +(EFIAPI *EFI_VIRTUAL_MEMORY_ACCESS_MAP) ( + IN EFI_VIRTUAL_MEMORY_ACCESS_PROTOCOL *This, + IN EFI_PHYSICAL_ADDRESS MappingAddress, + IN UINTN NumberOfBytes, + IN EFI_PHYSICAL_ADDRESS MappedAddress +); + +typedef +EFI_STATUS +(EFIAPI *EFI_VIRTUAL_MEMORY_ACCESS_UNMAP) ( + IN EFI_VIRTUAL_MEMORY_ACCESS_PROTOCOL *This, + IN EFI_PHYSICAL_ADDRESS MappedAddress, + IN UINTN PageSizeInByte +); + +typedef +EFI_STATUS +(EFIAPI *EFI_VIRTUAL_MEMORY_ACCESS_GET_PAGE_SIZE) ( + IN EFI_VIRTUAL_MEMORY_ACCESS_PROTOCOL *This, + IN UINTN *PageSizeInByte +); + + +typedef struct _EFI_VIRTUAL_MEMORY_ACCESS_PROTOCOL { + EFI_VIRTUAL_MEMORY_ACCESS_GET_PAGE_SIZE GetPageSize; + EFI_VIRTUAL_MEMORY_ACCESS_MAP Map; + EFI_VIRTUAL_MEMORY_ACCESS_UNMAP UnMap; +} EFI_VIRTUAL_MEMORY_ACCESS_PROTOCOL; + +extern EFI_GUID gEfiVirtualMemoryAccessProtocolGuid; + +#endif + |