Library/PciIncompatibleDeviceSupportLib/IncompatiblePciDeviceList.h: Bus/Pci/PciBusDxe/PciHotPlugSupport.c: Bus/Pci/IdeBusDxe/idebus.h: * Fix issues with filename inconsistency which prevents building on systems with case sensitive file systems. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4948 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			217 lines
		
	
	
		
			5.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			217 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 <PiDxe.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
 |