]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OldMdePkg/Include/IndustryStandard/pci22.h
Retiring the ANT/JAVA build and removing the older EDK II packages that required...
[mirror_edk2.git] / OldMdePkg / Include / IndustryStandard / pci22.h
diff --git a/OldMdePkg/Include/IndustryStandard/pci22.h b/OldMdePkg/Include/IndustryStandard/pci22.h
deleted file mode 100644 (file)
index b0ec149..0000000
+++ /dev/null
@@ -1,550 +0,0 @@
-/** @file\r
-  Support for PCI 2.2 standard.\r
-\r
-  Copyright (c) 2006 - 2007, 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:  pci22.h\r
-\r
-**/\r
-\r
-#ifndef _PCI22_H\r
-#define _PCI22_H\r
-\r
-#define PCI_MAX_SEGMENT 0\r
-\r
-#define PCI_MAX_BUS     255\r
-\r
-#define PCI_MAX_DEVICE  31\r
-#define PCI_MAX_FUNC    7\r
-\r
-//\r
-// Command\r
-//\r
-#define PCI_VGA_PALETTE_SNOOP_DISABLED  0x20\r
-\r
-#pragma pack(push, 1)\r
-typedef struct {\r
-  UINT16  VendorId;\r
-  UINT16  DeviceId;\r
-  UINT16  Command;\r
-  UINT16  Status;\r
-  UINT8   RevisionID;\r
-  UINT8   ClassCode[3];\r
-  UINT8   CacheLineSize;\r
-  UINT8   LatencyTimer;\r
-  UINT8   HeaderType;\r
-  UINT8   BIST;\r
-} PCI_DEVICE_INDEPENDENT_REGION;\r
-\r
-typedef struct {\r
-  UINT32  Bar[6];\r
-  UINT32  CISPtr;\r
-  UINT16  SubsystemVendorID;\r
-  UINT16  SubsystemID;\r
-  UINT32  ExpansionRomBar;\r
-  UINT8   CapabilityPtr;\r
-  UINT8   Reserved1[3];\r
-  UINT32  Reserved2;\r
-  UINT8   InterruptLine;\r
-  UINT8   InterruptPin;\r
-  UINT8   MinGnt;\r
-  UINT8   MaxLat;\r
-} PCI_DEVICE_HEADER_TYPE_REGION;\r
-\r
-typedef struct {\r
-  PCI_DEVICE_INDEPENDENT_REGION Hdr;\r
-  PCI_DEVICE_HEADER_TYPE_REGION Device;\r
-} PCI_TYPE00;\r
-\r
-typedef struct {\r
-  UINT32  Bar[2];\r
-  UINT8   PrimaryBus;\r
-  UINT8   SecondaryBus;\r
-  UINT8   SubordinateBus;\r
-  UINT8   SecondaryLatencyTimer;\r
-  UINT8   IoBase;\r
-  UINT8   IoLimit;\r
-  UINT16  SecondaryStatus;\r
-  UINT16  MemoryBase;\r
-  UINT16  MemoryLimit;\r
-  UINT16  PrefetchableMemoryBase;\r
-  UINT16  PrefetchableMemoryLimit;\r
-  UINT32  PrefetchableBaseUpper32;\r
-  UINT32  PrefetchableLimitUpper32;\r
-  UINT16  IoBaseUpper16;\r
-  UINT16  IoLimitUpper16;\r
-  UINT8   CapabilityPtr;\r
-  UINT8   Reserved[3];\r
-  UINT32  ExpansionRomBAR;\r
-  UINT8   InterruptLine;\r
-  UINT8   InterruptPin;\r
-  UINT16  BridgeControl;\r
-} PCI_BRIDGE_CONTROL_REGISTER;\r
-\r
-typedef struct {\r
-  PCI_DEVICE_INDEPENDENT_REGION Hdr;\r
-  PCI_BRIDGE_CONTROL_REGISTER   Bridge;\r
-} PCI_TYPE01;\r
-\r
-typedef union {\r
-  PCI_TYPE00  Device;\r
-  PCI_TYPE01  Bridge;\r
-} PCI_TYPE_GENERIC;\r
-\r
-typedef struct {\r
-  UINT32  CardBusSocketReg; // Cardus Socket/ExCA Base\r
-  // Address Register\r
-  //\r
-  UINT16  Reserved;\r
-  UINT16  SecondaryStatus;      // Secondary Status\r
-  UINT8   PciBusNumber;         // PCI Bus Number\r
-  UINT8   CardBusBusNumber;     // CardBus Bus Number\r
-  UINT8   SubordinateBusNumber; // Subordinate Bus Number\r
-  UINT8   CardBusLatencyTimer;  // CardBus Latency Timer\r
-  UINT32  MemoryBase0;          // Memory Base Register 0\r
-  UINT32  MemoryLimit0;         // Memory Limit Register 0\r
-  UINT32  MemoryBase1;\r
-  UINT32  MemoryLimit1;\r
-  UINT32  IoBase0;\r
-  UINT32  IoLimit0;             // I/O Base Register 0\r
-  UINT32  IoBase1;              // I/O Limit Register 0\r
-  UINT32  IoLimit1;\r
-  UINT8   InterruptLine;        // Interrupt Line\r
-  UINT8   InterruptPin;         // Interrupt Pin\r
-  UINT16  BridgeControl;        // Bridge Control\r
-} PCI_CARDBUS_CONTROL_REGISTER;\r
-\r
-//\r
-// Definitions of PCI class bytes and manipulation macros.\r
-//\r
-#define PCI_CLASS_OLD                 0x00\r
-#define PCI_CLASS_OLD_OTHER           0x00\r
-#define PCI_CLASS_OLD_VGA             0x01\r
-\r
-#define PCI_CLASS_MASS_STORAGE        0x01\r
-#define PCI_CLASS_MASS_STORAGE_SCSI   0x00\r
-#define PCI_CLASS_MASS_STORAGE_IDE    0x01  // obsolete\r
-#define PCI_CLASS_IDE                 0x01\r
-#define PCI_CLASS_MASS_STORAGE_FLOPPY 0x02\r
-#define PCI_CLASS_MASS_STORAGE_IPI    0x03\r
-#define PCI_CLASS_MASS_STORAGE_RAID   0x04\r
-#define PCI_CLASS_MASS_STORAGE_OTHER  0x80\r
-\r
-#define PCI_CLASS_NETWORK             0x02\r
-#define PCI_CLASS_NETWORK_ETHERNET    0x00\r
-#define PCI_CLASS_ETHERNET            0x00  // obsolete\r
-#define PCI_CLASS_NETWORK_TOKENRING   0x01\r
-#define PCI_CLASS_NETWORK_FDDI        0x02\r
-#define PCI_CLASS_NETWORK_ATM         0x03\r
-#define PCI_CLASS_NETWORK_ISDN        0x04\r
-#define PCI_CLASS_NETWORK_OTHER       0x80\r
-\r
-#define PCI_CLASS_DISPLAY             0x03\r
-#define PCI_CLASS_DISPLAY_CTRL        0x03  // obsolete\r
-#define PCI_CLASS_DISPLAY_VGA         0x00\r
-#define PCI_CLASS_VGA                 0x00  // obsolete\r
-#define PCI_CLASS_DISPLAY_XGA         0x01\r
-#define PCI_CLASS_DISPLAY_3D          0x02\r
-#define PCI_CLASS_DISPLAY_OTHER       0x80\r
-#define PCI_CLASS_DISPLAY_GFX         0x80\r
-#define PCI_CLASS_GFX                 0x80  // obsolete\r
-#define PCI_CLASS_BRIDGE              0x06\r
-#define PCI_CLASS_BRIDGE_HOST         0x00\r
-#define PCI_CLASS_BRIDGE_ISA          0x01\r
-#define PCI_CLASS_ISA                 0x01  // obsolete\r
-#define PCI_CLASS_BRIDGE_EISA         0x02\r
-#define PCI_CLASS_BRIDGE_MCA          0x03\r
-#define PCI_CLASS_BRIDGE_P2P          0x04\r
-#define PCI_CLASS_BRIDGE_PCMCIA       0x05\r
-#define PCI_CLASS_BRIDGE_NUBUS        0x06\r
-#define PCI_CLASS_BRIDGE_CARDBUS      0x07\r
-#define PCI_CLASS_BRIDGE_RACEWAY      0x08\r
-#define PCI_CLASS_BRIDGE_ISA_PDECODE  0x80\r
-#define PCI_CLASS_ISA_POSITIVE_DECODE 0x80  // obsolete\r
-\r
-#define PCI_CLASS_SCC                 0x07  // Simple communications controllers \r
-#define PCI_SUBCLASS_SERIAL           0x00\r
-#define PCI_IF_GENERIC_XT             0x00\r
-#define PCI_IF_16450                  0x01\r
-#define PCI_IF_16550                  0x02\r
-#define PCI_IF_16650                  0x03\r
-#define PCI_IF_16750                  0x04\r
-#define PCI_IF_16850                  0x05\r
-#define PCI_IF_16950                  0x06\r
-#define PCI_SUBCLASS_PARALLEL         0x01\r
-#define PCI_IF_PARALLEL_PORT          0x00\r
-#define PCI_IF_BI_DIR_PARALLEL_PORT   0x01\r
-#define PCI_IF_ECP_PARALLEL_PORT      0x02\r
-#define PCI_IF_1284_CONTROLLER        0x03\r
-#define PCI_IF_1284_DEVICE            0xFE\r
-#define PCI_SUBCLASS_MULTIPORT_SERIAL 0x02\r
-#define PCI_SUBCLASS_MODEM            0x03\r
-#define PCI_IF_GENERIC_MODEM          0x00\r
-#define PCI_IF_16450_MODEM            0x01\r
-#define PCI_IF_16550_MODEM            0x02\r
-#define PCI_IF_16650_MODEM            0x03\r
-#define PCI_IF_16750_MODEM            0x04\r
-#define PCI_SUBCLASS_OTHER            0x80\r
-\r
-#define PCI_CLASS_SYSTEM_PERIPHERAL   0x08\r
-#define PCI_SUBCLASS_PIC              0x00\r
-#define PCI_IF_8259_PIC               0x00\r
-#define PCI_IF_ISA_PIC                0x01\r
-#define PCI_IF_EISA_PIC               0x02\r
-#define PCI_IF_APIC_CONTROLLER        0x10 // I/O APIC interrupt controller , 32 bye none-prefectable memory.  \r
-#define PCI_IF_APIC_CONTROLLER2       0x20 \r
-#define PCI_SUBCLASS_TIMER            0x02\r
-#define PCI_IF_8254_TIMER             0x00\r
-#define PCI_IF_ISA_TIMER              0x01\r
-#define PCI_EISA_TIMER                0x02\r
-#define PCI_SUBCLASS_RTC              0x03\r
-#define PCI_IF_GENERIC_RTC            0x00\r
-#define PCI_IF_ISA_RTC                0x00\r
-#define PCI_SUBCLASS_PNP_CONTROLLER   0x04 // HotPlug Controller\r
-\r
-#define PCI_CLASS_INPUT_DEVICE        0x09\r
-#define PCI_SUBCLASS_KEYBOARD         0x00\r
-#define PCI_SUBCLASS_PEN              0x01\r
-#define PCI_SUBCLASS_MOUSE_CONTROLLER 0x02\r
-#define PCI_SUBCLASS_SCAN_CONTROLLER  0x03\r
-#define PCI_SUBCLASS_GAMEPORT         0x04\r
-\r
-#define PCI_CLASS_DOCKING_STATION     0x0A\r
-\r
-#define PCI_CLASS_PROCESSOR           0x0B\r
-#define PCI_SUBCLASS_PROC_386         0x00\r
-#define PCI_SUBCLASS_PROC_486         0x01\r
-#define PCI_SUBCLASS_PROC_PENTIUM     0x02\r
-#define PCI_SUBCLASS_PROC_ALPHA       0x10\r
-#define PCI_SUBCLASS_PROC_POWERPC     0x20\r
-#define PCI_SUBCLASS_PROC_MIPS        0x30\r
-#define PCI_SUBCLASS_PROC_CO_PORC     0x40 // Co-Processor\r
-\r
-#define PCI_CLASS_SERIAL              0x0C\r
-#define PCI_CLASS_SERIAL_FIREWIRE     0x00\r
-#define PCI_CLASS_SERIAL_ACCESS_BUS   0x01\r
-#define PCI_CLASS_SERIAL_SSA          0x02\r
-#define PCI_CLASS_SERIAL_USB          0x03\r
-#define PCI_IF_EHCI                   0x20\r
-#define PCI_CLASS_SERIAL_FIBRECHANNEL 0x04\r
-#define PCI_CLASS_SERIAL_SMB          0x05\r
-\r
-#define PCI_CLASS_WIRELESS            0x0D\r
-#define PCI_SUBCLASS_IRDA             0x00\r
-#define PCI_SUBCLASS_IR               0x01\r
-#define PCI_SUBCLASS_RF               0x02\r
-\r
-#define PCI_CLASS_INTELLIGENT_IO      0x0E\r
-\r
-#define PCI_CLASS_SATELLITE           0x0F\r
-#define PCI_SUBCLASS_TV               0x01\r
-#define PCI_SUBCLASS_AUDIO            0x02\r
-#define PCI_SUBCLASS_VOICE            0x03\r
-#define PCI_SUBCLASS_DATA             0x04\r
-\r
-#define PCI_SECURITY_CONTROLLER       0x10 // Encryption and decryption controller\r
-#define PCI_SUBCLASS_NET_COMPUT       0x00\r
-#define PCI_SUBCLASS_ENTERTAINMENT    0x10 \r
-\r
-#define PCI_CLASS_DPIO                0x11\r
-\r
-#define IS_CLASS1(_p, c)              ((_p)->Hdr.ClassCode[2] == (c))\r
-#define IS_CLASS2(_p, c, s)           (IS_CLASS1 (_p, c) && ((_p)->Hdr.ClassCode[1] == (s)))\r
-#define IS_CLASS3(_p, c, s, p)        (IS_CLASS2 (_p, c, s) && ((_p)->Hdr.ClassCode[0] == (p)))\r
-\r
-#define IS_PCI_DISPLAY(_p)            IS_CLASS1 (_p, PCI_CLASS_DISPLAY)\r
-#define IS_PCI_VGA(_p)                IS_CLASS3 (_p, PCI_CLASS_DISPLAY, PCI_CLASS_DISPLAY_VGA, 0)\r
-#define IS_PCI_8514(_p)               IS_CLASS3 (_p, PCI_CLASS_DISPLAY, PCI_CLASS_DISPLAY_VGA, 1)\r
-#define IS_PCI_GFX(_p)                IS_CLASS3 (_p, PCI_CLASS_DISPLAY, PCI_CLASS_DISPLAY_GFX, 0)\r
-#define IS_PCI_OLD(_p)                IS_CLASS1 (_p, PCI_CLASS_OLD)\r
-#define IS_PCI_OLD_VGA(_p)            IS_CLASS2 (_p, PCI_CLASS_OLD, PCI_CLASS_OLD_VGA)\r
-#define IS_PCI_IDE(_p)                IS_CLASS2 (_p, PCI_CLASS_MASS_STORAGE, PCI_CLASS_MASS_STORAGE_IDE)\r
-#define IS_PCI_SCSI(_p)               IS_CLASS3 (_p, PCI_CLASS_MASS_STORAGE, PCI_CLASS_MASS_STORAGE_SCSI, 0)\r
-#define IS_PCI_RAID(_p)               IS_CLASS3 (_p, PCI_CLASS_MASS_STORAGE, PCI_CLASS_MASS_STORAGE_RAID, 0)\r
-#define IS_PCI_LPC(_p)                IS_CLASS3 (_p, PCI_CLASS_BRIDGE, PCI_CLASS_BRIDGE_ISA, 0)\r
-#define IS_PCI_P2P(_p)                IS_CLASS3 (_p, PCI_CLASS_BRIDGE, PCI_CLASS_BRIDGE_P2P, 0)\r
-#define IS_PCI_P2P_SUB(_p)            IS_CLASS3 (_p, PCI_CLASS_BRIDGE, PCI_CLASS_BRIDGE_P2P, 1)\r
-#define IS_PCI_16550_SERIAL(_p)       IS_CLASS3 (_p, PCI_CLASS_SCC, PCI_SUBCLASS_SERIAL, PCI_IF_16550)\r
-#define IS_PCI_USB(_p)                IS_CLASS2 (_p, PCI_CLASS_SERIAL, PCI_CLASS_SERIAL_USB)\r
-\r
-#define HEADER_TYPE_DEVICE            0x00\r
-#define HEADER_TYPE_PCI_TO_PCI_BRIDGE 0x01\r
-#define HEADER_TYPE_CARDBUS_BRIDGE    0x02\r
-\r
-#define HEADER_TYPE_MULTI_FUNCTION    0x80\r
-#define HEADER_LAYOUT_CODE            0x7f\r
-\r
-#define IS_PCI_BRIDGE(_p)             (((_p)->Hdr.HeaderType & HEADER_LAYOUT_CODE) == (HEADER_TYPE_PCI_TO_PCI_BRIDGE))\r
-#define IS_CARDBUS_BRIDGE(_p)         (((_p)->Hdr.HeaderType & HEADER_LAYOUT_CODE) == (HEADER_TYPE_CARDBUS_BRIDGE))\r
-#define IS_PCI_MULTI_FUNC(_p)         ((_p)->Hdr.HeaderType & HEADER_TYPE_MULTI_FUNCTION)\r
-\r
-#define PCI_DEVICE_ROMBAR             0x30\r
-#define PCI_BRIDGE_ROMBAR             0x38\r
-\r
-#define PCI_MAX_BAR                   0x0006\r
-#define PCI_MAX_CONFIG_OFFSET         0x0100\r
-\r
-#define PCI_VENDOR_ID_OFFSET                        0x00\r
-#define PCI_DEVICE_ID_OFFSET                        0x02\r
-#define PCI_COMMAND_OFFSET                          0x04\r
-#define PCI_PRIMARY_STATUS_OFFSET                   0x06\r
-#define PCI_REVISION_ID_OFFSET                      0x08\r
-#define PCI_CLASSCODE_OFFSET                        0x09\r
-#define PCI_CACHELINE_SIZE_OFFSET                   0x0C\r
-#define PCI_LATENCY_TIMER_OFFSET                    0x0D\r
-#define PCI_HEADER_TYPE_OFFSET                      0x0E\r
-#define PCI_BIST_OFFSET                             0x0F\r
-#define PCI_BASE_ADDRESSREG_OFFSET                  0x10\r
-#define PCI_CARDBUS_CIS_OFFSET                      0x28\r
-#define PCI_SVID_OFFSET                             0x2C // SubSystem Vendor id\r
-#define PCI_SUBSYSTEM_VENDOR_ID_OFFSET              0x2C\r
-#define PCI_SID_OFFSET                              0x2E // SubSystem ID\r
-#define PCI_SUBSYSTEM_ID_OFFSET                     0x2E\r
-#define PCI_EXPANSION_ROM_BASE                      0x30\r
-#define PCI_CAPBILITY_POINTER_OFFSET                0x34\r
-#define PCI_INT_LINE_OFFSET                         0x3C // Interrupt Line Register\r
-#define PCI_INT_PIN_OFFSET                          0x3D // Interrupt Pin Register\r
-#define PCI_MAXGNT_OFFSET                           0x3E // Max Grant Register\r
-#define PCI_MAXLAT_OFFSET                           0x3F // Max Latency Register\r
-\r
-#define PCI_BRIDGE_CONTROL_REGISTER_OFFSET          0x3E\r
-#define PCI_BRIDGE_STATUS_REGISTER_OFFSET           0x1E\r
-\r
-#define PCI_BRIDGE_PRIMARY_BUS_REGISTER_OFFSET      0x18\r
-#define PCI_BRIDGE_SECONDARY_BUS_REGISTER_OFFSET    0x19\r
-#define PCI_BRIDGE_SUBORDINATE_BUS_REGISTER_OFFSET  0x1a\r
-\r
-//\r
-// Interrupt Line "Unknown" or "No connection" value defined for x86 based system\r
-//\r
-#define PCI_INT_LINE_UNKNOWN                        0xFF               \r
-\r
-typedef union {\r
-  struct {\r
-    UINT32  Reg : 8;\r
-    UINT32  Func : 3;\r
-    UINT32  Dev : 5;\r
-    UINT32  Bus : 8;\r
-    UINT32  Reserved : 7;\r
-    UINT32  Enable : 1;\r
-  } Bits;\r
-  UINT32  Uint32;\r
-} PCI_CONFIG_ACCESS_CF8;\r
-\r
-#pragma pack()\r
-\r
-#define PCI_EXPANSION_ROM_HEADER_SIGNATURE              0xaa55\r
-#define PCI_DATA_STRUCTURE_SIGNATURE                    EFI_SIGNATURE_32 ('P', 'C', 'I', 'R')\r
-#define PCI_CODE_TYPE_PCAT_IMAGE                        0x00\r
-#define PCI_CODE_TYPE_EFI_IMAGE                         0x03\r
-#define EFI_PCI_EXPANSION_ROM_HEADER_COMPRESSED         0x0001\r
-\r
-#define EFI_PCI_COMMAND_IO_SPACE                        0x0001\r
-#define EFI_PCI_COMMAND_MEMORY_SPACE                    0x0002\r
-#define EFI_PCI_COMMAND_BUS_MASTER                      0x0004\r
-#define EFI_PCI_COMMAND_SPECIAL_CYCLE                   0x0008\r
-#define EFI_PCI_COMMAND_MEMORY_WRITE_AND_INVALIDATE     0x0010\r
-#define EFI_PCI_COMMAND_VGA_PALETTE_SNOOP               0x0020\r
-#define EFI_PCI_COMMAND_PARITY_ERROR_RESPOND            0x0040\r
-#define EFI_PCI_COMMAND_STEPPING_CONTROL                0x0080\r
-#define EFI_PCI_COMMAND_SERR                            0x0100\r
-#define EFI_PCI_COMMAND_FAST_BACK_TO_BACK               0x0200\r
-\r
-#define EFI_PCI_BRIDGE_CONTROL_PARITY_ERROR_RESPONSE    0x0001\r
-#define EFI_PCI_BRIDGE_CONTROL_SERR                     0x0002\r
-#define EFI_PCI_BRIDGE_CONTROL_ISA                      0x0004\r
-#define EFI_PCI_BRIDGE_CONTROL_VGA                      0x0008\r
-#define EFI_PCI_BRIDGE_CONTROL_VGA_16                   0x0010\r
-#define EFI_PCI_BRIDGE_CONTROL_MASTER_ABORT             0x0020\r
-#define EFI_PCI_BRIDGE_CONTROL_RESET_SECONDARY_BUS      0x0040\r
-#define EFI_PCI_BRIDGE_CONTROL_FAST_BACK_TO_BACK        0x0080\r
-#define EFI_PCI_BRIDGE_CONTROL_PRIMARY_DISCARD_TIMER    0x0100\r
-#define EFI_PCI_BRIDGE_CONTROL_SECONDARY_DISCARD_TIMER  0x0200\r
-#define EFI_PCI_BRIDGE_CONTROL_TIMER_STATUS             0x0400\r
-#define EFI_PCI_BRIDGE_CONTROL_DISCARD_TIMER_SERR       0x0800\r
-\r
-//\r
-// Following are the PCI-CARDBUS bridge control bit\r
-//\r
-#define EFI_PCI_BRIDGE_CONTROL_IREQINT_ENABLE       0x0080\r
-#define EFI_PCI_BRIDGE_CONTROL_RANGE0_MEMORY_TYPE   0x0100\r
-#define EFI_PCI_BRIDGE_CONTROL_RANGE1_MEMORY_TYPE   0x0200\r
-#define EFI_PCI_BRIDGE_CONTROL_WRITE_POSTING_ENABLE 0x0400\r
-\r
-//\r
-// Following are the PCI status control bit\r
-//\r
-#define EFI_PCI_STATUS_CAPABILITY             0x0010\r
-#define EFI_PCI_STATUS_66MZ_CAPABLE           0x0020\r
-#define EFI_PCI_FAST_BACK_TO_BACK_CAPABLE     0x0080\r
-#define EFI_PCI_MASTER_DATA_PARITY_ERROR      0x0100\r
-\r
-#define EFI_PCI_CAPABILITY_PTR                0x34\r
-#define EFI_PCI_CARDBUS_BRIDGE_CAPABILITY_PTR 0x14\r
-\r
-#pragma pack(1)\r
-typedef struct {\r
-  UINT16  Signature;    // 0xaa55\r
-  UINT8   Reserved[0x16];\r
-  UINT16  PcirOffset;\r
-} PCI_EXPANSION_ROM_HEADER;\r
-\r
-typedef struct {\r
-  UINT16  Signature;    // 0xaa55\r
-  UINT8   Size512;\r
-  UINT8   InitEntryPoint[3];\r
-  UINT8   Reserved[0x12];\r
-  UINT16  PcirOffset;\r
-} EFI_LEGACY_EXPANSION_ROM_HEADER;\r
-\r
-typedef struct {\r
-  UINT32  Signature;    // "PCIR"\r
-  UINT16  VendorId;\r
-  UINT16  DeviceId;\r
-  UINT16  Reserved0;\r
-  UINT16  Length;\r
-  UINT8   Revision;\r
-  UINT8   ClassCode[3];\r
-  UINT16  ImageLength;\r
-  UINT16  CodeRevision;\r
-  UINT8   CodeType;\r
-  UINT8   Indicator;\r
-  UINT16  Reserved1;\r
-} PCI_DATA_STRUCTURE;\r
-\r
-//\r
-// PCI Capability List IDs and records\r
-//\r
-#define EFI_PCI_CAPABILITY_ID_PMI     0x01\r
-#define EFI_PCI_CAPABILITY_ID_AGP     0x02\r
-#define EFI_PCI_CAPABILITY_ID_VPD     0x03\r
-#define EFI_PCI_CAPABILITY_ID_SLOTID  0x04\r
-#define EFI_PCI_CAPABILITY_ID_MSI     0x05\r
-#define EFI_PCI_CAPABILITY_ID_HOTPLUG 0x06\r
-#define EFI_PCI_CAPABILITY_ID_PCIX    0x07\r
-\r
-typedef struct {\r
-  UINT8 CapabilityID;\r
-  UINT8 NextItemPtr;\r
-} EFI_PCI_CAPABILITY_HDR;\r
-\r
-//\r
-// Capability EFI_PCI_CAPABILITY_ID_PMI\r
-//\r
-typedef struct {\r
-  EFI_PCI_CAPABILITY_HDR  Hdr;\r
-  UINT16                  PMC;\r
-  UINT16                  PMCSR;\r
-  UINT8                   BridgeExtention;\r
-  UINT8                   Data;\r
-} EFI_PCI_CAPABILITY_PMI;\r
-\r
-//\r
-// Capability EFI_PCI_CAPABILITY_ID_AGP\r
-//\r
-typedef struct {\r
-  EFI_PCI_CAPABILITY_HDR  Hdr;\r
-  UINT8                   Rev;\r
-  UINT8                   Reserved;\r
-  UINT32                  Status;\r
-  UINT32                  Command;\r
-} EFI_PCI_CAPABILITY_AGP;\r
-\r
-//\r
-// Capability EFI_PCI_CAPABILITY_ID_VPD\r
-//\r
-typedef struct {\r
-  EFI_PCI_CAPABILITY_HDR  Hdr;\r
-  UINT16                  AddrReg;\r
-  UINT32                  DataReg;\r
-} EFI_PCI_CAPABILITY_VPD;\r
-\r
-//\r
-// Capability EFI_PCI_CAPABILITY_ID_SLOTID\r
-//\r
-typedef struct {\r
-  EFI_PCI_CAPABILITY_HDR  Hdr;\r
-  UINT8                   ExpnsSlotReg;\r
-  UINT8                   ChassisNo;\r
-} EFI_PCI_CAPABILITY_SLOTID;\r
-\r
-//\r
-// Capability EFI_PCI_CAPABILITY_ID_MSI\r
-//\r
-typedef struct {\r
-  EFI_PCI_CAPABILITY_HDR  Hdr;\r
-  UINT16                  MsgCtrlReg;\r
-  UINT32                  MsgAddrReg;\r
-  UINT16                  MsgDataReg;\r
-} EFI_PCI_CAPABILITY_MSI32;\r
-\r
-typedef struct {\r
-  EFI_PCI_CAPABILITY_HDR  Hdr;\r
-  UINT16                  MsgCtrlReg;\r
-  UINT32                  MsgAddrRegLsdw;\r
-  UINT32                  MsgAddrRegMsdw;\r
-  UINT16                  MsgDataReg;\r
-} EFI_PCI_CAPABILITY_MSI64;\r
-\r
-//\r
-// Capability EFI_PCI_CAPABILITY_ID_HOTPLUG\r
-//\r
-typedef struct {\r
-  EFI_PCI_CAPABILITY_HDR  Hdr;\r
-  //\r
-  // not finished - fields need to go here\r
-  //\r
-} EFI_PCI_CAPABILITY_HOTPLUG;\r
-\r
-//\r
-// Capability EFI_PCI_CAPABILITY_ID_PCIX\r
-//\r
-typedef struct {\r
-  EFI_PCI_CAPABILITY_HDR  Hdr;\r
-  UINT16                  CommandReg;\r
-  UINT32                  StatusReg;\r
-} EFI_PCI_CAPABILITY_PCIX;\r
-\r
-typedef struct {\r
-  EFI_PCI_CAPABILITY_HDR  Hdr;\r
-  UINT16                  SecStatusReg;\r
-  UINT32                  StatusReg;\r
-  UINT32                  SplitTransCtrlRegUp;\r
-  UINT32                  SplitTransCtrlRegDn;\r
-} EFI_PCI_CAPABILITY_PCIX_BRDG;\r
-\r
-#define DEVICE_ID_NOCARE    0xFFFF\r
-\r
-#define PCI_ACPI_UNUSED     0\r
-#define PCI_BAR_NOCHANGE    0\r
-#define PCI_BAR_OLD_ALIGN   0xFFFFFFFFFFFFFFFFULL\r
-#define PCI_BAR_EVEN_ALIGN  0xFFFFFFFFFFFFFFFEULL\r
-#define PCI_BAR_SQUAD_ALIGN 0xFFFFFFFFFFFFFFFDULL\r
-#define PCI_BAR_DQUAD_ALIGN 0xFFFFFFFFFFFFFFFCULL\r
-\r
-#define PCI_BAR_IDX0        0x00\r
-#define PCI_BAR_IDX1        0x01\r
-#define PCI_BAR_IDX2        0x02\r
-#define PCI_BAR_IDX3        0x03\r
-#define PCI_BAR_IDX4        0x04\r
-#define PCI_BAR_IDX5        0x05\r
-#define PCI_BAR_ALL         0xFF\r
-\r
-#pragma pack(pop)\r
-\r
-//\r
-// NOTE: The following header files are included here for\r
-// compatibility consideration.\r
-//\r
-#include "pci23.h"\r
-#include "pci30.h"\r
-#include "EfiPci.h"\r
-\r
-#endif\r