2 The incompatible PCI device list
4 Copyright (c) 2006 - 2007, Intel Corporation
5 All rights reserved. This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this distribution. The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
15 #ifndef _EFI_INCOMPATIBLE_PCI_DEVICE_LIST_H
16 #define _EFI_INCOMPATIBLE_PCI_DEVICE_LIST_H
21 #include <Library/PciIncompatibleDeviceSupportLib.h>
22 #include <Library/MemoryAllocationLib.h>
23 #include <Library/DebugLib.h>
25 #include <IndustryStandard/Pci22.h>
26 #include <IndustryStandard/Acpi.h>
29 #define PCI_DEVICE_ID(VendorId, DeviceId, Revision, SubVendorId, SubDeviceId) \
30 VendorId, DeviceId, Revision, SubVendorId, SubDeviceId
32 #define PCI_BAR_TYPE_IO ACPI_ADDRESS_SPACE_TYPE_IO
33 #define PCI_BAR_TYPE_MEM ACPI_ADDRESS_SPACE_TYPE_MEM
35 #define DEVICE_INF_TAG 0xFFF2
36 #define DEVICE_RES_TAG 0xFFF1
37 #define LIST_END_TAG 0x0000
40 // descriptor for access width of incompatible PCI device
45 EFI_PCI_REGISTER_ACCESS_DATA PciRegisterAccessData
;
46 } EFI_PCI_REGISTER_ACCESS_DESCRIPTOR
;
49 // descriptor for register value of incompatible PCI device
54 EFI_PCI_REGISTER_VALUE_DATA PciRegisterValueData
;
55 } EFI_PCI_REGISTER_VALUE_DESCRIPTOR
;
59 // the incompatible PCI devices list for ACPI resource
61 GLOBAL_REMOVE_IF_UNREFERENCED UINT64 IncompatiblePciDeviceListForResource
[] = {
64 // PCI_DEVICE_ID (VendorID, DeviceID, Revision, SubVendorId, SubDeviceId),
66 // ResType, GFlag , SFlag, Granularity, RangeMin,
67 // RangeMax, Offset, AddrLen
70 // Device Adaptec 9004
73 PCI_DEVICE_ID(0x9004, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
),
84 // Device Adaptec 9005
87 PCI_DEVICE_ID(0x9005, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
),
101 PCI_DEVICE_ID(0x1077, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
),
112 // Device Agilent 103C
115 PCI_DEVICE_ID(0x103C, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
),
126 // Device Agilent 15BC
129 PCI_DEVICE_ID(0x15BC, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
),
140 // The end of the list
146 // the incompatible PCI devices list for the values of configuration registers
148 GLOBAL_REMOVE_IF_UNREFERENCED UINT64 IncompatiblePciDeviceListForRegister
[] = {
151 // PCI_DEVICE_ID (VendorID, DeviceID, Revision, SubVendorId, SubDeviceId),
153 // PCI_ACCESS_TYPE, PCI_CONFIG_ADDRESS,
154 // AND_VALUE, OR_VALUE
157 // Device Lava 0x1407, DeviceId 0x0110
160 PCI_DEVICE_ID(0x1407, 0x0110, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
),
163 PCI_CAPBILITY_POINTER_OFFSET
,
168 // Device Lava 0x1407, DeviceId 0x0111
171 PCI_DEVICE_ID(0x1407, 0x0111, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
, DEVICE_ID_NOCARE
),
174 PCI_CAPBILITY_POINTER_OFFSET
,
179 // The end of the list
185 // the incompatible PCI devices list for the access width of configuration registers
187 GLOBAL_REMOVE_IF_UNREFERENCED UINT64 DeviceListForAccessWidth
[] = {
190 // PCI_DEVICE_ID (VendorID, DeviceID, Revision, SubVendorId, SubDeviceId),
192 // PCI_ACCESS_TYPE, PCI_ACCESS_WIDTH,
193 // START_ADDRESS, END_ADDRESS,
194 // ACTUAL_PCI_ACCESS_WIDTH,
201 //PCI_DEVICE_ID(0xXXXX, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE),
211 // The end of the list