1*d14abf15SRobert Mustacchi /*******************************************************************************
2*d14abf15SRobert Mustacchi  * CDDL HEADER START
3*d14abf15SRobert Mustacchi  *
4*d14abf15SRobert Mustacchi  * The contents of this file are subject to the terms of the
5*d14abf15SRobert Mustacchi  * Common Development and Distribution License (the "License").
6*d14abf15SRobert Mustacchi  * You may not use this file except in compliance with the License.
7*d14abf15SRobert Mustacchi  *
8*d14abf15SRobert Mustacchi  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9*d14abf15SRobert Mustacchi  * or http://www.opensolaris.org/os/licensing.
10*d14abf15SRobert Mustacchi  * See the License for the specific language governing permissions
11*d14abf15SRobert Mustacchi  * and limitations under the License.
12*d14abf15SRobert Mustacchi  *
13*d14abf15SRobert Mustacchi  * When distributing Covered Code, include this CDDL HEADER in each
14*d14abf15SRobert Mustacchi  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15*d14abf15SRobert Mustacchi  * If applicable, add the following below this CDDL HEADER, with the
16*d14abf15SRobert Mustacchi  * fields enclosed by brackets "[]" replaced with your own identifying
17*d14abf15SRobert Mustacchi  * information: Portions Copyright [yyyy] [name of copyright owner]
18*d14abf15SRobert Mustacchi  *
19*d14abf15SRobert Mustacchi  * CDDL HEADER END
20*d14abf15SRobert Mustacchi  *
21*d14abf15SRobert Mustacchi  * Copyright 2014 QLogic Corporation
22*d14abf15SRobert Mustacchi  * The contents of this file are subject to the terms of the
23*d14abf15SRobert Mustacchi  * QLogic End User License (the "License").
24*d14abf15SRobert Mustacchi  * You may not use this file except in compliance with the License.
25*d14abf15SRobert Mustacchi  *
26*d14abf15SRobert Mustacchi  * You can obtain a copy of the License at
27*d14abf15SRobert Mustacchi  * http://www.qlogic.com/Resources/Documents/DriverDownloadHelp/
28*d14abf15SRobert Mustacchi  * QLogic_End_User_Software_License.txt
29*d14abf15SRobert Mustacchi  * See the License for the specific language governing permissions
30*d14abf15SRobert Mustacchi  * and limitations under the License.
31*d14abf15SRobert Mustacchi  *
32*d14abf15SRobert Mustacchi  *
33*d14abf15SRobert Mustacchi  *
34*d14abf15SRobert Mustacchi  * Module Description:
35*d14abf15SRobert Mustacchi  *
36*d14abf15SRobert Mustacchi  ******************************************************************************/
37*d14abf15SRobert Mustacchi 
38*d14abf15SRobert Mustacchi #ifndef _L4DEBUG_H
39*d14abf15SRobert Mustacchi #define _L4DEBUG_H
40*d14abf15SRobert Mustacchi 
41*d14abf15SRobert Mustacchi #include "bcmtype.h"
42*d14abf15SRobert Mustacchi 
43*d14abf15SRobert Mustacchi #define L4_DEBUG_BIT_FIELDS 0
44*d14abf15SRobert Mustacchi // Use _l4_tcp_const_state_t _pad[0] for L4 debug
45*d14abf15SRobert Mustacchi // PbfQueue		- bits 7-5
46*d14abf15SRobert Mustacchi // VOQ          - bits 4-2
47*d14abf15SRobert Mustacchi // cos			- bits 1-0
48*d14abf15SRobert Mustacchi #define L4_DEBUG_PBF_Q_MASK 		0xE0
49*d14abf15SRobert Mustacchi #define L4_DEBUG_PBF_Q_SHIFT 		5
50*d14abf15SRobert Mustacchi 
51*d14abf15SRobert Mustacchi #define L4_DEBUG_VOQ_MASK    		0x1C
52*d14abf15SRobert Mustacchi #define L4_DEBUG_VOQ_SHIFT 	    	2
53*d14abf15SRobert Mustacchi 
54*d14abf15SRobert Mustacchi #define L4_DEBUG_COS_MASK 			0x3
55*d14abf15SRobert Mustacchi #define L4_DEBUG_COS_SHIFT 			0
56*d14abf15SRobert Mustacchi 
57*d14abf15SRobert Mustacchi 
58*d14abf15SRobert Mustacchi 
59*d14abf15SRobert Mustacchi #define L4_DEBUG_FLAGS 1
60*d14abf15SRobert Mustacchi // DPM test EN     - bit 4
61*d14abf15SRobert Mustacchi // QmOpportunistic - bit 3
62*d14abf15SRobert Mustacchi // TestingEn	   - bit 2
63*d14abf15SRobert Mustacchi // LbEn 		   - bit 1
64*d14abf15SRobert Mustacchi // CosEn 		   - bit 0
65*d14abf15SRobert Mustacchi 
66*d14abf15SRobert Mustacchi #define L4_DEBUG_DPM_TEST_EN_MASK	0x10
67*d14abf15SRobert Mustacchi #define L4_DEBUG_QM_OPPORT_EN_MASK	0x08
68*d14abf15SRobert Mustacchi #define L4_DEBUG_TESTING_EN_MASK 	0x04
69*d14abf15SRobert Mustacchi #define L4_DEBUG_LB_EN_MASK 		0x02
70*d14abf15SRobert Mustacchi #define L4_DEBUG_COS_EN_MASK 		0x01
71*d14abf15SRobert Mustacchi 
72*d14abf15SRobert Mustacchi 
73*d14abf15SRobert Mustacchi 
74*d14abf15SRobert Mustacchi #define L4_DEBUG_GET_COS(_data)		 		((_data[L4_DEBUG_BIT_FIELDS] & L4_DEBUG_COS_MASK) >> L4_DEBUG_COS_SHIFT)
75*d14abf15SRobert Mustacchi #define L4_DEBUG_GET_PBFQUEUE(_data) 		((_data[L4_DEBUG_BIT_FIELDS] & L4_DEBUG_PBF_Q_MASK) >> L4_DEBUG_PBF_Q_SHIFT)
76*d14abf15SRobert Mustacchi #define L4_DEBUG_GET_VOQ(_data) 		    ((_data[L4_DEBUG_BIT_FIELDS] & L4_DEBUG_VOQ_MASK) >> L4_DEBUG_VOQ_SHIFT)
77*d14abf15SRobert Mustacchi #define L4_DEBUG_GET_FLAGS(_data)           (_data[L4_DEBUG_FLAGS])
78*d14abf15SRobert Mustacchi 
79*d14abf15SRobert Mustacchi #define L4_DEBUG_SET_COS(_data, cos) 		\
80*d14abf15SRobert Mustacchi     (_data[L4_DEBUG_BIT_FIELDS] &= (~L4_DEBUG_COS_MASK)); \
81*d14abf15SRobert Mustacchi     (_data[L4_DEBUG_BIT_FIELDS] |= ((cos << L4_DEBUG_COS_SHIFT) & L4_DEBUG_COS_MASK))
82*d14abf15SRobert Mustacchi 
83*d14abf15SRobert Mustacchi #define L4_DEBUG_SET_PBFQUEUE(_data, pbf_q) \
84*d14abf15SRobert Mustacchi     (_data[L4_DEBUG_BIT_FIELDS] &= (~L4_DEBUG_PBF_Q_MASK)); \
85*d14abf15SRobert Mustacchi     (_data[L4_DEBUG_BIT_FIELDS] |= ((pbf_q << L4_DEBUG_PBF_Q_SHIFT) & L4_DEBUG_PBF_Q_MASK))
86*d14abf15SRobert Mustacchi 
87*d14abf15SRobert Mustacchi #define L4_DEBUG_SET_VOQ(_data, voq)        \
88*d14abf15SRobert Mustacchi     (_data[L4_DEBUG_BIT_FIELDS] &= (~L4_DEBUG_VOQ_MASK)); \
89*d14abf15SRobert Mustacchi     (_data[L4_DEBUG_BIT_FIELDS] |= ((voq << L4_DEBUG_VOQ_SHIFT) & L4_DEBUG_VOQ_MASK))
90*d14abf15SRobert Mustacchi 
91*d14abf15SRobert Mustacchi #define L4_DEBUG_SET_FLAGS(_data, flags) (_data[L4_DEBUG_FLAGS] |= flags)
92*d14abf15SRobert Mustacchi 
93*d14abf15SRobert Mustacchi 
94*d14abf15SRobert Mustacchi 
95*d14abf15SRobert Mustacchi #endif /* _L4DEBUG_H */
96*d14abf15SRobert Mustacchi 
97