blob: 6b403ccbe8afa54a52d150cb2d362f5d84c6259f [file] [log] [blame]
Subrata Banik20fe24b2021-12-09 02:46:38 +05301/** @file
2 Support for HSTI 1.1a specification, defined at
3 Microsoft Hardware Security Testability Specification.
4
5 Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>
6 SPDX-License-Identifier: BSD-2-Clause-Patent
7
8**/
9
10#ifndef __HSTI_H__
11#define __HSTI_H__
12
13#pragma pack(1)
14
15#define ADAPTER_INFO_PLATFORM_SECURITY_GUID \
16 {0x6be272c7, 0x1320, 0x4ccd, { 0x90, 0x17, 0xd4, 0x61, 0x2c, 0x01, 0x2b, 0x25 }}
17
18#define PLATFORM_SECURITY_VERSION_VNEXTCS 0x00000003
19
20#define PLATFORM_SECURITY_ROLE_PLATFORM_REFERENCE 0x00000001 // IHV
21#define PLATFORM_SECURITY_ROLE_PLATFORM_IBV 0x00000002
22#define PLATFORM_SECURITY_ROLE_IMPLEMENTOR_OEM 0x00000003
23#define PLATFORM_SECURITY_ROLE_IMPLEMENTOR_ODM 0x00000004
24
25typedef struct {
26 //
27 // Return PLATFORM_SECURITY_VERSION_VNEXTCS
28 //
29 UINT32 Version;
30 //
31 // The role of the publisher of this interface. Reference platform designers
32 // such as IHVs and IBVs are expected to return PLATFORM_SECURITY_ROLE_PLATFORM_REFERENCE
33 // and PLATFORM_SECURITY_ROLE_PLATFORM_IBV respectively.
34 // If the test modules from the designers are unable to fully verify all
35 // security features, then the platform implementers, OEMs and ODMs, will
36 // need to publish this interface with a role of Implementer.
37 //
38 UINT32 Role;
39 //
40 // Human readable vendor, model, & version of this implementation.
41 //
42 CHAR16 ImplementationID[256];
43 //
44 // The size in bytes of the SecurityFeaturesRequired and SecurityFeaturesEnabled arrays.
45 // The arrays must be the same size.
46 //
47 UINT32 SecurityFeaturesSize;
48 //
49 // IHV-defined bitfield corresponding to all security features which must be
50 // implemented to meet the security requirements defined by PLATFORM_SECURITY_VERSION Version.
51 //
52//UINT8 SecurityFeaturesRequired[]; //Ignored for non-IHV
53 //
54 // Publisher-defined bitfield corresponding to all security features which
55 // have implemented programmatic tests in this module.
56 //
57//UINT8 SecurityFeaturesImplemented[];
58 //
59 // Publisher-defined bitfield corresponding to all security features which
60 // have been verified implemented by this implementation.
61 //
62//UINT8 SecurityFeaturesVerified[];
63 //
64 // A Null-terminated string, one failure per line (CR/LF terminated), with a
65 // unique identifier that the OEM/ODM can use to locate the documentation
66 // which will describe the steps to remediate the failure - a URL to the
67 // documentation is recommended.
68 //
69//CHAR16 ErrorString[];
70} ADAPTER_INFO_PLATFORM_SECURITY;
71
72#pragma pack()
73
74extern EFI_GUID gAdapterInfoPlatformSecurityGuid;
75
76#endif