/** @file HPET policy Copyright (c) 2017, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _HPET_CONFIG_H_ #define _HPET_CONFIG_H_ #define HPET_PREMEM_CONFIG_REVISION 1 extern EFI_GUID gHpetPreMemConfigGuid; #pragma pack (push,1) /** The PCH_HPET_CONFIG block passes the bus/device/function value for HPET. The address resource range of HPET must be reserved in E820 and ACPI as system resource. **/ typedef struct { CONFIG_BLOCK_HEADER Header; ///< Config Block Header /** Determines if enable HPET timer. 0: Disable; 1: Enable. The HPET timer address decode is always enabled. This policy is used to configure the HPET timer count, and also the _STA of HPET device in ACPI. While enabled, the HPET timer is started, else the HPET timer is halted. **/ UINT32 Enable : 1; UINT32 BdfValid : 1; ///< Whether the BDF value is valid. 0: Disable; 1: Enable. UINT32 RsvdBits0 : 6; ///< Reserved bits UINT32 BusNumber : 8; ///< Bus Number HPETn used as Requestor / Completer ID. Default is 0xF0. UINT32 DeviceNumber : 5; ///< Device Number HPETn used as Requestor / Completer ID. Default is 0x1F. UINT32 FunctionNumber : 3; ///< Function Number HPETn used as Requestor / Completer ID. Default is 0x00. UINT32 RsvdBits1 : 8; ///< Reserved bits UINT32 Base; ///< The HPET base address. Default is 0xFED00000. } PCH_HPET_PREMEM_CONFIG; #pragma pack (pop) #endif // _HPET_CONFIG_H_