Software APIs
clkmgr_regs.h
Go to the documentation of this file.
1/**
2 * @file
3 * @brief Generated register defines for clkmgr
4 */
5
6// Copyright information found in source file:
7// Copyright lowRISC contributors (OpenTitan project).
8
9// Licensing information found in source file:
10// Licensed under the Apache License, Version 2.0, see LICENSE for details.
11// SPDX-License-Identifier: Apache-2.0
12
13#ifndef _CLKMGR_REG_DEFS_
14#define _CLKMGR_REG_DEFS_
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19// Number of clock groups
20#define CLKMGR_PARAM_NUM_GROUPS 7
21
22// Number of SW gateable clocks
23#define CLKMGR_PARAM_NUM_SW_GATEABLE_CLOCKS 1
24
25// Number of hintable clocks
26#define CLKMGR_PARAM_NUM_HINTABLE_CLOCKS 4
27
28// Number of alerts
29#define CLKMGR_PARAM_NUM_ALERTS 2
30
31// Register width
32#define CLKMGR_PARAM_REG_WIDTH 32
33
34// Alert Test Register
35#define CLKMGR_ALERT_TEST_REG_OFFSET 0x0
36#define CLKMGR_ALERT_TEST_REG_RESVAL 0x80000000u
37#define CLKMGR_ALERT_TEST_RECOV_FAULT_BIT 0
38#define CLKMGR_ALERT_TEST_FATAL_FAULT_BIT 1
39#define CLKMGR_ALERT_TEST_REGWEN_BIT 31
40
41// Jitter write enable
42#define CLKMGR_JITTER_REGWEN_REG_OFFSET 0x10
43#define CLKMGR_JITTER_REGWEN_REG_RESVAL 0x1u
44#define CLKMGR_JITTER_REGWEN_EN_BIT 0
45
46// Enable jittery clock
47#define CLKMGR_JITTER_ENABLE_REG_OFFSET 0x14
48#define CLKMGR_JITTER_ENABLE_REG_RESVAL 0x9u
49#define CLKMGR_JITTER_ENABLE_VAL_MASK 0xfu
50#define CLKMGR_JITTER_ENABLE_VAL_OFFSET 0
51#define CLKMGR_JITTER_ENABLE_VAL_FIELD \
52 ((bitfield_field32_t) { .mask = CLKMGR_JITTER_ENABLE_VAL_MASK, .index = CLKMGR_JITTER_ENABLE_VAL_OFFSET })
53
54// Clock enable for software gateable clocks.
55#define CLKMGR_CLK_ENABLES_REG_OFFSET 0x18
56#define CLKMGR_CLK_ENABLES_REG_RESVAL 0x1u
57#define CLKMGR_CLK_ENABLES_CLK_IO_PERI_EN_BIT 0
58
59// Clock hint for software gateable transactional clocks during active mode.
60#define CLKMGR_CLK_HINTS_REG_OFFSET 0x1c
61#define CLKMGR_CLK_HINTS_REG_RESVAL 0xfu
62#define CLKMGR_CLK_HINTS_CLK_MAIN_AES_HINT_BIT 0
63#define CLKMGR_CLK_HINTS_CLK_MAIN_HMAC_HINT_BIT 1
64#define CLKMGR_CLK_HINTS_CLK_MAIN_KMAC_HINT_BIT 2
65#define CLKMGR_CLK_HINTS_CLK_MAIN_OTBN_HINT_BIT 3
66
67// Since the final state of !!CLK_HINTS is not always determined by software,
68#define CLKMGR_CLK_HINTS_STATUS_REG_OFFSET 0x20
69#define CLKMGR_CLK_HINTS_STATUS_REG_RESVAL 0xfu
70#define CLKMGR_CLK_HINTS_STATUS_CLK_MAIN_AES_VAL_BIT 0
71#define CLKMGR_CLK_HINTS_STATUS_CLK_MAIN_HMAC_VAL_BIT 1
72#define CLKMGR_CLK_HINTS_STATUS_CLK_MAIN_KMAC_VAL_BIT 2
73#define CLKMGR_CLK_HINTS_STATUS_CLK_MAIN_OTBN_VAL_BIT 3
74
75// Measurement control write enable
76#define CLKMGR_MEASURE_CTRL_REGWEN_REG_OFFSET 0x24
77#define CLKMGR_MEASURE_CTRL_REGWEN_REG_RESVAL 0x1u
78#define CLKMGR_MEASURE_CTRL_REGWEN_EN_BIT 0
79
80// Enable for measurement control
81#define CLKMGR_IO_MEAS_CTRL_EN_REG_OFFSET 0x28
82#define CLKMGR_IO_MEAS_CTRL_EN_REG_RESVAL 0x9u
83#define CLKMGR_IO_MEAS_CTRL_EN_EN_MASK 0xfu
84#define CLKMGR_IO_MEAS_CTRL_EN_EN_OFFSET 0
85#define CLKMGR_IO_MEAS_CTRL_EN_EN_FIELD \
86 ((bitfield_field32_t) { .mask = CLKMGR_IO_MEAS_CTRL_EN_EN_MASK, .index = CLKMGR_IO_MEAS_CTRL_EN_EN_OFFSET })
87
88// Configuration controls for io measurement.
89#define CLKMGR_IO_MEAS_CTRL_SHADOWED_REG_OFFSET 0x2c
90#define CLKMGR_IO_MEAS_CTRL_SHADOWED_REG_RESVAL 0xec8au
91#define CLKMGR_IO_MEAS_CTRL_SHADOWED_HI_MASK 0x1ffu
92#define CLKMGR_IO_MEAS_CTRL_SHADOWED_HI_OFFSET 0
93#define CLKMGR_IO_MEAS_CTRL_SHADOWED_HI_FIELD \
94 ((bitfield_field32_t) { .mask = CLKMGR_IO_MEAS_CTRL_SHADOWED_HI_MASK, .index = CLKMGR_IO_MEAS_CTRL_SHADOWED_HI_OFFSET })
95#define CLKMGR_IO_MEAS_CTRL_SHADOWED_LO_MASK 0x1ffu
96#define CLKMGR_IO_MEAS_CTRL_SHADOWED_LO_OFFSET 9
97#define CLKMGR_IO_MEAS_CTRL_SHADOWED_LO_FIELD \
98 ((bitfield_field32_t) { .mask = CLKMGR_IO_MEAS_CTRL_SHADOWED_LO_MASK, .index = CLKMGR_IO_MEAS_CTRL_SHADOWED_LO_OFFSET })
99
100// Enable for measurement control
101#define CLKMGR_MAIN_MEAS_CTRL_EN_REG_OFFSET 0x30
102#define CLKMGR_MAIN_MEAS_CTRL_EN_REG_RESVAL 0x9u
103#define CLKMGR_MAIN_MEAS_CTRL_EN_EN_MASK 0xfu
104#define CLKMGR_MAIN_MEAS_CTRL_EN_EN_OFFSET 0
105#define CLKMGR_MAIN_MEAS_CTRL_EN_EN_FIELD \
106 ((bitfield_field32_t) { .mask = CLKMGR_MAIN_MEAS_CTRL_EN_EN_MASK, .index = CLKMGR_MAIN_MEAS_CTRL_EN_EN_OFFSET })
107
108// Configuration controls for main measurement.
109#define CLKMGR_MAIN_MEAS_CTRL_SHADOWED_REG_OFFSET 0x34
110#define CLKMGR_MAIN_MEAS_CTRL_SHADOWED_REG_RESVAL 0xec8au
111#define CLKMGR_MAIN_MEAS_CTRL_SHADOWED_HI_MASK 0x1ffu
112#define CLKMGR_MAIN_MEAS_CTRL_SHADOWED_HI_OFFSET 0
113#define CLKMGR_MAIN_MEAS_CTRL_SHADOWED_HI_FIELD \
114 ((bitfield_field32_t) { .mask = CLKMGR_MAIN_MEAS_CTRL_SHADOWED_HI_MASK, .index = CLKMGR_MAIN_MEAS_CTRL_SHADOWED_HI_OFFSET })
115#define CLKMGR_MAIN_MEAS_CTRL_SHADOWED_LO_MASK 0x1ffu
116#define CLKMGR_MAIN_MEAS_CTRL_SHADOWED_LO_OFFSET 9
117#define CLKMGR_MAIN_MEAS_CTRL_SHADOWED_LO_FIELD \
118 ((bitfield_field32_t) { .mask = CLKMGR_MAIN_MEAS_CTRL_SHADOWED_LO_MASK, .index = CLKMGR_MAIN_MEAS_CTRL_SHADOWED_LO_OFFSET })
119
120// Recoverable Error code
121#define CLKMGR_RECOV_ERR_CODE_REG_OFFSET 0x38
122#define CLKMGR_RECOV_ERR_CODE_REG_RESVAL 0x0u
123#define CLKMGR_RECOV_ERR_CODE_SHADOW_UPDATE_ERR_BIT 0
124#define CLKMGR_RECOV_ERR_CODE_IO_MEASURE_ERR_BIT 1
125#define CLKMGR_RECOV_ERR_CODE_MAIN_MEASURE_ERR_BIT 2
126#define CLKMGR_RECOV_ERR_CODE_IO_TIMEOUT_ERR_BIT 3
127#define CLKMGR_RECOV_ERR_CODE_MAIN_TIMEOUT_ERR_BIT 4
128
129// Error code
130#define CLKMGR_FATAL_ERR_CODE_REG_OFFSET 0x3c
131#define CLKMGR_FATAL_ERR_CODE_REG_RESVAL 0x0u
132#define CLKMGR_FATAL_ERR_CODE_REG_INTG_BIT 0
133#define CLKMGR_FATAL_ERR_CODE_IDLE_CNT_BIT 1
134#define CLKMGR_FATAL_ERR_CODE_SHADOW_STORAGE_ERR_BIT 2
135
136#ifdef __cplusplus
137} // extern "C"
138#endif
139#endif // _CLKMGR_REG_DEFS_
140// End generated register defines for clkmgr