VirtualBox

source: vbox/trunk/src/VBox/Devices/EFI/FirmwareNew/PcAtChipsetPkg/Include/Register/Hpet.h@ 85718

Last change on this file since 85718 was 85718, checked in by vboxsync, 5 years ago

Devices/EFI: Merge edk-stable202005 and make it build, bugref:4643

  • Property svn:eol-style set to native
File size: 2.2 KB
Line 
1/** @file
2 HPET register definitions from the IA-PC HPET (High Precision Event Timers)
3 Specification, Revision 1.0a, October 2004.
4
5 Copyright (c) 2011 - 2018, Intel Corporation. All rights reserved.<BR>
6 SPDX-License-Identifier: BSD-2-Clause-Patent
7
8**/
9
10#ifndef __HPET_REGISTER_H__
11#define __HPET_REGISTER_H__
12
13///
14/// HPET General Register Offsets
15///
16#define HPET_GENERAL_CAPABILITIES_ID_OFFSET 0x000
17#define HPET_GENERAL_CONFIGURATION_OFFSET 0x010
18#define HPET_GENERAL_INTERRUPT_STATUS_OFFSET 0x020
19
20///
21/// HPET Timer Register Offsets
22///
23#define HPET_MAIN_COUNTER_OFFSET 0x0F0
24#define HPET_TIMER_CONFIGURATION_OFFSET 0x100
25#define HPET_TIMER_COMPARATOR_OFFSET 0x108
26#define HPET_TIMER_MSI_ROUTE_OFFSET 0x110
27
28///
29/// Stride between sets of HPET Timer Registers
30///
31#define HPET_TIMER_STRIDE 0x20
32
33#pragma pack(1)
34
35///
36/// HPET General Capabilities and ID Register
37///
38typedef union {
39 struct {
40 UINT32 Revision:8;
41 UINT32 NumberOfTimers:5;
42 UINT32 CounterSize:1;
43 UINT32 Reserved0:1;
44 UINT32 LegacyRoute:1;
45 UINT32 VendorId:16;
46 UINT32 CounterClockPeriod:32;
47 } Bits;
48 UINT64 Uint64;
49} HPET_GENERAL_CAPABILITIES_ID_REGISTER;
50
51///
52/// HPET General Configuration Register
53///
54typedef union {
55 struct {
56 UINT32 MainCounterEnable:1;
57 UINT32 LegacyRouteEnable:1;
58 UINT32 Reserved0:30;
59 UINT32 Reserved1:32;
60 } Bits;
61 UINT64 Uint64;
62} HPET_GENERAL_CONFIGURATION_REGISTER;
63
64///
65/// HPET Timer Configuration Register
66///
67typedef union {
68 struct {
69 UINT32 Reserved0:1;
70 UINT32 LevelTriggeredInterrupt:1;
71 UINT32 InterruptEnable:1;
72 UINT32 PeriodicInterruptEnable:1;
73 UINT32 PeriodicInterruptCapability:1;
74 UINT32 CounterSizeCapability:1;
75 UINT32 ValueSetEnable:1;
76 UINT32 Reserved1:1;
77 UINT32 CounterSizeEnable:1;
78 UINT32 InterruptRoute:5;
79 UINT32 MsiInterruptEnable:1;
80 UINT32 MsiInterruptCapability:1;
81 UINT32 Reserved2:16;
82 UINT32 InterruptRouteCapability;
83 } Bits;
84 UINT64 Uint64;
85} HPET_TIMER_CONFIGURATION_REGISTER;
86
87///
88/// HPET Timer MSI Route Register
89///
90typedef union {
91 struct {
92 UINT32 Value:32;
93 UINT32 Address:32;
94 } Bits;
95 UINT64 Uint64;
96} HPET_TIMER_MSI_ROUTE_REGISTER;
97
98#pragma pack()
99
100#endif
Note: See TracBrowser for help on using the repository browser.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette