diff options
author | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
---|---|---|
committer | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
commit | b7c51c9cf4864df6aabb99a1ae843becd577237c (patch) | |
tree | eebe9b0d0ca03062955223097e57da84dd618b9a /EDK/Foundation/Protocol/ExtendedSalGuid | |
download | zprj-master.tar.xz |
Diffstat (limited to 'EDK/Foundation/Protocol/ExtendedSalGuid')
-rw-r--r-- | EDK/Foundation/Protocol/ExtendedSalGuid/ExtendedSalGuid.c | 74 | ||||
-rw-r--r-- | EDK/Foundation/Protocol/ExtendedSalGuid/ExtendedSalGuid.h | 283 |
2 files changed, 357 insertions, 0 deletions
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 |