summaryrefslogtreecommitdiff
path: root/Core/EM/usb/rt/usbrt.mak
blob: ef9b570e6a5dd35690e96974b1aa2ed69f6b118e (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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
#**********************************************************************
#**********************************************************************
#**                                                                  **
#**        (C)Copyright 1985-2016, American Megatrends, Inc.         **
#**                                                                  **
#**                       All Rights Reserved.                       **
#**                                                                  **
#**             5555 Oakbrook Pkwy, Norcross, GA 30093               **
#**                                                                  **
#**                       Phone: (770)-246-8600                      **
#**                                                                  **
#**********************************************************************
#**********************************************************************

#**********************************************************************
# $Header: /Alaska/SOURCE/Modules/USB/ALASKA/rt/usbrt.mak 27    10/16/16 10:15p Wilsonlee $
#
# $Revision: 27 $
#
# $Date: 10/16/16 10:15p $
#
#****************************************************************************
# Revision History
# ----------------
# $Log: /Alaska/SOURCE/Modules/USB/ALASKA/rt/usbrt.mak $
# 
# 27    10/16/16 10:15p Wilsonlee
# [TAG]  		EIP288158
# [Category]  	Improvement
# [Description]  	Check if gUsbData is integrity.
# [Files]  		amiusb.cif, usbsb.c, AmiUsbLib.cif, AmiUsbLib.sdl,
# AmiUsbSmmGlobalDataValidationLib.c,
# AmiUsbSmmGlobalDataValidationLib.cif,
# AmiUsbSmmGlobalDataValidationLib.mak, Crc32.c, amiusb.c, amiusb.h,
# ehci.c, elib.c, ohci.c, syskbc.c, uhci.c, usb.c, usbCCID.c, usbdef.h,
# usbhid.c, usbhub.c, usbkbd.c, usbmass.c, usbms.c, usbrt.mak, xhci.c,
# amiusbhc.c, efiusbccid.c, efiusbmass.c, uhcd.c, usbmisc.c,
# AmiUsbController.h, AmiUsbLibInclude.cif,
# AmiUsbSmmGlobalDataValidationLib.h
# 
# 26    12/03/14 9:38p Wilsonlee
# [TAG]  		EIP193805
# [Category]  	Improvement
# [Description]  	Security Enhancement for SMIHandler in USB module.
# [Files]  		amiusb.c, uhcd.c, usbrt.mak, usbdef.h, usbsb.c
# 
# 25    3/19/13 4:02a Ryanchou
# [TAG]  		EIP118177
# [Category]  	Improvement
# [Description]  	Dynamically allocate HCStrucTable at runtime.
# [Files]  		usb.sdl, usbport.c, usbsb.c, amiusb.c, ehci.c, ohci.c,
# syskbc.c, sysnokbc.c, uhci.c, usb.c, usbCCID.c, usbdef.h, usbhid.c,
# usbhub.c, usbmass.c, usbrt.mak, usb.sd, amiusbhc.c, efiusbccid.c,
# efiusbhid.c, efiusbmass.c, efiusbms.c, uhcd.c, uhcd.h, uhcd.mak,
# usbmisc.c, usbsrc.sdl
# 
# 24    11/20/12 9:07p Wilsonlee
# [TAG]  		EIP90887
# [Category]  	New Feature
# [Description]  	Add a hook to check keyboard buffer for speicial chars.
# [Files]  		usb.sdl, usbrt.mak, usbkbd.c
# 
# 23    8/29/12 8:41a Ryanchou
# [TAG]  		EIP77262
# [Category]  	New Feature
# [Description]  	Remove SMM dependency of USB.
# [Files]  		usb.sdl, usbport.c, amiusb.c, amiusb.dxs, amiusb.h, ehci.c,
# elib.c, ohci.c, uhci.c, usb.c, usbdef.h, usbrt.mak, xhci.c, amiusbhc.c,
# efiusbccid.c, efiusbhid.c, efiusbkb.c, efiusbmass.c, uhcd.c, uhcd.dxs,
# uhcd.h, usbmisc.c, AmiUsbController.h
# 
# 22    1/16/12 6:02a Ryanchou
# [TAG]  		EIP81132
# [Description]  	Add core version check for EIP80609 solution.
# [Files]  		amiusb.c, usbrt.mak, usbsb.c
# 
# 21    1/14/12 4:10a Ryanchou
# [TAG]  		EIP80609
# [Category]  	Bug Fix
# [Severity]  	Important
# [Symptom]  	If to enable debug mode and set launch CSM is "Never" in
# setup, system will hang at 0xB1
# [RootCause]  	The pointer AmiUsb is invalid if CSM is not launched,
# that may cause CPU exception.
# [Solution]  	Added USB smm protocol, and use SmmLocateProtocol to get
# the pointer.
# [Files]  		amiusb.c, AmiUsbController.h, usbrt.mak, usbsb.c
# 
# 20    10/25/11 8:27a Wilsonlee
# [TAG]  		EIP71750
# [Category]  	New Feature
# [Description]  	Support extraUSB device driver hook by elink.
# [Files]  		usb.c, uhcd.c, uhcd.mak, usbrt.mak, usb.sdl
# 
# 19    11/22/10 8:45a Ryanchou
# [TAG]  		EIP48064
# [Category]  	Improvement
# [Description]  	The SB template implemented elink
# AcpiEnableCallbackList, the XHCI/EHCI hand off function should be
# invoked via the elink AcpiEnableCallbackList.
# [Files]  		amidef.h, amiusb.c, amiusb.dxs, amiusb.h,
# AmiUsbController.h, usb.sdl, usbrt.mak, usbsb.c
# 
# 18    11/13/09 9:14a Olegi
# EIP31023: key repeat rates are defined by SDL tokens.
# 
# 17    10/30/09 5:48p Olegi
# 
# 16    5/16/08 12:03p Olegi
# Compliance with AMI coding standard.
#
#****************************************************************************

#**********************************************************************
#<AMI_FHDR_START>
#
# Name:		UsbRt.mak
#
# Description:	Make file for the UsbRt component
#
#<AMI_FHDR_END>
#**********************************************************************

all : USBRT

!ifndef PI_SPECIFICATION_VERSION
PI_SPECIFICATION_VERSION = 0
!endif

!ifndef CORE_COMBINED_VERSION
CORE_COMBINED_VERSION = $(CORE_MAJOR_VERSION)*65536+$(CORE_MINOR_VERSION)*100+$(CORE_REVISION)*10+$(CORE_BUILD_NUMBER)
!endif

USBRT : $(BUILD_DIR)\usbrt.mak UsbRtElinkList USBRTBin 

USBRT_EXT_HEADERS=\
	$(UHCD_DIR)\RT\usbdef.h\
	$(UHCD_DIR)\RT\amidef.h\
	$(UHCD_DIR)\RT\amiusb.h\
	$(BUILD_DIR)\UsbDevDriverElinks.h

$(BUILD_DIR)\usbrt.mak : $(USBRT_DIR)\$(@B).cif $(USBRT_DIR)\$(@B).mak $(BUILD_RULES)
	$(CIF2MAK) $(USBRT_DIR)\$(@B).cif $(CIF2MAK_DEFAULTS)

UsbRtElinkList: UhcdElinkList
	$(ECHO) #define USB_DEV_DELAYED_DRIVER $(USB_DEV_DELAYED_DRIVER_LIST) >> $(BUILD_DIR)\UsbDevDriverElinks.h
	$(ECHO) #define USB_DEV_DRIVER $(USB_DEV_DRIVER_LIST) >> $(BUILD_DIR)\UsbDevDriverElinks.h
	$(ECHO) #define KBD_BUFFER_CHECK_ELINK_LIST	$(CheckKeyBoardBufferForSpecialChars) >> $(BUILD_DIR)\UsbDevDriverElinks.h

$(BUILD_DIR)\dummyusbrt.obj:
	copy << $(BUILD_DIR)\dummyusbrt.c
#include "amidef.h"
#include "usbdef.h"
#include "usbkbd.h"

extern	UINT8	UHCI_FillHCDEntries(HCD_HEADER*);
extern	UINT8	OHCI_FillHCDEntries(HCD_HEADER*);
extern	UINT8	EHCI_FillHCDEntries(HCD_HEADER*);
extern	UINT8	XHCI_FillHCDEntries(HCD_HEADER*);
extern	USB_GLOBAL_DATA *gUsbData;

void FillHcdEntries()
{
#if UHCI_SUPPORT
	UHCI_FillHCDEntries (&gUsbData->aHCDriverTable[USB_INDEX_UHCI]);
#endif
#if OHCI_SUPPORT
	OHCI_FillHCDEntries (&gUsbData->aHCDriverTable[USB_INDEX_OHCI]);
#endif
#if EHCI_SUPPORT
	EHCI_FillHCDEntries (&gUsbData->aHCDriverTable[USB_INDEX_EHCI]);
#endif
#if XHCI_SUPPORT
	XHCI_FillHCDEntries (&gUsbData->aHCDriverTable[USB_INDEX_XHCI]);
#endif
}
<<
	$(CC) $(CFLAGS) /Fo$(BUILD_DIR)\ $(BUILD_DIR)\dummyusbrt.c /I$(UHCD_DIR) /I$(USBRT_DIR)

!if $(USB_RUNTIME_DRIVER_IN_SMM) == 1
!ifdef AcpiEnableCallbackList
$(BUILD_DIR)\usbsb.obj: $(USB_SB_DIR)\usbsb.c
	$(CC) $(CFLAGS) /Fo$(BUILD_DIR)\ $(USB_SB_DIR)\usbsb.c /I$(USB_SB_DIR) /I$(USBRT_DIR)

$(BUILD_DIR)\usbacpi.obj: $(USB_SB_DIR)\usbsb.c
	$(CC) $(CFLAGS) /DUSB_ACPI_ENABLE_CALLBACK /Fo$(BUILD_DIR)\usbacpi.obj $(USB_SB_DIR)\usbsb.c /I$(USB_SB_DIR) /I$(USBRT_DIR)

AcpiModeEnableBin: $(BUILD_DIR)\usbacpi.obj

!else
$(BUILD_DIR)\usbsb.obj: $(USB_SB_DIR)\usbsb.c
	$(CC) $(CFLAGS) /DUSB_ACPI_ENABLE_DISPATCH /Fo$(BUILD_DIR)\ $(USB_SB_DIR)\usbsb.c /I$(USB_SB_DIR) /I$(USBRT_DIR)

!endif
!endif

$(BUILD_DIR)\usbrtport.obj : $(USBPORTING_DIR)\usbport.c
	$(CC) $(CFLAGS) /DUSB_RT_DRIVER /Fo$(BUILD_DIR)\UsbrtPort.obj $(USBPORTING_DIR)\usbport.c /I$(UHCD_DIR) /I$(USBRT_DIR)

USBRTBinObjects = \
	$(BUILD_DIR)\dummyusbrt.obj \
!if $(USB_RUNTIME_DRIVER_IN_SMM) == 1
	$(BUILD_DIR)\usbsb.obj \
	$(BUILD_DIR)\AmiBufferValidationLib.lib \
	$(BUILD_DIR)\AmiUsbSmmGlobalDataValidationLib.lib \
!endif
	$(BUILD_DIR)\usbrtport.obj

USBRTBin : $(AMIDXELIB) $(USBRTBinObjects)
	$(MAKE) /$(MAKEFLAGS) $(BUILD_DEFAULTS)\
		/f $(BUILD_DIR)\usbrt.mak all\
		GUID=04EAAAA1-29A1-11d7-8838-00500473D4EB \
		ENTRY_POINT=USBDriverEntryPoint \
		"CFLAGS=$(CFLAGS) /I$(UHCD_DIR)"\
		"AFLAGS=$(AFLAGS) /Fl"\
		"EXT_HEADERS=$(USBRT_EXT_HEADERS)"\
!if $(USB_RUNTIME_DRIVER_IN_SMM) == 1 && $(PI_SPECIFICATION_VERSION) >= 0x00001000A && $(CORE_COMBINED_VERSION) >= 0x4028B
		TYPE=SMM_DRIVER \
		DEPEX1=$(USBRT_DIR)\amiusb.dxs \
!else
		TYPE=BS_DRIVER \
		DEPEX1=$(USBRT_DIR)\amiusb.dxs \
		DEPEX1_TYPE=EFI_SECTION_DXE_DEPEX \
!endif
		COMPRESS=1\

#		"CFLAGS=$(CFLAGS:/W3=/W4) /I$(UHCD_DIR)"\

#**********************************************************************
#**********************************************************************
#**                                                                  **
#**        (C)Copyright 1985-2016, American Megatrends, Inc.         **
#**                                                                  **
#**                       All Rights Reserved.                       **
#**                                                                  **
#**             5555 Oakbrook Pkwy, Norcross, GA 30093               **
#**                                                                  **
#**                       Phone: (770)-246-8600                      **
#**                                                                  **
#**********************************************************************
#**********************************************************************