2. INF file header description reviewed; 3. remove useless #include ; git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8162 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			214 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			214 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   The incompatible PCI device list
 | |
| 
 | |
| Copyright (c) 2006 - 2007, 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.  
 | |
| 
 | |
| **/
 | |
| 
 | |
| #ifndef _EFI_INCOMPATIBLE_PCI_DEVICE_LIST_H
 | |
| #define _EFI_INCOMPATIBLE_PCI_DEVICE_LIST_H
 | |
| 
 | |
| #include <Library/PciIncompatibleDeviceSupportLib.h>
 | |
| #include <Library/MemoryAllocationLib.h>
 | |
| #include <Library/DebugLib.h>
 | |
| 
 | |
| #include <IndustryStandard/Pci22.h>
 | |
| #include <IndustryStandard/Acpi.h>
 | |
| 
 | |
| 
 | |
| #define PCI_DEVICE_ID(VendorId, DeviceId, Revision, SubVendorId, SubDeviceId) \
 | |
|     VendorId, DeviceId, Revision, SubVendorId, SubDeviceId
 | |
| 
 | |
| #define PCI_BAR_TYPE_IO   ACPI_ADDRESS_SPACE_TYPE_IO
 | |
| #define PCI_BAR_TYPE_MEM  ACPI_ADDRESS_SPACE_TYPE_MEM
 | |
| 
 | |
| #define DEVICE_INF_TAG    0xFFF2
 | |
| #define DEVICE_RES_TAG    0xFFF1
 | |
| #define LIST_END_TAG      0x0000
 | |
| 
 | |
| //
 | |
| // descriptor for access width of incompatible PCI device
 | |
| //
 | |
| typedef struct {
 | |
|   UINT64                         AccessType;
 | |
|   UINT64                         AccessWidth;
 | |
|   EFI_PCI_REGISTER_ACCESS_DATA   PciRegisterAccessData;
 | |
| } EFI_PCI_REGISTER_ACCESS_DESCRIPTOR;
 | |
| 
 | |
| //
 | |
| // descriptor for register value of incompatible PCI device
 | |
| //
 | |
| typedef struct {
 | |
|   UINT64                         AccessType;
 | |
|   UINT64                         Offset;
 | |
|   EFI_PCI_REGISTER_VALUE_DATA    PciRegisterValueData;
 | |
| } EFI_PCI_REGISTER_VALUE_DESCRIPTOR;
 | |
| 
 | |
| 
 | |
| //
 | |
| // the incompatible PCI devices list for ACPI resource
 | |
| //
 | |
| GLOBAL_REMOVE_IF_UNREFERENCED UINT64 IncompatiblePciDeviceListForResource[] = {
 | |
|   //
 | |
|   // DEVICE_INF_TAG,
 | |
|   // PCI_DEVICE_ID (VendorID, DeviceID, Revision, SubVendorId, SubDeviceId),
 | |
|   // DEVICE_RES_TAG,
 | |
|   // ResType,  GFlag , SFlag,   Granularity,  RangeMin,
 | |
|   // RangeMax, Offset, AddrLen
 | |
|   //
 | |
|   //
 | |
|   // Device Adaptec 9004
 | |
|   //
 | |
|   DEVICE_INF_TAG,
 | |
|   PCI_DEVICE_ID(0x9004, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE),
 | |
|   DEVICE_RES_TAG,
 | |
|   PCI_BAR_TYPE_IO,
 | |
|   PCI_ACPI_UNUSED,
 | |
|   PCI_ACPI_UNUSED,
 | |
|   PCI_ACPI_UNUSED,
 | |
|   PCI_ACPI_UNUSED,
 | |
|   PCI_BAR_EVEN_ALIGN,
 | |
|   PCI_BAR_ALL,
 | |
|   PCI_BAR_NOCHANGE,
 | |
|   //
 | |
|   // Device Adaptec 9005
 | |
|   //
 | |
|   DEVICE_INF_TAG,
 | |
|   PCI_DEVICE_ID(0x9005, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE),
 | |
|   DEVICE_RES_TAG,
 | |
|   PCI_BAR_TYPE_IO,
 | |
|   PCI_ACPI_UNUSED,
 | |
|   PCI_ACPI_UNUSED,
 | |
|   PCI_ACPI_UNUSED,
 | |
|   PCI_ACPI_UNUSED,
 | |
|   PCI_BAR_EVEN_ALIGN,
 | |
|   PCI_BAR_ALL,
 | |
|   PCI_BAR_NOCHANGE,
 | |
|   //
 | |
|   // Device QLogic  1007
 | |
|   //
 | |
|   DEVICE_INF_TAG,
 | |
|   PCI_DEVICE_ID(0x1077, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE),
 | |
|   DEVICE_RES_TAG,
 | |
|   PCI_BAR_TYPE_IO,
 | |
|   PCI_ACPI_UNUSED,
 | |
|   PCI_ACPI_UNUSED,
 | |
|   PCI_ACPI_UNUSED,
 | |
|   PCI_ACPI_UNUSED,
 | |
|   PCI_BAR_EVEN_ALIGN,
 | |
|   PCI_BAR_ALL,
 | |
|   PCI_BAR_NOCHANGE,
 | |
|   //
 | |
|   // Device Agilent 103C
 | |
|   //
 | |
|   DEVICE_INF_TAG,
 | |
|   PCI_DEVICE_ID(0x103C, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE),
 | |
|   DEVICE_RES_TAG,
 | |
|   PCI_BAR_TYPE_IO,
 | |
|   PCI_ACPI_UNUSED,
 | |
|   PCI_ACPI_UNUSED,
 | |
|   PCI_ACPI_UNUSED,
 | |
|   PCI_ACPI_UNUSED,
 | |
|   PCI_BAR_EVEN_ALIGN,
 | |
|   PCI_BAR_ALL,
 | |
|   PCI_BAR_NOCHANGE,
 | |
|   //
 | |
|   // Device Agilent 15BC
 | |
|   //
 | |
|   DEVICE_INF_TAG,
 | |
|   PCI_DEVICE_ID(0x15BC, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE),
 | |
|   DEVICE_RES_TAG,
 | |
|   PCI_BAR_TYPE_IO,
 | |
|   PCI_ACPI_UNUSED,
 | |
|   PCI_ACPI_UNUSED,
 | |
|   PCI_ACPI_UNUSED,
 | |
|   PCI_ACPI_UNUSED,
 | |
|   PCI_BAR_EVEN_ALIGN,
 | |
|   PCI_BAR_ALL,
 | |
|   PCI_BAR_NOCHANGE,
 | |
|   //
 | |
|   // The end of the list
 | |
|   //
 | |
|   LIST_END_TAG
 | |
| };
 | |
