]> git.proxmox.com Git - mirror_edk2.git/blame - EdkModulePkg/Bus/Pci/PciBus/Dxe/PciEnumerator.h
added 20ms stall to wait for slave device ready when identify some type of Seagate...
[mirror_edk2.git] / EdkModulePkg / Bus / Pci / PciBus / Dxe / PciEnumerator.h
CommitLineData
878ddf1f 1/*++\r
2\r
3Copyright (c) 2006, Intel Corporation \r
4All rights reserved. This program and the accompanying materials \r
5are licensed and made available under the terms and conditions of the BSD License \r
6which accompanies this distribution. The full text of the license may be found at \r
7http://opensource.org/licenses/bsd-license.php \r
8 \r
9THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
10WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
11\r
12Module Name:\r
13\r
14 PciEnumerator.h\r
15 \r
16Abstract:\r
17\r
18 PCI Bus Driver\r
19\r
20Revision History\r
21\r
22--*/\r
23\r
24#ifndef _EFI_PCI_ENUMERATOR_H\r
25#define _EFI_PCI_ENUMERATOR_H\r
26\r
27#include "PciResourceSupport.h"\r
28\r
29EFI_STATUS\r
30PciEnumerator (\r
31 IN EFI_HANDLE Controller\r
32 )\r
33/*++\r
34\r
35Routine Description:\r
36\r
37 TODO: Add function description\r
38\r
39Arguments:\r
40\r
41 Controller - TODO: add argument description\r
42\r
43Returns:\r
44\r
45 TODO: add return values\r
46\r
47--*/\r
48;\r
49\r
50EFI_STATUS\r
51PciRootBridgeEnumerator (\r
52 IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL *PciResAlloc,\r
53 IN PCI_IO_DEVICE *RootBridgeDev\r
54 )\r
55/*++\r
56\r
57Routine Description:\r
58\r
59 TODO: Add function description\r
60\r
61Arguments:\r
62\r
63 PciResAlloc - TODO: add argument description\r
64 RootBridgeDev - TODO: add argument description\r
65\r
66Returns:\r
67\r
68 TODO: add return values\r
69\r
70--*/\r
71;\r
72\r
73EFI_STATUS\r
74ProcessOptionRom (\r
75 IN PCI_IO_DEVICE *Bridge,\r
76 IN UINT64 RomBase,\r
77 IN UINT64 MaxLength\r
78 )\r
79/*++\r
80\r
81Routine Description:\r
82\r
83 TODO: Add function description\r
84\r
85Arguments:\r
86\r
87 Bridge - TODO: add argument description\r
88 RomBase - TODO: add argument description\r
89 MaxLength - TODO: add argument description\r
90\r
91Returns:\r
92\r
93 TODO: add return values\r
94\r
95--*/\r
96;\r
97\r
98EFI_STATUS\r
99PciAssignBusNumber (\r
100 IN PCI_IO_DEVICE *Bridge,\r
101 IN UINT8 StartBusNumber,\r
102 OUT UINT8 *SubBusNumber\r
103 )\r
104/*++\r
105\r
106Routine Description:\r
107\r
108 TODO: Add function description\r
109\r
110Arguments:\r
111\r
112 Bridge - TODO: add argument description\r
113 StartBusNumber - TODO: add argument description\r
114 SubBusNumber - TODO: add argument description\r
115\r
116Returns:\r
117\r
118 TODO: add return values\r
119\r
120--*/\r
121;\r
122\r
123EFI_STATUS\r
124DetermineRootBridgeAttributes (\r
125 IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL *PciResAlloc,\r
126 IN PCI_IO_DEVICE *RootBridgeDev\r
127 )\r
128/*++\r
129\r
130Routine Description:\r
131\r
132 TODO: Add function description\r
133\r
134Arguments:\r
135\r
136 PciResAlloc - TODO: add argument description\r
137 RootBridgeDev - TODO: add argument description\r
138\r
139Returns:\r
140\r
141 TODO: add return values\r
142\r
143--*/\r
144;\r
145\r
146UINT64\r
147GetMaxOptionRomSize (\r
148 IN PCI_IO_DEVICE *Bridge\r
149 )\r
150/*++\r
151\r
152Routine Description:\r
153\r
154 TODO: Add function description\r
155\r
156Arguments:\r
157\r
158 Bridge - TODO: add argument description\r
159\r
160Returns:\r
161\r
162 TODO: add return values\r
163\r
164--*/\r
165;\r
166\r
167EFI_STATUS\r
168PciHostBridgeDeviceAttribute (\r
169 IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL *PciResAlloc\r
170 )\r
171/*++\r
172\r
173Routine Description:\r
174\r
175 TODO: Add function description\r
176\r
177Arguments:\r
178\r
179 PciResAlloc - TODO: add argument description\r
180\r
181Returns:\r
182\r
183 TODO: add return values\r
184\r
185--*/\r
186;\r
187\r
188EFI_STATUS\r
189GetResourceAllocationStatus (\r
190 VOID *AcpiConfig,\r
191 OUT UINT64 *IoResStatus,\r
192 OUT UINT64 *Mem32ResStatus,\r
193 OUT UINT64 *PMem32ResStatus,\r
194 OUT UINT64 *Mem64ResStatus,\r
195 OUT UINT64 *PMem64ResStatus\r
196 )\r
197/*++\r
198\r
199Routine Description:\r
200\r
201 TODO: Add function description\r
202\r
203Arguments:\r
204\r
205 AcpiConfig - TODO: add argument description\r
206 IoResStatus - TODO: add argument description\r
207 Mem32ResStatus - TODO: add argument description\r
208 PMem32ResStatus - TODO: add argument description\r
209 Mem64ResStatus - TODO: add argument description\r
210 PMem64ResStatus - TODO: add argument description\r
211\r
212Returns:\r
213\r
214 TODO: add return values\r
215\r
216--*/\r
217;\r
218\r
219EFI_STATUS\r
220RejectPciDevice (\r
221 IN PCI_IO_DEVICE *PciDevice\r
222 )\r
223/*++\r
224\r
225Routine Description:\r
226\r
227 TODO: Add function description\r
228\r
229Arguments:\r
230\r
231 PciDevice - TODO: add argument description\r
232\r
233Returns:\r
234\r
235 TODO: add return values\r
236\r
237--*/\r
238;\r
239\r
240BOOLEAN\r
241IsRejectiveDevice (\r
242 IN PCI_RESOURCE_NODE *PciResNode\r
243 )\r
244/*++\r
245\r
246Routine Description:\r
247\r
248 TODO: Add function description\r
249\r
250Arguments:\r
251\r
252 PciResNode - TODO: add argument description\r
253\r
254Returns:\r
255\r
256 TODO: add return values\r
257\r
258--*/\r
259;\r
260\r
261PCI_RESOURCE_NODE *\r
262GetLargerConsumerDevice (\r
263 IN PCI_RESOURCE_NODE *PciResNode1,\r
264 IN PCI_RESOURCE_NODE *PciResNode2\r
265 )\r
266/*++\r
267\r
268Routine Description:\r
269\r
270 TODO: Add function description\r
271\r
272Arguments:\r
273\r
274 PciResNode1 - TODO: add argument description\r
275 PciResNode2 - TODO: add argument description\r
276\r
277Returns:\r
278\r
279 TODO: add return values\r
280\r
281--*/\r
282;\r
283\r
284PCI_RESOURCE_NODE *\r
285GetMaxResourceConsumerDevice (\r
286 IN PCI_RESOURCE_NODE *ResPool\r
287 )\r
288/*++\r
289\r
290Routine Description:\r
291\r
292 TODO: Add function description\r
293\r
294Arguments:\r
295\r
296 ResPool - TODO: add argument description\r
297\r
298Returns:\r
299\r
300 TODO: add return values\r
301\r
302--*/\r
303;\r
304\r
305EFI_STATUS\r
306PciHostBridgeAdjustAllocation (\r
307 IN PCI_RESOURCE_NODE *IoPool,\r
308 IN PCI_RESOURCE_NODE *Mem32Pool,\r
309 IN PCI_RESOURCE_NODE *PMem32Pool,\r
310 IN PCI_RESOURCE_NODE *Mem64Pool,\r
311 IN PCI_RESOURCE_NODE *PMem64Pool,\r
312 IN UINT64 IoResStatus,\r
313 IN UINT64 Mem32ResStatus,\r
314 IN UINT64 PMem32ResStatus,\r
315 IN UINT64 Mem64ResStatus,\r
316 IN UINT64 PMem64ResStatus\r
317 )\r
318/*++\r
319\r
320Routine Description:\r
321\r
322 TODO: Add function description\r
323\r
324Arguments:\r
325\r
326 IoPool - TODO: add argument description\r
327 Mem32Pool - TODO: add argument description\r
328 PMem32Pool - TODO: add argument description\r
329 Mem64Pool - TODO: add argument description\r
330 PMem64Pool - TODO: add argument description\r
331 IoResStatus - TODO: add argument description\r
332 Mem32ResStatus - TODO: add argument description\r
333 PMem32ResStatus - TODO: add argument description\r
334 Mem64ResStatus - TODO: add argument description\r
335 PMem64ResStatus - TODO: add argument description\r
336\r
337Returns:\r
338\r
339 TODO: add return values\r
340\r
341--*/\r
342;\r
343\r
344EFI_STATUS\r
345ConstructAcpiResourceRequestor (\r
346 IN PCI_IO_DEVICE *Bridge,\r
347 IN PCI_RESOURCE_NODE *IoNode,\r
348 IN PCI_RESOURCE_NODE *Mem32Node,\r
349 IN PCI_RESOURCE_NODE *PMem32Node,\r
350 IN PCI_RESOURCE_NODE *Mem64Node,\r
351 IN PCI_RESOURCE_NODE *PMem64Node,\r
352 OUT VOID **pConfig\r
353 )\r
354/*++\r
355\r
356Routine Description:\r
357\r
358 TODO: Add function description\r
359\r
360Arguments:\r
361\r
362 Bridge - TODO: add argument description\r
363 IoNode - TODO: add argument description\r
364 Mem32Node - TODO: add argument description\r
365 PMem32Node - TODO: add argument description\r
366 Mem64Node - TODO: add argument description\r
367 PMem64Node - TODO: add argument description\r
368 pConfig - TODO: add argument description\r
369\r
370Returns:\r
371\r
372 TODO: add return values\r
373\r
374--*/\r
375;\r
376\r
377EFI_STATUS\r
378GetResourceBase (\r
379 IN VOID *pConfig,\r
380 OUT UINT64 *IoBase,\r
381 OUT UINT64 *Mem32Base,\r
382 OUT UINT64 *PMem32Base,\r
383 OUT UINT64 *Mem64Base,\r
384 OUT UINT64 *PMem64Base\r
385 )\r
386/*++\r
387\r
388Routine Description:\r
389\r
390 TODO: Add function description\r
391\r
392Arguments:\r
393\r
394 pConfig - TODO: add argument description\r
395 IoBase - TODO: add argument description\r
396 Mem32Base - TODO: add argument description\r
397 PMem32Base - TODO: add argument description\r
398 Mem64Base - TODO: add argument description\r
399 PMem64Base - TODO: add argument description\r
400\r
401Returns:\r
402\r
403 TODO: add return values\r
404\r
405--*/\r
406;\r
407\r
408EFI_STATUS\r
409PciBridgeEnumerator (\r
410 IN PCI_IO_DEVICE *BridgeDev\r
411 )\r
412/*++\r
413\r
414Routine Description:\r
415\r
416 TODO: Add function description\r
417\r
418Arguments:\r
419\r
420 BridgeDev - TODO: add argument description\r
421\r
422Returns:\r
423\r
424 TODO: add return values\r
425\r
426--*/\r
427;\r
428\r
429EFI_STATUS\r
430PciBridgeResourceAllocator (\r
431 IN PCI_IO_DEVICE *Bridge\r
432 )\r
433/*++\r
434\r
435Routine Description:\r
436\r
437 TODO: Add function description\r
438\r
439Arguments:\r
440\r
441 Bridge - TODO: add argument description\r
442\r
443Returns:\r
444\r
445 TODO: add return values\r
446\r
447--*/\r
448;\r
449\r
450EFI_STATUS\r
451GetResourceBaseFromBridge (\r
452 IN PCI_IO_DEVICE *Bridge,\r
453 OUT UINT64 *IoBase,\r
454 OUT UINT64 *Mem32Base,\r
455 OUT UINT64 *PMem32Base,\r
456 OUT UINT64 *Mem64Base,\r
457 OUT UINT64 *PMem64Base\r
458 )\r
459/*++\r
460\r
461Routine Description:\r
462\r
463 TODO: Add function description\r
464\r
465Arguments:\r
466\r
467 Bridge - TODO: add argument description\r
468 IoBase - TODO: add argument description\r
469 Mem32Base - TODO: add argument description\r
470 PMem32Base - TODO: add argument description\r
471 Mem64Base - TODO: add argument description\r
472 PMem64Base - TODO: add argument description\r
473\r
474Returns:\r
475\r
476 TODO: add return values\r
477\r
478--*/\r
479;\r
480\r
481EFI_STATUS\r
482PciHostBridgeP2CProcess (\r
483 IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL *PciResAlloc\r
484 )\r
485/*++\r
486\r
487Routine Description:\r
488\r
489 TODO: Add function description\r
490\r
491Arguments:\r
492\r
493 PciResAlloc - TODO: add argument description\r
494\r
495Returns:\r
496\r
497 TODO: add return values\r
498\r
499--*/\r
500;\r
501\r
502EFI_STATUS\r
503NotifyPhase (\r
504 IN EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL *PciResAlloc,\r
505 EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PHASE Phase\r
506 )\r
507/*++\r
508\r
509Routine Description:\r
510\r
511 TODO: Add function description\r
512\r
513Arguments:\r
514\r
515 PciResAlloc - TODO: add argument description\r
516 Phase - TODO: add argument description\r
517\r
518Returns:\r
519\r
520 TODO: add return values\r
521\r
522--*/\r
523;\r
524\r
525EFI_STATUS\r
526PreprocessController (\r
527 IN PCI_IO_DEVICE *Bridge,\r
528 IN UINT8 Bus,\r
529 IN UINT8 Device,\r
530 IN UINT8 Func,\r
531 IN EFI_PCI_CONTROLLER_RESOURCE_ALLOCATION_PHASE Phase\r
532 )\r
533/*++\r
534\r
535Routine Description:\r
536\r
537 TODO: Add function description\r
538\r
539Arguments:\r
540\r
541 Bridge - TODO: add argument description\r
542 Bus - TODO: add argument description\r
543 Device - TODO: add argument description\r
544 Func - TODO: add argument description\r
545 Phase - TODO: add argument description\r
546\r
547Returns:\r
548\r
549 TODO: add return values\r
550\r
551--*/\r
552;\r
553\r
554EFI_STATUS\r
555EFIAPI\r
556PciHotPlugRequestNotify (\r
557 IN EFI_PCI_HOTPLUG_REQUEST_PROTOCOL * This,\r
558 IN EFI_PCI_HOTPLUG_OPERATION Operation,\r
559 IN EFI_HANDLE Controller,\r
560 IN EFI_DEVICE_PATH_PROTOCOL * RemainingDevicePath OPTIONAL,\r
561 IN OUT UINT8 *NumberOfChildren,\r
562 IN OUT EFI_HANDLE * ChildHandleBuffer\r
563 )\r
564/*++\r
565\r
566Routine Description:\r
567\r
568 TODO: Add function description\r
569\r
570Arguments:\r
571\r
572 This - TODO: add argument description\r
573 Operation - TODO: add argument description\r
574 Controller - TODO: add argument description\r
575 RemainingDevicePath - TODO: add argument description\r
576 NumberOfChildren - TODO: add argument description\r
577 ChildHandleBuffer - TODO: add argument description\r
578\r
579Returns:\r
580\r
581 TODO: add return values\r
582\r
583--*/\r
584;\r
585\r
586BOOLEAN\r
587SearchHostBridgeHandle (\r
588 IN EFI_HANDLE RootBridgeHandle\r
589 )\r
590/*++\r
591\r
592Routine Description:\r
593\r
594 TODO: Add function description\r
595\r
596Arguments:\r
597\r
598 RootBridgeHandle - TODO: add argument description\r
599\r
600Returns:\r
601\r
602 TODO: add return values\r
603\r
604--*/\r
605;\r
606\r
607EFI_STATUS\r
608AddHostBridgeEnumerator (\r
609 IN EFI_HANDLE HostBridgeHandle\r
610 )\r
611/*++\r
612\r
613Routine Description:\r
614\r
615 TODO: Add function description\r
616\r
617Arguments:\r
618\r
619 HostBridgeHandle - TODO: add argument description\r
620\r
621Returns:\r
622\r
623 TODO: add return values\r
624\r
625--*/\r
626;\r
627\r
628#endif\r