]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkModulePkg/Bus/Pci/PciBus/Dxe/PciResourceSupport.h
Add PciBus & IdeBus
[mirror_edk2.git] / IntelFrameworkModulePkg / Bus / Pci / PciBus / Dxe / PciResourceSupport.h
diff --git a/IntelFrameworkModulePkg/Bus/Pci/PciBus/Dxe/PciResourceSupport.h b/IntelFrameworkModulePkg/Bus/Pci/PciBus/Dxe/PciResourceSupport.h
new file mode 100644 (file)
index 0000000..61ec29f
--- /dev/null
@@ -0,0 +1,740 @@
+/*++\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
+\r
+Module Name:\r
+\r
+  PciResourceSupport.h\r
+  \r
+Abstract:\r
+\r
+  \r
+\r
+Revision History\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
+\r
+#define RESOURCED_LIST_FROM_NODE(a) \\r
+  CR (a, PCI_RESERVED_RESOURCE_LIST, Node, RESERVED_RESOURCE_SIGNATURE)\r
+\r
+#define RESOURCED_LIST_FROM_LINK(a) \\r
+  CR (a, PCI_RESERVED_RESOURCE_LIST, Link, RESERVED_RESOURCE_SIGNATURE)\r
+\r
+typedef enum {\r
+  PciResUsageTypical            = 0,\r
+  PciResUsagePadding,\r
+  PciResUsageOptionRomProcessing\r
+} PCI_RESOURCE_USAGE;\r
+\r
+#define PCI_RESOURCE_SIGNATURE  EFI_SIGNATURE_32 ('p', 'c', 'r', 'c')\r
+\r
+typedef struct {\r
+  UINT32              Signature;\r
+  LIST_ENTRY          Link;\r
+  LIST_ENTRY          ChildList;\r
+  PCI_IO_DEVICE       *PciDev;\r
+  UINT64              Alignment;\r
+  UINT64              Offset;\r
+  UINT8               Bar;\r
+  PCI_BAR_TYPE        ResType;\r
+  UINT64              Length;\r
+  BOOLEAN             Reserved;\r
+  PCI_RESOURCE_USAGE  ResourceUsage;\r
+} PCI_RESOURCE_NODE;\r
+\r
+#define RESOURCE_NODE_FROM_LINK(a) \\r
+  CR (a, PCI_RESOURCE_NODE, Link, PCI_RESOURCE_SIGNATURE)\r
+\r
+EFI_STATUS\r
+SkipVGAAperture (\r
+  OUT UINT64   *Start,\r
+  IN  UINT64   Length\r
+  )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+  TODO: Add function description\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
+SkipIsaAliasAperture (\r
+  OUT UINT64   *Start,\r
+  IN  UINT64   Length\r
+  )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+  TODO: Add function description\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
+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
+\r
+  Bridge  - TODO: add argument description\r
+  ResNode - TODO: add argument description\r
+\r
+Returns:\r
+\r
+  TODO: add return values\r
+\r
+--*/\r
+;\r
+\r
+EFI_STATUS\r
+MergeResourceTree (\r
+  PCI_RESOURCE_NODE *Dst,\r
+  PCI_RESOURCE_NODE *Res,\r
+  BOOLEAN           TypeMerge\r
+  )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+  TODO: Add function description\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
+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
+\r
+  TODO: add return values\r
+\r
+--*/\r
+;\r
+\r
+EFI_STATUS\r
+CalculateResourceAperture (\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
+\r
+  TODO: add return values\r
+\r
+--*/\r
+;\r
+\r
+EFI_STATUS\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
+\r
+PCI_RESOURCE_NODE *\r
+CreateResourceNode (\r
+  IN PCI_IO_DEVICE         *PciDev,\r
+  IN UINT64                Length,\r
+  IN UINT64                Alignment,\r
+  IN UINT8                 Bar,\r
+  IN PCI_BAR_TYPE          ResType,\r
+  IN PCI_RESOURCE_USAGE    ResUsage\r
+  )\r
+/*++\r
+\r
+Routine Description:\r
+\r
+  TODO: Add function description\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
+CreateResourceMap (\r
+  IN PCI_IO_DEVICE     *Bridge,\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
+Routine Description:\r
+\r
+  TODO: Add function description\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
+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
+  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
+Returns:\r
+\r
+  TODO: add return values\r
+\r
+--*/\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
+Returns:\r
+\r
+  TODO: add return values\r
+\r
+--*/\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
+  Base    - 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
+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
+  TODO: add return values\r
+\r
+--*/\r
+;\r
+\r
+EFI_STATUS\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
+Returns:\r
+\r
+  TODO: add return values\r
+\r
+--*/\r
+;\r
+\r
+EFI_STATUS\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
+Arguments:\r
+\r
+  PciDevice     - TODO: add argument description\r
+  OptionRomBase - TODO: add argument description\r
+  Enable        - TODO: add argument description\r
+\r
+Returns:\r
+\r
+  TODO: add return values\r
+\r
+--*/\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
+\r
+  Bridge  - TODO: add argument description\r
+\r
+Returns:\r
+\r
+  TODO: add return values\r
+\r
+--*/\r
+;\r
+\r
+EFI_STATUS\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
+\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
+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
+\r
+EFI_STATUS\r
+DestroyResourceTree (\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
+\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
+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
+\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
+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
+Returns:\r
+\r
+  TODO: add return values\r
+\r
+--*/\r
+;\r
+\r
+EFI_STATUS\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
+\r
+  TODO: add return values\r
+\r
+--*/\r
+;\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
+ResetAllPpbBusReg (\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
+#endif\r