From a9102619d488c92947605380f00c10e4651f4dc6 Mon Sep 17 00:00:00 2001 From: qhuang8 Date: Tue, 26 Jun 2007 08:14:44 +0000 Subject: 1. Create Intel Framework Module Package directory 2. Complete the public inclusion files git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2746 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Library/PciIncompatibleDeviceSupportLib.h | 134 +++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 IntelFrameworkModulePkg/Include/Library/PciIncompatibleDeviceSupportLib.h (limited to 'IntelFrameworkModulePkg/Include/Library/PciIncompatibleDeviceSupportLib.h') diff --git a/IntelFrameworkModulePkg/Include/Library/PciIncompatibleDeviceSupportLib.h b/IntelFrameworkModulePkg/Include/Library/PciIncompatibleDeviceSupportLib.h new file mode 100644 index 0000000000..527a704042 --- /dev/null +++ b/IntelFrameworkModulePkg/Include/Library/PciIncompatibleDeviceSupportLib.h @@ -0,0 +1,134 @@ +/** @file + PCI Incompatible device support Libary. + +Copyright (c) 2007 Intel Corporation. All rights reserved.
+This software and associated documentation (if any) is furnished +under a license and may only be used or copied in accordance +with the terms of the license. Except as permitted by such +license, no part of this software or documentation may be +reproduced, stored in a retrieval system, or transmitted in any +form or by any means without the express written consent of +Intel Corporation. + +**/ + +#define PCI_REGISTER_READ 0xfffffffffffffff1ULL +#define PCI_REGISTER_WRITE 0xfffffffffffffff2ULL +#define VALUE_NOCARE 0xffffffffffffffffULL + +// +// PCI device device information +// +typedef struct { + UINT64 VendorID; + UINT64 DeviceID; + UINT64 RevisionID; + UINT64 SubsystemVendorID; + UINT64 SubsystemID; +} EFI_PCI_DEVICE_INFO; + + +// +// store hardcode value of resgister +// +typedef struct { + UINT64 AndValue; + UINT64 OrValue; +} EFI_PCI_REGISTER_VALUE_DATA; + +// +// store access width information +// +typedef struct { + UINT64 StartOffset; + UINT64 EndOffset; + UINT64 Width; +} EFI_PCI_REGISTER_ACCESS_DATA; + + +// +// ACPI resource descriptor +// +typedef struct { + UINT64 ResType; + UINT64 GenFlag; + UINT64 SpecificFlag; + UINT64 AddrSpaceGranularity; + UINT64 AddrRangeMin; + UINT64 AddrRangeMax; + UINT64 AddrTranslationOffset; + UINT64 AddrLen; +} EFI_PCI_RESOUCE_DESCRIPTOR; + +/** + Checks the incompatible device list for ACPI resource update and return + the configuration. + + This function searches the incompatible device list according to request + information. If the PCI device belongs to the devices list, corresponding + configuration informtion will be returned, in the meantime return EFI_SUCCESS. + + @param PciDeviceInfo A pointer to PCI device information. + @param Configuration Returned information. + + @retval returns EFI_SUCCESS if check incompatible device ok. + Otherwise return EFI_UNSUPPORTED. +**/ +RETURN_STATUS +EFIAPI +PciResourceUpdateCheck ( + IN EFI_PCI_DEVICE_INFO *PciDeviceInfo, + OUT VOID *Configuration + ); + +/** + Checks the incompatible device list and return configuration register mask values. + + This function searches the incompatible device list according to request + information. If the PCI device belongs to the devices list, corresponding + configuration informtion will be returned, in the meantime return EFI_SUCCESS. + + @param PciDeviceInfo A pointer to EFI_PCI_DEVICE_INFO. + @param AccessType Access Type, READ or WRITE. + @param Offset The address within the PCI configuration space. + @param Configuration Returned information. + + @retval returns EFI_SUCCESS if check incompatible device ok. + Otherwise return EFI_UNSUPPORTED. +**/ +RETURN_STATUS +EFIAPI +PciRegisterUpdateCheck ( + IN EFI_PCI_DEVICE_INFO *PciDeviceInfo, + IN UINT64 AccessType, + IN UINT64 Offset, + OUT VOID *Configuration + ); + +/** + Checks the incompatible device list for access width incompatibility and + return the configuration + + This function searches the incompatible device list for access width + incompatibility according to request information. If the PCI device + belongs to the devices list, corresponding configuration informtion + will be returned, in the meantime return EFI_SUCCESS. + + @param PciDeviceInfo A pointer to PCI device information. + @param AccessType Access type, READ or WRITE. + @param Offset The address within the PCI configuration space. + @param AccessWidth Access width needs to check incompatibility. + @param Configuration Returned information. + + @retval returns EFI_SUCCESS if check incompatible device ok. + Otherwise return EFI_UNSUPPORTED. +**/ +RETURN_STATUS +EFIAPI +PciRegisterAccessCheck ( + IN EFI_PCI_DEVICE_INFO *PciDeviceInfo, + IN UINT64 AccessType, + IN UINT64 Offset, + IN UINT64 AccessWidth, + OUT VOID *Configuration + ); -- cgit v1.2.3