]> git.proxmox.com Git - mirror_edk2.git/blame - IntelFrameworkPkg/Include/Protocol/IncompatiblePciDeviceSupport.h
Reviewed the description in the FatBinPkg .dec file.
[mirror_edk2.git] / IntelFrameworkPkg / Include / Protocol / IncompatiblePciDeviceSupport.h
CommitLineData
79964ac8 1/** @file\r
2 This file declares EFI Incompatible PCI Device Support Protocol\r
8411f1c0 3 This protocol allows the PCI bus driver to support resource allocation for some PCI devices that do not comply\r
4 with the PCI Specification.\r
5 The EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL is used by the PCI bus driver\r
6 to support resource allocation for some PCI devices that do not comply with the PCI Specification.\r
7 This protocol can find some incompatible PCI devices and report their special resource\r
8 requirements to the PCI bus driver. The generic PCI bus driver does not have prior knowledge of\r
9 any incompatible PCI devices. It interfaces with the\r
10 EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL to find out if a device is\r
11 incompatible and to obtain the special configuration requirements for a specific incompatible PCI\r
12 device.\r
13 This protocol is optional, and only one instance of this protocol can be present in the system. If a\r
14 platform supports this protocol, this protocol is produced by a Driver Execution Environment\r
15 (DXE) driver and must be made available before the Boot Device Selection (BDS) phase. The PCI\r
16 bus driver will look for the presence of this protocol before it begins PCI enumeration.\r
79964ac8 17\r
18 Copyright (c) 2007, Intel Corporation\r
19 All rights reserved. This program and the accompanying materials\r
20 are licensed and made available under the terms and conditions of the BSD License\r
21 which accompanies this distribution. The full text of the license may be found at\r
22 http://opensource.org/licenses/bsd-license.php\r
23\r
24 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
25 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
26\r
27 Module Name: IncompatiblePciDeviceSupport.h\r
28\r
29 @par Revision Reference:\r
30 This protocol is defined in Framework of EFI PCI Platform Support Specification.\r
0f899407 31 Version 0.9.\r
79964ac8 32\r
33**/\r
34\r
35#ifndef _INCOMPATIBLE_PCI_DEVICE_SUPPORT_H_\r
36#define _INCOMPATIBLE_PCI_DEVICE_SUPPORT_H_\r
37\r
b80fbe85 38#include <PiDxe.h>\r
39\r
79964ac8 40#define EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL_GUID \\r
41 {0xeb23f55a, 0x7863, 0x4ac2, {0x8d, 0x3d, 0x95, 0x65, 0x35, 0xde, 0x03, 0x75} }\r
42\r
43typedef struct _EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL;\r
44\r
45/**\r
46 Returns a list of ACPI resource descriptors that detail the special\r
47 resource configuration requirements for an incompatible PCI device.\r
48\r
49 @param This Pointer to the EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL instance.\r
50 @param VendorID A unique ID to identify the manufacturer of the PCI device.\r
51 @param DeviceID A unique ID to identify the particular PCI device.\r
52 @param RevisionID A PCI device-specific revision identifier.\r
53 @param SubsystemVendorId Specifies the subsystem vendor ID.\r
54 @param SubsystemDeviceId Specifies the subsystem device ID.\r
55 @param Configuration A list of ACPI resource descriptors that detail\r
56 the configuration requirement.\r
57\r
58 @retval EFI_SUCCESS The function always returns EFI_SUCCESS.\r
59\r
60**/\r
61typedef\r
62EFI_STATUS\r
69686d56 63(EFIAPI *EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_CHECK_DEVICE)(\r
79964ac8 64 IN EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL *This,\r
65 IN UINTN VendorId,\r
66 IN UINTN DeviceId,\r
67 IN UINTN Revision,\r
68 IN UINTN SubVendorId,OPTIONAL\r
69 IN UINTN SubDeviceId,OPTIONAL\r
70 OUT VOID **Configuration\r
71);\r
72\r
73\r
74//\r
75// Interface structure for the Incompatible PCI Device Support Protocol\r
76//\r
79964ac8 77struct _EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_PROTOCOL {\r
f45527eb 78///\r
79/// Returns a list of ACPI resource descriptors that detail any special\r
80/// resource configuration requirements if the specified device is a recognized\r
81/// incompatible PCI device.\r
82///\r
79964ac8 83 EFI_INCOMPATIBLE_PCI_DEVICE_SUPPORT_CHECK_DEVICE CheckDevice;\r
84};\r
85\r
86extern EFI_GUID gEfiIncompatiblePciDeviceSupportProtocolGuid;\r
87\r
88#endif\r