summaryrefslogtreecommitdiff
path: root/Core/EM/UsbRecovery/UsbRecov.sdl
blob: 681c70d96a2458d2dbe64e385094afceb764ca0f (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
TOKEN
	Name  = "UsbRecov_SUPPORT"
	Value  = "1"
	Help  = "Main switch to enable UsbRecovery support in Project"
	TokenType = Boolean
	TargetEQU = Yes
	TargetMAK = Yes
	Master = Yes
End

TOKEN
	Name  = "PEI_UHCI_SUPPORT"
	Value  = "1"
	Help  = "Main switch to enable UHCI Controller support for USB recovery"
	TokenType = Boolean
	TargetEQU = Yes
	TargetMAK = Yes
	TargetH = Yes
End

TOKEN
	Name  = "PEI_OHCI_SUPPORT"
	Value  = "0"
	Help  = "Main switch to enable OhciPei support in Project"
	TokenType = Boolean
	TargetEQU = Yes
	TargetMAK = Yes
	TargetH = Yes
End

TOKEN
	Name  = "PEI_EHCI_SUPPORT"
	Value  = "0"
	Help  = "Main switch to enable EhciPei support in Project"
	TokenType = Boolean
	TargetEQU = Yes
	TargetMAK = Yes
	TargetH = Yes
End

TOKEN
	Name  = "PEI_XHCI_SUPPORT"
	Value  = "0"
	Help  = "Main switch to enable XhciPei support in Project"
	TokenType = Boolean
	TargetEQU = Yes
	TargetMAK = Yes
	TargetH = Yes
End

TOKEN
	Name  = "PEI_UHCI_IOBASE"
	Value  = "0x4000"
	Help  = "IO Base Address for UHCI Controller during PEI phase"
	TokenType = Integer
	TargetH = Yes
End

TOKEN
	Name  = "PEI_UHCI_PCI_DEVICES"
	Value  = "{0x1D0000, 0x1D0100, 0x1D0200, 0x1D0300, 0x1A0000, 0x1A0100}"
	Help  = "List of supported UHCI controllers in the following format: {devfunc1, devfunc2,...,devfuncN}\devfunc represents the location of UHCI controller on PCI bus: dev = Bus << 24 + Dev << 16 + Func << 8. Value followed by dev is the PCI device interface, for UHCI it must be 0.\Note: number of entries {devfunc} must not be less than a number of supported UHCI controllers specified in USB_UHCI token."
	TokenType = Expression
	TargetH = Yes
	Token = "PEI_UHCI_SUPPORT" "=" "1"
End

TOKEN
	Name  = "PEI_UHCI_PCI_DEVICES"
	Value  = "{0}"
	Help  = "Default value if not using UHCI controller"
	TokenType = Expression
	TargetH = Yes
	Token = "PEI_UHCI_SUPPORT" "=" "0"
End

TOKEN
	Name  = "PEI_EHCI_PCI_BDFS"
	Value  = "{0x1A0700, 0x1D0700}"
	Help  = "List of supported EHCI controllers in the following format: {devfunc1, devfunc2,...,devfuncN}\devfunc represents the location of EHCI controller on PCI bus: dev = Bus << 24 + Dev << 16 + Func << 8. Value followed by dev is the PCI device interface, for EHCI it must be 0.\Note: number of entries {devfunc} must not be less than a number of supported EHCI controllers specified in PEI_NUM_EHCI token."
	TokenType = Expression
	TargetH = Yes
End

TOKEN
	Name  = "PEI_EHCI_MEM_BASE_ADDRESSES"
	Value  = "{0xDFFFF000, 0xDFFFFC00}"
	Help  = "List of base addresses for the respective EHCI controllers specified by PEI_EHCI_PCI_BDFS"
	TokenType = Expression
	TargetH = Yes
End

TOKEN
	Name  = "PEI_OHCI_IOBASE"
	Value  = "0xFC087000"
	Help  = "Memory Mapped IO Base Address for first Recovery module OHCI Controller during PEI phase"
	TokenType = Integer
	TargetH = Yes
End

TOKEN
	Name  = "PEI_XHCI_MMIOBASE"
	Value  = "0xFE400000"
	Help  = "MMIO Base Address for first XHCI Controller during PEI phase"
	TokenType = Integer
	TargetH = Yes
End

TOKEN
	Name  = "PEI_XHCI_CONTROLLER_PCI_ADDRESS"
	Value  = "{0x1, 0x0, 0x0},"
	Help  = "Default value if XHCI controllers are not supported"
	Token = "PEI_XHCI_SUPPORT" "=" "1"
	TokenType = Expression
	TargetH = Yes
End

TOKEN
	Name  = "PEI_XHCI_CONTROLLER_PCI_REGISTER_VALUES"
    Value = "{0,0x1c,0,0x19,8,1,0},{0,0x1c,0,0x1a,8,1,0},{0,0x1c,0,0x20,16,0xfe40,0},{0,0x1c,0,0x22,16,0xfe40,0},{0,0x1c,0,4,8,6,0},"
	Help  = "Enable PCIe slot by programming bridge with the secondary/subordinate bus number and memory window.\Information format (AccessWidth is decimal), with a comma at the end:\   {Bus, Device, Function, Register, AccessWidth, BitsToSet, BitsToClear},"
	Token = "PEI_XHCI_SUPPORT" "=" "1"
	TokenType = Expression
	TargetH = Yes
End

TOKEN
	Name  = "FORCE_RECOVERY"
	Value  = "0"
	Help  = "Force recovery execution by forcing BootMode = BOOT_IN_RECOVERY_MODE in SbPei.c"
	TokenType = Boolean
	TargetH = Yes
End

ELINK
	Name  = "USBR_OHCI_CONTROLLER_PCI_ADDRESS"
	Help  = "Specifies the location of supported OHCI controllers on the PCI bus.  Use the following format with hexadecimal values, with a comma at the end: \  {bus, device, function},"
	InvokeOrder = ReplaceParent
End

ELINK
	Name  = "{0x0, 0x0, 0x0},"
	Parent  = "USBR_OHCI_CONTROLLER_PCI_ADDRESS"
	InvokeOrder = AfterParent
	Help  = "Default value if OHCI controllers are not supported"
	Token = "PEI_OHCI_SUPPORT" "=" "0"
End


ELINK
	Name  = "USBR_OHCI_CONTROLLER_PCI_REGISTER_VALUE"
	Help  = "Specifies the PCI register values to be programmed for each of the supported OHCI controllers specified by OHCI_CONTROLLER_PCI_ADDRESS. Use the following format with hexadecimal values (AccessWidth is decimal), with a comma at the end:\   {AccessWidth, Register, BitsToSet, BitsToClear},"
	InvokeOrder = ReplaceParent
End

ELINK
	Name  = "{ 0, 0, 0, 0 },"
	Parent  = "USBR_OHCI_CONTROLLER_PCI_REGISTER_VALUE"
	InvokeOrder = AfterParent
	Help  = "Default value if OHCI controllers are not supported"
	Token = "PEI_OHCI_SUPPORT" "=" "0"
End

ELINK
	Name  = "{ 32, 0x4, 0x6, 0x0 },"
	Parent  = "USBR_OHCI_CONTROLLER_PCI_REGISTER_VALUE"
	Help  = "Enable bus mastering and MMIO space (this register is typically programmed for all chipsets.  Priority is set to a large number to ensure it gets updated last.)"
	InvokeOrder = AfterParent
	Priority  = 255
	Token = "PEI_OHCI_SUPPORT" "=" "1"
End

PATH
	Name  = "UsbRecovery_DIR"
End

PATH
	Name  = "UHCIPEIUSB"
	Path  = "$(UsbRecovery_DIR)\UhciPeiUsb"
End

PATH
	Name  = "UhcipeiUsb_DIR"
	Path  = "$(UsbRecovery_DIR)\UhciPeiUsb"
End

PATH
	Name  = "OHCIPEI"
	Path  = "$(UsbRecovery_DIR)\OhciPei"
End

PATH
	Name  = "OhciPei_DIR"
	Path  = "$(UsbRecovery_DIR)\OhciPei"
End

PATH
	Name  = "EHCIPEI_DIR"
	Path  = "$(UsbRecovery_DIR)\EhciPei"
End

PATH
	Name  = "XHCIPEI_DIR"
	Path  = "$(UsbRecovery_DIR)\XhciPei"
End

PATH
	Name  = "UhcPeimSrc_DIR"
	Path  = "$(UsbRecovery_DIR)\UhcPeimSrc"
End

PATH
	Name  = "UsbPeimSrc_DIR"
	Path  = "$(UsbRecovery_DIR)\UsbPeimSrc"
End

PATH
	Name  = "UsbBotPeimSrc_DIR"
	Path  = "$(UsbRecovery_DIR)\UsbBotPeimSrc"
	Help  = "UsbBotPeimSrc file source directory"
End

MODULE
	Help  = "Includes UsbRecov.mak to Project"
	File  = "UsbRecov.mak"
End

ELINK
	Name  = "$(BUILD_DIR)\UsbBotPeim.ffs"
	Parent  = "FV_BB"
	InvokeOrder = AfterParent
	Token = "UsbRecov_SUPPORT" "=" "1"
End