TianoCore EDK2 master
|
#include "PciBus.h"
Go to the source code of this file.
Functions | |
EFI_STATUS EFIAPI | PciBusEntryPoint (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable) |
EFI_STATUS EFIAPI | PciBusDriverBindingSupported (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Controller, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath) |
EFI_STATUS EFIAPI | PciBusDriverBindingStart (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Controller, IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath) |
EFI_STATUS EFIAPI | PciBusDriverBindingStop (IN EFI_DRIVER_BINDING_PROTOCOL *This, IN EFI_HANDLE Controller, IN UINTN NumberOfChildren, IN EFI_HANDLE *ChildHandleBuffer) |
Variables | |
EFI_DRIVER_BINDING_PROTOCOL | gPciBusDriverBinding |
EFI_HANDLE | gPciHostBrigeHandles [PCI_MAX_HOST_BRIDGE_NUM] |
EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL * | gIncompatiblePciDeviceSupport = NULL |
UINTN | gPciHostBridgeNumber = 0 |
BOOLEAN | gFullEnumeration = TRUE |
UINT64 | gAllOne = 0xFFFFFFFFFFFFFFFFULL |
UINT64 | gAllZero = 0 |
EFI_PCI_PLATFORM_PROTOCOL * | gPciPlatformProtocol |
EFI_PCI_OVERRIDE_PROTOCOL * | gPciOverrideProtocol |
EDKII_IOMMU_PROTOCOL * | mIoMmuProtocol |
EDKII_DEVICE_SECURITY_PROTOCOL * | mDeviceSecurityProtocol |
GLOBAL_REMOVE_IF_UNREFERENCED EFI_PCI_HOTPLUG_REQUEST_PROTOCOL | mPciHotPlugRequest |
Driver Binding functions for PCI Bus module.
Single PCI bus driver instance will manager all PCI Root Bridges in one EFI based firmware, since all PCI Root Bridges' resources need to be managed together. Supported() function will try to get PCI Root Bridge IO Protocol. Start() function will get PCI Host Bridge Resource Allocation Protocol to manage all PCI Root Bridges. So it means platform needs install PCI Root Bridge IO protocol for each PCI Root Bus and install PCI Host Bridge Resource Allocation Protocol.
Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file PciBus.c.
EFI_STATUS EFIAPI PciBusDriverBindingStart | ( | IN EFI_DRIVER_BINDING_PROTOCOL * | This, |
IN EFI_HANDLE | Controller, | ||
IN EFI_DEVICE_PATH_PROTOCOL * | RemainingDevicePath | ||
) |
Start this driver on ControllerHandle and enumerate Pci bus and start all device under PCI bus.
This | Protocol instance pointer. |
Controller | Handle of device to bind driver to. |
RemainingDevicePath | Optional parameter use to pick a specific child device to start. |
EFI_SUCCESS | This driver is added to ControllerHandle. |
EFI_ALREADY_STARTED | This driver is already running on ControllerHandle. |
other | This driver does not support this device. |
EFI_STATUS EFIAPI PciBusDriverBindingStop | ( | IN EFI_DRIVER_BINDING_PROTOCOL * | This, |
IN EFI_HANDLE | Controller, | ||
IN UINTN | NumberOfChildren, | ||
IN EFI_HANDLE * | ChildHandleBuffer | ||
) |
Stop this driver on ControllerHandle. Support stopping any child handles created by this driver.
This | Protocol instance pointer. |
Controller | Handle of device to stop driver on. |
NumberOfChildren | Number of Handles in ChildHandleBuffer. If number of children is zero stop the entire bus driver. |
ChildHandleBuffer | List of Child Handles to Stop. |
EFI_SUCCESS | This driver is removed ControllerHandle. |
other | This driver was not removed from this device. |
EFI_STATUS EFIAPI PciBusDriverBindingSupported | ( | IN EFI_DRIVER_BINDING_PROTOCOL * | This, |
IN EFI_HANDLE | Controller, | ||
IN EFI_DEVICE_PATH_PROTOCOL * | RemainingDevicePath | ||
) |
Test to see if this driver supports ControllerHandle. Any ControllerHandle than contains a gEfiPciRootBridgeIoProtocolGuid protocol can be supported.
This | Protocol instance pointer. |
Controller | Handle of device to test. |
RemainingDevicePath | Optional parameter use to pick a specific child device to start. |
EFI_SUCCESS | This driver supports this device. |
EFI_ALREADY_STARTED | This driver is already running on this device. |
other | This driver does not support this device. |
EFI_STATUS EFIAPI PciBusEntryPoint | ( | IN EFI_HANDLE | ImageHandle, |
IN EFI_SYSTEM_TABLE * | SystemTable | ||
) |
The Entry Point for PCI Bus module. The user code starts with this function.
Installs driver module protocols and. Creates virtual device handles for ConIn, ConOut, and StdErr. Installs Simple Text In protocol, Simple Text In Ex protocol, Simple Pointer protocol, Absolute Pointer protocol on those virtual handlers. Installs Graphics Output protocol and/or UGA Draw protocol if needed.
[in] | ImageHandle | The firmware allocated handle for the EFI image. |
[in] | SystemTable | A pointer to the EFI System Table. |
EFI_SUCCESS | The entry point is executed successfully. |
other | Some error occurred when executing this entry point. |
EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL* gIncompatiblePciDeviceSupport = NULL |
EFI_DRIVER_BINDING_PROTOCOL gPciBusDriverBinding |
EFI_HANDLE gPciHostBrigeHandles[PCI_MAX_HOST_BRIDGE_NUM] |
EFI_PCI_OVERRIDE_PROTOCOL* gPciOverrideProtocol |
EFI_PCI_PLATFORM_PROTOCOL* gPciPlatformProtocol |
EDKII_DEVICE_SECURITY_PROTOCOL* mDeviceSecurityProtocol |
EDKII_IOMMU_PROTOCOL* mIoMmuProtocol |
GLOBAL_REMOVE_IF_UNREFERENCED EFI_PCI_HOTPLUG_REQUEST_PROTOCOL mPciHotPlugRequest |