summaryrefslogtreecommitdiff
path: root/ReferenceCode/ME/Protocol/AmtPlatformPolicy/AmtPlatformPolicy.h
blob: bfc98ff7e4932045aa402aaf5b53451780b8d87c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
/** @file
  Interface definition details between AMT and platform drivers during DXE phase.

@copyright
  Copyright (c) 2006 - 2012 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.

  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
  the additional terms of the license agreement
**/
#ifndef _AMT_PLATFORM_POLICY_H_
#define _AMT_PLATFORM_POLICY_H_

///
/// AMT policy provided by platform for DXE phase
/// This protocol provides the information about Intel AMT platform configuration settings.
///
#define DXE_PLATFORM_AMT_POLICY_GUID \
  { \
    0x6725e645, 0x4a7f, 0x9969, 0x82, 0xec, 0xd1, 0x87, 0x21, 0xde, 0x5a, 0x57 \
  }

///
/// Protocol revision number
/// Any backwards compatible changes to this protocol will result in an update in the revision number
/// Major changes will require publication of a new protocol
///
#define DXE_PLATFORM_AMT_POLICY_PROTOCOL_REVISION_1 1   ///< Initial Revision

extern EFI_GUID gDxePlatformAmtPolicyGuid;
#pragma pack(1)
typedef struct {
  //
  // Byte 0, bit definition for functionality enable/disable
  //
  UINT8   AsfEnabled : 1;               ///< 0: Disabled; 1: Enabled
  UINT8   iAmtEnabled : 1;              ///< 0: Disabled; 1: Enabled
  UINT8   iAmtbxPasswordWrite : 1;      ///< 0: Disabled; 1: Enabled
  UINT8   WatchDog : 1;                 ///< 0: Disabled; 1: Enabled
  UINT8   CiraRequest : 1;              ///< 0: No CIRA request; 1: Trigger CIRA request
  UINT8   ManageabilityMode : 1;        ///< 0: Disabled; 1:AMT
  UINT8   UnConfigureMe : 1;            ///< 0: No; 1: Un-configure ME without password
  UINT8   MebxDebugMsg : 1;             ///< 0: Disabled; 1: Enabled
  //
  // Byte 1, bit definition for functionality enable/disable
  //
  UINT8   ForcMebxSyncUp : 1;           ///< 0: No; 1: Force MEBX execution
  UINT8   UsbrEnabled : 1;              ///< 0: Disabled;  1: Enabled
  UINT8   UsbLockingEnabled : 1;        ///< 0: Disabled;  1: Enabled
  UINT8   HideUnConfigureMeConfirm : 1; ///< 0: Don't hide; 1: Hide Un-configure ME Confirmation Prompt
  UINT8   USBProvision : 1;             ///< 0: Disabled; 1: Enabled
  UINT8   FWProgress : 1;               ///< 0: Disabled; 1: Enabled
  UINT8   iAmtbxHotkeyPressed : 1;      ///< 0: Disabled; 1: Enabled
  UINT8   iAmtbxSelectionScreen : 1;    ///< 0: Disabled; 1: Enabled
  //
  // Byte 2, bit definition for functionality enable/disable
  //
  UINT8   AtEnabled : 1;                ///< 0: Disabled; 1: Enabled
  UINT8   Byte2Reserved : 7;
  UINT16  WatchDogTimerOs;              ///< Byte 3-4 OS WatchDog Timer
  UINT16  WatchDogTimerBios;            ///< Byte 5-6 BIOS WatchDog Timer
  ///
  /// Byte 7 CIRA Timeout: Client Initiated Remote Access Timeout
  ///                      OEM defined timeout for MPS connection to be established.
  /// 0: 60 seconds by default, 0xFF: Wait until the connection succeeds.
  /// 1~0xFE: Values in seconds
  ///
  UINT8   CiraTimeout;

  ///
  /// Byte 8 CPU Replacement Timeout
  /// 0: 10 seconds; 1: 30 seconds; 2~5: Reserved; 6: No delay; 7: Unlimited delay
  ///
  UINT8   CpuReplacementTimeout;
  //
  // Byte 9-10 OemResolutionSettings
  //
  UINT16  MebxNonUiTextMode : 4;        ///< 0: Auto; 1: 80x25; 2: 100x31
  UINT16  MebxUiTextMode : 4;           ///< 0: Auto; 1: 80x25; 2: 100x31
  UINT16  MebxGraphicsMode : 4;         ///< 0: Auto; 1: 640x480; 2: 800x600; 3: 1024x768
  UINT16  OemResolutionSettingsRsvd : 4;
  //
  // Byte 11-14 Pointer to a list which contain on-board devices bus/device/fun number
  //
  UINT32  PciDeviceFilterOutTable;
  //
  // Byte 15-23 Reserved and make AMT_CONFIG as 32 bit alignment
  //
  UINT8   ByteReserved[9];
} AMT_CONFIG;

#pragma pack()
///
/// AMT DXE Platform Policy
/// This protocol is initialized by platform Policy driver. Other modules can locate this protocol
/// to retrieve Intel AMT related setup options setting
///
typedef struct _DXE_AMT_POLICY_PROTOCOL {
  UINT8                 Revision;                 ///< Revision for the protocol structure
  AMT_CONFIG            AmtConfig;                ///< AMT policy for platform code to pass to Reference Code
} DXE_AMT_POLICY_PROTOCOL;

#endif