• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /** @file
2   Support for EFI PCI specification.
3 
4   Copyright (c) 2006 - 2014, Intel Corporation. All rights reserved.<BR>
5 
6   This program and the accompanying materials are licensed and made available
7   under the terms and conditions of the BSD License which accompanies this
8   distribution.  The full text of the license may be found at
9   http://opensource.org/licenses/bsd-license.php
10 
11   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 
14 **/
15 
16 #ifndef _EFI_PCI_H_
17 #define _EFI_PCI_H_
18 
19 //#include "pci22.h"
20 //#include "pci23.h"
21 //#include "pci30.h"
22 
23 #pragma pack(push, 1)
24 
25 typedef struct {
26   UINT8 Register;
27   UINT8 Function;
28   UINT8 Device;
29   UINT8 Bus;
30   UINT8 Reserved[4];
31 } DEFIO_PCI_ADDR;
32 
33 #define EFI_ROOT_BRIDGE_LIST                            'eprb'
34 #define EFI_PCI_EXPANSION_ROM_HEADER_EFISIGNATURE       0x0EF1
35 
36 typedef struct {
37   UINT16  Signature;    // 0xaa55
38   UINT16  InitializationSize;
39   UINT32  EfiSignature; // 0x0EF1
40   UINT16  EfiSubsystem;
41   UINT16  EfiMachineType;
42   UINT16  CompressionType;
43   UINT8   Reserved[8];
44   UINT16  EfiImageHeaderOffset;
45   UINT16  PcirOffset;
46 } EFI_PCI_EXPANSION_ROM_HEADER;
47 
48 typedef union {
49   UINT8                           *Raw;
50   PCI_EXPANSION_ROM_HEADER        *Generic;
51   EFI_PCI_EXPANSION_ROM_HEADER    *Efi;
52   EFI_LEGACY_EXPANSION_ROM_HEADER *PcAt;
53 } EFI_PCI_ROM_HEADER;
54 
55 #pragma pack(pop)
56 
57 #endif
58