This check-in add Pci23.h, Pci30.h, EfiPci.h and take those originally put in Pci22.h to their proper position in the new files.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1907 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
cwu11 2006-11-07 03:02:33 +00:00
parent 7228815241
commit b51f14f4d6
8 changed files with 273 additions and 92 deletions

View File

@ -0,0 +1,58 @@
/** @file
Support for EFI PCI specification.
Copyright (c) 2006, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name: EfiPci.h
**/
#ifndef _EFI_PCI_H_
#define _EFI_PCI_H_
//#include "pci22.h"
//#include "pci23.h"
//#include "pci30.h"
#pragma pack(push, 1)
typedef struct {
UINT8 Register;
UINT8 Function;
UINT8 Device;
UINT8 Bus;
UINT8 Reserved[4];
} DEFIO_PCI_ADDR;
#define EFI_ROOT_BRIDGE_LIST 'eprb'
#define EFI_PCI_EXPANSION_ROM_HEADER_EFISIGNATURE 0x0EF1
typedef struct {
UINT16 Signature; // 0xaa55
UINT16 InitializationSize;
UINT32 EfiSignature; // 0x0EF1
UINT16 EfiSubsystem;
UINT16 EfiMachineType;
UINT16 CompressionType;
UINT8 Reserved[8];
UINT16 EfiImageHeaderOffset;
UINT16 PcirOffset;
} EFI_PCI_EXPANSION_ROM_HEADER;
typedef union {
UINT8 *Raw;
PCI_EXPANSION_ROM_HEADER *Generic;
EFI_PCI_EXPANSION_ROM_HEADER *Efi;
EFI_LEGACY_EXPANSION_ROM_HEADER *PcAt;
} EFI_PCI_ROM_HEADER;
#pragma pack(pop)
#endif

View File

