1 /* SPDX-License-Identifier: BSD-3-Clause
3 * Copyright(c) 2019-2020 Xilinx, Inc.
4 * Copyright(c) 2018-2019 Solarflare Communications Inc.
7 #ifndef _SYS_RHEAD_IMPL_H
8 #define _SYS_RHEAD_IMPL_H
16 * Riverhead requires physically contiguous event rings (so, just one
17 * DMA address is sufficient to represent it), but MCDI interface is still
18 * in terms of 4k size 4k-aligned DMA buffers.
20 #define RHEAD_EVQ_MAXNBUFS 32
22 #define RHEAD_EVQ_MAXNEVS 16384
23 #define RHEAD_EVQ_MINNEVS 256
25 #define RHEAD_RXQ_MAXNDESCS 16384
26 #define RHEAD_RXQ_MINNDESCS 256
28 #define RHEAD_TXQ_MAXNDESCS 16384
29 #define RHEAD_TXQ_MINNDESCS 256
31 #define RHEAD_EVQ_DESC_SIZE (sizeof (efx_qword_t))
32 #define RHEAD_RXQ_DESC_SIZE (sizeof (efx_qword_t))
33 #define RHEAD_TXQ_DESC_SIZE (sizeof (efx_oword_t))
39 extern __checkReturn efx_rc_t
44 extern __checkReturn efx_rc_t
49 extern __checkReturn efx_rc_t
50 rhead_nic_set_drv_limits(
51 __inout efx_nic_t *enp,
52 __in efx_drv_limits_t *edlp);
55 extern __checkReturn efx_rc_t
56 rhead_nic_get_vi_pool(
58 __out uint32_t *vi_countp);
61 extern __checkReturn efx_rc_t
62 rhead_nic_get_bar_region(
64 __in efx_nic_region_t region,
65 __out uint32_t *offsetp,
69 extern __checkReturn efx_rc_t
74 extern __checkReturn efx_rc_t
79 extern __checkReturn boolean_t
80 rhead_nic_hw_unavailable(
85 rhead_nic_set_hw_unavailable(
91 extern __checkReturn efx_rc_t
92 rhead_nic_register_test(
95 #endif /* EFSYS_OPT_DIAG */
100 __in efx_nic_t *enp);
105 __in efx_nic_t *enp);
111 extern __checkReturn efx_rc_t
113 __in efx_nic_t *enp);
118 __in efx_nic_t *enp);
121 extern __checkReturn efx_rc_t
124 __in unsigned int index,
125 __in efsys_mem_t *esmp,
130 __in efx_evq_t *eep);
135 __in efx_evq_t *eep);
138 extern __checkReturn efx_rc_t
141 __in unsigned int count);
153 __inout unsigned int *countp,
154 __in const efx_ev_callbacks_t *eecp,
158 extern __checkReturn efx_rc_t
161 __in unsigned int us);
167 rhead_ev_qstats_update(
169 __inout_ecount(EV_NQSTATS) efsys_stat_t *stat);
171 #endif /* EFSYS_OPT_QSTATS */
177 extern __checkReturn efx_rc_t
180 __in efx_intr_type_t type,
181 __in efsys_mem_t *esmp);
186 __in efx_nic_t *enp);
191 __in efx_nic_t *enp);
195 rhead_intr_disable_unlocked(
196 __in efx_nic_t *enp);
199 extern __checkReturn efx_rc_t
202 __in unsigned int level);
206 rhead_intr_status_line(
208 __out boolean_t *fatalp,
209 __out uint32_t *qmaskp);
213 rhead_intr_status_message(
215 __in unsigned int message,
216 __out boolean_t *fatalp);
221 __in efx_nic_t *enp);
226 __in efx_nic_t *enp);
233 #endif /* _SYS_RHEAD_IMPL_H */