]> git.proxmox.com Git - mirror_edk2.git/blob - IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciResourceSupport.h
Correct all header files for doxygen format and correct the license issue for VgaClas...
[mirror_edk2.git] / IntelFrameworkModulePkg / Bus / Pci / PciBusDxe / PciResourceSupport.h
1 /**@file
2
3 Copyright (c) 2006, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 **/
13
14 #ifndef _EFI_PCI_RESOURCE_SUPPORT_H
15 #define _EFI_PCI_RESOURCE_SUPPORT_H
16
17 #define RESERVED_RESOURCE_SIGNATURE EFI_SIGNATURE_32 ('r', 's', 'v', 'd')
18
19 typedef struct {
20 UINT64 Base;
21 UINT64 Length;
22 PCI_BAR_TYPE ResType;
23 } PCI_RESERVED_RESOURCE_NODE;
24
25 typedef struct {
26 UINT32 Signature;
27 LIST_ENTRY Link;
28 PCI_RESERVED_RESOURCE_NODE Node;
29 } PCI_RESERVED_RESOURCE_LIST;
30
31 #define RESOURCED_LIST_FROM_NODE(a) \
32 CR (a, PCI_RESERVED_RESOURCE_LIST, Node, RESERVED_RESOURCE_SIGNATURE)
33
34 #define RESOURCED_LIST_FROM_LINK(a) \
35 CR (a, PCI_RESERVED_RESOURCE_LIST, Link, RESERVED_RESOURCE_SIGNATURE)
36
37 typedef enum {
38 PciResUsageTypical = 0,
39 PciResUsagePadding,
40 PciResUsageOptionRomProcessing
41 } PCI_RESOURCE_USAGE;
42
43 #define PCI_RESOURCE_SIGNATURE EFI_SIGNATURE_32 ('p', 'c', 'r', 'c')
44
45 typedef struct {
46 UINT32 Signature;
47 LIST_ENTRY Link;
48 LIST_ENTRY ChildList;
49 PCI_IO_DEVICE *PciDev;
50 UINT64 Alignment;
51 UINT64 Offset;
52 UINT8 Bar;
53 PCI_BAR_TYPE ResType;
54 UINT64 Length;
55 BOOLEAN Reserved;
56 PCI_RESOURCE_USAGE ResourceUsage;
57 } PCI_RESOURCE_NODE;
58
59 #define RESOURCE_NODE_FROM_LINK(a) \
60 CR (a, PCI_RESOURCE_NODE, Link, PCI_RESOURCE_SIGNATURE)
61
62 EFI_STATUS
63 SkipVGAAperture (
64 OUT UINT64 *Start,
65 IN UINT64 Length
66 )
67 /*++
68
69 Routine Description:
70
71 TODO: Add function description
72
73 Arguments:
74
75 Start - TODO: add argument description
76 Length - TODO: add argument description
77
78 Returns:
79
80 TODO: add return values
81
82 --*/
83 ;
84
85 EFI_STATUS
86 SkipIsaAliasAperture (
87 OUT UINT64 *Start,
88 IN UINT64 Length
89 )
90 /*++
91
92 Routine Description:
93
94 TODO: Add function description
95
96 Arguments:
97
98 Start - TODO: add argument description
99 Length - TODO: add argument description
100
101 Returns:
102
103 TODO: add return values
104
105 --*/
106 ;
107
108 EFI_STATUS
109 InsertResourceNode (
110 PCI_RESOURCE_NODE *Bridge,
111 PCI_RESOURCE_NODE *ResNode
112 )
113 /*++
114
115 Routine Description:
116
117 TODO: Add function description
118
119 Arguments:
120
121 Bridge - TODO: add argument description
122 ResNode - TODO: add argument description
123
124 Returns:
125
126 TODO: add return values
127
128 --*/
129 ;
130
131 EFI_STATUS
132 MergeResourceTree (
133 PCI_RESOURCE_NODE *Dst,
134 PCI_RESOURCE_NODE *Res,
135 BOOLEAN TypeMerge
136 )
137 /*++
138
139 Routine Description:
140
141 TODO: Add function description
142
143 Arguments:
144
145 Dst - TODO: add argument description
146 Res - TODO: add argument description
147 TypeMerge - TODO: add argument description
148
149 Returns:
150
151 TODO: add return values
152
153 --*/
154 ;
155
156 EFI_STATUS
157 CalculateApertureIo16 (
158 IN PCI_RESOURCE_NODE *Bridge
159 )
160 /*++
161
162 Routine Description:
163
164 TODO: Add function description
165
166 Arguments:
167
168 Bridge - TODO: add argument description
169
170 Returns:
171
172 TODO: add return values
173
174 --*/
175 ;
176
177 EFI_STATUS
178 CalculateResourceAperture (
179 IN PCI_RESOURCE_NODE *Bridge
180 )
181 /*++
182
183 Routine Description:
184
185 TODO: Add function description
186
187 Arguments:
188
189 Bridge - TODO: add argument description
190
191 Returns:
192
193 TODO: add return values
194
195 --*/
196 ;
197
198 EFI_STATUS
199 GetResourceFromDevice (
200 PCI_IO_DEVICE *PciDev,
201 PCI_RESOURCE_NODE *IoNode,
202 PCI_RESOURCE_NODE *Mem32Node,
203 PCI_RESOURCE_NODE *PMem32Node,
204 PCI_RESOURCE_NODE *Mem64Node,
205 PCI_RESOURCE_NODE *PMem64Node
206 )
207 /*++
208
209 Routine Description:
210
211 TODO: Add function description
212
213 Arguments:
214
215 PciDev - TODO: add argument description
216 IoNode - TODO: add argument description
217 Mem32Node - TODO: add argument description
218 PMem32Node - TODO: add argument description
219 Mem64Node - TODO: add argument description
220 PMem64Node - TODO: add argument description
221
222 Returns:
223
224 TODO: add return values
225
226 --*/
227 ;
228
229 PCI_RESOURCE_NODE *
230 CreateResourceNode (
231 IN PCI_IO_DEVICE *PciDev,
232 IN UINT64 Length,
233 IN UINT64 Alignment,
234 IN UINT8 Bar,
235 IN PCI_BAR_TYPE ResType,
236 IN PCI_RESOURCE_USAGE ResUsage
237 )
238 /*++
239
240 Routine Description:
241
242 TODO: Add function description
243
244 Arguments:
245
246 PciDev - TODO: add argument description
247 Length - TODO: add argument description
248 Alignment - TODO: add argument description
249 Bar - TODO: add argument description
250 ResType - TODO: add argument description
251 ResUsage - TODO: add argument description
252
253 Returns:
254
255 TODO: add return values
256
257 --*/
258 ;
259
260 EFI_STATUS
261 CreateResourceMap (
262 IN PCI_IO_DEVICE *Bridge,
263 IN PCI_RESOURCE_NODE *IoNode,
264 IN PCI_RESOURCE_NODE *Mem32Node,
265 IN PCI_RESOURCE_NODE *PMem32Node,
266 IN PCI_RESOURCE_NODE *Mem64Node,
267 IN PCI_RESOURCE_NODE *PMem64Node
268 )
269 /*++
270
271 Routine Description:
272
273 TODO: Add function description
274
275 Arguments:
276
277 Bridge - TODO: add argument description
278 IoNode - TODO: add argument description
279 Mem32Node - TODO: add argument description
280 PMem32Node - TODO: add argument description
281 Mem64Node - TODO: add argument description
282 PMem64Node - TODO: add argument description
283
284 Returns:
285
286 TODO: add return values
287
288 --*/
289 ;
290
291 EFI_STATUS
292 ResourcePaddingPolicy (
293 PCI_IO_DEVICE *PciDev,
294 PCI_RESOURCE_NODE *IoNode,
295 PCI_RESOURCE_NODE *Mem32Node,
296 PCI_RESOURCE_NODE *PMem32Node,
297 PCI_RESOURCE_NODE *Mem64Node,
298 PCI_RESOURCE_NODE *PMem64Node
299 )
300 /*++
301
302 Routine Description:
303
304 TODO: Add function description
305
306 Arguments:
307
308 PciDev - TODO: add argument description
309 IoNode - TODO: add argument description
310 Mem32Node - TODO: add argument description
311 PMem32Node - TODO: add argument description
312 Mem64Node - TODO: add argument description
313 PMem64Node - TODO: add argument description
314
315 Returns:
316
317 TODO: add return values
318
319 --*/
320 ;
321
322 EFI_STATUS
323 DegradeResource (
324 IN PCI_IO_DEVICE *Bridge,
325 IN PCI_RESOURCE_NODE *Mem32Node,
326 IN PCI_RESOURCE_NODE *PMem32Node,
327 IN PCI_RESOURCE_NODE *Mem64Node,
328 IN PCI_RESOURCE_NODE *PMem64Node
329 )
330 /*++
331
332 Routine Description:
333
334 TODO: Add function description
335
336 Arguments:
337
338 Bridge - TODO: add argument description
339 Mem32Node - TODO: add argument description
340 PMem32Node - TODO: add argument description
341 Mem64Node - TODO: add argument description
342 PMem64Node - TODO: add argument description
343
344 Returns:
345
346 TODO: add return values
347
348 --*/
349 ;
350
351 BOOLEAN
352 BridgeSupportResourceDecode (
353 IN PCI_IO_DEVICE *Bridge,
354 IN UINT32 Decode
355 )
356 /*++
357
358 Routine Description:
359
360 TODO: Add function description
361
362 Arguments:
363
364 Bridge - TODO: add argument description
365 Decode - TODO: add argument description
366
367 Returns:
368
369 TODO: add return values
370
371 --*/
372 ;
373
374 EFI_STATUS
375 ProgramResource (
376 IN UINT64 Base,
377 IN PCI_RESOURCE_NODE *Bridge
378 )
379 /*++
380
381 Routine Description:
382
383 TODO: Add function description
384
385 Arguments:
386
387 Base - TODO: add argument description
388 Bridge - TODO: add argument description
389
390 Returns:
391
392 TODO: add return values
393
394 --*/
395 ;
396
397 EFI_STATUS
398 ProgramBar (
399 IN UINT64 Base,
400 IN PCI_RESOURCE_NODE *Node
401 )
402 /*++
403
404 Routine Description:
405
406 TODO: Add function description
407
408 Arguments:
409
410 Base - TODO: add argument description
411 Node - TODO: add argument description
412
413 Returns:
414
415 TODO: add return values
416
417 --*/
418 ;
419
420 EFI_STATUS
421 ProgramPpbApperture (
422 IN UINT64 Base,
423 IN PCI_RESOURCE_NODE *Node
424 )
425 /*++
426
427 Routine Description:
428
429 TODO: Add function description
430
431 Arguments:
432
433 Base - TODO: add argument description
434 Node - TODO: add argument description
435
436 Returns:
437
438 TODO: add return values
439
440 --*/
441 ;
442
443 EFI_STATUS
444 ProgrameUpstreamBridgeForRom (
445 IN PCI_IO_DEVICE *PciDevice,
446 IN UINT32 OptionRomBase,
447 IN BOOLEAN Enable
448 )
449 /*++
450
451 Routine Description:
452
453 TODO: Add function description
454
455 Arguments:
456
457 PciDevice - TODO: add argument description
458 OptionRomBase - TODO: add argument description
459 Enable - TODO: add argument description
460
461 Returns:
462
463 TODO: add return values
464
465 --*/
466 ;
467
468 BOOLEAN
469 ResourceRequestExisted (
470 IN PCI_RESOURCE_NODE *Bridge
471 )
472 /*++
473
474 Routine Description:
475
476 TODO: Add function description
477
478 Arguments:
479
480 Bridge - TODO: add argument description
481
482 Returns:
483
484 TODO: add return values
485
486 --*/
487 ;
488
489 EFI_STATUS
490 InitializeResourcePool (
491 PCI_RESOURCE_NODE *ResourcePool,
492 PCI_BAR_TYPE ResourceType
493 )
494 /*++
495
496 Routine Description:
497
498 TODO: Add function description
499
500 Arguments:
501
502 ResourcePool - TODO: add argument description
503 ResourceType - TODO: add argument description
504
505 Returns:
506
507 TODO: add return values
508
509 --*/
510 ;
511
512 EFI_STATUS
513 GetResourceMap (
514 PCI_IO_DEVICE *PciDev,
515 PCI_RESOURCE_NODE **IoBridge,
516 PCI_RESOURCE_NODE **Mem32Bridge,
517 PCI_RESOURCE_NODE **PMem32Bridge,
518 PCI_RESOURCE_NODE **Mem64Bridge,
519 PCI_RESOURCE_NODE **PMem64Bridge,
520 PCI_RESOURCE_NODE *IoPool,
521 PCI_RESOURCE_NODE *Mem32Pool,
522 PCI_RESOURCE_NODE *PMem32Pool,
523 PCI_RESOURCE_NODE *Mem64Pool,
524 PCI_RESOURCE_NODE *PMem64Pool
525 )
526 /*++
527
528 Routine Description:
529
530 TODO: Add function description
531
532 Arguments:
533
534 PciDev - TODO: add argument description
535 IoBridge - TODO: add argument description
536 Mem32Bridge - TODO: add argument description
537 PMem32Bridge - TODO: add argument description
538 Mem64Bridge - TODO: add argument description
539 PMem64Bridge - TODO: add argument description
540 IoPool - TODO: add argument description
541 Mem32Pool - TODO: add argument description
542 PMem32Pool - TODO: add argument description
543 Mem64Pool - TODO: add argument description
544 PMem64Pool - TODO: add argument description
545
546 Returns:
547
548 TODO: add return values
549
550 --*/
551 ;
552
553 EFI_STATUS
554 DestroyResourceTree (
555 IN PCI_RESOURCE_NODE *Bridge
556 )
557 /*++
558
559 Routine Description:
560
561 TODO: Add function description
562
563 Arguments:
564
565 Bridge - TODO: add argument description
566
567 Returns:
568
569 TODO: add return values
570
571 --*/
572 ;
573
574 EFI_STATUS
575 RecordReservedResource (
576 IN UINT64 Base,
577 IN UINT64 Length,
578 IN PCI_BAR_TYPE ResType,
579 IN PCI_IO_DEVICE *Bridge
580 )
581 /*++
582
583 Routine Description:
584
585 TODO: Add function description
586
587 Arguments:
588
589 Base - TODO: add argument description
590 Length - TODO: add argument description
591 ResType - TODO: add argument description
592 Bridge - TODO: add argument description
593
594 Returns:
595
596 TODO: add return values
597
598 --*/
599 ;
600
601 EFI_STATUS
602 ResourcePaddingForCardBusBridge (
603 PCI_IO_DEVICE *PciDev,
604 PCI_RESOURCE_NODE *IoNode,
605 PCI_RESOURCE_NODE *Mem32Node,
606 PCI_RESOURCE_NODE *PMem32Node,
607 PCI_RESOURCE_NODE *Mem64Node,
608 PCI_RESOURCE_NODE *PMem64Node
609 )
610 /*++
611
612 Routine Description:
613
614 TODO: Add function description
615
616 Arguments:
617
618 PciDev - TODO: add argument description
619 IoNode - TODO: add argument description
620 Mem32Node - TODO: add argument description
621 PMem32Node - TODO: add argument description
622 Mem64Node - TODO: add argument description
623 PMem64Node - TODO: add argument description
624
625 Returns:
626
627 TODO: add return values
628
629 --*/
630 ;
631
632 EFI_STATUS
633 ProgramP2C (
634 IN UINT64 Base,
635 IN PCI_RESOURCE_NODE *Node
636 )
637 /*++
638
639 Routine Description:
640
641 TODO: Add function description
642
643 Arguments:
644
645 Base - TODO: add argument description
646 Node - TODO: add argument description
647
648 Returns:
649
650 TODO: add return values
651
652 --*/
653 ;
654
655 EFI_STATUS
656 ApplyResourcePadding (
657 PCI_IO_DEVICE *PciDev,
658 PCI_RESOURCE_NODE *IoNode,
659 PCI_RESOURCE_NODE *Mem32Node,
660 PCI_RESOURCE_NODE *PMem32Node,
661 PCI_RESOURCE_NODE *Mem64Node,
662 PCI_RESOURCE_NODE *PMem64Node
663 )
664 /*++
665
666 Routine Description:
667
668 TODO: Add function description
669
670 Arguments:
671
672 PciDev - TODO: add argument description
673 IoNode - TODO: add argument description
674 Mem32Node - TODO: add argument description
675 PMem32Node - TODO: add argument description
676 Mem64Node - TODO: add argument description
677 PMem64Node - TODO: add argument description
678
679 Returns:
680
681 TODO: add return values
682
683 --*/
684 ;
685
686 VOID
687 GetResourcePaddingPpb (
688 IN PCI_IO_DEVICE *PciIoDevice
689 )
690 /*++
691
692 Routine Description:
693
694 TODO: Add function description
695
696 Arguments:
697
698 PciIoDevice - TODO: add argument description
699
700 Returns:
701
702 TODO: add return values
703
704 --*/
705 ;
706
707 EFI_STATUS
708 ResetAllPpbBusReg (
709 IN PCI_IO_DEVICE *Bridge,
710 IN UINT8 StartBusNumber
711 )
712 /*++
713
714 Routine Description:
715
716 Reset bus register
717
718 Arguments:
719
720 Bridge - a pointer to the PCI_IO_DEVICE
721 StartBusNumber - the number of bus
722
723 Returns:
724
725 None
726
727 --*/
728 ;
729
730 #endif