| 
 | |
| //
 | |
| // the incompatible PCI devices list for the values of configuration registers
 | |
| //
 | |
| GLOBAL_REMOVE_IF_UNREFERENCED UINT64 IncompatiblePciDeviceListForRegister[] = {
 | |
|   //
 | |
|   // DEVICE_INF_TAG,
 | |
|   // PCI_DEVICE_ID (VendorID, DeviceID, Revision, SubVendorId, SubDeviceId),
 | |
|   // PCI_RES_TAG,
 | |
|   // PCI_ACCESS_TYPE, PCI_CONFIG_ADDRESS,
 | |
|   // AND_VALUE, OR_VALUE
 | |
| 
 | |
|   //
 | |
|   // Device Lava 0x1407, DeviceId 0x0110
 | |
|   //
 | |
|   DEVICE_INF_TAG,
 | |
|   PCI_DEVICE_ID(0x1407, 0x0110, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE),
 | |
|   DEVICE_RES_TAG,
 | |
|   PCI_REGISTER_READ,
 | |
|   PCI_CAPBILITY_POINTER_OFFSET,
 | |
|   0xffffff00,
 | |
|   VALUE_NOCARE,
 | |
| 
 | |
|   //
 | |
|   // Device Lava 0x1407, DeviceId 0x0111
 | |
|   //
 | |
|   DEVICE_INF_TAG,
 | |
|   PCI_DEVICE_ID(0x1407, 0x0111, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE),
 | |
|   DEVICE_RES_TAG,
 | |
|   PCI_REGISTER_READ,
 | |
|   PCI_CAPBILITY_POINTER_OFFSET,
 | |
|   0xffffff00,
 | |
|   VALUE_NOCARE,
 | |
| 
 | |
|   //
 | |
|   // The end of the list
 | |
|   //
 | |
|   LIST_END_TAG
 | |
| };
 | |
| 
 | |
| //
 | |
| // the incompatible PCI devices list for the access width of configuration registers
 | |
| //
 | |
| GLOBAL_REMOVE_IF_UNREFERENCED UINT64 DeviceListForAccessWidth[] = {
 | |
|   //
 | |
|   // DEVICE_INF_TAG,
 | |
|   // PCI_DEVICE_ID (VendorID, DeviceID, Revision, SubVendorId, SubDeviceId),
 | |
|   // DEVICE_RES_TAG,
 | |
|   // PCI_ACCESS_TYPE, PCI_ACCESS_WIDTH,
 | |
|   // START_ADDRESS, END_ADDRESS,
 | |
|   // ACTUAL_PCI_ACCESS_WIDTH,
 | |
|   //
 | |
| 
 | |
|   //
 | |
|   // Sample Device
 | |
|   //
 | |
|   //DEVICE_INF_TAG,
 | |
|   //PCI_DEVICE_ID(0xXXXX, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE, DEVICE_ID_NOCARE),
 | |
|   //DEVICE_RES_TAG,
 | |
|   //PCI_REGISTER_READ,
 | |
|   //EfiPciWidthUint8,
 | |
|   //0,
 | |
|   //0xFF,
 | |
|   //EfiPciWidthUint32,
 | |
|   //
 | |
| 
 | |
|   //
 | |
|   // The end of the list
 | |
|   //
 | |
|   LIST_END_TAG
 | |
| };
 | |
| 
 | |
| #endif
 |