summaryrefslogtreecommitdiff
path: root/Include/Protocol/IdeBusBoard.h
blob: 2f84bb4368420b3745325ecbb03e7e9bb3affb9f (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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
//*************************************************************************
//*************************************************************************
//**                                                                     **
//**        (C)Copyright 1985-2010, American Megatrends, Inc.            **
//**                                                                     **
//**                       All Rights Reserved.                          **
//**                                                                     **
//**      5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093           **
//**                                                                     **
//**                       Phone: (770)-246-8600                         **
//**                                                                     **
//*************************************************************************
//*************************************************************************

//*************************************************************************
// $Header: /Alaska/BIN/Core/Modules/IdeBus/IdeBusBoard.h 2     9/27/11 3:17a Rajeshms $
//
// $Revision: 2 $
//
// $Date: 9/27/11 3:17a $
//*************************************************************************
// Revision History
// ----------------
// $Log: /Alaska/BIN/Core/Modules/IdeBus/IdeBusBoard.h $
// 
// 2     9/27/11 3:17a Rajeshms
// [TAG]  		EIP69295
// [Category]  	Improvement
// [Description]  	The Timeout values used by IDE and AHCI drivers are
// made as SDL tokens, so that the timeout values can be varied.
// [Files]  		IdeBusBoard.c, CORE_DXE.sdl, AhciSmm.h, AhciBus.h, IDESMM.h,
// Ata.c, Atapi.c, IdeBus.c, IdeBus.h, IdeBusMaster.c, IdeBusBoard.h
// 
// 1     8/25/10 5:37a Rameshr
// New Feature: EIP 37748
// Description: Move all the IDEBus Source driver SDL token into IdeBus
// Bin Driver.
// FilesModified: Ata.c, Atapi.c, idebus.c, IdeBus.h,
// IdebuscomponentName.c, IdeBusmaster.c IdeBusSrc.mak IdebusSrc.sdl
// IdeHpa.c, IdePowerManagement.c
// 
//     
//
//*************************************************************************
//<AMI_FHDR_START>
//
// Name:  IdeBusBoard.h
//
// Description: defines Platform IDE Protocol
//
//<AMI_FHDR_END>
//*************************************************************************
#ifndef __IdeBusBoard__H__
#define __IdeBusBoard__H__

#ifdef __cplusplus
extern "C" {
#endif

#include <EFI.h>

#define PLATFORM_IDE_PROTOCOL_GUID \
    { 0x6737f69b, 0xb8cc, 0x45bc, 0x93, 0x27, 0xcc, 0xf5, 0xee, 0xf7, 0xc, 0xde }

//
// Protocol revision number
// Any backwards compatible changes to this protocol will result in an update in the revision number
//
// Revision 2: Changed from Original version to support for ATA/ATAPI timeout values as TOKENS.
//
#define PLATFORM_IDE_PROTOCOL_REVISION  2
//
// Protocol Revision Number supported by IdeBus Source.
//
#define PLATFORM_IDE_PROTOCOL_SUPPORTED_REVISION  2

#ifndef EFI_COMPONENT_NAME2_PROTOCOL_GUID //old Core
#ifndef LANGUAGE_CODE_ENGLISH
#define LANGUAGE_CODE_ENGLISH "eng"
#endif
BOOLEAN LanguageCodesEqual(
    CONST CHAR8* LangCode1, CONST CHAR8* LangCode2
);
#endif 

//
// Interface structure for PLATFORM_IDE_PROTOCOL
//
typedef struct _PLATFORM_IDE_PROTOCOL {
    UINT8       Revision;
    BOOLEAN     MasterSlaveEnumeration;
    BOOLEAN     IdeBusMasterSupport; 
    BOOLEAN     AtapiBusMasterSupport; 
    BOOLEAN     AcousticManagementSupport; 
    BOOLEAN     IdePowerManagementSupport; 
    INT16       StandbyTimeout; 
    BOOLEAN     AdvPowerManagementSupport; 
    UINT8       AdvPowerManagementLevel; 
    BOOLEAN     PowerupInStandbySupport;
    BOOLEAN     PowerupInStandbyMode; 
    BOOLEAN     IdePwrManagementInterfaceSupport; 
    BOOLEAN     HostProtectedAreaSupport; 
    BOOLEAN     IdeHPSupport;
    BOOLEAN     EfiIdeProtocol; 
    BOOLEAN     AhciCompatibleMode; 
    BOOLEAN     SBIdeSupport;
    BOOLEAN     HddPowerLossInS3; 
    BOOLEAN     DiPMSupport;
    BOOLEAN     DisableSoftSetPrev;
    BOOLEAN     ForceHddPasswordPrompt;
    EFI_GUID    gIdeControllerProtocolGuid;
    EFI_GUID    gComponentNameProtocolGuid;
    UINT32      S3BusyClearTimeout;
    UINT32      DmaAtaCompleteCommandTimeout;
    UINT32      DmaAtaPiCompleteCommandTimeout;
    UINT32      AtaPiResetCommandTimeout;
    UINT32      AtaPiBusyClearTimeout;
    UINT32      PoweonBusyClearTimeout;
} PLATFORM_IDE_PROTOCOL;

/****** DO NOT WRITE BELOW THIS LINE *******/
#ifdef __cplusplus
}
#endif
#endif
//*************************************************************************
//*************************************************************************
//**                                                                     **
//**        (C)Copyright 1985-2010, American Megatrends, Inc.            **
//**                                                                     **
//**                       All Rights Reserved.                          **
//**                                                                     **
//**      5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093           **
//**                                                                     **
//**                       Phone: (770)-246-8600                         **
//**                                                                     **
//*************************************************************************
//*************************************************************************