@ -288,10 +288,6 @@ typedef struct {
#define PCI_MAX_BAR 0x0006 #define PCI_MAX_BAR 0x0006
#define PCI_MAX_CONFIG_OFFSET 0x0100 #define PCI_MAX_CONFIG_OFFSET 0x0100
//
// bugbug: this is supported in PCI spec v2.3
//
#define PCI_EXP_MAX_CONFIG_OFFSET 0x1000
#define PCI_VENDOR_ID_OFFSET 0x00 #define PCI_VENDOR_ID_OFFSET 0x00
#define PCI_DEVICE_ID_OFFSET 0x02 #define PCI_DEVICE_ID_OFFSET 0x02
@ -323,14 +319,6 @@ typedef struct {
#define PCI_BRIDGE_SECONDARY_BUS_REGISTER_OFFSET 0x19 #define PCI_BRIDGE_SECONDARY_BUS_REGISTER_OFFSET 0x19
#define PCI_BRIDGE_SUBORDINATE_BUS_REGISTER_OFFSET 0x1a #define PCI_BRIDGE_SUBORDINATE_BUS_REGISTER_OFFSET 0x1a
typedef struct {
UINT8 Register;
UINT8 Function;
UINT8 Device;
UINT8 Bus;
UINT8 Reserved[4];
} DEFIO_PCI_ADDR;
typedef union { typedef union {
struct { struct {
UINT32 Reg : 8; UINT32 Reg : 8;
@ -345,9 +333,7 @@ typedef union {
#pragma pack() #pragma pack()
#define EFI_ROOT_BRIDGE_LIST 'eprb'
#define PCI_EXPANSION_ROM_HEADER_SIGNATURE 0xaa55 #define PCI_EXPANSION_ROM_HEADER_SIGNATURE 0xaa55
#define EFI_PCI_EXPANSION_ROM_HEADER_EFISIGNATURE 0x0EF1
#define PCI_DATA_STRUCTURE_SIGNATURE EFI_SIGNATURE_32 ('P', 'C', 'I', 'R') #define PCI_DATA_STRUCTURE_SIGNATURE EFI_SIGNATURE_32 ('P', 'C', 'I', 'R')
#define PCI_CODE_TYPE_PCAT_IMAGE 0x00 #define PCI_CODE_TYPE_PCAT_IMAGE 0x00
#define PCI_CODE_TYPE_EFI_IMAGE 0x03 #define PCI_CODE_TYPE_EFI_IMAGE 0x03
@ -403,18 +389,6 @@ typedef struct {
UINT16 PcirOffset; UINT16 PcirOffset;
} PCI_EXPANSION_ROM_HEADER; } PCI_EXPANSION_ROM_HEADER;
typedef struct {
UINT16 Signature; // 0xaa55
UINT16 InitializationSize;
UINT32 EfiSignature; // 0x0EF1
UINT16 EfiSubsystem;
UINT16 EfiMachineType;
UINT16 CompressionType;
UINT8 Reserved[8];
UINT16 EfiImageHeaderOffset;
UINT16 PcirOffset;
} EFI_PCI_EXPANSION_ROM_HEADER;
typedef struct { typedef struct {
UINT16 Signature; // 0xaa55 UINT16 Signature; // 0xaa55
UINT8 Size512; UINT8 Size512;
@ -423,13 +397,6 @@ typedef struct {
UINT16 PcirOffset; UINT16 PcirOffset;
} EFI_LEGACY_EXPANSION_ROM_HEADER; } EFI_LEGACY_EXPANSION_ROM_HEADER;
typedef union {
UINT8 *Raw;
PCI_EXPANSION_ROM_HEADER *Generic;
EFI_PCI_EXPANSION_ROM_HEADER *Efi;
EFI_LEGACY_EXPANSION_ROM_HEADER *PcAt;
} EFI_PCI_ROM_HEADER;
typedef struct { typedef struct {
UINT32 Signature; // "PCIR" UINT32 Signature; // "PCIR"
UINT16 VendorId; UINT16 VendorId;
@ -445,23 +412,6 @@ typedef struct {
UINT16 Reserved1; UINT16 Reserved1;
} PCI_DATA_STRUCTURE; } PCI_DATA_STRUCTURE;
typedef struct {
UINT32 Signature; // "PCIR"
UINT16 VendorId;
UINT16 DeviceId;
UINT16 DeviceListOffset;
UINT16 Length;
UINT8 Revision;
UINT8 ClassCode[3];
UINT16 ImageLength;
UINT16 CodeRevision;
UINT8 CodeType;
UINT8 Indicator;
UINT16 MaxRuntimeImageLength;
UINT16 ConfigUtilityCodeHeaderOffset;
UINT16 DMTFCLPEntryPointOffset;
} PCI_3_0_DATA_STRUCTURE;
// //
// PCI Capability List IDs and records // PCI Capability List IDs and records
// //
@ -472,10 +422,6 @@ typedef struct {
#define EFI_PCI_CAPABILITY_ID_MSI 0x05 #define EFI_PCI_CAPABILITY_ID_MSI 0x05
#define EFI_PCI_CAPABILITY_ID_HOTPLUG 0x06 #define EFI_PCI_CAPABILITY_ID_HOTPLUG 0x06
#define EFI_PCI_CAPABILITY_ID_PCIX 0x07 #define EFI_PCI_CAPABILITY_ID_PCIX 0x07
//
// bugbug: this ID is defined in PCI spec v2.3
//
#define EFI_PCI_CAPABILITY_ID_PCIEXP 0x10
typedef struct { typedef struct {
UINT8 CapabilityID; UINT8 CapabilityID;
@ -586,4 +532,12 @@ typedef struct {
#pragma pack(pop) #pragma pack(pop)
//
// NOTE: The following header files are included here for
// compatibility consideration.
//
#include "pci23.h"
#include "pci30.h"
#include "EfiPci.h"
#endif #endif

View File

@ -0,0 +1,25 @@
/** @file
Support for PCI 2.3 standard.
Copyright (c) 2006, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name: pci23.h
**/
#ifndef _PCI23_H
#define _PCI23_H
//#include "pci22.h"
#define PCI_EXP_MAX_CONFIG_OFFSET 0x1000
#define EFI_PCI_CAPABILITY_ID_PCIEXP 0x10
#endif

View File

@ -0,0 +1,45 @@
/** @file
Support for PCI 3.0 standard.
Copyright (c) 2006, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name: pci30.h
**/
#ifndef _PCI30_H
#define _PCI30_H
//#include "pci23.h"
#define PCI_CLASS_MASS_STORAGE_SATADPA 0x06
#pragma pack(push, 1)
typedef struct {
UINT32 Signature; // "PCIR"
UINT16 VendorId;
UINT16 DeviceId;
UINT16 DeviceListOffset;
UINT16 Length;
UINT8 Revision;
UINT8 ClassCode[3];
UINT16 ImageLength;
UINT16 CodeRevision;
UINT8 CodeType;
UINT8 Indicator;
UINT16 MaxRuntimeImageLength;
UINT16 ConfigUtilityCodeHeaderOffset;
UINT16 DMTFCLPEntryPointOffset;
} PCI_3_0_DATA_STRUCTURE;
#pragma pack(pop)
#endif

View File

@ -0,0 +1,58 @@
/** @file
Support for EFI PCI specification.
Copyright (c) 2006, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name: EfiPci.h
**/
#ifndef _EFI_PCI_H_
#define _EFI_PCI_H_
//#include "pci22.h"
//#include "pci23.h"
//#include "pci30.h"
#pragma pack(push, 1)
typedef struct {
UINT8 Register;
UINT8 Function;
UINT8 Device;
UINT8 Bus;
UINT8 Reserved[4];
} DEFIO_PCI_ADDR;
#define EFI_ROOT_BRIDGE_LIST 'eprb'
#define EFI_PCI_EXPANSION_ROM_HEADER_EFISIGNATURE 0x0EF1
typedef struct {
UINT16 Signature; // 0xaa55
UINT16 InitializationSize;
UINT32 EfiSignature; // 0x0EF1
UINT16 EfiSubsystem;
UINT16 EfiMachineType;
UINT16 CompressionType;
UINT8 Reserved[8];
UINT16 EfiImageHeaderOffset;
UINT16 PcirOffset;
} EFI_PCI_EXPANSION_ROM_HEADER;
typedef union {
UINT8 *Raw;
PCI_EXPANSION_ROM_HEADER *Generic;
EFI_PCI_EXPANSION_ROM_HEADER *Efi;
EFI_LEGACY_EXPANSION_ROM_HEADER *PcAt;
} EFI_PCI_ROM_HEADER;
#pragma pack(pop)
#endif

View File

@ -288,10 +288,6 @@ typedef struct {
#define PCI_MAX_BAR 0x0006 #define PCI_MAX_BAR 0x0006
#define PCI_MAX_CONFIG_OFFSET 0x0100 #define PCI_MAX_CONFIG_OFFSET 0x0100
//
// bugbug: this is supported in PCI spec v2.3
//
#define PCI_EXP_MAX_CONFIG_OFFSET 0x1000
#define PCI_VENDOR_ID_OFFSET 0x00 #define PCI_VENDOR_ID_OFFSET 0x00
#define PCI_DEVICE_ID_OFFSET 0x02 #define PCI_DEVICE_ID_OFFSET 0x02
@ -323,14 +319,6 @@ typedef struct {
#define PCI_BRIDGE_SECONDARY_BUS_REGISTER_OFFSET 0x19 #define PCI_BRIDGE_SECONDARY_BUS_REGISTER_OFFSET 0x19
#define PCI_BRIDGE_SUBORDINATE_BUS_REGISTER_OFFSET 0x1a #define PCI_BRIDGE_SUBORDINATE_BUS_REGISTER_OFFSET 0x1a
typedef struct {
UINT8 Register;
UINT8 Function;
UINT8 Device;
UINT8 Bus;
UINT8 Reserved[4];
} DEFIO_PCI_ADDR;
typedef union { typedef union {
struct { struct {
UINT32 Reg : 8; UINT32 Reg : 8;
@ -345,9 +333,7 @@ typedef union {
#pragma pack() #pragma pack()
#define EFI_ROOT_BRIDGE_LIST 'eprb'
#define PCI_EXPANSION_ROM_HEADER_SIGNATURE 0xaa55 #define PCI_EXPANSION_ROM_HEADER_SIGNATURE 0xaa55
#define EFI_PCI_EXPANSION_ROM_HEADER_EFISIGNATURE 0x0EF1
#define PCI_DATA_STRUCTURE_SIGNATURE EFI_SIGNATURE_32 ('P', 'C', 'I', 'R') #define PCI_DATA_STRUCTURE_SIGNATURE EFI_SIGNATURE_32 ('P', 'C', 'I', 'R')
#define PCI_CODE_TYPE_PCAT_IMAGE 0x00 #define PCI_CODE_TYPE_PCAT_IMAGE 0x00
#define PCI_CODE_TYPE_EFI_IMAGE 0x03 #define PCI_CODE_TYPE_EFI_IMAGE 0x03
@ -403,18 +389,6 @@ typedef struct {
UINT16 PcirOffset; UINT16 PcirOffset;
} PCI_EXPANSION_ROM_HEADER; } PCI_EXPANSION_ROM_HEADER;
typedef struct {
UINT16 Signature; // 0xaa55
UINT16 InitializationSize;
UINT32 EfiSignature; // 0x0EF1
UINT16 EfiSubsystem;
UINT16 EfiMachineType;
UINT16 CompressionType;
UINT8 Reserved[8];
UINT16 EfiImageHeaderOffset;
UINT16 PcirOffset;
} EFI_PCI_EXPANSION_ROM_HEADER;
typedef struct { typedef struct {
UINT16 Signature; // 0xaa55 UINT16 Signature; // 0xaa55
UINT8 Size512; UINT8 Size512;
@ -423,13 +397,6 @@ typedef struct {
UINT16 PcirOffset; UINT16 PcirOffset;
} EFI_LEGACY_EXPANSION_ROM_HEADER; } EFI_LEGACY_EXPANSION_ROM_HEADER;
typedef union {
UINT8 *Raw;
PCI_EXPANSION_ROM_HEADER *Generic;
EFI_PCI_EXPANSION_ROM_HEADER *Efi;
EFI_LEGACY_EXPANSION_ROM_HEADER *PcAt;
} EFI_PCI_ROM_HEADER;
typedef struct { typedef struct {
UINT32 Signature; // "PCIR" UINT32 Signature; // "PCIR"
UINT16 VendorId; UINT16 VendorId;
@ -455,10 +422,6 @@ typedef struct {
#define EFI_PCI_CAPABILITY_ID_MSI 0x05 #define EFI_PCI_CAPABILITY_ID_MSI 0x05
#define EFI_PCI_CAPABILITY_ID_HOTPLUG 0x06 #define EFI_PCI_CAPABILITY_ID_HOTPLUG 0x06
#define EFI_PCI_CAPABILITY_ID_PCIX 0x07 #define EFI_PCI_CAPABILITY_ID_PCIX 0x07
//
// bugbug: this ID is defined in PCI spec v2.3
//
#define EFI_PCI_CAPABILITY_ID_PCIEXP 0x10
typedef struct { typedef struct {
UINT8 CapabilityID; UINT8 CapabilityID;
@ -569,4 +532,12 @@ typedef struct {
#pragma pack(pop) #pragma pack(pop)
//
// NOTE: The following header files are included here for
// compatibility consideration.
//
#include "pci23.h"
#include "pci30.h"
#include "EfiPci.h"
#endif #endif

View File

@ -0,0 +1,25 @@
/** @file
Support for PCI 2.3 standard.
Copyright (c) 2006, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name: pci23.h
**/
#ifndef _PCI23_H
#define _PCI23_H
//#include "pci22.h"
#define PCI_EXP_MAX_CONFIG_OFFSET 0x1000
#define EFI_PCI_CAPABILITY_ID_PCIEXP 0x10
#endif

View File

@ -0,0 +1,45 @@
/** @file
Support for PCI 3.0 standard.
Copyright (c) 2006, Intel Corporation
All rights reserved. This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
http://opensource.org/licenses/bsd-license.php
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
Module Name: pci30.h
**/
#ifndef _PCI30_H
#define _PCI30_H
//#include "pci23.h"
#define PCI_CLASS_MASS_STORAGE_SATADPA 0x06
#pragma pack(push, 1)
typedef struct {
UINT32 Signature; // "PCIR"
UINT16 VendorId;
UINT16 DeviceId;
UINT16 DeviceListOffset;
UINT16 Length;
UINT8 Revision;
UINT8 ClassCode[3];
UINT16 ImageLength;
UINT16 CodeRevision;
UINT8 CodeType;
UINT8 Indicator;
UINT16 MaxRuntimeImageLength;
UINT16 ConfigUtilityCodeHeaderOffset;
UINT16 DMTFCLPEntryPointOffset;
} PCI_3_0_DATA_STRUCTURE;
#pragma pack(pop)
#endif