
Added ipq9574 target header files under qca9574 to make fw-api project compatible to host. Change-Id: I6a3b43861772a98bb185ee3101b3942dd30abc77 Signed-off-by: Basamma Yakkanahalli <ybasamma@codeaurora.org>
482 lines
14 KiB
C
482 lines
14 KiB
C
/*
|
|
* Copyright (c) 2021 The Linux Foundation. All rights reserved.
|
|
*
|
|
* Permission to use, copy, modify, and/or distribute this software for any
|
|
* purpose with or without fee is hereby granted, provided that the above
|
|
* copyright notice and this permission notice appear in all copies.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
|
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
|
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
|
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
|
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
|
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
|
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
*/
|
|
|
|
// $ATH_LICENSE_HW_HDR_C$
|
|
//
|
|
// DO NOT EDIT! This file is automatically generated
|
|
// These definitions are tied to a particular hardware layout
|
|
|
|
|
|
#ifndef _RXPT_CLASSIFY_INFO_H_
|
|
#define _RXPT_CLASSIFY_INFO_H_
|
|
#if !defined(__ASSEMBLER__)
|
|
#endif
|
|
|
|
|
|
// ################ START SUMMARY #################
|
|
//
|
|
// Dword Fields
|
|
// 0 reo_destination_indication[4:0], reserved_0a[6:5], use_flow_id_toeplitz_clfy[7], pkt_selection_fp_ucast_data[8], pkt_selection_fp_mcast_data[9], pkt_selection_fp_1000[10], rxdma0_source_ring_selection[12:11], rxdma0_destination_ring_selection[14:13], reserved_0b[31:15]
|
|
//
|
|
// ################ END SUMMARY #################
|
|
|
|
#define NUM_OF_DWORDS_RXPT_CLASSIFY_INFO 1
|
|
|
|
struct rxpt_classify_info {
|
|
uint32_t reo_destination_indication : 5, //[4:0]
|
|
reserved_0a : 2, //[6:5]
|
|
use_flow_id_toeplitz_clfy : 1, //[7]
|
|
pkt_selection_fp_ucast_data : 1, //[8]
|
|
pkt_selection_fp_mcast_data : 1, //[9]
|
|
pkt_selection_fp_1000 : 1, //[10]
|
|
rxdma0_source_ring_selection : 2, //[12:11]
|
|
rxdma0_destination_ring_selection: 2, //[14:13]
|
|
reserved_0b : 17; //[31:15]
|
|
};
|
|
|
|
/*
|
|
|
|
reo_destination_indication
|
|
|
|
The ID of the REO exit ring where the MSDU frame shall
|
|
push after (MPDU level) reordering has finished.
|
|
|
|
|
|
|
|
<enum 0 reo_destination_tcl> Reo will push the frame
|
|
into the REO2TCL ring
|
|
|
|
<enum 1 reo_destination_sw1> Reo will push the frame
|
|
into the REO2SW1 ring
|
|
|
|
<enum 2 reo_destination_sw2> Reo will push the frame
|
|
into the REO2SW1 ring
|
|
|
|
<enum 3 reo_destination_sw3> Reo will push the frame
|
|
into the REO2SW1 ring
|
|
|
|
<enum 4 reo_destination_sw4> Reo will push the frame
|
|
into the REO2SW1 ring
|
|
|
|
<enum 5 reo_destination_release> Reo will push the frame
|
|
into the REO_release ring
|
|
|
|
<enum 6 reo_destination_fw> Reo will push the frame into
|
|
the REO2FW ring
|
|
|
|
<enum 7 reo_destination_7> REO remaps this
|
|
|
|
<enum 8 reo_destination_8> REO remaps this <enum 9
|
|
reo_destination_9> REO remaps this <enum 10
|
|
reo_destination_10> REO remaps this
|
|
|
|
<enum 11 reo_destination_11> REO remaps this
|
|
|
|
<enum 12 reo_destination_12> REO remaps this <enum 13
|
|
reo_destination_13> REO remaps this
|
|
|
|
<enum 14 reo_destination_14> REO remaps this
|
|
|
|
<enum 15 reo_destination_15> REO remaps this
|
|
|
|
<enum 16 reo_destination_16> REO remaps this
|
|
|
|
<enum 17 reo_destination_17> REO remaps this
|
|
|
|
<enum 18 reo_destination_18> REO remaps this
|
|
|
|
<enum 19 reo_destination_19> REO remaps this
|
|
|
|
<enum 20 reo_destination_20> REO remaps this
|
|
|
|
<enum 21 reo_destination_21> REO remaps this
|
|
|
|
<enum 22 reo_destination_22> REO remaps this
|
|
|
|
<enum 23 reo_destination_23> REO remaps this
|
|
|
|
<enum 24 reo_destination_24> REO remaps this
|
|
|
|
<enum 25 reo_destination_25> REO remaps this
|
|
|
|
<enum 26 reo_destination_26> REO remaps this
|
|
|
|
<enum 27 reo_destination_27> REO remaps this
|
|
|
|
<enum 28 reo_destination_28> REO remaps this
|
|
|
|
<enum 29 reo_destination_29> REO remaps this
|
|
|
|
<enum 30 reo_destination_30> REO remaps this
|
|
|
|
<enum 31 reo_destination_31> REO remaps this
|
|
|
|
|
|
|
|
<legal all>
|
|
|
|
reserved_0a
|
|
|
|
<legal 0>
|
|
|
|
use_flow_id_toeplitz_clfy
|
|
|
|
Field is used to enable classification based on the
|
|
chosen Toeplitz hash from Common Parser (without reference
|
|
to each hash type).
|
|
|
|
<legal all>
|
|
|
|
pkt_selection_fp_ucast_data
|
|
|
|
Filter pass ucast data frame routing selection.
|
|
|
|
|
|
|
|
1'b0: source and destination rings are selected from the
|
|
RxOLE register settings for the packet type
|
|
|
|
|
|
|
|
1'b1: source ring and destination ring is selected from
|
|
the rxdma0_source_ring_selection and
|
|
rxdma0_destination_ring_selection fields in this STRUCT
|
|
|
|
<legal all>
|
|
|
|
pkt_selection_fp_mcast_data
|
|
|
|
Filter pass multicase data frame routing selection.
|
|
|
|
|
|
|
|
1'b0: source and destination rings are selected from the
|
|
RxOLE register settings for the packet type
|
|
|
|
|
|
|
|
1'b1: source ring and destination ring is selected from
|
|
the rxdma0_source_ring_selection and
|
|
rxdma0_destination_ring_selection fields in this STRUCT
|
|
|
|
<legal all>
|
|
|
|
pkt_selection_fp_1000
|
|
|
|
Filter pass control bar frame routing selection.
|
|
|
|
|
|
|
|
1'b0: source and destination rings are selected from the
|
|
RxOLE register settings for the packet type
|
|
|
|
|
|
|
|
1'b1: source ring and destination ring is selected from
|
|
the rxdma0_source_ring_selection and
|
|
rxdma0_destination_ring_selection fields in this STRUCT
|
|
|
|
<legal all>
|
|
|
|
rxdma0_source_ring_selection
|
|
|
|
Field only valid when for the received frame type the
|
|
corresponding pkt_selection_fp_... bit is set
|
|
|
|
|
|
|
|
<enum 0 wbm2rxdma_buf_source_ring> The data buffer for
|
|
this frame shall be sourced by wbm2rxdma buffer source ring
|
|
|
|
<enum 1 fw2rxdma_buf_source_ring> The data buffer for
|
|
this frame shall be sourced by fw2rxdma buffer source ring
|
|
|
|
<enum 2 sw2rxdma_buf_source_ring> The data buffer for
|
|
this frame shall be sourced by sw2rxdma buffer source ring
|
|
|
|
<enum 3 no_buffer_ring> The frame shall not be written
|
|
to any data buffer
|
|
|
|
<legal all>
|
|
|
|
rxdma0_destination_ring_selection
|
|
|
|
Field only valid when for the received frame type the
|
|
corresponding pkt_selection_fp_... bit is set
|
|
|
|
|
|
|
|
<enum 0 rxdma_release_ring > RXDMA0 shall push the
|
|
frame to the Release ring. Effectively this means the frame
|
|
needs to be dropped.
|
|
|
|
|
|
|
|
<enum 1 rxdma2fw_ring > RXDMA0 shall push the frame to
|
|
the FW ring
|
|
|
|
|
|
|
|
<enum 2 rxdma2sw_ring > RXDMA0 shall push the frame to
|
|
the SW ring
|
|
|
|
|
|
|
|
<enum 3 rxdma2reo_ring > RXDMA0 shall push the frame
|
|
to the REO entrance ring
|
|
|
|
<legal all>
|
|
|
|
reserved_0b
|
|
|
|
<legal 0>
|
|
*/
|
|
|
|
|
|
/* Description RXPT_CLASSIFY_INFO_0_REO_DESTINATION_INDICATION
|
|
|
|
The ID of the REO exit ring where the MSDU frame shall
|
|
push after (MPDU level) reordering has finished.
|
|
|
|
|
|
|
|
<enum 0 reo_destination_tcl> Reo will push the frame
|
|
into the REO2TCL ring
|
|
|
|
<enum 1 reo_destination_sw1> Reo will push the frame
|
|
into the REO2SW1 ring
|
|
|
|
<enum 2 reo_destination_sw2> Reo will push the frame
|
|
into the REO2SW1 ring
|
|
|
|
<enum 3 reo_destination_sw3> Reo will push the frame
|
|
into the REO2SW1 ring
|
|
|
|
<enum 4 reo_destination_sw4> Reo will push the frame
|
|
into the REO2SW1 ring
|
|
|
|
<enum 5 reo_destination_release> Reo will push the frame
|
|
into the REO_release ring
|
|
|
|
<enum 6 reo_destination_fw> Reo will push the frame into
|
|
the REO2FW ring
|
|
|
|
<enum 7 reo_destination_7> REO remaps this
|
|
|
|
<enum 8 reo_destination_8> REO remaps this <enum 9
|
|
reo_destination_9> REO remaps this <enum 10
|
|
reo_destination_10> REO remaps this
|
|
|
|
<enum 11 reo_destination_11> REO remaps this
|
|
|
|
<enum 12 reo_destination_12> REO remaps this <enum 13
|
|
reo_destination_13> REO remaps this
|
|
|
|
<enum 14 reo_destination_14> REO remaps this
|
|
|
|
<enum 15 reo_destination_15> REO remaps this
|
|
|
|
<enum 16 reo_destination_16> REO remaps this
|
|
|
|
<enum 17 reo_destination_17> REO remaps this
|
|
|
|
<enum 18 reo_destination_18> REO remaps this
|
|
|
|
<enum 19 reo_destination_19> REO remaps this
|
|
|
|
<enum 20 reo_destination_20> REO remaps this
|
|
|
|
<enum 21 reo_destination_21> REO remaps this
|
|
|
|
<enum 22 reo_destination_22> REO remaps this
|
|
|
|
<enum 23 reo_destination_23> REO remaps this
|
|
|
|
<enum 24 reo_destination_24> REO remaps this
|
|
|
|
<enum 25 reo_destination_25> REO remaps this
|
|
|
|
<enum 26 reo_destination_26> REO remaps this
|
|
|
|
<enum 27 reo_destination_27> REO remaps this
|
|
|
|
<enum 28 reo_destination_28> REO remaps this
|
|
|
|
<enum 29 reo_destination_29> REO remaps this
|
|
|
|
<enum 30 reo_destination_30> REO remaps this
|
|
|
|
<enum 31 reo_destination_31> REO remaps this
|
|
|
|
|
|
|
|
<legal all>
|
|
*/
|
|
#define RXPT_CLASSIFY_INFO_0_REO_DESTINATION_INDICATION_OFFSET 0x00000000
|
|
#define RXPT_CLASSIFY_INFO_0_REO_DESTINATION_INDICATION_LSB 0
|
|
#define RXPT_CLASSIFY_INFO_0_REO_DESTINATION_INDICATION_MASK 0x0000001f
|
|
|
|
/* Description RXPT_CLASSIFY_INFO_0_RESERVED_0A
|
|
|
|
<legal 0>
|
|
*/
|
|
#define RXPT_CLASSIFY_INFO_0_RESERVED_0A_OFFSET 0x00000000
|
|
#define RXPT_CLASSIFY_INFO_0_RESERVED_0A_LSB 5
|
|
#define RXPT_CLASSIFY_INFO_0_RESERVED_0A_MASK 0x00000060
|
|
|
|
/* Description RXPT_CLASSIFY_INFO_0_USE_FLOW_ID_TOEPLITZ_CLFY
|
|
|
|
Field is used to enable classification based on the
|
|
chosen Toeplitz hash from Common Parser (without reference
|
|
to each hash type).
|
|
|
|
<legal all>
|
|
*/
|
|
#define RXPT_CLASSIFY_INFO_0_USE_FLOW_ID_TOEPLITZ_CLFY_OFFSET 0x00000000
|
|
#define RXPT_CLASSIFY_INFO_0_USE_FLOW_ID_TOEPLITZ_CLFY_LSB 7
|
|
#define RXPT_CLASSIFY_INFO_0_USE_FLOW_ID_TOEPLITZ_CLFY_MASK 0x00000080
|
|
|
|
/* Description RXPT_CLASSIFY_INFO_0_PKT_SELECTION_FP_UCAST_DATA
|
|
|
|
Filter pass ucast data frame routing selection.
|
|
|
|
|
|
|
|
1'b0: source and destination rings are selected from the
|
|
RxOLE register settings for the packet type
|
|
|
|
|
|
|
|
1'b1: source ring and destination ring is selected from
|
|
the rxdma0_source_ring_selection and
|
|
rxdma0_destination_ring_selection fields in this STRUCT
|
|
|
|
<legal all>
|
|
*/
|
|
#define RXPT_CLASSIFY_INFO_0_PKT_SELECTION_FP_UCAST_DATA_OFFSET 0x00000000
|
|
#define RXPT_CLASSIFY_INFO_0_PKT_SELECTION_FP_UCAST_DATA_LSB 8
|
|
#define RXPT_CLASSIFY_INFO_0_PKT_SELECTION_FP_UCAST_DATA_MASK 0x00000100
|
|
|
|
/* Description RXPT_CLASSIFY_INFO_0_PKT_SELECTION_FP_MCAST_DATA
|
|
|
|
Filter pass multicase data frame routing selection.
|
|
|
|
|
|
|
|
1'b0: source and destination rings are selected from the
|
|
RxOLE register settings for the packet type
|
|
|
|
|
|
|
|
1'b1: source ring and destination ring is selected from
|
|
the rxdma0_source_ring_selection and
|
|
rxdma0_destination_ring_selection fields in this STRUCT
|
|
|
|
<legal all>
|
|
*/
|
|
#define RXPT_CLASSIFY_INFO_0_PKT_SELECTION_FP_MCAST_DATA_OFFSET 0x00000000
|
|
#define RXPT_CLASSIFY_INFO_0_PKT_SELECTION_FP_MCAST_DATA_LSB 9
|
|
#define RXPT_CLASSIFY_INFO_0_PKT_SELECTION_FP_MCAST_DATA_MASK 0x00000200
|
|
|
|
/* Description RXPT_CLASSIFY_INFO_0_PKT_SELECTION_FP_1000
|
|
|
|
Filter pass control bar frame routing selection.
|
|
|
|
|
|
|
|
1'b0: source and destination rings are selected from the
|
|
RxOLE register settings for the packet type
|
|
|
|
|
|
|
|
1'b1: source ring and destination ring is selected from
|
|
the rxdma0_source_ring_selection and
|
|
rxdma0_destination_ring_selection fields in this STRUCT
|
|
|
|
<legal all>
|
|
*/
|
|
#define RXPT_CLASSIFY_INFO_0_PKT_SELECTION_FP_1000_OFFSET 0x00000000
|
|
#define RXPT_CLASSIFY_INFO_0_PKT_SELECTION_FP_1000_LSB 10
|
|
#define RXPT_CLASSIFY_INFO_0_PKT_SELECTION_FP_1000_MASK 0x00000400
|
|
|
|
/* Description RXPT_CLASSIFY_INFO_0_RXDMA0_SOURCE_RING_SELECTION
|
|
|
|
Field only valid when for the received frame type the
|
|
corresponding pkt_selection_fp_... bit is set
|
|
|
|
|
|
|
|
<enum 0 wbm2rxdma_buf_source_ring> The data buffer for
|
|
this frame shall be sourced by wbm2rxdma buffer source ring
|
|
|
|
<enum 1 fw2rxdma_buf_source_ring> The data buffer for
|
|
this frame shall be sourced by fw2rxdma buffer source ring
|
|
|
|
<enum 2 sw2rxdma_buf_source_ring> The data buffer for
|
|
this frame shall be sourced by sw2rxdma buffer source ring
|
|
|
|
<enum 3 no_buffer_ring> The frame shall not be written
|
|
to any data buffer
|
|
|
|
<legal all>
|
|
*/
|
|
#define RXPT_CLASSIFY_INFO_0_RXDMA0_SOURCE_RING_SELECTION_OFFSET 0x00000000
|
|
#define RXPT_CLASSIFY_INFO_0_RXDMA0_SOURCE_RING_SELECTION_LSB 11
|
|
#define RXPT_CLASSIFY_INFO_0_RXDMA0_SOURCE_RING_SELECTION_MASK 0x00001800
|
|
|
|
/* Description RXPT_CLASSIFY_INFO_0_RXDMA0_DESTINATION_RING_SELECTION
|
|
|
|
Field only valid when for the received frame type the
|
|
corresponding pkt_selection_fp_... bit is set
|
|
|
|
|
|
|
|
<enum 0 rxdma_release_ring > RXDMA0 shall push the
|
|
frame to the Release ring. Effectively this means the frame
|
|
needs to be dropped.
|
|
|
|
|
|
|
|
<enum 1 rxdma2fw_ring > RXDMA0 shall push the frame to
|
|
the FW ring
|
|
|
|
|
|
|
|
<enum 2 rxdma2sw_ring > RXDMA0 shall push the frame to
|
|
the SW ring
|
|
|
|
|
|
|
|
<enum 3 rxdma2reo_ring > RXDMA0 shall push the frame
|
|
to the REO entrance ring
|
|
|
|
<legal all>
|
|
*/
|
|
#define RXPT_CLASSIFY_INFO_0_RXDMA0_DESTINATION_RING_SELECTION_OFFSET 0x00000000
|
|
#define RXPT_CLASSIFY_INFO_0_RXDMA0_DESTINATION_RING_SELECTION_LSB 13
|
|
#define RXPT_CLASSIFY_INFO_0_RXDMA0_DESTINATION_RING_SELECTION_MASK 0x00006000
|
|
|
|
/* Description RXPT_CLASSIFY_INFO_0_RESERVED_0B
|
|
|
|
<legal 0>
|
|
*/
|
|
#define RXPT_CLASSIFY_INFO_0_RESERVED_0B_OFFSET 0x00000000
|
|
#define RXPT_CLASSIFY_INFO_0_RESERVED_0B_LSB 15
|
|
#define RXPT_CLASSIFY_INFO_0_RESERVED_0B_MASK 0xffff8000
|
|
|
|
|
|
#endif // _RXPT_CLASSIFY_INFO_H_
|