xref: /wlan-dirver/qca-wifi-host-cmn/hal/wifi3.0/hal_rx_hw_defines.h (revision 901120c066e139c7f8a2c8e4820561fdd83c67ef)
1 /*
2  * Copyright (c) 2021 The Linux Foundation. All rights reserved.
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 #ifndef _HAL_RX_HW_DEFINES_H_
21 #define _HAL_RX_HW_DEFINES_H_
22 
23 /* Unified 32-bit desc fields */
24 #define HAL_RX_USER_TLV32_TYPE_OFFSET		0x00000000
25 #define HAL_RX_USER_TLV32_TYPE_LSB		1
26 #define HAL_RX_USER_TLV32_TYPE_MASK		0x000003FE
27 
28 #define HAL_RX_USER_TLV32_LEN_OFFSET		0x00000000
29 #define HAL_RX_USER_TLV32_LEN_LSB		10
30 #define HAL_RX_USER_TLV32_LEN_MASK		0x003FFC00
31 
32 #define HAL_RX_USER_TLV32_USERID_OFFSET		0x00000000
33 #define HAL_RX_USER_TLV32_USERID_LSB		26
34 #define HAL_RX_USER_TLV32_USERID_MASK		0xFC000000
35 
36 /* Unified 64-bit desc fields */
37 #define HAL_RX_USER_TLV64_TYPE_OFFSET		0x0000000000000000
38 #define HAL_RX_USER_TLV64_TYPE_LSB		1
39 #define HAL_RX_USER_TLV64_TYPE_MASK		0x00000000000003FE
40 
41 #define HAL_RX_USER_TLV64_LEN_OFFSET		0x0000000000000000
42 #define HAL_RX_USER_TLV64_LEN_LSB		10
43 #define HAL_RX_USER_TLV64_LEN_MASK		0x00000000003FFC00
44 
45 #define HAL_RX_USER_TLV64_USERID_OFFSET		0x0000000000000000
46 #define HAL_RX_USER_TLV64_USERID_LSB		26
47 #define HAL_RX_USER_TLV64_USERID_MASK		0x00000000FC000000
48 
49 /* rx mpdu desc info */
50 #define HAL_RX_MPDU_DESC_INFO_MSDU_COUNT_OFFSET		0x0
51 #define HAL_RX_MPDU_DESC_INFO_MSDU_COUNT_LSB		0
52 #define HAL_RX_MPDU_DESC_INFO_MSDU_COUNT_MASK		0x000000ff
53 
54 /* reo entrance ring */
55 #define HAL_REO_ENTRANCE_RING_LOOPING_COUNT_OFFSET	0x1c
56 #define HAL_REO_ENTRANCE_RING_LOOPING_COUNT_LSB		28
57 #define HAL_REO_ENTRANCE_RING_LOOPING_COUNT_MASK	0xf0000000
58 
59 #define HAL_REO_ENTRANCE_RING_RXDMA_PUSH_REASON_OFFSET		0x18
60 #define HAL_REO_ENTRANCE_RING_RXDMA_PUSH_REASON_LSB		0
61 #define HAL_REO_ENTRANCE_RING_RXDMA_PUSH_REASON_MASK		0x00000003
62 
63 #define HAL_REO_ENTRANCE_RING_RXDMA_ERROR_CODE_OFFSET		0x18
64 #define HAL_REO_ENTRANCE_RING_RXDMA_ERROR_CODE_LSB		2
65 #define HAL_REO_ENTRANCE_RING_RXDMA_ERROR_CODE_MASK		0x0000007c
66 
67 #define HAL_SW2WBM_RELEASE_RING_RELEASE_SOURCE_MODULE_OFFSET	0x8
68 #define HAL_SW2WBM_RELEASE_RING_RELEASE_SOURCE_MODULE_LSB	0
69 #define HAL_SW2WBM_RELEASE_RING_RELEASE_SOURCE_MODULE_MASK	0x00000007
70 
71 #define HAL_SW2WBM_RELEASE_RING_BM_ACTION_OFFSET		0x8
72 #define HAL_SW2WBM_RELEASE_RING_BM_ACTION_LSB			3
73 #define HAL_SW2WBM_RELEASE_RING_BM_ACTION_MASK			0x00000038
74 
75 #define HAL_SW2WBM_RELEASE_RING_BUFFER_OR_DESC_TYPE_OFFSET	0x8
76 #define HAL_SW2WBM_RELEASE_RING_BUFFER_OR_DESC_TYPE_LSB		6
77 #define HAL_SW2WBM_RELEASE_RING_BUFFER_OR_DESC_TYPE_MASK	0x000001c0
78 
79 /* REO CMD entry offsets */
80 #define HAL_UNIFORM_REO_CMD_HEADER_REO_CMD_NUMBER_OFFSET	0x0
81 #define HAL_UNIFORM_REO_CMD_HEADER_REO_CMD_NUMBER_LSB		0
82 #define HAL_UNIFORM_REO_CMD_HEADER_REO_CMD_NUMBER_MASK		0x0000ffff
83 
84 #define HAL_UNIFORM_DESCRIPTOR_HEADER_OWNER_OFFSET		0x00000000
85 #define HAL_UNIFORM_DESCRIPTOR_HEADER_OWNER_LSB			0
86 #define HAL_UNIFORM_DESCRIPTOR_HEADER_OWNER_MASK		0x0000000f
87 
88 #define HAL_UNIFORM_DESCRIPTOR_HEADER_BUFFER_TYPE_OFFSET	0x00000000
89 #define HAL_UNIFORM_DESCRIPTOR_HEADER_BUFFER_TYPE_LSB		4
90 #define HAL_UNIFORM_DESCRIPTOR_HEADER_BUFFER_TYPE_MASK		0x000000f0
91 
92 #define HAL_WBM_INTERNAL_ERROR_OFFSET		0x8
93 #define HAL_WBM_INTERNAL_ERROR_LSB		31
94 #define HAL_WBM_INTERNAL_ERROR_MASK		0x80000000
95 
96 #define WBM_ERR_RING_BUFFER_OR_DESC_TYPE_OFFSET	0x8
97 #define WBM_ERR_RING_BUFFER_OR_DESC_TYPE_LSB	6
98 #define WBM_ERR_RING_BUFFER_OR_DESC_TYPE_MASK	0x000001c0
99 
100 /* RX Flow search entry MACROS */
101 #define HAL_RX_FLOW_SEARCH_ENTRY_VALID_OFFSET			0x00000024
102 #define HAL_RX_FLOW_SEARCH_ENTRY_VALID_LSB			8
103 #define HAL_RX_FLOW_SEARCH_ENTRY_VALID_MASK			0x00000100
104 
105 #define HAL_RX_FLOW_SEARCH_ENTRY_SRC_IP_127_96_OFFSET		0x00000000
106 #define HAL_RX_FLOW_SEARCH_ENTRY_SRC_IP_127_96_LSB		0
107 #define HAL_RX_FLOW_SEARCH_ENTRY_SRC_IP_127_96_MASK		0xffffffff
108 
109 #define HAL_RX_FLOW_SEARCH_ENTRY_SRC_IP_95_64_OFFSET		0x00000004
110 #define HAL_RX_FLOW_SEARCH_ENTRY_SRC_IP_95_64_LSB		0
111 #define HAL_RX_FLOW_SEARCH_ENTRY_SRC_IP_95_64_MASK		0xffffffff
112 
113 #define HAL_RX_FLOW_SEARCH_ENTRY_SRC_IP_63_32_OFFSET		0x00000008
114 #define HAL_RX_FLOW_SEARCH_ENTRY_SRC_IP_63_32_LSB		0
115 #define HAL_RX_FLOW_SEARCH_ENTRY_SRC_IP_63_32_MASK		0xffffffff
116 
117 #define HAL_RX_FLOW_SEARCH_ENTRY_SRC_IP_31_0_OFFSET		0x0000000c
118 #define HAL_RX_FLOW_SEARCH_ENTRY_SRC_IP_31_0_LSB		0
119 #define HAL_RX_FLOW_SEARCH_ENTRY_SRC_IP_31_0_MASK		0xffffffff
120 
121 #define HAL_RX_FLOW_SEARCH_ENTRY_DEST_IP_127_96_OFFSET		0x00000010
122 #define HAL_RX_FLOW_SEARCH_ENTRY_DEST_IP_127_96_LSB		0
123 #define HAL_RX_FLOW_SEARCH_ENTRY_DEST_IP_127_96_MASK		0xffffffff
124 
125 #define HAL_RX_FLOW_SEARCH_ENTRY_DEST_IP_95_64_OFFSET		0x00000014
126 #define HAL_RX_FLOW_SEARCH_ENTRY_DEST_IP_95_64_LSB		0
127 #define HAL_RX_FLOW_SEARCH_ENTRY_DEST_IP_95_64_MASK		0xffffffff
128 
129 #define HAL_RX_FLOW_SEARCH_ENTRY_DEST_IP_63_32_OFFSET		0x00000018
130 #define HAL_RX_FLOW_SEARCH_ENTRY_DEST_IP_63_32_LSB		0
131 #define HAL_RX_FLOW_SEARCH_ENTRY_DEST_IP_63_32_MASK		0xffffffff
132 
133 #define HAL_RX_FLOW_SEARCH_ENTRY_DEST_IP_31_0_OFFSET		0x0000001c
134 #define HAL_RX_FLOW_SEARCH_ENTRY_DEST_IP_31_0_LSB		0
135 #define HAL_RX_FLOW_SEARCH_ENTRY_DEST_IP_31_0_MASK		0xffffffff
136 
137 #define HAL_RX_FLOW_SEARCH_ENTRY_DEST_PORT_OFFSET		0x00000020
138 #define HAL_RX_FLOW_SEARCH_ENTRY_DEST_PORT_LSB			16
139 #define HAL_RX_FLOW_SEARCH_ENTRY_DEST_PORT_MASK			0xffff0000
140 
141 #define HAL_RX_FLOW_SEARCH_ENTRY_SRC_PORT_OFFSET		0x00000020
142 #define HAL_RX_FLOW_SEARCH_ENTRY_SRC_PORT_LSB			0
143 #define HAL_RX_FLOW_SEARCH_ENTRY_SRC_PORT_MASK			0x0000ffff
144 
145 #define HAL_RX_FLOW_SEARCH_ENTRY_L4_PROTOCOL_OFFSET		0x00000024
146 #define HAL_RX_FLOW_SEARCH_ENTRY_L4_PROTOCOL_LSB		0
147 #define HAL_RX_FLOW_SEARCH_ENTRY_L4_PROTOCOL_MASK		0x000000ff
148 
149 #endif /* _HAL_RX_HW_DEFINES_H_ */
150