/** @file Support for HSTI 1.0 specification, defined at Microsoft Hardware Security Testability Specification. Copyright (c) 2015, Intel Corporation. All rights reserved.<BR> This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. **/ #ifndef __HSTI_H__ #define __HSTI_H__ #pragma pack(1) #define ADAPTER_INFO_PLATFORM_SECURITY_GUID \ {0x6be272c7, 0x1320, 0x4ccd, { 0x90, 0x17, 0xd4, 0x61, 0x2c, 0x01, 0x2b, 0x25 }} #define PLATFORM_SECURITY_VERSION_VNEXTCS 0x00000003 #define PLATFORM_SECURITY_ROLE_PLATFORM_REFERENCE 0x00000001 // IHV #define PLATFORM_SECURITY_ROLE_PLATFORM_IBV 0x00000002 #define PLATFORM_SECURITY_ROLE_IMPLEMENTOR_OEM 0x00000003 #define PLATFORM_SECURITY_ROLE_IMPLEMENTOR_ODM 0x00000004 typedef struct { // // Return PLATFORM_SECURITY_VERSION_VNEXTCS // UINT32 Version; // // The role of the publisher of this interface. Reference platform designers // such as IHVs and IBVs are expected to return PLATFORM_SECURITY_ROLE_PLATFORM_REFERENCE // and PLATFORM_SECURITY_ROLE_PLATFORM_IBV respectively. // If the test modules from the designers are unable to fully verify all // security features, then the platform implementers, OEMs and ODMs, will // need to publish this interface with a role of Implementer. // UINT32 Role; // // Human readable vendor, model, & version of this implementation. // CHAR16 ImplementationID[256]; // // The size in bytes of the SecurityFeaturesRequired and SecurityFeaturesEnabled arrays. // The arrays must be the same size. // UINT32 SecurityFeaturesSize; // // IHV-defined bitfield corresponding to all security features which must be // implemented to meet the security requirements defined by PLATFORM_SECURITY_VERSION Version. // //UINT8 SecurityFeaturesRequired[]; //Ignored for non-IHV // // Publisher-defined bitfield corresponding to all security features which // have implemented programmatic tests in this module. // //UINT8 SecurityFeaturesImplemented[]; // // Publisher-defined bitfield corresponding to all security features which // have been verified implemented by this implementation. // //UINT8 SecurityFeaturesVerified[]; // // A Null-terminated string, one failure per line (CR/LF terminated), with a // unique identifier that the OEM/ODM can use to locate the documentation // which will describe the steps to remediate the failure - a URL to the // documentation is recommended. // //CHAR16 ErrorString[]; } ADAPTER_INFO_PLATFORM_SECURITY; #pragma pack() extern EFI_GUID gAdapterInfoPlatformSecurityGuid; #endif