https://bugzilla.tianocore.org/show_bug.cgi?id=1373 Replace BSD 2-Clause License with BSD+Patent License. This change is based on the following emails: https://lists.01.org/pipermail/edk2-devel/2019-February/036260.html https://lists.01.org/pipermail/edk2-devel/2018-October/030385.html RFCs with detailed process for the license change: V3: https://lists.01.org/pipermail/edk2-devel/2019-March/038116.html V2: https://lists.01.org/pipermail/edk2-devel/2019-March/037669.html V1: https://lists.01.org/pipermail/edk2-devel/2019-March/037500.html Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
		
			
				
	
	
		
			77 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/** @file
 | 
						|
  ACPI Low Power Idle Table (LPIT) definitions
 | 
						|
 | 
						|
  Copyright (c) 2016, Intel Corporation. All rights reserved.<BR>
 | 
						|
  SPDX-License-Identifier: BSD-2-Clause-Patent
 | 
						|
 | 
						|
  @par Revision Reference:
 | 
						|
    - ACPI Low Power Idle Table (LPIT) Revision 001, dated July 2014
 | 
						|
      http://www.uefi.org/sites/default/files/resources/ACPI_Low_Power_Idle_Table.pdf
 | 
						|
 | 
						|
  @par Glossary:
 | 
						|
    - GAS - Generic Address Structure
 | 
						|
    - LPI - Low Power Idle
 | 
						|
**/
 | 
						|
#ifndef _LOW_POWER_IDLE_TABLE_H_
 | 
						|
#define _LOW_POWER_IDLE_TABLE_H_
 | 
						|
 | 
						|
#include <IndustryStandard/Acpi.h>
 | 
						|
 | 
						|
#pragma pack(1)
 | 
						|
 | 
						|
///
 | 
						|
/// LPI Structure Types
 | 
						|
///
 | 
						|
#define ACPI_LPI_STRUCTURE_TYPE_NATIVE_CSTATE     0x00
 | 
						|
 | 
						|
///
 | 
						|
/// Low Power Idle (LPI) State Flags
 | 
						|
///
 | 
						|
typedef union {
 | 
						|
  struct {
 | 
						|
    UINT32 Disabled           : 1;  ///< If set, LPI state is not used
 | 
						|
    /**
 | 
						|
      If set, Residency counter is not available for this LPI state and
 | 
						|
      Residency Counter Frequency is invalid
 | 
						|
    **/
 | 
						|
    UINT32 CounterUnavailable : 1;
 | 
						|
    UINT32 Reserved           : 30; ///< Reserved for future use. Must be zero
 | 
						|
  } Bits;
 | 
						|
  UINT32 Data32;
 | 
						|
} ACPI_LPI_STATE_FLAGS;
 | 
						|
 | 
						|
///
 | 
						|
/// Low Power Idle (LPI) structure with Native C-state instruction entry trigger descriptor
 | 
						|
///
 | 
						|
typedef struct {
 | 
						|
  UINT32                                  Type;   ///< LPI State descriptor Type 0
 | 
						|
  UINT32                                  Length; ///< Length of LPI state Descriptor Structure
 | 
						|
  ///
 | 
						|
  /// Unique LPI state identifier: zero based, monotonically increasing identifier
 | 
						|
  ///
 | 
						|
  UINT16                                  UniqueId;
 | 
						|
  UINT8                                   Reserved[2];  ///< Must be Zero
 | 
						|
  ACPI_LPI_STATE_FLAGS                    Flags;        ///< LPI state flags
 | 
						|
  /**
 | 
						|
    The LPI entry trigger, matching an existing _CST.Register object, represented as a
 | 
						|
    Generic Address Structure. All processors must request this state or deeper to trigger.
 | 
						|
  **/
 | 
						|
  EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE  EntryTrigger;
 | 
						|
  UINT32                                  Residency;  ///< Minimum residency or break-even in uSec
 | 
						|
  UINT32                                  Latency;    ///< Worst case exit latency in uSec
 | 
						|
  /**
 | 
						|
    [optional] Residency counter, represented as a Generic Address Structure.
 | 
						|
    If not present, Flags[1] bit should be set.
 | 
						|
  **/
 | 
						|
  EFI_ACPI_6_1_GENERIC_ADDRESS_STRUCTURE  ResidencyCounter;
 | 
						|
  /**
 | 
						|
    [optional] Residency counter frequency in cycles per second. Value 0 indicates that
 | 
						|
    counter runs at TSC frequency. Valid only if Residency Counter is present.
 | 
						|
  **/
 | 
						|
  UINT64                                  ResidencyCounterFrequency;
 | 
						|
} ACPI_LPI_NATIVE_CSTATE_DESCRIPTOR;
 | 
						|
 | 
						|
#pragma pack()
 | 
						|
 | 
						|
#endif
 |