xref: /wlan-driver/fw-api/hw/wcn6450/v1/tcl_data_cmd.h (revision 5113495b16420b49004c444715d2daae2066e7dc)
1*5113495bSYour Name 
2*5113495bSYour Name /*
3*5113495bSYour Name  * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
4*5113495bSYour Name  *
5*5113495bSYour Name  * Permission to use, copy, modify, and/or distribute this software for
6*5113495bSYour Name  * any purpose with or without fee is hereby granted, provided that the
7*5113495bSYour Name  * above copyright notice and this permission notice appear in all
8*5113495bSYour Name  * copies.
9*5113495bSYour Name  *
10*5113495bSYour Name  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
11*5113495bSYour Name  * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
12*5113495bSYour Name  * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
13*5113495bSYour Name  * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
14*5113495bSYour Name  * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
15*5113495bSYour Name  * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
16*5113495bSYour Name  * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17*5113495bSYour Name  * PERFORMANCE OF THIS SOFTWARE.
18*5113495bSYour Name  */
19*5113495bSYour Name 
20*5113495bSYour Name 
21*5113495bSYour Name 
22*5113495bSYour Name #ifndef _TCL_DATA_CMD_H_
23*5113495bSYour Name #define _TCL_DATA_CMD_H_
24*5113495bSYour Name #if !defined(__ASSEMBLER__)
25*5113495bSYour Name #endif
26*5113495bSYour Name 
27*5113495bSYour Name #include "buffer_addr_info.h"
28*5113495bSYour Name 
29*5113495bSYour Name #define NUM_OF_DWORDS_TCL_DATA_CMD 7
30*5113495bSYour Name 
31*5113495bSYour Name struct tcl_data_cmd {
32*5113495bSYour Name     struct            buffer_addr_info                       buf_addr_info;
33*5113495bSYour Name              uint32_t buf_or_ext_desc_type            :  1,
34*5113495bSYour Name                       epd                             :  1,
35*5113495bSYour Name                       encap_type                      :  2,
36*5113495bSYour Name                       encrypt_type                    :  4,
37*5113495bSYour Name                       src_buffer_swap                 :  1,
38*5113495bSYour Name                       link_meta_swap                  :  1,
39*5113495bSYour Name                       tqm_no_drop                     :  1,
40*5113495bSYour Name                       reserved_2a                     :  1,
41*5113495bSYour Name                       search_type                     :  2,
42*5113495bSYour Name                       addrx_en                        :  1,
43*5113495bSYour Name                       addry_en                        :  1,
44*5113495bSYour Name                       tcl_cmd_number                  : 16;
45*5113495bSYour Name              uint32_t data_length                     : 16,
46*5113495bSYour Name                       ipv4_checksum_en                :  1,
47*5113495bSYour Name                       udp_over_ipv4_checksum_en       :  1,
48*5113495bSYour Name                       udp_over_ipv6_checksum_en       :  1,
49*5113495bSYour Name                       tcp_over_ipv4_checksum_en       :  1,
50*5113495bSYour Name                       tcp_over_ipv6_checksum_en       :  1,
51*5113495bSYour Name                       to_fw                           :  1,
52*5113495bSYour Name                       reserved_3a                     :  1,
53*5113495bSYour Name                       packet_offset                   :  9;
54*5113495bSYour Name              uint32_t buffer_timestamp                : 19,
55*5113495bSYour Name                       buffer_timestamp_valid          :  1,
56*5113495bSYour Name                       reserved_4a                     :  1,
57*5113495bSYour Name                       hlos_tid_overwrite              :  1,
58*5113495bSYour Name                       hlos_tid                        :  4,
59*5113495bSYour Name                       lmac_id                         :  2,
60*5113495bSYour Name                       udp_flow_override               :  2,
61*5113495bSYour Name                       reserved_4b                     :  2;
62*5113495bSYour Name              uint32_t dscp_tid_table_num              :  6,
63*5113495bSYour Name                       search_index                    : 20,
64*5113495bSYour Name                       cache_set_num                   :  4,
65*5113495bSYour Name                       mesh_enable                     :  2;
66*5113495bSYour Name              uint32_t reserved_6a                     : 20,
67*5113495bSYour Name                       ring_id                         :  8,
68*5113495bSYour Name                       looping_count                   :  4;
69*5113495bSYour Name };
70*5113495bSYour Name 
71*5113495bSYour Name #define TCL_DATA_CMD_0_BUF_ADDR_INFO_BUFFER_ADDR_31_0_OFFSET         0x00000000
72*5113495bSYour Name #define TCL_DATA_CMD_0_BUF_ADDR_INFO_BUFFER_ADDR_31_0_LSB            0
73*5113495bSYour Name #define TCL_DATA_CMD_0_BUF_ADDR_INFO_BUFFER_ADDR_31_0_MASK           0xffffffff
74*5113495bSYour Name 
75*5113495bSYour Name #define TCL_DATA_CMD_1_BUF_ADDR_INFO_BUFFER_ADDR_39_32_OFFSET        0x00000004
76*5113495bSYour Name #define TCL_DATA_CMD_1_BUF_ADDR_INFO_BUFFER_ADDR_39_32_LSB           0
77*5113495bSYour Name #define TCL_DATA_CMD_1_BUF_ADDR_INFO_BUFFER_ADDR_39_32_MASK          0x000000ff
78*5113495bSYour Name 
79*5113495bSYour Name #define TCL_DATA_CMD_1_BUF_ADDR_INFO_RETURN_BUFFER_MANAGER_OFFSET    0x00000004
80*5113495bSYour Name #define TCL_DATA_CMD_1_BUF_ADDR_INFO_RETURN_BUFFER_MANAGER_LSB       8
81*5113495bSYour Name #define TCL_DATA_CMD_1_BUF_ADDR_INFO_RETURN_BUFFER_MANAGER_MASK      0x00000700
82*5113495bSYour Name 
83*5113495bSYour Name #define TCL_DATA_CMD_1_BUF_ADDR_INFO_SW_BUFFER_COOKIE_OFFSET         0x00000004
84*5113495bSYour Name #define TCL_DATA_CMD_1_BUF_ADDR_INFO_SW_BUFFER_COOKIE_LSB            11
85*5113495bSYour Name #define TCL_DATA_CMD_1_BUF_ADDR_INFO_SW_BUFFER_COOKIE_MASK           0xfffff800
86*5113495bSYour Name 
87*5113495bSYour Name #define TCL_DATA_CMD_2_BUF_OR_EXT_DESC_TYPE_OFFSET                   0x00000008
88*5113495bSYour Name #define TCL_DATA_CMD_2_BUF_OR_EXT_DESC_TYPE_LSB                      0
89*5113495bSYour Name #define TCL_DATA_CMD_2_BUF_OR_EXT_DESC_TYPE_MASK                     0x00000001
90*5113495bSYour Name 
91*5113495bSYour Name #define TCL_DATA_CMD_2_EPD_OFFSET                                    0x00000008
92*5113495bSYour Name #define TCL_DATA_CMD_2_EPD_LSB                                       1
93*5113495bSYour Name #define TCL_DATA_CMD_2_EPD_MASK                                      0x00000002
94*5113495bSYour Name 
95*5113495bSYour Name #define TCL_DATA_CMD_2_ENCAP_TYPE_OFFSET                             0x00000008
96*5113495bSYour Name #define TCL_DATA_CMD_2_ENCAP_TYPE_LSB                                2
97*5113495bSYour Name #define TCL_DATA_CMD_2_ENCAP_TYPE_MASK                               0x0000000c
98*5113495bSYour Name 
99*5113495bSYour Name #define TCL_DATA_CMD_2_ENCRYPT_TYPE_OFFSET                           0x00000008
100*5113495bSYour Name #define TCL_DATA_CMD_2_ENCRYPT_TYPE_LSB                              4
101*5113495bSYour Name #define TCL_DATA_CMD_2_ENCRYPT_TYPE_MASK                             0x000000f0
102*5113495bSYour Name 
103*5113495bSYour Name #define TCL_DATA_CMD_2_SRC_BUFFER_SWAP_OFFSET                        0x00000008
104*5113495bSYour Name #define TCL_DATA_CMD_2_SRC_BUFFER_SWAP_LSB                           8
105*5113495bSYour Name #define TCL_DATA_CMD_2_SRC_BUFFER_SWAP_MASK                          0x00000100
106*5113495bSYour Name 
107*5113495bSYour Name #define TCL_DATA_CMD_2_LINK_META_SWAP_OFFSET                         0x00000008
108*5113495bSYour Name #define TCL_DATA_CMD_2_LINK_META_SWAP_LSB                            9
109*5113495bSYour Name #define TCL_DATA_CMD_2_LINK_META_SWAP_MASK                           0x00000200
110*5113495bSYour Name 
111*5113495bSYour Name #define TCL_DATA_CMD_2_TQM_NO_DROP_OFFSET                            0x00000008
112*5113495bSYour Name #define TCL_DATA_CMD_2_TQM_NO_DROP_LSB                               10
113*5113495bSYour Name #define TCL_DATA_CMD_2_TQM_NO_DROP_MASK                              0x00000400
114*5113495bSYour Name 
115*5113495bSYour Name #define TCL_DATA_CMD_2_RESERVED_2A_OFFSET                            0x00000008
116*5113495bSYour Name #define TCL_DATA_CMD_2_RESERVED_2A_LSB                               11
117*5113495bSYour Name #define TCL_DATA_CMD_2_RESERVED_2A_MASK                              0x00000800
118*5113495bSYour Name 
119*5113495bSYour Name #define TCL_DATA_CMD_2_SEARCH_TYPE_OFFSET                            0x00000008
120*5113495bSYour Name #define TCL_DATA_CMD_2_SEARCH_TYPE_LSB                               12
121*5113495bSYour Name #define TCL_DATA_CMD_2_SEARCH_TYPE_MASK                              0x00003000
122*5113495bSYour Name 
123*5113495bSYour Name #define TCL_DATA_CMD_2_ADDRX_EN_OFFSET                               0x00000008
124*5113495bSYour Name #define TCL_DATA_CMD_2_ADDRX_EN_LSB                                  14
125*5113495bSYour Name #define TCL_DATA_CMD_2_ADDRX_EN_MASK                                 0x00004000
126*5113495bSYour Name 
127*5113495bSYour Name #define TCL_DATA_CMD_2_ADDRY_EN_OFFSET                               0x00000008
128*5113495bSYour Name #define TCL_DATA_CMD_2_ADDRY_EN_LSB                                  15
129*5113495bSYour Name #define TCL_DATA_CMD_2_ADDRY_EN_MASK                                 0x00008000
130*5113495bSYour Name 
131*5113495bSYour Name #define TCL_DATA_CMD_2_TCL_CMD_NUMBER_OFFSET                         0x00000008
132*5113495bSYour Name #define TCL_DATA_CMD_2_TCL_CMD_NUMBER_LSB                            16
133*5113495bSYour Name #define TCL_DATA_CMD_2_TCL_CMD_NUMBER_MASK                           0xffff0000
134*5113495bSYour Name 
135*5113495bSYour Name #define TCL_DATA_CMD_3_DATA_LENGTH_OFFSET                            0x0000000c
136*5113495bSYour Name #define TCL_DATA_CMD_3_DATA_LENGTH_LSB                               0
137*5113495bSYour Name #define TCL_DATA_CMD_3_DATA_LENGTH_MASK                              0x0000ffff
138*5113495bSYour Name 
139*5113495bSYour Name #define TCL_DATA_CMD_3_IPV4_CHECKSUM_EN_OFFSET                       0x0000000c
140*5113495bSYour Name #define TCL_DATA_CMD_3_IPV4_CHECKSUM_EN_LSB                          16
141*5113495bSYour Name #define TCL_DATA_CMD_3_IPV4_CHECKSUM_EN_MASK                         0x00010000
142*5113495bSYour Name 
143*5113495bSYour Name #define TCL_DATA_CMD_3_UDP_OVER_IPV4_CHECKSUM_EN_OFFSET              0x0000000c
144*5113495bSYour Name #define TCL_DATA_CMD_3_UDP_OVER_IPV4_CHECKSUM_EN_LSB                 17
145*5113495bSYour Name #define TCL_DATA_CMD_3_UDP_OVER_IPV4_CHECKSUM_EN_MASK                0x00020000
146*5113495bSYour Name 
147*5113495bSYour Name #define TCL_DATA_CMD_3_UDP_OVER_IPV6_CHECKSUM_EN_OFFSET              0x0000000c
148*5113495bSYour Name #define TCL_DATA_CMD_3_UDP_OVER_IPV6_CHECKSUM_EN_LSB                 18
149*5113495bSYour Name #define TCL_DATA_CMD_3_UDP_OVER_IPV6_CHECKSUM_EN_MASK                0x00040000
150*5113495bSYour Name 
151*5113495bSYour Name #define TCL_DATA_CMD_3_TCP_OVER_IPV4_CHECKSUM_EN_OFFSET              0x0000000c
152*5113495bSYour Name #define TCL_DATA_CMD_3_TCP_OVER_IPV4_CHECKSUM_EN_LSB                 19
153*5113495bSYour Name #define TCL_DATA_CMD_3_TCP_OVER_IPV4_CHECKSUM_EN_MASK                0x00080000
154*5113495bSYour Name 
155*5113495bSYour Name #define TCL_DATA_CMD_3_TCP_OVER_IPV6_CHECKSUM_EN_OFFSET              0x0000000c
156*5113495bSYour Name #define TCL_DATA_CMD_3_TCP_OVER_IPV6_CHECKSUM_EN_LSB                 20
157*5113495bSYour Name #define TCL_DATA_CMD_3_TCP_OVER_IPV6_CHECKSUM_EN_MASK                0x00100000
158*5113495bSYour Name 
159*5113495bSYour Name #define TCL_DATA_CMD_3_TO_FW_OFFSET                                  0x0000000c
160*5113495bSYour Name #define TCL_DATA_CMD_3_TO_FW_LSB                                     21
161*5113495bSYour Name #define TCL_DATA_CMD_3_TO_FW_MASK                                    0x00200000
162*5113495bSYour Name 
163*5113495bSYour Name #define TCL_DATA_CMD_3_RESERVED_3A_OFFSET                            0x0000000c
164*5113495bSYour Name #define TCL_DATA_CMD_3_RESERVED_3A_LSB                               22
165*5113495bSYour Name #define TCL_DATA_CMD_3_RESERVED_3A_MASK                              0x00400000
166*5113495bSYour Name 
167*5113495bSYour Name #define TCL_DATA_CMD_3_PACKET_OFFSET_OFFSET                          0x0000000c
168*5113495bSYour Name #define TCL_DATA_CMD_3_PACKET_OFFSET_LSB                             23
169*5113495bSYour Name #define TCL_DATA_CMD_3_PACKET_OFFSET_MASK                            0xff800000
170*5113495bSYour Name 
171*5113495bSYour Name #define TCL_DATA_CMD_4_BUFFER_TIMESTAMP_OFFSET                       0x00000010
172*5113495bSYour Name #define TCL_DATA_CMD_4_BUFFER_TIMESTAMP_LSB                          0
173*5113495bSYour Name #define TCL_DATA_CMD_4_BUFFER_TIMESTAMP_MASK                         0x0007ffff
174*5113495bSYour Name 
175*5113495bSYour Name #define TCL_DATA_CMD_4_BUFFER_TIMESTAMP_VALID_OFFSET                 0x00000010
176*5113495bSYour Name #define TCL_DATA_CMD_4_BUFFER_TIMESTAMP_VALID_LSB                    19
177*5113495bSYour Name #define TCL_DATA_CMD_4_BUFFER_TIMESTAMP_VALID_MASK                   0x00080000
178*5113495bSYour Name 
179*5113495bSYour Name #define TCL_DATA_CMD_4_RESERVED_4A_OFFSET                            0x00000010
180*5113495bSYour Name #define TCL_DATA_CMD_4_RESERVED_4A_LSB                               20
181*5113495bSYour Name #define TCL_DATA_CMD_4_RESERVED_4A_MASK                              0x00100000
182*5113495bSYour Name 
183*5113495bSYour Name #define TCL_DATA_CMD_4_HLOS_TID_OVERWRITE_OFFSET                     0x00000010
184*5113495bSYour Name #define TCL_DATA_CMD_4_HLOS_TID_OVERWRITE_LSB                        21
185*5113495bSYour Name #define TCL_DATA_CMD_4_HLOS_TID_OVERWRITE_MASK                       0x00200000
186*5113495bSYour Name 
187*5113495bSYour Name #define TCL_DATA_CMD_4_HLOS_TID_OFFSET                               0x00000010
188*5113495bSYour Name #define TCL_DATA_CMD_4_HLOS_TID_LSB                                  22
189*5113495bSYour Name #define TCL_DATA_CMD_4_HLOS_TID_MASK                                 0x03c00000
190*5113495bSYour Name 
191*5113495bSYour Name #define TCL_DATA_CMD_4_LMAC_ID_OFFSET                                0x00000010
192*5113495bSYour Name #define TCL_DATA_CMD_4_LMAC_ID_LSB                                   26
193*5113495bSYour Name #define TCL_DATA_CMD_4_LMAC_ID_MASK                                  0x0c000000
194*5113495bSYour Name 
195*5113495bSYour Name #define TCL_DATA_CMD_4_UDP_FLOW_OVERRIDE_OFFSET                      0x00000010
196*5113495bSYour Name #define TCL_DATA_CMD_4_UDP_FLOW_OVERRIDE_LSB                         28
197*5113495bSYour Name #define TCL_DATA_CMD_4_UDP_FLOW_OVERRIDE_MASK                        0x30000000
198*5113495bSYour Name 
199*5113495bSYour Name #define TCL_DATA_CMD_4_RESERVED_4B_OFFSET                            0x00000010
200*5113495bSYour Name #define TCL_DATA_CMD_4_RESERVED_4B_LSB                               30
201*5113495bSYour Name #define TCL_DATA_CMD_4_RESERVED_4B_MASK                              0xc0000000
202*5113495bSYour Name 
203*5113495bSYour Name #define TCL_DATA_CMD_5_DSCP_TID_TABLE_NUM_OFFSET                     0x00000014
204*5113495bSYour Name #define TCL_DATA_CMD_5_DSCP_TID_TABLE_NUM_LSB                        0
205*5113495bSYour Name #define TCL_DATA_CMD_5_DSCP_TID_TABLE_NUM_MASK                       0x0000003f
206*5113495bSYour Name 
207*5113495bSYour Name #define TCL_DATA_CMD_5_SEARCH_INDEX_OFFSET                           0x00000014
208*5113495bSYour Name #define TCL_DATA_CMD_5_SEARCH_INDEX_LSB                              6
209*5113495bSYour Name #define TCL_DATA_CMD_5_SEARCH_INDEX_MASK                             0x03ffffc0
210*5113495bSYour Name 
211*5113495bSYour Name #define TCL_DATA_CMD_5_CACHE_SET_NUM_OFFSET                          0x00000014
212*5113495bSYour Name #define TCL_DATA_CMD_5_CACHE_SET_NUM_LSB                             26
213*5113495bSYour Name #define TCL_DATA_CMD_5_CACHE_SET_NUM_MASK                            0x3c000000
214*5113495bSYour Name 
215*5113495bSYour Name #define TCL_DATA_CMD_5_MESH_ENABLE_OFFSET                            0x00000014
216*5113495bSYour Name #define TCL_DATA_CMD_5_MESH_ENABLE_LSB                               30
217*5113495bSYour Name #define TCL_DATA_CMD_5_MESH_ENABLE_MASK                              0xc0000000
218*5113495bSYour Name 
219*5113495bSYour Name #define TCL_DATA_CMD_6_RESERVED_6A_OFFSET                            0x00000018
220*5113495bSYour Name #define TCL_DATA_CMD_6_RESERVED_6A_LSB                               0
221*5113495bSYour Name #define TCL_DATA_CMD_6_RESERVED_6A_MASK                              0x000fffff
222*5113495bSYour Name 
223*5113495bSYour Name #define TCL_DATA_CMD_6_RING_ID_OFFSET                                0x00000018
224*5113495bSYour Name #define TCL_DATA_CMD_6_RING_ID_LSB                                   20
225*5113495bSYour Name #define TCL_DATA_CMD_6_RING_ID_MASK                                  0x0ff00000
226*5113495bSYour Name 
227*5113495bSYour Name #define TCL_DATA_CMD_6_LOOPING_COUNT_OFFSET                          0x00000018
228*5113495bSYour Name #define TCL_DATA_CMD_6_LOOPING_COUNT_LSB                             28
229*5113495bSYour Name #define TCL_DATA_CMD_6_LOOPING_COUNT_MASK                            0xf0000000
230*5113495bSYour Name 
231*5113495bSYour Name #endif
232