]> git.proxmox.com Git - mirror_edk2.git/blame - IntelFrameworkModulePkg/Library/PciIncompatibleDeviceSupportLib/IncompatiblePciDeviceList.h
IntelFrameworkModulePkg/
[mirror_edk2.git] / IntelFrameworkModulePkg / Library / PciIncompatibleDeviceSupportLib / IncompatiblePciDeviceList.h
CommitLineData
54bd896e 1/** @file\r
2 The incompatible PCI device list\r
3\r
53bd6e4c 4Copyright (c) 2006 - 2007, Intel Corporation \r
5All rights reserved. This program and the accompanying materials \r
6are licensed and made available under the terms and conditions of the BSD License \r
7which accompanies this distribution. The full text of the license may be found at \r
8http://opensource.org/licenses/bsd-license.php \r
9 \r
10THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
11WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
54bd896e 12\r
13**/\r
14\r
15#ifndef _EFI_INCOMPATIBLE_PCI_DEVICE_LIST_H\r
16#define _EFI_INCOMPATIBLE_PCI_DEVICE_LIST_H\r
17\r
ed7748fe 18\r
a97a7e79 19#include <PiDxe.h>\r
ed7748fe 20\r
a97a7e79 21#include <Library/PciIncompatibleDeviceSupportLib.h>\r
22#include <Library/MemoryAllocationLib.h>\r
23#include <Library/DebugLib.h>\r
54bd896e 24\r
c05d0125 25#include <IndustryStandard/Pci22.h>\r
54bd896e 26#include <IndustryStandard/Acpi.h>\r
27\r
28\r
29#define PCI_DEVICE_ID(VendorId, DeviceId, Revision, SubVendorId, SubDeviceId) \\r
30 VendorId, DeviceId, Revision, SubVendorId, SubDeviceId\r
31\r
32#define PCI_BAR_TYPE_IO ACPI_ADDRESS_SPACE_TYPE_IO\r
33#define PCI_BAR_TYPE_MEM ACPI_ADDRESS_SPACE_TYPE_MEM\r
34\r
35#define DEVICE_INF_TAG 0xFFF2\r
36#define DEVICE_RES_TAG 0xFFF1\r
37#define LIST_END_TAG 0x0000\r
38\r
39//\r
40// descriptor for access width of incompatible PCI device\r
41//\r
42typedef struct {\r
43 UINT64 AccessType;\r
44 UINT64 AccessWidth;\r
45 EFI_PCI_REGISTER_ACCESS_DATA PciRegisterAccessData;\r
46} EFI_PCI_REGISTER_ACCESS_DESCRIPTOR;\r
47\r
48//\r
49// descriptor for register value of incompatible PCI device\r
50//\r
51typedef struct {\r
52 UINT64 AccessType;\r
53 UINT64 Offset;\r
54 EFI_PCI_REGISTER_VALUE_DATA PciRegisterValueData;\r
55} EFI_PCI_REGISTER_VALUE_DESCRIPTOR;\r
56\r
57\r
58//\r
59// the incompatible PCI devices list for ACPI resource\r
60//\r
61GLOBAL_REMOVE_IF_UNREFERENCED UINT64 IncompatiblePciDeviceListForResource[] = {\r
62 //\r
63 // DEVICE_INF_TAG,\r
64 // PCI_DEVICE_ID (VendorID, DeviceID, Revision, SubVendorId, SubDeviceId),\r
65 // DEVICE_RES_TAG,\r
66 // ResType, GFlag , SFlag, Granularity, RangeMin,\r
67 // RangeMax, Offset, AddrLen\r
68 //\r
69 //\r
70 // Device Adaptec 9004\r
71 //\r
72 DEVICE_INF_TAG,\r
73 PCI_DEVICE_ID(0x9004, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE),\r
74 DEVICE_RES_TAG,\r
75 PCI_BAR_TYPE_IO,\r
76 PCI_ACPI_UNUSED,\r
77 PCI_ACPI_UNUSED,\r
78 PCI_ACPI_UNUSED,\r
79 PCI_ACPI_UNUSED,\r
80 PCI_BAR_EVEN_ALIGN,\r
81 PCI_BAR_ALL,\r
82 PCI_BAR_NOCHANGE,\r
83 //\r
84 // Device Adaptec 9005\r
85 //\r
86 DEVICE_INF_TAG,\r
87 PCI_DEVICE_ID(0x9005, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE),\r
88 DEVICE_RES_TAG,\r
89 PCI_BAR_TYPE_IO,\r
90 PCI_ACPI_UNUSED,\r
91 PCI_ACPI_UNUSED,\r
92 PCI_ACPI_UNUSED,\r
93 PCI_ACPI_UNUSED,\r
94 PCI_BAR_EVEN_ALIGN,\r
95 PCI_BAR_ALL,\r
96 PCI_BAR_NOCHANGE,\r
97 //\r
98 // Device QLogic 1007\r
99 //\r
100 DEVICE_INF_TAG,\r
101 PCI_DEVICE_ID(0x1077, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE),\r
102 DEVICE_RES_TAG,\r
103 PCI_BAR_TYPE_IO,\r
104 PCI_ACPI_UNUSED,\r
105 PCI_ACPI_UNUSED,\r
106 PCI_ACPI_UNUSED,\r
107 PCI_ACPI_UNUSED,\r
108 PCI_BAR_EVEN_ALIGN,\r
109 PCI_BAR_ALL,\r
110 PCI_BAR_NOCHANGE,\r
111 //\r
112 // Device Agilent 103C\r
113 //\r
114 DEVICE_INF_TAG,\r
115 PCI_DEVICE_ID(0x103C, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE),\r
116 DEVICE_RES_TAG,\r
117 PCI_BAR_TYPE_IO,\r
118 PCI_ACPI_UNUSED,\r
119 PCI_ACPI_UNUSED,\r
120 PCI_ACPI_UNUSED,\r
121 PCI_ACPI_UNUSED,\r
122 PCI_BAR_EVEN_ALIGN,\r
123 PCI_BAR_ALL,\r
124 PCI_BAR_NOCHANGE,\r
125 //\r
126 // Device Agilent 15BC\r
127 //\r
128 DEVICE_INF_TAG,\r
129 PCI_DEVICE_ID(0x15BC, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE),\r
130 DEVICE_RES_TAG,\r
131 PCI_BAR_TYPE_IO,\r
132 PCI_ACPI_UNUSED,\r
133 PCI_ACPI_UNUSED,\r
134 PCI_ACPI_UNUSED,\r
135 PCI_ACPI_UNUSED,\r
136 PCI_BAR_EVEN_ALIGN,\r
137 PCI_BAR_ALL,\r
138 PCI_BAR_NOCHANGE,\r
139 //\r
140 // The end of the list\r
141 //\r
142 LIST_END_TAG\r
143};\r
144\r
145//\r
146// the incompatible PCI devices list for the values of configuration registers\r
147//\r
148GLOBAL_REMOVE_IF_UNREFERENCED UINT64 IncompatiblePciDeviceListForRegister[] = {\r
149 //\r
150 // DEVICE_INF_TAG,\r
151 // PCI_DEVICE_ID (VendorID, DeviceID, Revision, SubVendorId, SubDeviceId),\r
152 // PCI_RES_TAG,\r
153 // PCI_ACCESS_TYPE, PCI_CONFIG_ADDRESS,\r
154 // AND_VALUE, OR_VALUE\r
155\r
156 //\r
157 // Device Lava 0x1407, DeviceId 0x0110\r
158 //\r
159 DEVICE_INF_TAG,\r
160 PCI_DEVICE_ID(0x1407, 0x0110, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE),\r
161 DEVICE_RES_TAG,\r
162 PCI_REGISTER_READ,\r
163 PCI_CAPBILITY_POINTER_OFFSET,\r
164 0xffffff00,\r
165 VALUE_NOCARE,\r
166\r
167 //\r
168 // Device Lava 0x1407, DeviceId 0x0111\r
169 //\r
170 DEVICE_INF_TAG,\r
171 PCI_DEVICE_ID(0x1407, 0x0111, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE),\r
172 DEVICE_RES_TAG,\r
173 PCI_REGISTER_READ,\r
174 PCI_CAPBILITY_POINTER_OFFSET,\r
175 0xffffff00,\r
176 VALUE_NOCARE,\r
177\r
178 //\r
179 // The end of the list\r
180 //\r
181 LIST_END_TAG\r
182};\r
183\r
184//\r
185// the incompatible PCI devices list for the access width of configuration registers\r
186//\r
187GLOBAL_REMOVE_IF_UNREFERENCED UINT64 DeviceListForAccessWidth[] = {\r
188 //\r
189 // DEVICE_INF_TAG,\r
190 // PCI_DEVICE_ID (VendorID, DeviceID, Revision, SubVendorId, SubDeviceId),\r
191 // DEVICE_RES_TAG,\r
192 // PCI_ACCESS_TYPE, PCI_ACCESS_WIDTH,\r
193 // START_ADDRESS, END_ADDRESS,\r
194 // ACTUAL_PCI_ACCESS_WIDTH,\r
195 //\r
196\r
197 //\r
198 // Sample Device\r
199 //\r
200 //DEVICE_INF_TAG,\r
201 //PCI_DEVICE_ID(0xXXXX, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE),\r
202 //DEVICE_RES_TAG,\r
203 //PCI_REGISTER_READ,\r
204 //EfiPciWidthUint8,\r
205 //0,\r
206 //0xFF,\r
207 //EfiPciWidthUint32,\r
208 //\r
209\r
210 //\r
211 // The end of the list\r
212 //\r
213 LIST_END_TAG\r
214};\r
215\r
216#endif\r