1ae9b4017SNavdeep Parhar /*-
24d846d26SWarner Losh * SPDX-License-Identifier: BSD-2-Clause
3ae9b4017SNavdeep Parhar *
4ae9b4017SNavdeep Parhar * Copyright (c) 2018 Chelsio Communications, Inc.
5ae9b4017SNavdeep Parhar * All rights reserved.
6ae9b4017SNavdeep Parhar *
7ae9b4017SNavdeep Parhar * Redistribution and use in source and binary forms, with or without
8ae9b4017SNavdeep Parhar * modification, are permitted provided that the following conditions
9ae9b4017SNavdeep Parhar * are met:
10ae9b4017SNavdeep Parhar * 1. Redistributions of source code must retain the above copyright
11ae9b4017SNavdeep Parhar * notice, this list of conditions and the following disclaimer.
12ae9b4017SNavdeep Parhar * 2. Redistributions in binary form must reproduce the above copyright
13ae9b4017SNavdeep Parhar * notice, this list of conditions and the following disclaimer in the
14ae9b4017SNavdeep Parhar * documentation and/or other materials provided with the distribution.
15ae9b4017SNavdeep Parhar *
16ae9b4017SNavdeep Parhar * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17ae9b4017SNavdeep Parhar * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18ae9b4017SNavdeep Parhar * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19ae9b4017SNavdeep Parhar * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20ae9b4017SNavdeep Parhar * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21ae9b4017SNavdeep Parhar * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22ae9b4017SNavdeep Parhar * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23ae9b4017SNavdeep Parhar * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24ae9b4017SNavdeep Parhar * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25ae9b4017SNavdeep Parhar * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26ae9b4017SNavdeep Parhar * SUCH DAMAGE.
27ae9b4017SNavdeep Parhar */
28ae9b4017SNavdeep Parhar
29ae9b4017SNavdeep Parhar #include <sys/cdefs.h>
30ae9b4017SNavdeep Parhar /* Auto-generated file. Avoid direct editing. */
31ae9b4017SNavdeep Parhar /* Edits will be lost when file regenerated. */
32ae9b4017SNavdeep Parhar #include <stdio.h>
33ae9b4017SNavdeep Parhar #include "tcb_common.h"
34ae9b4017SNavdeep Parhar
t5_display_tcb_aux_0(_TCBVAR * tvp,int aux)35ae9b4017SNavdeep Parhar void t5_display_tcb_aux_0 (_TCBVAR *tvp, int aux)
36ae9b4017SNavdeep Parhar {
37ae9b4017SNavdeep Parhar
38ae9b4017SNavdeep Parhar
39ae9b4017SNavdeep Parhar
40ae9b4017SNavdeep Parhar
41ae9b4017SNavdeep Parhar
42ae9b4017SNavdeep Parhar
43ae9b4017SNavdeep Parhar
44ae9b4017SNavdeep Parhar PR("STATE:\n");
45ae9b4017SNavdeep Parhar PR(" %-12s (%-2u), %s, lock_tid %u, rss_fw %u\n",
46ae9b4017SNavdeep Parhar spr_tcp_state(val("t_state")),
47ae9b4017SNavdeep Parhar val("t_state"),
48ae9b4017SNavdeep Parhar spr_ip_version(val("ip_version")),
49ae9b4017SNavdeep Parhar val("lock_tid"),
50ae9b4017SNavdeep Parhar val("rss_fw")
51ae9b4017SNavdeep Parhar );
52ae9b4017SNavdeep Parhar PR(" l2t_ix 0x%x, smac sel 0x%x, tos 0x%x\n",
53ae9b4017SNavdeep Parhar val("l2t_ix"),
54ae9b4017SNavdeep Parhar val("smac_sel"),
55ae9b4017SNavdeep Parhar val("tos")
56ae9b4017SNavdeep Parhar );
57ae9b4017SNavdeep Parhar PR(" maxseg %u, recv_scaleflag %u, recv_tstmp %u, recv_sack %u\n",
58ae9b4017SNavdeep Parhar val("t_maxseg"), val("recv_scale"),
59ae9b4017SNavdeep Parhar val("recv_tstmp"), val("recv_sack"));
60ae9b4017SNavdeep Parhar
61ae9b4017SNavdeep Parhar
62ae9b4017SNavdeep Parhar PR("TIMERS:\n"); /* **************************************** */
63ae9b4017SNavdeep Parhar PR(" timer %u, dack_timer %u\n",
64ae9b4017SNavdeep Parhar val("timer"), val("dack_timer"));
65ae9b4017SNavdeep Parhar PR(" mod_schd: tx: %u, rx: %u, reason 0x%1x\n",
66ae9b4017SNavdeep Parhar val("mod_schd_tx"),
67ae9b4017SNavdeep Parhar val("mod_schd_rx"),
68ae9b4017SNavdeep Parhar ((val("mod_schd_reason2")<<2) | (val("mod_schd_reason1")<<1) |
69ae9b4017SNavdeep Parhar val("mod_schd_reason0"))
70ae9b4017SNavdeep Parhar );
71ae9b4017SNavdeep Parhar
72ae9b4017SNavdeep Parhar
73ae9b4017SNavdeep Parhar PR(" max_rt %-2u, rxtshift %u, keepalive %u\n",
74ae9b4017SNavdeep Parhar val("max_rt"), val("t_rxtshift"),
75ae9b4017SNavdeep Parhar val("keepalive"));
76ae9b4017SNavdeep Parhar PR(" timestamp_offset 0x%x, timestamp 0x%x\n",
77ae9b4017SNavdeep Parhar val("timestamp_offset"),val("timestamp"));
78ae9b4017SNavdeep Parhar
79ae9b4017SNavdeep Parhar
80ae9b4017SNavdeep Parhar PR(" t_rtt_ts_recent_age %u t_rttseq_recent %u\n",
81ae9b4017SNavdeep Parhar val("t_rtt_ts_recent_age"), val("t_rtseq_recent"));
82ae9b4017SNavdeep Parhar PR(" t_srtt %u, t_rttvar %u\n",
83ae9b4017SNavdeep Parhar val("t_srtt"),val("t_rttvar"));
84ae9b4017SNavdeep Parhar
85ae9b4017SNavdeep Parhar
86ae9b4017SNavdeep Parhar
87ae9b4017SNavdeep Parhar
88ae9b4017SNavdeep Parhar
89ae9b4017SNavdeep Parhar
90ae9b4017SNavdeep Parhar PR("TRANSMIT BUFFER:\n"); /* *************************** */
91ae9b4017SNavdeep Parhar PR(" snd_una %u, snd_nxt %u, snd_max %u, tx_max %u\n",
92ae9b4017SNavdeep Parhar val("snd_una"),val("snd_nxt"),
93ae9b4017SNavdeep Parhar val("snd_max"),val("tx_max"));
94ae9b4017SNavdeep Parhar PR(" core_fin %u, tx_hdr_offset %u\n",
95ae9b4017SNavdeep Parhar val("core_fin"), SEQ_SUB(val("tx_max"),val("snd_una"))
96ae9b4017SNavdeep Parhar );
97ae9b4017SNavdeep Parhar if (val("recv_scale") && !val("active_open")) {
98ae9b4017SNavdeep Parhar PR(" rcv_adv %-5u << %-2u == %u (recv_scaleflag %u rcv_scale %u active open %u)\n",
99ae9b4017SNavdeep Parhar val("rcv_adv"), val("rcv_scale"),
100ae9b4017SNavdeep Parhar val("rcv_adv") << val("rcv_scale"),
101ae9b4017SNavdeep Parhar val("recv_scale"), val("rcv_scale"), val("active_open"));
102ae9b4017SNavdeep Parhar } else {
103ae9b4017SNavdeep Parhar PR(" rcv_adv %-5u (rcv_scale %-2u recv_scaleflag %u active_open %u)\n",
104ae9b4017SNavdeep Parhar val("rcv_adv"), val("rcv_scale"),
105ae9b4017SNavdeep Parhar val("recv_scale"), val("active_open"));
106ae9b4017SNavdeep Parhar }
107ae9b4017SNavdeep Parhar
108ae9b4017SNavdeep Parhar PR(" snd_cwnd %-5u snd_ssthresh %u snd_rec %u\n",
109ae9b4017SNavdeep Parhar val("snd_cwnd") , val("snd_ssthresh"), val("snd_rec")
110ae9b4017SNavdeep Parhar );
111ae9b4017SNavdeep Parhar
112ae9b4017SNavdeep Parhar
113ae9b4017SNavdeep Parhar
114ae9b4017SNavdeep Parhar
115ae9b4017SNavdeep Parhar PR(" cctrl: sel %s, ecn %u, ece %u, cwr %u, rfr %u\n",
116ae9b4017SNavdeep Parhar spr_cctrl_sel(val("cctrl_sel0"),val("cctrl_sel1")),
117ae9b4017SNavdeep Parhar val("cctrl_ecn"), val("cctrl_ece"), val("cctrl_cwr"),
118ae9b4017SNavdeep Parhar val("cctrl_rfr"));
119ae9b4017SNavdeep Parhar PR(" t_dupacks %u, dupack_count_odd %u, fast_recovery %u\n",
120ae9b4017SNavdeep Parhar val("t_dupacks"), val("dupack_count_odd"),val("fast_recovery"));
121ae9b4017SNavdeep Parhar PR(" core_more %u, core_urg, %u core_push %u,",
122ae9b4017SNavdeep Parhar val("core_more"),val("core_urg"),val("core_push"));
123ae9b4017SNavdeep Parhar PR(" core_flush %u\n",val("core_flush"));
124ae9b4017SNavdeep Parhar PR(" nagle %u, ssws_disable %u, turbo %u,",
125ae9b4017SNavdeep Parhar val("nagle"), val("ssws_disabled"), val("turbo"));
126ae9b4017SNavdeep Parhar PR(" tx_pdu_out %u\n",val("tx_pdu_out"));
127ae9b4017SNavdeep Parhar PR(" tx_pace_auto %u, tx_pace_fixed %u, tx_queue %u",
128ae9b4017SNavdeep Parhar val("tx_pace_auto"),val("tx_pace_fixed"),val("tx_queue"));
129ae9b4017SNavdeep Parhar
130ae9b4017SNavdeep Parhar
131ae9b4017SNavdeep Parhar PR(" tx_quiesce %u\n",val("tx_quiesce"));
132ae9b4017SNavdeep Parhar PR(" tx_channel %u, tx_channel1 %u, tx_channel0 %u\n",
133ae9b4017SNavdeep Parhar val("tx_channel"),
134ae9b4017SNavdeep Parhar (val("tx_channel")>>1)&1,
135ae9b4017SNavdeep Parhar val("tx_channel")&1
136ae9b4017SNavdeep Parhar );
137ae9b4017SNavdeep Parhar
138ae9b4017SNavdeep Parhar
139ae9b4017SNavdeep Parhar
140ae9b4017SNavdeep Parhar
141ae9b4017SNavdeep Parhar PR(" tx_hdr_ptr 0x%-6x tx_last_ptr 0x%-6x tx_compact %u\n",
142ae9b4017SNavdeep Parhar val("tx_hdr_ptr"),val("tx_last_ptr"),val("tx_compact"));
143ae9b4017SNavdeep Parhar
144ae9b4017SNavdeep Parhar
145ae9b4017SNavdeep Parhar
146ae9b4017SNavdeep Parhar
147ae9b4017SNavdeep Parhar PR("RECEIVE BUFFER:\n"); /* *************************** */
148ae9b4017SNavdeep Parhar PR(" last_ack_sent %-10u rx_compact %u\n",
149ae9b4017SNavdeep Parhar val("ts_last_ack_sent"),val("rx_compact"));
150ae9b4017SNavdeep Parhar PR(" rcv_nxt %-10u hdr_off %-10u\n",
151ae9b4017SNavdeep Parhar val("rcv_nxt"), val("rx_hdr_offset"));
152ae9b4017SNavdeep Parhar PR(" frag0_idx %-10u length %-10u rx_ptr 0x%-8x\n",
153ae9b4017SNavdeep Parhar val("rx_frag0_start_idx"),
154ae9b4017SNavdeep Parhar val("rx_frag0_len"),
155ae9b4017SNavdeep Parhar val("rx_ptr"));
156ae9b4017SNavdeep Parhar PR(" frag1_idx %-10u length %-10u ",
157ae9b4017SNavdeep Parhar val("rx_frag1_start_idx_offset"),
158ae9b4017SNavdeep Parhar val("rx_frag1_len"));
159ae9b4017SNavdeep Parhar
160ae9b4017SNavdeep Parhar
161ae9b4017SNavdeep Parhar
162ae9b4017SNavdeep Parhar
163ae9b4017SNavdeep Parhar if (val("ulp_type")!=4) { /* RDMA has FRAG1 idx && len, but no ptr? Should I not display frag1 at all? */
164ae9b4017SNavdeep Parhar PR("frag1_ptr 0x%-8x\n",val("rx_frag1_ptr"));
165ae9b4017SNavdeep Parhar } else {
166ae9b4017SNavdeep Parhar PR("\n");
167ae9b4017SNavdeep Parhar }
168ae9b4017SNavdeep Parhar
169ae9b4017SNavdeep Parhar
170ae9b4017SNavdeep Parhar if (val("ulp_type") !=6 && val("ulp_type") != 5 && val("ulp_type") !=4) {
171ae9b4017SNavdeep Parhar PR(" frag2_idx %-10u length %-10u frag2_ptr 0x%-8x\n",
172ae9b4017SNavdeep Parhar val("rx_frag2_start_idx_offset"),
173ae9b4017SNavdeep Parhar val("rx_frag2_len"),
174ae9b4017SNavdeep Parhar val("rx_frag2_ptr"));
175ae9b4017SNavdeep Parhar PR(" frag3_idx %-10u length %-10u frag3_ptr 0x%-8x\n",
176ae9b4017SNavdeep Parhar val("rx_frag3_start_idx_offset"),
177ae9b4017SNavdeep Parhar val("rx_frag3_len"),
178ae9b4017SNavdeep Parhar val("rx_frag3_ptr"));
179ae9b4017SNavdeep Parhar }
180ae9b4017SNavdeep Parhar
181ae9b4017SNavdeep Parhar
182ae9b4017SNavdeep Parhar
183ae9b4017SNavdeep Parhar
184ae9b4017SNavdeep Parhar
185ae9b4017SNavdeep Parhar
186ae9b4017SNavdeep Parhar PR(" peer_fin %u, rx_pdu_out %u, pdu_len %u\n",
187ae9b4017SNavdeep Parhar val("peer_fin"),val("rx_pdu_out"), val("pdu_len"));
188ae9b4017SNavdeep Parhar
189ae9b4017SNavdeep Parhar
190ae9b4017SNavdeep Parhar
191ae9b4017SNavdeep Parhar
192ae9b4017SNavdeep Parhar if (val("recv_scale")) {
193ae9b4017SNavdeep Parhar PR(" rcv_wnd %u >> snd_scale %u == %u, recv_scaleflag = %u\n",
194ae9b4017SNavdeep Parhar val("rcv_wnd"), val("snd_scale"),
195ae9b4017SNavdeep Parhar val("rcv_wnd") >> val("snd_scale"),
196ae9b4017SNavdeep Parhar val("recv_scale"));
197ae9b4017SNavdeep Parhar } else {
198ae9b4017SNavdeep Parhar PR(" rcv_wnd %u. (snd_scale %u, recv_scaleflag = %u)\n",
199ae9b4017SNavdeep Parhar val("rcv_wnd"), val("snd_scale"),
200ae9b4017SNavdeep Parhar val("recv_scale"));
201ae9b4017SNavdeep Parhar }
202ae9b4017SNavdeep Parhar
203ae9b4017SNavdeep Parhar
204ae9b4017SNavdeep Parhar
205ae9b4017SNavdeep Parhar
206ae9b4017SNavdeep Parhar PR(" dack_mss %u dack %u, dack_not_acked: %u\n",
207ae9b4017SNavdeep Parhar val("dack_mss"),val("dack"),val("dack_not_acked"));
208ae9b4017SNavdeep Parhar PR(" rcv_coal %u rcv_co_psh %u rcv_co_last_psh %u heart %u\n",
209ae9b4017SNavdeep Parhar val("rcv_coalesce_enable"),
210ae9b4017SNavdeep Parhar val("rcv_coalesce_push"),
211ae9b4017SNavdeep Parhar val("rcv_coalesce_last_psh"),
212ae9b4017SNavdeep Parhar val("rcv_coalesce_heartbeat"));
213ae9b4017SNavdeep Parhar
214ae9b4017SNavdeep Parhar PR(" rx_channel %u rx_quiesce %u rx_flow_ctrl_dis %u,",
215ae9b4017SNavdeep Parhar val("rx_channel"), val("rx_quiesce"),
216ae9b4017SNavdeep Parhar val("rx_flow_control_disable"));
217ae9b4017SNavdeep Parhar PR(" rx_flow_ctrl_ddp %u\n",
218ae9b4017SNavdeep Parhar val("rx_flow_control_ddp"));
219ae9b4017SNavdeep Parhar
220ae9b4017SNavdeep Parhar
221*34181db8SElyes Haouas PR("MISCELLANEOUS:\n"); /* *************************** */
222ae9b4017SNavdeep Parhar PR(" pend_ctl: 0x%1x, unused_flags: 0x%x, main_slush: 0x%x\n",
223ae9b4017SNavdeep Parhar ((val("pend_ctl2")<<2) | (val("pend_ctl1")<<1) |
224ae9b4017SNavdeep Parhar val("pend_ctl0")),
225ae9b4017SNavdeep Parhar val("unused"),val("main_slush"));
226ae9b4017SNavdeep Parhar PR(" Migrating %u, ask_mode %u, non_offload %u, rss_info %u\n",
227ae9b4017SNavdeep Parhar val("migrating"),
228ae9b4017SNavdeep Parhar val("ask_mode"), val("non_offload"), val("rss_info"));
229ae9b4017SNavdeep Parhar PR(" ULP: ulp_type %u (%s), ulp_raw %u",
230ae9b4017SNavdeep Parhar val("ulp_type"), spr_ulp_type(val("ulp_type")),
231ae9b4017SNavdeep Parhar val("ulp_raw"));
232ae9b4017SNavdeep Parhar
233ae9b4017SNavdeep Parhar
234ae9b4017SNavdeep Parhar if (aux==1) {
235ae9b4017SNavdeep Parhar PR(", ulp_ext %u",val("ulp_ext"));
236ae9b4017SNavdeep Parhar }
237ae9b4017SNavdeep Parhar PR("\n");
238ae9b4017SNavdeep Parhar
239ae9b4017SNavdeep Parhar
240ae9b4017SNavdeep Parhar
241ae9b4017SNavdeep Parhar
242ae9b4017SNavdeep Parhar PR(" RDMA: error %u, flm_err %u\n",
243ae9b4017SNavdeep Parhar val("rdma_error"), val("rdma_flm_error"));
244ae9b4017SNavdeep Parhar
245ae9b4017SNavdeep Parhar
246ae9b4017SNavdeep Parhar }
t5_display_tcb_aux_1(_TCBVAR * tvp,int aux)247ae9b4017SNavdeep Parhar void t5_display_tcb_aux_1 (_TCBVAR *tvp, int aux)
248ae9b4017SNavdeep Parhar {
249ae9b4017SNavdeep Parhar
250ae9b4017SNavdeep Parhar
251ae9b4017SNavdeep Parhar
252ae9b4017SNavdeep Parhar PR(" aux1_slush0: 0x%x aux1_slush1 0x%x\n",
253ae9b4017SNavdeep Parhar val("aux1_slush0"), val("aux1_slush1"));
254ae9b4017SNavdeep Parhar PR(" pdu_hdr_len %u\n",val("pdu_hdr_len"));
255ae9b4017SNavdeep Parhar
256ae9b4017SNavdeep Parhar
257ae9b4017SNavdeep Parhar
258ae9b4017SNavdeep Parhar }
t5_display_tcb_aux_2(_TCBVAR * tvp,int aux)259ae9b4017SNavdeep Parhar void t5_display_tcb_aux_2 (_TCBVAR *tvp, int aux)
260ae9b4017SNavdeep Parhar {
261ae9b4017SNavdeep Parhar
262ae9b4017SNavdeep Parhar
263ae9b4017SNavdeep Parhar
264ae9b4017SNavdeep Parhar
265ae9b4017SNavdeep Parhar PR(" qp_id %u, pd_id %u, stag %u\n",
266ae9b4017SNavdeep Parhar val("qp_id"), val("pd_id"),val("stag"));
267ae9b4017SNavdeep Parhar PR(" irs_ulp %u, iss_ulp %u\n",
268ae9b4017SNavdeep Parhar val("irs_ulp"),val("iss_ulp"));
269ae9b4017SNavdeep Parhar PR(" tx_pdu_len %u\n",
270ae9b4017SNavdeep Parhar val("tx_pdu_len"));
271ae9b4017SNavdeep Parhar PR(" cq_idx_sq %u, cq_idx_rq %u\n",
272ae9b4017SNavdeep Parhar val("cq_idx_sq"),val("cq_idx_rq"));
273ae9b4017SNavdeep Parhar PR(" rq_start %u, rq_MSN %u, rq_max_off %u, rq_write_ptr %u\n",
274ae9b4017SNavdeep Parhar val("rq_start"),val("rq_msn"),val("rq_max_offset"),
275ae9b4017SNavdeep Parhar val("rq_write_ptr"));
276ae9b4017SNavdeep Parhar PR(" L_valid %u, rdmap opcode %u\n",
277ae9b4017SNavdeep Parhar val("ord_l_bit_vld"),val("rdmap_opcode"));
278ae9b4017SNavdeep Parhar PR(" tx_flush: %u, tx_oos_rxmt %u, tx_oos_txmt %u\n",
279ae9b4017SNavdeep Parhar val("tx_flush"),val("tx_oos_rxmt"),val("tx_oos_txmt"));
280ae9b4017SNavdeep Parhar
281ae9b4017SNavdeep Parhar
282ae9b4017SNavdeep Parhar
283ae9b4017SNavdeep Parhar
284ae9b4017SNavdeep Parhar }
t5_display_tcb_aux_3(_TCBVAR * tvp,int aux)285ae9b4017SNavdeep Parhar void t5_display_tcb_aux_3 (_TCBVAR *tvp, int aux)
286ae9b4017SNavdeep Parhar {
287ae9b4017SNavdeep Parhar
288ae9b4017SNavdeep Parhar
289ae9b4017SNavdeep Parhar
290ae9b4017SNavdeep Parhar
291ae9b4017SNavdeep Parhar PR(" aux3_slush: 0x%x, unused: buf0 0x%x, buf1: 0x%x, main: 0x%x\n",
292ae9b4017SNavdeep Parhar val("aux3_slush"),val("ddp_buf0_unused"),val("ddp_buf1_unused"),
293ae9b4017SNavdeep Parhar val("ddp_main_unused"));
294ae9b4017SNavdeep Parhar
295ae9b4017SNavdeep Parhar
296ae9b4017SNavdeep Parhar
297ae9b4017SNavdeep Parhar
298ae9b4017SNavdeep Parhar
299ae9b4017SNavdeep Parhar PR(" DDP: DDPOFF ActBuf IndOut WaitFrag Rx2Tx BufInf\n");
300ae9b4017SNavdeep Parhar PR(" %u %u %u %u %u %u\n",
301ae9b4017SNavdeep Parhar val("ddp_off"),val("ddp_active_buf"),val("ddp_indicate_out"),
302ae9b4017SNavdeep Parhar val("ddp_wait_frag"),val("ddp_rx2tx"),val("ddp_buf_inf")
303ae9b4017SNavdeep Parhar );
304ae9b4017SNavdeep Parhar
305ae9b4017SNavdeep Parhar
306ae9b4017SNavdeep Parhar
307ae9b4017SNavdeep Parhar
308ae9b4017SNavdeep Parhar
309ae9b4017SNavdeep Parhar PR(" Ind PshfEn PushDis Flush NoInvalidate\n");
310ae9b4017SNavdeep Parhar PR(" Buf0: %u %u %u %u %u\n",
311ae9b4017SNavdeep Parhar val("ddp_buf0_indicate"),
312ae9b4017SNavdeep Parhar val("ddp_pshf_enable_0"), val("ddp_push_disable_0"),
313ae9b4017SNavdeep Parhar val("ddp_buf0_flush"), val("ddp_psh_no_invalidate0")
314ae9b4017SNavdeep Parhar );
315ae9b4017SNavdeep Parhar PR(" Buf1: %u %u %u %u %u\n",
316ae9b4017SNavdeep Parhar val("ddp_buf1_indicate"),
317ae9b4017SNavdeep Parhar val("ddp_pshf_enable_1"), val("ddp_push_disable_1"),
318ae9b4017SNavdeep Parhar val("ddp_buf1_flush"), val("ddp_psh_no_invalidate1")
319ae9b4017SNavdeep Parhar );
320ae9b4017SNavdeep Parhar
321ae9b4017SNavdeep Parhar
322ae9b4017SNavdeep Parhar
323ae9b4017SNavdeep Parhar
324ae9b4017SNavdeep Parhar
325ae9b4017SNavdeep Parhar
326ae9b4017SNavdeep Parhar
327ae9b4017SNavdeep Parhar
328ae9b4017SNavdeep Parhar
329ae9b4017SNavdeep Parhar
330ae9b4017SNavdeep Parhar PR(" Valid Offset Length Tag\n");
331ae9b4017SNavdeep Parhar PR(" Buf0: %u 0x%6.6x 0x%6.6x 0x%8.8x",
332ae9b4017SNavdeep Parhar val("ddp_buf0_valid"),val("rx_ddp_buf0_offset"),
333ae9b4017SNavdeep Parhar val("rx_ddp_buf0_len"),val("rx_ddp_buf0_tag")
334ae9b4017SNavdeep Parhar
335ae9b4017SNavdeep Parhar
336ae9b4017SNavdeep Parhar );
337ae9b4017SNavdeep Parhar if (0==val("ddp_off") && 1==val("ddp_buf0_valid") && 0==val("ddp_active_buf")) {
338ae9b4017SNavdeep Parhar PR(" (Active)\n");
339ae9b4017SNavdeep Parhar } else {
340ae9b4017SNavdeep Parhar PR(" (Inactive)\n");
341ae9b4017SNavdeep Parhar }
342ae9b4017SNavdeep Parhar
343ae9b4017SNavdeep Parhar
344ae9b4017SNavdeep Parhar PR(" Buf1: %u 0x%6.6x 0x%6.6x 0x%8.8x",
345ae9b4017SNavdeep Parhar val("ddp_buf1_valid"),val("rx_ddp_buf1_offset"),
346ae9b4017SNavdeep Parhar val("rx_ddp_buf1_len"),val("rx_ddp_buf1_tag")
347ae9b4017SNavdeep Parhar
348ae9b4017SNavdeep Parhar
349ae9b4017SNavdeep Parhar );
350ae9b4017SNavdeep Parhar
351ae9b4017SNavdeep Parhar
352ae9b4017SNavdeep Parhar if (0==val("ddp_off") && 1==val("ddp_buf1_valid") && 1==val("ddp_active_buf")) {
353ae9b4017SNavdeep Parhar PR(" (Active)\n");
354ae9b4017SNavdeep Parhar } else {
355ae9b4017SNavdeep Parhar PR(" (Inactive)\n");
356ae9b4017SNavdeep Parhar }
357ae9b4017SNavdeep Parhar
358ae9b4017SNavdeep Parhar
359ae9b4017SNavdeep Parhar
360ae9b4017SNavdeep Parhar
361ae9b4017SNavdeep Parhar
362ae9b4017SNavdeep Parhar
363ae9b4017SNavdeep Parhar if (1==val("ddp_off")) {
364ae9b4017SNavdeep Parhar PR(" DDP is off (which also disables indicate)\n");
365ae9b4017SNavdeep Parhar } else if (1==val("ddp_buf0_valid") && 0==val("ddp_active_buf")) {
366ae9b4017SNavdeep Parhar PR(" Data being DDP'ed to buf 0, ");
367ae9b4017SNavdeep Parhar PR("which has %u - %u = %u bytes of space left\n",
368ae9b4017SNavdeep Parhar val("rx_ddp_buf0_len"),val("rx_ddp_buf0_offset"),
369ae9b4017SNavdeep Parhar val("rx_ddp_buf0_len")-val("rx_ddp_buf0_offset")
370ae9b4017SNavdeep Parhar );
371ae9b4017SNavdeep Parhar if (1==val("ddp_buf1_valid")) {
372ae9b4017SNavdeep Parhar PR(" And buf1, which is also valid, has %u - %u = %u bytes of space left\n",
373ae9b4017SNavdeep Parhar val("rx_ddp_buf1_len"),val("rx_ddp_buf1_offset"),
374ae9b4017SNavdeep Parhar val("rx_ddp_buf1_len")-val("rx_ddp_buf1_offset")
375ae9b4017SNavdeep Parhar );
376ae9b4017SNavdeep Parhar }
377ae9b4017SNavdeep Parhar } else if (1==val("ddp_buf1_valid") && 1==val("ddp_active_buf")) {
378ae9b4017SNavdeep Parhar PR(" Data being DDP'ed to buf 1, ");
379ae9b4017SNavdeep Parhar PR("which has %u - %u = %u bytes of space left\n",
380ae9b4017SNavdeep Parhar val("rx_ddp_buf1_len"),val("rx_ddp_buf1_offset"),
381ae9b4017SNavdeep Parhar val("rx_ddp_buf1_len")-val("rx_ddp_buf1_offset")
382ae9b4017SNavdeep Parhar );
383ae9b4017SNavdeep Parhar if (1==val("ddp_buf0_valid")) {
384ae9b4017SNavdeep Parhar PR(" And buf0, which is also valid, has %u - %u = %u bytes of space left\n",
385ae9b4017SNavdeep Parhar val("rx_ddp_buf0_len"),val("rx_ddp_buf0_offset"),
386ae9b4017SNavdeep Parhar val("rx_ddp_buf0_len")-val("rx_ddp_buf0_offset")
387ae9b4017SNavdeep Parhar );
388ae9b4017SNavdeep Parhar }
389ae9b4017SNavdeep Parhar } else if (0==val("ddp_buf0_valid") && 1==val("ddp_buf1_valid") && 0==val("ddp_active_buf")) {
390ae9b4017SNavdeep Parhar PR(" !!! Invalid DDP buf 1 valid, but buf 0 active.\n");
391ae9b4017SNavdeep Parhar } else if (1==val("ddp_buf0_valid") && 0==val("ddp_buf1_valid") && 1==val("ddp_active_buf")) {
392ae9b4017SNavdeep Parhar PR(" !!! Invalid DDP buf 0 valid, but buf 1 active.\n");
393ae9b4017SNavdeep Parhar } else {
394ae9b4017SNavdeep Parhar PR(" DDP is enabled, but no buffers are active && valid.\n");
395ae9b4017SNavdeep Parhar
396ae9b4017SNavdeep Parhar
397ae9b4017SNavdeep Parhar
398ae9b4017SNavdeep Parhar
399ae9b4017SNavdeep Parhar if (0==val("ddp_indicate_out")) {
400ae9b4017SNavdeep Parhar if (0==val("ddp_buf0_indicate") && 0==val("ddp_buf1_indicate")) {
401ae9b4017SNavdeep Parhar PR(" 0 length Indicate buffers ");
402ae9b4017SNavdeep Parhar if (0==val("rx_hdr_offset")) {
403ae9b4017SNavdeep Parhar PR("will cause new data to be held in PMRX.\n");
404ae9b4017SNavdeep Parhar } else {
405ae9b4017SNavdeep Parhar PR("is causing %u bytes to be held in PMRX\n",
406ae9b4017SNavdeep Parhar val("rx_hdr_offset"));
407ae9b4017SNavdeep Parhar }
408ae9b4017SNavdeep Parhar } else {
409ae9b4017SNavdeep Parhar PR(" Data being indicated to host\n");
410ae9b4017SNavdeep Parhar }
411ae9b4017SNavdeep Parhar } else if (1==val("ddp_indicate_out")) {
412ae9b4017SNavdeep Parhar PR(" Indicate is off, which ");
413ae9b4017SNavdeep Parhar if (0==val("rx_hdr_offset")) {
414ae9b4017SNavdeep Parhar PR("will cause new data to be held in PMRX.\n");
415ae9b4017SNavdeep Parhar } else {
416ae9b4017SNavdeep Parhar PR("is causing %u bytes to be held in PMRX\n",
417ae9b4017SNavdeep Parhar val("rx_hdr_offset"));
418ae9b4017SNavdeep Parhar }
419ae9b4017SNavdeep Parhar }
420ae9b4017SNavdeep Parhar }
421ae9b4017SNavdeep Parhar
422ae9b4017SNavdeep Parhar
423ae9b4017SNavdeep Parhar
424ae9b4017SNavdeep Parhar
425ae9b4017SNavdeep Parhar }
426