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
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
|
||||
/** @file
|
||||
OEM hook status code library functions with no library constructor/destructor
|
||||
|
||||
Copyright (c) 2006, 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.
|
||||
|
||||
Module Name: OemHookStatusCodeLib.h
|
||||
|
||||
**/
|
||||
|
||||
#ifndef __OEM_HOOK_STATUSCODE_LIB__
|
||||
#define __OEM_HOOK_STATUSCODE_LIB__
|
||||
|
||||
/**
|
||||
|
||||
Initialize OEM status code device .
|
||||
|
||||
|
||||
@return Status of initialization of OEM status code device.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
OemHookStatusCodeInitialize (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Report status code to OEM device.
|
||||
|
||||
@param CodeType Indicates the type of status code being reported. Type EFI_STATUS_CODE_TYPE is defined in "Related Definitions" below.
|
||||
|
||||
@param Value Describes the current status of a hardware or software entity.
|
||||
This included information about the class and subclass that is used to classify the entity
|
||||
as well as an operation. For progress codes, the operation is the current activity.
|
||||
For error codes, it is the exception. For debug codes, it is not defined at this time.
|
||||
Type EFI_STATUS_CODE_VALUE is defined in "Related Definitions" below.
|
||||
Specific values are discussed in the Intel? Platform Innovation Framework for EFI Status Code Specification.
|
||||
|
||||
@param Instance The enumeration of a hardware or software entity within the system.
|
||||
A system may contain multiple entities that match a class/subclass pairing.
|
||||
The instance differentiates between them. An instance of 0 indicates that instance information is unavailable,
|
||||
not meaningful, or not relevant. Valid instance numbers start with 1.
|
||||
|
||||
|
||||
@param CallerId This optional parameter may be used to identify the caller.
|
||||
This parameter allows the status code driver to apply different rules to different callers.
|
||||
Type EFI_GUID is defined in InstallProtocolInterface() in the EFI 1.10 Specification.
|
||||
|
||||
|
||||
@param Data This optional parameter may be used to pass additional data
|
||||
|
||||
@return The function always return EFI_SUCCESS.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
OemHookStatusCodeReport (
|
||||
IN EFI_STATUS_CODE_TYPE CodeType,
|
||||
IN EFI_STATUS_CODE_VALUE Value,
|
||||
IN UINT32 Instance,
|
||||
IN EFI_GUID *CallerId, OPTIONAL
|
||||
IN EFI_STATUS_CODE_DATA *Data OPTIONAL
|
||||
);
|
||||
|
||||
#endif
|
@@ -0,0 +1,134 @@
|
||||
/** @file
|
||||
PCI Incompatible device support Libary.
|
||||
|
||||
Copyright (c) 2007 Intel Corporation. All rights reserved. <BR>
|
||||
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
|
||||
);
|
Reference in New Issue
Block a user