summaryrefslogtreecommitdiff
path: root/IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciResourceSupport.h
diff options
context:
space:
mode:
authordavidhuang <davidhuang@6f19259b-4bc3-4df7-8a09-765794883524>2009-10-20 03:43:09 +0000
committerdavidhuang <davidhuang@6f19259b-4bc3-4df7-8a09-765794883524>2009-10-20 03:43:09 +0000
commitd47bdf84990a6727065ae9cb6b8f61991f609bc5 (patch)
treea76b2f1a20b78ab1ae910cf5a701ba281bd041bc /IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciResourceSupport.h
parentf8a1c229b353a13175b4f8682f550c7d54354686 (diff)
downloadedk2-platforms-d47bdf84990a6727065ae9cb6b8f61991f609bc5.tar.xz
1. Impl PI 1.2 PCI part. Major changes include:
a. Update PciBusDxe module, and move it from IntelFrameworkModulePkg to MdeModulePkg b. Move IncompatiblePciDeviceSupportDxe module from IntelFrameworkModulePkg to MdeModulePkg c. Update the related consumes in inf/dsc/fdf git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9346 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciResourceSupport.h')
-rw-r--r--IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciResourceSupport.h492
1 files changed, 0 insertions, 492 deletions
diff --git a/IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciResourceSupport.h b/IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciResourceSupport.h
deleted file mode 100644
index faa6c0d60c..0000000000
--- a/IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciResourceSupport.h
+++ /dev/null
@@ -1,492 +0,0 @@
-/** @file
- PCI resouces support functions declaration for PCI Bus module.
-
-Copyright (c) 2006 - 2009, Intel Corporation
-All rights reserved. This program and the accompanying materials
-are licensed and made available under the terms and conditions of the BSD License
-which accompanies this distribution. The full text of the license may be found at
-http://opensource.org/licenses/bsd-license.php
-
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-
-**/
-
-#ifndef _EFI_PCI_RESOURCE_SUPPORT_H_
-#define _EFI_PCI_RESOURCE_SUPPORT_H_
-
-typedef enum {
- PciResUsageTypical = 0,
- PciResUsagePadding,
- PciResUsageOptionRomProcessing
-} PCI_RESOURCE_USAGE;
-
-#define PCI_RESOURCE_SIGNATURE SIGNATURE_32 ('p', 'c', 'r', 'c')
-
-typedef struct {
- UINT32 Signature;
- LIST_ENTRY Link;
- LIST_ENTRY ChildList;
- PCI_IO_DEVICE *PciDev;
- UINT64 Alignment;
- UINT64 Offset;
- UINT8 Bar;
- PCI_BAR_TYPE ResType;
- UINT64 Length;
- BOOLEAN Reserved;
- PCI_RESOURCE_USAGE ResourceUsage;
- BOOLEAN Virtual;
-} PCI_RESOURCE_NODE;
-
-#define RESOURCE_NODE_FROM_LINK(a) \
- CR (a, PCI_RESOURCE_NODE, Link, PCI_RESOURCE_SIGNATURE)
-
-/**
- The function is used to skip VGA range.
-
- @param Start Returned start address including VGA range.
- @param Length The length of VGA range.
-
-**/
-VOID
-SkipVGAAperture (
- OUT UINT64 *Start,
- IN UINT64 Length
- );
-
-/**
- This function is used to skip ISA aliasing aperture.
-
- @param Start Returned start address including ISA aliasing aperture.
- @param Length The length of ISA aliasing aperture.
-
-**/
-VOID
-SkipIsaAliasAperture (
- OUT UINT64 *Start,
- IN UINT64 Length
- );
-
-/**
- This function inserts a resource node into the resource list.
- The resource list is sorted in descend order.
-
- @param Bridge PCI resource node for bridge.
- @param ResNode Resource node want to be inserted.
-
-**/
-VOID
-InsertResourceNode (
- IN OUT PCI_RESOURCE_NODE *Bridge,
- IN PCI_RESOURCE_NODE *ResNode
- );
-
-/**
- This routine is used to merge two different resource trees in need of
- resoure degradation.
-
- For example, if an upstream PPB doesn't support,
- prefetchable memory decoding, the PCI bus driver will choose to call this function
- to merge prefectchable memory resource list into normal memory list.
-
- If the TypeMerge is TRUE, Res resource type is changed to the type of destination resource
- type.
- If Dst is NULL or Res is NULL, ASSERT ().
-
- @param Dst Point to destination resource tree.
- @param Res Point to source resource tree.
- @param TypeMerge If the TypeMerge is TRUE, Res resource type is changed to the type of
- destination resource type.
-
-**/
-VOID
-MergeResourceTree (
- IN PCI_RESOURCE_NODE *Dst,
- IN PCI_RESOURCE_NODE *Res,
- IN BOOLEAN TypeMerge
- );
-
-/**
- This function is used to calculate the IO16 aperture
- for a bridge.
-
- @param Bridge PCI resource node for bridge.
-
-**/
-VOID
-CalculateApertureIo16 (
- IN PCI_RESOURCE_NODE *Bridge
- );
-
-/**
- This function is used to calculate the resource aperture
- for a given bridge device.
-
- @param Bridge PCI resouce node for given bridge device.
-
-**/
-VOID
-CalculateResourceAperture (
- IN PCI_RESOURCE_NODE *Bridge
- );
-
-/**
- Get IO/Memory resource infor for given PCI device.
-
- @param PciDev Pci device instance.
- @param IoNode Resource info node for IO .
- @param Mem32Node Resource info node for 32-bit memory.
- @param PMem32Node Resource info node for 32-bit Prefetchable Memory.
- @param Mem64Node Resource info node for 64-bit memory.
- @param PMem64Node Resource info node for 64-bit Prefetchable Memory.
-
-**/
-VOID
-GetResourceFromDevice (
- IN PCI_IO_DEVICE *PciDev,
- IN OUT PCI_RESOURCE_NODE *IoNode,
- IN OUT PCI_RESOURCE_NODE *Mem32Node,
- IN OUT PCI_RESOURCE_NODE *PMem32Node,
- IN OUT PCI_RESOURCE_NODE *Mem64Node,
- IN OUT PCI_RESOURCE_NODE *PMem64Node
- );
-
-/**
- This function is used to create a resource node.
-
- @param PciDev Pci device instance.
- @param Length Length of Io/Memory resource.
- @param Alignment Alignment of resource.
- @param Bar Bar index.
- @param ResType Type of resource: IO/Memory.
- @param ResUsage Resource usage.
-
- @return PCI resource node created for given PCI device.
- NULL means PCI resource node is not created.
-
-**/
-PCI_RESOURCE_NODE *
-CreateResourceNode (
- IN PCI_IO_DEVICE *PciDev,
- IN UINT64 Length,
- IN UINT64 Alignment,
- IN UINT8 Bar,
- IN PCI_BAR_TYPE ResType,
- IN PCI_RESOURCE_USAGE ResUsage
- );
-
-/**
- This function is used to extract resource request from
- IOV VF device node list.
-
- @param Bridge Pci device instance.
- @param IoNode Resource info node for IO.
- @param Mem32Node Resource info node for 32-bit memory.
- @param PMem32Node Resource info node for 32-bit Prefetchable Memory.
- @param Mem64Node Resource info node for 64-bit memory.
- @param PMem64Node Resource info node for 64-bit Prefetchable Memory.
-
-**/
-PCI_RESOURCE_NODE *
-CreateVfResourceNode (
- IN PCI_IO_DEVICE *PciDev,
- IN UINT64 Length,
- IN UINT64 Alignment,
- IN UINT8 Bar,
- IN PCI_BAR_TYPE ResType,
- IN PCI_RESOURCE_USAGE ResUsage
- );
-
-/**
- This function is used to extract resource request from
- device node list.
-
- @param Bridge Pci device instance.
- @param IoNode Resource info node for IO.
- @param Mem32Node Resource info node for 32-bit memory.
- @param PMem32Node Resource info node for 32-bit Prefetchable Memory.
- @param Mem64Node Resource info node for 64-bit memory.
- @param PMem64Node Resource info node for 64-bit Prefetchable Memory.
-
-**/
-VOID
-CreateResourceMap (
- IN PCI_IO_DEVICE *Bridge,
- IN OUT PCI_RESOURCE_NODE *IoNode,
- IN OUT PCI_RESOURCE_NODE *Mem32Node,
- IN OUT PCI_RESOURCE_NODE *PMem32Node,
- IN OUT PCI_RESOURCE_NODE *Mem64Node,
- IN OUT PCI_RESOURCE_NODE *PMem64Node
- );
-
-/**
- This function is used to do the resource padding for a specific platform.
-
- @param PciDev Pci device instance.
- @param IoNode Resource info node for IO.
- @param Mem32Node Resource info node for 32-bit memory.
- @param PMem32Node Resource info node for 32-bit Prefetchable Memory.
- @param Mem64Node Resource info node for 64-bit memory.
- @param PMem64Node Resource info node for 64-bit Prefetchable Memory.
-
-**/
-VOID
-ResourcePaddingPolicy (
- IN PCI_IO_DEVICE *PciDev,
- IN PCI_RESOURCE_NODE *IoNode,
- IN PCI_RESOURCE_NODE *Mem32Node,
- IN PCI_RESOURCE_NODE *PMem32Node,
- IN PCI_RESOURCE_NODE *Mem64Node,
- IN PCI_RESOURCE_NODE *PMem64Node
- );
-
-/**
- This function is used to degrade resource if the upstream bridge
- doesn't support certain resource. Degradation path is
- PMEM64 -> MEM64 -> MEM32
- PMEM64 -> PMEM32 -> MEM32
- IO32 -> IO16.
-
- @param Bridge Pci device instance.
- @param Mem32Node Resource info node for 32-bit memory.
- @param PMem32Node Resource info node for 32-bit Prefetchable Memory.
- @param Mem64Node Resource info node for 64-bit memory.
- @param PMem64Node Resource info node for 64-bit Prefetchable Memory.
-
-**/
-VOID
-DegradeResource (
- IN PCI_IO_DEVICE *Bridge,
- IN PCI_RESOURCE_NODE *Mem32Node,
- IN PCI_RESOURCE_NODE *PMem32Node,
- IN PCI_RESOURCE_NODE *Mem64Node,
- IN PCI_RESOURCE_NODE *PMem64Node
- );
-
-/**
- Test whether bridge device support decode resource.
-
- @param Bridge Bridge device instance.
- @param Decode Decode type according to resource type.
-
- @return TRUE The bridge device support decode resource.
- @return FALSE The bridge device don't support decode resource.
-
-**/
-BOOLEAN
-BridgeSupportResourceDecode (
- IN PCI_IO_DEVICE *Bridge,
- IN UINT32 Decode
- );
-
-/**
- This function is used to program the resource allocated
- for each resource node under specified bridge.
-
- @param Base Base address of resource to be progammed.
- @param Bridge PCI resource node for the bridge device.
-
- @retval EFI_SUCCESS Successfully to program all resouces
- on given PCI bridge device.
- @retval EFI_OUT_OF_RESOURCES Base is all one.
-
-**/
-EFI_STATUS
-ProgramResource (
- IN UINT64 Base,
- IN PCI_RESOURCE_NODE *Bridge
- );
-
-/**
- Program Bar register for PCI device.
-
- @param Base Base address for PCI device resource to be progammed.
- @param Node Point to resoure node structure.
-
-**/
-VOID
-ProgramBar (
- IN UINT64 Base,
- IN PCI_RESOURCE_NODE *Node
- );
-
-/**
- Program IOV VF Bar register for PCI device.
-
- @param Base Base address for PCI device resource to be progammed.
- @param Node Point to resoure node structure.
-
-**/
-EFI_STATUS
-ProgramVfBar (
- IN UINT64 Base,
- IN PCI_RESOURCE_NODE *Node
- );
-
-/**
- Program PCI-PCI bridge apperture.
-
- @param Base Base address for resource.
- @param Node Point to resoure node structure.
-
-**/
-VOID
-ProgramPpbApperture (
- IN UINT64 Base,
- IN PCI_RESOURCE_NODE *Node
- );
-
-/**
- Program parent bridge for Option Rom.
-
- @param PciDevice Pci deivce instance.
- @param OptionRomBase Base address for Optiona Rom.
- @param Enable Enable or disable PCI memory.
-
-**/
-VOID
-ProgrameUpstreamBridgeForRom (
- IN PCI_IO_DEVICE *PciDevice,
- IN UINT32 OptionRomBase,
- IN BOOLEAN Enable
- );
-
-/**
- Test whether resource exists for a bridge.
-
- @param Bridge Point to resource node for a bridge.
-
- @retval TRUE There is resource on the given bridge.
- @retval FALSE There isn't resource on the given bridge.
-
-**/
-BOOLEAN
-ResourceRequestExisted (
- IN PCI_RESOURCE_NODE *Bridge
- );
-
-/**
- Initialize resource pool structure.
-
- @param ResourcePool Point to resource pool structure. This pool
- is reset to all zero when returned.
- @param ResourceType Type of resource.
-
-**/
-VOID
-InitializeResourcePool (
- IN OUT PCI_RESOURCE_NODE *ResourcePool,
- IN PCI_BAR_TYPE ResourceType
- );
-
-/**
- Get all resource information for given Pci device.
-
- @param PciDev Pci device instance.
- @param IoBridge Io resource node.
- @param Mem32Bridge 32-bit memory node.
- @param PMem32Bridge 32-bit Pmemory node.
- @param Mem64Bridge 64-bit memory node.
- @param PMem64Bridge 64-bit PMemory node.
- @param IoPool Link list header for Io resource.
- @param Mem32Pool Link list header for 32-bit memory.
- @param PMem32Pool Link list header for 32-bit Prefetchable memory.
- @param Mem64Pool Link list header for 64-bit memory.
- @param PMem64Pool Link list header for 64-bit Prefetchable memory.
-
-**/
-VOID
-GetResourceMap (
- IN PCI_IO_DEVICE *PciDev,
- IN PCI_RESOURCE_NODE **IoBridge,
- IN PCI_RESOURCE_NODE **Mem32Bridge,
- IN PCI_RESOURCE_NODE **PMem32Bridge,
- IN PCI_RESOURCE_NODE **Mem64Bridge,
- IN PCI_RESOURCE_NODE **PMem64Bridge,
- IN PCI_RESOURCE_NODE *IoPool,
- IN PCI_RESOURCE_NODE *Mem32Pool,
- IN PCI_RESOURCE_NODE *PMem32Pool,
- IN PCI_RESOURCE_NODE *Mem64Pool,
- IN PCI_RESOURCE_NODE *PMem64Pool
- );
-
-/**
- Destory given resource tree.
-
- @param Bridge PCI resource root node of resource tree.
-
-**/
-VOID
-DestroyResourceTree (
- IN PCI_RESOURCE_NODE *Bridge
- );
-
-/**
- Insert resource padding for P2C.
-
- @param PciDev Pci device instance.
- @param IoNode Resource info node for IO.
- @param Mem32Node Resource info node for 32-bit memory.
- @param PMem32Node Resource info node for 32-bit Prefetchable Memory.
- @param Mem64Node Resource info node for 64-bit memory.
- @param PMem64Node Resource info node for 64-bit Prefetchable Memory.
-
-**/
-VOID
-ResourcePaddingForCardBusBridge (
- IN PCI_IO_DEVICE *PciDev,
- IN PCI_RESOURCE_NODE *IoNode,
- IN PCI_RESOURCE_NODE *Mem32Node,
- IN PCI_RESOURCE_NODE *PMem32Node,
- IN PCI_RESOURCE_NODE *Mem64Node,
- IN PCI_RESOURCE_NODE *PMem64Node
- );
-
-/**
- Program PCI Card device register for given resource node.
-
- @param Base Base address of PCI Card device to be programmed.
- @param Node Given resource node.
-
-**/
-VOID
-ProgramP2C (
- IN UINT64 Base,
- IN PCI_RESOURCE_NODE *Node
- );
-
-/**
- Create padding resource node.
-
- @param PciDev Pci device instance.
- @param IoNode Resource info node for IO.
- @param Mem32Node Resource info node for 32-bit memory.
- @param PMem32Node Resource info node for 32-bit Prefetchable Memory.
- @param Mem64Node Resource info node for 64-bit memory.
- @param PMem64Node Resource info node for 64-bit Prefetchable Memory.
-
-**/
-VOID
-ApplyResourcePadding (
- IN PCI_IO_DEVICE *PciDev,
- IN PCI_RESOURCE_NODE *IoNode,
- IN PCI_RESOURCE_NODE *Mem32Node,
- IN PCI_RESOURCE_NODE *PMem32Node,
- IN PCI_RESOURCE_NODE *Mem64Node,
- IN PCI_RESOURCE_NODE *PMem64Node
- );
-
-/**
- Get padding resource for PCI-PCI bridge.
-
- @param PciIoDevice PCI-PCI bridge device instance.
-
- @note Feature flag PcdPciBusHotplugDeviceSupport determines
- whether need to pad resource for them.
-**/
-VOID
-GetResourcePaddingPpb (
- IN PCI_IO_DEVICE *PciIoDevice
- );
-
-#endif