-/**@file\r
+/** @file\r
+ PCI resouces support functions declaration for PCI Bus module.\r
\r
-Copyright (c) 2006, Intel Corporation \r
-All rights reserved. This program and the accompanying materials \r
-are licensed and made available under the terms and conditions of the BSD License \r
-which accompanies this distribution. The full text of the license may be found at \r
-http://opensource.org/licenses/bsd-license.php \r
- \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
+Copyright (c) 2006 - 2009, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution. The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
\r
-**/\r
-\r
-#ifndef _EFI_PCI_RESOURCE_SUPPORT_H\r
-#define _EFI_PCI_RESOURCE_SUPPORT_H\r
-\r
-#define RESERVED_RESOURCE_SIGNATURE EFI_SIGNATURE_32 ('r', 's', 'v', 'd')\r
-\r
-typedef struct {\r
- UINT64 Base;\r
- UINT64 Length;\r
- PCI_BAR_TYPE ResType;\r
-} PCI_RESERVED_RESOURCE_NODE;\r
-\r
-typedef struct {\r
- UINT32 Signature;\r
- LIST_ENTRY Link;\r
- PCI_RESERVED_RESOURCE_NODE Node;\r
-} PCI_RESERVED_RESOURCE_LIST;\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
\r
-#define RESOURCED_LIST_FROM_NODE(a) \\r
- CR (a, PCI_RESERVED_RESOURCE_LIST, Node, RESERVED_RESOURCE_SIGNATURE)\r
+**/\r
\r
-#define RESOURCED_LIST_FROM_LINK(a) \\r
- CR (a, PCI_RESERVED_RESOURCE_LIST, Link, RESERVED_RESOURCE_SIGNATURE)\r
+#ifndef _EFI_PCI_RESOURCE_SUPPORT_H_\r
+#define _EFI_PCI_RESOURCE_SUPPORT_H_\r
\r
typedef enum {\r
PciResUsageTypical = 0,\r
PciResUsageOptionRomProcessing\r
} PCI_RESOURCE_USAGE;\r
\r
-#define PCI_RESOURCE_SIGNATURE EFI_SIGNATURE_32 ('p', 'c', 'r', 'c')\r
+#define PCI_RESOURCE_SIGNATURE SIGNATURE_32 ('p', 'c', 'r', 'c')\r
\r
typedef struct {\r
UINT32 Signature;\r
#define RESOURCE_NODE_FROM_LINK(a) \\r
CR (a, PCI_RESOURCE_NODE, Link, PCI_RESOURCE_SIGNATURE)\r
\r
-EFI_STATUS\r
+/**\r
+ The function is used to skip VGA range.\r
+\r
+ @param Start Returned start address including VGA range.\r
+ @param Length The length of VGA range.\r
+\r
+**/\r
+VOID\r
SkipVGAAperture (\r
OUT UINT64 *Start,\r
IN UINT64 Length\r
- )\r
-/*++\r
-\r
-Routine Description:\r
+ );\r
\r
- TODO: Add function description\r
+/**\r
+ This function is used to skip ISA aliasing aperture.\r
\r
-Arguments:\r
+ @param Start Returned start address including ISA aliasing aperture.\r
+ @param Length The length of ISA aliasing aperture.\r
\r
- Start - TODO: add argument description\r
- Length - TODO: add argument description\r
-\r
-Returns:\r
-\r
- TODO: add return values\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
+**/\r
+VOID\r
SkipIsaAliasAperture (\r
OUT UINT64 *Start,\r
IN UINT64 Length\r
- )\r
-/*++\r
+ );\r
\r
-Routine Description:\r
+/**\r
+ This function inserts a resource node into the resource list.\r
+ The resource list is sorted in descend order.\r
\r
- TODO: Add function description\r
+ @param Bridge PCI resource node for bridge.\r
+ @param ResNode Resource node want to be inserted.\r
\r
-Arguments:\r
-\r
- Start - TODO: add argument description\r
- Length - TODO: add argument description\r
-\r
-Returns:\r
-\r
- TODO: add return values\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
+**/\r
+VOID\r
InsertResourceNode (\r
- PCI_RESOURCE_NODE *Bridge,\r
- PCI_RESOURCE_NODE *ResNode\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- TODO: Add function description\r
-\r
-Arguments:\r
+ IN OUT PCI_RESOURCE_NODE *Bridge,\r
+ IN PCI_RESOURCE_NODE *ResNode\r
+ );\r
\r
- Bridge - TODO: add argument description\r
- ResNode - TODO: add argument description\r
+/**\r
+ This routine is used to merge two different resource trees in need of\r
+ resoure degradation.\r
\r
-Returns:\r
+ For example, if an upstream PPB doesn't support,\r
+ prefetchable memory decoding, the PCI bus driver will choose to call this function\r
+ to merge prefectchable memory resource list into normal memory list.\r
\r
- TODO: add return values\r
+ If the TypeMerge is TRUE, Res resource type is changed to the type of destination resource\r
+ type.\r
+ If Dst is NULL or Res is NULL, ASSERT ().\r
\r
---*/\r
-;\r
+ @param Dst Point to destination resource tree.\r
+ @param Res Point to source resource tree.\r
+ @param TypeMerge If the TypeMerge is TRUE, Res resource type is changed to the type of\r
+ destination resource type.\r
\r
-EFI_STATUS\r
+**/\r
+VOID\r
MergeResourceTree (\r
- PCI_RESOURCE_NODE *Dst,\r
- PCI_RESOURCE_NODE *Res,\r
- BOOLEAN TypeMerge\r
- )\r
-/*++\r
+ IN PCI_RESOURCE_NODE *Dst,\r
+ IN PCI_RESOURCE_NODE *Res,\r
+ IN BOOLEAN TypeMerge\r
+ );\r
\r
-Routine Description:\r
+/**\r
+ This function is used to calculate the IO16 aperture\r
+ for a bridge.\r
\r
- TODO: Add function description\r
+ @param Bridge PCI resource node for bridge.\r
\r
-Arguments:\r
-\r
- Dst - TODO: add argument description\r
- Res - TODO: add argument description\r
- TypeMerge - TODO: add argument description\r
-\r
-Returns:\r
-\r
- TODO: add return values\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
+**/\r
+VOID\r
CalculateApertureIo16 (\r
- IN PCI_RESOURCE_NODE *Bridge\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- TODO: Add function description\r
-\r
-Arguments:\r
-\r
- Bridge - TODO: add argument description\r
-\r
-Returns:\r
+ IN PCI_RESOURCE_NODE *Bridge\r
+ );\r
\r
- TODO: add return values\r
+/**\r
+ This function is used to calculate the resource aperture\r
+ for a given bridge device.\r
\r
---*/\r
-;\r
+ @param Bridge PCI resouce node for given bridge device.\r
\r
-EFI_STATUS\r
+**/\r
+VOID\r
CalculateResourceAperture (\r
- IN PCI_RESOURCE_NODE *Bridge\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- TODO: Add function description\r
+ IN PCI_RESOURCE_NODE *Bridge\r
+ );\r
\r
-Arguments:\r
+/**\r
+ Get IO/Memory resource infor for given PCI device.\r
\r
- Bridge - TODO: add argument description\r
+ @param PciDev Pci device instance.\r
+ @param IoNode Resource info node for IO .\r
+ @param Mem32Node Resource info node for 32-bit memory.\r
+ @param PMem32Node Resource info node for 32-bit Prefetchable Memory.\r
+ @param Mem64Node Resource info node for 64-bit memory.\r
+ @param PMem64Node Resource info node for 64-bit Prefetchable Memory.\r
\r
-Returns:\r
-\r
- TODO: add return values\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
+**/\r
+VOID\r
GetResourceFromDevice (\r
- PCI_IO_DEVICE *PciDev,\r
- PCI_RESOURCE_NODE *IoNode,\r
- PCI_RESOURCE_NODE *Mem32Node,\r
- PCI_RESOURCE_NODE *PMem32Node,\r
- PCI_RESOURCE_NODE *Mem64Node,\r
- PCI_RESOURCE_NODE *PMem64Node\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- TODO: Add function description\r
-\r
-Arguments:\r
-\r
- PciDev - TODO: add argument description\r
- IoNode - TODO: add argument description\r
- Mem32Node - TODO: add argument description\r
- PMem32Node - TODO: add argument description\r
- Mem64Node - TODO: add argument description\r
- PMem64Node - TODO: add argument description\r
-\r
-Returns:\r
-\r
- TODO: add return values\r
-\r
---*/\r
-;\r
+ IN PCI_IO_DEVICE *PciDev,\r
+ IN OUT PCI_RESOURCE_NODE *IoNode,\r
+ IN OUT PCI_RESOURCE_NODE *Mem32Node,\r
+ IN OUT PCI_RESOURCE_NODE *PMem32Node,\r
+ IN OUT PCI_RESOURCE_NODE *Mem64Node,\r
+ IN OUT PCI_RESOURCE_NODE *PMem64Node\r
+ );\r
+\r
+/**\r
+ This function is used to create a resource node.\r
+\r
+ @param PciDev Pci device instance.\r
+ @param Length Length of Io/Memory resource.\r
+ @param Alignment Alignment of resource.\r
+ @param Bar Bar index.\r
+ @param ResType Type of resource: IO/Memory.\r
+ @param ResUsage Resource usage.\r
+\r
+ @return PCI resource node created for given PCI device.\r
+ NULL means PCI resource node is not created.\r
\r
+**/\r
PCI_RESOURCE_NODE *\r
CreateResourceNode (\r
IN PCI_IO_DEVICE *PciDev,\r
IN UINT8 Bar,\r
IN PCI_BAR_TYPE ResType,\r
IN PCI_RESOURCE_USAGE ResUsage\r
- )\r
-/*++\r
+ );\r
\r
-Routine Description:\r
+/**\r
+ This function is used to extract resource request from\r
+ device node list.\r
\r
- TODO: Add function description\r
+ @param Bridge Pci device instance.\r
+ @param IoNode Resource info node for IO.\r
+ @param Mem32Node Resource info node for 32-bit memory.\r
+ @param PMem32Node Resource info node for 32-bit Prefetchable Memory.\r
+ @param Mem64Node Resource info node for 64-bit memory.\r
+ @param PMem64Node Resource info node for 64-bit Prefetchable Memory.\r
\r
-Arguments:\r
-\r
- PciDev - TODO: add argument description\r
- Length - TODO: add argument description\r
- Alignment - TODO: add argument description\r
- Bar - TODO: add argument description\r
- ResType - TODO: add argument description\r
- ResUsage - TODO: add argument description\r
-\r
-Returns:\r
-\r
- TODO: add return values\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
+**/\r
+VOID\r
CreateResourceMap (\r
- IN PCI_IO_DEVICE *Bridge,\r
+ IN PCI_IO_DEVICE *Bridge,\r
+ IN OUT PCI_RESOURCE_NODE *IoNode,\r
+ IN OUT PCI_RESOURCE_NODE *Mem32Node,\r
+ IN OUT PCI_RESOURCE_NODE *PMem32Node,\r
+ IN OUT PCI_RESOURCE_NODE *Mem64Node,\r
+ IN OUT PCI_RESOURCE_NODE *PMem64Node\r
+ );\r
+\r
+/**\r
+ This function is used to do the resource padding for a specific platform.\r
+\r
+ @param PciDev Pci device instance.\r
+ @param IoNode Resource info node for IO.\r
+ @param Mem32Node Resource info node for 32-bit memory.\r
+ @param PMem32Node Resource info node for 32-bit Prefetchable Memory.\r
+ @param Mem64Node Resource info node for 64-bit memory.\r
+ @param PMem64Node Resource info node for 64-bit Prefetchable Memory.\r
+\r
+**/\r
+VOID\r
+ResourcePaddingPolicy (\r
+ IN PCI_IO_DEVICE *PciDev,\r
IN PCI_RESOURCE_NODE *IoNode,\r
IN PCI_RESOURCE_NODE *Mem32Node,\r
IN PCI_RESOURCE_NODE *PMem32Node,\r
IN PCI_RESOURCE_NODE *Mem64Node,\r
IN PCI_RESOURCE_NODE *PMem64Node\r
- )\r
-/*++\r
+ );\r
\r
-Routine Description:\r
+/**\r
+ This function is used to degrade resource if the upstream bridge\r
+ doesn't support certain resource. Degradation path is\r
+ PMEM64 -> MEM64 -> MEM32\r
+ PMEM64 -> PMEM32 -> MEM32\r
+ IO32 -> IO16.\r
\r
- TODO: Add function description\r
+ @param Bridge Pci device instance.\r
+ @param Mem32Node Resource info node for 32-bit memory.\r
+ @param PMem32Node Resource info node for 32-bit Prefetchable Memory.\r
+ @param Mem64Node Resource info node for 64-bit memory.\r
+ @param PMem64Node Resource info node for 64-bit Prefetchable Memory.\r
\r
-Arguments:\r
-\r
- Bridge - TODO: add argument description\r
- IoNode - TODO: add argument description\r
- Mem32Node - TODO: add argument description\r
- PMem32Node - TODO: add argument description\r
- Mem64Node - TODO: add argument description\r
- PMem64Node - TODO: add argument description\r
-\r
-Returns:\r
-\r
- TODO: add return values\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
-ResourcePaddingPolicy (\r
- PCI_IO_DEVICE *PciDev,\r
- PCI_RESOURCE_NODE *IoNode,\r
- PCI_RESOURCE_NODE *Mem32Node,\r
- PCI_RESOURCE_NODE *PMem32Node,\r
- PCI_RESOURCE_NODE *Mem64Node,\r
- PCI_RESOURCE_NODE *PMem64Node\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- TODO: Add function description\r
-\r
-Arguments:\r
-\r
- PciDev - TODO: add argument description\r
- IoNode - TODO: add argument description\r
- Mem32Node - TODO: add argument description\r
- PMem32Node - TODO: add argument description\r
- Mem64Node - TODO: add argument description\r
- PMem64Node - TODO: add argument description\r
-\r
-Returns:\r
-\r
- TODO: add return values\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
+**/\r
+VOID\r
DegradeResource (\r
IN PCI_IO_DEVICE *Bridge,\r
IN PCI_RESOURCE_NODE *Mem32Node,\r
IN PCI_RESOURCE_NODE *PMem32Node,\r
IN PCI_RESOURCE_NODE *Mem64Node,\r
IN PCI_RESOURCE_NODE *PMem64Node\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- TODO: Add function description\r
-\r
-Arguments:\r
+ );\r
\r
- Bridge - TODO: add argument description\r
- Mem32Node - TODO: add argument description\r
- PMem32Node - TODO: add argument description\r
- Mem64Node - TODO: add argument description\r
- PMem64Node - TODO: add argument description\r
+/**\r
+ Test whether bridge device support decode resource.\r
\r
-Returns:\r
+ @param Bridge Bridge device instance.\r
+ @param Decode Decode type according to resource type.\r
\r
- TODO: add return values\r
-\r
---*/\r
-;\r
+ @return TRUE The bridge device support decode resource.\r
+ @return FALSE The bridge device don't support decode resource.\r
\r
+**/\r
BOOLEAN\r
BridgeSupportResourceDecode (\r
IN PCI_IO_DEVICE *Bridge,\r
IN UINT32 Decode\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- TODO: Add function description\r
-\r
-Arguments:\r
-\r
- Bridge - TODO: add argument description\r
- Decode - TODO: add argument description\r
+ );\r
\r
-Returns:\r
+/**\r
+ This function is used to program the resource allocated\r
+ for each resource node under specified bridge.\r
\r
- TODO: add return values\r
+ @param Base Base address of resource to be progammed.\r
+ @param Bridge PCI resource node for the bridge device.\r
\r
---*/\r
-;\r
+ @retval EFI_SUCCESS Successfully to program all resouces\r
+ on given PCI bridge device.\r
+ @retval EFI_OUT_OF_RESOURCES Base is all one.\r
\r
+**/\r
EFI_STATUS\r
ProgramResource (\r
IN UINT64 Base,\r
IN PCI_RESOURCE_NODE *Bridge\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- TODO: Add function description\r
-\r
-Arguments:\r
+ );\r
\r
- Base - TODO: add argument description\r
- Bridge - TODO: add argument description\r
+/**\r
+ Program Bar register for PCI device.\r
\r
-Returns:\r
+ @param Base Base address for PCI device resource to be progammed.\r
+ @param Node Point to resoure node structure.\r
\r
- TODO: add return values\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
+**/\r
+VOID\r
ProgramBar (\r
IN UINT64 Base,\r
IN PCI_RESOURCE_NODE *Node\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- TODO: Add function description\r
-\r
-Arguments:\r
-\r
- Base - TODO: add argument description\r
- Node - TODO: add argument description\r
-\r
-Returns:\r
+ );\r
\r
- TODO: add return values\r
+/**\r
+ Program PCI-PCI bridge apperture.\r
\r
---*/\r
-;\r
+ @param Base Base address for resource.\r
+ @param Node Point to resoure node structure.\r
\r
-EFI_STATUS\r
+**/\r
+VOID\r
ProgramPpbApperture (\r
IN UINT64 Base,\r
IN PCI_RESOURCE_NODE *Node\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- TODO: Add function description\r
-\r
-Arguments:\r
-\r
- Base - TODO: add argument description\r
- Node - TODO: add argument description\r
+ );\r
\r
-Returns:\r
+/**\r
+ Program parent bridge for Option Rom.\r
\r
- TODO: add return values\r
+ @param PciDevice Pci deivce instance.\r
+ @param OptionRomBase Base address for Optiona Rom.\r
+ @param Enable Enable or disable PCI memory.\r
\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
+**/\r
+VOID\r
ProgrameUpstreamBridgeForRom (\r
IN PCI_IO_DEVICE *PciDevice,\r
IN UINT32 OptionRomBase,\r
IN BOOLEAN Enable\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- TODO: Add function description\r
+ );\r
\r
-Arguments:\r
+/**\r
+ Test whether resource exists for a bridge.\r
\r
- PciDevice - TODO: add argument description\r
- OptionRomBase - TODO: add argument description\r
- Enable - TODO: add argument description\r
+ @param Bridge Point to resource node for a bridge.\r
\r
-Returns:\r
-\r
- TODO: add return values\r
-\r
---*/\r
-;\r
+ @retval TRUE There is resource on the given bridge.\r
+ @retval FALSE There isn't resource on the given bridge.\r
\r
+**/\r
BOOLEAN\r
ResourceRequestExisted (\r
- IN PCI_RESOURCE_NODE *Bridge\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- TODO: Add function description\r
-\r
-Arguments:\r
+ IN PCI_RESOURCE_NODE *Bridge\r
+ );\r
\r
- Bridge - TODO: add argument description\r
+/**\r
+ Initialize resource pool structure.\r
\r
-Returns:\r
+ @param ResourcePool Point to resource pool structure. This pool\r
+ is reset to all zero when returned.\r
+ @param ResourceType Type of resource.\r
\r
- TODO: add return values\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
+**/\r
+VOID\r
InitializeResourcePool (\r
- PCI_RESOURCE_NODE *ResourcePool,\r
- PCI_BAR_TYPE ResourceType\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- TODO: Add function description\r
+ IN OUT PCI_RESOURCE_NODE *ResourcePool,\r
+ IN PCI_BAR_TYPE ResourceType\r
+ );\r
+\r
+/**\r
+ Get all resource information for given Pci device.\r
+\r
+ @param PciDev Pci device instance.\r
+ @param IoBridge Io resource node.\r
+ @param Mem32Bridge 32-bit memory node.\r
+ @param PMem32Bridge 32-bit Pmemory node.\r
+ @param Mem64Bridge 64-bit memory node.\r
+ @param PMem64Bridge 64-bit PMemory node.\r
+ @param IoPool Link list header for Io resource.\r
+ @param Mem32Pool Link list header for 32-bit memory.\r
+ @param PMem32Pool Link list header for 32-bit Prefetchable memory.\r
+ @param Mem64Pool Link list header for 64-bit memory.\r
+ @param PMem64Pool Link list header for 64-bit Prefetchable memory.\r
\r
-Arguments:\r
-\r
- ResourcePool - TODO: add argument description\r
- ResourceType - TODO: add argument description\r
-\r
-Returns:\r
-\r
- TODO: add return values\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
+**/\r
+VOID\r
GetResourceMap (\r
- PCI_IO_DEVICE *PciDev,\r
- PCI_RESOURCE_NODE **IoBridge,\r
- PCI_RESOURCE_NODE **Mem32Bridge,\r
- PCI_RESOURCE_NODE **PMem32Bridge,\r
- PCI_RESOURCE_NODE **Mem64Bridge,\r
- PCI_RESOURCE_NODE **PMem64Bridge,\r
- PCI_RESOURCE_NODE *IoPool,\r
- PCI_RESOURCE_NODE *Mem32Pool,\r
- PCI_RESOURCE_NODE *PMem32Pool,\r
- PCI_RESOURCE_NODE *Mem64Pool,\r
- PCI_RESOURCE_NODE *PMem64Pool\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- TODO: Add function description\r
-\r
-Arguments:\r
-\r
- PciDev - TODO: add argument description\r
- IoBridge - TODO: add argument description\r
- Mem32Bridge - TODO: add argument description\r
- PMem32Bridge - TODO: add argument description\r
- Mem64Bridge - TODO: add argument description\r
- PMem64Bridge - TODO: add argument description\r
- IoPool - TODO: add argument description\r
- Mem32Pool - TODO: add argument description\r
- PMem32Pool - TODO: add argument description\r
- Mem64Pool - TODO: add argument description\r
- PMem64Pool - TODO: add argument description\r
-\r
-Returns:\r
-\r
- TODO: add return values\r
-\r
---*/\r
-;\r
+ IN PCI_IO_DEVICE *PciDev,\r
+ IN PCI_RESOURCE_NODE **IoBridge,\r
+ IN PCI_RESOURCE_NODE **Mem32Bridge,\r
+ IN PCI_RESOURCE_NODE **PMem32Bridge,\r
+ IN PCI_RESOURCE_NODE **Mem64Bridge,\r
+ IN PCI_RESOURCE_NODE **PMem64Bridge,\r
+ IN PCI_RESOURCE_NODE *IoPool,\r
+ IN PCI_RESOURCE_NODE *Mem32Pool,\r
+ IN PCI_RESOURCE_NODE *PMem32Pool,\r
+ IN PCI_RESOURCE_NODE *Mem64Pool,\r
+ IN PCI_RESOURCE_NODE *PMem64Pool\r
+ );\r
+\r
+/**\r
+ Destory given resource tree.\r
+\r
+ @param Bridge PCI resource root node of resource tree.\r
\r
-EFI_STATUS\r
+**/\r
+VOID\r
DestroyResourceTree (\r
IN PCI_RESOURCE_NODE *Bridge\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- TODO: Add function description\r
+ );\r
\r
-Arguments:\r
+/**\r
+ Insert resource padding for P2C.\r
\r
- Bridge - TODO: add argument description\r
+ @param PciDev Pci device instance.\r
+ @param IoNode Resource info node for IO.\r
+ @param Mem32Node Resource info node for 32-bit memory.\r
+ @param PMem32Node Resource info node for 32-bit Prefetchable Memory.\r
+ @param Mem64Node Resource info node for 64-bit memory.\r
+ @param PMem64Node Resource info node for 64-bit Prefetchable Memory.\r
\r
-Returns:\r
-\r
- TODO: add return values\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
-RecordReservedResource (\r
- IN UINT64 Base,\r
- IN UINT64 Length,\r
- IN PCI_BAR_TYPE ResType,\r
- IN PCI_IO_DEVICE *Bridge\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- TODO: Add function description\r
-\r
-Arguments:\r
-\r
- Base - TODO: add argument description\r
- Length - TODO: add argument description\r
- ResType - TODO: add argument description\r
- Bridge - TODO: add argument description\r
-\r
-Returns:\r
-\r
- TODO: add return values\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
+**/\r
+VOID\r
ResourcePaddingForCardBusBridge (\r
- PCI_IO_DEVICE *PciDev,\r
- PCI_RESOURCE_NODE *IoNode,\r
- PCI_RESOURCE_NODE *Mem32Node,\r
- PCI_RESOURCE_NODE *PMem32Node,\r
- PCI_RESOURCE_NODE *Mem64Node,\r
- PCI_RESOURCE_NODE *PMem64Node\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- TODO: Add function description\r
-\r
-Arguments:\r
+ IN PCI_IO_DEVICE *PciDev,\r
+ IN PCI_RESOURCE_NODE *IoNode,\r
+ IN PCI_RESOURCE_NODE *Mem32Node,\r
+ IN PCI_RESOURCE_NODE *PMem32Node,\r
+ IN PCI_RESOURCE_NODE *Mem64Node,\r
+ IN PCI_RESOURCE_NODE *PMem64Node\r
+ );\r
\r
- PciDev - TODO: add argument description\r
- IoNode - TODO: add argument description\r
- Mem32Node - TODO: add argument description\r
- PMem32Node - TODO: add argument description\r
- Mem64Node - TODO: add argument description\r
- PMem64Node - TODO: add argument description\r
+/**\r
+ Program PCI Card device register for given resource node.\r
\r
-Returns:\r
+ @param Base Base address of PCI Card device to be programmed.\r
+ @param Node Given resource node.\r
\r
- TODO: add return values\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
+**/\r
+VOID\r
ProgramP2C (\r
IN UINT64 Base,\r
IN PCI_RESOURCE_NODE *Node\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- TODO: Add function description\r
-\r
-Arguments:\r
-\r
- Base - TODO: add argument description\r
- Node - TODO: add argument description\r
+ );\r
\r
-Returns:\r
+/**\r
+ Create padding resource node.\r
\r
- TODO: add return values\r
+ @param PciDev Pci device instance.\r
+ @param IoNode Resource info node for IO.\r
+ @param Mem32Node Resource info node for 32-bit memory.\r
+ @param PMem32Node Resource info node for 32-bit Prefetchable Memory.\r
+ @param Mem64Node Resource info node for 64-bit memory.\r
+ @param PMem64Node Resource info node for 64-bit Prefetchable Memory.\r
\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
+**/\r
+VOID\r
ApplyResourcePadding (\r
- PCI_IO_DEVICE *PciDev,\r
- PCI_RESOURCE_NODE *IoNode,\r
- PCI_RESOURCE_NODE *Mem32Node,\r
- PCI_RESOURCE_NODE *PMem32Node,\r
- PCI_RESOURCE_NODE *Mem64Node,\r
- PCI_RESOURCE_NODE *PMem64Node\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- TODO: Add function description\r
-\r
-Arguments:\r
-\r
- PciDev - TODO: add argument description\r
- IoNode - TODO: add argument description\r
- Mem32Node - TODO: add argument description\r
- PMem32Node - TODO: add argument description\r
- Mem64Node - TODO: add argument description\r
- PMem64Node - TODO: add argument description\r
-\r
-Returns:\r
+ IN PCI_IO_DEVICE *PciDev,\r
+ IN PCI_RESOURCE_NODE *IoNode,\r
+ IN PCI_RESOURCE_NODE *Mem32Node,\r
+ IN PCI_RESOURCE_NODE *PMem32Node,\r
+ IN PCI_RESOURCE_NODE *Mem64Node,\r
+ IN PCI_RESOURCE_NODE *PMem64Node\r
+ );\r
\r
- TODO: add return values\r
+/**\r
+ Get padding resource for PCI-PCI bridge.\r
\r
---*/\r
-;\r
+ @param PciIoDevice PCI-PCI bridge device instance.\r
\r
+ @note Feature flag PcdPciBusHotplugDeviceSupport determines\r
+ whether need to pad resource for them.\r
+**/\r
VOID\r
GetResourcePaddingPpb (\r
IN PCI_IO_DEVICE *PciIoDevice\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- TODO: Add function description\r
-\r
-Arguments:\r
-\r
- PciIoDevice - TODO: add argument description\r
-\r
-Returns:\r
-\r
- TODO: add return values\r
-\r
---*/\r
-;\r
-\r
-EFI_STATUS\r
-ResetAllPpbBusNumber (\r
- IN PCI_IO_DEVICE *Bridge,\r
- IN UINT8 StartBusNumber\r
- )\r
-/*++\r
-\r
-Routine Description:\r
-\r
- Reset bus register\r
-\r
-Arguments:\r
-\r
- Bridge - a pointer to the PCI_IO_DEVICE\r
- StartBusNumber - the number of bus\r
-\r
-Returns:\r
-\r
- None\r
-\r
---*/\r
-;\r
+ );\r
\r
#endif\r