ApertureOS
priv_hpet.h
Go to the documentation of this file.
1 #ifndef _PRIV_HPET_DRIVER_H_
2 #define _PRIV_HPET_DRIVER_H_
3 
4 #include "types.h"
5 
7 
8 typedef struct
9 {
11  uint8_t hardware_rev_id;
12  uint8_t comparator_count : 5;
13  uint8_t counter_size : 1;
14  uint8_t reserved : 1;
15  uint8_t legacy_replacement : 1;
18  uint8_t hpet_number;
19  uint16_t minimum_tick;
20  uint8_t page_protection;
21 } HPET;
22 
24 uint64_t frequency;
25 uint64_t capabilities;
26 
27 #define HPET_CAP_REG 0x00 //Capabilities register offset
28 #define HPET_GC_REG 0x10 //General Configuration register offset
29 #define HPET_GIS_REG 0x20 //General Interrupt Status register offset
30 #define HPET_MCV_REG 0x0F0 //Main Counter Value register offset
31 
32 #define TIMER_CONFIG_OFFSET(N) ((0x100 + 0x20 * N) - (0x107 + 0x20 * N))
33 #define TIMER_COMP_VAL_OFFSET(N) ((0x108 + 0x20 * N) - (0x10F + 0x20 * N))
34 #define TIMER_FSB_ROUTE_OFFSET(N) ((0x110 + 0x20 * N) - (0x117 + 0x20 * N))
35 
36 //#define TIMER_CONFIG_OFFSET(N) ((0x20 + (4*N)) + 0x108)
37 //#define TIMER_COMP_VAL_OFFSET(N) ((0x21 + (4*N)) + 0x10F)
38 //#define TIMER_FSB_ROUTE_OFFSET(N) ((0x110 + 0x20 * N) - (0x117 + 0x20 * N))
39 
40 
41 void HPET_Write(uint32_t reg, uint64_t val);
42 uint64_t HPET_Read(uint32_t reg);
43 
44 #endif /* end of include guard: _PRIV_HPET_DRIVER_H_ */
uint8_t hardware_rev_id
Definition: priv_hpet.h:11
GenericAddressStructure address
Definition: priv_hpet.h:17
pci_vendor_t pci_vendor_id
Definition: priv_hpet.h:16
uint64_t frequency
Definition: priv_hpet.h:24
HPET * hpet
Definition: priv_hpet.h:23
ACPISDTHeader h
Definition: priv_hpet.h:10
uint8_t hpet_number
Definition: priv_hpet.h:18
void HPET_Write(uint32_t reg, uint64_t val)
Definition: hpet.c:55
uint16_t minimum_tick
Definition: priv_hpet.h:19
uint8_t page_protection
Definition: priv_hpet.h:20
ACPI Section Descriptor Table header.
Definition: priv_acpi_tables.h:37
Definition: priv_hpet.h:8
Definition: priv_acpi_tables.h:83
uint64_t capabilities
Definition: priv_hpet.h:25
Generic ACPI Address structure.
Definition: priv_acpi_tables.h:65
uint64_t HPET_Read(uint32_t reg)
Definition: hpet.c:60