2 The incompatible PCI device list
4 Copyright (c) 2007 Intel Corporation. All rights reserved. <BR>
5 This software and associated documentation (if any) is furnished
6 under a license and may only be used or copied in accordance
7 with the terms of the license. Except as permitted by such
8 license, no part of this software or documentation may be
9 reproduced, stored in a retrieval system, or transmitted in any
10 form or by any means without the express written consent of
15 #ifndef _EFI_INCOMPATIBLE_PCI_DEVICE_LIST_H
16 #define _EFI_INCOMPATIBLE_PCI_DEVICE_LIST_H
19 // The package level header files this module uses
23 // The Library classes this module consumes
25 #include <Library/PciIncompatibleDeviceSupportLib.h>
26 #include <Library/MemoryAllocationLib.h>
27 #include <Library/DebugLib.h>
29 #include <IndustryStandard/pci22.h>
30 #include <IndustryStandard/Acpi.h>
33 #define PCI_DEVICE_ID(VendorId, DeviceId, Revision, SubVendorId, SubDeviceId) \
34 VendorId, DeviceId, Revision, SubVendorId, SubDeviceId
36 #define PCI_BAR_TYPE_IO ACPI_ADDRESS_SPACE_TYPE_IO
37 #define PCI_BAR_TYPE_MEM ACPI_ADDRESS_SPACE_TYPE_MEM
39 #define DEVICE_INF_TAG 0xFFF2
40 #define DEVICE_RES_TAG 0xFFF1
41 #define LIST_END_TAG 0x0000
44 // descriptor for access width of incompatible PCI device
49 EFI_PCI_REGISTER_ACCESS_DATA PciRegisterAccessData
;
50 } EFI_PCI_REGISTER_ACCESS_DESCRIPTOR
;
53 // descriptor for register value of incompatible PCI device
58 EFI_PCI_REGISTER_VALUE_DATA PciRegisterValueData
;
59 } EFI_PCI_REGISTER_VALUE_DESCRIPTOR
;
63 // the incompatible PCI devices list for ACPI resource
65 GLOBAL_REMOVE_IF_UNREFERENCED UINT64 IncompatiblePciDeviceListForResource
[] = {
68 // PCI_DEVICE_ID (VendorID, DeviceID, Revision, SubVendorId, SubDeviceId),
70 // ResType, GFlag , SFlag, Granularity, RangeMin,
71 // RangeMax, Offset, AddrLen
74 // Device Adaptec 9004
77 PCI_DEVICE_ID(0x9004, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
),
88 // Device Adaptec 9005
91 PCI_DEVICE_ID(0x9005, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
),
102 // Device QLogic 1007
105 PCI_DEVICE_ID(0x1077, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
),
116 // Device Agilent 103C
119 PCI_DEVICE_ID(0x103C, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
),
130 // Device Agilent 15BC
133 PCI_DEVICE_ID(0x15BC, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
),
144 // The end of the list
150 // the incompatible PCI devices list for the values of configuration registers
152 GLOBAL_REMOVE_IF_UNREFERENCED UINT64 IncompatiblePciDeviceListForRegister
[] = {
155 // PCI_DEVICE_ID (VendorID, DeviceID, Revision, SubVendorId, SubDeviceId),
157 // PCI_ACCESS_TYPE, PCI_CONFIG_ADDRESS,
158 // AND_VALUE, OR_VALUE
161 // Device Lava 0x1407, DeviceId 0x0110
164 PCI_DEVICE_ID(0x1407, 0x0110, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
),
167 PCI_CAPBILITY_POINTER_OFFSET
,
172 // Device Lava 0x1407, DeviceId 0x0111
175 PCI_DEVICE_ID(0x1407, 0x0111, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
),
178 PCI_CAPBILITY_POINTER_OFFSET
,
183 // The end of the list
189 // the incompatible PCI devices list for the access width of configuration registers
191 GLOBAL_REMOVE_IF_UNREFERENCED UINT64 DeviceListForAccessWidth
[] = {
194 // PCI_DEVICE_ID (VendorID, DeviceID, Revision, SubVendorId, SubDeviceId),
196 // PCI_ACCESS_TYPE, PCI_ACCESS_WIDTH,
197 // START_ADDRESS, END_ADDRESS,
198 // ACTUAL_PCI_ACCESS_WIDTH,
205 //PCI_DEVICE_ID(0xXXXX, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE),
215 // The end of the list