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