1*4b8b8d74SJaiprakash Singh #ifndef __ODY_CSRS_PEMRC_H__
2*4b8b8d74SJaiprakash Singh #define __ODY_CSRS_PEMRC_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 * PEMRC.
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 pemrc_bar_e
24*4b8b8d74SJaiprakash Singh *
25*4b8b8d74SJaiprakash Singh * PEM Base Address Register Enumeration
26*4b8b8d74SJaiprakash Singh * Enumerates the base address registers.
27*4b8b8d74SJaiprakash Singh */
28*4b8b8d74SJaiprakash Singh #define ODY_PEMRC_BAR_E_PEMRCX_PF_BAR0(a) (0x8e0e00000000ll + 0x1000000000ll * (a))
29*4b8b8d74SJaiprakash Singh #define ODY_PEMRC_BAR_E_PEMRCX_PF_BAR0_SIZE 0x100000ull
30*4b8b8d74SJaiprakash Singh
31*4b8b8d74SJaiprakash Singh /**
32*4b8b8d74SJaiprakash Singh * Enumeration pemrc_int_vec_e
33*4b8b8d74SJaiprakash Singh *
34*4b8b8d74SJaiprakash Singh * PEM RC MSI-X Vector Enumeration
35*4b8b8d74SJaiprakash Singh * Enumerates the MSI-X interrupt vectors.
36*4b8b8d74SJaiprakash Singh */
37*4b8b8d74SJaiprakash Singh #define ODY_PEMRC_INT_VEC_E_ERROR_AERI (0)
38*4b8b8d74SJaiprakash Singh #define ODY_PEMRC_INT_VEC_E_HP_PMEI (1)
39*4b8b8d74SJaiprakash Singh
40*4b8b8d74SJaiprakash Singh /**
41*4b8b8d74SJaiprakash Singh * Register (NCB) pemrc#_msix_pba#
42*4b8b8d74SJaiprakash Singh *
43*4b8b8d74SJaiprakash Singh * PEM RC MSI-X Pending Bit Array Registers
44*4b8b8d74SJaiprakash Singh * This register is the MSI-X PBA table, the bit number is indexed by the PEMRC_INT_VEC_E enumeration.
45*4b8b8d74SJaiprakash Singh */
46*4b8b8d74SJaiprakash Singh union ody_pemrcx_msix_pbax {
47*4b8b8d74SJaiprakash Singh uint64_t u;
48*4b8b8d74SJaiprakash Singh struct ody_pemrcx_msix_pbax_s {
49*4b8b8d74SJaiprakash Singh uint64_t pend : 64;
50*4b8b8d74SJaiprakash Singh } s;
51*4b8b8d74SJaiprakash Singh /* struct ody_pemrcx_msix_pbax_s cn; */
52*4b8b8d74SJaiprakash Singh };
53*4b8b8d74SJaiprakash Singh typedef union ody_pemrcx_msix_pbax ody_pemrcx_msix_pbax_t;
54*4b8b8d74SJaiprakash Singh
55*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_PEMRCX_MSIX_PBAX(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_PEMRCX_MSIX_PBAX(uint64_t a,uint64_t b)56*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_PEMRCX_MSIX_PBAX(uint64_t a, uint64_t b)
57*4b8b8d74SJaiprakash Singh {
58*4b8b8d74SJaiprakash Singh if ((a <= 15) && (b == 0))
59*4b8b8d74SJaiprakash Singh return 0x8e0e000f0000ll + 0x1000000000ll * ((a) & 0xf);
60*4b8b8d74SJaiprakash Singh __ody_csr_fatal("PEMRCX_MSIX_PBAX", 2, a, b, 0, 0, 0, 0);
61*4b8b8d74SJaiprakash Singh }
62*4b8b8d74SJaiprakash Singh
63*4b8b8d74SJaiprakash Singh #define typedef_ODY_PEMRCX_MSIX_PBAX(a, b) ody_pemrcx_msix_pbax_t
64*4b8b8d74SJaiprakash Singh #define bustype_ODY_PEMRCX_MSIX_PBAX(a, b) CSR_TYPE_NCB
65*4b8b8d74SJaiprakash Singh #define basename_ODY_PEMRCX_MSIX_PBAX(a, b) "PEMRCX_MSIX_PBAX"
66*4b8b8d74SJaiprakash Singh #define device_bar_ODY_PEMRCX_MSIX_PBAX(a, b) 0x0 /* PF_BAR0 */
67*4b8b8d74SJaiprakash Singh #define busnum_ODY_PEMRCX_MSIX_PBAX(a, b) (a)
68*4b8b8d74SJaiprakash Singh #define arguments_ODY_PEMRCX_MSIX_PBAX(a, b) (a), (b), -1, -1
69*4b8b8d74SJaiprakash Singh
70*4b8b8d74SJaiprakash Singh /**
71*4b8b8d74SJaiprakash Singh * Register (NCB) pemrc#_msix_vec#_addr
72*4b8b8d74SJaiprakash Singh *
73*4b8b8d74SJaiprakash Singh * PEM RC MSI-X Vector Table Address Registers
74*4b8b8d74SJaiprakash Singh * This register is the MSI-X vector table, indexed by the PEMRC_INT_VEC_E enumeration.
75*4b8b8d74SJaiprakash Singh */
76*4b8b8d74SJaiprakash Singh union ody_pemrcx_msix_vecx_addr {
77*4b8b8d74SJaiprakash Singh uint64_t u;
78*4b8b8d74SJaiprakash Singh struct ody_pemrcx_msix_vecx_addr_s {
79*4b8b8d74SJaiprakash Singh uint64_t secvec : 1;
80*4b8b8d74SJaiprakash Singh uint64_t reserved_1 : 1;
81*4b8b8d74SJaiprakash Singh uint64_t addr : 51;
82*4b8b8d74SJaiprakash Singh uint64_t reserved_53_63 : 11;
83*4b8b8d74SJaiprakash Singh } s;
84*4b8b8d74SJaiprakash Singh /* struct ody_pemrcx_msix_vecx_addr_s cn; */
85*4b8b8d74SJaiprakash Singh };
86*4b8b8d74SJaiprakash Singh typedef union ody_pemrcx_msix_vecx_addr ody_pemrcx_msix_vecx_addr_t;
87*4b8b8d74SJaiprakash Singh
88*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_PEMRCX_MSIX_VECX_ADDR(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_PEMRCX_MSIX_VECX_ADDR(uint64_t a,uint64_t b)89*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_PEMRCX_MSIX_VECX_ADDR(uint64_t a, uint64_t b)
90*4b8b8d74SJaiprakash Singh {
91*4b8b8d74SJaiprakash Singh if ((a <= 15) && (b <= 1))
92*4b8b8d74SJaiprakash Singh return 0x8e0e00000000ll + 0x1000000000ll * ((a) & 0xf) + 0x10ll * ((b) & 0x1);
93*4b8b8d74SJaiprakash Singh __ody_csr_fatal("PEMRCX_MSIX_VECX_ADDR", 2, a, b, 0, 0, 0, 0);
94*4b8b8d74SJaiprakash Singh }
95*4b8b8d74SJaiprakash Singh
96*4b8b8d74SJaiprakash Singh #define typedef_ODY_PEMRCX_MSIX_VECX_ADDR(a, b) ody_pemrcx_msix_vecx_addr_t
97*4b8b8d74SJaiprakash Singh #define bustype_ODY_PEMRCX_MSIX_VECX_ADDR(a, b) CSR_TYPE_NCB
98*4b8b8d74SJaiprakash Singh #define basename_ODY_PEMRCX_MSIX_VECX_ADDR(a, b) "PEMRCX_MSIX_VECX_ADDR"
99*4b8b8d74SJaiprakash Singh #define device_bar_ODY_PEMRCX_MSIX_VECX_ADDR(a, b) 0x0 /* PF_BAR0 */
100*4b8b8d74SJaiprakash Singh #define busnum_ODY_PEMRCX_MSIX_VECX_ADDR(a, b) (a)
101*4b8b8d74SJaiprakash Singh #define arguments_ODY_PEMRCX_MSIX_VECX_ADDR(a, b) (a), (b), -1, -1
102*4b8b8d74SJaiprakash Singh
103*4b8b8d74SJaiprakash Singh /**
104*4b8b8d74SJaiprakash Singh * Register (NCB) pemrc#_msix_vec#_ctl
105*4b8b8d74SJaiprakash Singh *
106*4b8b8d74SJaiprakash Singh * PEM RC MSI-X Vector Table Control and Data Registers
107*4b8b8d74SJaiprakash Singh * This register is the MSI-X vector table, indexed by the PEMRC_INT_VEC_E enumeration.
108*4b8b8d74SJaiprakash Singh */
109*4b8b8d74SJaiprakash Singh union ody_pemrcx_msix_vecx_ctl {
110*4b8b8d74SJaiprakash Singh uint64_t u;
111*4b8b8d74SJaiprakash Singh struct ody_pemrcx_msix_vecx_ctl_s {
112*4b8b8d74SJaiprakash Singh uint64_t data : 32;
113*4b8b8d74SJaiprakash Singh uint64_t mask : 1;
114*4b8b8d74SJaiprakash Singh uint64_t reserved_33_63 : 31;
115*4b8b8d74SJaiprakash Singh } s;
116*4b8b8d74SJaiprakash Singh /* struct ody_pemrcx_msix_vecx_ctl_s cn; */
117*4b8b8d74SJaiprakash Singh };
118*4b8b8d74SJaiprakash Singh typedef union ody_pemrcx_msix_vecx_ctl ody_pemrcx_msix_vecx_ctl_t;
119*4b8b8d74SJaiprakash Singh
120*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_PEMRCX_MSIX_VECX_CTL(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_PEMRCX_MSIX_VECX_CTL(uint64_t a,uint64_t b)121*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_PEMRCX_MSIX_VECX_CTL(uint64_t a, uint64_t b)
122*4b8b8d74SJaiprakash Singh {
123*4b8b8d74SJaiprakash Singh if ((a <= 15) && (b <= 1))
124*4b8b8d74SJaiprakash Singh return 0x8e0e00000008ll + 0x1000000000ll * ((a) & 0xf) + 0x10ll * ((b) & 0x1);
125*4b8b8d74SJaiprakash Singh __ody_csr_fatal("PEMRCX_MSIX_VECX_CTL", 2, a, b, 0, 0, 0, 0);
126*4b8b8d74SJaiprakash Singh }
127*4b8b8d74SJaiprakash Singh
128*4b8b8d74SJaiprakash Singh #define typedef_ODY_PEMRCX_MSIX_VECX_CTL(a, b) ody_pemrcx_msix_vecx_ctl_t
129*4b8b8d74SJaiprakash Singh #define bustype_ODY_PEMRCX_MSIX_VECX_CTL(a, b) CSR_TYPE_NCB
130*4b8b8d74SJaiprakash Singh #define basename_ODY_PEMRCX_MSIX_VECX_CTL(a, b) "PEMRCX_MSIX_VECX_CTL"
131*4b8b8d74SJaiprakash Singh #define device_bar_ODY_PEMRCX_MSIX_VECX_CTL(a, b) 0x0 /* PF_BAR0 */
132*4b8b8d74SJaiprakash Singh #define busnum_ODY_PEMRCX_MSIX_VECX_CTL(a, b) (a)
133*4b8b8d74SJaiprakash Singh #define arguments_ODY_PEMRCX_MSIX_VECX_CTL(a, b) (a), (b), -1, -1
134*4b8b8d74SJaiprakash Singh
135*4b8b8d74SJaiprakash Singh #endif /* __ODY_CSRS_PEMRC_H__ */
136