617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan/*******************************************************************************
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * Copyright (C) 2004-2008 Intel Corp. All rights reserved.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan *
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * Redistribution and use in source and binary forms, with or without
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * modification, are permitted provided that the following conditions are met:
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan *
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * - Redistributions of source code must retain the above copyright notice,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * this list of conditions and the following disclaimer.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan *
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * - Redistributions in binary form must reproduce the above copyright notice,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * this list of conditions and the following disclaimer in the documentation
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * and/or other materials provided with the distribution.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan *
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * - Neither the name of Intel Corp. nor the names of its
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * contributors may be used to endorse or promote products derived from this
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * software without specific prior written permission.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan *
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS''
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * ARE DISCLAIMED. IN NO EVENT SHALL Intel Corp. OR THE CONTRIBUTORS
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan * POSSIBILITY OF SUCH DAMAGE.
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan *******************************************************************************/
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan#ifndef __HECI_INTRFACE_H__
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan#define __HECI_INTRFACE_H__
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef unsigned char UINT8;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef unsigned short UINT16;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef unsigned int UINT32;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef char CHAR;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef unsigned long ULONG;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef UINT32 AMT_STATUS;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef UINT32 AMT_BOOLEAN;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef enum _HECI_STATUS {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan HECI_STATUS_OK = 0x0,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan HECI_STATUS_GENERAL_ERROR = 0x2000,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan HECI_STATUS_LOCATE_DEVICE_ERROR,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan HECI_STATUS_MEMORY_ACCESS_ERROR,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan HECI_STATUS_WRITE_REGISTER_ERROR,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan HECI_STATUS_MEMORY_ALLOCATION_ERROR,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan HECI_STATUS_BUFFER_OVEREFLOW_ERROR,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan HECI_STATUS_NOT_ENOUGH_MEMORY,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan HECI_STATUS_MSG_TRANSMISSION_ERROR,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan HECI_STATUS_VERSION_MISMATCH,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan HECI_STATUS_UNEXPECTED_INTERRUPT_REASON,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan HECI_STATUS_TIMEOUT_ERROR,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan HECI_STATUS_UNEXPECTED_RESPONSE,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan HECI_STATUS_UNKNOWN_MESSAGE,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan HECI_STATUS_CANNOT_FOUND_HOST_CLIENT,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan HECI_STATUS_CANNOT_FOUND_ME_CLIENT,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan HECI_STATUS_CLIENT_ALREADY_CONNECTED,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan HECI_STATUS_NO_FREE_CONNECTION,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan HECI_STATUS_ILLEGAL_PARAMETER,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan HECI_STATUS_FLOW_CONTROL_ERROR,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan HECI_STATUS_NO_MESSAGE,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan HECI_STATUS_BUFFER_TOO_LARGE,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan HECI_STATUS_BUFFER_TOO_SMALL,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan HECI_STATUS_BUFFER_NOT_EMPTY,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan NUM_OF_HECI_STATUSES
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan} HECI_STATUS;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Loganconst GUID HECI_PTHI = {0x12f80028, 0xb4b7, 0x4b2d, {0xac, 0xa8, 0x46, 0xe0, 0xff, 0x65, 0x81, 0x4c}};
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan// Define GUID used to connect to the FWUpdate client (via the HECI device)
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan// {309DCDE8-CCB1-4062-8F78-600115A34327}
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Loganconst GUID FW_UPDATE_GUID = {0x309dcde8, 0xccb1, 0x4062, {0x8f, 0x78, 0x60, 0x1, 0x15, 0xa3, 0x43, 0x27}};
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Loganconst GUID WD_GUID = {0x05B79A6F, 0x4628, 0x4D7F, {0x89, 0x9D, 0xA9, 0x15, 0x14, 0xCB, 0x32, 0xAB}};
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan#pragma pack(1)
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef struct _HECI_VERSION {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan UINT8 major;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan UINT8 minor;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan UINT8 hotfix;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan UINT16 build;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan} HECI_VERSION;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef struct _HECI_CLIENT {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan UINT32 MaxMessageLength;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan UINT8 ProtocolVersion;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan} HECI_CLIENT;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef union _MEFWCAPS_SKU
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan{
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan UINT32 Data;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan struct {
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan UINT32 Reserved :1; //Legacy
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan UINT32 Qst :1; //QST
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan UINT32 Asf :1; //ASF2
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan UINT32 Amt :1; //AMT Professional
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan UINT32 AmtFund :1; //AMT Fundamental
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan UINT32 Tpm :1; //TPM
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan UINT32 Dt :1; //Danbury Technology
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan UINT32 Fps :1; //Fingerprint Sensor
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan UINT32 HomeIT :1; //Home IT
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan UINT32 Mctp :1; //MCTP
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan UINT32 WoX :1; //Wake on X
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan UINT32 PmcPatch :1; //PMC Patch
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan UINT32 Ve :1; //VE
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan UINT32 Tdt :1; //Theft Deterrent Technology
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan UINT32 Corp :1; //Corporate
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan UINT32 Reserved2 :17;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan } Fields;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan} MEFWCAPS_SKU;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logantypedef enum _MEFWCAPS_MANAGEABILITY_SUPP
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan{
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan MEFWCAPS_MANAGEABILITY_SUPP_NONE = 0,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan MEFWCAPS_MANAGEABILITY_SUPP_AMT,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan MEFWCAPS_MANAGEABILITY_SUPP_ASF,
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan MEFWCAPS_MANAGEABILITY_SUPP_CP
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan} MEFWCAPS_MANAGEABILITY_SUPP;
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan#pragma pack()
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan
617e2443dfc17fe44fd44c0675d6aad2ffc9df42Mark Logan#endif // __HECI_INTRFACE_H__