1 // THIS HEADER FILE IS AUTOMATICALLY GENERATED -- DO NOT EDIT
2 
3 /**
4  * Copyright (c) 2024 Raspberry Pi Ltd.
5  *
6  * SPDX-License-Identifier: BSD-3-Clause
7  */
8 // =============================================================================
9 // Register block : GLITCH_DETECTOR
10 // Version        : 1
11 // Bus type       : apb
12 // Description    : Glitch detector controls
13 // =============================================================================
14 #ifndef _HARDWARE_REGS_GLITCH_DETECTOR_H
15 #define _HARDWARE_REGS_GLITCH_DETECTOR_H
16 // =============================================================================
17 // Register    : GLITCH_DETECTOR_ARM
18 // Description : Forcibly arm the glitch detectors, if they are not already
19 //               armed by OTP. When armed, any individual detector trigger will
20 //               cause a restart of the switched core power domain's power-on
21 //               reset state machine.
22 //
23 //               Glitch detector triggers are recorded accumulatively in
24 //               TRIG_STATUS. If the system is reset by a glitch detector
25 //               trigger, this is recorded in POWMAN_CHIP_RESET.
26 //
27 //               This register is Secure read/write only.
28 //               0x5bad -> Do not force the glitch detectors to be armed
29 //               0x0000 -> Force the glitch detectors to be armed. (Any value other than ARM_NO counts as YES)
30 #define GLITCH_DETECTOR_ARM_OFFSET _u(0x00000000)
31 #define GLITCH_DETECTOR_ARM_BITS   _u(0x0000ffff)
32 #define GLITCH_DETECTOR_ARM_RESET  _u(0x00005bad)
33 #define GLITCH_DETECTOR_ARM_MSB    _u(15)
34 #define GLITCH_DETECTOR_ARM_LSB    _u(0)
35 #define GLITCH_DETECTOR_ARM_ACCESS "RW"
36 #define GLITCH_DETECTOR_ARM_VALUE_NO _u(0x5bad)
37 #define GLITCH_DETECTOR_ARM_VALUE_YES _u(0x0000)
38 // =============================================================================
39 // Register    : GLITCH_DETECTOR_DISARM
40 // Description : None
41 //               Forcibly disarm the glitch detectors, if they are armed by OTP.
42 //               Ignored if ARM is YES.
43 //
44 //               This register is Secure read/write only.
45 //               0x0000 -> Do not disarm the glitch detectors. (Any value other than DISARM_YES counts as NO)
46 //               0xdcaf -> Disarm the glitch detectors
47 #define GLITCH_DETECTOR_DISARM_OFFSET _u(0x00000004)
48 #define GLITCH_DETECTOR_DISARM_BITS   _u(0x0000ffff)
49 #define GLITCH_DETECTOR_DISARM_RESET  _u(0x00000000)
50 #define GLITCH_DETECTOR_DISARM_MSB    _u(15)
51 #define GLITCH_DETECTOR_DISARM_LSB    _u(0)
52 #define GLITCH_DETECTOR_DISARM_ACCESS "RW"
53 #define GLITCH_DETECTOR_DISARM_VALUE_NO _u(0x0000)
54 #define GLITCH_DETECTOR_DISARM_VALUE_YES _u(0xdcaf)
55 // =============================================================================
56 // Register    : GLITCH_DETECTOR_SENSITIVITY
57 // Description : Adjust the sensitivity of glitch detectors to values other than
58 //               their OTP-provided defaults.
59 //
60 //               This register is Secure read/write only.
61 #define GLITCH_DETECTOR_SENSITIVITY_OFFSET _u(0x00000008)
62 #define GLITCH_DETECTOR_SENSITIVITY_BITS   _u(0xff00ffff)
63 #define GLITCH_DETECTOR_SENSITIVITY_RESET  _u(0x00000000)
64 // -----------------------------------------------------------------------------
65 // Field       : GLITCH_DETECTOR_SENSITIVITY_DEFAULT
66 //               0x00 -> Use the default sensitivity configured in OTP for all detectors. (Any value other than DEFAULT_NO counts as YES)
67 //               0xde -> Do not use the default sensitivity configured in OTP. Instead use the value from this register.
68 #define GLITCH_DETECTOR_SENSITIVITY_DEFAULT_RESET  _u(0x00)
69 #define GLITCH_DETECTOR_SENSITIVITY_DEFAULT_BITS   _u(0xff000000)
70 #define GLITCH_DETECTOR_SENSITIVITY_DEFAULT_MSB    _u(31)
71 #define GLITCH_DETECTOR_SENSITIVITY_DEFAULT_LSB    _u(24)
72 #define GLITCH_DETECTOR_SENSITIVITY_DEFAULT_ACCESS "RW"
73 #define GLITCH_DETECTOR_SENSITIVITY_DEFAULT_VALUE_YES _u(0x00)
74 #define GLITCH_DETECTOR_SENSITIVITY_DEFAULT_VALUE_NO _u(0xde)
75 // -----------------------------------------------------------------------------
76 // Field       : GLITCH_DETECTOR_SENSITIVITY_DET3_INV
77 // Description : Must be the inverse of DET3, else the default value is used.
78 #define GLITCH_DETECTOR_SENSITIVITY_DET3_INV_RESET  _u(0x0)
79 #define GLITCH_DETECTOR_SENSITIVITY_DET3_INV_BITS   _u(0x0000c000)
80 #define GLITCH_DETECTOR_SENSITIVITY_DET3_INV_MSB    _u(15)
81 #define GLITCH_DETECTOR_SENSITIVITY_DET3_INV_LSB    _u(14)
82 #define GLITCH_DETECTOR_SENSITIVITY_DET3_INV_ACCESS "RW"
83 // -----------------------------------------------------------------------------
84 // Field       : GLITCH_DETECTOR_SENSITIVITY_DET2_INV
85 // Description : Must be the inverse of DET2, else the default value is used.
86 #define GLITCH_DETECTOR_SENSITIVITY_DET2_INV_RESET  _u(0x0)
87 #define GLITCH_DETECTOR_SENSITIVITY_DET2_INV_BITS   _u(0x00003000)
88 #define GLITCH_DETECTOR_SENSITIVITY_DET2_INV_MSB    _u(13)
89 #define GLITCH_DETECTOR_SENSITIVITY_DET2_INV_LSB    _u(12)
90 #define GLITCH_DETECTOR_SENSITIVITY_DET2_INV_ACCESS "RW"
91 // -----------------------------------------------------------------------------
92 // Field       : GLITCH_DETECTOR_SENSITIVITY_DET1_INV
93 // Description : Must be the inverse of DET1, else the default value is used.
94 #define GLITCH_DETECTOR_SENSITIVITY_DET1_INV_RESET  _u(0x0)
95 #define GLITCH_DETECTOR_SENSITIVITY_DET1_INV_BITS   _u(0x00000c00)
96 #define GLITCH_DETECTOR_SENSITIVITY_DET1_INV_MSB    _u(11)
97 #define GLITCH_DETECTOR_SENSITIVITY_DET1_INV_LSB    _u(10)
98 #define GLITCH_DETECTOR_SENSITIVITY_DET1_INV_ACCESS "RW"
99 // -----------------------------------------------------------------------------
100 // Field       : GLITCH_DETECTOR_SENSITIVITY_DET0_INV
101 // Description : Must be the inverse of DET0, else the default value is used.
102 #define GLITCH_DETECTOR_SENSITIVITY_DET0_INV_RESET  _u(0x0)
103 #define GLITCH_DETECTOR_SENSITIVITY_DET0_INV_BITS   _u(0x00000300)
104 #define GLITCH_DETECTOR_SENSITIVITY_DET0_INV_MSB    _u(9)
105 #define GLITCH_DETECTOR_SENSITIVITY_DET0_INV_LSB    _u(8)
106 #define GLITCH_DETECTOR_SENSITIVITY_DET0_INV_ACCESS "RW"
107 // -----------------------------------------------------------------------------
108 // Field       : GLITCH_DETECTOR_SENSITIVITY_DET3
109 // Description : Set sensitivity for detector 3. Higher values are more
110 //               sensitive.
111 #define GLITCH_DETECTOR_SENSITIVITY_DET3_RESET  _u(0x0)
112 #define GLITCH_DETECTOR_SENSITIVITY_DET3_BITS   _u(0x000000c0)
113 #define GLITCH_DETECTOR_SENSITIVITY_DET3_MSB    _u(7)
114 #define GLITCH_DETECTOR_SENSITIVITY_DET3_LSB    _u(6)
115 #define GLITCH_DETECTOR_SENSITIVITY_DET3_ACCESS "RW"
116 // -----------------------------------------------------------------------------
117 // Field       : GLITCH_DETECTOR_SENSITIVITY_DET2
118 // Description : Set sensitivity for detector 2. Higher values are more
119 //               sensitive.
120 #define GLITCH_DETECTOR_SENSITIVITY_DET2_RESET  _u(0x0)
121 #define GLITCH_DETECTOR_SENSITIVITY_DET2_BITS   _u(0x00000030)
122 #define GLITCH_DETECTOR_SENSITIVITY_DET2_MSB    _u(5)
123 #define GLITCH_DETECTOR_SENSITIVITY_DET2_LSB    _u(4)
124 #define GLITCH_DETECTOR_SENSITIVITY_DET2_ACCESS "RW"
125 // -----------------------------------------------------------------------------
126 // Field       : GLITCH_DETECTOR_SENSITIVITY_DET1
127 // Description : Set sensitivity for detector 1. Higher values are more
128 //               sensitive.
129 #define GLITCH_DETECTOR_SENSITIVITY_DET1_RESET  _u(0x0)
130 #define GLITCH_DETECTOR_SENSITIVITY_DET1_BITS   _u(0x0000000c)
131 #define GLITCH_DETECTOR_SENSITIVITY_DET1_MSB    _u(3)
132 #define GLITCH_DETECTOR_SENSITIVITY_DET1_LSB    _u(2)
133 #define GLITCH_DETECTOR_SENSITIVITY_DET1_ACCESS "RW"
134 // -----------------------------------------------------------------------------
135 // Field       : GLITCH_DETECTOR_SENSITIVITY_DET0
136 // Description : Set sensitivity for detector 0. Higher values are more
137 //               sensitive.
138 #define GLITCH_DETECTOR_SENSITIVITY_DET0_RESET  _u(0x0)
139 #define GLITCH_DETECTOR_SENSITIVITY_DET0_BITS   _u(0x00000003)
140 #define GLITCH_DETECTOR_SENSITIVITY_DET0_MSB    _u(1)
141 #define GLITCH_DETECTOR_SENSITIVITY_DET0_LSB    _u(0)
142 #define GLITCH_DETECTOR_SENSITIVITY_DET0_ACCESS "RW"
143 // =============================================================================
144 // Register    : GLITCH_DETECTOR_LOCK
145 // Description : None
146 //               Write any nonzero value to disable writes to ARM, DISARM,
147 //               SENSITIVITY and LOCK. This register is Secure read/write only.
148 #define GLITCH_DETECTOR_LOCK_OFFSET _u(0x0000000c)
149 #define GLITCH_DETECTOR_LOCK_BITS   _u(0x000000ff)
150 #define GLITCH_DETECTOR_LOCK_RESET  _u(0x00000000)
151 #define GLITCH_DETECTOR_LOCK_MSB    _u(7)
152 #define GLITCH_DETECTOR_LOCK_LSB    _u(0)
153 #define GLITCH_DETECTOR_LOCK_ACCESS "RW"
154 // =============================================================================
155 // Register    : GLITCH_DETECTOR_TRIG_STATUS
156 // Description : Set when a detector output triggers. Write-1-clear.
157 //
158 //               (May immediately return high if the detector remains in a
159 //               failed state. Detectors can only be cleared by a full reset of
160 //               the switched core power domain.)
161 //
162 //               This register is Secure read/write only.
163 #define GLITCH_DETECTOR_TRIG_STATUS_OFFSET _u(0x00000010)
164 #define GLITCH_DETECTOR_TRIG_STATUS_BITS   _u(0x0000000f)
165 #define GLITCH_DETECTOR_TRIG_STATUS_RESET  _u(0x00000000)
166 // -----------------------------------------------------------------------------
167 // Field       : GLITCH_DETECTOR_TRIG_STATUS_DET3
168 #define GLITCH_DETECTOR_TRIG_STATUS_DET3_RESET  _u(0x0)
169 #define GLITCH_DETECTOR_TRIG_STATUS_DET3_BITS   _u(0x00000008)
170 #define GLITCH_DETECTOR_TRIG_STATUS_DET3_MSB    _u(3)
171 #define GLITCH_DETECTOR_TRIG_STATUS_DET3_LSB    _u(3)
172 #define GLITCH_DETECTOR_TRIG_STATUS_DET3_ACCESS "WC"
173 // -----------------------------------------------------------------------------
174 // Field       : GLITCH_DETECTOR_TRIG_STATUS_DET2
175 #define GLITCH_DETECTOR_TRIG_STATUS_DET2_RESET  _u(0x0)
176 #define GLITCH_DETECTOR_TRIG_STATUS_DET2_BITS   _u(0x00000004)
177 #define GLITCH_DETECTOR_TRIG_STATUS_DET2_MSB    _u(2)
178 #define GLITCH_DETECTOR_TRIG_STATUS_DET2_LSB    _u(2)
179 #define GLITCH_DETECTOR_TRIG_STATUS_DET2_ACCESS "WC"
180 // -----------------------------------------------------------------------------
181 // Field       : GLITCH_DETECTOR_TRIG_STATUS_DET1
182 #define GLITCH_DETECTOR_TRIG_STATUS_DET1_RESET  _u(0x0)
183 #define GLITCH_DETECTOR_TRIG_STATUS_DET1_BITS   _u(0x00000002)
184 #define GLITCH_DETECTOR_TRIG_STATUS_DET1_MSB    _u(1)
185 #define GLITCH_DETECTOR_TRIG_STATUS_DET1_LSB    _u(1)
186 #define GLITCH_DETECTOR_TRIG_STATUS_DET1_ACCESS "WC"
187 // -----------------------------------------------------------------------------
188 // Field       : GLITCH_DETECTOR_TRIG_STATUS_DET0
189 #define GLITCH_DETECTOR_TRIG_STATUS_DET0_RESET  _u(0x0)
190 #define GLITCH_DETECTOR_TRIG_STATUS_DET0_BITS   _u(0x00000001)
191 #define GLITCH_DETECTOR_TRIG_STATUS_DET0_MSB    _u(0)
192 #define GLITCH_DETECTOR_TRIG_STATUS_DET0_LSB    _u(0)
193 #define GLITCH_DETECTOR_TRIG_STATUS_DET0_ACCESS "WC"
194 // =============================================================================
195 // Register    : GLITCH_DETECTOR_TRIG_FORCE
196 // Description : Simulate the firing of one or more detectors. Writing ones to
197 //               this register will set the matching bits in STATUS_TRIG.
198 //
199 //               If the glitch detectors are currently armed, writing ones will
200 //               also immediately reset the switched core power domain, and set
201 //               the reset reason latches in POWMAN_CHIP_RESET to indicate a
202 //               glitch detector resets.
203 //
204 //               This register is Secure read/write only.
205 #define GLITCH_DETECTOR_TRIG_FORCE_OFFSET _u(0x00000014)
206 #define GLITCH_DETECTOR_TRIG_FORCE_BITS   _u(0x0000000f)
207 #define GLITCH_DETECTOR_TRIG_FORCE_RESET  _u(0x00000000)
208 #define GLITCH_DETECTOR_TRIG_FORCE_MSB    _u(3)
209 #define GLITCH_DETECTOR_TRIG_FORCE_LSB    _u(0)
210 #define GLITCH_DETECTOR_TRIG_FORCE_ACCESS "SC"
211 // =============================================================================
212 #endif // _HARDWARE_REGS_GLITCH_DETECTOR_H
213 
214