1 2 /* 3 * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved. 4 * 5 * Permission to use, copy, modify, and/or distribute this software for 6 * any purpose with or without fee is hereby granted, provided that the 7 * above copyright notice and this permission notice appear in all 8 * copies. 9 * 10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL 11 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED 12 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE 13 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL 14 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR 15 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER 16 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 17 * PERFORMANCE OF THIS SOFTWARE. 18 */ 19 20 21 22 23 24 25 26 27 28 29 30 #ifndef _TX_MSDU_EXTENSION_H_ 31 #define _TX_MSDU_EXTENSION_H_ 32 #if !defined(__ASSEMBLER__) 33 #endif 34 35 #define NUM_OF_DWORDS_TX_MSDU_EXTENSION 18 36 37 38 struct tx_msdu_extension { 39 uint32_t tso_enable : 1, 40 reserved_0a : 6, 41 tcp_flag : 9, 42 tcp_flag_mask : 9, 43 reserved_0b : 7; 44 uint32_t l2_length : 16, 45 ip_length : 16; 46 uint32_t tcp_seq_number : 32; 47 uint32_t ip_identification : 16, 48 udp_length : 16; 49 uint32_t checksum_offset : 14, 50 partial_checksum_en : 1, 51 reserved_4a : 1, 52 payload_start_offset : 14, 53 reserved_4b : 2; 54 uint32_t payload_end_offset : 14, 55 reserved_5a : 2, 56 wds : 1, 57 reserved_5b : 15; 58 uint32_t buf0_ptr_31_0 : 32; 59 uint32_t buf0_ptr_39_32 : 8, 60 extn_override : 1, 61 encap_type : 2, 62 encrypt_type : 4, 63 tqm_no_drop : 1, 64 buf0_len : 16; 65 uint32_t buf1_ptr_31_0 : 32; 66 uint32_t buf1_ptr_39_32 : 8, 67 epd : 1, 68 mesh_enable : 2, 69 reserved_9a : 5, 70 buf1_len : 16; 71 uint32_t buf2_ptr_31_0 : 32; 72 uint32_t buf2_ptr_39_32 : 8, 73 reserved_11a : 8, 74 buf2_len : 16; 75 uint32_t buf3_ptr_31_0 : 32; 76 uint32_t buf3_ptr_39_32 : 8, 77 reserved_13a : 8, 78 buf3_len : 16; 79 uint32_t buf4_ptr_31_0 : 32; 80 uint32_t buf4_ptr_39_32 : 8, 81 reserved_15a : 8, 82 buf4_len : 16; 83 uint32_t buf5_ptr_31_0 : 32; 84 uint32_t buf5_ptr_39_32 : 8, 85 reserved_17a : 8, 86 buf5_len : 16; 87 }; 88 89 90 91 92 #define TX_MSDU_EXTENSION_TSO_ENABLE_OFFSET 0x00000000 93 #define TX_MSDU_EXTENSION_TSO_ENABLE_LSB 0 94 #define TX_MSDU_EXTENSION_TSO_ENABLE_MSB 0 95 #define TX_MSDU_EXTENSION_TSO_ENABLE_MASK 0x00000001 96 97 98 99 100 #define TX_MSDU_EXTENSION_RESERVED_0A_OFFSET 0x00000000 101 #define TX_MSDU_EXTENSION_RESERVED_0A_LSB 1 102 #define TX_MSDU_EXTENSION_RESERVED_0A_MSB 6 103 #define TX_MSDU_EXTENSION_RESERVED_0A_MASK 0x0000007e 104 105 106 107 108 #define TX_MSDU_EXTENSION_TCP_FLAG_OFFSET 0x00000000 109 #define TX_MSDU_EXTENSION_TCP_FLAG_LSB 7 110 #define TX_MSDU_EXTENSION_TCP_FLAG_MSB 15 111 #define TX_MSDU_EXTENSION_TCP_FLAG_MASK 0x0000ff80 112 113 114 115 116 #define TX_MSDU_EXTENSION_TCP_FLAG_MASK_OFFSET 0x00000000 117 #define TX_MSDU_EXTENSION_TCP_FLAG_MASK_LSB 16 118 #define TX_MSDU_EXTENSION_TCP_FLAG_MASK_MSB 24 119 #define TX_MSDU_EXTENSION_TCP_FLAG_MASK_MASK 0x01ff0000 120 121 122 123 124 #define TX_MSDU_EXTENSION_RESERVED_0B_OFFSET 0x00000000 125 #define TX_MSDU_EXTENSION_RESERVED_0B_LSB 25 126 #define TX_MSDU_EXTENSION_RESERVED_0B_MSB 31 127 #define TX_MSDU_EXTENSION_RESERVED_0B_MASK 0xfe000000 128 129 130 131 132 #define TX_MSDU_EXTENSION_L2_LENGTH_OFFSET 0x00000004 133 #define TX_MSDU_EXTENSION_L2_LENGTH_LSB 0 134 #define TX_MSDU_EXTENSION_L2_LENGTH_MSB 15 135 #define TX_MSDU_EXTENSION_L2_LENGTH_MASK 0x0000ffff 136 137 138 139 140 #define TX_MSDU_EXTENSION_IP_LENGTH_OFFSET 0x00000004 141 #define TX_MSDU_EXTENSION_IP_LENGTH_LSB 16 142 #define TX_MSDU_EXTENSION_IP_LENGTH_MSB 31 143 #define TX_MSDU_EXTENSION_IP_LENGTH_MASK 0xffff0000 144 145 146 147 148 #define TX_MSDU_EXTENSION_TCP_SEQ_NUMBER_OFFSET 0x00000008 149 #define TX_MSDU_EXTENSION_TCP_SEQ_NUMBER_LSB 0 150 #define TX_MSDU_EXTENSION_TCP_SEQ_NUMBER_MSB 31 151 #define TX_MSDU_EXTENSION_TCP_SEQ_NUMBER_MASK 0xffffffff 152 153 154 155 156 #define TX_MSDU_EXTENSION_IP_IDENTIFICATION_OFFSET 0x0000000c 157 #define TX_MSDU_EXTENSION_IP_IDENTIFICATION_LSB 0 158 #define TX_MSDU_EXTENSION_IP_IDENTIFICATION_MSB 15 159 #define TX_MSDU_EXTENSION_IP_IDENTIFICATION_MASK 0x0000ffff 160 161 162 163 164 #define TX_MSDU_EXTENSION_UDP_LENGTH_OFFSET 0x0000000c 165 #define TX_MSDU_EXTENSION_UDP_LENGTH_LSB 16 166 #define TX_MSDU_EXTENSION_UDP_LENGTH_MSB 31 167 #define TX_MSDU_EXTENSION_UDP_LENGTH_MASK 0xffff0000 168 169 170 171 172 #define TX_MSDU_EXTENSION_CHECKSUM_OFFSET_OFFSET 0x00000010 173 #define TX_MSDU_EXTENSION_CHECKSUM_OFFSET_LSB 0 174 #define TX_MSDU_EXTENSION_CHECKSUM_OFFSET_MSB 13 175 #define TX_MSDU_EXTENSION_CHECKSUM_OFFSET_MASK 0x00003fff 176 177 178 179 180 #define TX_MSDU_EXTENSION_PARTIAL_CHECKSUM_EN_OFFSET 0x00000010 181 #define TX_MSDU_EXTENSION_PARTIAL_CHECKSUM_EN_LSB 14 182 #define TX_MSDU_EXTENSION_PARTIAL_CHECKSUM_EN_MSB 14 183 #define TX_MSDU_EXTENSION_PARTIAL_CHECKSUM_EN_MASK 0x00004000 184 185 186 187 188 #define TX_MSDU_EXTENSION_RESERVED_4A_OFFSET 0x00000010 189 #define TX_MSDU_EXTENSION_RESERVED_4A_LSB 15 190 #define TX_MSDU_EXTENSION_RESERVED_4A_MSB 15 191 #define TX_MSDU_EXTENSION_RESERVED_4A_MASK 0x00008000 192 193 194 195 196 #define TX_MSDU_EXTENSION_PAYLOAD_START_OFFSET_OFFSET 0x00000010 197 #define TX_MSDU_EXTENSION_PAYLOAD_START_OFFSET_LSB 16 198 #define TX_MSDU_EXTENSION_PAYLOAD_START_OFFSET_MSB 29 199 #define TX_MSDU_EXTENSION_PAYLOAD_START_OFFSET_MASK 0x3fff0000 200 201 202 203 204 #define TX_MSDU_EXTENSION_RESERVED_4B_OFFSET 0x00000010 205 #define TX_MSDU_EXTENSION_RESERVED_4B_LSB 30 206 #define TX_MSDU_EXTENSION_RESERVED_4B_MSB 31 207 #define TX_MSDU_EXTENSION_RESERVED_4B_MASK 0xc0000000 208 209 210 211 212 #define TX_MSDU_EXTENSION_PAYLOAD_END_OFFSET_OFFSET 0x00000014 213 #define TX_MSDU_EXTENSION_PAYLOAD_END_OFFSET_LSB 0 214 #define TX_MSDU_EXTENSION_PAYLOAD_END_OFFSET_MSB 13 215 #define TX_MSDU_EXTENSION_PAYLOAD_END_OFFSET_MASK 0x00003fff 216 217 218 219 220 #define TX_MSDU_EXTENSION_RESERVED_5A_OFFSET 0x00000014 221 #define TX_MSDU_EXTENSION_RESERVED_5A_LSB 14 222 #define TX_MSDU_EXTENSION_RESERVED_5A_MSB 15 223 #define TX_MSDU_EXTENSION_RESERVED_5A_MASK 0x0000c000 224 225 226 227 228 #define TX_MSDU_EXTENSION_WDS_OFFSET 0x00000014 229 #define TX_MSDU_EXTENSION_WDS_LSB 16 230 #define TX_MSDU_EXTENSION_WDS_MSB 16 231 #define TX_MSDU_EXTENSION_WDS_MASK 0x00010000 232 233 234 235 236 #define TX_MSDU_EXTENSION_RESERVED_5B_OFFSET 0x00000014 237 #define TX_MSDU_EXTENSION_RESERVED_5B_LSB 17 238 #define TX_MSDU_EXTENSION_RESERVED_5B_MSB 31 239 #define TX_MSDU_EXTENSION_RESERVED_5B_MASK 0xfffe0000 240 241 242 243 244 #define TX_MSDU_EXTENSION_BUF0_PTR_31_0_OFFSET 0x00000018 245 #define TX_MSDU_EXTENSION_BUF0_PTR_31_0_LSB 0 246 #define TX_MSDU_EXTENSION_BUF0_PTR_31_0_MSB 31 247 #define TX_MSDU_EXTENSION_BUF0_PTR_31_0_MASK 0xffffffff 248 249 250 251 252 #define TX_MSDU_EXTENSION_BUF0_PTR_39_32_OFFSET 0x0000001c 253 #define TX_MSDU_EXTENSION_BUF0_PTR_39_32_LSB 0 254 #define TX_MSDU_EXTENSION_BUF0_PTR_39_32_MSB 7 255 #define TX_MSDU_EXTENSION_BUF0_PTR_39_32_MASK 0x000000ff 256 257 258 259 260 #define TX_MSDU_EXTENSION_EXTN_OVERRIDE_OFFSET 0x0000001c 261 #define TX_MSDU_EXTENSION_EXTN_OVERRIDE_LSB 8 262 #define TX_MSDU_EXTENSION_EXTN_OVERRIDE_MSB 8 263 #define TX_MSDU_EXTENSION_EXTN_OVERRIDE_MASK 0x00000100 264 265 266 267 268 #define TX_MSDU_EXTENSION_ENCAP_TYPE_OFFSET 0x0000001c 269 #define TX_MSDU_EXTENSION_ENCAP_TYPE_LSB 9 270 #define TX_MSDU_EXTENSION_ENCAP_TYPE_MSB 10 271 #define TX_MSDU_EXTENSION_ENCAP_TYPE_MASK 0x00000600 272 273 274 275 276 #define TX_MSDU_EXTENSION_ENCRYPT_TYPE_OFFSET 0x0000001c 277 #define TX_MSDU_EXTENSION_ENCRYPT_TYPE_LSB 11 278 #define TX_MSDU_EXTENSION_ENCRYPT_TYPE_MSB 14 279 #define TX_MSDU_EXTENSION_ENCRYPT_TYPE_MASK 0x00007800 280 281 282 283 284 #define TX_MSDU_EXTENSION_TQM_NO_DROP_OFFSET 0x0000001c 285 #define TX_MSDU_EXTENSION_TQM_NO_DROP_LSB 15 286 #define TX_MSDU_EXTENSION_TQM_NO_DROP_MSB 15 287 #define TX_MSDU_EXTENSION_TQM_NO_DROP_MASK 0x00008000 288 289 290 291 292 #define TX_MSDU_EXTENSION_BUF0_LEN_OFFSET 0x0000001c 293 #define TX_MSDU_EXTENSION_BUF0_LEN_LSB 16 294 #define TX_MSDU_EXTENSION_BUF0_LEN_MSB 31 295 #define TX_MSDU_EXTENSION_BUF0_LEN_MASK 0xffff0000 296 297 298 299 300 #define TX_MSDU_EXTENSION_BUF1_PTR_31_0_OFFSET 0x00000020 301 #define TX_MSDU_EXTENSION_BUF1_PTR_31_0_LSB 0 302 #define TX_MSDU_EXTENSION_BUF1_PTR_31_0_MSB 31 303 #define TX_MSDU_EXTENSION_BUF1_PTR_31_0_MASK 0xffffffff 304 305 306 307 308 #define TX_MSDU_EXTENSION_BUF1_PTR_39_32_OFFSET 0x00000024 309 #define TX_MSDU_EXTENSION_BUF1_PTR_39_32_LSB 0 310 #define TX_MSDU_EXTENSION_BUF1_PTR_39_32_MSB 7 311 #define TX_MSDU_EXTENSION_BUF1_PTR_39_32_MASK 0x000000ff 312 313 314 315 316 #define TX_MSDU_EXTENSION_EPD_OFFSET 0x00000024 317 #define TX_MSDU_EXTENSION_EPD_LSB 8 318 #define TX_MSDU_EXTENSION_EPD_MSB 8 319 #define TX_MSDU_EXTENSION_EPD_MASK 0x00000100 320 321 322 323 324 #define TX_MSDU_EXTENSION_MESH_ENABLE_OFFSET 0x00000024 325 #define TX_MSDU_EXTENSION_MESH_ENABLE_LSB 9 326 #define TX_MSDU_EXTENSION_MESH_ENABLE_MSB 10 327 #define TX_MSDU_EXTENSION_MESH_ENABLE_MASK 0x00000600 328 329 330 331 332 #define TX_MSDU_EXTENSION_RESERVED_9A_OFFSET 0x00000024 333 #define TX_MSDU_EXTENSION_RESERVED_9A_LSB 11 334 #define TX_MSDU_EXTENSION_RESERVED_9A_MSB 15 335 #define TX_MSDU_EXTENSION_RESERVED_9A_MASK 0x0000f800 336 337 338 339 340 #define TX_MSDU_EXTENSION_BUF1_LEN_OFFSET 0x00000024 341 #define TX_MSDU_EXTENSION_BUF1_LEN_LSB 16 342 #define TX_MSDU_EXTENSION_BUF1_LEN_MSB 31 343 #define TX_MSDU_EXTENSION_BUF1_LEN_MASK 0xffff0000 344 345 346 347 348 #define TX_MSDU_EXTENSION_BUF2_PTR_31_0_OFFSET 0x00000028 349 #define TX_MSDU_EXTENSION_BUF2_PTR_31_0_LSB 0 350 #define TX_MSDU_EXTENSION_BUF2_PTR_31_0_MSB 31 351 #define TX_MSDU_EXTENSION_BUF2_PTR_31_0_MASK 0xffffffff 352 353 354 355 356 #define TX_MSDU_EXTENSION_BUF2_PTR_39_32_OFFSET 0x0000002c 357 #define TX_MSDU_EXTENSION_BUF2_PTR_39_32_LSB 0 358 #define TX_MSDU_EXTENSION_BUF2_PTR_39_32_MSB 7 359 #define TX_MSDU_EXTENSION_BUF2_PTR_39_32_MASK 0x000000ff 360 361 362 363 364 #define TX_MSDU_EXTENSION_RESERVED_11A_OFFSET 0x0000002c 365 #define TX_MSDU_EXTENSION_RESERVED_11A_LSB 8 366 #define TX_MSDU_EXTENSION_RESERVED_11A_MSB 15 367 #define TX_MSDU_EXTENSION_RESERVED_11A_MASK 0x0000ff00 368 369 370 371 372 #define TX_MSDU_EXTENSION_BUF2_LEN_OFFSET 0x0000002c 373 #define TX_MSDU_EXTENSION_BUF2_LEN_LSB 16 374 #define TX_MSDU_EXTENSION_BUF2_LEN_MSB 31 375 #define TX_MSDU_EXTENSION_BUF2_LEN_MASK 0xffff0000 376 377 378 379 380 #define TX_MSDU_EXTENSION_BUF3_PTR_31_0_OFFSET 0x00000030 381 #define TX_MSDU_EXTENSION_BUF3_PTR_31_0_LSB 0 382 #define TX_MSDU_EXTENSION_BUF3_PTR_31_0_MSB 31 383 #define TX_MSDU_EXTENSION_BUF3_PTR_31_0_MASK 0xffffffff 384 385 386 387 388 #define TX_MSDU_EXTENSION_BUF3_PTR_39_32_OFFSET 0x00000034 389 #define TX_MSDU_EXTENSION_BUF3_PTR_39_32_LSB 0 390 #define TX_MSDU_EXTENSION_BUF3_PTR_39_32_MSB 7 391 #define TX_MSDU_EXTENSION_BUF3_PTR_39_32_MASK 0x000000ff 392 393 394 395 396 #define TX_MSDU_EXTENSION_RESERVED_13A_OFFSET 0x00000034 397 #define TX_MSDU_EXTENSION_RESERVED_13A_LSB 8 398 #define TX_MSDU_EXTENSION_RESERVED_13A_MSB 15 399 #define TX_MSDU_EXTENSION_RESERVED_13A_MASK 0x0000ff00 400 401 402 403 404 #define TX_MSDU_EXTENSION_BUF3_LEN_OFFSET 0x00000034 405 #define TX_MSDU_EXTENSION_BUF3_LEN_LSB 16 406 #define TX_MSDU_EXTENSION_BUF3_LEN_MSB 31 407 #define TX_MSDU_EXTENSION_BUF3_LEN_MASK 0xffff0000 408 409 410 411 412 #define TX_MSDU_EXTENSION_BUF4_PTR_31_0_OFFSET 0x00000038 413 #define TX_MSDU_EXTENSION_BUF4_PTR_31_0_LSB 0 414 #define TX_MSDU_EXTENSION_BUF4_PTR_31_0_MSB 31 415 #define TX_MSDU_EXTENSION_BUF4_PTR_31_0_MASK 0xffffffff 416 417 418 419 420 #define TX_MSDU_EXTENSION_BUF4_PTR_39_32_OFFSET 0x0000003c 421 #define TX_MSDU_EXTENSION_BUF4_PTR_39_32_LSB 0 422 #define TX_MSDU_EXTENSION_BUF4_PTR_39_32_MSB 7 423 #define TX_MSDU_EXTENSION_BUF4_PTR_39_32_MASK 0x000000ff 424 425 426 427 428 #define TX_MSDU_EXTENSION_RESERVED_15A_OFFSET 0x0000003c 429 #define TX_MSDU_EXTENSION_RESERVED_15A_LSB 8 430 #define TX_MSDU_EXTENSION_RESERVED_15A_MSB 15 431 #define TX_MSDU_EXTENSION_RESERVED_15A_MASK 0x0000ff00 432 433 434 435 436 #define TX_MSDU_EXTENSION_BUF4_LEN_OFFSET 0x0000003c 437 #define TX_MSDU_EXTENSION_BUF4_LEN_LSB 16 438 #define TX_MSDU_EXTENSION_BUF4_LEN_MSB 31 439 #define TX_MSDU_EXTENSION_BUF4_LEN_MASK 0xffff0000 440 441 442 443 444 #define TX_MSDU_EXTENSION_BUF5_PTR_31_0_OFFSET 0x00000040 445 #define TX_MSDU_EXTENSION_BUF5_PTR_31_0_LSB 0 446 #define TX_MSDU_EXTENSION_BUF5_PTR_31_0_MSB 31 447 #define TX_MSDU_EXTENSION_BUF5_PTR_31_0_MASK 0xffffffff 448 449 450 451 452 #define TX_MSDU_EXTENSION_BUF5_PTR_39_32_OFFSET 0x00000044 453 #define TX_MSDU_EXTENSION_BUF5_PTR_39_32_LSB 0 454 #define TX_MSDU_EXTENSION_BUF5_PTR_39_32_MSB 7 455 #define TX_MSDU_EXTENSION_BUF5_PTR_39_32_MASK 0x000000ff 456 457 458 459 460 #define TX_MSDU_EXTENSION_RESERVED_17A_OFFSET 0x00000044 461 #define TX_MSDU_EXTENSION_RESERVED_17A_LSB 8 462 #define TX_MSDU_EXTENSION_RESERVED_17A_MSB 15 463 #define TX_MSDU_EXTENSION_RESERVED_17A_MASK 0x0000ff00 464 465 466 467 468 #define TX_MSDU_EXTENSION_BUF5_LEN_OFFSET 0x00000044 469 #define TX_MSDU_EXTENSION_BUF5_LEN_LSB 16 470 #define TX_MSDU_EXTENSION_BUF5_LEN_MSB 31 471 #define TX_MSDU_EXTENSION_BUF5_LEN_MASK 0xffff0000 472 473 474 475 #endif 476