1*4b8b8d74SJaiprakash Singh #ifndef __ODY_CSRS_RNM_H__
2*4b8b8d74SJaiprakash Singh #define __ODY_CSRS_RNM_H__
3*4b8b8d74SJaiprakash Singh /* This file is auto-generated. Do not edit */
4*4b8b8d74SJaiprakash Singh
5*4b8b8d74SJaiprakash Singh /***********************license start***********************************
6*4b8b8d74SJaiprakash Singh * Copyright (C) 2021-2026 Marvell.
7*4b8b8d74SJaiprakash Singh * SPDX-License-Identifier: BSD-3-Clause
8*4b8b8d74SJaiprakash Singh * https://spdx.org/licenses
9*4b8b8d74SJaiprakash Singh ***********************license end**************************************/
10*4b8b8d74SJaiprakash Singh
11*4b8b8d74SJaiprakash Singh
12*4b8b8d74SJaiprakash Singh /**
13*4b8b8d74SJaiprakash Singh * @file
14*4b8b8d74SJaiprakash Singh *
15*4b8b8d74SJaiprakash Singh * Configuration and status register (CSR) address and type definitions for
16*4b8b8d74SJaiprakash Singh * RNM.
17*4b8b8d74SJaiprakash Singh *
18*4b8b8d74SJaiprakash Singh * This file is auto generated. Do not edit.
19*4b8b8d74SJaiprakash Singh *
20*4b8b8d74SJaiprakash Singh */
21*4b8b8d74SJaiprakash Singh
22*4b8b8d74SJaiprakash Singh /**
23*4b8b8d74SJaiprakash Singh * Enumeration rnm_bar_e
24*4b8b8d74SJaiprakash Singh *
25*4b8b8d74SJaiprakash Singh * RNM Base Address Register Enumeration
26*4b8b8d74SJaiprakash Singh * Enumerates the base address registers.
27*4b8b8d74SJaiprakash Singh */
28*4b8b8d74SJaiprakash Singh #define ODY_RNM_BAR_E_RNM_PF_BAR0 (0x87e00f000000ll)
29*4b8b8d74SJaiprakash Singh #define ODY_RNM_BAR_E_RNM_PF_BAR0_SIZE 0x100000ull
30*4b8b8d74SJaiprakash Singh #define ODY_RNM_BAR_E_RNM_VF_BAR0 (0x80f000800000ll)
31*4b8b8d74SJaiprakash Singh #define ODY_RNM_BAR_E_RNM_VF_BAR0_SIZE 0x100000ull
32*4b8b8d74SJaiprakash Singh
33*4b8b8d74SJaiprakash Singh /**
34*4b8b8d74SJaiprakash Singh * Register (RSL) rnm_active_pc
35*4b8b8d74SJaiprakash Singh *
36*4b8b8d74SJaiprakash Singh * RNM Conditional Clock Counter Register
37*4b8b8d74SJaiprakash Singh */
38*4b8b8d74SJaiprakash Singh union ody_rnm_active_pc {
39*4b8b8d74SJaiprakash Singh uint64_t u;
40*4b8b8d74SJaiprakash Singh struct ody_rnm_active_pc_s {
41*4b8b8d74SJaiprakash Singh uint64_t count : 64;
42*4b8b8d74SJaiprakash Singh } s;
43*4b8b8d74SJaiprakash Singh /* struct ody_rnm_active_pc_s cn; */
44*4b8b8d74SJaiprakash Singh };
45*4b8b8d74SJaiprakash Singh typedef union ody_rnm_active_pc ody_rnm_active_pc_t;
46*4b8b8d74SJaiprakash Singh
47*4b8b8d74SJaiprakash Singh #define ODY_RNM_ACTIVE_PC ODY_RNM_ACTIVE_PC_FUNC()
48*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_ACTIVE_PC_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RNM_ACTIVE_PC_FUNC(void)49*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_ACTIVE_PC_FUNC(void)
50*4b8b8d74SJaiprakash Singh {
51*4b8b8d74SJaiprakash Singh return 0x87e00f000010ll;
52*4b8b8d74SJaiprakash Singh }
53*4b8b8d74SJaiprakash Singh
54*4b8b8d74SJaiprakash Singh #define typedef_ODY_RNM_ACTIVE_PC ody_rnm_active_pc_t
55*4b8b8d74SJaiprakash Singh #define bustype_ODY_RNM_ACTIVE_PC CSR_TYPE_RSL
56*4b8b8d74SJaiprakash Singh #define basename_ODY_RNM_ACTIVE_PC "RNM_ACTIVE_PC"
57*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RNM_ACTIVE_PC 0x0 /* PF_BAR0 */
58*4b8b8d74SJaiprakash Singh #define busnum_ODY_RNM_ACTIVE_PC 0
59*4b8b8d74SJaiprakash Singh #define arguments_ODY_RNM_ACTIVE_PC -1, -1, -1, -1
60*4b8b8d74SJaiprakash Singh
61*4b8b8d74SJaiprakash Singh /**
62*4b8b8d74SJaiprakash Singh * Register (RSL) rnm_ctl_status
63*4b8b8d74SJaiprakash Singh *
64*4b8b8d74SJaiprakash Singh * RNM Control and Status Register
65*4b8b8d74SJaiprakash Singh * This register is the RNM control register.
66*4b8b8d74SJaiprakash Singh * This register is secure only to prevent the nonsecure world from affecting
67*4b8b8d74SJaiprakash Singh * secure-world clients using true random numbers.
68*4b8b8d74SJaiprakash Singh */
69*4b8b8d74SJaiprakash Singh union ody_rnm_ctl_status {
70*4b8b8d74SJaiprakash Singh uint64_t u;
71*4b8b8d74SJaiprakash Singh struct ody_rnm_ctl_status_s {
72*4b8b8d74SJaiprakash Singh uint64_t force_clk : 1;
73*4b8b8d74SJaiprakash Singh uint64_t ebg_ctl_lock : 1;
74*4b8b8d74SJaiprakash Singh uint64_t ebg_poll_en : 1;
75*4b8b8d74SJaiprakash Singh uint64_t ebg_poll_delay : 10;
76*4b8b8d74SJaiprakash Singh uint64_t drbg_en : 1;
77*4b8b8d74SJaiprakash Singh uint64_t drbg_ent_disable : 1;
78*4b8b8d74SJaiprakash Singh uint64_t reserved_15_63 : 49;
79*4b8b8d74SJaiprakash Singh } s;
80*4b8b8d74SJaiprakash Singh /* struct ody_rnm_ctl_status_s cn; */
81*4b8b8d74SJaiprakash Singh };
82*4b8b8d74SJaiprakash Singh typedef union ody_rnm_ctl_status ody_rnm_ctl_status_t;
83*4b8b8d74SJaiprakash Singh
84*4b8b8d74SJaiprakash Singh #define ODY_RNM_CTL_STATUS ODY_RNM_CTL_STATUS_FUNC()
85*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_CTL_STATUS_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RNM_CTL_STATUS_FUNC(void)86*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_CTL_STATUS_FUNC(void)
87*4b8b8d74SJaiprakash Singh {
88*4b8b8d74SJaiprakash Singh return 0x87e00f000000ll;
89*4b8b8d74SJaiprakash Singh }
90*4b8b8d74SJaiprakash Singh
91*4b8b8d74SJaiprakash Singh #define typedef_ODY_RNM_CTL_STATUS ody_rnm_ctl_status_t
92*4b8b8d74SJaiprakash Singh #define bustype_ODY_RNM_CTL_STATUS CSR_TYPE_RSL
93*4b8b8d74SJaiprakash Singh #define basename_ODY_RNM_CTL_STATUS "RNM_CTL_STATUS"
94*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RNM_CTL_STATUS 0x0 /* PF_BAR0 */
95*4b8b8d74SJaiprakash Singh #define busnum_ODY_RNM_CTL_STATUS 0
96*4b8b8d74SJaiprakash Singh #define arguments_ODY_RNM_CTL_STATUS -1, -1, -1, -1
97*4b8b8d74SJaiprakash Singh
98*4b8b8d74SJaiprakash Singh /**
99*4b8b8d74SJaiprakash Singh * Register (RSL) rnm_drbg_ent_force#
100*4b8b8d74SJaiprakash Singh *
101*4b8b8d74SJaiprakash Singh * RNM DRBG Entropy Force Register
102*4b8b8d74SJaiprakash Singh * Write this register to force the Entropy source of the DRBG to a constant value
103*4b8b8d74SJaiprakash Singh * for debugging purposes.
104*4b8b8d74SJaiprakash Singh *
105*4b8b8d74SJaiprakash Singh * Before writing to this register, RNM_CTL_STATUS[DRBG_ENT_DISABLE] must be zero to turn off the
106*4b8b8d74SJaiprakash Singh * DRBG engine.
107*4b8b8d74SJaiprakash Singh *
108*4b8b8d74SJaiprakash Singh * To use this register in place of the entropy source write 1 to RNM_CTL_STATUS[DRBG_ENT_DISABLE].
109*4b8b8d74SJaiprakash Singh */
110*4b8b8d74SJaiprakash Singh union ody_rnm_drbg_ent_forcex {
111*4b8b8d74SJaiprakash Singh uint64_t u;
112*4b8b8d74SJaiprakash Singh struct ody_rnm_drbg_ent_forcex_s {
113*4b8b8d74SJaiprakash Singh uint64_t bits : 64;
114*4b8b8d74SJaiprakash Singh } s;
115*4b8b8d74SJaiprakash Singh /* struct ody_rnm_drbg_ent_forcex_s cn; */
116*4b8b8d74SJaiprakash Singh };
117*4b8b8d74SJaiprakash Singh typedef union ody_rnm_drbg_ent_forcex ody_rnm_drbg_ent_forcex_t;
118*4b8b8d74SJaiprakash Singh
119*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_DRBG_ENT_FORCEX(uint64_t a) __attribute__ ((pure, always_inline));
ODY_RNM_DRBG_ENT_FORCEX(uint64_t a)120*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_DRBG_ENT_FORCEX(uint64_t a)
121*4b8b8d74SJaiprakash Singh {
122*4b8b8d74SJaiprakash Singh if (a <= 3)
123*4b8b8d74SJaiprakash Singh return 0x87e00f000300ll + 8ll * ((a) & 0x3);
124*4b8b8d74SJaiprakash Singh __ody_csr_fatal("RNM_DRBG_ENT_FORCEX", 1, a, 0, 0, 0, 0, 0);
125*4b8b8d74SJaiprakash Singh }
126*4b8b8d74SJaiprakash Singh
127*4b8b8d74SJaiprakash Singh #define typedef_ODY_RNM_DRBG_ENT_FORCEX(a) ody_rnm_drbg_ent_forcex_t
128*4b8b8d74SJaiprakash Singh #define bustype_ODY_RNM_DRBG_ENT_FORCEX(a) CSR_TYPE_RSL
129*4b8b8d74SJaiprakash Singh #define basename_ODY_RNM_DRBG_ENT_FORCEX(a) "RNM_DRBG_ENT_FORCEX"
130*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RNM_DRBG_ENT_FORCEX(a) 0x0 /* PF_BAR0 */
131*4b8b8d74SJaiprakash Singh #define busnum_ODY_RNM_DRBG_ENT_FORCEX(a) (a)
132*4b8b8d74SJaiprakash Singh #define arguments_ODY_RNM_DRBG_ENT_FORCEX(a) (a), -1, -1, -1
133*4b8b8d74SJaiprakash Singh
134*4b8b8d74SJaiprakash Singh /**
135*4b8b8d74SJaiprakash Singh * Register (NCB) rnm_drbg_rndr
136*4b8b8d74SJaiprakash Singh *
137*4b8b8d74SJaiprakash Singh * RNM DRBG Random Value Register
138*4b8b8d74SJaiprakash Singh */
139*4b8b8d74SJaiprakash Singh union ody_rnm_drbg_rndr {
140*4b8b8d74SJaiprakash Singh uint64_t u;
141*4b8b8d74SJaiprakash Singh struct ody_rnm_drbg_rndr_s {
142*4b8b8d74SJaiprakash Singh uint64_t dat : 64;
143*4b8b8d74SJaiprakash Singh } s;
144*4b8b8d74SJaiprakash Singh /* struct ody_rnm_drbg_rndr_s cn; */
145*4b8b8d74SJaiprakash Singh };
146*4b8b8d74SJaiprakash Singh typedef union ody_rnm_drbg_rndr ody_rnm_drbg_rndr_t;
147*4b8b8d74SJaiprakash Singh
148*4b8b8d74SJaiprakash Singh #define ODY_RNM_DRBG_RNDR ODY_RNM_DRBG_RNDR_FUNC()
149*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_DRBG_RNDR_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RNM_DRBG_RNDR_FUNC(void)150*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_DRBG_RNDR_FUNC(void)
151*4b8b8d74SJaiprakash Singh {
152*4b8b8d74SJaiprakash Singh return 0x80f000800020ll;
153*4b8b8d74SJaiprakash Singh }
154*4b8b8d74SJaiprakash Singh
155*4b8b8d74SJaiprakash Singh #define typedef_ODY_RNM_DRBG_RNDR ody_rnm_drbg_rndr_t
156*4b8b8d74SJaiprakash Singh #define bustype_ODY_RNM_DRBG_RNDR CSR_TYPE_NCB
157*4b8b8d74SJaiprakash Singh #define basename_ODY_RNM_DRBG_RNDR "RNM_DRBG_RNDR"
158*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RNM_DRBG_RNDR 0x0 /* VF_BAR0 */
159*4b8b8d74SJaiprakash Singh #define busnum_ODY_RNM_DRBG_RNDR 0
160*4b8b8d74SJaiprakash Singh #define arguments_ODY_RNM_DRBG_RNDR -1, -1, -1, -1
161*4b8b8d74SJaiprakash Singh
162*4b8b8d74SJaiprakash Singh /**
163*4b8b8d74SJaiprakash Singh * Register (NCB) rnm_drbg_rndr_result
164*4b8b8d74SJaiprakash Singh *
165*4b8b8d74SJaiprakash Singh * RNM DRBG Random Result Register
166*4b8b8d74SJaiprakash Singh */
167*4b8b8d74SJaiprakash Singh union ody_rnm_drbg_rndr_result {
168*4b8b8d74SJaiprakash Singh uint64_t u;
169*4b8b8d74SJaiprakash Singh struct ody_rnm_drbg_rndr_result_s {
170*4b8b8d74SJaiprakash Singh uint64_t res : 1;
171*4b8b8d74SJaiprakash Singh uint64_t reserved_1_63 : 63;
172*4b8b8d74SJaiprakash Singh } s;
173*4b8b8d74SJaiprakash Singh /* struct ody_rnm_drbg_rndr_result_s cn; */
174*4b8b8d74SJaiprakash Singh };
175*4b8b8d74SJaiprakash Singh typedef union ody_rnm_drbg_rndr_result ody_rnm_drbg_rndr_result_t;
176*4b8b8d74SJaiprakash Singh
177*4b8b8d74SJaiprakash Singh #define ODY_RNM_DRBG_RNDR_RESULT ODY_RNM_DRBG_RNDR_RESULT_FUNC()
178*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_DRBG_RNDR_RESULT_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RNM_DRBG_RNDR_RESULT_FUNC(void)179*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_DRBG_RNDR_RESULT_FUNC(void)
180*4b8b8d74SJaiprakash Singh {
181*4b8b8d74SJaiprakash Singh return 0x80f000800028ll;
182*4b8b8d74SJaiprakash Singh }
183*4b8b8d74SJaiprakash Singh
184*4b8b8d74SJaiprakash Singh #define typedef_ODY_RNM_DRBG_RNDR_RESULT ody_rnm_drbg_rndr_result_t
185*4b8b8d74SJaiprakash Singh #define bustype_ODY_RNM_DRBG_RNDR_RESULT CSR_TYPE_NCB
186*4b8b8d74SJaiprakash Singh #define basename_ODY_RNM_DRBG_RNDR_RESULT "RNM_DRBG_RNDR_RESULT"
187*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RNM_DRBG_RNDR_RESULT 0x0 /* VF_BAR0 */
188*4b8b8d74SJaiprakash Singh #define busnum_ODY_RNM_DRBG_RNDR_RESULT 0
189*4b8b8d74SJaiprakash Singh #define arguments_ODY_RNM_DRBG_RNDR_RESULT -1, -1, -1, -1
190*4b8b8d74SJaiprakash Singh
191*4b8b8d74SJaiprakash Singh /**
192*4b8b8d74SJaiprakash Singh * Register (NCB) rnm_drbg_rndrrs
193*4b8b8d74SJaiprakash Singh *
194*4b8b8d74SJaiprakash Singh * RNM DRBG Reseeded Random Register
195*4b8b8d74SJaiprakash Singh */
196*4b8b8d74SJaiprakash Singh union ody_rnm_drbg_rndrrs {
197*4b8b8d74SJaiprakash Singh uint64_t u;
198*4b8b8d74SJaiprakash Singh struct ody_rnm_drbg_rndrrs_s {
199*4b8b8d74SJaiprakash Singh uint64_t dat : 64;
200*4b8b8d74SJaiprakash Singh } s;
201*4b8b8d74SJaiprakash Singh /* struct ody_rnm_drbg_rndrrs_s cn; */
202*4b8b8d74SJaiprakash Singh };
203*4b8b8d74SJaiprakash Singh typedef union ody_rnm_drbg_rndrrs ody_rnm_drbg_rndrrs_t;
204*4b8b8d74SJaiprakash Singh
205*4b8b8d74SJaiprakash Singh #define ODY_RNM_DRBG_RNDRRS ODY_RNM_DRBG_RNDRRS_FUNC()
206*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_DRBG_RNDRRS_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RNM_DRBG_RNDRRS_FUNC(void)207*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_DRBG_RNDRRS_FUNC(void)
208*4b8b8d74SJaiprakash Singh {
209*4b8b8d74SJaiprakash Singh return 0x80f000800030ll;
210*4b8b8d74SJaiprakash Singh }
211*4b8b8d74SJaiprakash Singh
212*4b8b8d74SJaiprakash Singh #define typedef_ODY_RNM_DRBG_RNDRRS ody_rnm_drbg_rndrrs_t
213*4b8b8d74SJaiprakash Singh #define bustype_ODY_RNM_DRBG_RNDRRS CSR_TYPE_NCB
214*4b8b8d74SJaiprakash Singh #define basename_ODY_RNM_DRBG_RNDRRS "RNM_DRBG_RNDRRS"
215*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RNM_DRBG_RNDRRS 0x0 /* VF_BAR0 */
216*4b8b8d74SJaiprakash Singh #define busnum_ODY_RNM_DRBG_RNDRRS 0
217*4b8b8d74SJaiprakash Singh #define arguments_ODY_RNM_DRBG_RNDRRS -1, -1, -1, -1
218*4b8b8d74SJaiprakash Singh
219*4b8b8d74SJaiprakash Singh /**
220*4b8b8d74SJaiprakash Singh * Register (NCB) rnm_drbg_rndrrs_result
221*4b8b8d74SJaiprakash Singh *
222*4b8b8d74SJaiprakash Singh * RNM DRBG Reseeded Random Result Register
223*4b8b8d74SJaiprakash Singh */
224*4b8b8d74SJaiprakash Singh union ody_rnm_drbg_rndrrs_result {
225*4b8b8d74SJaiprakash Singh uint64_t u;
226*4b8b8d74SJaiprakash Singh struct ody_rnm_drbg_rndrrs_result_s {
227*4b8b8d74SJaiprakash Singh uint64_t res : 1;
228*4b8b8d74SJaiprakash Singh uint64_t reserved_1_63 : 63;
229*4b8b8d74SJaiprakash Singh } s;
230*4b8b8d74SJaiprakash Singh /* struct ody_rnm_drbg_rndrrs_result_s cn; */
231*4b8b8d74SJaiprakash Singh };
232*4b8b8d74SJaiprakash Singh typedef union ody_rnm_drbg_rndrrs_result ody_rnm_drbg_rndrrs_result_t;
233*4b8b8d74SJaiprakash Singh
234*4b8b8d74SJaiprakash Singh #define ODY_RNM_DRBG_RNDRRS_RESULT ODY_RNM_DRBG_RNDRRS_RESULT_FUNC()
235*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_DRBG_RNDRRS_RESULT_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RNM_DRBG_RNDRRS_RESULT_FUNC(void)236*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_DRBG_RNDRRS_RESULT_FUNC(void)
237*4b8b8d74SJaiprakash Singh {
238*4b8b8d74SJaiprakash Singh return 0x80f000800038ll;
239*4b8b8d74SJaiprakash Singh }
240*4b8b8d74SJaiprakash Singh
241*4b8b8d74SJaiprakash Singh #define typedef_ODY_RNM_DRBG_RNDRRS_RESULT ody_rnm_drbg_rndrrs_result_t
242*4b8b8d74SJaiprakash Singh #define bustype_ODY_RNM_DRBG_RNDRRS_RESULT CSR_TYPE_NCB
243*4b8b8d74SJaiprakash Singh #define basename_ODY_RNM_DRBG_RNDRRS_RESULT "RNM_DRBG_RNDRRS_RESULT"
244*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RNM_DRBG_RNDRRS_RESULT 0x0 /* VF_BAR0 */
245*4b8b8d74SJaiprakash Singh #define busnum_ODY_RNM_DRBG_RNDRRS_RESULT 0
246*4b8b8d74SJaiprakash Singh #define arguments_ODY_RNM_DRBG_RNDRRS_RESULT -1, -1, -1, -1
247*4b8b8d74SJaiprakash Singh
248*4b8b8d74SJaiprakash Singh /**
249*4b8b8d74SJaiprakash Singh * Register (RSL) rnm_ebg_ctl
250*4b8b8d74SJaiprakash Singh *
251*4b8b8d74SJaiprakash Singh * RNM EBG Control Register
252*4b8b8d74SJaiprakash Singh * This register is used to control the EBG (Entropy Bit Generator), which
253*4b8b8d74SJaiprakash Singh * serves as the true random entropy source for RNM.
254*4b8b8d74SJaiprakash Singh */
255*4b8b8d74SJaiprakash Singh union ody_rnm_ebg_ctl {
256*4b8b8d74SJaiprakash Singh uint64_t u;
257*4b8b8d74SJaiprakash Singh struct ody_rnm_ebg_ctl_s {
258*4b8b8d74SJaiprakash Singh uint64_t reserved_0_4 : 5;
259*4b8b8d74SJaiprakash Singh uint64_t rng_pu_bias2 : 1;
260*4b8b8d74SJaiprakash Singh uint64_t pp_ena : 1;
261*4b8b8d74SJaiprakash Singh uint64_t rng_slow_osc_ena : 1;
262*4b8b8d74SJaiprakash Singh uint64_t rng_fast_osc_ena : 1;
263*4b8b8d74SJaiprakash Singh uint64_t rng_pu_bias : 1;
264*4b8b8d74SJaiprakash Singh uint64_t rng_rstn : 1;
265*4b8b8d74SJaiprakash Singh uint64_t rng_clk_sel : 1;
266*4b8b8d74SJaiprakash Singh uint64_t entropy_req : 1;
267*4b8b8d74SJaiprakash Singh uint64_t entropy_sel : 2;
268*4b8b8d74SJaiprakash Singh uint64_t reserved_15 : 1;
269*4b8b8d74SJaiprakash Singh uint64_t rng_slow_div_val : 8;
270*4b8b8d74SJaiprakash Singh uint64_t ds_ratio : 8;
271*4b8b8d74SJaiprakash Singh uint64_t reserved_32_63 : 32;
272*4b8b8d74SJaiprakash Singh } s;
273*4b8b8d74SJaiprakash Singh /* struct ody_rnm_ebg_ctl_s cn; */
274*4b8b8d74SJaiprakash Singh };
275*4b8b8d74SJaiprakash Singh typedef union ody_rnm_ebg_ctl ody_rnm_ebg_ctl_t;
276*4b8b8d74SJaiprakash Singh
277*4b8b8d74SJaiprakash Singh #define ODY_RNM_EBG_CTL ODY_RNM_EBG_CTL_FUNC()
278*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_EBG_CTL_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RNM_EBG_CTL_FUNC(void)279*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_EBG_CTL_FUNC(void)
280*4b8b8d74SJaiprakash Singh {
281*4b8b8d74SJaiprakash Singh return 0x87e00f000040ll;
282*4b8b8d74SJaiprakash Singh }
283*4b8b8d74SJaiprakash Singh
284*4b8b8d74SJaiprakash Singh #define typedef_ODY_RNM_EBG_CTL ody_rnm_ebg_ctl_t
285*4b8b8d74SJaiprakash Singh #define bustype_ODY_RNM_EBG_CTL CSR_TYPE_RSL
286*4b8b8d74SJaiprakash Singh #define basename_ODY_RNM_EBG_CTL "RNM_EBG_CTL"
287*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RNM_EBG_CTL 0x0 /* PF_BAR0 */
288*4b8b8d74SJaiprakash Singh #define busnum_ODY_RNM_EBG_CTL 0
289*4b8b8d74SJaiprakash Singh #define arguments_ODY_RNM_EBG_CTL -1, -1, -1, -1
290*4b8b8d74SJaiprakash Singh
291*4b8b8d74SJaiprakash Singh /**
292*4b8b8d74SJaiprakash Singh * Register (RSL) rnm_ebg_ent
293*4b8b8d74SJaiprakash Singh *
294*4b8b8d74SJaiprakash Singh * RNM EBG Entropy Value Register
295*4b8b8d74SJaiprakash Singh * This register is used to read true random data from the EBG
296*4b8b8d74SJaiprakash Singh * (entropy bit generator), which serves as the true random entropy source for RNM.
297*4b8b8d74SJaiprakash Singh */
298*4b8b8d74SJaiprakash Singh union ody_rnm_ebg_ent {
299*4b8b8d74SJaiprakash Singh uint64_t u;
300*4b8b8d74SJaiprakash Singh struct ody_rnm_ebg_ent_s {
301*4b8b8d74SJaiprakash Singh uint64_t dat : 64;
302*4b8b8d74SJaiprakash Singh } s;
303*4b8b8d74SJaiprakash Singh /* struct ody_rnm_ebg_ent_s cn; */
304*4b8b8d74SJaiprakash Singh };
305*4b8b8d74SJaiprakash Singh typedef union ody_rnm_ebg_ent ody_rnm_ebg_ent_t;
306*4b8b8d74SJaiprakash Singh
307*4b8b8d74SJaiprakash Singh #define ODY_RNM_EBG_ENT ODY_RNM_EBG_ENT_FUNC()
308*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_EBG_ENT_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RNM_EBG_ENT_FUNC(void)309*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_EBG_ENT_FUNC(void)
310*4b8b8d74SJaiprakash Singh {
311*4b8b8d74SJaiprakash Singh return 0x87e00f000048ll;
312*4b8b8d74SJaiprakash Singh }
313*4b8b8d74SJaiprakash Singh
314*4b8b8d74SJaiprakash Singh #define typedef_ODY_RNM_EBG_ENT ody_rnm_ebg_ent_t
315*4b8b8d74SJaiprakash Singh #define bustype_ODY_RNM_EBG_ENT CSR_TYPE_RSL
316*4b8b8d74SJaiprakash Singh #define basename_ODY_RNM_EBG_ENT "RNM_EBG_ENT"
317*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RNM_EBG_ENT 0x0 /* PF_BAR0 */
318*4b8b8d74SJaiprakash Singh #define busnum_ODY_RNM_EBG_ENT 0
319*4b8b8d74SJaiprakash Singh #define arguments_ODY_RNM_EBG_ENT -1, -1, -1, -1
320*4b8b8d74SJaiprakash Singh
321*4b8b8d74SJaiprakash Singh /**
322*4b8b8d74SJaiprakash Singh * Register (RSL) rnm_entropy_rate
323*4b8b8d74SJaiprakash Singh *
324*4b8b8d74SJaiprakash Singh * RNM Entropy Consumption Rate Limit Register
325*4b8b8d74SJaiprakash Singh * Number of microseconds to wait between DRBG Reseeds.
326*4b8b8d74SJaiprakash Singh */
327*4b8b8d74SJaiprakash Singh union ody_rnm_entropy_rate {
328*4b8b8d74SJaiprakash Singh uint64_t u;
329*4b8b8d74SJaiprakash Singh struct ody_rnm_entropy_rate_s {
330*4b8b8d74SJaiprakash Singh uint64_t rndrrs_time : 16;
331*4b8b8d74SJaiprakash Singh uint64_t reserved_16_63 : 48;
332*4b8b8d74SJaiprakash Singh } s;
333*4b8b8d74SJaiprakash Singh /* struct ody_rnm_entropy_rate_s cn; */
334*4b8b8d74SJaiprakash Singh };
335*4b8b8d74SJaiprakash Singh typedef union ody_rnm_entropy_rate ody_rnm_entropy_rate_t;
336*4b8b8d74SJaiprakash Singh
337*4b8b8d74SJaiprakash Singh #define ODY_RNM_ENTROPY_RATE ODY_RNM_ENTROPY_RATE_FUNC()
338*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_ENTROPY_RATE_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RNM_ENTROPY_RATE_FUNC(void)339*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_ENTROPY_RATE_FUNC(void)
340*4b8b8d74SJaiprakash Singh {
341*4b8b8d74SJaiprakash Singh return 0x87e00f000f10ll;
342*4b8b8d74SJaiprakash Singh }
343*4b8b8d74SJaiprakash Singh
344*4b8b8d74SJaiprakash Singh #define typedef_ODY_RNM_ENTROPY_RATE ody_rnm_entropy_rate_t
345*4b8b8d74SJaiprakash Singh #define bustype_ODY_RNM_ENTROPY_RATE CSR_TYPE_RSL
346*4b8b8d74SJaiprakash Singh #define basename_ODY_RNM_ENTROPY_RATE "RNM_ENTROPY_RATE"
347*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RNM_ENTROPY_RATE 0x0 /* PF_BAR0 */
348*4b8b8d74SJaiprakash Singh #define busnum_ODY_RNM_ENTROPY_RATE 0
349*4b8b8d74SJaiprakash Singh #define arguments_ODY_RNM_ENTROPY_RATE -1, -1, -1, -1
350*4b8b8d74SJaiprakash Singh
351*4b8b8d74SJaiprakash Singh /**
352*4b8b8d74SJaiprakash Singh * Register (RSL) rnm_entropy_status
353*4b8b8d74SJaiprakash Singh *
354*4b8b8d74SJaiprakash Singh * RNM Entropy Pool Status Register
355*4b8b8d74SJaiprakash Singh * Status of the RNM Entropy Memory.
356*4b8b8d74SJaiprakash Singh */
357*4b8b8d74SJaiprakash Singh union ody_rnm_entropy_status {
358*4b8b8d74SJaiprakash Singh uint64_t u;
359*4b8b8d74SJaiprakash Singh struct ody_rnm_entropy_status_s {
360*4b8b8d74SJaiprakash Singh uint64_t normal_cnt : 7;
361*4b8b8d74SJaiprakash Singh uint64_t normal_max : 7;
362*4b8b8d74SJaiprakash Singh uint64_t no_zero_cnt : 7;
363*4b8b8d74SJaiprakash Singh uint64_t no_zero_max : 7;
364*4b8b8d74SJaiprakash Singh uint64_t reserved_28_63 : 36;
365*4b8b8d74SJaiprakash Singh } s;
366*4b8b8d74SJaiprakash Singh /* struct ody_rnm_entropy_status_s cn; */
367*4b8b8d74SJaiprakash Singh };
368*4b8b8d74SJaiprakash Singh typedef union ody_rnm_entropy_status ody_rnm_entropy_status_t;
369*4b8b8d74SJaiprakash Singh
370*4b8b8d74SJaiprakash Singh #define ODY_RNM_ENTROPY_STATUS ODY_RNM_ENTROPY_STATUS_FUNC()
371*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_ENTROPY_STATUS_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RNM_ENTROPY_STATUS_FUNC(void)372*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_ENTROPY_STATUS_FUNC(void)
373*4b8b8d74SJaiprakash Singh {
374*4b8b8d74SJaiprakash Singh return 0x87e00f000008ll;
375*4b8b8d74SJaiprakash Singh }
376*4b8b8d74SJaiprakash Singh
377*4b8b8d74SJaiprakash Singh #define typedef_ODY_RNM_ENTROPY_STATUS ody_rnm_entropy_status_t
378*4b8b8d74SJaiprakash Singh #define bustype_ODY_RNM_ENTROPY_STATUS CSR_TYPE_RSL
379*4b8b8d74SJaiprakash Singh #define basename_ODY_RNM_ENTROPY_STATUS "RNM_ENTROPY_STATUS"
380*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RNM_ENTROPY_STATUS 0x0 /* PF_BAR0 */
381*4b8b8d74SJaiprakash Singh #define busnum_ODY_RNM_ENTROPY_STATUS 0
382*4b8b8d74SJaiprakash Singh #define arguments_ODY_RNM_ENTROPY_STATUS -1, -1, -1, -1
383*4b8b8d74SJaiprakash Singh
384*4b8b8d74SJaiprakash Singh /**
385*4b8b8d74SJaiprakash Singh * Register (RSL) rnm_pf_drbg_reseed_ctr
386*4b8b8d74SJaiprakash Singh *
387*4b8b8d74SJaiprakash Singh * RNM DRBG Reseed Counter Register
388*4b8b8d74SJaiprakash Singh * Number of DRBG engine requests serviced since the last reseed.
389*4b8b8d74SJaiprakash Singh * Read RNM_PF_DRBG_RESEED_INTERVAL for the number of requests before a reseed occurs.
390*4b8b8d74SJaiprakash Singh * When RNM_PF_DRBG_RESEED_CTR reaches RNM_PF_DRBG_RESEED_INTERVAL the engines will reseed
391*4b8b8d74SJaiprakash Singh * themselves.
392*4b8b8d74SJaiprakash Singh */
393*4b8b8d74SJaiprakash Singh union ody_rnm_pf_drbg_reseed_ctr {
394*4b8b8d74SJaiprakash Singh uint64_t u;
395*4b8b8d74SJaiprakash Singh struct ody_rnm_pf_drbg_reseed_ctr_s {
396*4b8b8d74SJaiprakash Singh uint64_t ctr : 48;
397*4b8b8d74SJaiprakash Singh uint64_t reserved_48_63 : 16;
398*4b8b8d74SJaiprakash Singh } s;
399*4b8b8d74SJaiprakash Singh /* struct ody_rnm_pf_drbg_reseed_ctr_s cn; */
400*4b8b8d74SJaiprakash Singh };
401*4b8b8d74SJaiprakash Singh typedef union ody_rnm_pf_drbg_reseed_ctr ody_rnm_pf_drbg_reseed_ctr_t;
402*4b8b8d74SJaiprakash Singh
403*4b8b8d74SJaiprakash Singh #define ODY_RNM_PF_DRBG_RESEED_CTR ODY_RNM_PF_DRBG_RESEED_CTR_FUNC()
404*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_PF_DRBG_RESEED_CTR_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RNM_PF_DRBG_RESEED_CTR_FUNC(void)405*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_PF_DRBG_RESEED_CTR_FUNC(void)
406*4b8b8d74SJaiprakash Singh {
407*4b8b8d74SJaiprakash Singh return 0x87e00f000f08ll;
408*4b8b8d74SJaiprakash Singh }
409*4b8b8d74SJaiprakash Singh
410*4b8b8d74SJaiprakash Singh #define typedef_ODY_RNM_PF_DRBG_RESEED_CTR ody_rnm_pf_drbg_reseed_ctr_t
411*4b8b8d74SJaiprakash Singh #define bustype_ODY_RNM_PF_DRBG_RESEED_CTR CSR_TYPE_RSL
412*4b8b8d74SJaiprakash Singh #define basename_ODY_RNM_PF_DRBG_RESEED_CTR "RNM_PF_DRBG_RESEED_CTR"
413*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RNM_PF_DRBG_RESEED_CTR 0x0 /* PF_BAR0 */
414*4b8b8d74SJaiprakash Singh #define busnum_ODY_RNM_PF_DRBG_RESEED_CTR 0
415*4b8b8d74SJaiprakash Singh #define arguments_ODY_RNM_PF_DRBG_RESEED_CTR -1, -1, -1, -1
416*4b8b8d74SJaiprakash Singh
417*4b8b8d74SJaiprakash Singh /**
418*4b8b8d74SJaiprakash Singh * Register (RSL) rnm_pf_drbg_reseed_interval
419*4b8b8d74SJaiprakash Singh *
420*4b8b8d74SJaiprakash Singh * RNM DRBG Reseed Interval Register
421*4b8b8d74SJaiprakash Singh * Number of DRBG requests to service before the DRBG engines reseed themselves.
422*4b8b8d74SJaiprakash Singh * Read RNM_PF_DRBG_RESEED_CTR for the number of requests since the last reseed.
423*4b8b8d74SJaiprakash Singh * When RNM_PF_DRBG_RESEED_CTR reaches RNM_PF_DRBG_RESEED_INTERVAL the engines will
424*4b8b8d74SJaiprakash Singh * reseed themselves.
425*4b8b8d74SJaiprakash Singh */
426*4b8b8d74SJaiprakash Singh union ody_rnm_pf_drbg_reseed_interval {
427*4b8b8d74SJaiprakash Singh uint64_t u;
428*4b8b8d74SJaiprakash Singh struct ody_rnm_pf_drbg_reseed_interval_s {
429*4b8b8d74SJaiprakash Singh uint64_t seedlife : 48;
430*4b8b8d74SJaiprakash Singh uint64_t reserved_48_63 : 16;
431*4b8b8d74SJaiprakash Singh } s;
432*4b8b8d74SJaiprakash Singh /* struct ody_rnm_pf_drbg_reseed_interval_s cn; */
433*4b8b8d74SJaiprakash Singh };
434*4b8b8d74SJaiprakash Singh typedef union ody_rnm_pf_drbg_reseed_interval ody_rnm_pf_drbg_reseed_interval_t;
435*4b8b8d74SJaiprakash Singh
436*4b8b8d74SJaiprakash Singh #define ODY_RNM_PF_DRBG_RESEED_INTERVAL ODY_RNM_PF_DRBG_RESEED_INTERVAL_FUNC()
437*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_PF_DRBG_RESEED_INTERVAL_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RNM_PF_DRBG_RESEED_INTERVAL_FUNC(void)438*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_PF_DRBG_RESEED_INTERVAL_FUNC(void)
439*4b8b8d74SJaiprakash Singh {
440*4b8b8d74SJaiprakash Singh return 0x87e00f000f00ll;
441*4b8b8d74SJaiprakash Singh }
442*4b8b8d74SJaiprakash Singh
443*4b8b8d74SJaiprakash Singh #define typedef_ODY_RNM_PF_DRBG_RESEED_INTERVAL ody_rnm_pf_drbg_reseed_interval_t
444*4b8b8d74SJaiprakash Singh #define bustype_ODY_RNM_PF_DRBG_RESEED_INTERVAL CSR_TYPE_RSL
445*4b8b8d74SJaiprakash Singh #define basename_ODY_RNM_PF_DRBG_RESEED_INTERVAL "RNM_PF_DRBG_RESEED_INTERVAL"
446*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RNM_PF_DRBG_RESEED_INTERVAL 0x0 /* PF_BAR0 */
447*4b8b8d74SJaiprakash Singh #define busnum_ODY_RNM_PF_DRBG_RESEED_INTERVAL 0
448*4b8b8d74SJaiprakash Singh #define arguments_ODY_RNM_PF_DRBG_RESEED_INTERVAL -1, -1, -1, -1
449*4b8b8d74SJaiprakash Singh
450*4b8b8d74SJaiprakash Singh /**
451*4b8b8d74SJaiprakash Singh * Register (RSL) rnm_pf_ebg_health
452*4b8b8d74SJaiprakash Singh *
453*4b8b8d74SJaiprakash Singh * RNM EBG Health Configuration and Status Register
454*4b8b8d74SJaiprakash Singh * This register is used to configure and check the status of the EBG (Entropy Bit
455*4b8b8d74SJaiprakash Singh * Generator) Health tests.
456*4b8b8d74SJaiprakash Singh */
457*4b8b8d74SJaiprakash Singh union ody_rnm_pf_ebg_health {
458*4b8b8d74SJaiprakash Singh uint64_t u;
459*4b8b8d74SJaiprakash Singh struct ody_rnm_pf_ebg_health_s {
460*4b8b8d74SJaiprakash Singh uint64_t c_adp : 11;
461*4b8b8d74SJaiprakash Singh uint64_t c_rep : 9;
462*4b8b8d74SJaiprakash Singh uint64_t ct_err : 1;
463*4b8b8d74SJaiprakash Singh uint64_t st_err : 1;
464*4b8b8d74SJaiprakash Singh uint64_t st_done : 1;
465*4b8b8d74SJaiprakash Singh uint64_t err_adp : 1;
466*4b8b8d74SJaiprakash Singh uint64_t err_rep : 1;
467*4b8b8d74SJaiprakash Singh uint64_t reserved_25_63 : 39;
468*4b8b8d74SJaiprakash Singh } s;
469*4b8b8d74SJaiprakash Singh /* struct ody_rnm_pf_ebg_health_s cn; */
470*4b8b8d74SJaiprakash Singh };
471*4b8b8d74SJaiprakash Singh typedef union ody_rnm_pf_ebg_health ody_rnm_pf_ebg_health_t;
472*4b8b8d74SJaiprakash Singh
473*4b8b8d74SJaiprakash Singh #define ODY_RNM_PF_EBG_HEALTH ODY_RNM_PF_EBG_HEALTH_FUNC()
474*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_PF_EBG_HEALTH_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RNM_PF_EBG_HEALTH_FUNC(void)475*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_PF_EBG_HEALTH_FUNC(void)
476*4b8b8d74SJaiprakash Singh {
477*4b8b8d74SJaiprakash Singh return 0x87e00f000050ll;
478*4b8b8d74SJaiprakash Singh }
479*4b8b8d74SJaiprakash Singh
480*4b8b8d74SJaiprakash Singh #define typedef_ODY_RNM_PF_EBG_HEALTH ody_rnm_pf_ebg_health_t
481*4b8b8d74SJaiprakash Singh #define bustype_ODY_RNM_PF_EBG_HEALTH CSR_TYPE_RSL
482*4b8b8d74SJaiprakash Singh #define basename_ODY_RNM_PF_EBG_HEALTH "RNM_PF_EBG_HEALTH"
483*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RNM_PF_EBG_HEALTH 0x0 /* PF_BAR0 */
484*4b8b8d74SJaiprakash Singh #define busnum_ODY_RNM_PF_EBG_HEALTH 0
485*4b8b8d74SJaiprakash Singh #define arguments_ODY_RNM_PF_EBG_HEALTH -1, -1, -1, -1
486*4b8b8d74SJaiprakash Singh
487*4b8b8d74SJaiprakash Singh /**
488*4b8b8d74SJaiprakash Singh * Register (RSL) rnm_pf_trng
489*4b8b8d74SJaiprakash Singh *
490*4b8b8d74SJaiprakash Singh * RNM True Random Number Register
491*4b8b8d74SJaiprakash Singh */
492*4b8b8d74SJaiprakash Singh union ody_rnm_pf_trng {
493*4b8b8d74SJaiprakash Singh uint64_t u;
494*4b8b8d74SJaiprakash Singh struct ody_rnm_pf_trng_s {
495*4b8b8d74SJaiprakash Singh uint64_t dat : 64;
496*4b8b8d74SJaiprakash Singh } s;
497*4b8b8d74SJaiprakash Singh /* struct ody_rnm_pf_trng_s cn; */
498*4b8b8d74SJaiprakash Singh };
499*4b8b8d74SJaiprakash Singh typedef union ody_rnm_pf_trng ody_rnm_pf_trng_t;
500*4b8b8d74SJaiprakash Singh
501*4b8b8d74SJaiprakash Singh #define ODY_RNM_PF_TRNG ODY_RNM_PF_TRNG_FUNC()
502*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_PF_TRNG_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RNM_PF_TRNG_FUNC(void)503*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_PF_TRNG_FUNC(void)
504*4b8b8d74SJaiprakash Singh {
505*4b8b8d74SJaiprakash Singh return 0x87e00f000400ll;
506*4b8b8d74SJaiprakash Singh }
507*4b8b8d74SJaiprakash Singh
508*4b8b8d74SJaiprakash Singh #define typedef_ODY_RNM_PF_TRNG ody_rnm_pf_trng_t
509*4b8b8d74SJaiprakash Singh #define bustype_ODY_RNM_PF_TRNG CSR_TYPE_RSL
510*4b8b8d74SJaiprakash Singh #define basename_ODY_RNM_PF_TRNG "RNM_PF_TRNG"
511*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RNM_PF_TRNG 0x0 /* PF_BAR0 */
512*4b8b8d74SJaiprakash Singh #define busnum_ODY_RNM_PF_TRNG 0
513*4b8b8d74SJaiprakash Singh #define arguments_ODY_RNM_PF_TRNG -1, -1, -1, -1
514*4b8b8d74SJaiprakash Singh
515*4b8b8d74SJaiprakash Singh /**
516*4b8b8d74SJaiprakash Singh * Register (RSL) rnm_pf_trng_dat#
517*4b8b8d74SJaiprakash Singh *
518*4b8b8d74SJaiprakash Singh * RNM True Random Number Register
519*4b8b8d74SJaiprakash Singh */
520*4b8b8d74SJaiprakash Singh union ody_rnm_pf_trng_datx {
521*4b8b8d74SJaiprakash Singh uint64_t u;
522*4b8b8d74SJaiprakash Singh struct ody_rnm_pf_trng_datx_s {
523*4b8b8d74SJaiprakash Singh uint64_t dat : 64;
524*4b8b8d74SJaiprakash Singh } s;
525*4b8b8d74SJaiprakash Singh /* struct ody_rnm_pf_trng_datx_s cn; */
526*4b8b8d74SJaiprakash Singh };
527*4b8b8d74SJaiprakash Singh typedef union ody_rnm_pf_trng_datx ody_rnm_pf_trng_datx_t;
528*4b8b8d74SJaiprakash Singh
529*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_PF_TRNG_DATX(uint64_t a) __attribute__ ((pure, always_inline));
ODY_RNM_PF_TRNG_DATX(uint64_t a)530*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_PF_TRNG_DATX(uint64_t a)
531*4b8b8d74SJaiprakash Singh {
532*4b8b8d74SJaiprakash Singh if (a <= 127)
533*4b8b8d74SJaiprakash Singh return 0x87e00f001000ll + 0x10ll * ((a) & 0x7f);
534*4b8b8d74SJaiprakash Singh __ody_csr_fatal("RNM_PF_TRNG_DATX", 1, a, 0, 0, 0, 0, 0);
535*4b8b8d74SJaiprakash Singh }
536*4b8b8d74SJaiprakash Singh
537*4b8b8d74SJaiprakash Singh #define typedef_ODY_RNM_PF_TRNG_DATX(a) ody_rnm_pf_trng_datx_t
538*4b8b8d74SJaiprakash Singh #define bustype_ODY_RNM_PF_TRNG_DATX(a) CSR_TYPE_RSL
539*4b8b8d74SJaiprakash Singh #define basename_ODY_RNM_PF_TRNG_DATX(a) "RNM_PF_TRNG_DATX"
540*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RNM_PF_TRNG_DATX(a) 0x0 /* PF_BAR0 */
541*4b8b8d74SJaiprakash Singh #define busnum_ODY_RNM_PF_TRNG_DATX(a) (a)
542*4b8b8d74SJaiprakash Singh #define arguments_ODY_RNM_PF_TRNG_DATX(a) (a), -1, -1, -1
543*4b8b8d74SJaiprakash Singh
544*4b8b8d74SJaiprakash Singh /**
545*4b8b8d74SJaiprakash Singh * Register (RSL) rnm_pf_trng_res#
546*4b8b8d74SJaiprakash Singh *
547*4b8b8d74SJaiprakash Singh * RNM Random Result Register
548*4b8b8d74SJaiprakash Singh */
549*4b8b8d74SJaiprakash Singh union ody_rnm_pf_trng_resx {
550*4b8b8d74SJaiprakash Singh uint64_t u;
551*4b8b8d74SJaiprakash Singh struct ody_rnm_pf_trng_resx_s {
552*4b8b8d74SJaiprakash Singh uint64_t res : 1;
553*4b8b8d74SJaiprakash Singh uint64_t reserved_1_63 : 63;
554*4b8b8d74SJaiprakash Singh } s;
555*4b8b8d74SJaiprakash Singh /* struct ody_rnm_pf_trng_resx_s cn; */
556*4b8b8d74SJaiprakash Singh };
557*4b8b8d74SJaiprakash Singh typedef union ody_rnm_pf_trng_resx ody_rnm_pf_trng_resx_t;
558*4b8b8d74SJaiprakash Singh
559*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_PF_TRNG_RESX(uint64_t a) __attribute__ ((pure, always_inline));
ODY_RNM_PF_TRNG_RESX(uint64_t a)560*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_PF_TRNG_RESX(uint64_t a)
561*4b8b8d74SJaiprakash Singh {
562*4b8b8d74SJaiprakash Singh if (a <= 127)
563*4b8b8d74SJaiprakash Singh return 0x87e00f001008ll + 0x10ll * ((a) & 0x7f);
564*4b8b8d74SJaiprakash Singh __ody_csr_fatal("RNM_PF_TRNG_RESX", 1, a, 0, 0, 0, 0, 0);
565*4b8b8d74SJaiprakash Singh }
566*4b8b8d74SJaiprakash Singh
567*4b8b8d74SJaiprakash Singh #define typedef_ODY_RNM_PF_TRNG_RESX(a) ody_rnm_pf_trng_resx_t
568*4b8b8d74SJaiprakash Singh #define bustype_ODY_RNM_PF_TRNG_RESX(a) CSR_TYPE_RSL
569*4b8b8d74SJaiprakash Singh #define basename_ODY_RNM_PF_TRNG_RESX(a) "RNM_PF_TRNG_RESX"
570*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RNM_PF_TRNG_RESX(a) 0x0 /* PF_BAR0 */
571*4b8b8d74SJaiprakash Singh #define busnum_ODY_RNM_PF_TRNG_RESX(a) (a)
572*4b8b8d74SJaiprakash Singh #define arguments_ODY_RNM_PF_TRNG_RESX(a) (a), -1, -1, -1
573*4b8b8d74SJaiprakash Singh
574*4b8b8d74SJaiprakash Singh /**
575*4b8b8d74SJaiprakash Singh * Register (RSL) rnm_pf_trng_result
576*4b8b8d74SJaiprakash Singh *
577*4b8b8d74SJaiprakash Singh * RNM Random Result Register
578*4b8b8d74SJaiprakash Singh */
579*4b8b8d74SJaiprakash Singh union ody_rnm_pf_trng_result {
580*4b8b8d74SJaiprakash Singh uint64_t u;
581*4b8b8d74SJaiprakash Singh struct ody_rnm_pf_trng_result_s {
582*4b8b8d74SJaiprakash Singh uint64_t reserved_0_63 : 64;
583*4b8b8d74SJaiprakash Singh } s;
584*4b8b8d74SJaiprakash Singh /* struct ody_rnm_pf_trng_result_s cn; */
585*4b8b8d74SJaiprakash Singh };
586*4b8b8d74SJaiprakash Singh typedef union ody_rnm_pf_trng_result ody_rnm_pf_trng_result_t;
587*4b8b8d74SJaiprakash Singh
588*4b8b8d74SJaiprakash Singh #define ODY_RNM_PF_TRNG_RESULT ODY_RNM_PF_TRNG_RESULT_FUNC()
589*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_PF_TRNG_RESULT_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RNM_PF_TRNG_RESULT_FUNC(void)590*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_PF_TRNG_RESULT_FUNC(void)
591*4b8b8d74SJaiprakash Singh {
592*4b8b8d74SJaiprakash Singh return 0x87e00f000408ll;
593*4b8b8d74SJaiprakash Singh }
594*4b8b8d74SJaiprakash Singh
595*4b8b8d74SJaiprakash Singh #define typedef_ODY_RNM_PF_TRNG_RESULT ody_rnm_pf_trng_result_t
596*4b8b8d74SJaiprakash Singh #define bustype_ODY_RNM_PF_TRNG_RESULT CSR_TYPE_RSL
597*4b8b8d74SJaiprakash Singh #define basename_ODY_RNM_PF_TRNG_RESULT "RNM_PF_TRNG_RESULT"
598*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RNM_PF_TRNG_RESULT 0x0 /* PF_BAR0 */
599*4b8b8d74SJaiprakash Singh #define busnum_ODY_RNM_PF_TRNG_RESULT 0
600*4b8b8d74SJaiprakash Singh #define arguments_ODY_RNM_PF_TRNG_RESULT -1, -1, -1, -1
601*4b8b8d74SJaiprakash Singh
602*4b8b8d74SJaiprakash Singh /**
603*4b8b8d74SJaiprakash Singh * Register (NCB) rnm_trng
604*4b8b8d74SJaiprakash Singh *
605*4b8b8d74SJaiprakash Singh * RNM True Random Number Register
606*4b8b8d74SJaiprakash Singh */
607*4b8b8d74SJaiprakash Singh union ody_rnm_trng {
608*4b8b8d74SJaiprakash Singh uint64_t u;
609*4b8b8d74SJaiprakash Singh struct ody_rnm_trng_s {
610*4b8b8d74SJaiprakash Singh uint64_t dat : 64;
611*4b8b8d74SJaiprakash Singh } s;
612*4b8b8d74SJaiprakash Singh /* struct ody_rnm_trng_s cn; */
613*4b8b8d74SJaiprakash Singh };
614*4b8b8d74SJaiprakash Singh typedef union ody_rnm_trng ody_rnm_trng_t;
615*4b8b8d74SJaiprakash Singh
616*4b8b8d74SJaiprakash Singh #define ODY_RNM_TRNG ODY_RNM_TRNG_FUNC()
617*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_TRNG_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RNM_TRNG_FUNC(void)618*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_TRNG_FUNC(void)
619*4b8b8d74SJaiprakash Singh {
620*4b8b8d74SJaiprakash Singh return 0x80f000800010ll;
621*4b8b8d74SJaiprakash Singh }
622*4b8b8d74SJaiprakash Singh
623*4b8b8d74SJaiprakash Singh #define typedef_ODY_RNM_TRNG ody_rnm_trng_t
624*4b8b8d74SJaiprakash Singh #define bustype_ODY_RNM_TRNG CSR_TYPE_NCB
625*4b8b8d74SJaiprakash Singh #define basename_ODY_RNM_TRNG "RNM_TRNG"
626*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RNM_TRNG 0x0 /* VF_BAR0 */
627*4b8b8d74SJaiprakash Singh #define busnum_ODY_RNM_TRNG 0
628*4b8b8d74SJaiprakash Singh #define arguments_ODY_RNM_TRNG -1, -1, -1, -1
629*4b8b8d74SJaiprakash Singh
630*4b8b8d74SJaiprakash Singh /**
631*4b8b8d74SJaiprakash Singh * Register (NCB) rnm_trng_result
632*4b8b8d74SJaiprakash Singh *
633*4b8b8d74SJaiprakash Singh * RNM Random Result Register
634*4b8b8d74SJaiprakash Singh */
635*4b8b8d74SJaiprakash Singh union ody_rnm_trng_result {
636*4b8b8d74SJaiprakash Singh uint64_t u;
637*4b8b8d74SJaiprakash Singh struct ody_rnm_trng_result_s {
638*4b8b8d74SJaiprakash Singh uint64_t reserved_0_63 : 64;
639*4b8b8d74SJaiprakash Singh } s;
640*4b8b8d74SJaiprakash Singh /* struct ody_rnm_trng_result_s cn; */
641*4b8b8d74SJaiprakash Singh };
642*4b8b8d74SJaiprakash Singh typedef union ody_rnm_trng_result ody_rnm_trng_result_t;
643*4b8b8d74SJaiprakash Singh
644*4b8b8d74SJaiprakash Singh #define ODY_RNM_TRNG_RESULT ODY_RNM_TRNG_RESULT_FUNC()
645*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_TRNG_RESULT_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RNM_TRNG_RESULT_FUNC(void)646*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_TRNG_RESULT_FUNC(void)
647*4b8b8d74SJaiprakash Singh {
648*4b8b8d74SJaiprakash Singh return 0x80f000800018ll;
649*4b8b8d74SJaiprakash Singh }
650*4b8b8d74SJaiprakash Singh
651*4b8b8d74SJaiprakash Singh #define typedef_ODY_RNM_TRNG_RESULT ody_rnm_trng_result_t
652*4b8b8d74SJaiprakash Singh #define bustype_ODY_RNM_TRNG_RESULT CSR_TYPE_NCB
653*4b8b8d74SJaiprakash Singh #define basename_ODY_RNM_TRNG_RESULT "RNM_TRNG_RESULT"
654*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RNM_TRNG_RESULT 0x0 /* VF_BAR0 */
655*4b8b8d74SJaiprakash Singh #define busnum_ODY_RNM_TRNG_RESULT 0
656*4b8b8d74SJaiprakash Singh #define arguments_ODY_RNM_TRNG_RESULT -1, -1, -1, -1
657*4b8b8d74SJaiprakash Singh
658*4b8b8d74SJaiprakash Singh /**
659*4b8b8d74SJaiprakash Singh * Register (NCB) rnm_vf_drbg_reseed_ctr
660*4b8b8d74SJaiprakash Singh *
661*4b8b8d74SJaiprakash Singh * RNM DRBG Reseed Counter Register
662*4b8b8d74SJaiprakash Singh * Number of DRBG engine requests serviced since the last reseed.
663*4b8b8d74SJaiprakash Singh * Read RNM_VF_DRBG_RESEED_INTERVAL for the number of requests before a reseed occurs.
664*4b8b8d74SJaiprakash Singh * When RNM_VF_DRBG_RESEED_CTR reaches RNM_VF_DRBG_RESEED_INTERVAL the engines will reseed
665*4b8b8d74SJaiprakash Singh * themselves.
666*4b8b8d74SJaiprakash Singh */
667*4b8b8d74SJaiprakash Singh union ody_rnm_vf_drbg_reseed_ctr {
668*4b8b8d74SJaiprakash Singh uint64_t u;
669*4b8b8d74SJaiprakash Singh struct ody_rnm_vf_drbg_reseed_ctr_s {
670*4b8b8d74SJaiprakash Singh uint64_t ctr : 48;
671*4b8b8d74SJaiprakash Singh uint64_t reserved_48_63 : 16;
672*4b8b8d74SJaiprakash Singh } s;
673*4b8b8d74SJaiprakash Singh /* struct ody_rnm_vf_drbg_reseed_ctr_s cn; */
674*4b8b8d74SJaiprakash Singh };
675*4b8b8d74SJaiprakash Singh typedef union ody_rnm_vf_drbg_reseed_ctr ody_rnm_vf_drbg_reseed_ctr_t;
676*4b8b8d74SJaiprakash Singh
677*4b8b8d74SJaiprakash Singh #define ODY_RNM_VF_DRBG_RESEED_CTR ODY_RNM_VF_DRBG_RESEED_CTR_FUNC()
678*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_VF_DRBG_RESEED_CTR_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RNM_VF_DRBG_RESEED_CTR_FUNC(void)679*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_VF_DRBG_RESEED_CTR_FUNC(void)
680*4b8b8d74SJaiprakash Singh {
681*4b8b8d74SJaiprakash Singh return 0x80f000800058ll;
682*4b8b8d74SJaiprakash Singh }
683*4b8b8d74SJaiprakash Singh
684*4b8b8d74SJaiprakash Singh #define typedef_ODY_RNM_VF_DRBG_RESEED_CTR ody_rnm_vf_drbg_reseed_ctr_t
685*4b8b8d74SJaiprakash Singh #define bustype_ODY_RNM_VF_DRBG_RESEED_CTR CSR_TYPE_NCB
686*4b8b8d74SJaiprakash Singh #define basename_ODY_RNM_VF_DRBG_RESEED_CTR "RNM_VF_DRBG_RESEED_CTR"
687*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RNM_VF_DRBG_RESEED_CTR 0x0 /* VF_BAR0 */
688*4b8b8d74SJaiprakash Singh #define busnum_ODY_RNM_VF_DRBG_RESEED_CTR 0
689*4b8b8d74SJaiprakash Singh #define arguments_ODY_RNM_VF_DRBG_RESEED_CTR -1, -1, -1, -1
690*4b8b8d74SJaiprakash Singh
691*4b8b8d74SJaiprakash Singh /**
692*4b8b8d74SJaiprakash Singh * Register (NCB) rnm_vf_drbg_reseed_interval
693*4b8b8d74SJaiprakash Singh *
694*4b8b8d74SJaiprakash Singh * RNM DRBG Reseed Interval Register
695*4b8b8d74SJaiprakash Singh * Number of DRBG requests to service before the DRBG engines reseed themselves.
696*4b8b8d74SJaiprakash Singh * Read RNM_VF_DRBG_RESEED_CTR for the number of requests since the last reseed.
697*4b8b8d74SJaiprakash Singh * When RNM_VF_DRBG_RESEED_CTR reaches RNM_VF_DRBG_RESEED_INTERVAL the engines will
698*4b8b8d74SJaiprakash Singh * reseed themselves.
699*4b8b8d74SJaiprakash Singh */
700*4b8b8d74SJaiprakash Singh union ody_rnm_vf_drbg_reseed_interval {
701*4b8b8d74SJaiprakash Singh uint64_t u;
702*4b8b8d74SJaiprakash Singh struct ody_rnm_vf_drbg_reseed_interval_s {
703*4b8b8d74SJaiprakash Singh uint64_t seedlife : 48;
704*4b8b8d74SJaiprakash Singh uint64_t reserved_48_63 : 16;
705*4b8b8d74SJaiprakash Singh } s;
706*4b8b8d74SJaiprakash Singh /* struct ody_rnm_vf_drbg_reseed_interval_s cn; */
707*4b8b8d74SJaiprakash Singh };
708*4b8b8d74SJaiprakash Singh typedef union ody_rnm_vf_drbg_reseed_interval ody_rnm_vf_drbg_reseed_interval_t;
709*4b8b8d74SJaiprakash Singh
710*4b8b8d74SJaiprakash Singh #define ODY_RNM_VF_DRBG_RESEED_INTERVAL ODY_RNM_VF_DRBG_RESEED_INTERVAL_FUNC()
711*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_VF_DRBG_RESEED_INTERVAL_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RNM_VF_DRBG_RESEED_INTERVAL_FUNC(void)712*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_VF_DRBG_RESEED_INTERVAL_FUNC(void)
713*4b8b8d74SJaiprakash Singh {
714*4b8b8d74SJaiprakash Singh return 0x80f000800050ll;
715*4b8b8d74SJaiprakash Singh }
716*4b8b8d74SJaiprakash Singh
717*4b8b8d74SJaiprakash Singh #define typedef_ODY_RNM_VF_DRBG_RESEED_INTERVAL ody_rnm_vf_drbg_reseed_interval_t
718*4b8b8d74SJaiprakash Singh #define bustype_ODY_RNM_VF_DRBG_RESEED_INTERVAL CSR_TYPE_NCB
719*4b8b8d74SJaiprakash Singh #define basename_ODY_RNM_VF_DRBG_RESEED_INTERVAL "RNM_VF_DRBG_RESEED_INTERVAL"
720*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RNM_VF_DRBG_RESEED_INTERVAL 0x0 /* VF_BAR0 */
721*4b8b8d74SJaiprakash Singh #define busnum_ODY_RNM_VF_DRBG_RESEED_INTERVAL 0
722*4b8b8d74SJaiprakash Singh #define arguments_ODY_RNM_VF_DRBG_RESEED_INTERVAL -1, -1, -1, -1
723*4b8b8d74SJaiprakash Singh
724*4b8b8d74SJaiprakash Singh /**
725*4b8b8d74SJaiprakash Singh * Register (NCB) rnm_vf_ebg_health
726*4b8b8d74SJaiprakash Singh *
727*4b8b8d74SJaiprakash Singh * RNM EBG Health Configuration and Status Register
728*4b8b8d74SJaiprakash Singh * This register is used to configure and check the status of the EBG (Entropy Bit
729*4b8b8d74SJaiprakash Singh * Generator) Health tests.
730*4b8b8d74SJaiprakash Singh */
731*4b8b8d74SJaiprakash Singh union ody_rnm_vf_ebg_health {
732*4b8b8d74SJaiprakash Singh uint64_t u;
733*4b8b8d74SJaiprakash Singh struct ody_rnm_vf_ebg_health_s {
734*4b8b8d74SJaiprakash Singh uint64_t reserved_0_19 : 20;
735*4b8b8d74SJaiprakash Singh uint64_t ct_err : 1;
736*4b8b8d74SJaiprakash Singh uint64_t st_err : 1;
737*4b8b8d74SJaiprakash Singh uint64_t st_done : 1;
738*4b8b8d74SJaiprakash Singh uint64_t err_adp : 1;
739*4b8b8d74SJaiprakash Singh uint64_t err_rep : 1;
740*4b8b8d74SJaiprakash Singh uint64_t reserved_25_63 : 39;
741*4b8b8d74SJaiprakash Singh } s;
742*4b8b8d74SJaiprakash Singh /* struct ody_rnm_vf_ebg_health_s cn; */
743*4b8b8d74SJaiprakash Singh };
744*4b8b8d74SJaiprakash Singh typedef union ody_rnm_vf_ebg_health ody_rnm_vf_ebg_health_t;
745*4b8b8d74SJaiprakash Singh
746*4b8b8d74SJaiprakash Singh #define ODY_RNM_VF_EBG_HEALTH ODY_RNM_VF_EBG_HEALTH_FUNC()
747*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_VF_EBG_HEALTH_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RNM_VF_EBG_HEALTH_FUNC(void)748*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_VF_EBG_HEALTH_FUNC(void)
749*4b8b8d74SJaiprakash Singh {
750*4b8b8d74SJaiprakash Singh return 0x80f000800048ll;
751*4b8b8d74SJaiprakash Singh }
752*4b8b8d74SJaiprakash Singh
753*4b8b8d74SJaiprakash Singh #define typedef_ODY_RNM_VF_EBG_HEALTH ody_rnm_vf_ebg_health_t
754*4b8b8d74SJaiprakash Singh #define bustype_ODY_RNM_VF_EBG_HEALTH CSR_TYPE_NCB
755*4b8b8d74SJaiprakash Singh #define basename_ODY_RNM_VF_EBG_HEALTH "RNM_VF_EBG_HEALTH"
756*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RNM_VF_EBG_HEALTH 0x0 /* VF_BAR0 */
757*4b8b8d74SJaiprakash Singh #define busnum_ODY_RNM_VF_EBG_HEALTH 0
758*4b8b8d74SJaiprakash Singh #define arguments_ODY_RNM_VF_EBG_HEALTH -1, -1, -1, -1
759*4b8b8d74SJaiprakash Singh
760*4b8b8d74SJaiprakash Singh /**
761*4b8b8d74SJaiprakash Singh * Register (NCB) rnm_vf_trng_dat#
762*4b8b8d74SJaiprakash Singh *
763*4b8b8d74SJaiprakash Singh * RNM True Random Number Register
764*4b8b8d74SJaiprakash Singh */
765*4b8b8d74SJaiprakash Singh union ody_rnm_vf_trng_datx {
766*4b8b8d74SJaiprakash Singh uint64_t u;
767*4b8b8d74SJaiprakash Singh struct ody_rnm_vf_trng_datx_s {
768*4b8b8d74SJaiprakash Singh uint64_t dat : 64;
769*4b8b8d74SJaiprakash Singh } s;
770*4b8b8d74SJaiprakash Singh /* struct ody_rnm_vf_trng_datx_s cn; */
771*4b8b8d74SJaiprakash Singh };
772*4b8b8d74SJaiprakash Singh typedef union ody_rnm_vf_trng_datx ody_rnm_vf_trng_datx_t;
773*4b8b8d74SJaiprakash Singh
774*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_VF_TRNG_DATX(uint64_t a) __attribute__ ((pure, always_inline));
ODY_RNM_VF_TRNG_DATX(uint64_t a)775*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_VF_TRNG_DATX(uint64_t a)
776*4b8b8d74SJaiprakash Singh {
777*4b8b8d74SJaiprakash Singh if (a <= 127)
778*4b8b8d74SJaiprakash Singh return 0x80f000800800ll + 0x10ll * ((a) & 0x7f);
779*4b8b8d74SJaiprakash Singh __ody_csr_fatal("RNM_VF_TRNG_DATX", 1, a, 0, 0, 0, 0, 0);
780*4b8b8d74SJaiprakash Singh }
781*4b8b8d74SJaiprakash Singh
782*4b8b8d74SJaiprakash Singh #define typedef_ODY_RNM_VF_TRNG_DATX(a) ody_rnm_vf_trng_datx_t
783*4b8b8d74SJaiprakash Singh #define bustype_ODY_RNM_VF_TRNG_DATX(a) CSR_TYPE_NCB
784*4b8b8d74SJaiprakash Singh #define basename_ODY_RNM_VF_TRNG_DATX(a) "RNM_VF_TRNG_DATX"
785*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RNM_VF_TRNG_DATX(a) 0x0 /* VF_BAR0 */
786*4b8b8d74SJaiprakash Singh #define busnum_ODY_RNM_VF_TRNG_DATX(a) (a)
787*4b8b8d74SJaiprakash Singh #define arguments_ODY_RNM_VF_TRNG_DATX(a) (a), -1, -1, -1
788*4b8b8d74SJaiprakash Singh
789*4b8b8d74SJaiprakash Singh /**
790*4b8b8d74SJaiprakash Singh * Register (NCB) rnm_vf_trng_res#
791*4b8b8d74SJaiprakash Singh *
792*4b8b8d74SJaiprakash Singh * RNM Random Result Register
793*4b8b8d74SJaiprakash Singh */
794*4b8b8d74SJaiprakash Singh union ody_rnm_vf_trng_resx {
795*4b8b8d74SJaiprakash Singh uint64_t u;
796*4b8b8d74SJaiprakash Singh struct ody_rnm_vf_trng_resx_s {
797*4b8b8d74SJaiprakash Singh uint64_t res : 1;
798*4b8b8d74SJaiprakash Singh uint64_t reserved_1_63 : 63;
799*4b8b8d74SJaiprakash Singh } s;
800*4b8b8d74SJaiprakash Singh /* struct ody_rnm_vf_trng_resx_s cn; */
801*4b8b8d74SJaiprakash Singh };
802*4b8b8d74SJaiprakash Singh typedef union ody_rnm_vf_trng_resx ody_rnm_vf_trng_resx_t;
803*4b8b8d74SJaiprakash Singh
804*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_VF_TRNG_RESX(uint64_t a) __attribute__ ((pure, always_inline));
ODY_RNM_VF_TRNG_RESX(uint64_t a)805*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RNM_VF_TRNG_RESX(uint64_t a)
806*4b8b8d74SJaiprakash Singh {
807*4b8b8d74SJaiprakash Singh if (a <= 127)
808*4b8b8d74SJaiprakash Singh return 0x80f000800808ll + 0x10ll * ((a) & 0x7f);
809*4b8b8d74SJaiprakash Singh __ody_csr_fatal("RNM_VF_TRNG_RESX", 1, a, 0, 0, 0, 0, 0);
810*4b8b8d74SJaiprakash Singh }
811*4b8b8d74SJaiprakash Singh
812*4b8b8d74SJaiprakash Singh #define typedef_ODY_RNM_VF_TRNG_RESX(a) ody_rnm_vf_trng_resx_t
813*4b8b8d74SJaiprakash Singh #define bustype_ODY_RNM_VF_TRNG_RESX(a) CSR_TYPE_NCB
814*4b8b8d74SJaiprakash Singh #define basename_ODY_RNM_VF_TRNG_RESX(a) "RNM_VF_TRNG_RESX"
815*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RNM_VF_TRNG_RESX(a) 0x0 /* VF_BAR0 */
816*4b8b8d74SJaiprakash Singh #define busnum_ODY_RNM_VF_TRNG_RESX(a) (a)
817*4b8b8d74SJaiprakash Singh #define arguments_ODY_RNM_VF_TRNG_RESX(a) (a), -1, -1, -1
818*4b8b8d74SJaiprakash Singh
819*4b8b8d74SJaiprakash Singh #endif /* __ODY_CSRS_RNM_H__ */
820