]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.h
1. Impl PI 1.2 PCI part. Major changes include:
[mirror_edk2.git] / IntelFrameworkModulePkg / Bus / Pci / PciBusDxe / PciEnumeratorSupport.h
diff --git a/IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.h b/IntelFrameworkModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.h
deleted file mode 100644 (file)
index 31238b4..0000000
+++ /dev/null
@@ -1,463 +0,0 @@
-/** @file\r
-  PCI emumeration support functions declaration for PCI Bus module.\r
-\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
-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
-**/\r
-\r
-#ifndef _EFI_PCI_ENUMERATOR_SUPPORT_H_\r
-#define _EFI_PCI_ENUMERATOR_SUPPORT_H_\r
-\r
-/**\r
-  This routine is used to check whether the pci device is present.\r
-\r
-  @param PciRootBridgeIo   Pointer to instance of EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.\r
-  @param Pci               Output buffer for PCI device configuration space.\r
-  @param Bus               PCI bus NO.\r
-  @param Device            PCI device NO.\r
-  @param Func              PCI Func NO.\r
-\r
-  @retval EFI_NOT_FOUND    PCI device not present.\r
-  @retval EFI_SUCCESS      PCI device is found.\r
-\r
-**/\r
-EFI_STATUS\r
-PciDevicePresent (\r
-  IN  EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL     *PciRootBridgeIo,\r
-  OUT PCI_TYPE00                          *Pci,\r
-  IN  UINT8                               Bus,\r
-  IN  UINT8                               Device,\r
-  IN  UINT8                               Func\r
-  );\r
-\r
-/**\r
-  Collect all the resource information under this root bridge.\r
-\r
-  A database that records all the information about pci device subject to this\r
-  root bridge will then be created.\r
-\r
-  @param Bridge         Parent bridge instance.\r
-  @param StartBusNumber Bus number of begining.\r
-\r
-  @retval EFI_SUCCESS   PCI device is found.\r
-  @retval other         Some error occurred when reading PCI bridge information.\r
-\r
-**/\r
-EFI_STATUS\r
-PciPciDeviceInfoCollector (\r
-  IN PCI_IO_DEVICE                      *Bridge,\r
-  IN UINT8                              StartBusNumber\r
-  );\r
-\r
-/**\r
-  Seach required device and create PCI device instance.\r
-\r
-  @param Bridge     Parent bridge instance.\r
-  @param Pci        Input PCI device information block.\r
-  @param Bus        PCI bus NO.\r
-  @param Device     PCI device NO.\r
-  @param Func       PCI func  NO.\r
-  @param PciDevice  Output of searched PCI device instance.\r
-\r
-  @retval EFI_SUCCESS           Successfully created PCI device instance.\r
-  @retval EFI_OUT_OF_RESOURCES  Cannot get PCI device information.\r
-\r
-**/\r
-EFI_STATUS\r
-PciSearchDevice (\r
-  IN  PCI_IO_DEVICE                         *Bridge,\r
-  IN  PCI_TYPE00                            *Pci,\r
-  IN  UINT8                                 Bus,\r
-  IN  UINT8                                 Device,\r
-  IN  UINT8                                 Func,\r
-  OUT PCI_IO_DEVICE                         **PciDevice\r
-  );\r
-\r
-/**\r
-  Create PCI device instance for PCI device.\r
-\r
-  @param Bridge   Parent bridge instance.\r
-  @param Pci      Input PCI device information block.\r
-  @param Bus      PCI device Bus NO.\r
-  @param Device   PCI device Device NO.\r
-  @param Func     PCI device's func NO.\r
-\r
-  @return  Created PCI device instance.\r
-\r
-**/\r
-PCI_IO_DEVICE *\r
-GatherDeviceInfo (\r
-  IN PCI_IO_DEVICE                    *Bridge,\r
-  IN PCI_TYPE00                       *Pci,\r
-  IN UINT8                            Bus,\r
-  IN UINT8                            Device,\r
-  IN UINT8                            Func\r
-  );\r
-\r
-/**\r
-  Create PCI device instance for PCI-PCI bridge.\r
-\r
-  @param Bridge   Parent bridge instance.\r
-  @param Pci      Input PCI device information block.\r
-  @param Bus      PCI device Bus NO.\r
-  @param Device   PCI device Device NO.\r
-  @param Func     PCI device's func NO.\r
-\r
-  @return  Created PCI device instance.\r
-\r
-**/\r
-PCI_IO_DEVICE *\r
-GatherPpbInfo (\r
-  IN PCI_IO_DEVICE                    *Bridge,\r
-  IN PCI_TYPE00                       *Pci,\r
-  IN UINT8                            Bus,\r
-  IN UINT8                            Device,\r
-  IN UINT8                            Func\r
-  );\r
-\r
-/**\r
-  Create PCI device instance for PCI Card bridge device.\r
-\r
-  @param Bridge   Parent bridge instance.\r
-  @param Pci      Input PCI device information block.\r
-  @param Bus      PCI device Bus NO.\r
-  @param Device   PCI device Device NO.\r
-  @param Func     PCI device's func NO.\r
-\r
-  @return  Created PCI device instance.\r
-\r
-**/\r
-PCI_IO_DEVICE *\r
-GatherP2CInfo (\r
-  IN PCI_IO_DEVICE                    *Bridge,\r
-  IN PCI_TYPE00                       *Pci,\r
-  IN UINT8                            Bus,\r
-  IN UINT8                            Device,\r
-  IN UINT8                            Func\r
-  );\r
-\r
-/**\r
-  Create device path for pci deivce.\r
-\r
-  @param ParentDevicePath  Parent bridge's path.\r
-  @param PciIoDevice       Pci device instance.\r
-\r
-  @return device path protocol instance for specific pci device.\r
-\r
-**/\r
-EFI_DEVICE_PATH_PROTOCOL *\r
-CreatePciDevicePath (\r
-  IN  EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath,\r
-  IN  PCI_IO_DEVICE            *PciIoDevice\r
-  );\r
-\r
-/**\r
-  Check whether the PCI IOV VF bar is existed or not.\r
-\r
-  @param PciIoDevice       A pointer to the PCI_IO_DEVICE.\r
-  @param Offset            The offset.\r
-  @param BarLengthValue    The bar length value returned.\r
-  @param OriginalBarValue  The original bar value returned.\r
-\r
-  @retval EFI_NOT_FOUND    The bar doesn't exist.\r
-  @retval EFI_SUCCESS      The bar exist.\r
-\r
-**/\r
-EFI_STATUS\r
-VfBarExisted (\r
-  IN PCI_IO_DEVICE *PciIoDevice,\r
-  IN UINTN         Offset,\r
-  OUT UINT32       *BarLengthValue,\r
-  OUT UINT32       *OriginalBarValue\r
-  );\r
-\r
-/**\r
-  Check whether the bar is existed or not.\r
-\r
-  @param PciIoDevice       A pointer to the PCI_IO_DEVICE.\r
-  @param Offset            The offset.\r
-  @param BarLengthValue    The bar length value returned.\r
-  @param OriginalBarValue  The original bar value returned.\r
-\r
-  @retval EFI_NOT_FOUND    The bar doesn't exist.\r
-  @retval EFI_SUCCESS      The bar exist.\r
-\r
-**/\r
-EFI_STATUS\r
-BarExisted (\r
-  IN  PCI_IO_DEVICE *PciIoDevice,\r
-  IN  UINTN         Offset,\r
-  OUT UINT32        *BarLengthValue,\r
-  OUT UINT32        *OriginalBarValue\r
-  );\r
-\r
-/**\r
-  Test whether the device can support given attributes.\r
-\r
-  @param PciIoDevice      Pci device instance.\r
-  @param Command          Input command register value, and\r
-                          returned supported register value.\r
-  @param BridgeControl    Inout bridge control value for PPB or P2C, and\r
-                          returned supported bridge control value.\r
-  @param OldCommand       Returned and stored old command register offset.\r
-  @param OldBridgeControl Returned and stored old Bridge control value for PPB or P2C.\r
-\r
-**/\r
-VOID\r
-PciTestSupportedAttribute (\r
-  IN     PCI_IO_DEVICE                      *PciIoDevice,\r
-  IN OUT UINT16                             *Command,\r
-  IN OUT UINT16                             *BridgeControl,\r
-     OUT UINT16                             *OldCommand,\r
-     OUT UINT16                             *OldBridgeControl\r
-  );\r
-\r
-/**\r
-  Set the supported or current attributes of a PCI device.\r
-\r
-  @param PciIoDevice    Structure pointer for PCI device.\r
-  @param Command        Command register value.\r
-  @param BridgeControl  Bridge control value for PPB or P2C.\r
-  @param Option         Make a choice of EFI_SET_SUPPORTS or EFI_SET_ATTRIBUTES.\r
-\r
-**/\r
-VOID\r
-PciSetDeviceAttribute (\r
-  IN PCI_IO_DEVICE                      *PciIoDevice,\r
-  IN UINT16                             Command,\r
-  IN UINT16                             BridgeControl,\r
-  IN UINTN                              Option\r
-  );\r
-\r
-/**\r
-  Determine if the device can support Fast Back to Back attribute.\r
-\r
-  @param PciIoDevice  Pci device instance.\r
-  @param StatusIndex  Status register value.\r
-\r
-  @retval EFI_SUCCESS       This device support Fast Back to Back attribute.\r
-  @retval EFI_UNSUPPORTED   This device doesn't support Fast Back to Back attribute.\r
-\r
-**/\r
-EFI_STATUS\r
-GetFastBackToBackSupport (\r
-  IN PCI_IO_DEVICE                      *PciIoDevice,\r
-  IN UINT8                              StatusIndex\r
-  );\r
-\r
-/**\r
-  Determine the related attributes of all devices under a Root Bridge.\r
-\r
-  @param PciIoDevice   PCI device instance.\r
-\r
-**/\r
-EFI_STATUS\r
-DetermineDeviceAttribute (\r
-  IN PCI_IO_DEVICE                      *PciIoDevice\r
-  );\r
-\r
-/**\r
-  This routine is used to update the bar information for those incompatible PCI device.\r
-\r
-  @param PciIoDevice      Input Pci device instance. Output Pci device instance with updated\r
-                          Bar information.\r
-\r
-  @retval EFI_SUCCESS     Successfully updated bar information.\r
-  @retval EFI_UNSUPPORTED Given PCI device doesn't belong to incompatible PCI device list.\r
-\r
-**/\r
-EFI_STATUS\r
-UpdatePciInfo (\r
-  IN OUT PCI_IO_DEVICE    *PciIoDevice\r
-  );\r
-\r
-/**\r
-  This routine will update the alignment with the new alignment.\r
-\r
-  @param Alignment    Input Old alignment. Output updated alignment.\r
-  @param NewAlignment New alignment.\r
-\r
-**/\r
-VOID\r
-SetNewAlign (\r
-  IN OUT UINT64     *Alignment,\r
-  IN     UINT64     NewAlignment\r
-  );\r
-\r
-/**\r
-  Parse PCI bar information and fill them into PCI device instance.\r
-\r
-  @param PciIoDevice  Pci device instance.\r
-  @param Offset       Bar offset.\r
-  @param BarIndex     Bar index.\r
-\r
-  @return Next bar offset.\r
-\r
-**/\r
-UINTN\r
-PciParseBar (\r
-  IN PCI_IO_DEVICE  *PciIoDevice,\r
-  IN UINTN          Offset,\r
-  IN UINTN          BarIndex\r
-  );\r
-\r
-/**\r
-  Parse PCI IOV VF bar information and fill them into PCI device instance.\r
-\r
-  @param PciIoDevice  Pci device instance.\r
-  @param Offset       Bar offset.\r
-  @param BarIndex     Bar index.\r
-\r
-  @return Next bar offset.\r
-\r
-**/\r
-UINTN\r
-PciIovParseVfBar (\r
-  IN PCI_IO_DEVICE  *PciIoDevice,\r
-  IN UINTN          Offset,\r
-  IN UINTN          BarIndex\r
-  );\r
-\r
-/**\r
-  This routine is used to initialize the bar of a PCI device.\r
-\r
-  @param PciIoDevice Pci device instance.\r
-\r
-  @note It can be called typically when a device is going to be rejected.\r
-\r
-**/\r
-VOID\r
-InitializePciDevice (\r
-  IN PCI_IO_DEVICE    *PciIoDevice\r
-  );\r
-\r
-/**\r
-  This routine is used to initialize the bar of a PCI-PCI Bridge device.\r
-\r
-  @param  PciIoDevice PCI-PCI bridge device instance.\r
-\r
-**/\r
-VOID\r
-InitializePpb (\r
-  IN PCI_IO_DEVICE    *PciIoDevice\r
-  );\r
-\r
-/**\r
-  This routine is used to initialize the bar of a PCI Card Bridge device.\r
-\r
-  @param PciIoDevice  PCI Card bridge device.\r
-\r
-**/\r
-VOID\r
-InitializeP2C (\r
-  IN PCI_IO_DEVICE    *PciIoDevice\r
-  );\r
-\r
-/**\r
-  Create and initiliaze general PCI I/O device instance for\r
-  PCI device/bridge device/hotplug bridge device.\r
-\r
-  @param PciRootBridgeIo   Pointer to instance of EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL.\r
-  @param Pci               Input Pci information block.\r
-  @param Bus               Device Bus NO.\r
-  @param Device            Device device NO.\r
-  @param Func              Device func NO.\r
-\r
-  @return Instance of PCI device. NULL means no instance created.\r
-\r
-**/\r
-PCI_IO_DEVICE *\r
-CreatePciIoDevice (\r
-  IN EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL  *PciRootBridgeIo,\r
-  IN PCI_TYPE00                       *Pci,\r
-  IN UINT8                            Bus,\r
-  IN UINT8                            Device,\r
-  IN UINT8                            Func\r
-  );\r
-\r
-/**\r
-  This routine is used to enumerate entire pci bus system\r
-  in a given platform.\r
-\r
-  It is only called on the second start on the same Root Bridge.\r
-\r
-  @param  Controller     Parent bridge handler.\r
-\r
-  @retval EFI_SUCCESS    PCI enumeration finished successfully.\r
-  @retval other          Some error occurred when enumerating the pci bus system.\r
-\r
-**/\r
-EFI_STATUS\r
-PciEnumeratorLight (\r
-  IN EFI_HANDLE                    Controller\r
-  );\r
-\r
-/**\r
-  Get bus range from PCI resource descriptor list.\r
-\r
-  @param Descriptors  A pointer to the address space descriptor.\r
-  @param MinBus       The min bus returned.\r
-  @param MaxBus       The max bus returned.\r
-  @param BusRange     The bus range returned.\r
-\r
-  @retval EFI_SUCCESS    Successfully got bus range.\r
-  @retval EFI_NOT_FOUND  Can not find the specific bus.\r
-\r
-**/\r
-EFI_STATUS\r
-PciGetBusRange (\r
-  IN     EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR  **Descriptors,\r
-  OUT    UINT16                             *MinBus,\r
-  OUT    UINT16                             *MaxBus,\r
-  OUT    UINT16                             *BusRange\r
-  );\r
-\r
-/**\r
-  This routine can be used to start the root bridge.\r
-\r
-  @param RootBridgeDev     Pci device instance.\r
-\r
-  @retval EFI_SUCCESS      This device started.\r
-  @retval other            Failed to get PCI Root Bridge I/O protocol.\r
-\r
-**/\r
-EFI_STATUS\r
-StartManagingRootBridge (\r
-  IN PCI_IO_DEVICE *RootBridgeDev\r
-  );\r
-\r
-/**\r
-  This routine can be used to check whether a PCI device should be rejected when light enumeration.\r
-\r
-  @param PciIoDevice  Pci device instance.\r
-\r
-  @retval TRUE      This device should be rejected.\r
-  @retval FALSE     This device shouldn't be rejected.\r
-\r
-**/\r
-BOOLEAN\r
-IsPciDeviceRejected (\r
-  IN PCI_IO_DEVICE *PciIoDevice\r
-  );\r
-\r
-/**\r
-  Reset all bus number from specific bridge.\r
-\r
-  @param Bridge           Parent specific bridge.\r
-  @param StartBusNumber   Start bus number.\r
-\r
-**/\r
-VOID\r
-ResetAllPpbBusNumber (\r
-  IN PCI_IO_DEVICE                      *Bridge,\r
-  IN UINT8                              StartBusNumber\r
-  );\r
-\r
-#endif\r