149b49cdaSZbigniew Bodek /*-
249b49cdaSZbigniew Bodek *******************************************************************************
349b49cdaSZbigniew Bodek Copyright (C) 2015 Annapurna Labs Ltd.
449b49cdaSZbigniew Bodek 
549b49cdaSZbigniew Bodek This file may be licensed under the terms of the Annapurna Labs Commercial
649b49cdaSZbigniew Bodek License Agreement.
749b49cdaSZbigniew Bodek 
849b49cdaSZbigniew Bodek Alternatively, this file can be distributed under the terms of the GNU General
949b49cdaSZbigniew Bodek Public License V2 as published by the Free Software Foundation and can be
1049b49cdaSZbigniew Bodek found at http://www.gnu.org/licenses/gpl-2.0.html
1149b49cdaSZbigniew Bodek 
1249b49cdaSZbigniew Bodek Alternatively, redistribution and use in source and binary forms, with or
1349b49cdaSZbigniew Bodek without modification, are permitted provided that the following conditions are
1449b49cdaSZbigniew Bodek met:
1549b49cdaSZbigniew Bodek 
1649b49cdaSZbigniew Bodek     *     Redistributions of source code must retain the above copyright notice,
1749b49cdaSZbigniew Bodek this list of conditions and the following disclaimer.
1849b49cdaSZbigniew Bodek 
1949b49cdaSZbigniew Bodek     *     Redistributions in binary form must reproduce the above copyright
2049b49cdaSZbigniew Bodek notice, this list of conditions and the following disclaimer in
2149b49cdaSZbigniew Bodek the documentation and/or other materials provided with the
2249b49cdaSZbigniew Bodek distribution.
2349b49cdaSZbigniew Bodek 
2449b49cdaSZbigniew Bodek THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
2549b49cdaSZbigniew Bodek ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
2649b49cdaSZbigniew Bodek WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
2749b49cdaSZbigniew Bodek DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
2849b49cdaSZbigniew Bodek ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
2949b49cdaSZbigniew Bodek (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
3049b49cdaSZbigniew Bodek LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
3149b49cdaSZbigniew Bodek ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
3249b49cdaSZbigniew Bodek (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
3349b49cdaSZbigniew Bodek SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
3449b49cdaSZbigniew Bodek 
3549b49cdaSZbigniew Bodek *******************************************************************************/
3649b49cdaSZbigniew Bodek 
3749b49cdaSZbigniew Bodek /**
3849b49cdaSZbigniew Bodek  *  @{
3949b49cdaSZbigniew Bodek  * @file   al_hal_eth_ec_regs.h
4049b49cdaSZbigniew Bodek  *
4149b49cdaSZbigniew Bodek  * @brief Ethernet controller registers
4249b49cdaSZbigniew Bodek  *
4349b49cdaSZbigniew Bodek  */
4449b49cdaSZbigniew Bodek 
4549b49cdaSZbigniew Bodek #ifndef __AL_HAL_EC_REG_H
4649b49cdaSZbigniew Bodek #define __AL_HAL_EC_REG_H
4749b49cdaSZbigniew Bodek 
4849b49cdaSZbigniew Bodek #include "al_hal_plat_types.h"
4949b49cdaSZbigniew Bodek 
5049b49cdaSZbigniew Bodek #ifdef __cplusplus
5149b49cdaSZbigniew Bodek extern "C" {
5249b49cdaSZbigniew Bodek #endif
5349b49cdaSZbigniew Bodek /*
5449b49cdaSZbigniew Bodek * Unit Registers
5549b49cdaSZbigniew Bodek */
5649b49cdaSZbigniew Bodek 
5749b49cdaSZbigniew Bodek 
5849b49cdaSZbigniew Bodek 
5949b49cdaSZbigniew Bodek struct al_ec_gen {
6049b49cdaSZbigniew Bodek 	/* [0x0] Ethernet controller Version */
6149b49cdaSZbigniew Bodek 	uint32_t version;
6249b49cdaSZbigniew Bodek 	/* [0x4] Enable modules operation. */
6349b49cdaSZbigniew Bodek 	uint32_t en;
6449b49cdaSZbigniew Bodek 	/* [0x8] Enable FIFO operation on the EC side. */
6549b49cdaSZbigniew Bodek 	uint32_t fifo_en;
6649b49cdaSZbigniew Bodek 	/* [0xc] General L2 configuration for the Ethernet controlle ... */
6749b49cdaSZbigniew Bodek 	uint32_t l2;
6849b49cdaSZbigniew Bodek 	/* [0x10] Configure protocol index values */
6949b49cdaSZbigniew Bodek 	uint32_t cfg_i;
7049b49cdaSZbigniew Bodek 	/* [0x14] Configure protocol index values (extended protocols ... */
7149b49cdaSZbigniew Bodek 	uint32_t cfg_i_ext;
7249b49cdaSZbigniew Bodek 	/* [0x18] Enable modules operation (extended operations). */
7349b49cdaSZbigniew Bodek 	uint32_t en_ext;
7449b49cdaSZbigniew Bodek 	uint32_t rsrvd[9];
7549b49cdaSZbigniew Bodek };
7649b49cdaSZbigniew Bodek struct al_ec_mac {
7749b49cdaSZbigniew Bodek 	/* [0x0] General configuration of the MAC side of the Ethern ... */
7849b49cdaSZbigniew Bodek 	uint32_t gen;
7949b49cdaSZbigniew Bodek 	/* [0x4] Minimum packet size  */
8049b49cdaSZbigniew Bodek 	uint32_t min_pkt;
8149b49cdaSZbigniew Bodek 	/* [0x8] Maximum packet size  */
8249b49cdaSZbigniew Bodek 	uint32_t max_pkt;
8349b49cdaSZbigniew Bodek 	uint32_t rsrvd[13];
8449b49cdaSZbigniew Bodek };
8549b49cdaSZbigniew Bodek struct al_ec_rxf {
8649b49cdaSZbigniew Bodek 	/* [0x0] Rx FIFO input controller configuration 1 */
8749b49cdaSZbigniew Bodek 	uint32_t cfg_1;
8849b49cdaSZbigniew Bodek 	/* [0x4] Rx FIFO input controller configuration 2 */
8949b49cdaSZbigniew Bodek 	uint32_t cfg_2;
9049b49cdaSZbigniew Bodek 	/* [0x8] Threshold to start reading packet from the Rx FIFO */
9149b49cdaSZbigniew Bodek 	uint32_t rd_fifo;
9249b49cdaSZbigniew Bodek 	/* [0xc] Threshold to stop writing packet to the Rx FIFO */
9349b49cdaSZbigniew Bodek 	uint32_t wr_fifo;
9449b49cdaSZbigniew Bodek 	/* [0x10] Threshold to stop writing packet to the loopback FI ... */
9549b49cdaSZbigniew Bodek 	uint32_t lb_fifo;
9649b49cdaSZbigniew Bodek 	/* [0x14] Rx FIFO input controller loopback FIFO configuratio ... */
9749b49cdaSZbigniew Bodek 	uint32_t cfg_lb;
9849b49cdaSZbigniew Bodek 	/* [0x18] Configuration for dropping packet at the FIFO outpu ... */
9949b49cdaSZbigniew Bodek 	uint32_t out_drop;
10049b49cdaSZbigniew Bodek 	uint32_t rsrvd[25];
10149b49cdaSZbigniew Bodek };
10249b49cdaSZbigniew Bodek struct al_ec_epe {
10349b49cdaSZbigniew Bodek 	/* [0x0] Ethernet parsing engine configuration 1 */
10449b49cdaSZbigniew Bodek 	uint32_t parse_cfg;
10549b49cdaSZbigniew Bodek 	/* [0x4] Protocol index action table address */
10649b49cdaSZbigniew Bodek 	uint32_t act_table_addr;
10749b49cdaSZbigniew Bodek 	/* [0x8] Protocol index action table data */
10849b49cdaSZbigniew Bodek 	uint32_t act_table_data_1;
10949b49cdaSZbigniew Bodek 	/* [0xc] Protocol index action table data */
11049b49cdaSZbigniew Bodek 	uint32_t act_table_data_2;
11149b49cdaSZbigniew Bodek 	/* [0x10] Protocol index action table data */
11249b49cdaSZbigniew Bodek 	uint32_t act_table_data_3;
11349b49cdaSZbigniew Bodek 	/* [0x14] Protocol index action table data */
11449b49cdaSZbigniew Bodek 	uint32_t act_table_data_4;
11549b49cdaSZbigniew Bodek 	/* [0x18] Protocol index action table data */
11649b49cdaSZbigniew Bodek 	uint32_t act_table_data_5;
11749b49cdaSZbigniew Bodek 	/* [0x1c] Protocol index action table data */
11849b49cdaSZbigniew Bodek 	uint32_t act_table_data_6;
11949b49cdaSZbigniew Bodek 	/* [0x20] Input result vector, default values for parser inpu ... */
12049b49cdaSZbigniew Bodek 	uint32_t res_def;
12149b49cdaSZbigniew Bodek 	/* [0x24] Result input vector selection */
12249b49cdaSZbigniew Bodek 	uint32_t res_in;
12349b49cdaSZbigniew Bodek 	uint32_t rsrvd[6];
12449b49cdaSZbigniew Bodek };
12549b49cdaSZbigniew Bodek struct al_ec_epe_res {
12649b49cdaSZbigniew Bodek 	/* [0x0] Parser result vector pointer */
12749b49cdaSZbigniew Bodek 	uint32_t p1;
12849b49cdaSZbigniew Bodek 	/* [0x4] Parser result vector pointer */
12949b49cdaSZbigniew Bodek 	uint32_t p2;
13049b49cdaSZbigniew Bodek 	/* [0x8] Parser result vector pointer */
13149b49cdaSZbigniew Bodek 	uint32_t p3;
13249b49cdaSZbigniew Bodek 	/* [0xc] Parser result vector pointer */
13349b49cdaSZbigniew Bodek 	uint32_t p4;
13449b49cdaSZbigniew Bodek 	/* [0x10] Parser result vector pointer */
13549b49cdaSZbigniew Bodek 	uint32_t p5;
13649b49cdaSZbigniew Bodek 	/* [0x14] Parser result vector pointer */
13749b49cdaSZbigniew Bodek 	uint32_t p6;
13849b49cdaSZbigniew Bodek 	/* [0x18] Parser result vector pointer */
13949b49cdaSZbigniew Bodek 	uint32_t p7;
14049b49cdaSZbigniew Bodek 	/* [0x1c] Parser result vector pointer */
14149b49cdaSZbigniew Bodek 	uint32_t p8;
14249b49cdaSZbigniew Bodek 	/* [0x20] Parser result vector pointer */
14349b49cdaSZbigniew Bodek 	uint32_t p9;
14449b49cdaSZbigniew Bodek 	/* [0x24] Parser result vector pointer */
14549b49cdaSZbigniew Bodek 	uint32_t p10;
14649b49cdaSZbigniew Bodek 	/* [0x28] Parser result vector pointer */
14749b49cdaSZbigniew Bodek 	uint32_t p11;
14849b49cdaSZbigniew Bodek 	/* [0x2c] Parser result vector pointer */
14949b49cdaSZbigniew Bodek 	uint32_t p12;
15049b49cdaSZbigniew Bodek 	/* [0x30] Parser result vector pointer */
15149b49cdaSZbigniew Bodek 	uint32_t p13;
15249b49cdaSZbigniew Bodek 	/* [0x34] Parser result vector pointer */
15349b49cdaSZbigniew Bodek 	uint32_t p14;
15449b49cdaSZbigniew Bodek 	/* [0x38] Parser result vector pointer */
15549b49cdaSZbigniew Bodek 	uint32_t p15;
15649b49cdaSZbigniew Bodek 	/* [0x3c] Parser result vector pointer */
15749b49cdaSZbigniew Bodek 	uint32_t p16;
15849b49cdaSZbigniew Bodek 	/* [0x40] Parser result vector pointer */
15949b49cdaSZbigniew Bodek 	uint32_t p17;
16049b49cdaSZbigniew Bodek 	/* [0x44] Parser result vector pointer */
16149b49cdaSZbigniew Bodek 	uint32_t p18;
16249b49cdaSZbigniew Bodek 	/* [0x48] Parser result vector pointer */
16349b49cdaSZbigniew Bodek 	uint32_t p19;
16449b49cdaSZbigniew Bodek 	/* [0x4c] Parser result vector pointer */
16549b49cdaSZbigniew Bodek 	uint32_t p20;
16649b49cdaSZbigniew Bodek 	uint32_t rsrvd[12];
16749b49cdaSZbigniew Bodek };
16849b49cdaSZbigniew Bodek struct al_ec_epe_h {
16949b49cdaSZbigniew Bodek 	/* [0x0] Header length, support for header length table for  ... */
17049b49cdaSZbigniew Bodek 	uint32_t hdr_len;
17149b49cdaSZbigniew Bodek };
17249b49cdaSZbigniew Bodek struct al_ec_epe_p {
17349b49cdaSZbigniew Bodek 	/* [0x0] Data  for comparison */
17449b49cdaSZbigniew Bodek 	uint32_t comp_data;
17549b49cdaSZbigniew Bodek 	/* [0x4] Mask for comparison */
17649b49cdaSZbigniew Bodek 	uint32_t comp_mask;
17749b49cdaSZbigniew Bodek 	/* [0x8] Compare control */
17849b49cdaSZbigniew Bodek 	uint32_t comp_ctrl;
17949b49cdaSZbigniew Bodek 	uint32_t rsrvd[4];
18049b49cdaSZbigniew Bodek };
18149b49cdaSZbigniew Bodek struct al_ec_epe_a {
18249b49cdaSZbigniew Bodek 	/* [0x0] Protocol index action register */
18349b49cdaSZbigniew Bodek 	uint32_t prot_act;
18449b49cdaSZbigniew Bodek };
18549b49cdaSZbigniew Bodek struct al_ec_rfw {
18649b49cdaSZbigniew Bodek 	/* [0x0] Tuple (4/2) Hash configuration */
18749b49cdaSZbigniew Bodek 	uint32_t thash_cfg_1;
18849b49cdaSZbigniew Bodek 	/* [0x4] Tuple (4/2) Hash configuration */
18949b49cdaSZbigniew Bodek 	uint32_t thash_cfg_2;
19049b49cdaSZbigniew Bodek 	/* [0x8] MAC Hash configuration */
19149b49cdaSZbigniew Bodek 	uint32_t mhash_cfg_1;
19249b49cdaSZbigniew Bodek 	/* [0xc] MAC Hash configuration */
19349b49cdaSZbigniew Bodek 	uint32_t mhash_cfg_2;
19449b49cdaSZbigniew Bodek 	/* [0x10] MAC Hash configuration */
19549b49cdaSZbigniew Bodek 	uint32_t hdr_split;
19649b49cdaSZbigniew Bodek 	/* [0x14] Masking the errors described in  register rxf_drop  ... */
19749b49cdaSZbigniew Bodek 	uint32_t meta_err;
19849b49cdaSZbigniew Bodek 	/* [0x18] Configuration for generating the MetaData for the R ... */
19949b49cdaSZbigniew Bodek 	uint32_t meta;
20049b49cdaSZbigniew Bodek 	/* [0x1c] Configuration for generating the MetaData for the R ... */
20149b49cdaSZbigniew Bodek 	uint32_t filter;
20249b49cdaSZbigniew Bodek 	/* [0x20] 4 tupple hash table address */
20349b49cdaSZbigniew Bodek 	uint32_t thash_table_addr;
20449b49cdaSZbigniew Bodek 	/* [0x24] 4 tupple hash table data */
20549b49cdaSZbigniew Bodek 	uint32_t thash_table_data;
20649b49cdaSZbigniew Bodek 	/* [0x28] MAC hash table address */
20749b49cdaSZbigniew Bodek 	uint32_t mhash_table_addr;
20849b49cdaSZbigniew Bodek 	/* [0x2c] MAC hash table data */
20949b49cdaSZbigniew Bodek 	uint32_t mhash_table_data;
21049b49cdaSZbigniew Bodek 	/* [0x30] VLAN table address */
21149b49cdaSZbigniew Bodek 	uint32_t vid_table_addr;
21249b49cdaSZbigniew Bodek 	/* [0x34] VLAN table data */
21349b49cdaSZbigniew Bodek 	uint32_t vid_table_data;
21449b49cdaSZbigniew Bodek 	/* [0x38] VLAN p-bits table address */
21549b49cdaSZbigniew Bodek 	uint32_t pbits_table_addr;
21649b49cdaSZbigniew Bodek 	/* [0x3c] VLAN p-bits table data */
21749b49cdaSZbigniew Bodek 	uint32_t pbits_table_data;
21849b49cdaSZbigniew Bodek 	/* [0x40] DSCP table address */
21949b49cdaSZbigniew Bodek 	uint32_t dscp_table_addr;
22049b49cdaSZbigniew Bodek 	/* [0x44] DSCP table data */
22149b49cdaSZbigniew Bodek 	uint32_t dscp_table_data;
22249b49cdaSZbigniew Bodek 	/* [0x48] TC table address */
22349b49cdaSZbigniew Bodek 	uint32_t tc_table_addr;
22449b49cdaSZbigniew Bodek 	/* [0x4c] TC table data */
22549b49cdaSZbigniew Bodek 	uint32_t tc_table_data;
22649b49cdaSZbigniew Bodek 	/* [0x50] Control table address */
22749b49cdaSZbigniew Bodek 	uint32_t ctrl_table_addr;
22849b49cdaSZbigniew Bodek 	/* [0x54] Control table data */
22949b49cdaSZbigniew Bodek 	uint32_t ctrl_table_data;
23049b49cdaSZbigniew Bodek 	/* [0x58] Forwarding output configuration */
23149b49cdaSZbigniew Bodek 	uint32_t out_cfg;
23249b49cdaSZbigniew Bodek 	/* [0x5c] Flow steering mechanism,
23349b49cdaSZbigniew Bodek Table address */
23449b49cdaSZbigniew Bodek 	uint32_t fsm_table_addr;
23549b49cdaSZbigniew Bodek 	/* [0x60] Flow steering mechanism,
23649b49cdaSZbigniew Bodek Table data */
23749b49cdaSZbigniew Bodek 	uint32_t fsm_table_data;
23849b49cdaSZbigniew Bodek 	/* [0x64] Selection of data to be used in packet forwarding0  ... */
23949b49cdaSZbigniew Bodek 	uint32_t ctrl_sel;
24049b49cdaSZbigniew Bodek 	/* [0x68] Default VLAN data, used for untagged packets */
24149b49cdaSZbigniew Bodek 	uint32_t default_vlan;
24249b49cdaSZbigniew Bodek 	/* [0x6c] Default HASH output values */
24349b49cdaSZbigniew Bodek 	uint32_t default_hash;
24449b49cdaSZbigniew Bodek 	/* [0x70] Default override values, if a packet was filtered b ... */
24549b49cdaSZbigniew Bodek 	uint32_t default_or;
24649b49cdaSZbigniew Bodek 	/* [0x74] Latched information when a drop condition occurred */
24749b49cdaSZbigniew Bodek 	uint32_t drop_latch;
24849b49cdaSZbigniew Bodek 	/* [0x78] Check sum calculation configuration */
24949b49cdaSZbigniew Bodek 	uint32_t checksum;
25049b49cdaSZbigniew Bodek 	/* [0x7c] LRO offload engine configuration register */
25149b49cdaSZbigniew Bodek 	uint32_t lro_cfg_1;
25249b49cdaSZbigniew Bodek 	/* [0x80] LRO offload engine Check rules configurations for I ... */
25349b49cdaSZbigniew Bodek 	uint32_t lro_check_ipv4;
25449b49cdaSZbigniew Bodek 	/* [0x84] LRO offload engine IPv4 values configuration */
25549b49cdaSZbigniew Bodek 	uint32_t lro_ipv4;
25649b49cdaSZbigniew Bodek 	/* [0x88] LRO offload engine Check rules configurations for I ... */
25749b49cdaSZbigniew Bodek 	uint32_t lro_check_ipv6;
25849b49cdaSZbigniew Bodek 	/* [0x8c] LRO offload engine IPv6 values configuration */
25949b49cdaSZbigniew Bodek 	uint32_t lro_ipv6;
26049b49cdaSZbigniew Bodek 	/* [0x90] LRO offload engine Check rules configurations for T ... */
26149b49cdaSZbigniew Bodek 	uint32_t lro_check_tcp;
26249b49cdaSZbigniew Bodek 	/* [0x94] LRO offload engine IPv6 values configuration */
26349b49cdaSZbigniew Bodek 	uint32_t lro_tcp;
26449b49cdaSZbigniew Bodek 	/* [0x98] LRO offload engine Check rules configurations for U ... */
26549b49cdaSZbigniew Bodek 	uint32_t lro_check_udp;
26649b49cdaSZbigniew Bodek 	/* [0x9c] LRO offload engine Check rules configurations for U ... */
26749b49cdaSZbigniew Bodek 	uint32_t lro_check_l2;
26849b49cdaSZbigniew Bodek 	/* [0xa0] LRO offload engine Check rules configurations for U ... */
26949b49cdaSZbigniew Bodek 	uint32_t lro_check_gen;
27049b49cdaSZbigniew Bodek 	/* [0xa4] Rules for storing packet information into the cache ... */
27149b49cdaSZbigniew Bodek 	uint32_t lro_store;
27249b49cdaSZbigniew Bodek 	/* [0xa8] VLAN table default */
27349b49cdaSZbigniew Bodek 	uint32_t vid_table_def;
27449b49cdaSZbigniew Bodek 	/* [0xac] Control table default */
27549b49cdaSZbigniew Bodek 	uint32_t ctrl_table_def;
27649b49cdaSZbigniew Bodek 	/* [0xb0] Additional configuration 0 */
27749b49cdaSZbigniew Bodek 	uint32_t cfg_a_0;
27849b49cdaSZbigniew Bodek 	/* [0xb4] Tuple (4/2) Hash configuration (extended for RoCE a ... */
27949b49cdaSZbigniew Bodek 	uint32_t thash_cfg_3;
28049b49cdaSZbigniew Bodek 	/* [0xb8] Tuple (4/2) Hash configuration , mask for the input ... */
28149b49cdaSZbigniew Bodek 	uint32_t thash_mask_outer_ipv6;
28249b49cdaSZbigniew Bodek 	/* [0xbc] Tuple (4/2) Hash configuration , mask for the input ... */
28349b49cdaSZbigniew Bodek 	uint32_t thash_mask_outer;
28449b49cdaSZbigniew Bodek 	/* [0xc0] Tuple (4/2) Hash configuration , mask for the input ... */
28549b49cdaSZbigniew Bodek 	uint32_t thash_mask_inner_ipv6;
28649b49cdaSZbigniew Bodek 	/* [0xc4] Tuple (4/2) Hash configuration , mask for the input ... */
28749b49cdaSZbigniew Bodek 	uint32_t thash_mask_inner;
28849b49cdaSZbigniew Bodek 	uint32_t rsrvd[10];
28949b49cdaSZbigniew Bodek };
29049b49cdaSZbigniew Bodek struct al_ec_rfw_udma {
29149b49cdaSZbigniew Bodek 	/* [0x0] Per UDMA default configuration */
29249b49cdaSZbigniew Bodek 	uint32_t def_cfg;
29349b49cdaSZbigniew Bodek };
29449b49cdaSZbigniew Bodek struct al_ec_rfw_hash {
29549b49cdaSZbigniew Bodek 	/* [0x0] key configuration (320 bits) */
29649b49cdaSZbigniew Bodek 	uint32_t key;
29749b49cdaSZbigniew Bodek };
29849b49cdaSZbigniew Bodek struct al_ec_rfw_priority {
29949b49cdaSZbigniew Bodek 	/* [0x0] Priority to queue mapping configuration */
30049b49cdaSZbigniew Bodek 	uint32_t queue;
30149b49cdaSZbigniew Bodek };
30249b49cdaSZbigniew Bodek struct al_ec_rfw_default {
30349b49cdaSZbigniew Bodek 	/* [0x0] Default forwarding configuration options */
30449b49cdaSZbigniew Bodek 	uint32_t opt_1;
30549b49cdaSZbigniew Bodek };
30649b49cdaSZbigniew Bodek struct al_ec_fwd_mac {
30749b49cdaSZbigniew Bodek 	/* [0x0] MAC address data [31:0] */
30849b49cdaSZbigniew Bodek 	uint32_t data_l;
30949b49cdaSZbigniew Bodek 	/* [0x4] MAC address data [15:0] */
31049b49cdaSZbigniew Bodek 	uint32_t data_h;
31149b49cdaSZbigniew Bodek 	/* [0x8] MAC address mask [31:0] */
31249b49cdaSZbigniew Bodek 	uint32_t mask_l;
31349b49cdaSZbigniew Bodek 	/* [0xc] MAC address mask [15:0] */
31449b49cdaSZbigniew Bodek 	uint32_t mask_h;
31549b49cdaSZbigniew Bodek 	/* [0x10] MAC compare control */
31649b49cdaSZbigniew Bodek 	uint32_t ctrl;
31749b49cdaSZbigniew Bodek };
31849b49cdaSZbigniew Bodek struct al_ec_msw {
31949b49cdaSZbigniew Bodek 	/* [0x0] Configuration for unicast packets */
32049b49cdaSZbigniew Bodek 	uint32_t uc;
32149b49cdaSZbigniew Bodek 	/* [0x4] Configuration for multicast packets */
32249b49cdaSZbigniew Bodek 	uint32_t mc;
32349b49cdaSZbigniew Bodek 	/* [0x8] Configuration for broadcast packets */
32449b49cdaSZbigniew Bodek 	uint32_t bc;
32549b49cdaSZbigniew Bodek 	uint32_t rsrvd[3];
32649b49cdaSZbigniew Bodek };
32749b49cdaSZbigniew Bodek struct al_ec_tso {
32849b49cdaSZbigniew Bodek 	/* [0x0] Input configuration */
32949b49cdaSZbigniew Bodek 	uint32_t in_cfg;
33049b49cdaSZbigniew Bodek 	/* [0x4] MetaData default cache table address */
33149b49cdaSZbigniew Bodek 	uint32_t cache_table_addr;
33249b49cdaSZbigniew Bodek 	/* [0x8] MetaData default cache table data */
33349b49cdaSZbigniew Bodek 	uint32_t cache_table_data_1;
33449b49cdaSZbigniew Bodek 	/* [0xc] MetaData default cache table data */
33549b49cdaSZbigniew Bodek 	uint32_t cache_table_data_2;
33649b49cdaSZbigniew Bodek 	/* [0x10] MetaData default cache table data */
33749b49cdaSZbigniew Bodek 	uint32_t cache_table_data_3;
33849b49cdaSZbigniew Bodek 	/* [0x14] MetaData default cache table data */
33949b49cdaSZbigniew Bodek 	uint32_t cache_table_data_4;
34049b49cdaSZbigniew Bodek 	/* [0x18] TCP control bit operation for first segment */
34149b49cdaSZbigniew Bodek 	uint32_t ctrl_first;
34249b49cdaSZbigniew Bodek 	/* [0x1c] TCP control bit operation for middle segments  */
34349b49cdaSZbigniew Bodek 	uint32_t ctrl_middle;
34449b49cdaSZbigniew Bodek 	/* [0x20] TCP control bit operation for last segment */
34549b49cdaSZbigniew Bodek 	uint32_t ctrl_last;
34649b49cdaSZbigniew Bodek 	/* [0x24] Additional TSO configurations */
34749b49cdaSZbigniew Bodek 	uint32_t cfg_add_0;
34849b49cdaSZbigniew Bodek 	/* [0x28] TSO configuration for tunnelled packets */
34949b49cdaSZbigniew Bodek 	uint32_t cfg_tunnel;
35049b49cdaSZbigniew Bodek 	uint32_t rsrvd[13];
35149b49cdaSZbigniew Bodek };
35249b49cdaSZbigniew Bodek struct al_ec_tso_sel {
35349b49cdaSZbigniew Bodek 	/* [0x0] MSS value */
35449b49cdaSZbigniew Bodek 	uint32_t mss;
35549b49cdaSZbigniew Bodek };
35649b49cdaSZbigniew Bodek struct al_ec_tpe {
35749b49cdaSZbigniew Bodek 	/* [0x0] Parsing configuration */
35849b49cdaSZbigniew Bodek 	uint32_t parse;
35949b49cdaSZbigniew Bodek 	uint32_t rsrvd[15];
36049b49cdaSZbigniew Bodek };
36149b49cdaSZbigniew Bodek struct al_ec_tpm_udma {
36249b49cdaSZbigniew Bodek 	/* [0x0] Default VLAN data */
36349b49cdaSZbigniew Bodek 	uint32_t vlan_data;
36449b49cdaSZbigniew Bodek 	/* [0x4] UDMA MAC SA information for spoofing */
36549b49cdaSZbigniew Bodek 	uint32_t mac_sa_1;
36649b49cdaSZbigniew Bodek 	/* [0x8] UDMA MAC SA information for spoofing */
36749b49cdaSZbigniew Bodek 	uint32_t mac_sa_2;
36849b49cdaSZbigniew Bodek };
36949b49cdaSZbigniew Bodek struct al_ec_tpm_sel {
37049b49cdaSZbigniew Bodek 	/* [0x0] Ethertype values for VLAN modification */
37149b49cdaSZbigniew Bodek 	uint32_t etype;
37249b49cdaSZbigniew Bodek };
37349b49cdaSZbigniew Bodek struct al_ec_tfw {
37449b49cdaSZbigniew Bodek 	/* [0x0] Tx FIFO Wr configuration */
37549b49cdaSZbigniew Bodek 	uint32_t tx_wr_fifo;
37649b49cdaSZbigniew Bodek 	/* [0x4] VLAN table address */
37749b49cdaSZbigniew Bodek 	uint32_t tx_vid_table_addr;
37849b49cdaSZbigniew Bodek 	/* [0x8] VLAN table data */
37949b49cdaSZbigniew Bodek 	uint32_t tx_vid_table_data;
38049b49cdaSZbigniew Bodek 	/* [0xc] Tx FIFO Rd configuration */
38149b49cdaSZbigniew Bodek 	uint32_t tx_rd_fifo;
38249b49cdaSZbigniew Bodek 	/* [0x10] Tx FIFO Rd configuration, checksum insertion */
38349b49cdaSZbigniew Bodek 	uint32_t tx_checksum;
38449b49cdaSZbigniew Bodek 	/* [0x14] Tx forwarding general configuration register */
38549b49cdaSZbigniew Bodek 	uint32_t tx_gen;
38649b49cdaSZbigniew Bodek 	/* [0x18] Tx spoofing configuration */
38749b49cdaSZbigniew Bodek 	uint32_t tx_spf;
38849b49cdaSZbigniew Bodek 	/* [0x1c] TX data FIFO status */
38949b49cdaSZbigniew Bodek 	uint32_t data_fifo;
39049b49cdaSZbigniew Bodek 	/* [0x20] Tx control FIFO status */
39149b49cdaSZbigniew Bodek 	uint32_t ctrl_fifo;
39249b49cdaSZbigniew Bodek 	/* [0x24] Tx header FIFO status */
39349b49cdaSZbigniew Bodek 	uint32_t hdr_fifo;
39449b49cdaSZbigniew Bodek 	uint32_t rsrvd[14];
39549b49cdaSZbigniew Bodek };
39649b49cdaSZbigniew Bodek struct al_ec_tfw_udma {
39749b49cdaSZbigniew Bodek 	/* [0x0] Default GMDA output bitmap for unicast packet */
39849b49cdaSZbigniew Bodek 	uint32_t uc_udma;
39949b49cdaSZbigniew Bodek 	/* [0x4] Default GMDA output bitmap for multicast packet */
40049b49cdaSZbigniew Bodek 	uint32_t mc_udma;
40149b49cdaSZbigniew Bodek 	/* [0x8] Default GMDA output bitmap for broadcast packet */
40249b49cdaSZbigniew Bodek 	uint32_t bc_udma;
40349b49cdaSZbigniew Bodek 	/* [0xc] Tx spoofing configuration */
40449b49cdaSZbigniew Bodek 	uint32_t spf_cmd;
40549b49cdaSZbigniew Bodek 	/* [0x10] Forwarding decision control */
40649b49cdaSZbigniew Bodek 	uint32_t fwd_dec;
40749b49cdaSZbigniew Bodek 	uint32_t rsrvd;
40849b49cdaSZbigniew Bodek };
40949b49cdaSZbigniew Bodek struct al_ec_tmi {
41049b49cdaSZbigniew Bodek 	/* [0x0] Forward packets back to the Rx data path for local  ... */
41149b49cdaSZbigniew Bodek 	uint32_t tx_cfg;
41249b49cdaSZbigniew Bodek 	uint32_t rsrvd[3];
41349b49cdaSZbigniew Bodek };
41449b49cdaSZbigniew Bodek struct al_ec_efc {
41549b49cdaSZbigniew Bodek 	/* [0x0] Mask of pause_on  [7:0] for the Ethernet controller ... */
41649b49cdaSZbigniew Bodek 	uint32_t ec_pause;
41749b49cdaSZbigniew Bodek 	/* [0x4] Mask of Ethernet controller Almost Full indication  ... */
41849b49cdaSZbigniew Bodek 	uint32_t ec_xoff;
41949b49cdaSZbigniew Bodek 	/* [0x8] Mask for generating XON indication pulse */
42049b49cdaSZbigniew Bodek 	uint32_t xon;
42149b49cdaSZbigniew Bodek 	/* [0xc] Mask for generating GPIO output XOFF indication fro ... */
42249b49cdaSZbigniew Bodek 	uint32_t gpio;
42349b49cdaSZbigniew Bodek 	/* [0x10] Rx FIFO threshold for generating the Almost Full in ... */
42449b49cdaSZbigniew Bodek 	uint32_t rx_fifo_af;
42549b49cdaSZbigniew Bodek 	/* [0x14] Rx FIFO threshold for generating the Almost Full in ... */
42649b49cdaSZbigniew Bodek 	uint32_t rx_fifo_hyst;
42749b49cdaSZbigniew Bodek 	/* [0x18] Rx FIFO threshold for generating the Almost Full in ... */
42849b49cdaSZbigniew Bodek 	uint32_t stat;
42949b49cdaSZbigniew Bodek 	/* [0x1c] XOFF timer for the 1G MACSets the interval (in SB_C ... */
43049b49cdaSZbigniew Bodek 	uint32_t xoff_timer_1g;
43149b49cdaSZbigniew Bodek 	/* [0x20] PFC force flow control generation */
43249b49cdaSZbigniew Bodek 	uint32_t ec_pfc;
43349b49cdaSZbigniew Bodek 	uint32_t rsrvd[3];
43449b49cdaSZbigniew Bodek };
43549b49cdaSZbigniew Bodek struct al_ec_fc_udma {
43649b49cdaSZbigniew Bodek 	/* [0x0] Mask of "pause_on"  [0] for all queues */
43749b49cdaSZbigniew Bodek 	uint32_t q_pause_0;
43849b49cdaSZbigniew Bodek 	/* [0x4] Mask of "pause_on"  [1] for all queues */
43949b49cdaSZbigniew Bodek 	uint32_t q_pause_1;
44049b49cdaSZbigniew Bodek 	/* [0x8] Mask of "pause_on"  [2] for all queues */
44149b49cdaSZbigniew Bodek 	uint32_t q_pause_2;
44249b49cdaSZbigniew Bodek 	/* [0xc] Mask of "pause_on"  [3] for all queues */
44349b49cdaSZbigniew Bodek 	uint32_t q_pause_3;
44449b49cdaSZbigniew Bodek 	/* [0x10] Mask of "pause_on"  [4] for all queues */
44549b49cdaSZbigniew Bodek 	uint32_t q_pause_4;
44649b49cdaSZbigniew Bodek 	/* [0x14] Mask of "pause_on"  [5] for all queues */
44749b49cdaSZbigniew Bodek 	uint32_t q_pause_5;
44849b49cdaSZbigniew Bodek 	/* [0x18] Mask of "pause_on"  [6] for all queues */
44949b49cdaSZbigniew Bodek 	uint32_t q_pause_6;
45049b49cdaSZbigniew Bodek 	/* [0x1c] Mask of "pause_on"  [7] for all queues */
45149b49cdaSZbigniew Bodek 	uint32_t q_pause_7;
45249b49cdaSZbigniew Bodek 	/* [0x20] Mask of external GPIO input pause [0] for all queue ... */
45349b49cdaSZbigniew Bodek 	uint32_t q_gpio_0;
45449b49cdaSZbigniew Bodek 	/* [0x24] Mask of external GPIO input pause [1] for all queue ... */
45549b49cdaSZbigniew Bodek 	uint32_t q_gpio_1;
45649b49cdaSZbigniew Bodek 	/* [0x28] Mask of external GPIO input pause [2] for all queue ... */
45749b49cdaSZbigniew Bodek 	uint32_t q_gpio_2;
45849b49cdaSZbigniew Bodek 	/* [0x2c] Mask of external GPIO input pause [3] for all queue ... */
45949b49cdaSZbigniew Bodek 	uint32_t q_gpio_3;
46049b49cdaSZbigniew Bodek 	/* [0x30] Mask of external GPIO input [4] for all queues */
46149b49cdaSZbigniew Bodek 	uint32_t q_gpio_4;
46249b49cdaSZbigniew Bodek 	/* [0x34] Mask of external GPIO input [5] for all queues */
46349b49cdaSZbigniew Bodek 	uint32_t q_gpio_5;
46449b49cdaSZbigniew Bodek 	/* [0x38] Mask of external GPIO input [6] for all queues */
46549b49cdaSZbigniew Bodek 	uint32_t q_gpio_6;
46649b49cdaSZbigniew Bodek 	/* [0x3c] Mask of external GPIO input [7] for all queues */
46749b49cdaSZbigniew Bodek 	uint32_t q_gpio_7;
46849b49cdaSZbigniew Bodek 	/* [0x40] Mask of "pause_on"  [7:0] for the UDMA stream inter ... */
46949b49cdaSZbigniew Bodek 	uint32_t s_pause;
47049b49cdaSZbigniew Bodek 	/* [0x44] Mask of Rx Almost Full indication for generating XO ... */
47149b49cdaSZbigniew Bodek 	uint32_t q_xoff_0;
47249b49cdaSZbigniew Bodek 	/* [0x48] Mask of Rx Almost Full indication for generating XO ... */
47349b49cdaSZbigniew Bodek 	uint32_t q_xoff_1;
47449b49cdaSZbigniew Bodek 	/* [0x4c] Mask of Rx Almost Full indication for generating XO ... */
47549b49cdaSZbigniew Bodek 	uint32_t q_xoff_2;
47649b49cdaSZbigniew Bodek 	/* [0x50] Mask of Rx Almost Full indication for generating XO ... */
47749b49cdaSZbigniew Bodek 	uint32_t q_xoff_3;
47849b49cdaSZbigniew Bodek 	/* [0x54] Mask of Rx Almost Full indication for generating XO ... */
47949b49cdaSZbigniew Bodek 	uint32_t q_xoff_4;
48049b49cdaSZbigniew Bodek 	/* [0x58] Mask of Rx Almost Full indication for generating XO ... */
48149b49cdaSZbigniew Bodek 	uint32_t q_xoff_5;
48249b49cdaSZbigniew Bodek 	/* [0x5c] Mask of Rx Almost Full indication for generating XO ... */
48349b49cdaSZbigniew Bodek 	uint32_t q_xoff_6;
48449b49cdaSZbigniew Bodek 	/* [0x60] Mask of Rx Almost Full indication for generating XO ... */
48549b49cdaSZbigniew Bodek 	uint32_t q_xoff_7;
48649b49cdaSZbigniew Bodek 	uint32_t rsrvd[7];
48749b49cdaSZbigniew Bodek };
48849b49cdaSZbigniew Bodek struct al_ec_tpg_rpa_res {
48949b49cdaSZbigniew Bodek 	/* [0x0] NOT used */
49049b49cdaSZbigniew Bodek 	uint32_t not_used;
49149b49cdaSZbigniew Bodek 	uint32_t rsrvd[63];
49249b49cdaSZbigniew Bodek };
49349b49cdaSZbigniew Bodek struct al_ec_eee {
49449b49cdaSZbigniew Bodek 	/* [0x0] EEE configuration */
49549b49cdaSZbigniew Bodek 	uint32_t cfg_e;
49649b49cdaSZbigniew Bodek 	/* [0x4] Number of clocks to get into EEE mode. */
49749b49cdaSZbigniew Bodek 	uint32_t pre_cnt;
49849b49cdaSZbigniew Bodek 	/* [0x8] Number of clocks to stop MAC EEE mode after getting ... */
49949b49cdaSZbigniew Bodek 	uint32_t post_cnt;
50049b49cdaSZbigniew Bodek 	/* [0xc] Number of clocks to stop the Tx MAC interface after ... */
50149b49cdaSZbigniew Bodek 	uint32_t stop_cnt;
50249b49cdaSZbigniew Bodek 	/* [0x10] EEE status */
50349b49cdaSZbigniew Bodek 	uint32_t stat_eee;
50449b49cdaSZbigniew Bodek 	uint32_t rsrvd[59];
50549b49cdaSZbigniew Bodek };
50649b49cdaSZbigniew Bodek struct al_ec_stat {
50749b49cdaSZbigniew Bodek 	/* [0x0] Rx Frequency adjust FIFO input  packets */
50849b49cdaSZbigniew Bodek 	uint32_t faf_in_rx_pkt;
50949b49cdaSZbigniew Bodek 	/* [0x4] Rx Frequency adjust FIFO input short error packets */
51049b49cdaSZbigniew Bodek 	uint32_t faf_in_rx_short;
51149b49cdaSZbigniew Bodek 	/* [0x8] Rx Frequency adjust FIFO input  long error packets */
51249b49cdaSZbigniew Bodek 	uint32_t faf_in_rx_long;
51349b49cdaSZbigniew Bodek 	/* [0xc] Rx Frequency adjust FIFO output  packets */
51449b49cdaSZbigniew Bodek 	uint32_t faf_out_rx_pkt;
51549b49cdaSZbigniew Bodek 	/* [0x10] Rx Frequency adjust FIFO output short error packets ... */
51649b49cdaSZbigniew Bodek 	uint32_t faf_out_rx_short;
51749b49cdaSZbigniew Bodek 	/* [0x14] Rx Frequency adjust FIFO output long error packets */
51849b49cdaSZbigniew Bodek 	uint32_t faf_out_rx_long;
51949b49cdaSZbigniew Bodek 	/* [0x18] Rx Frequency adjust FIFO output  drop packets */
52049b49cdaSZbigniew Bodek 	uint32_t faf_out_drop;
52149b49cdaSZbigniew Bodek 	/* [0x1c] Number of packets written into the Rx FIFO (without ... */
52249b49cdaSZbigniew Bodek 	uint32_t rxf_in_rx_pkt;
52349b49cdaSZbigniew Bodek 	/* [0x20] Number of error packets written into the Rx FIFO (w ... */
52449b49cdaSZbigniew Bodek 	uint32_t rxf_in_fifo_err;
52549b49cdaSZbigniew Bodek 	/* [0x24] Number of packets written into the loopback FIFO (w ... */
52649b49cdaSZbigniew Bodek 	uint32_t lbf_in_rx_pkt;
52749b49cdaSZbigniew Bodek 	/* [0x28] Number of error packets written into the loopback F ... */
52849b49cdaSZbigniew Bodek 	uint32_t lbf_in_fifo_err;
52949b49cdaSZbigniew Bodek 	/* [0x2c] Number of packets read from Rx FIFO 1 */
53049b49cdaSZbigniew Bodek 	uint32_t rxf_out_rx_1_pkt;
53149b49cdaSZbigniew Bodek 	/* [0x30] Number of packets read from Rx FIFO 2 (loopback FIF ... */
53249b49cdaSZbigniew Bodek 	uint32_t rxf_out_rx_2_pkt;
53349b49cdaSZbigniew Bodek 	/* [0x34] Rx FIFO output drop packets from FIFO 1 */
53449b49cdaSZbigniew Bodek 	uint32_t rxf_out_drop_1_pkt;
53549b49cdaSZbigniew Bodek 	/* [0x38] Rx FIFO output drop packets from FIFO 2 (loopback) */
53649b49cdaSZbigniew Bodek 	uint32_t rxf_out_drop_2_pkt;
53749b49cdaSZbigniew Bodek 	/* [0x3c] Rx Parser 1, input packet counter */
53849b49cdaSZbigniew Bodek 	uint32_t rpe_1_in_rx_pkt;
53949b49cdaSZbigniew Bodek 	/* [0x40] Rx Parser 1, output packet counter */
54049b49cdaSZbigniew Bodek 	uint32_t rpe_1_out_rx_pkt;
54149b49cdaSZbigniew Bodek 	/* [0x44] Rx Parser 2, input packet counter */
54249b49cdaSZbigniew Bodek 	uint32_t rpe_2_in_rx_pkt;
54349b49cdaSZbigniew Bodek 	/* [0x48] Rx Parser 2, output packet counter */
54449b49cdaSZbigniew Bodek 	uint32_t rpe_2_out_rx_pkt;
54549b49cdaSZbigniew Bodek 	/* [0x4c] Rx Parser 3 (MACsec), input packet counter */
54649b49cdaSZbigniew Bodek 	uint32_t rpe_3_in_rx_pkt;
54749b49cdaSZbigniew Bodek 	/* [0x50] Rx Parser 3 (MACsec), output packet counter */
54849b49cdaSZbigniew Bodek 	uint32_t rpe_3_out_rx_pkt;
54949b49cdaSZbigniew Bodek 	/* [0x54] Tx parser, input packet counter */
55049b49cdaSZbigniew Bodek 	uint32_t tpe_in_tx_pkt;
55149b49cdaSZbigniew Bodek 	/* [0x58] Tx parser, output packet counter */
55249b49cdaSZbigniew Bodek 	uint32_t tpe_out_tx_pkt;
55349b49cdaSZbigniew Bodek 	/* [0x5c] Tx packet modification, input packet counter */
55449b49cdaSZbigniew Bodek 	uint32_t tpm_tx_pkt;
55549b49cdaSZbigniew Bodek 	/* [0x60] Tx forwarding input packet counter */
55649b49cdaSZbigniew Bodek 	uint32_t tfw_in_tx_pkt;
55749b49cdaSZbigniew Bodek 	/* [0x64] Tx forwarding input packet counter */
55849b49cdaSZbigniew Bodek 	uint32_t tfw_out_tx_pkt;
55949b49cdaSZbigniew Bodek 	/* [0x68] Rx forwarding input packet counter */
56049b49cdaSZbigniew Bodek 	uint32_t rfw_in_rx_pkt;
56149b49cdaSZbigniew Bodek 	/* [0x6c] Rx Forwarding, packet with VLAN command drop indica ... */
56249b49cdaSZbigniew Bodek 	uint32_t rfw_in_vlan_drop;
56349b49cdaSZbigniew Bodek 	/* [0x70] Rx Forwarding, packets with parse drop indication */
56449b49cdaSZbigniew Bodek 	uint32_t rfw_in_parse_drop;
56549b49cdaSZbigniew Bodek 	/* [0x74] Rx Forwarding, multicast packets */
56649b49cdaSZbigniew Bodek 	uint32_t rfw_in_mc;
56749b49cdaSZbigniew Bodek 	/* [0x78] Rx Forwarding, broadcast packets */
56849b49cdaSZbigniew Bodek 	uint32_t rfw_in_bc;
56949b49cdaSZbigniew Bodek 	/* [0x7c] Rx Forwarding, tagged packets */
57049b49cdaSZbigniew Bodek 	uint32_t rfw_in_vlan_exist;
57149b49cdaSZbigniew Bodek 	/* [0x80] Rx Forwarding, untagged packets */
57249b49cdaSZbigniew Bodek 	uint32_t rfw_in_vlan_nexist;
57349b49cdaSZbigniew Bodek 	/* [0x84] Rx Forwarding, packets with MAC address drop indica ... */
57449b49cdaSZbigniew Bodek 	uint32_t rfw_in_mac_drop;
57549b49cdaSZbigniew Bodek 	/* [0x88] Rx Forwarding, packets with undetected MAC address */
57649b49cdaSZbigniew Bodek 	uint32_t rfw_in_mac_ndet_drop;
57749b49cdaSZbigniew Bodek 	/* [0x8c] Rx Forwarding, packets with drop indication from th ... */
57849b49cdaSZbigniew Bodek 	uint32_t rfw_in_ctrl_drop;
57949b49cdaSZbigniew Bodek 	/* [0x90] Rx Forwarding, packets with L3_protocol_index drop  ... */
58049b49cdaSZbigniew Bodek 	uint32_t rfw_in_prot_i_drop;
58149b49cdaSZbigniew Bodek 	/* [0x94] EEE, number of times the system went into EEE state ... */
58249b49cdaSZbigniew Bodek 	uint32_t eee_in;
58349b49cdaSZbigniew Bodek 	uint32_t rsrvd[90];
58449b49cdaSZbigniew Bodek };
58549b49cdaSZbigniew Bodek struct al_ec_stat_udma {
58649b49cdaSZbigniew Bodek 	/* [0x0] Rx forwarding output packet counter */
58749b49cdaSZbigniew Bodek 	uint32_t rfw_out_rx_pkt;
58849b49cdaSZbigniew Bodek 	/* [0x4] Rx forwarding output drop packet counter */
58949b49cdaSZbigniew Bodek 	uint32_t rfw_out_drop;
59049b49cdaSZbigniew Bodek 	/* [0x8] Multi-stream write, number of Rx packets */
59149b49cdaSZbigniew Bodek 	uint32_t msw_in_rx_pkt;
59249b49cdaSZbigniew Bodek 	/* [0xc] Multi-stream write, number of dropped packets at SO ... */
59349b49cdaSZbigniew Bodek 	uint32_t msw_drop_q_full;
59449b49cdaSZbigniew Bodek 	/* [0x10] Multi-stream write, number of dropped packets at SO ... */
59549b49cdaSZbigniew Bodek 	uint32_t msw_drop_sop;
59649b49cdaSZbigniew Bodek 	/* [0x14] Multi-stream write, number of dropped packets at EO ... */
59749b49cdaSZbigniew Bodek 	uint32_t msw_drop_eop;
59849b49cdaSZbigniew Bodek 	/* [0x18] Multi-stream write, number of packets written to th ... */
59949b49cdaSZbigniew Bodek 	uint32_t msw_wr_eop;
60049b49cdaSZbigniew Bodek 	/* [0x1c] Multi-stream write, number of packets read from the ... */
60149b49cdaSZbigniew Bodek 	uint32_t msw_out_rx_pkt;
60249b49cdaSZbigniew Bodek 	/* [0x20] Number of transmitted packets without TSO enabled */
60349b49cdaSZbigniew Bodek 	uint32_t tso_no_tso_pkt;
60449b49cdaSZbigniew Bodek 	/* [0x24] Number of transmitted packets with TSO enabled */
60549b49cdaSZbigniew Bodek 	uint32_t tso_tso_pkt;
60649b49cdaSZbigniew Bodek 	/* [0x28] Number of TSO segments that were generated */
60749b49cdaSZbigniew Bodek 	uint32_t tso_seg_pkt;
60849b49cdaSZbigniew Bodek 	/* [0x2c] Number of TSO segments that required padding */
60949b49cdaSZbigniew Bodek 	uint32_t tso_pad_pkt;
61049b49cdaSZbigniew Bodek 	/* [0x30] Tx Packet modification, MAC SA spoof error  */
61149b49cdaSZbigniew Bodek 	uint32_t tpm_tx_spoof;
61249b49cdaSZbigniew Bodek 	/* [0x34] Tx MAC interface, input packet counter */
61349b49cdaSZbigniew Bodek 	uint32_t tmi_in_tx_pkt;
61449b49cdaSZbigniew Bodek 	/* [0x38] Tx MAC interface, number of packets forwarded to th ... */
61549b49cdaSZbigniew Bodek 	uint32_t tmi_out_to_mac;
61649b49cdaSZbigniew Bodek 	/* [0x3c] Tx MAC interface, number of packets forwarded to th ... */
61749b49cdaSZbigniew Bodek 	uint32_t tmi_out_to_rx;
61849b49cdaSZbigniew Bodek 	/* [0x40] Tx MAC interface, number of transmitted bytes */
61949b49cdaSZbigniew Bodek 	uint32_t tx_q0_bytes;
62049b49cdaSZbigniew Bodek 	/* [0x44] Tx MAC interface, number of transmitted bytes */
62149b49cdaSZbigniew Bodek 	uint32_t tx_q1_bytes;
62249b49cdaSZbigniew Bodek 	/* [0x48] Tx MAC interface, number of transmitted bytes */
62349b49cdaSZbigniew Bodek 	uint32_t tx_q2_bytes;
62449b49cdaSZbigniew Bodek 	/* [0x4c] Tx MAC interface, number of transmitted bytes */
62549b49cdaSZbigniew Bodek 	uint32_t tx_q3_bytes;
62649b49cdaSZbigniew Bodek 	/* [0x50] Tx MAC interface, number of transmitted packets */
62749b49cdaSZbigniew Bodek 	uint32_t tx_q0_pkts;
62849b49cdaSZbigniew Bodek 	/* [0x54] Tx MAC interface, number of transmitted packets */
62949b49cdaSZbigniew Bodek 	uint32_t tx_q1_pkts;
63049b49cdaSZbigniew Bodek 	/* [0x58] Tx MAC interface, number of transmitted packets */
63149b49cdaSZbigniew Bodek 	uint32_t tx_q2_pkts;
63249b49cdaSZbigniew Bodek 	/* [0x5c] Tx MAC interface, number of transmitted packets */
63349b49cdaSZbigniew Bodek 	uint32_t tx_q3_pkts;
63449b49cdaSZbigniew Bodek 	uint32_t rsrvd[40];
63549b49cdaSZbigniew Bodek };
63649b49cdaSZbigniew Bodek struct al_ec_msp {
63749b49cdaSZbigniew Bodek 	/* [0x0] Ethernet parsing engine configuration 1 */
63849b49cdaSZbigniew Bodek 	uint32_t p_parse_cfg;
63949b49cdaSZbigniew Bodek 	/* [0x4] Protocol index action table address */
64049b49cdaSZbigniew Bodek 	uint32_t p_act_table_addr;
64149b49cdaSZbigniew Bodek 	/* [0x8] Protocol index action table data */
64249b49cdaSZbigniew Bodek 	uint32_t p_act_table_data_1;
64349b49cdaSZbigniew Bodek 	/* [0xc] Protocol index action table data */
64449b49cdaSZbigniew Bodek 	uint32_t p_act_table_data_2;
64549b49cdaSZbigniew Bodek 	/* [0x10] Protocol index action table data */
64649b49cdaSZbigniew Bodek 	uint32_t p_act_table_data_3;
64749b49cdaSZbigniew Bodek 	/* [0x14] Protocol index action table data */
64849b49cdaSZbigniew Bodek 	uint32_t p_act_table_data_4;
64949b49cdaSZbigniew Bodek 	/* [0x18] Protocol index action table data */
65049b49cdaSZbigniew Bodek 	uint32_t p_act_table_data_5;
65149b49cdaSZbigniew Bodek 	/* [0x1c] Protocol index action table data */
65249b49cdaSZbigniew Bodek 	uint32_t p_act_table_data_6;
65349b49cdaSZbigniew Bodek 	/* [0x20] Input result vector, default values for parser inpu ... */
65449b49cdaSZbigniew Bodek 	uint32_t p_res_def;
65549b49cdaSZbigniew Bodek 	/* [0x24] Result input vector selection */
65649b49cdaSZbigniew Bodek 	uint32_t p_res_in;
65749b49cdaSZbigniew Bodek 	uint32_t rsrvd[6];
65849b49cdaSZbigniew Bodek };
65949b49cdaSZbigniew Bodek struct al_ec_msp_p {
66049b49cdaSZbigniew Bodek 	/* [0x0] Header length, support for header length table for  ... */
66149b49cdaSZbigniew Bodek 	uint32_t h_hdr_len;
66249b49cdaSZbigniew Bodek };
66349b49cdaSZbigniew Bodek struct al_ec_msp_c {
66449b49cdaSZbigniew Bodek 	/* [0x0] Data  for comparison */
66549b49cdaSZbigniew Bodek 	uint32_t p_comp_data;
66649b49cdaSZbigniew Bodek 	/* [0x4] Mask for comparison */
66749b49cdaSZbigniew Bodek 	uint32_t p_comp_mask;
66849b49cdaSZbigniew Bodek 	/* [0x8] Compare control */
66949b49cdaSZbigniew Bodek 	uint32_t p_comp_ctrl;
67049b49cdaSZbigniew Bodek 	uint32_t rsrvd[4];
67149b49cdaSZbigniew Bodek };
67249b49cdaSZbigniew Bodek struct al_ec_wol {
67349b49cdaSZbigniew Bodek 	/* [0x0] WoL enable configuration,Packet forwarding and inte ... */
67449b49cdaSZbigniew Bodek 	uint32_t wol_en;
67549b49cdaSZbigniew Bodek 	/* [0x4] Password for magic_password packet detection - bits ... */
67649b49cdaSZbigniew Bodek 	uint32_t magic_pswd_l;
67749b49cdaSZbigniew Bodek 	/* [0x8] Password for magic+password packet detection -  47: ... */
67849b49cdaSZbigniew Bodek 	uint32_t magic_pswd_h;
67949b49cdaSZbigniew Bodek 	/* [0xc] Configured L3 Destination IP address for WoL IPv6 p ... */
68049b49cdaSZbigniew Bodek 	uint32_t ipv6_dip_word0;
68149b49cdaSZbigniew Bodek 	/* [0x10] Configured L3 Destination IP address for WoL IPv6 p ... */
68249b49cdaSZbigniew Bodek 	uint32_t ipv6_dip_word1;
68349b49cdaSZbigniew Bodek 	/* [0x14] Configured L3 Destination IP address for WoL IPv6 p ... */
68449b49cdaSZbigniew Bodek 	uint32_t ipv6_dip_word2;
68549b49cdaSZbigniew Bodek 	/* [0x18] Configured L3 Destination IP address for WoL IPv6 p ... */
68649b49cdaSZbigniew Bodek 	uint32_t ipv6_dip_word3;
68749b49cdaSZbigniew Bodek 	/* [0x1c] Configured L3 Destination IP address for WoL IPv4 p ... */
68849b49cdaSZbigniew Bodek 	uint32_t ipv4_dip;
68949b49cdaSZbigniew Bodek 	/* [0x20] Configured EtherType for WoL EtherType_da/EtherType ... */
69049b49cdaSZbigniew Bodek 	uint32_t ethertype;
69149b49cdaSZbigniew Bodek 	uint32_t rsrvd[7];
69249b49cdaSZbigniew Bodek };
69349b49cdaSZbigniew Bodek struct al_ec_pth {
69449b49cdaSZbigniew Bodek 	/* [0x0] System time counter (Time of Day) */
69549b49cdaSZbigniew Bodek 	uint32_t system_time_seconds;
69649b49cdaSZbigniew Bodek 	/* [0x4] System time subseconds in a second (MSBs) */
69749b49cdaSZbigniew Bodek 	uint32_t system_time_subseconds_msb;
69849b49cdaSZbigniew Bodek 	/* [0x8] System time subseconds in a second (LSBs) */
69949b49cdaSZbigniew Bodek 	uint32_t system_time_subseconds_lsb;
70049b49cdaSZbigniew Bodek 	/* [0xc] Clock period in femtoseconds (MSB) */
70149b49cdaSZbigniew Bodek 	uint32_t clock_period_msb;
70249b49cdaSZbigniew Bodek 	/* [0x10] Clock period in femtoseconds (LSB) */
70349b49cdaSZbigniew Bodek 	uint32_t clock_period_lsb;
70449b49cdaSZbigniew Bodek 	/* [0x14] Control register for internal updates to the system ... */
70549b49cdaSZbigniew Bodek 	uint32_t int_update_ctrl;
70649b49cdaSZbigniew Bodek 	/* [0x18] Value to update system_time_seconds with */
70749b49cdaSZbigniew Bodek 	uint32_t int_update_seconds;
70849b49cdaSZbigniew Bodek 	/* [0x1c] Value to update system_time_subseconds_msb with */
70949b49cdaSZbigniew Bodek 	uint32_t int_update_subseconds_msb;
71049b49cdaSZbigniew Bodek 	/* [0x20] Value to update system_time_subseconds_lsb with */
71149b49cdaSZbigniew Bodek 	uint32_t int_update_subseconds_lsb;
71249b49cdaSZbigniew Bodek 	/* [0x24] Control register for external updates to the system ... */
71349b49cdaSZbigniew Bodek 	uint32_t ext_update_ctrl;
71449b49cdaSZbigniew Bodek 	/* [0x28] Value to update system_time_seconds with */
71549b49cdaSZbigniew Bodek 	uint32_t ext_update_seconds;
71649b49cdaSZbigniew Bodek 	/* [0x2c] Value to update system_time_subseconds_msb with */
71749b49cdaSZbigniew Bodek 	uint32_t ext_update_subseconds_msb;
71849b49cdaSZbigniew Bodek 	/* [0x30] Value to update system_time_subseconds_lsb with */
71949b49cdaSZbigniew Bodek 	uint32_t ext_update_subseconds_lsb;
72049b49cdaSZbigniew Bodek 	/* [0x34] This value represents the APB transaction delay fro ... */
72149b49cdaSZbigniew Bodek 	uint32_t read_compensation_subseconds_msb;
72249b49cdaSZbigniew Bodek 	/* [0x38] This value represents the APB transaction delay fro ... */
72349b49cdaSZbigniew Bodek 	uint32_t read_compensation_subseconds_lsb;
72449b49cdaSZbigniew Bodek 	/* [0x3c] This value is used for two purposes:1 */
72549b49cdaSZbigniew Bodek 	uint32_t int_write_compensation_subseconds_msb;
72649b49cdaSZbigniew Bodek 	/* [0x40] This value is used for two purposes:1 */
72749b49cdaSZbigniew Bodek 	uint32_t int_write_compensation_subseconds_lsb;
72849b49cdaSZbigniew Bodek 	/* [0x44] This value represents the number of cycles it for a ... */
72949b49cdaSZbigniew Bodek 	uint32_t ext_write_compensation_subseconds_msb;
73049b49cdaSZbigniew Bodek 	/* [0x48] This value represents the number of cycles it for a ... */
73149b49cdaSZbigniew Bodek 	uint32_t ext_write_compensation_subseconds_lsb;
73249b49cdaSZbigniew Bodek 	/* [0x4c] Value to be added to system_time before transferrin ... */
73349b49cdaSZbigniew Bodek 	uint32_t sync_compensation_subseconds_msb;
73449b49cdaSZbigniew Bodek 	/* [0x50] Value to be added to system_time before transferrin ... */
73549b49cdaSZbigniew Bodek 	uint32_t sync_compensation_subseconds_lsb;
73649b49cdaSZbigniew Bodek 	uint32_t rsrvd[11];
73749b49cdaSZbigniew Bodek };
73849b49cdaSZbigniew Bodek struct al_ec_pth_egress {
73949b49cdaSZbigniew Bodek 	/* [0x0] Control register for egress trigger #k */
74049b49cdaSZbigniew Bodek 	uint32_t trigger_ctrl;
74149b49cdaSZbigniew Bodek 	/* [0x4] threshold for next egress trigger (#k) - secondsWri ... */
74249b49cdaSZbigniew Bodek 	uint32_t trigger_seconds;
74349b49cdaSZbigniew Bodek 	/* [0x8] Threshold for next egress trigger (#k) - subseconds ... */
74449b49cdaSZbigniew Bodek 	uint32_t trigger_subseconds_msb;
74549b49cdaSZbigniew Bodek 	/* [0xc] threshold for next egress trigger (#k) - subseconds ... */
74649b49cdaSZbigniew Bodek 	uint32_t trigger_subseconds_lsb;
74749b49cdaSZbigniew Bodek 	/* [0x10] External output pulse width (subseconds_msb)(Atomic ... */
74849b49cdaSZbigniew Bodek 	uint32_t pulse_width_subseconds_msb;
74949b49cdaSZbigniew Bodek 	/* [0x14] External output pulse width (subseconds_lsb)(Atomic ... */
75049b49cdaSZbigniew Bodek 	uint32_t pulse_width_subseconds_lsb;
75149b49cdaSZbigniew Bodek 	uint32_t rsrvd[2];
75249b49cdaSZbigniew Bodek };
75349b49cdaSZbigniew Bodek struct al_ec_pth_db {
75449b49cdaSZbigniew Bodek 	/* [0x0] timestamp[k], in resolution of 2^18 femtosec =~ 0 */
75549b49cdaSZbigniew Bodek 	uint32_t ts;
75649b49cdaSZbigniew Bodek 	/* [0x4] Timestamp entry is valid */
75749b49cdaSZbigniew Bodek 	uint32_t qual;
75849b49cdaSZbigniew Bodek 	uint32_t rsrvd[4];
75949b49cdaSZbigniew Bodek };
76049b49cdaSZbigniew Bodek struct al_ec_gen_v3 {
76149b49cdaSZbigniew Bodek 	/* [0x0] Bypass enable */
76249b49cdaSZbigniew Bodek 	uint32_t bypass;
76349b49cdaSZbigniew Bodek 	/* [0x4] Rx Completion descriptor */
76449b49cdaSZbigniew Bodek 	uint32_t rx_comp_desc;
76549b49cdaSZbigniew Bodek 	/* [0x8] general configuration */
76649b49cdaSZbigniew Bodek 	uint32_t conf;
76749b49cdaSZbigniew Bodek 	uint32_t rsrvd[13];
76849b49cdaSZbigniew Bodek };
76949b49cdaSZbigniew Bodek struct al_ec_tfw_v3 {
77049b49cdaSZbigniew Bodek 	/* [0x0] Generic protocol detect Cam compare table address */
77149b49cdaSZbigniew Bodek 	uint32_t tx_gpd_cam_addr;
77249b49cdaSZbigniew Bodek 	/* [0x4] Tx Generic protocol detect Cam compare data_1 (low) ... */
77349b49cdaSZbigniew Bodek 	uint32_t tx_gpd_cam_data_1;
77449b49cdaSZbigniew Bodek 	/* [0x8] Tx Generic protocol detect Cam compare data_2 (high ... */
77549b49cdaSZbigniew Bodek 	uint32_t tx_gpd_cam_data_2;
77649b49cdaSZbigniew Bodek 	/* [0xc] Tx Generic protocol detect Cam compare mask_1 (low) ... */
77749b49cdaSZbigniew Bodek 	uint32_t tx_gpd_cam_mask_1;
77849b49cdaSZbigniew Bodek 	/* [0x10] Tx Generic protocol detect Cam compare mask_1 (high ... */
77949b49cdaSZbigniew Bodek 	uint32_t tx_gpd_cam_mask_2;
78049b49cdaSZbigniew Bodek 	/* [0x14] Tx Generic protocol detect Cam compare control */
78149b49cdaSZbigniew Bodek 	uint32_t tx_gpd_cam_ctrl;
78249b49cdaSZbigniew Bodek 	/* [0x18] Tx Generic crc parameters legacy */
78349b49cdaSZbigniew Bodek 	uint32_t tx_gcp_legacy;
78449b49cdaSZbigniew Bodek 	/* [0x1c] Tx Generic crc prameters table address */
78549b49cdaSZbigniew Bodek 	uint32_t tx_gcp_table_addr;
78649b49cdaSZbigniew Bodek 	/* [0x20] Tx Generic crc prameters table general */
78749b49cdaSZbigniew Bodek 	uint32_t tx_gcp_table_gen;
78849b49cdaSZbigniew Bodek 	/* [0x24] Tx Generic crc parametrs tabel mask word 1 */
78949b49cdaSZbigniew Bodek 	uint32_t tx_gcp_table_mask_1;
79049b49cdaSZbigniew Bodek 	/* [0x28] Tx Generic crc parametrs tabel mask word 2 */
79149b49cdaSZbigniew Bodek 	uint32_t tx_gcp_table_mask_2;
79249b49cdaSZbigniew Bodek 	/* [0x2c] Tx Generic crc parametrs tabel mask word 3 */
79349b49cdaSZbigniew Bodek 	uint32_t tx_gcp_table_mask_3;
79449b49cdaSZbigniew Bodek 	/* [0x30] Tx Generic crc parametrs tabel mask word 4 */
79549b49cdaSZbigniew Bodek 	uint32_t tx_gcp_table_mask_4;
79649b49cdaSZbigniew Bodek 	/* [0x34] Tx Generic crc parametrs tabel mask word 5 */
79749b49cdaSZbigniew Bodek 	uint32_t tx_gcp_table_mask_5;
79849b49cdaSZbigniew Bodek 	/* [0x38] Tx Generic crc parametrs tabel mask word 6 */
79949b49cdaSZbigniew Bodek 	uint32_t tx_gcp_table_mask_6;
80049b49cdaSZbigniew Bodek 	/* [0x3c] Tx Generic crc parametrs tabel crc init */
80149b49cdaSZbigniew Bodek 	uint32_t tx_gcp_table_crc_init;
80249b49cdaSZbigniew Bodek 	/* [0x40] Tx Generic crc parametrs tabel result configuration ... */
80349b49cdaSZbigniew Bodek 	uint32_t tx_gcp_table_res;
80449b49cdaSZbigniew Bodek 	/* [0x44] Tx Generic crc parameters table alu opcode */
80549b49cdaSZbigniew Bodek 	uint32_t tx_gcp_table_alu_opcode;
80649b49cdaSZbigniew Bodek 	/* [0x48] Tx Generic crc parameters table alu opsel */
80749b49cdaSZbigniew Bodek 	uint32_t tx_gcp_table_alu_opsel;
80849b49cdaSZbigniew Bodek 	/* [0x4c] Tx Generic crc parameters table alu constant value */
80949b49cdaSZbigniew Bodek 	uint32_t tx_gcp_table_alu_val;
81049b49cdaSZbigniew Bodek 	/* [0x50] Tx CRC/Checksum replace */
81149b49cdaSZbigniew Bodek 	uint32_t crc_csum_replace;
81249b49cdaSZbigniew Bodek 	/* [0x54] CRC/Checksum replace table address */
81349b49cdaSZbigniew Bodek 	uint32_t crc_csum_replace_table_addr;
81449b49cdaSZbigniew Bodek 	/* [0x58] CRC/Checksum replace table */
81549b49cdaSZbigniew Bodek 	uint32_t crc_csum_replace_table;
81649b49cdaSZbigniew Bodek 	uint32_t rsrvd[9];
81749b49cdaSZbigniew Bodek };
81849b49cdaSZbigniew Bodek 
81949b49cdaSZbigniew Bodek struct al_ec_rfw_v3 {
82049b49cdaSZbigniew Bodek 	/* [0x0] Rx Generic protocol detect Cam compare table addres ... */
82149b49cdaSZbigniew Bodek 	uint32_t rx_gpd_cam_addr;
82249b49cdaSZbigniew Bodek 	/* [0x4] Rx Generic protocol detect Cam compare data_1 (low) ... */
82349b49cdaSZbigniew Bodek 	uint32_t rx_gpd_cam_data_1;
82449b49cdaSZbigniew Bodek 	/* [0x8] Rx Generic protocol detect Cam compare data_2 (high ... */
82549b49cdaSZbigniew Bodek 	uint32_t rx_gpd_cam_data_2;
82649b49cdaSZbigniew Bodek 	/* [0xc] Rx Generic protocol detect Cam compare mask_1 (low) ... */
82749b49cdaSZbigniew Bodek 	uint32_t rx_gpd_cam_mask_1;
82849b49cdaSZbigniew Bodek 	/* [0x10] Rx Generic protocol detect Cam compare mask_1 (high ... */
82949b49cdaSZbigniew Bodek 	uint32_t rx_gpd_cam_mask_2;
83049b49cdaSZbigniew Bodek 	/* [0x14] Rx Generic protocol detect Cam compare control */
83149b49cdaSZbigniew Bodek 	uint32_t rx_gpd_cam_ctrl;
83249b49cdaSZbigniew Bodek 	/* [0x18] Generic protocol detect Parser result vector pointe ... */
83349b49cdaSZbigniew Bodek 	uint32_t gpd_p1;
83449b49cdaSZbigniew Bodek 	/* [0x1c] Generic protocol detect Parser result vector pointe ... */
83549b49cdaSZbigniew Bodek 	uint32_t gpd_p2;
83649b49cdaSZbigniew Bodek 	/* [0x20] Generic protocol detect Parser result vector pointe ... */
83749b49cdaSZbigniew Bodek 	uint32_t gpd_p3;
83849b49cdaSZbigniew Bodek 	/* [0x24] Generic protocol detect Parser result vector pointe ... */
83949b49cdaSZbigniew Bodek 	uint32_t gpd_p4;
84049b49cdaSZbigniew Bodek 	/* [0x28] Generic protocol detect Parser result vector pointe ... */
84149b49cdaSZbigniew Bodek 	uint32_t gpd_p5;
84249b49cdaSZbigniew Bodek 	/* [0x2c] Generic protocol detect Parser result vector pointe ... */
84349b49cdaSZbigniew Bodek 	uint32_t gpd_p6;
84449b49cdaSZbigniew Bodek 	/* [0x30] Generic protocol detect Parser result vector pointe ... */
84549b49cdaSZbigniew Bodek 	uint32_t gpd_p7;
84649b49cdaSZbigniew Bodek 	/* [0x34] Generic protocol detect Parser result vector pointe ... */
84749b49cdaSZbigniew Bodek 	uint32_t gpd_p8;
84849b49cdaSZbigniew Bodek 	/* [0x38] Rx Generic crc parameters legacy */
84949b49cdaSZbigniew Bodek 	uint32_t rx_gcp_legacy;
85049b49cdaSZbigniew Bodek 	/* [0x3c] Rx Generic crc prameters table address */
85149b49cdaSZbigniew Bodek 	uint32_t rx_gcp_table_addr;
85249b49cdaSZbigniew Bodek 	/* [0x40] Rx Generic crc prameters table general */
85349b49cdaSZbigniew Bodek 	uint32_t rx_gcp_table_gen;
85449b49cdaSZbigniew Bodek 	/* [0x44] Rx Generic crc parametrs tabel mask word 1 */
85549b49cdaSZbigniew Bodek 	uint32_t rx_gcp_table_mask_1;
85649b49cdaSZbigniew Bodek 	/* [0x48] Rx Generic crc parametrs tabel mask word 2 */
85749b49cdaSZbigniew Bodek 	uint32_t rx_gcp_table_mask_2;
85849b49cdaSZbigniew Bodek 	/* [0x4c] Rx Generic crc parametrs tabel mask word 3 */
85949b49cdaSZbigniew Bodek 	uint32_t rx_gcp_table_mask_3;
86049b49cdaSZbigniew Bodek 	/* [0x50] Rx Generic crc parametrs tabel mask word 4 */
86149b49cdaSZbigniew Bodek 	uint32_t rx_gcp_table_mask_4;
86249b49cdaSZbigniew Bodek 	/* [0x54] Rx Generic crc parametrs tabel mask word 5 */
86349b49cdaSZbigniew Bodek 	uint32_t rx_gcp_table_mask_5;
86449b49cdaSZbigniew Bodek 	/* [0x58] Rx Generic crc parametrs tabel mask word 6 */
86549b49cdaSZbigniew Bodek 	uint32_t rx_gcp_table_mask_6;
86649b49cdaSZbigniew Bodek 	/* [0x5c] Rx Generic crc parametrs tabel crc init */
86749b49cdaSZbigniew Bodek 	uint32_t rx_gcp_table_crc_init;
86849b49cdaSZbigniew Bodek 	/* [0x60] Rx Generic crc parametrs tabel result configuration ... */
86949b49cdaSZbigniew Bodek 	uint32_t rx_gcp_table_res;
87049b49cdaSZbigniew Bodek 	/* [0x64] Rx Generic crc  parameters table alu opcode */
87149b49cdaSZbigniew Bodek 	uint32_t rx_gcp_table_alu_opcode;
87249b49cdaSZbigniew Bodek 	/* [0x68] Rx Generic crc  parameters table alu opsel */
87349b49cdaSZbigniew Bodek 	uint32_t rx_gcp_table_alu_opsel;
87449b49cdaSZbigniew Bodek 	/* [0x6c] Rx Generic crc  parameters table alu constant value ... */
87549b49cdaSZbigniew Bodek 	uint32_t rx_gcp_table_alu_val;
87649b49cdaSZbigniew Bodek 	/* [0x70] Generic crc engin parameters alu Parser result vect ... */
87749b49cdaSZbigniew Bodek 	uint32_t rx_gcp_alu_p1;
87849b49cdaSZbigniew Bodek 	/* [0x74] Generic crc engine parameters alu Parser result vec ... */
87949b49cdaSZbigniew Bodek 	uint32_t rx_gcp_alu_p2;
88049b49cdaSZbigniew Bodek 	/* [0x78] Header split control table address */
88149b49cdaSZbigniew Bodek 	uint32_t hs_ctrl_table_addr;
88249b49cdaSZbigniew Bodek 	/* [0x7c] Header split control table */
88349b49cdaSZbigniew Bodek 	uint32_t hs_ctrl_table;
88449b49cdaSZbigniew Bodek 	/* [0x80] Header split control alu opcode */
88549b49cdaSZbigniew Bodek 	uint32_t hs_ctrl_table_alu_opcode;
88649b49cdaSZbigniew Bodek 	/* [0x84] Header split control alu opsel */
88749b49cdaSZbigniew Bodek 	uint32_t hs_ctrl_table_alu_opsel;
88849b49cdaSZbigniew Bodek 	/* [0x88] Header split control alu constant value */
88949b49cdaSZbigniew Bodek 	uint32_t hs_ctrl_table_alu_val;
89049b49cdaSZbigniew Bodek 	/* [0x8c] Header split control configuration */
89149b49cdaSZbigniew Bodek 	uint32_t hs_ctrl_cfg;
89249b49cdaSZbigniew Bodek 	/* [0x90] Header split control alu Parser result vector point ... */
89349b49cdaSZbigniew Bodek 	uint32_t hs_ctrl_alu_p1;
89449b49cdaSZbigniew Bodek 	/* [0x94] Header split control alu Parser result vector point ... */
89549b49cdaSZbigniew Bodek 	uint32_t hs_ctrl_alu_p2;
89649b49cdaSZbigniew Bodek 	uint32_t rsrvd[26];
89749b49cdaSZbigniew Bodek };
89849b49cdaSZbigniew Bodek struct al_ec_crypto {
89949b49cdaSZbigniew Bodek 	/* [0x0] Tx inline crypto configuration */
90049b49cdaSZbigniew Bodek 	uint32_t tx_config;
90149b49cdaSZbigniew Bodek 	/* [0x4] Rx inline crypto configuration */
90249b49cdaSZbigniew Bodek 	uint32_t rx_config;
90349b49cdaSZbigniew Bodek 	/* [0x8] reserved FFU */
90449b49cdaSZbigniew Bodek 	uint32_t tx_override;
90549b49cdaSZbigniew Bodek 	/* [0xc] reserved FFU */
90649b49cdaSZbigniew Bodek 	uint32_t rx_override;
90749b49cdaSZbigniew Bodek 	/* [0x10] inline XTS alpha [31:0] */
90849b49cdaSZbigniew Bodek 	uint32_t xts_alpha_1;
90949b49cdaSZbigniew Bodek 	/* [0x14] inline XTS alpha [63:32] */
91049b49cdaSZbigniew Bodek 	uint32_t xts_alpha_2;
91149b49cdaSZbigniew Bodek 	/* [0x18] inline XTS alpha [95:64] */
91249b49cdaSZbigniew Bodek 	uint32_t xts_alpha_3;
91349b49cdaSZbigniew Bodek 	/* [0x1c] inline XTS alpha [127:96] */
91449b49cdaSZbigniew Bodek 	uint32_t xts_alpha_4;
91549b49cdaSZbigniew Bodek 	/* [0x20] inline XTS sector ID increment [31:0] */
91649b49cdaSZbigniew Bodek 	uint32_t xts_sector_id_1;
91749b49cdaSZbigniew Bodek 	/* [0x24] inline XTS sector ID increment [63:32] */
91849b49cdaSZbigniew Bodek 	uint32_t xts_sector_id_2;
91949b49cdaSZbigniew Bodek 	/* [0x28] inline XTS sector ID increment [95:64] */
92049b49cdaSZbigniew Bodek 	uint32_t xts_sector_id_3;
92149b49cdaSZbigniew Bodek 	/* [0x2c] inline XTS sector ID increment [127:96] */
92249b49cdaSZbigniew Bodek 	uint32_t xts_sector_id_4;
92349b49cdaSZbigniew Bodek 	/* [0x30] IV formation configuration */
92449b49cdaSZbigniew Bodek 	uint32_t tx_enc_iv_construction;
92549b49cdaSZbigniew Bodek 	/* [0x34] IV formation configuration */
92649b49cdaSZbigniew Bodek 	uint32_t rx_enc_iv_construction;
92749b49cdaSZbigniew Bodek 	/* [0x38] IV formation configuration */
92849b49cdaSZbigniew Bodek 	uint32_t rx_enc_iv_map;
92949b49cdaSZbigniew Bodek 	/*
93049b49cdaSZbigniew Bodek 	[0x3c] effectively shorten shift-registers used for
93149b49cdaSZbigniew Bodek 	eop-pkt-trim, in order to improve performance.
93249b49cdaSZbigniew Bodek 	Each value must be built of consecutive 1's (bypassed regs),
93349b49cdaSZbigniew Bodek 	and then consecutive 0's (non-bypassed regs)
93449b49cdaSZbigniew Bodek 	*/
93549b49cdaSZbigniew Bodek 	uint32_t tx_pkt_trim_len;
93649b49cdaSZbigniew Bodek 	/*
93749b49cdaSZbigniew Bodek 	[0x40] effectively shorten shift-registers used for
93849b49cdaSZbigniew Bodek 	eop-pkt-trim, in order to improve performance.
93949b49cdaSZbigniew Bodek 	Each value must be built of consecutive 1's (bypassed regs),
94049b49cdaSZbigniew Bodek 	and then consecutive 0's (non-bypassed regs)
94149b49cdaSZbigniew Bodek 	*/
94249b49cdaSZbigniew Bodek 	uint32_t rx_pkt_trim_len;
94349b49cdaSZbigniew Bodek 	/* [0x44] reserved FFU */
94449b49cdaSZbigniew Bodek 	uint32_t tx_reserved;
94549b49cdaSZbigniew Bodek 	/* [0x48] reserved FFU */
94649b49cdaSZbigniew Bodek 	uint32_t rx_reserved;
94749b49cdaSZbigniew Bodek 	uint32_t rsrvd[13];
94849b49cdaSZbigniew Bodek };
94949b49cdaSZbigniew Bodek struct al_ec_crypto_perf_cntr {
95049b49cdaSZbigniew Bodek 	/* [0x0]  */
95149b49cdaSZbigniew Bodek 	uint32_t total_tx_pkts;
95249b49cdaSZbigniew Bodek 	/* [0x4]  */
95349b49cdaSZbigniew Bodek 	uint32_t total_rx_pkts;
95449b49cdaSZbigniew Bodek 	/* [0x8]  */
95549b49cdaSZbigniew Bodek 	uint32_t total_tx_secured_pkts;
95649b49cdaSZbigniew Bodek 	/* [0xc]  */
95749b49cdaSZbigniew Bodek 	uint32_t total_rx_secured_pkts;
95849b49cdaSZbigniew Bodek 	/* [0x10]  */
95949b49cdaSZbigniew Bodek 	uint32_t total_tx_secured_pkts_cipher_mode;
96049b49cdaSZbigniew Bodek 	/* [0x14]  */
96149b49cdaSZbigniew Bodek 	uint32_t total_tx_secured_pkts_cipher_mode_cmpr;
96249b49cdaSZbigniew Bodek 	/* [0x18]  */
96349b49cdaSZbigniew Bodek 	uint32_t total_rx_secured_pkts_cipher_mode;
96449b49cdaSZbigniew Bodek 	/* [0x1c]  */
96549b49cdaSZbigniew Bodek 	uint32_t total_rx_secured_pkts_cipher_mode_cmpr;
96649b49cdaSZbigniew Bodek 	/* [0x20]  */
96749b49cdaSZbigniew Bodek 	uint32_t total_tx_secured_bytes_low;
96849b49cdaSZbigniew Bodek 	/* [0x24]  */
96949b49cdaSZbigniew Bodek 	uint32_t total_tx_secured_bytes_high;
97049b49cdaSZbigniew Bodek 	/* [0x28]  */
97149b49cdaSZbigniew Bodek 	uint32_t total_rx_secured_bytes_low;
97249b49cdaSZbigniew Bodek 	/* [0x2c]  */
97349b49cdaSZbigniew Bodek 	uint32_t total_rx_secured_bytes_high;
97449b49cdaSZbigniew Bodek 	/* [0x30]  */
97549b49cdaSZbigniew Bodek 	uint32_t total_tx_sign_calcs;
97649b49cdaSZbigniew Bodek 	/* [0x34]  */
97749b49cdaSZbigniew Bodek 	uint32_t total_rx_sign_calcs;
97849b49cdaSZbigniew Bodek 	/* [0x38]  */
97949b49cdaSZbigniew Bodek 	uint32_t total_tx_sign_errs;
98049b49cdaSZbigniew Bodek 	/* [0x3c]  */
98149b49cdaSZbigniew Bodek 	uint32_t total_rx_sign_errs;
98249b49cdaSZbigniew Bodek };
98349b49cdaSZbigniew Bodek struct al_ec_crypto_tx_tid {
98449b49cdaSZbigniew Bodek 	/* [0x0] tid_default_entry */
98549b49cdaSZbigniew Bodek 	uint32_t def_val;
98649b49cdaSZbigniew Bodek };
98749b49cdaSZbigniew Bodek 
98849b49cdaSZbigniew Bodek struct al_ec_regs {
98949b49cdaSZbigniew Bodek 	uint32_t rsrvd_0[32];
99049b49cdaSZbigniew Bodek 	struct al_ec_gen gen;                                /* [0x80] */
99149b49cdaSZbigniew Bodek 	struct al_ec_mac mac;                                /* [0xc0] */
99249b49cdaSZbigniew Bodek 	struct al_ec_rxf rxf;                                /* [0x100] */
99349b49cdaSZbigniew Bodek 	struct al_ec_epe epe[2];                             /* [0x180] */
99449b49cdaSZbigniew Bodek 	struct al_ec_epe_res epe_res;                        /* [0x200] */
99549b49cdaSZbigniew Bodek 	struct al_ec_epe_h epe_h[32];                        /* [0x280] */
99649b49cdaSZbigniew Bodek 	struct al_ec_epe_p epe_p[32];                        /* [0x300] */
99749b49cdaSZbigniew Bodek 	struct al_ec_epe_a epe_a[32];                        /* [0x680] */
99849b49cdaSZbigniew Bodek 	struct al_ec_rfw rfw;                                /* [0x700] */
99949b49cdaSZbigniew Bodek 	struct al_ec_rfw_udma rfw_udma[4];                   /* [0x7f0] */
100049b49cdaSZbigniew Bodek 	struct al_ec_rfw_hash rfw_hash[10];                  /* [0x800] */
100149b49cdaSZbigniew Bodek 	struct al_ec_rfw_priority rfw_priority[8];           /* [0x828] */
100249b49cdaSZbigniew Bodek 	struct al_ec_rfw_default rfw_default[8];             /* [0x848] */
100349b49cdaSZbigniew Bodek 	struct al_ec_fwd_mac fwd_mac[32];                    /* [0x868] */
100449b49cdaSZbigniew Bodek 	struct al_ec_msw msw;                                /* [0xae8] */
100549b49cdaSZbigniew Bodek 	struct al_ec_tso tso;                                /* [0xb00] */
100649b49cdaSZbigniew Bodek 	struct al_ec_tso_sel tso_sel[8];                     /* [0xb60] */
100749b49cdaSZbigniew Bodek 	struct al_ec_tpe tpe;                                /* [0xb80] */
100849b49cdaSZbigniew Bodek 	struct al_ec_tpm_udma tpm_udma[4];                   /* [0xbc0] */
100949b49cdaSZbigniew Bodek 	struct al_ec_tpm_sel tpm_sel[4];                     /* [0xbf0] */
101049b49cdaSZbigniew Bodek 	struct al_ec_tfw tfw;                                /* [0xc00] */
101149b49cdaSZbigniew Bodek 	struct al_ec_tfw_udma tfw_udma[4];                   /* [0xc60] */
101249b49cdaSZbigniew Bodek 	struct al_ec_tmi tmi;                                /* [0xcc0] */
101349b49cdaSZbigniew Bodek 	struct al_ec_efc efc;                                /* [0xcd0] */
101449b49cdaSZbigniew Bodek 	struct al_ec_fc_udma fc_udma[4];                     /* [0xd00] */
101549b49cdaSZbigniew Bodek 	struct al_ec_tpg_rpa_res tpg_rpa_res;                /* [0xf00] */
101649b49cdaSZbigniew Bodek 	struct al_ec_eee eee;                                /* [0x1000] */
101749b49cdaSZbigniew Bodek 	struct al_ec_stat stat;                              /* [0x1100] */
101849b49cdaSZbigniew Bodek 	struct al_ec_stat_udma stat_udma[4];                 /* [0x1300] */
101949b49cdaSZbigniew Bodek 	struct al_ec_msp msp;                                /* [0x1700] */
102049b49cdaSZbigniew Bodek 	struct al_ec_msp_p msp_p[32];                        /* [0x1740] */
102149b49cdaSZbigniew Bodek 	struct al_ec_msp_c msp_c[32];                        /* [0x17c0] */
102249b49cdaSZbigniew Bodek 	uint32_t rsrvd_1[16];
102349b49cdaSZbigniew Bodek 	struct al_ec_wol wol;                                /* [0x1b80] */
102449b49cdaSZbigniew Bodek 	uint32_t rsrvd_2[80];
102549b49cdaSZbigniew Bodek 	struct al_ec_pth pth;                                /* [0x1d00] */
102649b49cdaSZbigniew Bodek 	struct al_ec_pth_egress pth_egress[8];               /* [0x1d80] */
102749b49cdaSZbigniew Bodek 	struct al_ec_pth_db pth_db[16];                      /* [0x1e80] */
102849b49cdaSZbigniew Bodek 	uint32_t rsrvd_3[416];
102949b49cdaSZbigniew Bodek 	struct al_ec_gen_v3 gen_v3;                             /* [0x2680] */
103049b49cdaSZbigniew Bodek 	struct al_ec_tfw_v3 tfw_v3;                             /* [0x26c0] */
103149b49cdaSZbigniew Bodek 	struct al_ec_rfw_v3 rfw_v3;                             /* [0x2740] */
103249b49cdaSZbigniew Bodek 	struct al_ec_crypto crypto;                             /* [0x2840] */
103349b49cdaSZbigniew Bodek 	struct al_ec_crypto_perf_cntr crypto_perf_cntr[2];      /* [0x28c0] */
103449b49cdaSZbigniew Bodek 	uint32_t rsrvd_4[48];
103549b49cdaSZbigniew Bodek 	struct al_ec_crypto_tx_tid crypto_tx_tid[8];            /* [0x2a00] */
103649b49cdaSZbigniew Bodek };
103749b49cdaSZbigniew Bodek 
103849b49cdaSZbigniew Bodek 
103949b49cdaSZbigniew Bodek /*
104049b49cdaSZbigniew Bodek * Registers Fields
104149b49cdaSZbigniew Bodek */
104249b49cdaSZbigniew Bodek 
104349b49cdaSZbigniew Bodek 
104449b49cdaSZbigniew Bodek /**** version register ****/
104549b49cdaSZbigniew Bodek /* Revision number (Minor) */
104649b49cdaSZbigniew Bodek #define EC_GEN_VERSION_RELEASE_NUM_MINOR_MASK 0x000000FF
104749b49cdaSZbigniew Bodek #define EC_GEN_VERSION_RELEASE_NUM_MINOR_SHIFT 0
104849b49cdaSZbigniew Bodek /* Revision number (Major) */
104949b49cdaSZbigniew Bodek #define EC_GEN_VERSION_RELEASE_NUM_MAJOR_MASK 0x0000FF00
105049b49cdaSZbigniew Bodek #define EC_GEN_VERSION_RELEASE_NUM_MAJOR_SHIFT 8
105149b49cdaSZbigniew Bodek /* Day of release */
105249b49cdaSZbigniew Bodek #define EC_GEN_VERSION_DATE_DAY_MASK     0x001F0000
105349b49cdaSZbigniew Bodek #define EC_GEN_VERSION_DATE_DAY_SHIFT    16
105449b49cdaSZbigniew Bodek /* Month of release */
105549b49cdaSZbigniew Bodek #define EC_GEN_VERSION_DATA_MONTH_MASK   0x01E00000
105649b49cdaSZbigniew Bodek #define EC_GEN_VERSION_DATA_MONTH_SHIFT  21
105749b49cdaSZbigniew Bodek /* Year of release (starting from 2000) */
105849b49cdaSZbigniew Bodek #define EC_GEN_VERSION_DATE_YEAR_MASK    0x3E000000
105949b49cdaSZbigniew Bodek #define EC_GEN_VERSION_DATE_YEAR_SHIFT   25
106049b49cdaSZbigniew Bodek /* Reserved */
106149b49cdaSZbigniew Bodek #define EC_GEN_VERSION_RESERVED_MASK     0xC0000000
106249b49cdaSZbigniew Bodek #define EC_GEN_VERSION_RESERVED_SHIFT    30
106349b49cdaSZbigniew Bodek 
106449b49cdaSZbigniew Bodek /**** en register ****/
106549b49cdaSZbigniew Bodek /* Enable Frequency adjust FIFO input controller operation. */
106649b49cdaSZbigniew Bodek #define EC_GEN_EN_FAF_IN                 (1 << 0)
106749b49cdaSZbigniew Bodek /* Enable Frequency adjust FIFO output controller operation. */
106849b49cdaSZbigniew Bodek #define EC_GEN_EN_FAF_OUT                (1 << 1)
106949b49cdaSZbigniew Bodek /* Enable Rx FIFO input controller 1 operation. */
107049b49cdaSZbigniew Bodek #define EC_GEN_EN_RXF_IN                 (1 << 2)
107149b49cdaSZbigniew Bodek /* Enable Rx FIFO output controller  operation. */
107249b49cdaSZbigniew Bodek #define EC_GEN_EN_RXF_OUT                (1 << 3)
107349b49cdaSZbigniew Bodek /* Enable Rx forwarding input controller operation. */
107449b49cdaSZbigniew Bodek #define EC_GEN_EN_RFW_IN                 (1 << 4)
107549b49cdaSZbigniew Bodek /* Enable Rx forwarding output controller operation. */
107649b49cdaSZbigniew Bodek #define EC_GEN_EN_RFW_OUT                (1 << 5)
107749b49cdaSZbigniew Bodek /* Enable Rx multi-stream write controller operation. */
107849b49cdaSZbigniew Bodek #define EC_GEN_EN_MSW_IN                 (1 << 6)
107949b49cdaSZbigniew Bodek /* Enable Rx first parsing engine output operation. */
108049b49cdaSZbigniew Bodek #define EC_GEN_EN_RPE_1_OUT              (1 << 7)
108149b49cdaSZbigniew Bodek /* Enable Rx first parsing engine input operation. */
108249b49cdaSZbigniew Bodek #define EC_GEN_EN_RPE_1_IN               (1 << 8)
108349b49cdaSZbigniew Bodek /* Enable Rx second parsing engine output operation. */
108449b49cdaSZbigniew Bodek #define EC_GEN_EN_RPE_2_OUT              (1 << 9)
108549b49cdaSZbigniew Bodek /* Enable Rx second parsing engine input operation. */
108649b49cdaSZbigniew Bodek #define EC_GEN_EN_RPE_2_IN               (1 << 10)
108749b49cdaSZbigniew Bodek /* Enable Rx MACsec parsing engine output operation. */
108849b49cdaSZbigniew Bodek #define EC_GEN_EN_RPE_3_OUT              (1 << 11)
108949b49cdaSZbigniew Bodek /* Enable Rx MACsec parsing engine input operation. */
109049b49cdaSZbigniew Bodek #define EC_GEN_EN_RPE_3_IN               (1 << 12)
109149b49cdaSZbigniew Bodek /* Enable Loopback FIFO input controller 1 operation. */
109249b49cdaSZbigniew Bodek #define EC_GEN_EN_LBF_IN                 (1 << 13)
109349b49cdaSZbigniew Bodek /* Enable Rx packet analyzer operation. */
109449b49cdaSZbigniew Bodek #define EC_GEN_EN_RPA                    (1 << 14)
109549b49cdaSZbigniew Bodek 
109649b49cdaSZbigniew Bodek #define EC_GEN_EN_RESERVED_15            (1 << 15)
109749b49cdaSZbigniew Bodek /* Enable Tx stream interface operation. */
109849b49cdaSZbigniew Bodek #define EC_GEN_EN_TSO                    (1 << 16)
109949b49cdaSZbigniew Bodek /* Enable Tx parser input controller operation. */
110049b49cdaSZbigniew Bodek #define EC_GEN_EN_TPE_IN                 (1 << 17)
110149b49cdaSZbigniew Bodek /* Enable Tx parser output controller operation. */
110249b49cdaSZbigniew Bodek #define EC_GEN_EN_TPE_OUT                (1 << 18)
110349b49cdaSZbigniew Bodek /* Enable Tx packet modification operation. */
110449b49cdaSZbigniew Bodek #define EC_GEN_EN_TPM                    (1 << 19)
110549b49cdaSZbigniew Bodek /* Enable Tx forwarding input controller operation. */
110649b49cdaSZbigniew Bodek #define EC_GEN_EN_TFW_IN                 (1 << 20)
110749b49cdaSZbigniew Bodek /* Enable Tx forwarding output controller operation. */
110849b49cdaSZbigniew Bodek #define EC_GEN_EN_TFW_OUT                (1 << 21)
110949b49cdaSZbigniew Bodek /* Enable Tx MAC interface controller operation. */
111049b49cdaSZbigniew Bodek #define EC_GEN_EN_TMI                    (1 << 22)
111149b49cdaSZbigniew Bodek /* Enable Tx packet generator operation. */
111249b49cdaSZbigniew Bodek #define EC_GEN_EN_TPG                    (1 << 23)
111349b49cdaSZbigniew Bodek 
111449b49cdaSZbigniew Bodek #define EC_GEN_EN_RESERVED_31_MASK       0xFF000000
111549b49cdaSZbigniew Bodek #define EC_GEN_EN_RESERVED_31_SHIFT      24
111649b49cdaSZbigniew Bodek 
111749b49cdaSZbigniew Bodek /**** fifo_en register ****/
111849b49cdaSZbigniew Bodek /* Enable Frequency adjust FIFO operation (input). */
111949b49cdaSZbigniew Bodek #define EC_GEN_FIFO_EN_FAF_IN            (1 << 0)
112049b49cdaSZbigniew Bodek /* Enable Frequency adjust FIFO operation (output). */
112149b49cdaSZbigniew Bodek #define EC_GEN_FIFO_EN_FAF_OUT           (1 << 1)
112249b49cdaSZbigniew Bodek /* Enable Rx FIFO operation. */
112349b49cdaSZbigniew Bodek #define EC_GEN_FIFO_EN_RX_FIFO           (1 << 2)
112449b49cdaSZbigniew Bodek /* Enable Rx forwarding FIFO operation. */
112549b49cdaSZbigniew Bodek #define EC_GEN_FIFO_EN_RFW_FIFO          (1 << 3)
112649b49cdaSZbigniew Bodek /* Enable Rx multi-stream write FIFO operation */
112749b49cdaSZbigniew Bodek #define EC_GEN_FIFO_EN_MSW_FIFO          (1 << 4)
112849b49cdaSZbigniew Bodek /* Enable Rx first parser FIFO operation. */
112949b49cdaSZbigniew Bodek #define EC_GEN_FIFO_EN_RPE_1_FIFO        (1 << 5)
113049b49cdaSZbigniew Bodek /* Enable Rx second parser FIFO operation. */
113149b49cdaSZbigniew Bodek #define EC_GEN_FIFO_EN_RPE_2_FIFO        (1 << 6)
113249b49cdaSZbigniew Bodek /* Enable Rx MACsec parser FIFO operation. */
113349b49cdaSZbigniew Bodek #define EC_GEN_FIFO_EN_RPE_3_FIFO        (1 << 7)
113449b49cdaSZbigniew Bodek /* Enable Loopback FIFO operation. */
113549b49cdaSZbigniew Bodek #define EC_GEN_FIFO_EN_LB_FIFO           (1 << 8)
113649b49cdaSZbigniew Bodek 
113749b49cdaSZbigniew Bodek #define EC_GEN_FIFO_EN_RESERVED_15_9_MASK 0x0000FE00
113849b49cdaSZbigniew Bodek #define EC_GEN_FIFO_EN_RESERVED_15_9_SHIFT 9
113949b49cdaSZbigniew Bodek /* Enable Tx parser FIFO operation. */
114049b49cdaSZbigniew Bodek #define EC_GEN_FIFO_EN_TPE_FIFO          (1 << 16)
114149b49cdaSZbigniew Bodek /* Enable Tx forwarding FIFO operation. */
114249b49cdaSZbigniew Bodek #define EC_GEN_FIFO_EN_TFW_FIFO          (1 << 17)
114349b49cdaSZbigniew Bodek 
114449b49cdaSZbigniew Bodek #define EC_GEN_FIFO_EN_RESERVED_31_18_MASK 0xFFFC0000
114549b49cdaSZbigniew Bodek #define EC_GEN_FIFO_EN_RESERVED_31_18_SHIFT 18
114649b49cdaSZbigniew Bodek 
114749b49cdaSZbigniew Bodek /**** l2 register ****/
114849b49cdaSZbigniew Bodek /* Size of a 802.3 Ethernet header (DA+SA) */
114949b49cdaSZbigniew Bodek #define EC_GEN_L2_SIZE_802_3_MASK        0x0000003F
115049b49cdaSZbigniew Bodek #define EC_GEN_L2_SIZE_802_3_SHIFT       0
115149b49cdaSZbigniew Bodek /* Size of a 802.3 + MACsec 8 byte header */
115249b49cdaSZbigniew Bodek #define EC_GEN_L2_SIZE_802_3_MS_8_MASK   0x00003F00
115349b49cdaSZbigniew Bodek #define EC_GEN_L2_SIZE_802_3_MS_8_SHIFT  8
115449b49cdaSZbigniew Bodek /* Offset of the L2 header from the beginning of the packet. */
115549b49cdaSZbigniew Bodek #define EC_GEN_L2_OFFSET_MASK            0x7F000000
115649b49cdaSZbigniew Bodek #define EC_GEN_L2_OFFSET_SHIFT           24
115749b49cdaSZbigniew Bodek 
115849b49cdaSZbigniew Bodek /**** cfg_i register ****/
115949b49cdaSZbigniew Bodek /* IPv4 protocol index */
116049b49cdaSZbigniew Bodek #define EC_GEN_CFG_I_IPV4_INDEX_MASK     0x0000001F
116149b49cdaSZbigniew Bodek #define EC_GEN_CFG_I_IPV4_INDEX_SHIFT    0
116249b49cdaSZbigniew Bodek /* IPv6 protocol index */
116349b49cdaSZbigniew Bodek #define EC_GEN_CFG_I_IPV6_INDEX_MASK     0x000003E0
116449b49cdaSZbigniew Bodek #define EC_GEN_CFG_I_IPV6_INDEX_SHIFT    5
116549b49cdaSZbigniew Bodek /* TCP protocol index */
116649b49cdaSZbigniew Bodek #define EC_GEN_CFG_I_TCP_INDEX_MASK      0x00007C00
116749b49cdaSZbigniew Bodek #define EC_GEN_CFG_I_TCP_INDEX_SHIFT     10
116849b49cdaSZbigniew Bodek /* UDP protocol index */
116949b49cdaSZbigniew Bodek #define EC_GEN_CFG_I_UDP_INDEX_MASK      0x000F8000
117049b49cdaSZbigniew Bodek #define EC_GEN_CFG_I_UDP_INDEX_SHIFT     15
117149b49cdaSZbigniew Bodek /* MACsec with 8 bytes SecTAG */
117249b49cdaSZbigniew Bodek #define EC_GEN_CFG_I_MACSEC_8_INDEX_MASK 0x01F00000
117349b49cdaSZbigniew Bodek #define EC_GEN_CFG_I_MACSEC_8_INDEX_SHIFT 20
117449b49cdaSZbigniew Bodek /* MACsec with 16 bytes SecTAG */
117549b49cdaSZbigniew Bodek #define EC_GEN_CFG_I_MACSEC_16_INDEX_MASK 0x3E000000
117649b49cdaSZbigniew Bodek #define EC_GEN_CFG_I_MACSEC_16_INDEX_SHIFT 25
117749b49cdaSZbigniew Bodek 
117849b49cdaSZbigniew Bodek /**** cfg_i_ext register ****/
117949b49cdaSZbigniew Bodek /* FcoE protocol index */
118049b49cdaSZbigniew Bodek #define EC_GEN_CFG_I_EXT_FCOE_INDEX_MASK 0x0000001F
118149b49cdaSZbigniew Bodek #define EC_GEN_CFG_I_EXT_FCOE_INDEX_SHIFT 0
118249b49cdaSZbigniew Bodek /* RoCE protocol index */
118349b49cdaSZbigniew Bodek #define EC_GEN_CFG_I_EXT_ROCE_INDEX_L3_1_MASK 0x000003E0
118449b49cdaSZbigniew Bodek #define EC_GEN_CFG_I_EXT_ROCE_INDEX_L3_1_SHIFT 5
118549b49cdaSZbigniew Bodek /* RoCE protocol index */
118649b49cdaSZbigniew Bodek #define EC_GEN_CFG_I_EXT_ROCE_INDEX_L3_2_MASK 0x00007C00
118749b49cdaSZbigniew Bodek #define EC_GEN_CFG_I_EXT_ROCE_INDEX_L3_2_SHIFT 10
118849b49cdaSZbigniew Bodek /* RoCE protocol index */
118949b49cdaSZbigniew Bodek #define EC_GEN_CFG_I_EXT_ROCE_INDEX_L4_MASK 0x000F8000
119049b49cdaSZbigniew Bodek #define EC_GEN_CFG_I_EXT_ROCE_INDEX_L4_SHIFT 15
119149b49cdaSZbigniew Bodek 
119249b49cdaSZbigniew Bodek /**** en_ext register ****/
119349b49cdaSZbigniew Bodek /* Enable Usage of Ethernet port memories for testing */
119449b49cdaSZbigniew Bodek #define EC_GEN_EN_EXT_MEM_FOR_TEST_MASK  0x0000000F
119549b49cdaSZbigniew Bodek #define EC_GEN_EN_EXT_MEM_FOR_TEST_SHIFT 0
119649b49cdaSZbigniew Bodek #define EC_GEN_EN_EXT_MEM_FOR_TEST_VAL_EN	\
119749b49cdaSZbigniew Bodek 	(0xa << EC_GEN_EN_EXT_MEM_FOR_TEST_SHIFT)
119849b49cdaSZbigniew Bodek #define EC_GEN_EN_EXT_MEM_FOR_TEST_VAL_DIS	\
119949b49cdaSZbigniew Bodek 	(0x0 << EC_GEN_EN_EXT_MEM_FOR_TEST_SHIFT)
120049b49cdaSZbigniew Bodek /* Enable MAC loop back (Rx --> Tx, after MAC layer) for 802 */
120149b49cdaSZbigniew Bodek #define EC_GEN_EN_EXT_MAC_LB             (1 << 4)
120249b49cdaSZbigniew Bodek /* CRC forward value for the MAC Tx when working in loopback mod ... */
120349b49cdaSZbigniew Bodek #define EC_GEN_EN_EXT_MAC_LB_CRC_FWD     (1 << 5)
120449b49cdaSZbigniew Bodek /* Ready signal configuration when in loopback mode:00 - Ready f ... */
120549b49cdaSZbigniew Bodek #define EC_GEN_EN_EXT_MAC_LB_READY_CFG_MASK 0x000000C0
120649b49cdaSZbigniew Bodek #define EC_GEN_EN_EXT_MAC_LB_READY_CFG_SHIFT 6
120749b49cdaSZbigniew Bodek /* Bypass the PTH completion update. */
120849b49cdaSZbigniew Bodek #define EC_GEN_EN_EXT_PTH_COMPLETION_BYPASS (1 << 16)
120949b49cdaSZbigniew Bodek /* Selection between the 1G and 10G MAC:
121049b49cdaSZbigniew Bodek 0 - 1G
121149b49cdaSZbigniew Bodek 1 - 10G */
121249b49cdaSZbigniew Bodek #define EC_GEN_EN_EXT_PTH_1_10_SEL       (1 << 17)
121349b49cdaSZbigniew Bodek /* avoid timestamping every pkt in 1G */
121449b49cdaSZbigniew Bodek #define EC_GEN_EN_EXT_PTH_CFG_1G_TIMESTAMP_OPT (1 << 18)
121549b49cdaSZbigniew Bodek /* Selection between descriptor caching options (WORD selection) ... */
121649b49cdaSZbigniew Bodek #define EC_GEN_EN_EXT_CACHE_WORD_SPLIT   (1 << 20)
121749b49cdaSZbigniew Bodek 
121849b49cdaSZbigniew Bodek /**** gen register ****/
121949b49cdaSZbigniew Bodek /* Enable swap of input byte order */
122049b49cdaSZbigniew Bodek #define EC_MAC_GEN_SWAP_IN_BYTE          (1 << 0)
122149b49cdaSZbigniew Bodek 
122249b49cdaSZbigniew Bodek /**** min_pkt register ****/
122349b49cdaSZbigniew Bodek /* Minimum packet size  */
122449b49cdaSZbigniew Bodek #define EC_MAC_MIN_PKT_SIZE_MASK         0x000FFFFF
122549b49cdaSZbigniew Bodek #define EC_MAC_MIN_PKT_SIZE_SHIFT        0
122649b49cdaSZbigniew Bodek 
122749b49cdaSZbigniew Bodek /**** max_pkt register ****/
122849b49cdaSZbigniew Bodek /* Maximum packet size  */
122949b49cdaSZbigniew Bodek #define EC_MAC_MAX_PKT_SIZE_MASK         0x000FFFFF
123049b49cdaSZbigniew Bodek #define EC_MAC_MAX_PKT_SIZE_SHIFT        0
123149b49cdaSZbigniew Bodek 
123249b49cdaSZbigniew Bodek /**** cfg_1 register ****/
123349b49cdaSZbigniew Bodek /* Drop packet at the ingress0 - Packets are not dropped at the  ... */
123449b49cdaSZbigniew Bodek #define EC_RXF_CFG_1_DROP_AT_INGRESS     (1 << 0)
123549b49cdaSZbigniew Bodek /* Accept packet criteria at start of packet indication */
123649b49cdaSZbigniew Bodek #define EC_RXF_CFG_1_SOP_ACCEPT          (1 << 1)
123749b49cdaSZbigniew Bodek /* Select the arbiter between Rx packets and Tx packets (packets ... */
123849b49cdaSZbigniew Bodek #define EC_RXF_CFG_1_ARB_SEL             (1 << 2)
123949b49cdaSZbigniew Bodek /* Arbiter priority when strict priority is selected in arb_sel0 ... */
124049b49cdaSZbigniew Bodek #define EC_RXF_CFG_1_ARB_P               (1 << 3)
124149b49cdaSZbigniew Bodek /* Force loopback operation */
124249b49cdaSZbigniew Bodek #define EC_RXF_CFG_1_FORCE_LB            (1 << 4)
124349b49cdaSZbigniew Bodek /* Forwarding selection between Rx path and/or packet analyzer */
124449b49cdaSZbigniew Bodek #define EC_RXF_CFG_1_FWD_SEL_MASK        0x00000300
124549b49cdaSZbigniew Bodek #define EC_RXF_CFG_1_FWD_SEL_SHIFT       8
124649b49cdaSZbigniew Bodek 
124749b49cdaSZbigniew Bodek /**** cfg_2 register ****/
124849b49cdaSZbigniew Bodek /* FIFO USED threshold for accepting new packets, low threshold  ... */
124949b49cdaSZbigniew Bodek #define EC_RXF_CFG_2_FIFO_USED_TH_L_MASK 0x0000FFFF
125049b49cdaSZbigniew Bodek #define EC_RXF_CFG_2_FIFO_USED_TH_L_SHIFT 0
125149b49cdaSZbigniew Bodek /* FIFO USED threshold for accepting new packets, high threshold ... */
125249b49cdaSZbigniew Bodek #define EC_RXF_CFG_2_FIFO_USED_TH_H_MASK 0xFFFF0000
125349b49cdaSZbigniew Bodek #define EC_RXF_CFG_2_FIFO_USED_TH_H_SHIFT 16
125449b49cdaSZbigniew Bodek 
125549b49cdaSZbigniew Bodek /**** rd_fifo register ****/
125649b49cdaSZbigniew Bodek /* Minimum number of entries in the data FIFO to start reading p ... */
125749b49cdaSZbigniew Bodek #define EC_RXF_RD_FIFO_TH_DATA_MASK      0x0000FFFF
125849b49cdaSZbigniew Bodek #define EC_RXF_RD_FIFO_TH_DATA_SHIFT     0
125949b49cdaSZbigniew Bodek /* Enable cut through operation */
126049b49cdaSZbigniew Bodek #define EC_RXF_RD_FIFO_EN_CUT_TH         (1 << 16)
126149b49cdaSZbigniew Bodek 
126249b49cdaSZbigniew Bodek /**** wr_fifo register ****/
126349b49cdaSZbigniew Bodek 
126449b49cdaSZbigniew Bodek #define EC_RXF_WR_FIFO_TH_DATA_MASK      0x0000FFFF
126549b49cdaSZbigniew Bodek #define EC_RXF_WR_FIFO_TH_DATA_SHIFT     0
126649b49cdaSZbigniew Bodek 
126749b49cdaSZbigniew Bodek #define EC_RXF_WR_FIFO_TH_INFO_MASK      0xFFFF0000
126849b49cdaSZbigniew Bodek #define EC_RXF_WR_FIFO_TH_INFO_SHIFT     16
126949b49cdaSZbigniew Bodek 
127049b49cdaSZbigniew Bodek /**** lb_fifo register ****/
127149b49cdaSZbigniew Bodek 
127249b49cdaSZbigniew Bodek #define EC_RXF_LB_FIFO_TH_DATA_MASK      0x0000FFFF
127349b49cdaSZbigniew Bodek #define EC_RXF_LB_FIFO_TH_DATA_SHIFT     0
127449b49cdaSZbigniew Bodek 
127549b49cdaSZbigniew Bodek #define EC_RXF_LB_FIFO_TH_INFO_MASK      0xFFFF0000
127649b49cdaSZbigniew Bodek #define EC_RXF_LB_FIFO_TH_INFO_SHIFT     16
127749b49cdaSZbigniew Bodek 
127849b49cdaSZbigniew Bodek /**** cfg_lb register ****/
127949b49cdaSZbigniew Bodek /* FIFO USED threshold for accepting new packets */
128049b49cdaSZbigniew Bodek #define EC_RXF_CFG_LB_FIFO_USED_TH_INT_MASK 0x0000FFFF
128149b49cdaSZbigniew Bodek #define EC_RXF_CFG_LB_FIFO_USED_TH_INT_SHIFT 0
128249b49cdaSZbigniew Bodek /* FIFO USED threshold for generating ready for the Tx path */
128349b49cdaSZbigniew Bodek #define EC_RXF_CFG_LB_FIFO_USED_TH_EXT_MASK 0xFFFF0000
128449b49cdaSZbigniew Bodek #define EC_RXF_CFG_LB_FIFO_USED_TH_EXT_SHIFT 16
128549b49cdaSZbigniew Bodek 
128649b49cdaSZbigniew Bodek /**** out_drop register ****/
128749b49cdaSZbigniew Bodek 
128849b49cdaSZbigniew Bodek #define EC_RXF_OUT_DROP_MAC_ERR          (1 << 0)
128949b49cdaSZbigniew Bodek 
129049b49cdaSZbigniew Bodek #define EC_RXF_OUT_DROP_MAC_COL          (1 << 1)
129149b49cdaSZbigniew Bodek 
129249b49cdaSZbigniew Bodek #define EC_RXF_OUT_DROP_MAC_DEC          (1 << 2)
129349b49cdaSZbigniew Bodek 
129449b49cdaSZbigniew Bodek #define EC_RXF_OUT_DROP_MAC_LEN          (1 << 3)
129549b49cdaSZbigniew Bodek 
129649b49cdaSZbigniew Bodek #define EC_RXF_OUT_DROP_MAC_PHY          (1 << 4)
129749b49cdaSZbigniew Bodek 
129849b49cdaSZbigniew Bodek #define EC_RXF_OUT_DROP_MAC_FIFO         (1 << 5)
129949b49cdaSZbigniew Bodek 
130049b49cdaSZbigniew Bodek #define EC_RXF_OUT_DROP_MAC_FCS          (1 << 6)
130149b49cdaSZbigniew Bodek 
130249b49cdaSZbigniew Bodek #define EC_RXF_OUT_DROP_MAC_ETYPE        (1 << 7)
130349b49cdaSZbigniew Bodek 
130449b49cdaSZbigniew Bodek #define EC_RXF_OUT_DROP_EC_LEN           (1 << 8)
130549b49cdaSZbigniew Bodek 
130649b49cdaSZbigniew Bodek #define EC_RXF_OUT_DROP_EC_FIFO          (1 << 9)
130749b49cdaSZbigniew Bodek 
130849b49cdaSZbigniew Bodek /**** parse_cfg register ****/
130949b49cdaSZbigniew Bodek /* MAX number of beats for packet parsing */
131049b49cdaSZbigniew Bodek #define EC_EPE_PARSE_CFG_MAX_BEATS_MASK  0x000000FF
131149b49cdaSZbigniew Bodek #define EC_EPE_PARSE_CFG_MAX_BEATS_SHIFT 0
131249b49cdaSZbigniew Bodek /* MAX number of parsing iterations for packet parsing */
131349b49cdaSZbigniew Bodek #define EC_EPE_PARSE_CFG_MAX_ITER_MASK   0x0000FF00
131449b49cdaSZbigniew Bodek #define EC_EPE_PARSE_CFG_MAX_ITER_SHIFT  8
131549b49cdaSZbigniew Bodek 
131649b49cdaSZbigniew Bodek /**** act_table_addr register ****/
131749b49cdaSZbigniew Bodek /* Address for accessing the table */
131849b49cdaSZbigniew Bodek #define EC_EPE_ACT_TABLE_ADDR_VAL_MASK   0x0000001F
131949b49cdaSZbigniew Bodek #define EC_EPE_ACT_TABLE_ADDR_VAL_SHIFT  0
132049b49cdaSZbigniew Bodek 
132149b49cdaSZbigniew Bodek /**** act_table_data_1 register ****/
132249b49cdaSZbigniew Bodek /* Table data[5:0] - Offset to next protocol [bytes][6] - Next p ... */
132349b49cdaSZbigniew Bodek #define EC_EPE_ACT_TABLE_DATA_1_VAL_MASK 0x03FFFFFF
132449b49cdaSZbigniew Bodek #define EC_EPE_ACT_TABLE_DATA_1_VAL_SHIFT 0
132549b49cdaSZbigniew Bodek 
132649b49cdaSZbigniew Bodek /**** act_table_data_2 register ****/
132749b49cdaSZbigniew Bodek /* Table Data [8:0] - Offset to data in the packet [bits][17:9]  ... */
132849b49cdaSZbigniew Bodek #define EC_EPE_ACT_TABLE_DATA_2_VAL_MASK 0x1FFFFFFF
132949b49cdaSZbigniew Bodek #define EC_EPE_ACT_TABLE_DATA_2_VAL_SHIFT 0
133049b49cdaSZbigniew Bodek 
133149b49cdaSZbigniew Bodek /**** act_table_data_3 register ****/
133249b49cdaSZbigniew Bodek /* Table Data  [8:0] - Offset to data in the packet [bits] [17:9 ... */
133349b49cdaSZbigniew Bodek #define EC_EPE_ACT_TABLE_DATA_3_VAL_MASK 0x1FFFFFFF
133449b49cdaSZbigniew Bodek #define EC_EPE_ACT_TABLE_DATA_3_VAL_SHIFT 0
133549b49cdaSZbigniew Bodek 
133649b49cdaSZbigniew Bodek /**** act_table_data_4 register ****/
133749b49cdaSZbigniew Bodek /* Table data[7:0] - Offset to header length location in the pac ... */
133849b49cdaSZbigniew Bodek #define EC_EPE_ACT_TABLE_DATA_4_VAL_MASK 0x0FFFFFFF
133949b49cdaSZbigniew Bodek #define EC_EPE_ACT_TABLE_DATA_4_VAL_SHIFT 0
134049b49cdaSZbigniew Bodek 
134149b49cdaSZbigniew Bodek /**** act_table_data_6 register ****/
134249b49cdaSZbigniew Bodek /* Table data[0] - WR header length[10:1] - Write header length  ... */
134349b49cdaSZbigniew Bodek #define EC_EPE_ACT_TABLE_DATA_6_VAL_MASK 0x007FFFFF
134449b49cdaSZbigniew Bodek #define EC_EPE_ACT_TABLE_DATA_6_VAL_SHIFT 0
134549b49cdaSZbigniew Bodek 
134649b49cdaSZbigniew Bodek /**** res_in register ****/
134749b49cdaSZbigniew Bodek /* Selector for input parse_en0 - Input vector1 - Default value  ... */
134849b49cdaSZbigniew Bodek #define EC_EPE_RES_IN_SEL_PARSE_EN       (1 << 0)
134949b49cdaSZbigniew Bodek /* Selector for input protocol_index 0 - Input vector 1 - Defaul ... */
135049b49cdaSZbigniew Bodek #define EC_EPE_RES_IN_SEL_PROT_INDEX     (1 << 1)
135149b49cdaSZbigniew Bodek /* Selector for input hdr_offset 0 - Input vector 1 - Default va ... */
135249b49cdaSZbigniew Bodek #define EC_EPE_RES_IN_SEL_HDR_OFFSET     (1 << 2)
135349b49cdaSZbigniew Bodek 
135449b49cdaSZbigniew Bodek /**** p1 register ****/
135549b49cdaSZbigniew Bodek /* Location of the input protocol index in the parser result vec ... */
135649b49cdaSZbigniew Bodek #define EC_EPE_RES_P1_IN_PROT_INDEX_MASK 0x000003FF
135749b49cdaSZbigniew Bodek #define EC_EPE_RES_P1_IN_PROT_INDEX_SHIFT 0
135849b49cdaSZbigniew Bodek 
135949b49cdaSZbigniew Bodek /**** p2 register ****/
136049b49cdaSZbigniew Bodek /* Location of the input offset in the parser result vector */
136149b49cdaSZbigniew Bodek #define EC_EPE_RES_P2_IN_OFFSET_MASK     0x000003FF
136249b49cdaSZbigniew Bodek #define EC_EPE_RES_P2_IN_OFFSET_SHIFT    0
136349b49cdaSZbigniew Bodek 
136449b49cdaSZbigniew Bodek /**** p3 register ****/
136549b49cdaSZbigniew Bodek /* Location of the input parse enable in the parser result vecto ... */
136649b49cdaSZbigniew Bodek #define EC_EPE_RES_P3_IN_PARSE_EN_MASK   0x000003FF
136749b49cdaSZbigniew Bodek #define EC_EPE_RES_P3_IN_PARSE_EN_SHIFT  0
136849b49cdaSZbigniew Bodek 
136949b49cdaSZbigniew Bodek /**** p4 register ****/
137049b49cdaSZbigniew Bodek /* Location of the control bits in the parser result vector */
137149b49cdaSZbigniew Bodek #define EC_EPE_RES_P4_CTRL_BITS_MASK     0x000003FF
137249b49cdaSZbigniew Bodek #define EC_EPE_RES_P4_CTRL_BITS_SHIFT    0
137349b49cdaSZbigniew Bodek 
137449b49cdaSZbigniew Bodek /**** p5 register ****/
137549b49cdaSZbigniew Bodek /* Location of the MAC DA in the parser result vector */
137649b49cdaSZbigniew Bodek #define EC_EPE_RES_P5_DA_MASK            0x000003FF
137749b49cdaSZbigniew Bodek #define EC_EPE_RES_P5_DA_SHIFT           0
137849b49cdaSZbigniew Bodek 
137949b49cdaSZbigniew Bodek /**** p6 register ****/
138049b49cdaSZbigniew Bodek /* Location of the MAC SA in the parser result vector */
138149b49cdaSZbigniew Bodek #define EC_EPE_RES_P6_SA_MASK            0x000003FF
138249b49cdaSZbigniew Bodek #define EC_EPE_RES_P6_SA_SHIFT           0
138349b49cdaSZbigniew Bodek 
138449b49cdaSZbigniew Bodek /**** p7 register ****/
138549b49cdaSZbigniew Bodek /* Location of the first VLAN in the parser result vector */
138649b49cdaSZbigniew Bodek #define EC_EPE_RES_P7_VLAN_1_MASK        0x000003FF
138749b49cdaSZbigniew Bodek #define EC_EPE_RES_P7_VLAN_1_SHIFT       0
138849b49cdaSZbigniew Bodek 
138949b49cdaSZbigniew Bodek /**** p8 register ****/
139049b49cdaSZbigniew Bodek /* Location of the second VLAN in the parser result vector */
139149b49cdaSZbigniew Bodek #define EC_EPE_RES_P8_VLAN_2_MASK        0x000003FF
139249b49cdaSZbigniew Bodek #define EC_EPE_RES_P8_VLAN_2_SHIFT       0
139349b49cdaSZbigniew Bodek 
139449b49cdaSZbigniew Bodek /**** p9 register ****/
139549b49cdaSZbigniew Bodek /* Location of the L3 protocol index in the parser result vector ... */
139649b49cdaSZbigniew Bodek #define EC_EPE_RES_P9_L3_PROT_INDEX_MASK 0x000003FF
139749b49cdaSZbigniew Bodek #define EC_EPE_RES_P9_L3_PROT_INDEX_SHIFT 0
139849b49cdaSZbigniew Bodek 
139949b49cdaSZbigniew Bodek /**** p10 register ****/
140049b49cdaSZbigniew Bodek /* Location of the L3 offset in the parser result vector */
140149b49cdaSZbigniew Bodek #define EC_EPE_RES_P10_L3_OFFSET_MASK    0x000003FF
140249b49cdaSZbigniew Bodek #define EC_EPE_RES_P10_L3_OFFSET_SHIFT   0
140349b49cdaSZbigniew Bodek 
140449b49cdaSZbigniew Bodek /**** p11 register ****/
140549b49cdaSZbigniew Bodek /* Location of the L3 SIP in the parser result vector */
140649b49cdaSZbigniew Bodek #define EC_EPE_RES_P11_L3_SIP_MASK       0x000003FF
140749b49cdaSZbigniew Bodek #define EC_EPE_RES_P11_L3_SIP_SHIFT      0
140849b49cdaSZbigniew Bodek 
140949b49cdaSZbigniew Bodek /**** p12 register ****/
141049b49cdaSZbigniew Bodek /* Location of the L3 DIP in the parser result vector */
141149b49cdaSZbigniew Bodek #define EC_EPE_RES_P12_L3_DIP_MASK       0x000003FF
141249b49cdaSZbigniew Bodek #define EC_EPE_RES_P12_L3_DIP_SHIFT      0
141349b49cdaSZbigniew Bodek 
141449b49cdaSZbigniew Bodek /**** p13 register ****/
141549b49cdaSZbigniew Bodek /* Location of the L3 priority in the parser result vector */
141649b49cdaSZbigniew Bodek #define EC_EPE_RES_P13_L3_PRIORITY_MASK  0x000003FF
141749b49cdaSZbigniew Bodek #define EC_EPE_RES_P13_L3_PRIORITY_SHIFT 0
141849b49cdaSZbigniew Bodek 
141949b49cdaSZbigniew Bodek /**** p14 register ****/
142049b49cdaSZbigniew Bodek /* Location of the L3 header length in the parser result vector */
142149b49cdaSZbigniew Bodek #define EC_EPE_RES_P14_L3_HDR_LEN_MASK   0x000003FF
142249b49cdaSZbigniew Bodek #define EC_EPE_RES_P14_L3_HDR_LEN_SHIFT  0
142349b49cdaSZbigniew Bodek 
142449b49cdaSZbigniew Bodek /**** p15 register ****/
142549b49cdaSZbigniew Bodek /* Location of the L4 protocol index in the parser result vector ... */
142649b49cdaSZbigniew Bodek #define EC_EPE_RES_P15_L4_PROT_INDEX_MASK 0x000003FF
142749b49cdaSZbigniew Bodek #define EC_EPE_RES_P15_L4_PROT_INDEX_SHIFT 0
142849b49cdaSZbigniew Bodek 
142949b49cdaSZbigniew Bodek /**** p16 register ****/
143049b49cdaSZbigniew Bodek /* Location of the L4 source port in the parser result vector */
143149b49cdaSZbigniew Bodek #define EC_EPE_RES_P16_L4_SRC_PORT_MASK  0x000003FF
143249b49cdaSZbigniew Bodek #define EC_EPE_RES_P16_L4_SRC_PORT_SHIFT 0
143349b49cdaSZbigniew Bodek 
143449b49cdaSZbigniew Bodek /**** p17 register ****/
143549b49cdaSZbigniew Bodek /* Location of the L4 destination port in the parser result vect ... */
143649b49cdaSZbigniew Bodek #define EC_EPE_RES_P17_L4_DST_PORT_MASK  0x000003FF
143749b49cdaSZbigniew Bodek #define EC_EPE_RES_P17_L4_DST_PORT_SHIFT 0
143849b49cdaSZbigniew Bodek 
143949b49cdaSZbigniew Bodek /**** p18 register ****/
144049b49cdaSZbigniew Bodek /* Location of the L4 offset in the parser result vector */
144149b49cdaSZbigniew Bodek #define EC_EPE_RES_P18_L4_OFFSET_MASK    0x000003FF
144249b49cdaSZbigniew Bodek #define EC_EPE_RES_P18_L4_OFFSET_SHIFT   0
144349b49cdaSZbigniew Bodek 
144449b49cdaSZbigniew Bodek /**** p19 register ****/
144549b49cdaSZbigniew Bodek /* Location of the Ether type in the parser result vector when w ... */
144649b49cdaSZbigniew Bodek #define EC_EPE_RES_P19_WOL_ETYPE_MASK    0x000003FF
144749b49cdaSZbigniew Bodek #define EC_EPE_RES_P19_WOL_ETYPE_SHIFT   0
144849b49cdaSZbigniew Bodek 
144949b49cdaSZbigniew Bodek /**** p20 register ****/
145049b49cdaSZbigniew Bodek /* Location of the RoCE QP number field in the parser result vec ... */
145149b49cdaSZbigniew Bodek #define EC_EPE_RES_P20_ROCE_QPN_MASK     0x000003FF
145249b49cdaSZbigniew Bodek #define EC_EPE_RES_P20_ROCE_QPN_SHIFT    0
145349b49cdaSZbigniew Bodek 
145449b49cdaSZbigniew Bodek /**** hdr_len register ****/
145549b49cdaSZbigniew Bodek /* Value for selecting table 1 */
145649b49cdaSZbigniew Bodek #define EC_EPE_H_HDR_LEN_TABLE_1_MASK    0x000000FF
145749b49cdaSZbigniew Bodek #define EC_EPE_H_HDR_LEN_TABLE_1_SHIFT   0
145849b49cdaSZbigniew Bodek /* Value for selecting table 2 */
145949b49cdaSZbigniew Bodek #define EC_EPE_H_HDR_LEN_TABLE_2_MASK    0x00FF0000
146049b49cdaSZbigniew Bodek #define EC_EPE_H_HDR_LEN_TABLE_2_SHIFT   16
146149b49cdaSZbigniew Bodek 
146249b49cdaSZbigniew Bodek /**** comp_data register ****/
146349b49cdaSZbigniew Bodek /* Data 1 for comparison */
146449b49cdaSZbigniew Bodek #define EC_EPE_P_COMP_DATA_DATA_1_MASK   0x0000FFFF
146549b49cdaSZbigniew Bodek #define EC_EPE_P_COMP_DATA_DATA_1_SHIFT  0
146649b49cdaSZbigniew Bodek /* Data 2 for comparison
146749b49cdaSZbigniew Bodek [18:16] - Stage
146849b49cdaSZbigniew Bodek [24:19] - Branch ID */
146949b49cdaSZbigniew Bodek #define EC_EPE_P_COMP_DATA_DATA_2_MASK   0x01FF0000
147049b49cdaSZbigniew Bodek #define EC_EPE_P_COMP_DATA_DATA_2_SHIFT  16
147149b49cdaSZbigniew Bodek 
147249b49cdaSZbigniew Bodek /**** comp_mask register ****/
147349b49cdaSZbigniew Bodek /* Data 1 for comparison */
147449b49cdaSZbigniew Bodek #define EC_EPE_P_COMP_MASK_DATA_1_MASK   0x0000FFFF
147549b49cdaSZbigniew Bodek #define EC_EPE_P_COMP_MASK_DATA_1_SHIFT  0
147649b49cdaSZbigniew Bodek /* Data 2 for comparison
147749b49cdaSZbigniew Bodek [18:16] - Stage
147849b49cdaSZbigniew Bodek [24:19] - Branch ID */
147949b49cdaSZbigniew Bodek #define EC_EPE_P_COMP_MASK_DATA_2_MASK   0x01FF0000
148049b49cdaSZbigniew Bodek #define EC_EPE_P_COMP_MASK_DATA_2_SHIFT  16
148149b49cdaSZbigniew Bodek 
148249b49cdaSZbigniew Bodek /**** comp_ctrl register ****/
148349b49cdaSZbigniew Bodek /* Output result value */
148449b49cdaSZbigniew Bodek #define EC_EPE_P_COMP_CTRL_RES_MASK      0x0000001F
148549b49cdaSZbigniew Bodek #define EC_EPE_P_COMP_CTRL_RES_SHIFT     0
148649b49cdaSZbigniew Bodek /* Compare command for the data_1 field00 - Compare01 - <=10 - > ... */
148749b49cdaSZbigniew Bodek #define EC_EPE_P_COMP_CTRL_CMD_1_MASK    0x00030000
148849b49cdaSZbigniew Bodek #define EC_EPE_P_COMP_CTRL_CMD_1_SHIFT   16
148949b49cdaSZbigniew Bodek /* Compare command for the data_2 field 00 - Compare 01 - <= 10  ... */
149049b49cdaSZbigniew Bodek #define EC_EPE_P_COMP_CTRL_CMD_2_MASK    0x000C0000
149149b49cdaSZbigniew Bodek #define EC_EPE_P_COMP_CTRL_CMD_2_SHIFT   18
149249b49cdaSZbigniew Bodek /* Entry is valid */
149349b49cdaSZbigniew Bodek #define EC_EPE_P_COMP_CTRL_VALID         (1 << 31)
149449b49cdaSZbigniew Bodek 
149549b49cdaSZbigniew Bodek /**** prot_act register ****/
149649b49cdaSZbigniew Bodek /* Drop indication for the selected protocol index */
149749b49cdaSZbigniew Bodek #define EC_EPE_A_PROT_ACT_DROP           (1 << 0)
149849b49cdaSZbigniew Bodek /* Mapping value Used when mapping the entire protocol index ran ... */
149949b49cdaSZbigniew Bodek #define EC_EPE_A_PROT_ACT_MAP_MASK       0x00000F00
150049b49cdaSZbigniew Bodek #define EC_EPE_A_PROT_ACT_MAP_SHIFT      8
150149b49cdaSZbigniew Bodek 
150249b49cdaSZbigniew Bodek /**** thash_cfg_1 register ****/
150349b49cdaSZbigniew Bodek /* Hash function output selection:000 - [7:0]001 - [15:8]010 - [ ... */
150449b49cdaSZbigniew Bodek #define EC_RFW_THASH_CFG_1_OUT_SEL_MASK  0x00000007
150549b49cdaSZbigniew Bodek #define EC_RFW_THASH_CFG_1_OUT_SEL_SHIFT 0
150649b49cdaSZbigniew Bodek /* Selects between hash functions00 - toeplitz01 - CRC-3210 - 0x ... */
150749b49cdaSZbigniew Bodek #define EC_RFW_THASH_CFG_1_FUNC_SEL_MASK 0x00000300
150849b49cdaSZbigniew Bodek #define EC_RFW_THASH_CFG_1_FUNC_SEL_SHIFT 8
150949b49cdaSZbigniew Bodek /* Enable SIP/DIP swap if SIP<DIP */
151049b49cdaSZbigniew Bodek #define EC_RFW_THASH_CFG_1_ENABLE_IP_SWAP (1 << 16)
151149b49cdaSZbigniew Bodek /* Enable PORT swap if SPORT<DPORT */
151249b49cdaSZbigniew Bodek #define EC_RFW_THASH_CFG_1_ENABLE_PORT_SWAP (1 << 17)
151349b49cdaSZbigniew Bodek 
151449b49cdaSZbigniew Bodek /**** mhash_cfg_1 register ****/
151549b49cdaSZbigniew Bodek /* Hash function output selection:000 - [7:0]001 - [15:8]010 - [ ... */
151649b49cdaSZbigniew Bodek #define EC_RFW_MHASH_CFG_1_OUT_SEL_MASK  0x00000007
151749b49cdaSZbigniew Bodek #define EC_RFW_MHASH_CFG_1_OUT_SEL_SHIFT 0
151849b49cdaSZbigniew Bodek /* Selects the input to the MAC hash function0 - DA1 - DA + SA ... */
151949b49cdaSZbigniew Bodek #define EC_RFW_MHASH_CFG_1_INPUT_SEL     (1 << 4)
152049b49cdaSZbigniew Bodek /* Selects between hash functions00 - toeplitz01 - CRC-3210 - 0x ... */
152149b49cdaSZbigniew Bodek #define EC_RFW_MHASH_CFG_1_FUNC_SEL_MASK 0x00000300
152249b49cdaSZbigniew Bodek #define EC_RFW_MHASH_CFG_1_FUNC_SEL_SHIFT 8
152349b49cdaSZbigniew Bodek 
152449b49cdaSZbigniew Bodek /**** hdr_split register ****/
152549b49cdaSZbigniew Bodek /* Default header length for header split */
152649b49cdaSZbigniew Bodek #define EC_RFW_HDR_SPLIT_DEF_LEN_MASK    0x0000FFFF
152749b49cdaSZbigniew Bodek #define EC_RFW_HDR_SPLIT_DEF_LEN_SHIFT   0
152849b49cdaSZbigniew Bodek /* Enable header split operation */
152949b49cdaSZbigniew Bodek #define EC_RFW_HDR_SPLIT_EN              (1 << 16)
153049b49cdaSZbigniew Bodek 
153149b49cdaSZbigniew Bodek /**** meta_err register ****/
153249b49cdaSZbigniew Bodek /* Mask for error 1 in the Rx descriptor */
153349b49cdaSZbigniew Bodek #define EC_RFW_META_ERR_MASK_1_MASK      0x000003FF
153449b49cdaSZbigniew Bodek #define EC_RFW_META_ERR_MASK_1_SHIFT     0
153549b49cdaSZbigniew Bodek /* Mask for error 2 in the Rx descriptor */
153649b49cdaSZbigniew Bodek #define EC_RFW_META_ERR_MASK_2_MASK      0x03FF0000
153749b49cdaSZbigniew Bodek #define EC_RFW_META_ERR_MASK_2_SHIFT     16
153849b49cdaSZbigniew Bodek 
153949b49cdaSZbigniew Bodek /**** meta register ****/
154049b49cdaSZbigniew Bodek /* Selection of the L3 offset source: 1 - Inner packet 0 - Outer ... */
154149b49cdaSZbigniew Bodek #define EC_RFW_META_L3_LEN_SEL           (1 << 0)
154249b49cdaSZbigniew Bodek /* Selection of the L3 offset source:1 - Inner packet0 - Outer p ... */
154349b49cdaSZbigniew Bodek #define EC_RFW_META_L3_OFFSET_SEL        (1 << 1)
154449b49cdaSZbigniew Bodek /* Selection of the l3 protocol index source: 1 - Inner packet 0 ... */
154549b49cdaSZbigniew Bodek #define EC_RFW_META_L3_PROT_SEL          (1 << 2)
154649b49cdaSZbigniew Bodek /* Selection of the l4 protocol index source:  1 - Inner packet  ... */
154749b49cdaSZbigniew Bodek #define EC_RFW_META_L4_PROT_SEL          (1 << 3)
154849b49cdaSZbigniew Bodek /* Selects how to calculate the L3 header length when L3 is IpPv ... */
154949b49cdaSZbigniew Bodek #define EC_RFW_META_L3_LEN_CALC          (1 << 4)
155049b49cdaSZbigniew Bodek /* Selection of the IPv4 fragment indication source:  1 - Inner  ... */
155149b49cdaSZbigniew Bodek #define EC_RFW_META_FRAG_SEL             (1 << 5)
155249b49cdaSZbigniew Bodek /* Selection of the L4 offset source:1 - Inner packet0 - Outer p ... */
155349b49cdaSZbigniew Bodek #define EC_RFW_META_L4_OFFSET_SEL        (1 << 6)
155449b49cdaSZbigniew Bodek 
155549b49cdaSZbigniew Bodek /**** filter register ****/
155649b49cdaSZbigniew Bodek /* Filter undetected MAC DA */
155749b49cdaSZbigniew Bodek #define EC_RFW_FILTER_UNDET_MAC          (1 << 0)
155849b49cdaSZbigniew Bodek /* Filter specific MAC DA based on MAC table output. */
155949b49cdaSZbigniew Bodek #define EC_RFW_FILTER_DET_MAC            (1 << 1)
156049b49cdaSZbigniew Bodek /* Filter all tagged. */
156149b49cdaSZbigniew Bodek #define EC_RFW_FILTER_TAGGED             (1 << 2)
156249b49cdaSZbigniew Bodek /* Filter all untagged. */
156349b49cdaSZbigniew Bodek #define EC_RFW_FILTER_UNTAGGED           (1 << 3)
156449b49cdaSZbigniew Bodek /* Filter all broadcast. */
156549b49cdaSZbigniew Bodek #define EC_RFW_FILTER_BC                 (1 << 4)
156649b49cdaSZbigniew Bodek /* Filter all multicast. */
156749b49cdaSZbigniew Bodek #define EC_RFW_FILTER_MC                 (1 << 5)
156849b49cdaSZbigniew Bodek /* Filter based on parsing output (used to drop selected protoco ... */
156949b49cdaSZbigniew Bodek #define EC_RFW_FILTER_PARSE              (1 << 6)
157049b49cdaSZbigniew Bodek /* Filter packet based on VLAN table output. */
157149b49cdaSZbigniew Bodek #define EC_RFW_FILTER_VLAN_VID           (1 << 7)
157249b49cdaSZbigniew Bodek /* Filter packet based on control table output. */
157349b49cdaSZbigniew Bodek #define EC_RFW_FILTER_CTRL_TABLE         (1 << 8)
157449b49cdaSZbigniew Bodek /* Filter packet based on protocol index action register. */
157549b49cdaSZbigniew Bodek #define EC_RFW_FILTER_PROT_INDEX         (1 << 9)
157649b49cdaSZbigniew Bodek /* Filter packet based on WoL decision */
157749b49cdaSZbigniew Bodek #define EC_RFW_FILTER_WOL                (1 << 10)
157849b49cdaSZbigniew Bodek /* Override filter decision and forward to default UDMA/queue;dr ... */
157949b49cdaSZbigniew Bodek #define EC_RFW_FILTER_OR_UNDET_MAC       (1 << 16)
158049b49cdaSZbigniew Bodek /* Override filter decision and forward to default UDMA/queue;Dr ... */
158149b49cdaSZbigniew Bodek #define EC_RFW_FILTER_OR_DET_MAC         (1 << 17)
158249b49cdaSZbigniew Bodek /* Override filter decision and forward to default UDMA/queue;Dr ... */
158349b49cdaSZbigniew Bodek #define EC_RFW_FILTER_OR_TAGGED          (1 << 18)
158449b49cdaSZbigniew Bodek /* Override filter decision and forward to default UDMA/queue;Dr ... */
158549b49cdaSZbigniew Bodek #define EC_RFW_FILTER_OR_UNTAGGED        (1 << 19)
158649b49cdaSZbigniew Bodek /* Override filter decision and forward to default UDMA/queue;Dr ... */
158749b49cdaSZbigniew Bodek #define EC_RFW_FILTER_OR_BC              (1 << 20)
158849b49cdaSZbigniew Bodek /* Override filter decision and forward to default UDMA/queue;Dr ... */
158949b49cdaSZbigniew Bodek #define EC_RFW_FILTER_OR_MC              (1 << 21)
159049b49cdaSZbigniew Bodek /* Override filter decision and forward to default UDMA/queue;Dr ... */
159149b49cdaSZbigniew Bodek #define EC_RFW_FILTER_OR_PARSE           (1 << 22)
159249b49cdaSZbigniew Bodek /* Override filter decision and forward to default UDMA/queue;Dr ... */
159349b49cdaSZbigniew Bodek #define EC_RFW_FILTER_OR_VLAN_VID        (1 << 23)
159449b49cdaSZbigniew Bodek /* Override filter decision and forward to default UDMA/queue;Dr ... */
159549b49cdaSZbigniew Bodek #define EC_RFW_FILTER_OR_CTRL_TABLE      (1 << 24)
159649b49cdaSZbigniew Bodek /* Override filter decision and forward to default UDMA/queue;Dr ... */
159749b49cdaSZbigniew Bodek #define EC_RFW_FILTER_OR_PROT_INDEX      (1 << 25)
159849b49cdaSZbigniew Bodek /* Override filter decision and forward to default UDMA/queue;Dr ... */
159949b49cdaSZbigniew Bodek #define EC_RFW_FILTER_OR_WOL             (1 << 26)
160049b49cdaSZbigniew Bodek 
160149b49cdaSZbigniew Bodek /**** thash_table_addr register ****/
160249b49cdaSZbigniew Bodek /* Address for accessing the table */
160349b49cdaSZbigniew Bodek #define EC_RFW_THASH_TABLE_ADDR_VAL_MASK 0x000000FF
160449b49cdaSZbigniew Bodek #define EC_RFW_THASH_TABLE_ADDR_VAL_SHIFT 0
160549b49cdaSZbigniew Bodek 
160649b49cdaSZbigniew Bodek /**** thash_table_data register ****/
160749b49cdaSZbigniew Bodek /* Table data (valid only after configuring the table address re ... */
160849b49cdaSZbigniew Bodek #define EC_RFW_THASH_TABLE_DATA_VAL_MASK 0x00003FFF
160949b49cdaSZbigniew Bodek #define EC_RFW_THASH_TABLE_DATA_VAL_SHIFT 0
161049b49cdaSZbigniew Bodek 
161149b49cdaSZbigniew Bodek /**** mhash_table_addr register ****/
161249b49cdaSZbigniew Bodek /* Address for accessing the table */
161349b49cdaSZbigniew Bodek #define EC_RFW_MHASH_TABLE_ADDR_VAL_MASK 0x000000FF
161449b49cdaSZbigniew Bodek #define EC_RFW_MHASH_TABLE_ADDR_VAL_SHIFT 0
161549b49cdaSZbigniew Bodek 
161649b49cdaSZbigniew Bodek /**** mhash_table_data register ****/
161749b49cdaSZbigniew Bodek /* Table data (valid only after configuring the table address re ... */
161849b49cdaSZbigniew Bodek #define EC_RFW_MHASH_TABLE_DATA_VAL_MASK 0x0000003F
161949b49cdaSZbigniew Bodek #define EC_RFW_MHASH_TABLE_DATA_VAL_SHIFT 0
162049b49cdaSZbigniew Bodek 
162149b49cdaSZbigniew Bodek /**** vid_table_addr register ****/
162249b49cdaSZbigniew Bodek /* Address for accessing the table */
162349b49cdaSZbigniew Bodek #define EC_RFW_VID_TABLE_ADDR_VAL_MASK   0x00000FFF
162449b49cdaSZbigniew Bodek #define EC_RFW_VID_TABLE_ADDR_VAL_SHIFT  0
162549b49cdaSZbigniew Bodek 
162649b49cdaSZbigniew Bodek /**** vid_table_data register ****/
162749b49cdaSZbigniew Bodek /* Table data (valid only after configuring the table address re ... */
162849b49cdaSZbigniew Bodek #define EC_RFW_VID_TABLE_DATA_VAL_MASK   0x0000003F
162949b49cdaSZbigniew Bodek #define EC_RFW_VID_TABLE_DATA_VAL_SHIFT  0
163049b49cdaSZbigniew Bodek 
163149b49cdaSZbigniew Bodek /**** pbits_table_addr register ****/
163249b49cdaSZbigniew Bodek /* Address for accessing the table */
163349b49cdaSZbigniew Bodek #define EC_RFW_PBITS_TABLE_ADDR_VAL_MASK 0x00000007
163449b49cdaSZbigniew Bodek #define EC_RFW_PBITS_TABLE_ADDR_VAL_SHIFT 0
163549b49cdaSZbigniew Bodek 
163649b49cdaSZbigniew Bodek /**** pbits_table_data register ****/
163749b49cdaSZbigniew Bodek /* VLAN P-bits to internal priority mapping */
163849b49cdaSZbigniew Bodek #define EC_RFW_PBITS_TABLE_DATA_VAL_MASK 0x00000007
163949b49cdaSZbigniew Bodek #define EC_RFW_PBITS_TABLE_DATA_VAL_SHIFT 0
164049b49cdaSZbigniew Bodek 
164149b49cdaSZbigniew Bodek /**** dscp_table_addr register ****/
164249b49cdaSZbigniew Bodek /* Address for accessing the table */
164349b49cdaSZbigniew Bodek #define EC_RFW_DSCP_TABLE_ADDR_VAL_MASK  0x000000FF
164449b49cdaSZbigniew Bodek #define EC_RFW_DSCP_TABLE_ADDR_VAL_SHIFT 0
164549b49cdaSZbigniew Bodek 
164649b49cdaSZbigniew Bodek /**** dscp_table_data register ****/
164749b49cdaSZbigniew Bodek /* IPv4 DSCP to internal priority mapping */
164849b49cdaSZbigniew Bodek #define EC_RFW_DSCP_TABLE_DATA_VAL_MASK  0x00000007
164949b49cdaSZbigniew Bodek #define EC_RFW_DSCP_TABLE_DATA_VAL_SHIFT 0
165049b49cdaSZbigniew Bodek 
165149b49cdaSZbigniew Bodek /**** tc_table_addr register ****/
165249b49cdaSZbigniew Bodek /* Address for accessing the table */
165349b49cdaSZbigniew Bodek #define EC_RFW_TC_TABLE_ADDR_VAL_MASK    0x000000FF
165449b49cdaSZbigniew Bodek #define EC_RFW_TC_TABLE_ADDR_VAL_SHIFT   0
165549b49cdaSZbigniew Bodek 
165649b49cdaSZbigniew Bodek /**** tc_table_data register ****/
165749b49cdaSZbigniew Bodek /* IPv6 TC to internal priority mapping */
165849b49cdaSZbigniew Bodek #define EC_RFW_TC_TABLE_DATA_VAL_MASK    0x00000007
165949b49cdaSZbigniew Bodek #define EC_RFW_TC_TABLE_DATA_VAL_SHIFT   0
166049b49cdaSZbigniew Bodek 
166149b49cdaSZbigniew Bodek /**** ctrl_table_addr register ****/
166249b49cdaSZbigniew Bodek /* Address for accessing the table[0] - VLAN table control out[1 ... */
166349b49cdaSZbigniew Bodek #define EC_RFW_CTRL_TABLE_ADDR_VAL_MASK  0x000007FF
166449b49cdaSZbigniew Bodek #define EC_RFW_CTRL_TABLE_ADDR_VAL_SHIFT 0
166549b49cdaSZbigniew Bodek 
166649b49cdaSZbigniew Bodek /**** ctrl_table_data register ****/
166749b49cdaSZbigniew Bodek /* Control table output for selecting the forwarding MUXs[3:0] - ... */
166849b49cdaSZbigniew Bodek #define EC_RFW_CTRL_TABLE_DATA_VAL_MASK  0x000FFFFF
166949b49cdaSZbigniew Bodek #define EC_RFW_CTRL_TABLE_DATA_VAL_SHIFT 0
167049b49cdaSZbigniew Bodek 
167149b49cdaSZbigniew Bodek /**** out_cfg register ****/
167249b49cdaSZbigniew Bodek /* Number of MetaData at the end of the packet1 - One MetaData b ... */
167349b49cdaSZbigniew Bodek #define EC_RFW_OUT_CFG_META_CNT_MASK     0x00000003
167449b49cdaSZbigniew Bodek #define EC_RFW_OUT_CFG_META_CNT_SHIFT    0
167549b49cdaSZbigniew Bodek /* Enable packet drop */
167649b49cdaSZbigniew Bodek #define EC_RFW_OUT_CFG_DROP_EN           (1 << 2)
167749b49cdaSZbigniew Bodek /* Swap output byte order */
167849b49cdaSZbigniew Bodek #define EC_RFW_OUT_CFG_SWAP_OUT_BYTE     (1 << 3)
167949b49cdaSZbigniew Bodek /* Enable the insertion of the MACsec decoding result into the M ... */
168049b49cdaSZbigniew Bodek #define EC_RFW_OUT_CFG_EN_MACSEC_DEC     (1 << 4)
168149b49cdaSZbigniew Bodek /* Sample time of the time stamp:0 - SOP (for 10G MAC)1 - EOP (f ... */
168249b49cdaSZbigniew Bodek #define EC_RFW_OUT_CFG_TIMESTAMP_SAMPLE  (1 << 5)
168349b49cdaSZbigniew Bodek /* Determines which queue to write into the packet header0 - Ori ... */
168449b49cdaSZbigniew Bodek #define EC_RFW_OUT_CFG_QUEUE_OR_SEL   (1 << 6)
168549b49cdaSZbigniew Bodek /* Determines the logic of the drop indication:0 - Sample the dr ... */
168649b49cdaSZbigniew Bodek #define EC_RFW_OUT_CFG_DROP_LOGIC_SEL (1 << 7)
168749b49cdaSZbigniew Bodek /* Determines the logic of the drop indication:0 - Sample the dr ... */
168849b49cdaSZbigniew Bodek #define EC_RFW_OUT_CFG_PKT_TYPE_DEF   (1 << 8)
168949b49cdaSZbigniew Bodek 
169049b49cdaSZbigniew Bodek /**** fsm_table_addr register ****/
169149b49cdaSZbigniew Bodek /* Address for accessing the table :[2:0] - Outer header control ... */
169249b49cdaSZbigniew Bodek #define EC_RFW_FSM_TABLE_ADDR_VAL_MASK   0x0000007F
169349b49cdaSZbigniew Bodek #define EC_RFW_FSM_TABLE_ADDR_VAL_SHIFT  0
169449b49cdaSZbigniew Bodek 
169549b49cdaSZbigniew Bodek /**** fsm_table_data register ****/
169649b49cdaSZbigniew Bodek /* Flow steering mechanism output selectors:[1:0] - Input select ... */
169749b49cdaSZbigniew Bodek #define EC_RFW_FSM_TABLE_DATA_VAL_MASK   0x00000007
169849b49cdaSZbigniew Bodek #define EC_RFW_FSM_TABLE_DATA_VAL_SHIFT  0
169949b49cdaSZbigniew Bodek 
170049b49cdaSZbigniew Bodek /**** ctrl_sel register ****/
170149b49cdaSZbigniew Bodek /* Packet type (UC/MC/BC) for the control table */
170249b49cdaSZbigniew Bodek #define EC_RFW_CTRL_SEL_PKT_TYPE         (1 << 0)
170349b49cdaSZbigniew Bodek /* L3 protocol index for the control table */
170449b49cdaSZbigniew Bodek #define EC_RFW_CTRL_SEL_L3_PROTOCOL      (1 << 1)
170549b49cdaSZbigniew Bodek /* Selects the content and structure of the control table addres ... */
170649b49cdaSZbigniew Bodek #define EC_RFW_CTRL_SEL_ADDR_MASK        0x0000000C
170749b49cdaSZbigniew Bodek #define EC_RFW_CTRL_SEL_ADDR_SHIFT       2
170849b49cdaSZbigniew Bodek 
170949b49cdaSZbigniew Bodek /**** default_vlan register ****/
171049b49cdaSZbigniew Bodek /* Default VLAN data, used for untagged packets */
171149b49cdaSZbigniew Bodek #define EC_RFW_DEFAULT_VLAN_DATA_MASK    0x0000FFFF
171249b49cdaSZbigniew Bodek #define EC_RFW_DEFAULT_VLAN_DATA_SHIFT   0
171349b49cdaSZbigniew Bodek 
171449b49cdaSZbigniew Bodek /**** default_hash register ****/
171549b49cdaSZbigniew Bodek /* Default UDMA */
171649b49cdaSZbigniew Bodek #define EC_RFW_DEFAULT_HASH_UDMA_MASK    0x0000000F
171749b49cdaSZbigniew Bodek #define EC_RFW_DEFAULT_HASH_UDMA_SHIFT   0
171849b49cdaSZbigniew Bodek /* Default queue */
171949b49cdaSZbigniew Bodek #define EC_RFW_DEFAULT_HASH_QUEUE_MASK   0x00030000
172049b49cdaSZbigniew Bodek #define EC_RFW_DEFAULT_HASH_QUEUE_SHIFT  16
172149b49cdaSZbigniew Bodek 
172249b49cdaSZbigniew Bodek /**** default_or register ****/
172349b49cdaSZbigniew Bodek /* Default UDMA */
172449b49cdaSZbigniew Bodek #define EC_RFW_DEFAULT_OR_UDMA_MASK      0x0000000F
172549b49cdaSZbigniew Bodek #define EC_RFW_DEFAULT_OR_UDMA_SHIFT     0
172649b49cdaSZbigniew Bodek /* Default queue */
172749b49cdaSZbigniew Bodek #define EC_RFW_DEFAULT_OR_QUEUE_MASK     0x00030000
172849b49cdaSZbigniew Bodek #define EC_RFW_DEFAULT_OR_QUEUE_SHIFT    16
172949b49cdaSZbigniew Bodek 
173049b49cdaSZbigniew Bodek /**** checksum register ****/
173149b49cdaSZbigniew Bodek /* Check that the length in the UDP header matches the length in ... */
173249b49cdaSZbigniew Bodek #define EC_RFW_CHECKSUM_UDP_LEN          (1 << 0)
173349b49cdaSZbigniew Bodek /* Select the header that will be used for the checksum when a t ... */
173449b49cdaSZbigniew Bodek #define EC_RFW_CHECKSUM_HDR_SEL          (1 << 1)
173549b49cdaSZbigniew Bodek /* Enable L4 checksum when L3 fragmentation is detected */
173649b49cdaSZbigniew Bodek #define EC_RFW_CHECKSUM_L4_FRAG_EN       (1 << 2)
173749b49cdaSZbigniew Bodek /* L3 Checksum result selection for the Metadata descriptor0 - O ... */
173849b49cdaSZbigniew Bodek #define EC_RFW_CHECKSUM_L3_CKS_SEL       (1 << 4)
173949b49cdaSZbigniew Bodek /* L4 Checksum result selection for the Metadata descriptor0 - O ... */
174049b49cdaSZbigniew Bodek #define EC_RFW_CHECKSUM_L4_CKS_SEL       (1 << 5)
174149b49cdaSZbigniew Bodek 
174249b49cdaSZbigniew Bodek /**** lro_cfg_1 register ****/
174349b49cdaSZbigniew Bodek /* Select the header that will be used for the LRO offload engin ... */
174449b49cdaSZbigniew Bodek #define EC_RFW_LRO_CFG_1_HDR_SEL         (1 << 0)
174549b49cdaSZbigniew Bodek /* Select the L2 header that will be used for the LRO offload en ... */
174649b49cdaSZbigniew Bodek #define EC_RFW_LRO_CFG_1_HDR_L2_SEL      (1 << 1)
174749b49cdaSZbigniew Bodek 
174849b49cdaSZbigniew Bodek /**** lro_check_ipv4 register ****/
174949b49cdaSZbigniew Bodek /* Check version field. */
175049b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV4_VER        (1 << 0)
175149b49cdaSZbigniew Bodek /* Check IHL field == 5. */
175249b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV4_IHL_0      (1 << 1)
175349b49cdaSZbigniew Bodek /* Check IHL field >= 5. */
175449b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV4_IHL_1      (1 << 2)
175549b49cdaSZbigniew Bodek /* Compare to previous packet. */
175649b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV4_IHL_2      (1 << 3)
175749b49cdaSZbigniew Bodek /* Compare DSCP to previous packet. */
175849b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV4_DSCP       (1 << 4)
175949b49cdaSZbigniew Bodek /* Check that Total length >= lro_ipv4_tlen_val. */
176049b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV4_TLEN       (1 << 5)
176149b49cdaSZbigniew Bodek /* Compare to previous packet value +1. */
176249b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV4_ID         (1 << 6)
176349b49cdaSZbigniew Bodek /* Compare to lro_ipv4_flags_val with lro_ipv4_flags_mask_0. */
176449b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV4_FLAGS_0    (1 << 7)
176549b49cdaSZbigniew Bodek /* Compare to previous packet flags with lro_ipv4_flags_mask_1. */
176649b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV4_FLAGS_1    (1 << 8)
176749b49cdaSZbigniew Bodek /* Verify that the fragment offset field is 0. */
176849b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV4_FRAG       (1 << 9)
176949b49cdaSZbigniew Bodek /* Verify that the TTL value >0. */
177049b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV4_TTL_0      (1 << 10)
177149b49cdaSZbigniew Bodek /* Compare TTL value to previous packet. */
177249b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV4_TTL_1      (1 << 11)
177349b49cdaSZbigniew Bodek /* Compare to previous packet protocol field. */
177449b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV4_PROT_0     (1 << 12)
177549b49cdaSZbigniew Bodek /* Verify that the protocol is TCP or UDP. */
177649b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV4_PROT_1     (1 << 13)
177749b49cdaSZbigniew Bodek /* Verify that the check sum is correct. */
177849b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV4_CHECKSUM   (1 << 14)
177949b49cdaSZbigniew Bodek /* Compare SIP to previous packet. */
178049b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV4_SIP        (1 << 15)
178149b49cdaSZbigniew Bodek /* Compare DIP to previous packet. */
178249b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV4_DIP        (1 << 16)
178349b49cdaSZbigniew Bodek 
178449b49cdaSZbigniew Bodek /**** lro_ipv4 register ****/
178549b49cdaSZbigniew Bodek /* Total length minimum value */
178649b49cdaSZbigniew Bodek #define EC_RFW_LRO_IPV4_TLEN_VAL_MASK    0x0000FFFF
178749b49cdaSZbigniew Bodek #define EC_RFW_LRO_IPV4_TLEN_VAL_SHIFT   0
178849b49cdaSZbigniew Bodek /* Flags value  */
178949b49cdaSZbigniew Bodek #define EC_RFW_LRO_IPV4_FLAGS_VAL_MASK   0x00070000
179049b49cdaSZbigniew Bodek #define EC_RFW_LRO_IPV4_FLAGS_VAL_SHIFT  16
179149b49cdaSZbigniew Bodek /* Flags mask */
179249b49cdaSZbigniew Bodek #define EC_RFW_LRO_IPV4_FLAGS_MASK_0_MASK 0x00380000
179349b49cdaSZbigniew Bodek #define EC_RFW_LRO_IPV4_FLAGS_MASK_0_SHIFT 19
179449b49cdaSZbigniew Bodek /* Flags mask */
179549b49cdaSZbigniew Bodek #define EC_RFW_LRO_IPV4_FLAGS_MASK_1_MASK 0x01C00000
179649b49cdaSZbigniew Bodek #define EC_RFW_LRO_IPV4_FLAGS_MASK_1_SHIFT 22
179749b49cdaSZbigniew Bodek /* Version value */
179849b49cdaSZbigniew Bodek #define EC_RFW_LRO_IPV4_VER_MASK         0xF0000000
179949b49cdaSZbigniew Bodek #define EC_RFW_LRO_IPV4_VER_SHIFT        28
180049b49cdaSZbigniew Bodek 
180149b49cdaSZbigniew Bodek /**** lro_check_ipv6 register ****/
180249b49cdaSZbigniew Bodek /* Check version field */
180349b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV6_VER        (1 << 0)
180449b49cdaSZbigniew Bodek /* Compare TC to previous packet. */
180549b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV6_TC         (1 << 1)
180649b49cdaSZbigniew Bodek /* Compare flow label field to previous packet. */
180749b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV6_FLOW       (1 << 2)
180849b49cdaSZbigniew Bodek /* Check that Total length >= lro_ipv6_pen_val. */
180949b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV6_PLEN       (1 << 3)
181049b49cdaSZbigniew Bodek /* Compare to previous packet next header field. */
181149b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV6_NEXT_0     (1 << 4)
181249b49cdaSZbigniew Bodek /* Verify that the next header is TCP or UDP. */
181349b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV6_NEXT_1     (1 << 5)
181449b49cdaSZbigniew Bodek /* Verify that hop limit is >0. */
181549b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV6_HOP_0      (1 << 6)
181649b49cdaSZbigniew Bodek /* Compare hop limit to previous packet. */
181749b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV6_HOP_1      (1 << 7)
181849b49cdaSZbigniew Bodek /* Compare SIP to previous packet. */
181949b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV6_SIP        (1 << 8)
182049b49cdaSZbigniew Bodek /* Compare DIP to previous packet. */
182149b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_IPV6_DIP        (1 << 9)
182249b49cdaSZbigniew Bodek 
182349b49cdaSZbigniew Bodek /**** lro_ipv6 register ****/
182449b49cdaSZbigniew Bodek /* Payload length minimum value */
182549b49cdaSZbigniew Bodek #define EC_RFW_LRO_IPV6_PLEN_VAL_MASK    0x0000FFFF
182649b49cdaSZbigniew Bodek #define EC_RFW_LRO_IPV6_PLEN_VAL_SHIFT   0
182749b49cdaSZbigniew Bodek /* Version value */
182849b49cdaSZbigniew Bodek #define EC_RFW_LRO_IPV6_VER_MASK         0x0F000000
182949b49cdaSZbigniew Bodek #define EC_RFW_LRO_IPV6_VER_SHIFT        24
183049b49cdaSZbigniew Bodek 
183149b49cdaSZbigniew Bodek /**** lro_check_tcp register ****/
183249b49cdaSZbigniew Bodek /* Compare to previous packet. */
183349b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_TCP_SRC_PORT    (1 << 0)
183449b49cdaSZbigniew Bodek /* Compare to previous packet. */
183549b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_TCP_DST_PORT    (1 << 1)
183649b49cdaSZbigniew Bodek /* If (SYN == 1), don't check  */
183749b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_TCP_SN          (1 << 2)
183849b49cdaSZbigniew Bodek /* Check data offset field == 5. */
183949b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_TCP_OFFSET_0    (1 << 3)
184049b49cdaSZbigniew Bodek /* Check data offset field >= 5. */
184149b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_TCP_OFFSET_1    (1 << 4)
184249b49cdaSZbigniew Bodek /* Compare to previous packet. */
184349b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_TCP_OFFSET_2    (1 << 5)
184449b49cdaSZbigniew Bodek /* Compare reserved field to lro_tcp_res. */
184549b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_TCP_RES         (1 << 6)
184649b49cdaSZbigniew Bodek /* Compare to lro_tcp_ecn_val and lro_tcp_ecn_mask_0. */
184749b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_TCP_ECN_0       (1 << 7)
184849b49cdaSZbigniew Bodek /* Compare to previous packet ECN field with lro_tcp_ecn_mask_1 */
184949b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_TCP_ECN_1       (1 << 8)
185049b49cdaSZbigniew Bodek /* Compare to lro_tcp_ctrl_val and lro_tcp_ctrl_mask_0. */
185149b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_TCP_CTRL_0      (1 << 9)
185249b49cdaSZbigniew Bodek /* Compare to previous packet ECN field with lro_tcp_ctrl_mask_1 */
185349b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_TCP_CTRL_1      (1 << 10)
185449b49cdaSZbigniew Bodek /* Verify that check sum is correct. */
185549b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_TCP_CHECKSUM    (1 << 11)
185649b49cdaSZbigniew Bodek 
185749b49cdaSZbigniew Bodek /**** lro_tcp register ****/
185849b49cdaSZbigniew Bodek /* Reserved field default value */
185949b49cdaSZbigniew Bodek #define EC_RFW_LRO_TCP_RES_MASK          0x00000007
186049b49cdaSZbigniew Bodek #define EC_RFW_LRO_TCP_RES_SHIFT         0
186149b49cdaSZbigniew Bodek /* ECN field value */
186249b49cdaSZbigniew Bodek #define EC_RFW_LRO_TCP_ECN_VAL_MASK      0x00000038
186349b49cdaSZbigniew Bodek #define EC_RFW_LRO_TCP_ECN_VAL_SHIFT     3
186449b49cdaSZbigniew Bodek /* ECN field mask */
186549b49cdaSZbigniew Bodek #define EC_RFW_LRO_TCP_ECN_MASK_0_MASK   0x000001C0
186649b49cdaSZbigniew Bodek #define EC_RFW_LRO_TCP_ECN_MASK_0_SHIFT  6
186749b49cdaSZbigniew Bodek /* ECN field mask */
186849b49cdaSZbigniew Bodek #define EC_RFW_LRO_TCP_ECN_MASK_1_MASK   0x00000E00
186949b49cdaSZbigniew Bodek #define EC_RFW_LRO_TCP_ECN_MASK_1_SHIFT  9
187049b49cdaSZbigniew Bodek /* Control field value */
187149b49cdaSZbigniew Bodek #define EC_RFW_LRO_TCP_CTRL_VAL_MASK     0x0003F000
187249b49cdaSZbigniew Bodek #define EC_RFW_LRO_TCP_CTRL_VAL_SHIFT    12
187349b49cdaSZbigniew Bodek /* Control field mask */
187449b49cdaSZbigniew Bodek #define EC_RFW_LRO_TCP_CTRL_MASK_0_MASK  0x00FC0000
187549b49cdaSZbigniew Bodek #define EC_RFW_LRO_TCP_CTRL_MASK_0_SHIFT 18
187649b49cdaSZbigniew Bodek /* Control field mask */
187749b49cdaSZbigniew Bodek #define EC_RFW_LRO_TCP_CTRL_MASK_1_MASK  0x3F000000
187849b49cdaSZbigniew Bodek #define EC_RFW_LRO_TCP_CTRL_MASK_1_SHIFT 24
187949b49cdaSZbigniew Bodek 
188049b49cdaSZbigniew Bodek /**** lro_check_udp register ****/
188149b49cdaSZbigniew Bodek /* Compare to previous packet. */
188249b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_UDP_SRC_PORT    (1 << 0)
188349b49cdaSZbigniew Bodek /* Compare to previous packet. */
188449b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_UDP_DST_PORT    (1 << 1)
188549b49cdaSZbigniew Bodek /* Verify that check sum is correct. */
188649b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_UDP_CHECKSUM    (1 << 2)
188749b49cdaSZbigniew Bodek 
188849b49cdaSZbigniew Bodek /**** lro_check_l2 register ****/
188949b49cdaSZbigniew Bodek /* Compare to previous packet. */
189049b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_L2_MAC_DA       (1 << 0)
189149b49cdaSZbigniew Bodek /* Compare to previous packet. */
189249b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_L2_MAC_SA       (1 << 1)
189349b49cdaSZbigniew Bodek /* Compare to previous packet. */
189449b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_L2_VLAN_1_EXIST (1 << 2)
189549b49cdaSZbigniew Bodek /* Compare to previous packet. */
189649b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_L2_VLAN_1_VID   (1 << 3)
189749b49cdaSZbigniew Bodek /* Compare to previous packet. */
189849b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_L2_VLAN_1_CFI   (1 << 4)
189949b49cdaSZbigniew Bodek /* Compare to previous packet. */
190049b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_L2_VLAN_1_PBITS (1 << 5)
190149b49cdaSZbigniew Bodek /* Compare to previous packet. */
190249b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_L2_VLAN_2_EXIST (1 << 6)
190349b49cdaSZbigniew Bodek /* Compare to previous packet. */
190449b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_L2_VLAN_2_VID   (1 << 7)
190549b49cdaSZbigniew Bodek /* Compare to previous packet. */
190649b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_L2_VLAN_2_CFI   (1 << 8)
190749b49cdaSZbigniew Bodek /* Compare to previous packet. */
190849b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_L2_VLAN_2_PBITS (1 << 9)
190949b49cdaSZbigniew Bodek /* Verify that the FCS is correct. */
191049b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_L2_FCS          (1 << 10)
191149b49cdaSZbigniew Bodek 
191249b49cdaSZbigniew Bodek /**** lro_check_gen register ****/
191349b49cdaSZbigniew Bodek /* Compare to previous packet */
191449b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_GEN_UDMA        (1 << 0)
191549b49cdaSZbigniew Bodek /* Compare to previous packet */
191649b49cdaSZbigniew Bodek #define EC_RFW_LRO_CHECK_GEN_QUEUE       (1 << 1)
191749b49cdaSZbigniew Bodek 
191849b49cdaSZbigniew Bodek /**** lro_store register ****/
191949b49cdaSZbigniew Bodek /* Store packet information if protocol match. */
192049b49cdaSZbigniew Bodek #define EC_RFW_LRO_STORE_IPV4            (1 << 0)
192149b49cdaSZbigniew Bodek /* Store packet information if protocol match. */
192249b49cdaSZbigniew Bodek #define EC_RFW_LRO_STORE_IPV6            (1 << 1)
192349b49cdaSZbigniew Bodek /* Store packet information if protocol match. */
192449b49cdaSZbigniew Bodek #define EC_RFW_LRO_STORE_TCP             (1 << 2)
192549b49cdaSZbigniew Bodek /* Store packet information if protocol match. */
192649b49cdaSZbigniew Bodek #define EC_RFW_LRO_STORE_UDP             (1 << 3)
192749b49cdaSZbigniew Bodek /* Store packet if IPv4 flags match the register value with mask */
192849b49cdaSZbigniew Bodek #define EC_RFW_LRO_STORE_IPV4_FLAGS_VAL_MASK 0x00000070
192949b49cdaSZbigniew Bodek #define EC_RFW_LRO_STORE_IPV4_FLAGS_VAL_SHIFT 4
193049b49cdaSZbigniew Bodek /* Mask for IPv4 flags */
193149b49cdaSZbigniew Bodek #define EC_RFW_LRO_STORE_IPV4_FLAGS_MASK_MASK 0x00000380
193249b49cdaSZbigniew Bodek #define EC_RFW_LRO_STORE_IPV4_FLAGS_MASK_SHIFT 7
193349b49cdaSZbigniew Bodek /* Store packet if TCP control and ECN match the register value  ... */
193449b49cdaSZbigniew Bodek #define EC_RFW_LRO_STORE_TCP_CTRL_VAL_MASK 0x0007FC00
193549b49cdaSZbigniew Bodek #define EC_RFW_LRO_STORE_TCP_CTRL_VAL_SHIFT 10
193649b49cdaSZbigniew Bodek /* Mask for TCP control */
193749b49cdaSZbigniew Bodek #define EC_RFW_LRO_STORE_TCP_CTRL_MASK_MASK 0x0FF80000
193849b49cdaSZbigniew Bodek #define EC_RFW_LRO_STORE_TCP_CTRL_MASK_SHIFT 19
193949b49cdaSZbigniew Bodek 
194049b49cdaSZbigniew Bodek /**** vid_table_def register ****/
194149b49cdaSZbigniew Bodek /* Table default data (valid only after configuring the table ad ... */
194249b49cdaSZbigniew Bodek #define EC_RFW_VID_TABLE_DEF_VAL_MASK    0x0000003F
194349b49cdaSZbigniew Bodek #define EC_RFW_VID_TABLE_DEF_VAL_SHIFT   0
194449b49cdaSZbigniew Bodek /* Default data selection
194549b49cdaSZbigniew Bodek 0 - Default value
194649b49cdaSZbigniew Bodek 1 - Table data out */
194749b49cdaSZbigniew Bodek #define EC_RFW_VID_TABLE_DEF_SEL         (1 << 6)
194849b49cdaSZbigniew Bodek 
194949b49cdaSZbigniew Bodek /**** ctrl_table_def register ****/
195049b49cdaSZbigniew Bodek /* Control table output for selecting the forwarding MUXs [3:0]  ... */
195149b49cdaSZbigniew Bodek #define EC_RFW_CTRL_TABLE_DEF_VAL_MASK   0x000FFFFF
195249b49cdaSZbigniew Bodek #define EC_RFW_CTRL_TABLE_DEF_VAL_SHIFT  0
195349b49cdaSZbigniew Bodek /* Default data selection 0 - Default value 1 - Table data out ... */
195449b49cdaSZbigniew Bodek #define EC_RFW_CTRL_TABLE_DEF_SEL        (1 << 20)
195549b49cdaSZbigniew Bodek 
195649b49cdaSZbigniew Bodek /**** cfg_a_0 register ****/
195749b49cdaSZbigniew Bodek /* Selection of the L3 checksum result in the Metadata00 - L3 ch ... */
195849b49cdaSZbigniew Bodek #define EC_RFW_CFG_A_0_META_L3_CHK_RES_SEL_MASK 0x00000003
195949b49cdaSZbigniew Bodek #define EC_RFW_CFG_A_0_META_L3_CHK_RES_SEL_SHIFT 0
196049b49cdaSZbigniew Bodek /* Selection of the L4 checksum result in the Metadata0 - L4 che ... */
196149b49cdaSZbigniew Bodek #define EC_RFW_CFG_A_0_META_L4_CHK_RES_SEL (1 << 2)
196249b49cdaSZbigniew Bodek /* Selection of the LRO_context_value result in the Metadata0 -  ... */
196349b49cdaSZbigniew Bodek #define EC_RFW_CFG_A_0_LRO_CONTEXT_SEL   (1 << 4)
196449b49cdaSZbigniew Bodek 
196549b49cdaSZbigniew Bodek /**** thash_cfg_3 register ****/
196649b49cdaSZbigniew Bodek /* Enable Hash value for RoCE packets in outer packet. */
196749b49cdaSZbigniew Bodek #define EC_RFW_THASH_CFG_3_ENABLE_OUTER_ROCE (1 << 0)
196849b49cdaSZbigniew Bodek /* Enable Hash value for RoCE packets in inner packet. */
196949b49cdaSZbigniew Bodek #define EC_RFW_THASH_CFG_3_ENABLE_INNER_ROCE (1 << 1)
197049b49cdaSZbigniew Bodek /* Enable Hash value for FcoE packets in outer packet. */
197149b49cdaSZbigniew Bodek #define EC_RFW_THASH_CFG_3_ENABLE_OUTER_FCOE (1 << 2)
197249b49cdaSZbigniew Bodek /* Enable Hash value for FcoE packets in inner packet. */
197349b49cdaSZbigniew Bodek #define EC_RFW_THASH_CFG_3_ENABLE_INNER_FCOE (1 << 3)
197449b49cdaSZbigniew Bodek 
197549b49cdaSZbigniew Bodek /**** thash_mask_outer_ipv6 register ****/
197649b49cdaSZbigniew Bodek /* IPv6 source IP address */
197749b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_OUTER_IPV6_SRC_MASK 0x0000FFFF
197849b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_OUTER_IPV6_SRC_SHIFT 0
197949b49cdaSZbigniew Bodek /* IPv6 destination IP address */
198049b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_OUTER_IPV6_DST_MASK 0xFFFF0000
198149b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_OUTER_IPV6_DST_SHIFT 16
198249b49cdaSZbigniew Bodek 
198349b49cdaSZbigniew Bodek /**** thash_mask_outer register ****/
198449b49cdaSZbigniew Bodek /* IPv4 source IP address */
198549b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_OUTER_IPV4_SRC_MASK 0x0000000F
198649b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_OUTER_IPV4_SRC_SHIFT 0
198749b49cdaSZbigniew Bodek /* IPv4 destination IP address */
198849b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_OUTER_IPV4_DST_MASK 0x000000F0
198949b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_OUTER_IPV4_DST_SHIFT 4
199049b49cdaSZbigniew Bodek /* TCP source port */
199149b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_OUTER_TCP_SRC_PORT_MASK 0x00000300
199249b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_OUTER_TCP_SRC_PORT_SHIFT 8
199349b49cdaSZbigniew Bodek /* TCP destination port */
199449b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_OUTER_TCP_DST_PORT_MASK 0x00000C00
199549b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_OUTER_TCP_DST_PORT_SHIFT 10
199649b49cdaSZbigniew Bodek /* UDP source port */
199749b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_OUTER_UDP_SRC_PORT_MASK 0x00003000
199849b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_OUTER_UDP_SRC_PORT_SHIFT 12
199949b49cdaSZbigniew Bodek /* UDP destination port */
200049b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_OUTER_UDP_DST_PORT_MASK 0x0000C000
200149b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_OUTER_UDP_DST_PORT_SHIFT 14
200249b49cdaSZbigniew Bodek 
200349b49cdaSZbigniew Bodek /**** thash_mask_inner_ipv6 register ****/
200449b49cdaSZbigniew Bodek /* IPv6 source IP address */
200549b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_INNER_IPV6_SRC_MASK 0x0000FFFF
200649b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_INNER_IPV6_SRC_SHIFT 0
200749b49cdaSZbigniew Bodek /* IPv6 destination IP address */
200849b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_INNER_IPV6_DST_MASK 0xFFFF0000
200949b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_INNER_IPV6_DST_SHIFT 16
201049b49cdaSZbigniew Bodek 
201149b49cdaSZbigniew Bodek /**** thash_mask_inner register ****/
201249b49cdaSZbigniew Bodek /* IPv4 source IP address */
201349b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_INNER_IPV4_SRC_MASK 0x0000000F
201449b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_INNER_IPV4_SRC_SHIFT 0
201549b49cdaSZbigniew Bodek /* IPv4 destination IP address */
201649b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_INNER_IPV4_DST_MASK 0x000000F0
201749b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_INNER_IPV4_DST_SHIFT 4
201849b49cdaSZbigniew Bodek /* TCP source port */
201949b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_INNER_TCP_SRC_PORT_MASK 0x00000300
202049b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_INNER_TCP_SRC_PORT_SHIFT 8
202149b49cdaSZbigniew Bodek /* TCP destination port */
202249b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_INNER_TCP_DST_PORT_MASK 0x00000C00
202349b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_INNER_TCP_DST_PORT_SHIFT 10
202449b49cdaSZbigniew Bodek /* UDP source port */
202549b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_INNER_UDP_SRC_PORT_MASK 0x00003000
202649b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_INNER_UDP_SRC_PORT_SHIFT 12
202749b49cdaSZbigniew Bodek /* UDP destination port */
202849b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_INNER_UDP_DST_PORT_MASK 0x0000C000
202949b49cdaSZbigniew Bodek #define EC_RFW_THASH_MASK_INNER_UDP_DST_PORT_SHIFT 14
203049b49cdaSZbigniew Bodek 
203149b49cdaSZbigniew Bodek /**** def_cfg register ****/
203249b49cdaSZbigniew Bodek /* Number of padding bytes to add at the beginning of each Ether ... */
203349b49cdaSZbigniew Bodek #define EC_RFW_UDMA_DEF_CFG_RX_PAD_MASK  0x0000003F
203449b49cdaSZbigniew Bodek #define EC_RFW_UDMA_DEF_CFG_RX_PAD_SHIFT 0
203549b49cdaSZbigniew Bodek 
203649b49cdaSZbigniew Bodek /**** queue register ****/
203749b49cdaSZbigniew Bodek /* Mapping between priority and queue number */
203849b49cdaSZbigniew Bodek #define EC_RFW_PRIORITY_QUEUE_MAP_MASK   0x00000003
203949b49cdaSZbigniew Bodek #define EC_RFW_PRIORITY_QUEUE_MAP_SHIFT  0
204049b49cdaSZbigniew Bodek 
204149b49cdaSZbigniew Bodek /**** opt_1 register ****/
204249b49cdaSZbigniew Bodek /* Default UDMA for forwarding  */
204349b49cdaSZbigniew Bodek #define EC_RFW_DEFAULT_OPT_1_UDMA_MASK   0x0000000F
204449b49cdaSZbigniew Bodek #define EC_RFW_DEFAULT_OPT_1_UDMA_SHIFT  0
204549b49cdaSZbigniew Bodek /* Default priority for forwarding */
204649b49cdaSZbigniew Bodek #define EC_RFW_DEFAULT_OPT_1_PRIORITY_MASK 0x00000700
204749b49cdaSZbigniew Bodek #define EC_RFW_DEFAULT_OPT_1_PRIORITY_SHIFT 8
204849b49cdaSZbigniew Bodek /* Default queue for forwarding */
204949b49cdaSZbigniew Bodek #define EC_RFW_DEFAULT_OPT_1_QUEUE_MASK  0x00030000
205049b49cdaSZbigniew Bodek #define EC_RFW_DEFAULT_OPT_1_QUEUE_SHIFT 16
205149b49cdaSZbigniew Bodek 
205249b49cdaSZbigniew Bodek /**** data_h register ****/
205349b49cdaSZbigniew Bodek /* MAC address data  */
205449b49cdaSZbigniew Bodek #define EC_FWD_MAC_DATA_H_VAL_MASK       0x0000FFFF
205549b49cdaSZbigniew Bodek #define EC_FWD_MAC_DATA_H_VAL_SHIFT      0
205649b49cdaSZbigniew Bodek 
205749b49cdaSZbigniew Bodek /**** mask_h register ****/
205849b49cdaSZbigniew Bodek /* MAC address mask  */
205949b49cdaSZbigniew Bodek #define EC_FWD_MAC_MASK_H_VAL_MASK       0x0000FFFF
206049b49cdaSZbigniew Bodek #define EC_FWD_MAC_MASK_H_VAL_SHIFT      0
206149b49cdaSZbigniew Bodek 
206249b49cdaSZbigniew Bodek /**** ctrl register ****/
206349b49cdaSZbigniew Bodek /* Control value for Rx forwarding engine[0] - Drop indication[2 ... */
206449b49cdaSZbigniew Bodek #define EC_FWD_MAC_CTRL_RX_VAL_MASK      0x000001FF
206549b49cdaSZbigniew Bodek #define EC_FWD_MAC_CTRL_RX_VAL_SHIFT     0
206649b49cdaSZbigniew Bodek 
206749b49cdaSZbigniew Bodek /* Drop indication */
206849b49cdaSZbigniew Bodek #define EC_FWD_MAC_CTRL_RX_VAL_DROP		(1 << 0)
206949b49cdaSZbigniew Bodek 
207049b49cdaSZbigniew Bodek /* control table command input */
207149b49cdaSZbigniew Bodek #define EC_FWD_MAC_CTRL_RX_VAL_CTRL_CMD_MASK	0x00000006
207249b49cdaSZbigniew Bodek #define EC_FWD_MAC_CTRL_RX_VAL_CTRL_CMD_SHIFT	1
207349b49cdaSZbigniew Bodek 
207449b49cdaSZbigniew Bodek /* UDMA selection */
207549b49cdaSZbigniew Bodek #define EC_FWD_MAC_CTRL_RX_VAL_UDMA_MASK	0x000000078
207649b49cdaSZbigniew Bodek #define EC_FWD_MAC_CTRL_RX_VAL_UDMA_SHIFT	3
207749b49cdaSZbigniew Bodek 
207849b49cdaSZbigniew Bodek /* queue number */
207949b49cdaSZbigniew Bodek #define EC_FWD_MAC_CTRL_RX_VAL_QID_MASK		0x00000180
208049b49cdaSZbigniew Bodek #define EC_FWD_MAC_CTRL_RX_VAL_QID_SHIFT	7
208149b49cdaSZbigniew Bodek 
208249b49cdaSZbigniew Bodek /* Entry is valid for Rx forwarding engine. */
208349b49cdaSZbigniew Bodek #define EC_FWD_MAC_CTRL_RX_VALID         (1 << 15)
208449b49cdaSZbigniew Bodek /* Control value for Tx forwarding engine */
208549b49cdaSZbigniew Bodek #define EC_FWD_MAC_CTRL_TX_VAL_MASK      0x001F0000
208649b49cdaSZbigniew Bodek #define EC_FWD_MAC_CTRL_TX_VAL_SHIFT     16
208749b49cdaSZbigniew Bodek /* Entry is valid for Tx forwarding engine. */
208849b49cdaSZbigniew Bodek #define EC_FWD_MAC_CTRL_TX_VALID         (1 << 31)
208949b49cdaSZbigniew Bodek 
209049b49cdaSZbigniew Bodek /**** uc register ****/
209149b49cdaSZbigniew Bodek /* timer max value for waiting for a stream to be ready to accep ... */
209249b49cdaSZbigniew Bodek #define EC_MSW_UC_TIMER_MASK             0x0000FFFF
209349b49cdaSZbigniew Bodek #define EC_MSW_UC_TIMER_SHIFT            0
209449b49cdaSZbigniew Bodek /* Drop packet if target queue in the UDMA is full */
209549b49cdaSZbigniew Bodek #define EC_MSW_UC_Q_FULL_DROP_MASK       0x000F0000
209649b49cdaSZbigniew Bodek #define EC_MSW_UC_Q_FULL_DROP_SHIFT      16
209749b49cdaSZbigniew Bodek /* Drop packet if timer expires. */
209849b49cdaSZbigniew Bodek #define EC_MSW_UC_TIMER_DROP_MASK        0x0F000000
209949b49cdaSZbigniew Bodek #define EC_MSW_UC_TIMER_DROP_SHIFT       24
210049b49cdaSZbigniew Bodek 
210149b49cdaSZbigniew Bodek /**** mc register ****/
210249b49cdaSZbigniew Bodek /* Timer max value for waiting for a stream to be ready to accep ... */
210349b49cdaSZbigniew Bodek #define EC_MSW_MC_TIMER_MASK             0x0000FFFF
210449b49cdaSZbigniew Bodek #define EC_MSW_MC_TIMER_SHIFT            0
210549b49cdaSZbigniew Bodek /* Drop packet if target queue in UDMA is full. */
210649b49cdaSZbigniew Bodek #define EC_MSW_MC_Q_FULL_DROP_MASK       0x000F0000
210749b49cdaSZbigniew Bodek #define EC_MSW_MC_Q_FULL_DROP_SHIFT      16
210849b49cdaSZbigniew Bodek /* Drop packet if timer expires. */
210949b49cdaSZbigniew Bodek #define EC_MSW_MC_TIMER_DROP_MASK        0x0F000000
211049b49cdaSZbigniew Bodek #define EC_MSW_MC_TIMER_DROP_SHIFT       24
211149b49cdaSZbigniew Bodek 
211249b49cdaSZbigniew Bodek /**** bc register ****/
211349b49cdaSZbigniew Bodek /* Timer max value for waiting for a stream to be ready to accep ... */
211449b49cdaSZbigniew Bodek #define EC_MSW_BC_TIMER_MASK             0x0000FFFF
211549b49cdaSZbigniew Bodek #define EC_MSW_BC_TIMER_SHIFT            0
211649b49cdaSZbigniew Bodek /* Drop packet if target queue in UDMA is full. */
211749b49cdaSZbigniew Bodek #define EC_MSW_BC_Q_FULL_DROP_MASK       0x000F0000
211849b49cdaSZbigniew Bodek #define EC_MSW_BC_Q_FULL_DROP_SHIFT      16
211949b49cdaSZbigniew Bodek /* Drop packet if timer expires. */
212049b49cdaSZbigniew Bodek #define EC_MSW_BC_TIMER_DROP_MASK        0x0F000000
212149b49cdaSZbigniew Bodek #define EC_MSW_BC_TIMER_DROP_SHIFT       24
212249b49cdaSZbigniew Bodek 
212349b49cdaSZbigniew Bodek /**** in_cfg register ****/
212449b49cdaSZbigniew Bodek /* Swap input bytes order */
212549b49cdaSZbigniew Bodek #define EC_TSO_IN_CFG_SWAP_BYTES         (1 << 0)
212649b49cdaSZbigniew Bodek /* Selects strict priority or round robin scheduling between GDM ... */
212749b49cdaSZbigniew Bodek #define EC_TSO_IN_CFG_SEL_SP_RR          (1 << 1)
212849b49cdaSZbigniew Bodek /* Selects scheduler numbering direction */
212949b49cdaSZbigniew Bodek #define EC_TSO_IN_CFG_SEL_SCH_DIR        (1 << 2)
213049b49cdaSZbigniew Bodek /* Minimum L2 packet size (not including FCS) */
213149b49cdaSZbigniew Bodek #define EC_TSO_IN_CFG_L2_MIN_SIZE_MASK   0x00007F00
213249b49cdaSZbigniew Bodek #define EC_TSO_IN_CFG_L2_MIN_SIZE_SHIFT  8
213349b49cdaSZbigniew Bodek /* Swap input bytes order */
213449b49cdaSZbigniew Bodek #define EC_TSO_IN_CFG_SP_INIT_VAL_MASK   0x000F0000
213549b49cdaSZbigniew Bodek #define EC_TSO_IN_CFG_SP_INIT_VAL_SHIFT  16
213649b49cdaSZbigniew Bodek 
213749b49cdaSZbigniew Bodek /**** cache_table_addr register ****/
213849b49cdaSZbigniew Bodek /* Address for accessing the table */
213949b49cdaSZbigniew Bodek #define EC_TSO_CACHE_TABLE_ADDR_VAL_MASK 0x0000000F
214049b49cdaSZbigniew Bodek #define EC_TSO_CACHE_TABLE_ADDR_VAL_SHIFT 0
214149b49cdaSZbigniew Bodek 
214249b49cdaSZbigniew Bodek /**** ctrl_first register ****/
214349b49cdaSZbigniew Bodek /* Data to be written into the control BIS. */
214449b49cdaSZbigniew Bodek #define EC_TSO_CTRL_FIRST_DATA_MASK      0x000001FF
214549b49cdaSZbigniew Bodek #define EC_TSO_CTRL_FIRST_DATA_SHIFT     0
214649b49cdaSZbigniew Bodek /* Mask for control bits */
214749b49cdaSZbigniew Bodek #define EC_TSO_CTRL_FIRST_MASK_MASK      0x01FF0000
214849b49cdaSZbigniew Bodek #define EC_TSO_CTRL_FIRST_MASK_SHIFT     16
214949b49cdaSZbigniew Bodek 
215049b49cdaSZbigniew Bodek /**** ctrl_middle register ****/
215149b49cdaSZbigniew Bodek /* Data to be written into the control BIS. */
215249b49cdaSZbigniew Bodek #define EC_TSO_CTRL_MIDDLE_DATA_MASK     0x000001FF
215349b49cdaSZbigniew Bodek #define EC_TSO_CTRL_MIDDLE_DATA_SHIFT    0
215449b49cdaSZbigniew Bodek /* Mask for the control bits */
215549b49cdaSZbigniew Bodek #define EC_TSO_CTRL_MIDDLE_MASK_MASK     0x01FF0000
215649b49cdaSZbigniew Bodek #define EC_TSO_CTRL_MIDDLE_MASK_SHIFT    16
215749b49cdaSZbigniew Bodek 
215849b49cdaSZbigniew Bodek /**** ctrl_last register ****/
215949b49cdaSZbigniew Bodek /* Data to be written into the control BIS. */
216049b49cdaSZbigniew Bodek #define EC_TSO_CTRL_LAST_DATA_MASK       0x000001FF
216149b49cdaSZbigniew Bodek #define EC_TSO_CTRL_LAST_DATA_SHIFT      0
216249b49cdaSZbigniew Bodek /* Mask for the control bits */
216349b49cdaSZbigniew Bodek #define EC_TSO_CTRL_LAST_MASK_MASK       0x01FF0000
216449b49cdaSZbigniew Bodek #define EC_TSO_CTRL_LAST_MASK_SHIFT      16
216549b49cdaSZbigniew Bodek 
216649b49cdaSZbigniew Bodek /**** cfg_add_0 register ****/
216749b49cdaSZbigniew Bodek /* MSS selection option:0 - MSS value is selected using MSS_sel  ... */
216849b49cdaSZbigniew Bodek #define EC_TSO_CFG_ADD_0_MSS_SEL         (1 << 0)
216949b49cdaSZbigniew Bodek 
217049b49cdaSZbigniew Bodek /**** cfg_tunnel register ****/
217149b49cdaSZbigniew Bodek /* Enable TSO with tunnelling */
217249b49cdaSZbigniew Bodek #define EC_TSO_CFG_TUNNEL_EN_TUNNEL_TSO  (1 << 0)
217349b49cdaSZbigniew Bodek /* Enable outer UDP checksum update */
217449b49cdaSZbigniew Bodek #define EC_TSO_CFG_TUNNEL_EN_UDP_CHKSUM  (1 << 8)
217549b49cdaSZbigniew Bodek /* Enable outer UDP length update */
217649b49cdaSZbigniew Bodek #define EC_TSO_CFG_TUNNEL_EN_UDP_LEN     (1 << 9)
217749b49cdaSZbigniew Bodek /* Enable outer Ip6  length update */
217849b49cdaSZbigniew Bodek #define EC_TSO_CFG_TUNNEL_EN_IPV6_PLEN   (1 << 10)
217949b49cdaSZbigniew Bodek /* Enable outer IPv4 checksum update */
218049b49cdaSZbigniew Bodek #define EC_TSO_CFG_TUNNEL_EN_IPV4_CHKSUM (1 << 11)
218149b49cdaSZbigniew Bodek /* Enable outer IPv4 Identification update */
218249b49cdaSZbigniew Bodek #define EC_TSO_CFG_TUNNEL_EN_IPV4_IDEN   (1 << 12)
218349b49cdaSZbigniew Bodek /* Enable outer IPv4 length update */
218449b49cdaSZbigniew Bodek #define EC_TSO_CFG_TUNNEL_EN_IPV4_TLEN   (1 << 13)
218549b49cdaSZbigniew Bodek 
218649b49cdaSZbigniew Bodek /**** mss register ****/
218749b49cdaSZbigniew Bodek /* MSS value */
218849b49cdaSZbigniew Bodek #define EC_TSO_SEL_MSS_VAL_MASK          0x000FFFFF
218949b49cdaSZbigniew Bodek #define EC_TSO_SEL_MSS_VAL_SHIFT         0
219049b49cdaSZbigniew Bodek 
219149b49cdaSZbigniew Bodek /**** parse register ****/
219249b49cdaSZbigniew Bodek /* Max number of bus beats for parsing */
219349b49cdaSZbigniew Bodek #define EC_TPE_PARSE_MAX_BEATS_MASK      0x0000FFFF
219449b49cdaSZbigniew Bodek #define EC_TPE_PARSE_MAX_BEATS_SHIFT     0
219549b49cdaSZbigniew Bodek 
219649b49cdaSZbigniew Bodek /**** vlan_data register ****/
219749b49cdaSZbigniew Bodek /* UDMA default VLAN 1 data */
219849b49cdaSZbigniew Bodek #define EC_TPM_UDMA_VLAN_DATA_DEF_1_MASK 0x0000FFFF
219949b49cdaSZbigniew Bodek #define EC_TPM_UDMA_VLAN_DATA_DEF_1_SHIFT 0
220049b49cdaSZbigniew Bodek /* UDMA default VLAN 2 data */
220149b49cdaSZbigniew Bodek #define EC_TPM_UDMA_VLAN_DATA_DEF_2_MASK 0xFFFF0000
220249b49cdaSZbigniew Bodek #define EC_TPM_UDMA_VLAN_DATA_DEF_2_SHIFT 16
220349b49cdaSZbigniew Bodek 
220449b49cdaSZbigniew Bodek /**** mac_sa_2 register ****/
220549b49cdaSZbigniew Bodek /* MAC source address data [47:32] */
220649b49cdaSZbigniew Bodek #define EC_TPM_UDMA_MAC_SA_2_H_VAL_MASK  0x0000FFFF
220749b49cdaSZbigniew Bodek #define EC_TPM_UDMA_MAC_SA_2_H_VAL_SHIFT 0
220849b49cdaSZbigniew Bodek /* Drop indication for MAC SA spoofing0 – Don't drop */
220949b49cdaSZbigniew Bodek #define EC_TPM_UDMA_MAC_SA_2_DROP        (1 << 16)
221049b49cdaSZbigniew Bodek /* Replace indication for MAC SA spoofing 0 - Don't replace */
221149b49cdaSZbigniew Bodek #define EC_TPM_UDMA_MAC_SA_2_REPLACE     (1 << 17)
221249b49cdaSZbigniew Bodek 
221349b49cdaSZbigniew Bodek /**** etype register ****/
221449b49cdaSZbigniew Bodek /* Ether type value  */
221549b49cdaSZbigniew Bodek #define EC_TPM_SEL_ETYPE_VAL_MASK        0x0000FFFF
221649b49cdaSZbigniew Bodek #define EC_TPM_SEL_ETYPE_VAL_SHIFT       0
221749b49cdaSZbigniew Bodek 
221849b49cdaSZbigniew Bodek /**** tx_wr_fifo register ****/
221949b49cdaSZbigniew Bodek /* Max data beats that can be used in the Tx FIFO */
222049b49cdaSZbigniew Bodek #define EC_TFW_TX_WR_FIFO_DATA_TH_MASK   0x0000FFFF
222149b49cdaSZbigniew Bodek #define EC_TFW_TX_WR_FIFO_DATA_TH_SHIFT  0
222249b49cdaSZbigniew Bodek /* Max packets that can be stored in the Tx FIFO */
222349b49cdaSZbigniew Bodek #define EC_TFW_TX_WR_FIFO_INFO_TH_MASK   0xFFFF0000
222449b49cdaSZbigniew Bodek #define EC_TFW_TX_WR_FIFO_INFO_TH_SHIFT  16
222549b49cdaSZbigniew Bodek 
222649b49cdaSZbigniew Bodek /**** tx_vid_table_addr register ****/
222749b49cdaSZbigniew Bodek /* Address for accessing the table */
222849b49cdaSZbigniew Bodek #define EC_TFW_TX_VID_TABLE_ADDR_VAL_MASK 0x00000FFF
222949b49cdaSZbigniew Bodek #define EC_TFW_TX_VID_TABLE_ADDR_VAL_SHIFT 0
223049b49cdaSZbigniew Bodek 
223149b49cdaSZbigniew Bodek /**** tx_vid_table_data register ****/
223249b49cdaSZbigniew Bodek /* Table data (valid only after configuring the table address re ... */
223349b49cdaSZbigniew Bodek #define EC_TFW_TX_VID_TABLE_DATA_VAL_MASK 0x0000001F
223449b49cdaSZbigniew Bodek #define EC_TFW_TX_VID_TABLE_DATA_VAL_SHIFT 0
223549b49cdaSZbigniew Bodek 
223649b49cdaSZbigniew Bodek /**** tx_rd_fifo register ****/
223749b49cdaSZbigniew Bodek /* Read data threshold when cut through mode is enabled. */
223849b49cdaSZbigniew Bodek #define EC_TFW_TX_RD_FIFO_READ_TH_MASK   0x0000FFFF
223949b49cdaSZbigniew Bodek #define EC_TFW_TX_RD_FIFO_READ_TH_SHIFT  0
224049b49cdaSZbigniew Bodek /* Enable cut through operation of the Tx FIFO. */
224149b49cdaSZbigniew Bodek #define EC_TFW_TX_RD_FIFO_EN_CUT_THROUGH (1 << 16)
224249b49cdaSZbigniew Bodek 
224349b49cdaSZbigniew Bodek /**** tx_checksum register ****/
224449b49cdaSZbigniew Bodek /* Enable L3 checksum insertion. */
224549b49cdaSZbigniew Bodek #define EC_TFW_TX_CHECKSUM_L3_EN         (1 << 0)
224649b49cdaSZbigniew Bodek /* Enable L4 checksum insertion. */
224749b49cdaSZbigniew Bodek #define EC_TFW_TX_CHECKSUM_L4_EN         (1 << 1)
224849b49cdaSZbigniew Bodek /* Enable L4 checksum when L3 fragmentation is detected. */
224949b49cdaSZbigniew Bodek #define EC_TFW_TX_CHECKSUM_L4_FRAG_EN    (1 << 2)
225049b49cdaSZbigniew Bodek 
225149b49cdaSZbigniew Bodek /**** tx_gen register ****/
225249b49cdaSZbigniew Bodek /* Force forward of all Tx packets to MAC. */
225349b49cdaSZbigniew Bodek #define EC_TFW_TX_GEN_FWD_ALL_TO_MAC     (1 << 0)
225449b49cdaSZbigniew Bodek /* Select the Packet generator as the source of Tx packets0 - Tx ... */
225549b49cdaSZbigniew Bodek #define EC_TFW_TX_GEN_SELECT_PKT_GEN     (1 << 1)
225649b49cdaSZbigniew Bodek 
225749b49cdaSZbigniew Bodek /**** tx_spf register ****/
225849b49cdaSZbigniew Bodek /* Select the VID for spoofing check:[0] - Packet VID[1] - Forwa ... */
225949b49cdaSZbigniew Bodek #define EC_TFW_TX_SPF_VID_SEL            (1 << 0)
226049b49cdaSZbigniew Bodek 
226149b49cdaSZbigniew Bodek /**** data_fifo register ****/
226249b49cdaSZbigniew Bodek /* FIFO used value (number of entries) */
226349b49cdaSZbigniew Bodek #define EC_TFW_DATA_FIFO_USED_MASK       0x0000FFFF
226449b49cdaSZbigniew Bodek #define EC_TFW_DATA_FIFO_USED_SHIFT      0
226549b49cdaSZbigniew Bodek /* FIFO FULL status */
226649b49cdaSZbigniew Bodek #define EC_TFW_DATA_FIFO_FULL            (1 << 16)
226749b49cdaSZbigniew Bodek /* FIFO EMPTY status */
226849b49cdaSZbigniew Bodek #define EC_TFW_DATA_FIFO_EMPTY           (1 << 17)
226949b49cdaSZbigniew Bodek 
227049b49cdaSZbigniew Bodek /**** ctrl_fifo register ****/
227149b49cdaSZbigniew Bodek /* FIFO used value (number of entries) */
227249b49cdaSZbigniew Bodek #define EC_TFW_CTRL_FIFO_USED_MASK       0x0000FFFF
227349b49cdaSZbigniew Bodek #define EC_TFW_CTRL_FIFO_USED_SHIFT      0
227449b49cdaSZbigniew Bodek /* FIFO FULL status */
227549b49cdaSZbigniew Bodek #define EC_TFW_CTRL_FIFO_FULL            (1 << 16)
227649b49cdaSZbigniew Bodek /* FIFO EMPTY status */
227749b49cdaSZbigniew Bodek #define EC_TFW_CTRL_FIFO_EMPTY           (1 << 17)
227849b49cdaSZbigniew Bodek 
227949b49cdaSZbigniew Bodek /**** hdr_fifo register ****/
228049b49cdaSZbigniew Bodek /* FIFO used value (number of entries) */
228149b49cdaSZbigniew Bodek #define EC_TFW_HDR_FIFO_USED_MASK        0x0000FFFF
228249b49cdaSZbigniew Bodek #define EC_TFW_HDR_FIFO_USED_SHIFT       0
228349b49cdaSZbigniew Bodek /* FIFO FULL status */
228449b49cdaSZbigniew Bodek #define EC_TFW_HDR_FIFO_FULL             (1 << 16)
228549b49cdaSZbigniew Bodek /* FIFO EMPTY status */
228649b49cdaSZbigniew Bodek #define EC_TFW_HDR_FIFO_EMPTY            (1 << 17)
228749b49cdaSZbigniew Bodek 
228849b49cdaSZbigniew Bodek /**** uc_udma register ****/
228949b49cdaSZbigniew Bodek /* Default UDMA bitmap
229049b49cdaSZbigniew Bodek (MSB represents physical port) */
229149b49cdaSZbigniew Bodek #define EC_TFW_UDMA_UC_UDMA_DEF_MASK     0x0000001F
229249b49cdaSZbigniew Bodek #define EC_TFW_UDMA_UC_UDMA_DEF_SHIFT    0
229349b49cdaSZbigniew Bodek 
229449b49cdaSZbigniew Bodek /**** mc_udma register ****/
229549b49cdaSZbigniew Bodek /* Default UDMA bitmap (MSB represents physical port.) */
229649b49cdaSZbigniew Bodek #define EC_TFW_UDMA_MC_UDMA_DEF_MASK     0x0000001F
229749b49cdaSZbigniew Bodek #define EC_TFW_UDMA_MC_UDMA_DEF_SHIFT    0
229849b49cdaSZbigniew Bodek 
229949b49cdaSZbigniew Bodek /**** bc_udma register ****/
230049b49cdaSZbigniew Bodek /* Default UDMA bitmap (MSB represents physical port.) */
230149b49cdaSZbigniew Bodek #define EC_TFW_UDMA_BC_UDMA_DEF_MASK     0x0000001F
230249b49cdaSZbigniew Bodek #define EC_TFW_UDMA_BC_UDMA_DEF_SHIFT    0
230349b49cdaSZbigniew Bodek 
230449b49cdaSZbigniew Bodek /**** spf_cmd register ****/
230549b49cdaSZbigniew Bodek /* Command for the VLAN spoofing00 – Ignore  mismatch */
230649b49cdaSZbigniew Bodek #define EC_TFW_UDMA_SPF_CMD_VID_MASK     0x00000003
230749b49cdaSZbigniew Bodek #define EC_TFW_UDMA_SPF_CMD_VID_SHIFT    0
230849b49cdaSZbigniew Bodek /* Command for VLAN spoofing 00 - Ignore  mismatch */
230949b49cdaSZbigniew Bodek #define EC_TFW_UDMA_SPF_CMD_MAC_MASK     0x0000000C
231049b49cdaSZbigniew Bodek #define EC_TFW_UDMA_SPF_CMD_MAC_SHIFT    2
231149b49cdaSZbigniew Bodek 
231249b49cdaSZbigniew Bodek /**** fwd_dec register ****/
231349b49cdaSZbigniew Bodek /* Forwarding decision control:[0] – Enable internal switch */
231449b49cdaSZbigniew Bodek #define EC_TFW_UDMA_FWD_DEC_CTRL_MASK    0x000003FF
231549b49cdaSZbigniew Bodek #define EC_TFW_UDMA_FWD_DEC_CTRL_SHIFT   0
231649b49cdaSZbigniew Bodek 
231749b49cdaSZbigniew Bodek /**** tx_cfg register ****/
231849b49cdaSZbigniew Bodek /* Swap output byte order */
231949b49cdaSZbigniew Bodek #define EC_TMI_TX_CFG_SWAP_BYTES         (1 << 0)
232049b49cdaSZbigniew Bodek /* Enable forwarding to the Rx data path. */
232149b49cdaSZbigniew Bodek #define EC_TMI_TX_CFG_EN_FWD_TO_RX       (1 << 1)
232249b49cdaSZbigniew Bodek /* Force forwarding all packets to the MAC. */
232349b49cdaSZbigniew Bodek #define EC_TMI_TX_CFG_FORCE_FWD_MAC      (1 << 2)
232449b49cdaSZbigniew Bodek /* Force forwarding all packets to the MAC. */
232549b49cdaSZbigniew Bodek #define EC_TMI_TX_CFG_FORCE_FWD_RX       (1 << 3)
232649b49cdaSZbigniew Bodek /* Force loop back operation */
232749b49cdaSZbigniew Bodek #define EC_TMI_TX_CFG_FORCE_LB           (1 << 4)
232849b49cdaSZbigniew Bodek 
232949b49cdaSZbigniew Bodek /**** ec_pause register ****/
233049b49cdaSZbigniew Bodek /* Mask of pause_on [7:0] */
233149b49cdaSZbigniew Bodek #define EC_EFC_EC_PAUSE_MASK_MAC_MASK    0x000000FF
233249b49cdaSZbigniew Bodek #define EC_EFC_EC_PAUSE_MASK_MAC_SHIFT   0
233349b49cdaSZbigniew Bodek /* Mask of GPIO input [7:0] */
233449b49cdaSZbigniew Bodek #define EC_EFC_EC_PAUSE_MASK_GPIO_MASK   0x0000FF00
233549b49cdaSZbigniew Bodek #define EC_EFC_EC_PAUSE_MASK_GPIO_SHIFT  8
233649b49cdaSZbigniew Bodek 
233749b49cdaSZbigniew Bodek /**** ec_xoff register ****/
233849b49cdaSZbigniew Bodek /* Mask 1 for XOFF [7:0]
233949b49cdaSZbigniew Bodek Mask 1 for Almost Full indication, */
234049b49cdaSZbigniew Bodek #define EC_EFC_EC_XOFF_MASK_1_MASK       0x000000FF
234149b49cdaSZbigniew Bodek #define EC_EFC_EC_XOFF_MASK_1_SHIFT      0
234249b49cdaSZbigniew Bodek /* Mask 2 for XOFF [7:0] Mask 2 for sampled Almost Full indicati ... */
234349b49cdaSZbigniew Bodek #define EC_EFC_EC_XOFF_MASK_2_MASK       0x0000FF00
234449b49cdaSZbigniew Bodek #define EC_EFC_EC_XOFF_MASK_2_SHIFT      8
234549b49cdaSZbigniew Bodek 
234649b49cdaSZbigniew Bodek /**** xon register ****/
234749b49cdaSZbigniew Bodek /* Mask 1 for generating XON pulse, masking XOFF [0] */
234849b49cdaSZbigniew Bodek #define EC_EFC_XON_MASK_1                (1 << 0)
234949b49cdaSZbigniew Bodek /* Mask 2 for generating XON pulse, masking Almost Full indicati ... */
235049b49cdaSZbigniew Bodek #define EC_EFC_XON_MASK_2                (1 << 1)
235149b49cdaSZbigniew Bodek 
235249b49cdaSZbigniew Bodek /**** gpio register ****/
235349b49cdaSZbigniew Bodek /* Mask for generating GPIO output XOFF indication from XOFF[0] */
235449b49cdaSZbigniew Bodek #define EC_EFC_GPIO_MASK_1               (1 << 0)
235549b49cdaSZbigniew Bodek 
235649b49cdaSZbigniew Bodek /**** rx_fifo_af register ****/
235749b49cdaSZbigniew Bodek /* Threshold */
235849b49cdaSZbigniew Bodek #define EC_EFC_RX_FIFO_AF_TH_MASK        0x0000FFFF
235949b49cdaSZbigniew Bodek #define EC_EFC_RX_FIFO_AF_TH_SHIFT       0
236049b49cdaSZbigniew Bodek 
236149b49cdaSZbigniew Bodek /**** rx_fifo_hyst register ****/
236249b49cdaSZbigniew Bodek /* Threshold low */
236349b49cdaSZbigniew Bodek #define EC_EFC_RX_FIFO_HYST_TH_LOW_MASK  0x0000FFFF
236449b49cdaSZbigniew Bodek #define EC_EFC_RX_FIFO_HYST_TH_LOW_SHIFT 0
236549b49cdaSZbigniew Bodek /* Threshold high */
236649b49cdaSZbigniew Bodek #define EC_EFC_RX_FIFO_HYST_TH_HIGH_MASK 0xFFFF0000
236749b49cdaSZbigniew Bodek #define EC_EFC_RX_FIFO_HYST_TH_HIGH_SHIFT 16
236849b49cdaSZbigniew Bodek 
236949b49cdaSZbigniew Bodek /**** stat register ****/
237049b49cdaSZbigniew Bodek /* 10G MAC PFC mode, input from the 10 MAC */
237149b49cdaSZbigniew Bodek #define EC_EFC_STAT_PFC_MODE             (1 << 0)
237249b49cdaSZbigniew Bodek 
237349b49cdaSZbigniew Bodek /**** ec_pfc register ****/
237449b49cdaSZbigniew Bodek /* Force PFC flow control */
237549b49cdaSZbigniew Bodek #define EC_EFC_EC_PFC_FORCE_MASK         0x000000FF
237649b49cdaSZbigniew Bodek #define EC_EFC_EC_PFC_FORCE_SHIFT        0
237749b49cdaSZbigniew Bodek 
237849b49cdaSZbigniew Bodek /**** q_pause_0 register ****/
237949b49cdaSZbigniew Bodek /* [i] – Mask for Q[i] */
238049b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_PAUSE_0_MASK_MASK   0x0000000F
238149b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_PAUSE_0_MASK_SHIFT  0
238249b49cdaSZbigniew Bodek 
238349b49cdaSZbigniew Bodek /**** q_pause_1 register ****/
238449b49cdaSZbigniew Bodek /* [i] - Mask for Q[i] */
238549b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_PAUSE_1_MASK_MASK   0x0000000F
238649b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_PAUSE_1_MASK_SHIFT  0
238749b49cdaSZbigniew Bodek 
238849b49cdaSZbigniew Bodek /**** q_pause_2 register ****/
238949b49cdaSZbigniew Bodek /* [i] - Mask for Q[i] */
239049b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_PAUSE_2_MASK_MASK   0x0000000F
239149b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_PAUSE_2_MASK_SHIFT  0
239249b49cdaSZbigniew Bodek 
239349b49cdaSZbigniew Bodek /**** q_pause_3 register ****/
239449b49cdaSZbigniew Bodek /* [i] - Mask for Q[i] */
239549b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_PAUSE_3_MASK_MASK   0x0000000F
239649b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_PAUSE_3_MASK_SHIFT  0
239749b49cdaSZbigniew Bodek 
239849b49cdaSZbigniew Bodek /**** q_pause_4 register ****/
239949b49cdaSZbigniew Bodek /* [i] - Mask for Q[i] */
240049b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_PAUSE_4_MASK_MASK   0x0000000F
240149b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_PAUSE_4_MASK_SHIFT  0
240249b49cdaSZbigniew Bodek 
240349b49cdaSZbigniew Bodek /**** q_pause_5 register ****/
240449b49cdaSZbigniew Bodek /* [i] - Mask for Q[i] */
240549b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_PAUSE_5_MASK_MASK   0x0000000F
240649b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_PAUSE_5_MASK_SHIFT  0
240749b49cdaSZbigniew Bodek 
240849b49cdaSZbigniew Bodek /**** q_pause_6 register ****/
240949b49cdaSZbigniew Bodek /* [i] - Mask for Q[i] */
241049b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_PAUSE_6_MASK_MASK   0x0000000F
241149b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_PAUSE_6_MASK_SHIFT  0
241249b49cdaSZbigniew Bodek 
241349b49cdaSZbigniew Bodek /**** q_pause_7 register ****/
241449b49cdaSZbigniew Bodek /* [i] - Mask for Q[i] */
241549b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_PAUSE_7_MASK_MASK   0x0000000F
241649b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_PAUSE_7_MASK_SHIFT  0
241749b49cdaSZbigniew Bodek 
241849b49cdaSZbigniew Bodek /**** q_gpio_0 register ****/
241949b49cdaSZbigniew Bodek /* [i] - Mask for Q[i] */
242049b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_GPIO_0_MASK_MASK    0x0000000F
242149b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_GPIO_0_MASK_SHIFT   0
242249b49cdaSZbigniew Bodek 
242349b49cdaSZbigniew Bodek /**** q_gpio_1 register ****/
242449b49cdaSZbigniew Bodek /* [i] - Mask for Q[i] */
242549b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_GPIO_1_MASK_MASK    0x0000000F
242649b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_GPIO_1_MASK_SHIFT   0
242749b49cdaSZbigniew Bodek 
242849b49cdaSZbigniew Bodek /**** q_gpio_2 register ****/
242949b49cdaSZbigniew Bodek /* [i] - Mask for Q[i] */
243049b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_GPIO_2_MASK_MASK    0x0000000F
243149b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_GPIO_2_MASK_SHIFT   0
243249b49cdaSZbigniew Bodek 
243349b49cdaSZbigniew Bodek /**** q_gpio_3 register ****/
243449b49cdaSZbigniew Bodek /* [i] - Mask for Q[i] */
243549b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_GPIO_3_MASK_MASK    0x0000000F
243649b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_GPIO_3_MASK_SHIFT   0
243749b49cdaSZbigniew Bodek 
243849b49cdaSZbigniew Bodek /**** q_gpio_4 register ****/
243949b49cdaSZbigniew Bodek /* [i] - Mask for Q[i] */
244049b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_GPIO_4_MASK_MASK    0x0000000F
244149b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_GPIO_4_MASK_SHIFT   0
244249b49cdaSZbigniew Bodek 
244349b49cdaSZbigniew Bodek /**** q_gpio_5 register ****/
244449b49cdaSZbigniew Bodek /* [i] - Mask for Q[i] */
244549b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_GPIO_5_MASK_MASK    0x0000000F
244649b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_GPIO_5_MASK_SHIFT   0
244749b49cdaSZbigniew Bodek 
244849b49cdaSZbigniew Bodek /**** q_gpio_6 register ****/
244949b49cdaSZbigniew Bodek /* [i] - Mask for Q[i] */
245049b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_GPIO_6_MASK_MASK    0x0000000F
245149b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_GPIO_6_MASK_SHIFT   0
245249b49cdaSZbigniew Bodek 
245349b49cdaSZbigniew Bodek /**** q_gpio_7 register ****/
245449b49cdaSZbigniew Bodek /* [i] - Mask for Q[i] */
245549b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_GPIO_7_MASK_MASK    0x0000000F
245649b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_GPIO_7_MASK_SHIFT   0
245749b49cdaSZbigniew Bodek 
245849b49cdaSZbigniew Bodek /**** s_pause register ****/
245949b49cdaSZbigniew Bodek /* Mask of pause_on [7:0] */
246049b49cdaSZbigniew Bodek #define EC_FC_UDMA_S_PAUSE_MASK_MAC_MASK 0x000000FF
246149b49cdaSZbigniew Bodek #define EC_FC_UDMA_S_PAUSE_MASK_MAC_SHIFT 0
246249b49cdaSZbigniew Bodek /* Mask of GPIO input  [7:0] */
246349b49cdaSZbigniew Bodek #define EC_FC_UDMA_S_PAUSE_MASK_GPIO_MASK 0x0000FF00
246449b49cdaSZbigniew Bodek #define EC_FC_UDMA_S_PAUSE_MASK_GPIO_SHIFT 8
246549b49cdaSZbigniew Bodek 
246649b49cdaSZbigniew Bodek /**** q_xoff_0 register ****/
246749b49cdaSZbigniew Bodek /* [i] - Mask for Q[i] */
246849b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_XOFF_0_MASK_MASK    0x0000000F
246949b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_XOFF_0_MASK_SHIFT   0
247049b49cdaSZbigniew Bodek 
247149b49cdaSZbigniew Bodek /**** q_xoff_1 register ****/
247249b49cdaSZbigniew Bodek /* [i] - Mask for Q[i] */
247349b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_XOFF_1_MASK_MASK    0x0000000F
247449b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_XOFF_1_MASK_SHIFT   0
247549b49cdaSZbigniew Bodek 
247649b49cdaSZbigniew Bodek /**** q_xoff_2 register ****/
247749b49cdaSZbigniew Bodek /* [i] - Mask for Q[i] */
247849b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_XOFF_2_MASK_MASK    0x0000000F
247949b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_XOFF_2_MASK_SHIFT   0
248049b49cdaSZbigniew Bodek 
248149b49cdaSZbigniew Bodek /**** q_xoff_3 register ****/
248249b49cdaSZbigniew Bodek /* [i] - Mask for Q[i] */
248349b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_XOFF_3_MASK_MASK    0x0000000F
248449b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_XOFF_3_MASK_SHIFT   0
248549b49cdaSZbigniew Bodek 
248649b49cdaSZbigniew Bodek /**** q_xoff_4 register ****/
248749b49cdaSZbigniew Bodek /* [i] - Mask for Q[i] */
248849b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_XOFF_4_MASK_MASK    0x0000000F
248949b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_XOFF_4_MASK_SHIFT   0
249049b49cdaSZbigniew Bodek 
249149b49cdaSZbigniew Bodek /**** q_xoff_5 register ****/
249249b49cdaSZbigniew Bodek /* [i] - Mask for Q[i] */
249349b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_XOFF_5_MASK_MASK    0x0000000F
249449b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_XOFF_5_MASK_SHIFT   0
249549b49cdaSZbigniew Bodek 
249649b49cdaSZbigniew Bodek /**** q_xoff_6 register ****/
249749b49cdaSZbigniew Bodek /* [i] - Mask for Q[i] */
249849b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_XOFF_6_MASK_MASK    0x0000000F
249949b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_XOFF_6_MASK_SHIFT   0
250049b49cdaSZbigniew Bodek 
250149b49cdaSZbigniew Bodek /**** q_xoff_7 register ****/
250249b49cdaSZbigniew Bodek /* [i] - Mask for Q[i] */
250349b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_XOFF_7_MASK_MASK    0x0000000F
250449b49cdaSZbigniew Bodek #define EC_FC_UDMA_Q_XOFF_7_MASK_SHIFT   0
250549b49cdaSZbigniew Bodek 
250649b49cdaSZbigniew Bodek /**** cfg_e register ****/
250749b49cdaSZbigniew Bodek /* Use MAC Tx FIFO empty status for EEE control. */
250849b49cdaSZbigniew Bodek #define EC_EEE_CFG_E_USE_MAC_TX_FIFO     (1 << 0)
250949b49cdaSZbigniew Bodek /* Use MAC Rx FIFO empty status for EEE control. */
251049b49cdaSZbigniew Bodek #define EC_EEE_CFG_E_USE_MAC_RX_FIFO     (1 << 1)
251149b49cdaSZbigniew Bodek /* Use Ethernet controller Tx FIFO empty status for EEE control */
251249b49cdaSZbigniew Bodek #define EC_EEE_CFG_E_USE_EC_TX_FIFO      (1 << 2)
251349b49cdaSZbigniew Bodek /* Use Ethernet controller Rx FIFO empty status for EEE control */
251449b49cdaSZbigniew Bodek #define EC_EEE_CFG_E_USE_EC_RX_FIFO      (1 << 3)
251549b49cdaSZbigniew Bodek /* Enable Low power signalling. */
251649b49cdaSZbigniew Bodek #define EC_EEE_CFG_E_ENABLE              (1 << 4)
251749b49cdaSZbigniew Bodek /* Mask output to MAC.  */
251849b49cdaSZbigniew Bodek #define EC_EEE_CFG_E_MASK_MAC_EEE        (1 << 8)
251949b49cdaSZbigniew Bodek /* Mask output to stop MAC interface. */
252049b49cdaSZbigniew Bodek #define EC_EEE_CFG_E_MASK_EC_TMI_STOP    (1 << 9)
252149b49cdaSZbigniew Bodek 
252249b49cdaSZbigniew Bodek /**** stat_eee register ****/
252349b49cdaSZbigniew Bodek /* EEE state */
252449b49cdaSZbigniew Bodek #define EC_EEE_STAT_EEE_STATE_MASK       0x0000000F
252549b49cdaSZbigniew Bodek #define EC_EEE_STAT_EEE_STATE_SHIFT      0
252649b49cdaSZbigniew Bodek /* EEE detected */
252749b49cdaSZbigniew Bodek #define EC_EEE_STAT_EEE_DET              (1 << 4)
252849b49cdaSZbigniew Bodek 
252949b49cdaSZbigniew Bodek /**** p_parse_cfg register ****/
253049b49cdaSZbigniew Bodek /* MAX number of beats for packet parsing */
253149b49cdaSZbigniew Bodek #define EC_MSP_P_PARSE_CFG_MAX_BEATS_MASK 0x000000FF
253249b49cdaSZbigniew Bodek #define EC_MSP_P_PARSE_CFG_MAX_BEATS_SHIFT 0
253349b49cdaSZbigniew Bodek /* MAX number of parsing iterations for packet parsing */
253449b49cdaSZbigniew Bodek #define EC_MSP_P_PARSE_CFG_MAX_ITER_MASK 0x0000FF00
253549b49cdaSZbigniew Bodek #define EC_MSP_P_PARSE_CFG_MAX_ITER_SHIFT 8
253649b49cdaSZbigniew Bodek 
253749b49cdaSZbigniew Bodek /**** p_act_table_addr register ****/
253849b49cdaSZbigniew Bodek /* Address for accessing the table */
253949b49cdaSZbigniew Bodek #define EC_MSP_P_ACT_TABLE_ADDR_VAL_MASK 0x0000001F
254049b49cdaSZbigniew Bodek #define EC_MSP_P_ACT_TABLE_ADDR_VAL_SHIFT 0
254149b49cdaSZbigniew Bodek 
254249b49cdaSZbigniew Bodek /**** p_act_table_data_1 register ****/
254349b49cdaSZbigniew Bodek /* Table data[5:0] - Offset to next protocol [bytes] [6] - Next  ... */
254449b49cdaSZbigniew Bodek #define EC_MSP_P_ACT_TABLE_DATA_1_VAL_MASK 0x03FFFFFF
254549b49cdaSZbigniew Bodek #define EC_MSP_P_ACT_TABLE_DATA_1_VAL_SHIFT 0
254649b49cdaSZbigniew Bodek 
254749b49cdaSZbigniew Bodek /**** p_act_table_data_2 register ****/
254849b49cdaSZbigniew Bodek /* Table data  [8:0] - Offset to data in the packet [bits][17:9] ... */
254949b49cdaSZbigniew Bodek #define EC_MSP_P_ACT_TABLE_DATA_2_VAL_MASK 0x1FFFFFFF
255049b49cdaSZbigniew Bodek #define EC_MSP_P_ACT_TABLE_DATA_2_VAL_SHIFT 0
255149b49cdaSZbigniew Bodek 
255249b49cdaSZbigniew Bodek /**** p_act_table_data_3 register ****/
255349b49cdaSZbigniew Bodek /* Table data   [8:0] - Offset to data in the packet [bits]  [17 ... */
255449b49cdaSZbigniew Bodek #define EC_MSP_P_ACT_TABLE_DATA_3_VAL_MASK 0x1FFFFFFF
255549b49cdaSZbigniew Bodek #define EC_MSP_P_ACT_TABLE_DATA_3_VAL_SHIFT 0
255649b49cdaSZbigniew Bodek 
255749b49cdaSZbigniew Bodek /**** p_act_table_data_4 register ****/
255849b49cdaSZbigniew Bodek /* Table data [7:0] - Offset to the header length location in th ... */
255949b49cdaSZbigniew Bodek #define EC_MSP_P_ACT_TABLE_DATA_4_VAL_MASK 0x0FFFFFFF
256049b49cdaSZbigniew Bodek #define EC_MSP_P_ACT_TABLE_DATA_4_VAL_SHIFT 0
256149b49cdaSZbigniew Bodek 
256249b49cdaSZbigniew Bodek /**** p_act_table_data_6 register ****/
256349b49cdaSZbigniew Bodek /* Table data [0] - Wr header length [10:1] - Write header lengt ... */
256449b49cdaSZbigniew Bodek #define EC_MSP_P_ACT_TABLE_DATA_6_VAL_MASK 0x007FFFFF
256549b49cdaSZbigniew Bodek #define EC_MSP_P_ACT_TABLE_DATA_6_VAL_SHIFT 0
256649b49cdaSZbigniew Bodek 
256749b49cdaSZbigniew Bodek /**** p_res_in register ****/
256849b49cdaSZbigniew Bodek /* Selector for input parse_en 0 - Input vector 1 - Default valu ... */
256949b49cdaSZbigniew Bodek #define EC_MSP_P_RES_IN_SEL_PARSE_EN     (1 << 0)
257049b49cdaSZbigniew Bodek /* Selector for input protocol_index  0 - Input vector  1 - Defa ... */
257149b49cdaSZbigniew Bodek #define EC_MSP_P_RES_IN_SEL_PROT_INDEX   (1 << 1)
257249b49cdaSZbigniew Bodek /* Selector for input hdr_offset  0 - Input vector 1 - Default v ... */
257349b49cdaSZbigniew Bodek #define EC_MSP_P_RES_IN_SEL_HDR_OFFSET   (1 << 2)
257449b49cdaSZbigniew Bodek 
257549b49cdaSZbigniew Bodek /**** h_hdr_len register ****/
257649b49cdaSZbigniew Bodek /* Value for selecting table 1 */
257749b49cdaSZbigniew Bodek #define EC_MSP_P_H_HDR_LEN_TABLE_1_MASK  0x000000FF
257849b49cdaSZbigniew Bodek #define EC_MSP_P_H_HDR_LEN_TABLE_1_SHIFT 0
257949b49cdaSZbigniew Bodek /* Value for selecting table 2 */
258049b49cdaSZbigniew Bodek #define EC_MSP_P_H_HDR_LEN_TABLE_2_MASK  0x00FF0000
258149b49cdaSZbigniew Bodek #define EC_MSP_P_H_HDR_LEN_TABLE_2_SHIFT 16
258249b49cdaSZbigniew Bodek 
258349b49cdaSZbigniew Bodek /**** p_comp_data register ****/
258449b49cdaSZbigniew Bodek /* Data 1 for comparison */
258549b49cdaSZbigniew Bodek #define EC_MSP_C_P_COMP_DATA_DATA_1_MASK 0x0000FFFF
258649b49cdaSZbigniew Bodek #define EC_MSP_C_P_COMP_DATA_DATA_1_SHIFT 0
258749b49cdaSZbigniew Bodek /* Data 2 for comparison
258849b49cdaSZbigniew Bodek [18:16] - Stage
258949b49cdaSZbigniew Bodek [24:19] - Branch ID */
259049b49cdaSZbigniew Bodek #define EC_MSP_C_P_COMP_DATA_DATA_2_MASK 0x01FF0000
259149b49cdaSZbigniew Bodek #define EC_MSP_C_P_COMP_DATA_DATA_2_SHIFT 16
259249b49cdaSZbigniew Bodek 
259349b49cdaSZbigniew Bodek /**** p_comp_mask register ****/
259449b49cdaSZbigniew Bodek /* Data 1 for comparison */
259549b49cdaSZbigniew Bodek #define EC_MSP_C_P_COMP_MASK_DATA_1_MASK 0x0000FFFF
259649b49cdaSZbigniew Bodek #define EC_MSP_C_P_COMP_MASK_DATA_1_SHIFT 0
259749b49cdaSZbigniew Bodek /* Data 2 for comparison
259849b49cdaSZbigniew Bodek [18:16] - Stage
259949b49cdaSZbigniew Bodek [24:19] - Branch ID */
260049b49cdaSZbigniew Bodek #define EC_MSP_C_P_COMP_MASK_DATA_2_MASK 0x01FF0000
260149b49cdaSZbigniew Bodek #define EC_MSP_C_P_COMP_MASK_DATA_2_SHIFT 16
260249b49cdaSZbigniew Bodek 
260349b49cdaSZbigniew Bodek /**** p_comp_ctrl register ****/
260449b49cdaSZbigniew Bodek /* Output result value */
260549b49cdaSZbigniew Bodek #define EC_MSP_C_P_COMP_CTRL_RES_MASK    0x0000001F
260649b49cdaSZbigniew Bodek #define EC_MSP_C_P_COMP_CTRL_RES_SHIFT   0
260749b49cdaSZbigniew Bodek /* Compare command for the data_1 field 00 - Compare 01 - <= 10  ... */
260849b49cdaSZbigniew Bodek #define EC_MSP_C_P_COMP_CTRL_CMD_1_MASK  0x00030000
260949b49cdaSZbigniew Bodek #define EC_MSP_C_P_COMP_CTRL_CMD_1_SHIFT 16
261049b49cdaSZbigniew Bodek /* Compare command for the data_2 field 00 - Compare 01 - <= 10  ... */
261149b49cdaSZbigniew Bodek #define EC_MSP_C_P_COMP_CTRL_CMD_2_MASK  0x000C0000
261249b49cdaSZbigniew Bodek #define EC_MSP_C_P_COMP_CTRL_CMD_2_SHIFT 18
261349b49cdaSZbigniew Bodek /* Entry is valid */
261449b49cdaSZbigniew Bodek #define EC_MSP_C_P_COMP_CTRL_VALID       (1 << 31)
261549b49cdaSZbigniew Bodek 
261649b49cdaSZbigniew Bodek /**** wol_en register ****/
261749b49cdaSZbigniew Bodek /* Interrupt enable WoL MAC DA Unicast detected  packet */
261849b49cdaSZbigniew Bodek #define EC_WOL_WOL_EN_INTRPT_EN_UNICAST  (1 << 0)
261949b49cdaSZbigniew Bodek /* Interrupt enable WoL L2 Multicast detected  packet */
262049b49cdaSZbigniew Bodek #define EC_WOL_WOL_EN_INTRPT_EN_MULTICAST (1 << 1)
262149b49cdaSZbigniew Bodek /* Interrupt enable WoL L2 Broadcast detected  packet */
262249b49cdaSZbigniew Bodek #define EC_WOL_WOL_EN_INTRPT_EN_BROADCAST (1 << 2)
262349b49cdaSZbigniew Bodek /* Interrupt enable WoL IPv4 detected  packet */
262449b49cdaSZbigniew Bodek #define EC_WOL_WOL_EN_INTRPT_EN_IPV4     (1 << 3)
262549b49cdaSZbigniew Bodek /* Interrupt enable WoL IPv6 detected  packet */
262649b49cdaSZbigniew Bodek #define EC_WOL_WOL_EN_INTRPT_EN_IPV6     (1 << 4)
262749b49cdaSZbigniew Bodek /* Interrupt enable WoL EtherType+MAC DA detected  packet */
262849b49cdaSZbigniew Bodek #define EC_WOL_WOL_EN_INTRPT_EN_ETHERTYPE_DA (1 << 5)
262949b49cdaSZbigniew Bodek /* Interrupt enable WoL EtherType+L2 Broadcast detected  packet */
263049b49cdaSZbigniew Bodek #define EC_WOL_WOL_EN_INTRPT_EN_ETHERTYPE_BC (1 << 6)
263149b49cdaSZbigniew Bodek /* Interrupt enable WoL parser detected  packet */
263249b49cdaSZbigniew Bodek #define EC_WOL_WOL_EN_INTRPT_EN_PARSER   (1 << 7)
263349b49cdaSZbigniew Bodek /* Interrupt enable WoL magic detected  packet */
263449b49cdaSZbigniew Bodek #define EC_WOL_WOL_EN_INTRPT_EN_MAGIC    (1 << 8)
263549b49cdaSZbigniew Bodek /* Interrupt enable WoL magic+password detected  packet */
263649b49cdaSZbigniew Bodek #define EC_WOL_WOL_EN_INTRPT_EN_MAGIC_PSWD (1 << 9)
263749b49cdaSZbigniew Bodek /* Forward enable WoL MAC DA Unicast detected  packet */
263849b49cdaSZbigniew Bodek #define EC_WOL_WOL_EN_FWRD_EN_UNICAST    (1 << 16)
263949b49cdaSZbigniew Bodek /* Forward enable WoL L2 Multicast detected  packet */
264049b49cdaSZbigniew Bodek #define EC_WOL_WOL_EN_FWRD_EN_MULTICAST  (1 << 17)
264149b49cdaSZbigniew Bodek /* Forward enable WoL L2 Broadcast detected  packet */
264249b49cdaSZbigniew Bodek #define EC_WOL_WOL_EN_FWRD_EN_BROADCAST  (1 << 18)
264349b49cdaSZbigniew Bodek /* Forward enable WoL IPv4 detected  packet */
264449b49cdaSZbigniew Bodek #define EC_WOL_WOL_EN_FWRD_EN_IPV4       (1 << 19)
264549b49cdaSZbigniew Bodek /* Forward enable WoL IPv6 detected  packet */
264649b49cdaSZbigniew Bodek #define EC_WOL_WOL_EN_FWRD_EN_IPV6       (1 << 20)
264749b49cdaSZbigniew Bodek /* Forward enable WoL EtherType+MAC DA detected  packet */
264849b49cdaSZbigniew Bodek #define EC_WOL_WOL_EN_FWRD_EN_ETHERTYPE_DA (1 << 21)
264949b49cdaSZbigniew Bodek /* Forward enable WoL EtherType+L2 Broadcast detected  packet */
265049b49cdaSZbigniew Bodek #define EC_WOL_WOL_EN_FWRD_EN_ETHERTYPE_BC (1 << 22)
265149b49cdaSZbigniew Bodek /* Forward enable WoL parser detected  packet */
265249b49cdaSZbigniew Bodek #define EC_WOL_WOL_EN_FWRD_EN_PARSER     (1 << 23)
265349b49cdaSZbigniew Bodek 
265449b49cdaSZbigniew Bodek /**** magic_pswd_h register ****/
265549b49cdaSZbigniew Bodek /* Password for magic_password packet detection - bits 47:32 */
265649b49cdaSZbigniew Bodek #define EC_WOL_MAGIC_PSWD_H_VAL_MASK     0x0000FFFF
265749b49cdaSZbigniew Bodek #define EC_WOL_MAGIC_PSWD_H_VAL_SHIFT    0
265849b49cdaSZbigniew Bodek 
265949b49cdaSZbigniew Bodek /**** ethertype register ****/
266049b49cdaSZbigniew Bodek /* Configured EtherType 1 for WoL EtherType_da/EtherType_bc pack ... */
266149b49cdaSZbigniew Bodek #define EC_WOL_ETHERTYPE_VAL_1_MASK      0x0000FFFF
266249b49cdaSZbigniew Bodek #define EC_WOL_ETHERTYPE_VAL_1_SHIFT     0
266349b49cdaSZbigniew Bodek /* Configured EtherType 2 for WoL EtherType_da/EtherType_bc pack ... */
266449b49cdaSZbigniew Bodek #define EC_WOL_ETHERTYPE_VAL_2_MASK      0xFFFF0000
266549b49cdaSZbigniew Bodek #define EC_WOL_ETHERTYPE_VAL_2_SHIFT     16
266649b49cdaSZbigniew Bodek 
266749b49cdaSZbigniew Bodek #define EC_PTH_SYSTEM_TIME_SUBSECONDS_LSB_VAL_MASK 0xFFFFC000
266849b49cdaSZbigniew Bodek #define EC_PTH_SYSTEM_TIME_SUBSECONDS_LSB_VAL_SHIFT 14
266949b49cdaSZbigniew Bodek 
267049b49cdaSZbigniew Bodek #define EC_PTH_CLOCK_PERIOD_LSB_VAL_MASK 0xFFFFC000
267149b49cdaSZbigniew Bodek #define EC_PTH_CLOCK_PERIOD_LSB_VAL_SHIFT 14
267249b49cdaSZbigniew Bodek 
267349b49cdaSZbigniew Bodek /**** int_update_ctrl register ****/
267449b49cdaSZbigniew Bodek /* This field chooses between two methods for SW to update the s ... */
267549b49cdaSZbigniew Bodek #define EC_PTH_INT_UPDATE_CTRL_UPDATE_TRIG (1 << 0)
267649b49cdaSZbigniew Bodek /* 3'b000 - Set system time according to the value in {int_updat ... */
267749b49cdaSZbigniew Bodek #define EC_PTH_INT_UPDATE_CTRL_UPDATE_METHOD_MASK 0x0000000E
267849b49cdaSZbigniew Bodek #define EC_PTH_INT_UPDATE_CTRL_UPDATE_METHOD_SHIFT 1
267949b49cdaSZbigniew Bodek /* 1'b1 - Next update writes to system_time_subseconds1'b0 - Nex ... */
268049b49cdaSZbigniew Bodek #define EC_PTH_INT_UPDATE_CTRL_SUBSECOND_MASK (1 << 4)
268149b49cdaSZbigniew Bodek /* 1'b1 - Next update writes to system_time_seconds1'b0 - Next u ... */
268249b49cdaSZbigniew Bodek #define EC_PTH_INT_UPDATE_CTRL_SECOND_MASK (1 << 5)
268349b49cdaSZbigniew Bodek /* Enabling / disabling the internal ingress trigger (ingress_tr ... */
268449b49cdaSZbigniew Bodek #define EC_PTH_INT_UPDATE_CTRL_INT_TRIG_EN (1 << 16)
268549b49cdaSZbigniew Bodek /* Determines if internal ingress trigger (ingress_trigger #0) s ... */
268649b49cdaSZbigniew Bodek #define EC_PTH_INT_UPDATE_CTRL_PULSE_LEVEL_N (1 << 17)
268749b49cdaSZbigniew Bodek /* Internal ingress trigger polarity (ingress_trigger #0)1'b0 -  ... */
268849b49cdaSZbigniew Bodek #define EC_PTH_INT_UPDATE_CTRL_POLARITY  (1 << 18)
268949b49cdaSZbigniew Bodek 
269049b49cdaSZbigniew Bodek /**** int_update_subseconds_lsb register ****/
269149b49cdaSZbigniew Bodek 
269249b49cdaSZbigniew Bodek #define EC_PTH_INT_UPDATE_SUBSECONDS_LSB_RESERVED_13_0_MASK 0x00003FFF
269349b49cdaSZbigniew Bodek #define EC_PTH_INT_UPDATE_SUBSECONDS_LSB_RESERVED_13_0_SHIFT 0
269449b49cdaSZbigniew Bodek 
269549b49cdaSZbigniew Bodek #define EC_PTH_INT_UPDATE_SUBSECONDS_LSB_VAL_MASK 0xFFFFC000
269649b49cdaSZbigniew Bodek #define EC_PTH_INT_UPDATE_SUBSECONDS_LSB_VAL_SHIFT 14
269749b49cdaSZbigniew Bodek /* 3'b000 - Set system time according to the value in {int_updat ... */
269849b49cdaSZbigniew Bodek #define EC_PTH_EXT_UPDATE_CTRL_UPDATE_METHOD_MASK 0x0000000E
269949b49cdaSZbigniew Bodek #define EC_PTH_EXT_UPDATE_CTRL_UPDATE_METHOD_SHIFT 1
270049b49cdaSZbigniew Bodek /* 1'b1 - next update writes to system_time_subseconds1'b0 - nex ... */
270149b49cdaSZbigniew Bodek #define EC_PTH_EXT_UPDATE_CTRL_SUBSECOND_MASK (1 << 4)
270249b49cdaSZbigniew Bodek /* 1'b1 - Next update writes to system_time_seconds1'b0 - Next u ... */
270349b49cdaSZbigniew Bodek #define EC_PTH_EXT_UPDATE_CTRL_SECOND_MASK (1 << 5)
270449b49cdaSZbigniew Bodek /* Enabling / disabling the external ingress triggers (ingress_t ... */
270549b49cdaSZbigniew Bodek #define EC_PTH_EXT_UPDATE_CTRL_EXT_TRIG_EN_MASK 0x00001F00
270649b49cdaSZbigniew Bodek #define EC_PTH_EXT_UPDATE_CTRL_EXT_TRIG_EN_SHIFT 8
270749b49cdaSZbigniew Bodek /* Determines if external ingress triggers (ingress_triggers #1- ... */
270849b49cdaSZbigniew Bodek #define EC_PTH_EXT_UPDATE_CTRL_PULSE_LEVEL_N_MASK 0x001F0000
270949b49cdaSZbigniew Bodek #define EC_PTH_EXT_UPDATE_CTRL_PULSE_LEVEL_N_SHIFT 16
271049b49cdaSZbigniew Bodek /* bit-field configurations of external ingress trigger polarity ... */
271149b49cdaSZbigniew Bodek #define EC_PTH_EXT_UPDATE_CTRL_POLARITY_MASK 0x1F000000
271249b49cdaSZbigniew Bodek #define EC_PTH_EXT_UPDATE_CTRL_POLARITY_SHIFT 24
271349b49cdaSZbigniew Bodek 
271449b49cdaSZbigniew Bodek /**** ext_update_subseconds_lsb register ****/
271549b49cdaSZbigniew Bodek 
271649b49cdaSZbigniew Bodek #define EC_PTH_EXT_UPDATE_SUBSECONDS_LSB_RESERVED_13_0_MASK 0x00003FFF
271749b49cdaSZbigniew Bodek #define EC_PTH_EXT_UPDATE_SUBSECONDS_LSB_RESERVED_13_0_SHIFT 0
271849b49cdaSZbigniew Bodek 
271949b49cdaSZbigniew Bodek #define EC_PTH_EXT_UPDATE_SUBSECONDS_LSB_VAL_MASK 0xFFFFC000
272049b49cdaSZbigniew Bodek #define EC_PTH_EXT_UPDATE_SUBSECONDS_LSB_VAL_SHIFT 14
272149b49cdaSZbigniew Bodek 
272249b49cdaSZbigniew Bodek #define EC_PTH_READ_COMPENSATION_SUBSECONDS_LSB_VAL_MASK 0xFFFFC000
272349b49cdaSZbigniew Bodek #define EC_PTH_READ_COMPENSATION_SUBSECONDS_LSB_VAL_SHIFT 14
272449b49cdaSZbigniew Bodek 
272549b49cdaSZbigniew Bodek #define EC_PTH_INT_WRITE_COMPENSATION_SUBSECONDS_LSB_VAL_MASK 0xFFFFC000
272649b49cdaSZbigniew Bodek #define EC_PTH_INT_WRITE_COMPENSATION_SUBSECONDS_LSB_VAL_SHIFT 14
272749b49cdaSZbigniew Bodek 
272849b49cdaSZbigniew Bodek #define EC_PTH_EXT_WRITE_COMPENSATION_SUBSECONDS_LSB_VAL_MASK 0xFFFFC000
272949b49cdaSZbigniew Bodek #define EC_PTH_EXT_WRITE_COMPENSATION_SUBSECONDS_LSB_VAL_SHIFT 14
273049b49cdaSZbigniew Bodek 
273149b49cdaSZbigniew Bodek #define EC_PTH_SYNC_COMPENSATION_SUBSECONDS_LSB_VAL_MASK 0xFFFFC000
273249b49cdaSZbigniew Bodek #define EC_PTH_SYNC_COMPENSATION_SUBSECONDS_LSB_VAL_SHIFT 14
273349b49cdaSZbigniew Bodek 
273449b49cdaSZbigniew Bodek /**** trigger_ctrl register ****/
273549b49cdaSZbigniew Bodek /* Enabling / disabling the egress trigger1'b1 - Enabled1'b0 - D ... */
273649b49cdaSZbigniew Bodek #define EC_PTH_EGRESS_TRIGGER_CTRL_EN    (1 << 0)
273749b49cdaSZbigniew Bodek /* Configuration that determines if the egress trigger is a peri ... */
273849b49cdaSZbigniew Bodek #define EC_PTH_EGRESS_TRIGGER_CTRL_PERIODIC (1 << 1)
273949b49cdaSZbigniew Bodek /* Configuration of egress trigger polarity */
274049b49cdaSZbigniew Bodek #define EC_PTH_EGRESS_TRIGGER_CTRL_POLARITY (1 << 2)
274149b49cdaSZbigniew Bodek /* If the pulse is marked as periodic (see periodic field), this ... */
274249b49cdaSZbigniew Bodek #define EC_PTH_EGRESS_TRIGGER_CTRL_PERIOD_SUBSEC_MASK 0x00FFFFF0
274349b49cdaSZbigniew Bodek #define EC_PTH_EGRESS_TRIGGER_CTRL_PERIOD_SUBSEC_SHIFT 4
274449b49cdaSZbigniew Bodek /* If the pulse is marked as periodic (see periodic field), this ... */
274549b49cdaSZbigniew Bodek #define EC_PTH_EGRESS_TRIGGER_CTRL_PERIOD_SEC_MASK 0xFF000000
274649b49cdaSZbigniew Bodek #define EC_PTH_EGRESS_TRIGGER_CTRL_PERIOD_SEC_SHIFT 24
274749b49cdaSZbigniew Bodek 
274849b49cdaSZbigniew Bodek /**** trigger_subseconds_lsb register ****/
274949b49cdaSZbigniew Bodek 
275049b49cdaSZbigniew Bodek #define EC_PTH_EGRESS_TRIGGER_SUBSECONDS_LSB_RESERVED_13_0_MASK 0x00003FFF
275149b49cdaSZbigniew Bodek #define EC_PTH_EGRESS_TRIGGER_SUBSECONDS_LSB_RESERVED_13_0_SHIFT 0
275249b49cdaSZbigniew Bodek 
275349b49cdaSZbigniew Bodek #define EC_PTH_EGRESS_TRIGGER_SUBSECONDS_LSB_VAL_MASK 0xFFFFC000
275449b49cdaSZbigniew Bodek #define EC_PTH_EGRESS_TRIGGER_SUBSECONDS_LSB_VAL_SHIFT 14
275549b49cdaSZbigniew Bodek 
275649b49cdaSZbigniew Bodek /**** pulse_width_subseconds_lsb register ****/
275749b49cdaSZbigniew Bodek 
275849b49cdaSZbigniew Bodek #define EC_PTH_EGRESS_PULSE_WIDTH_SUBSECONDS_LSB_RESERVED_13_0_MASK 0x00003FFF
275949b49cdaSZbigniew Bodek #define EC_PTH_EGRESS_PULSE_WIDTH_SUBSECONDS_LSB_RESERVED_13_0_SHIFT 0
276049b49cdaSZbigniew Bodek 
276149b49cdaSZbigniew Bodek #define EC_PTH_EGRESS_PULSE_WIDTH_SUBSECONDS_LSB_VAL_MASK 0xFFFFC000
276249b49cdaSZbigniew Bodek #define EC_PTH_EGRESS_PULSE_WIDTH_SUBSECONDS_LSB_VAL_SHIFT 14
276349b49cdaSZbigniew Bodek 
276449b49cdaSZbigniew Bodek /**** qual register ****/
276549b49cdaSZbigniew Bodek 
276649b49cdaSZbigniew Bodek #define EC_PTH_DB_QUAL_TS_VALID       (1 << 0)
276749b49cdaSZbigniew Bodek 
276849b49cdaSZbigniew Bodek #define EC_PTH_DB_QUAL_RESERVED_31_1_MASK 0xFFFFFFFE
276949b49cdaSZbigniew Bodek #define EC_PTH_DB_QUAL_RESERVED_31_1_SHIFT 1
277049b49cdaSZbigniew Bodek 
277149b49cdaSZbigniew Bodek /**** rx_comp_desc register ****/
277249b49cdaSZbigniew Bodek /* Selection for word0[13]:0- legacy SR-A01- per generic protoco ... */
277349b49cdaSZbigniew Bodek #define EC_GEN_V3_RX_COMP_DESC_W0_L3_CKS_RES_SEL (1 << 0)
277449b49cdaSZbigniew Bodek /* Selection for word0[14]:0- legacy SR-A01- per generic protoco ... */
277549b49cdaSZbigniew Bodek #define EC_GEN_V3_RX_COMP_DESC_W0_L4_CKS_RES_SEL (1 << 1)
277649b49cdaSZbigniew Bodek /* Selection for word3[29]:0-macsec decryption status[13] (legac ... */
277749b49cdaSZbigniew Bodek #define EC_GEN_V3_RX_COMP_DESC_W3_DEC_STAT_13_L4_CKS_RES_SEL (1 << 8)
277849b49cdaSZbigniew Bodek /* Selection for word3[30]:0-macsec decryption status[14] (legac ... */
277949b49cdaSZbigniew Bodek #define EC_GEN_V3_RX_COMP_DESC_W3_DEC_STAT_14_L3_CKS_RES_SEL (1 << 9)
278049b49cdaSZbigniew Bodek /* Selection for word3[31]:0-macsec decryption status[15] (legac ... */
278149b49cdaSZbigniew Bodek #define EC_GEN_V3_RX_COMP_DESC_W3_DEC_STAT_15_CRC_RES_SEL (1 << 10)
278249b49cdaSZbigniew Bodek /* Selection for word 0 [6:5], source VLAN count0- source vlan c ... */
278349b49cdaSZbigniew Bodek #define EC_GEN_V3_RX_COMP_DESC_W0_SRC_VLAN_CNT (1 << 12)
278449b49cdaSZbigniew Bodek /* Selection for word 0 [4:0], l3 protocol index0-  l3 protocol  ... */
278549b49cdaSZbigniew Bodek #define EC_GEN_V3_RX_COMP_DESC_W0_L3_PROT_INDEX (1 << 13)
278649b49cdaSZbigniew Bodek /* Selection for word 1 [31:16], lP fragment checksum0-  IP frag ... */
278749b49cdaSZbigniew Bodek #define EC_GEN_V3_RX_COMP_DESC_W1_IP_FRAG_CHECKSUM (1 << 14)
278849b49cdaSZbigniew Bodek /* Selection for word 2 [15:9], L3 offset0-  LL3 offset1- CRC re ... */
278949b49cdaSZbigniew Bodek #define EC_GEN_V3_RX_COMP_DESC_W2_L3_OFFSET (1 << 15)
279049b49cdaSZbigniew Bodek /* Selection for word 2 [8:0], tunnel offset0-  tunnel offset1-  ... */
279149b49cdaSZbigniew Bodek #define EC_GEN_V3_RX_COMP_DESC_W2_TUNNEL_OFFSET (1 << 16)
279249b49cdaSZbigniew Bodek 
279349b49cdaSZbigniew Bodek /**** conf register ****/
279449b49cdaSZbigniew Bodek /* Valid signal configuration when in loopback mode:00 - valid f ... */
279549b49cdaSZbigniew Bodek #define EC_GEN_V3_CONF_MAC_LB_EC_OUT_S_VALID_CFG_MASK 0x00000003
279649b49cdaSZbigniew Bodek #define EC_GEN_V3_CONF_MAC_LB_EC_OUT_S_VALID_CFG_SHIFT 0
279749b49cdaSZbigniew Bodek /* Valid signal configuration when in loopback mode:00 – valid f ... */
279849b49cdaSZbigniew Bodek #define EC_GEN_V3_CONF_MAC_LB_EC_IN_S_VALID_CFG_MASK 0x0000000C
279949b49cdaSZbigniew Bodek #define EC_GEN_V3_CONF_MAC_LB_EC_IN_S_VALID_CFG_SHIFT 2
280049b49cdaSZbigniew Bodek 
280149b49cdaSZbigniew Bodek /**** tx_gpd_cam_addr register ****/
280249b49cdaSZbigniew Bodek /* Cam compare table address */
280349b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GPD_CAM_ADDR_VAL_MASK 0x0000001F
280449b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GPD_CAM_ADDR_VAL_SHIFT 0
280549b49cdaSZbigniew Bodek /* cam entry is valid */
280649b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GPD_CAM_CTRL_VALID  (1 << 31)
280749b49cdaSZbigniew Bodek 
280849b49cdaSZbigniew Bodek /**** tx_gcp_legacy register ****/
280949b49cdaSZbigniew Bodek /* 0-choose parameters from table1- choose legacy crce roce para ... */
281049b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_LEGACY_PARAM_SEL (1 << 0)
281149b49cdaSZbigniew Bodek 
281249b49cdaSZbigniew Bodek /**** tx_gcp_table_addr register ****/
281349b49cdaSZbigniew Bodek /* parametrs table address */
281449b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_ADDR_VAL_MASK 0x0000001F
281549b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_ADDR_VAL_SHIFT 0
281649b49cdaSZbigniew Bodek 
281749b49cdaSZbigniew Bodek /**** tx_gcp_table_gen register ****/
281849b49cdaSZbigniew Bodek /* polynomial selcet
281949b49cdaSZbigniew Bodek 0-crc32(0x104C11DB7)
282049b49cdaSZbigniew Bodek 1-crc32c(0x11EDC6F41) */
282149b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_GEN_POLY_SEL (1 << 0)
282249b49cdaSZbigniew Bodek /* Enable bit complement on crc result */
282349b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_GEN_CRC32_BIT_COMP (1 << 1)
282449b49cdaSZbigniew Bodek /* Enable bit swap on crc result */
282549b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_GEN_CRC32_BIT_SWAP (1 << 2)
282649b49cdaSZbigniew Bodek /* Enable byte swap on crc result */
282749b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_GEN_CRC32_BYTE_SWAP (1 << 3)
282849b49cdaSZbigniew Bodek /* Enable bit swap on input data */
282949b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_GEN_DATA_BIT_SWAP (1 << 4)
283049b49cdaSZbigniew Bodek /* Enable byte swap on input data */
283149b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_GEN_DATA_BYTE_SWAP (1 << 5)
283249b49cdaSZbigniew Bodek /* Number of bytes in trailer which are not part of crc calculat ... */
283349b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_GEN_TRAIL_SIZE_MASK 0x000003C0
283449b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_GEN_TRAIL_SIZE_SHIFT 6
283549b49cdaSZbigniew Bodek /* Number of bytes in header which are not part of crc calculati ... */
283649b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_GEN_HEAD_SIZE_MASK 0x00FF0000
283749b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_GEN_HEAD_SIZE_SHIFT 16
283849b49cdaSZbigniew Bodek /* corrected offset calculation0- subtract head_size (roce)1- ad ... */
283949b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_GEN_HEAD_CALC (1 << 24)
284049b49cdaSZbigniew Bodek /* 0-replace masked bits with 01-replace masked bits with 1 (roc ... */
284149b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_GEN_MASK_POLARITY (1 << 25)
284249b49cdaSZbigniew Bodek 
284349b49cdaSZbigniew Bodek /**** tx_gcp_table_res register ****/
284449b49cdaSZbigniew Bodek /* Not in use */
284549b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_RES_SEL_MASK 0x0000001F
284649b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_RES_SEL_SHIFT 0
284749b49cdaSZbigniew Bodek /* Not in use */
284849b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_RES_EN    (1 << 5)
284949b49cdaSZbigniew Bodek /* Not in use */
285049b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_RES_DEF   (1 << 6)
285149b49cdaSZbigniew Bodek 
285249b49cdaSZbigniew Bodek /**** tx_gcp_table_alu_opcode register ****/
285349b49cdaSZbigniew Bodek /* first opcode
285449b49cdaSZbigniew Bodek e.g. (A op1 B) op3 (C op2 D) */
285549b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_ALU_OPCODE_OPCODE_1_MASK 0x0000003F
285649b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_ALU_OPCODE_OPCODE_1_SHIFT 0
285749b49cdaSZbigniew Bodek /* second opcode
285849b49cdaSZbigniew Bodek e.g. (A op1 B) op3 (C op2 D) */
285949b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_ALU_OPCODE_OPCODE_2_MASK 0x00000FC0
286049b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_ALU_OPCODE_OPCODE_2_SHIFT 6
286149b49cdaSZbigniew Bodek /* third opcode
286249b49cdaSZbigniew Bodek e.g. (A op1 B) op3 (C op2 D) */
286349b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_ALU_OPCODE_OPCODE_3_MASK 0x0003F000
286449b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_ALU_OPCODE_OPCODE_3_SHIFT 12
286549b49cdaSZbigniew Bodek 
286649b49cdaSZbigniew Bodek /**** tx_gcp_table_alu_opsel register ****/
286749b49cdaSZbigniew Bodek /* frst opsel, input selection */
286849b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_ALU_OPSEL_OPSEL_1_MASK 0x0000000F
286949b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_ALU_OPSEL_OPSEL_1_SHIFT 0
287049b49cdaSZbigniew Bodek /* second opsel, input selection */
287149b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_ALU_OPSEL_OPSEL_2_MASK 0x000000F0
287249b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_ALU_OPSEL_OPSEL_2_SHIFT 4
287349b49cdaSZbigniew Bodek /* third opsel, input selction */
287449b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_ALU_OPSEL_OPSEL_3_MASK 0x00000F00
287549b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_ALU_OPSEL_OPSEL_3_SHIFT 8
287649b49cdaSZbigniew Bodek /* fourth opsel, input selction */
287749b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_ALU_OPSEL_OPSEL_4_MASK 0x0000F000
287849b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_ALU_OPSEL_OPSEL_4_SHIFT 12
287949b49cdaSZbigniew Bodek 
288049b49cdaSZbigniew Bodek /**** tx_gcp_table_alu_val register ****/
288149b49cdaSZbigniew Bodek /* value for alu input */
288249b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_ALU_VAL_VAL_MASK 0x000001FF
288349b49cdaSZbigniew Bodek #define EC_TFW_V3_TX_GCP_TABLE_ALU_VAL_VAL_SHIFT 0
288449b49cdaSZbigniew Bodek 
288549b49cdaSZbigniew Bodek /**** crc_csum_replace register ****/
288649b49cdaSZbigniew Bodek /* 0- use table
288749b49cdaSZbigniew Bodek 1- legacy SR-A0 */
288849b49cdaSZbigniew Bodek #define EC_TFW_V3_CRC_CSUM_REPLACE_L3_CSUM_LEGACY_SEL (1 << 0)
288949b49cdaSZbigniew Bodek /* 0- use table
289049b49cdaSZbigniew Bodek 1- legacy SR-A0 */
289149b49cdaSZbigniew Bodek #define EC_TFW_V3_CRC_CSUM_REPLACE_L4_CSUM_LEGACY_SEL (1 << 1)
289249b49cdaSZbigniew Bodek /* 0- use table
289349b49cdaSZbigniew Bodek 1- legacy SR-A0 */
289449b49cdaSZbigniew Bodek #define EC_TFW_V3_CRC_CSUM_REPLACE_CRC_LEGACY_SEL (1 << 2)
289549b49cdaSZbigniew Bodek 
289649b49cdaSZbigniew Bodek /**** crc_csum_replace_table_addr register ****/
289749b49cdaSZbigniew Bodek /* parametrs table address */
289849b49cdaSZbigniew Bodek #define EC_TFW_V3_CRC_CSUM_REPLACE_TABLE_ADDR_VAL_MASK 0x0000007F
289949b49cdaSZbigniew Bodek #define EC_TFW_V3_CRC_CSUM_REPLACE_TABLE_ADDR_VAL_SHIFT 0
290049b49cdaSZbigniew Bodek 
290149b49cdaSZbigniew Bodek /**** crc_csum_replace_table register ****/
290249b49cdaSZbigniew Bodek /* L3 Checksum replace enable */
290349b49cdaSZbigniew Bodek #define EC_TFW_V3_CRC_CSUM_REPLACE_TABLE_L3_CSUM_EN (1 << 0)
290449b49cdaSZbigniew Bodek /* L4 Checksum replace enable */
290549b49cdaSZbigniew Bodek #define EC_TFW_V3_CRC_CSUM_REPLACE_TABLE_L4_CSUM_EN (1 << 1)
290649b49cdaSZbigniew Bodek /* CRC replace enable */
290749b49cdaSZbigniew Bodek #define EC_TFW_V3_CRC_CSUM_REPLACE_TABLE_CRC_EN (1 << 2)
290849b49cdaSZbigniew Bodek 
290949b49cdaSZbigniew Bodek /**** rx_gpd_cam_addr register ****/
291049b49cdaSZbigniew Bodek /* Cam compare table address */
291149b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GPD_CAM_ADDR_VAL_MASK 0x0000001F
291249b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GPD_CAM_ADDR_VAL_SHIFT 0
291349b49cdaSZbigniew Bodek /* cam entry is valid */
291449b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GPD_CAM_CTRL_VALID  (1 << 31)
291549b49cdaSZbigniew Bodek 
291649b49cdaSZbigniew Bodek /**** gpd_p1 register ****/
291749b49cdaSZbigniew Bodek /* Location in bytes of the gpd cam data1 in the parser result v ... */
291849b49cdaSZbigniew Bodek #define EC_RFW_V3_GPD_P1_OFFSET_MASK     0x000003FF
291949b49cdaSZbigniew Bodek #define EC_RFW_V3_GPD_P1_OFFSET_SHIFT    0
292049b49cdaSZbigniew Bodek 
292149b49cdaSZbigniew Bodek /**** gpd_p2 register ****/
292249b49cdaSZbigniew Bodek /* Location in bytes of the gpd cam data2 in the parser result v ... */
292349b49cdaSZbigniew Bodek #define EC_RFW_V3_GPD_P2_OFFSET_MASK     0x000003FF
292449b49cdaSZbigniew Bodek #define EC_RFW_V3_GPD_P2_OFFSET_SHIFT    0
292549b49cdaSZbigniew Bodek 
292649b49cdaSZbigniew Bodek /**** gpd_p3 register ****/
292749b49cdaSZbigniew Bodek /* Location in bytes of the gpd cam data3 in the parser result v ... */
292849b49cdaSZbigniew Bodek #define EC_RFW_V3_GPD_P3_OFFSET_MASK     0x000003FF
292949b49cdaSZbigniew Bodek #define EC_RFW_V3_GPD_P3_OFFSET_SHIFT    0
293049b49cdaSZbigniew Bodek 
293149b49cdaSZbigniew Bodek /**** gpd_p4 register ****/
293249b49cdaSZbigniew Bodek /* Location in bytes of the gpd cam data4 in the parser result v ... */
293349b49cdaSZbigniew Bodek #define EC_RFW_V3_GPD_P4_OFFSET_MASK     0x000003FF
293449b49cdaSZbigniew Bodek #define EC_RFW_V3_GPD_P4_OFFSET_SHIFT    0
293549b49cdaSZbigniew Bodek 
293649b49cdaSZbigniew Bodek /**** gpd_p5 register ****/
293749b49cdaSZbigniew Bodek /* Location in bytes of the gpd cam data5 in the parser result v ... */
293849b49cdaSZbigniew Bodek #define EC_RFW_V3_GPD_P5_OFFSET_MASK     0x000003FF
293949b49cdaSZbigniew Bodek #define EC_RFW_V3_GPD_P5_OFFSET_SHIFT    0
294049b49cdaSZbigniew Bodek 
294149b49cdaSZbigniew Bodek /**** gpd_p6 register ****/
294249b49cdaSZbigniew Bodek /* Location in bytes of the gpd cam data6 in the parser result v ... */
294349b49cdaSZbigniew Bodek #define EC_RFW_V3_GPD_P6_OFFSET_MASK     0x000003FF
294449b49cdaSZbigniew Bodek #define EC_RFW_V3_GPD_P6_OFFSET_SHIFT    0
294549b49cdaSZbigniew Bodek 
294649b49cdaSZbigniew Bodek /**** gpd_p7 register ****/
294749b49cdaSZbigniew Bodek /* Location in bytes of the gpd cam data7 in the parser result v ... */
294849b49cdaSZbigniew Bodek #define EC_RFW_V3_GPD_P7_OFFSET_MASK     0x000003FF
294949b49cdaSZbigniew Bodek #define EC_RFW_V3_GPD_P7_OFFSET_SHIFT    0
295049b49cdaSZbigniew Bodek 
295149b49cdaSZbigniew Bodek /**** gpd_p8 register ****/
295249b49cdaSZbigniew Bodek /* Location in bytes of the gpd cam data8 in the parser result v ... */
295349b49cdaSZbigniew Bodek #define EC_RFW_V3_GPD_P8_OFFSET_MASK     0x000003FF
295449b49cdaSZbigniew Bodek #define EC_RFW_V3_GPD_P8_OFFSET_SHIFT    0
295549b49cdaSZbigniew Bodek 
295649b49cdaSZbigniew Bodek /**** rx_gcp_legacy register ****/
295749b49cdaSZbigniew Bodek /* 0-choose parameters from table1- choose legacy crce roce para ... */
295849b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_LEGACY_PARAM_SEL (1 << 0)
295949b49cdaSZbigniew Bodek 
296049b49cdaSZbigniew Bodek /**** rx_gcp_table_addr register ****/
296149b49cdaSZbigniew Bodek /* parametrs table address */
296249b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_ADDR_VAL_MASK 0x0000001F
296349b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_ADDR_VAL_SHIFT 0
296449b49cdaSZbigniew Bodek 
296549b49cdaSZbigniew Bodek /**** rx_gcp_table_gen register ****/
296649b49cdaSZbigniew Bodek /* polynomial selcet
296749b49cdaSZbigniew Bodek 0-crc32(0x104C11DB7)
296849b49cdaSZbigniew Bodek 1-crc32c(0x11EDC6F41) */
296949b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_GEN_POLY_SEL (1 << 0)
297049b49cdaSZbigniew Bodek /* Enable bit complement on crc result */
297149b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_GEN_CRC32_BIT_COMP (1 << 1)
297249b49cdaSZbigniew Bodek /* Enable bit swap on crc result */
297349b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_GEN_CRC32_BIT_SWAP (1 << 2)
297449b49cdaSZbigniew Bodek /* Enable byte swap on crc result */
297549b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_GEN_CRC32_BYTE_SWAP (1 << 3)
297649b49cdaSZbigniew Bodek /* Enable bit swap on input data */
297749b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_GEN_DATA_BIT_SWAP (1 << 4)
297849b49cdaSZbigniew Bodek /* Enable byte swap on input data */
297949b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_GEN_DATA_BYTE_SWAP (1 << 5)
298049b49cdaSZbigniew Bodek /* Number of bytes in trailer which are not part of crc calculat ... */
298149b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_GEN_TRAIL_SIZE_MASK 0x000003C0
298249b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_GEN_TRAIL_SIZE_SHIFT 6
298349b49cdaSZbigniew Bodek /* Number of bytes in header which are not part of crc calculati ... */
298449b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_GEN_HEAD_SIZE_MASK 0x00FF0000
298549b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_GEN_HEAD_SIZE_SHIFT 16
298649b49cdaSZbigniew Bodek /* corrected offset calculation0- subtract head_size (roce)1- ad ... */
298749b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_GEN_HEAD_CALC (1 << 24)
298849b49cdaSZbigniew Bodek /* 0-replace masked bits with 01-replace masked bits with 1 (roc ... */
298949b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_GEN_MASK_POLARITY (1 << 25)
299049b49cdaSZbigniew Bodek 
299149b49cdaSZbigniew Bodek /**** rx_gcp_table_res register ****/
299249b49cdaSZbigniew Bodek /* Bit mask for crc/checksum result options for metadata W0[13][ ... */
299349b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_RES_SEL_0_MASK 0x0000001F
299449b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_RES_SEL_0_SHIFT 0
299549b49cdaSZbigniew Bodek /* Bit mask for crc/checksum result options for metadata W0[14][ ... */
299649b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_RES_SEL_1_MASK 0x000003E0
299749b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_RES_SEL_1_SHIFT 5
299849b49cdaSZbigniew Bodek /* Bit mask for crc/checksum result options for metadata W3[29][ ... */
299949b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_RES_SEL_2_MASK 0x00007C00
300049b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_RES_SEL_2_SHIFT 10
300149b49cdaSZbigniew Bodek /* Bit mask for crc/checksum result options for metadata W3[30][ ... */
300249b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_RES_SEL_3_MASK 0x000F8000
300349b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_RES_SEL_3_SHIFT 15
300449b49cdaSZbigniew Bodek /* Bit mask for crc/checksum result options for metadata W3[31][ ... */
300549b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_RES_SEL_4_MASK 0x01F00000
300649b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_RES_SEL_4_SHIFT 20
300749b49cdaSZbigniew Bodek /* enable crc result check */
300849b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_RES_EN    (1 << 25)
300949b49cdaSZbigniew Bodek /* default value for crc check for non-crc protocol */
301049b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_RES_DEF   (1 << 26)
301149b49cdaSZbigniew Bodek 
301249b49cdaSZbigniew Bodek /**** rx_gcp_table_alu_opcode register ****/
301349b49cdaSZbigniew Bodek /* first opcode
301449b49cdaSZbigniew Bodek e.g. (A op1 B) op3 (C op2 D) */
301549b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_ALU_OPCODE_OPCODE_1_MASK 0x0000003F
301649b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_ALU_OPCODE_OPCODE_1_SHIFT 0
301749b49cdaSZbigniew Bodek /* second opcode
301849b49cdaSZbigniew Bodek e.g. (A op1 B) op3 (C op2 D) */
301949b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_ALU_OPCODE_OPCODE_2_MASK 0x00000FC0
302049b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_ALU_OPCODE_OPCODE_2_SHIFT 6
302149b49cdaSZbigniew Bodek /* third opcode
302249b49cdaSZbigniew Bodek e.g. (A op1 B) op3 (C op2 D) */
302349b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_ALU_OPCODE_OPCODE_3_MASK 0x0003F000
302449b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_ALU_OPCODE_OPCODE_3_SHIFT 12
302549b49cdaSZbigniew Bodek 
302649b49cdaSZbigniew Bodek /**** rx_gcp_table_alu_opsel register ****/
302749b49cdaSZbigniew Bodek /* frst opsel, input selection */
302849b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_ALU_OPSEL_OPSEL_1_MASK 0x0000000F
302949b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_ALU_OPSEL_OPSEL_1_SHIFT 0
303049b49cdaSZbigniew Bodek /* second opsel, input selection */
303149b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_ALU_OPSEL_OPSEL_2_MASK 0x000000F0
303249b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_ALU_OPSEL_OPSEL_2_SHIFT 4
303349b49cdaSZbigniew Bodek /* third opsel, input selction */
303449b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_ALU_OPSEL_OPSEL_3_MASK 0x00000F00
303549b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_ALU_OPSEL_OPSEL_3_SHIFT 8
303649b49cdaSZbigniew Bodek /* fourth opsel, input selction */
303749b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_ALU_OPSEL_OPSEL_4_MASK 0x0000F000
303849b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_ALU_OPSEL_OPSEL_4_SHIFT 12
303949b49cdaSZbigniew Bodek 
304049b49cdaSZbigniew Bodek /**** rx_gcp_table_alu_val register ****/
304149b49cdaSZbigniew Bodek /* value for alu input */
304249b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_ALU_VAL_VAL_MASK 0x000001FF
304349b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_TABLE_ALU_VAL_VAL_SHIFT 0
304449b49cdaSZbigniew Bodek 
304549b49cdaSZbigniew Bodek /**** rx_gcp_alu_p1 register ****/
304649b49cdaSZbigniew Bodek /* Location in bytes of field 1 in the parser result vector */
304749b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_ALU_P1_OFFSET_MASK 0x000003FF
304849b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_ALU_P1_OFFSET_SHIFT 0
304949b49cdaSZbigniew Bodek /* Right shift for field 1 in the parser result vector */
305049b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_ALU_P1_SHIFT_MASK 0x000F0000
305149b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_ALU_P1_SHIFT_SHIFT 16
305249b49cdaSZbigniew Bodek 
305349b49cdaSZbigniew Bodek /**** rx_gcp_alu_p2 register ****/
305449b49cdaSZbigniew Bodek /* Location in bytes of field 2 in the parser result vector */
305549b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_ALU_P2_OFFSET_MASK 0x000003FF
305649b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_ALU_P2_OFFSET_SHIFT 0
305749b49cdaSZbigniew Bodek /* Right shift for field 2 in the parser result vector */
305849b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_ALU_P2_SHIFT_MASK 0x000F0000
305949b49cdaSZbigniew Bodek #define EC_RFW_V3_RX_GCP_ALU_P2_SHIFT_SHIFT 16
306049b49cdaSZbigniew Bodek 
306149b49cdaSZbigniew Bodek /**** hs_ctrl_table_addr register ****/
306249b49cdaSZbigniew Bodek /* Header split control table address */
306349b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_TABLE_ADDR_VAL_MASK 0x000000FF
306449b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_TABLE_ADDR_VAL_SHIFT 0
306549b49cdaSZbigniew Bodek 
306649b49cdaSZbigniew Bodek /**** hs_ctrl_table register ****/
306749b49cdaSZbigniew Bodek /* Header split length select */
306849b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_TABLE_SEL_MASK 0x00000003
306949b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_TABLE_SEL_SHIFT 0
307049b49cdaSZbigniew Bodek /* enable header split */
307149b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_TABLE_ENABLE   (1 << 2)
307249b49cdaSZbigniew Bodek 
307349b49cdaSZbigniew Bodek /**** hs_ctrl_table_alu_opcode register ****/
307449b49cdaSZbigniew Bodek /* first opcode
307549b49cdaSZbigniew Bodek e.g. (A op1 B) op3 (C op2 D) */
307649b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPCODE_OPCODE_1_MASK 0x0000003F
307749b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPCODE_OPCODE_1_SHIFT 0
307849b49cdaSZbigniew Bodek /* second opcode
307949b49cdaSZbigniew Bodek e.g. (A op1 B) op3 (C op2 D) */
308049b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPCODE_OPCODE_2_MASK 0x00000FC0
308149b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPCODE_OPCODE_2_SHIFT 6
308249b49cdaSZbigniew Bodek /* third opcode
308349b49cdaSZbigniew Bodek e.g. (A op1 B) op3 (C op2 D) */
308449b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPCODE_OPCODE_3_MASK 0x0003F000
308549b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPCODE_OPCODE_3_SHIFT 12
308649b49cdaSZbigniew Bodek 
308749b49cdaSZbigniew Bodek /**** hs_ctrl_table_alu_opsel register ****/
308849b49cdaSZbigniew Bodek /* frst opsel, input selection */
308949b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPSEL_OPSEL_1_MASK 0x0000000F
309049b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPSEL_OPSEL_1_SHIFT 0
309149b49cdaSZbigniew Bodek /* second opsel, input selection */
309249b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPSEL_OPSEL_2_MASK 0x000000F0
309349b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPSEL_OPSEL_2_SHIFT 4
309449b49cdaSZbigniew Bodek /* third opsel, input selction */
309549b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPSEL_OPSEL_3_MASK 0x00000F00
309649b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPSEL_OPSEL_3_SHIFT 8
309749b49cdaSZbigniew Bodek /* fourth opsel, input selction */
309849b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPSEL_OPSEL_4_MASK 0x0000F000
309949b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPSEL_OPSEL_4_SHIFT 12
310049b49cdaSZbigniew Bodek 
310149b49cdaSZbigniew Bodek /**** hs_ctrl_table_alu_val register ****/
310249b49cdaSZbigniew Bodek /* value for alu input */
310349b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_TABLE_ALU_VAL_VAL_MASK 0x0000FFFF
310449b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_TABLE_ALU_VAL_VAL_SHIFT 0
310549b49cdaSZbigniew Bodek 
310649b49cdaSZbigniew Bodek /**** hs_ctrl_cfg register ****/
310749b49cdaSZbigniew Bodek /* Header split enable static selction0 – legacy1 – header split ... */
310849b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_CFG_ENABLE_SEL (1 << 0)
310949b49cdaSZbigniew Bodek /* Header split length static selction0 – legacy1 – header split ... */
311049b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_CFG_LENGTH_SEL (1 << 1)
311149b49cdaSZbigniew Bodek 
311249b49cdaSZbigniew Bodek /**** hs_ctrl_alu_p1 register ****/
311349b49cdaSZbigniew Bodek /* Location in bytes of field 1 in the parser result vector */
311449b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_ALU_P1_OFFSET_MASK 0x000003FF
311549b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_ALU_P1_OFFSET_SHIFT 0
311649b49cdaSZbigniew Bodek /* Right shift for field 1 in the parser result vector */
311749b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_ALU_P1_SHIFT_MASK 0x000F0000
311849b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_ALU_P1_SHIFT_SHIFT 16
311949b49cdaSZbigniew Bodek 
312049b49cdaSZbigniew Bodek /**** hs_ctrl_alu_p2 register ****/
312149b49cdaSZbigniew Bodek /* Location in bytes of field 2 in the parser result vector */
312249b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_ALU_P2_OFFSET_MASK 0x000003FF
312349b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_ALU_P2_OFFSET_SHIFT 0
312449b49cdaSZbigniew Bodek /* Right shift for field 2 in the parser result vector */
312549b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_ALU_P2_SHIFT_MASK 0x000F0000
312649b49cdaSZbigniew Bodek #define EC_RFW_V3_HS_CTRL_ALU_P2_SHIFT_SHIFT 16
312749b49cdaSZbigniew Bodek 
312849b49cdaSZbigniew Bodek /**** tx_config register ****/
312949b49cdaSZbigniew Bodek /* [0] pre increment word swap[1] pre increment byte swap[2] pre ... */
313049b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_CONFIG_TWEAK_ENDIANITY_SWAP_MASK 0x0000003F
313149b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_CONFIG_TWEAK_ENDIANITY_SWAP_SHIFT 0
313249b49cdaSZbigniew Bodek /* [0] pre encryption word swap[1] pre encryption byte swap[2] p ... */
313349b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_CONFIG_DATA_ENDIANITY_SWAP_MASK 0x00003F00
313449b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_CONFIG_DATA_ENDIANITY_SWAP_SHIFT 8
313549b49cdaSZbigniew Bodek /* direction flip, used in order to use same TID entry for both TX & RX traffic */
313649b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_CONFIG_CRYPTO_DIR_FLIP (1 << 14)
313749b49cdaSZbigniew Bodek /* Enabling pipe line optimization */
313849b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_CONFIG_PIPE_CALC_EN (1 << 16)
313949b49cdaSZbigniew Bodek /* enable performance counters */
314049b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_CONFIG_PERF_CNT_EN  (1 << 17)
314149b49cdaSZbigniew Bodek /* [0] pre aes word swap[1] pre aes byte swap[2] pre aes bit swa ... */
314249b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_CONFIG_AES_ENDIANITY_SWAP_MASK 0x03F00000
314349b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_CONFIG_AES_ENDIANITY_SWAP_SHIFT 20
314449b49cdaSZbigniew Bodek /* [0] pre aes key word swap[1] pre aes key byte swap[2] pre aes ... */
314549b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_CONFIG_AES_KEY_ENDIANITY_SWAP_MASK 0xFC000000
314649b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_CONFIG_AES_KEY_ENDIANITY_SWAP_SHIFT 26
314749b49cdaSZbigniew Bodek 
314849b49cdaSZbigniew Bodek /**** rx_config register ****/
314949b49cdaSZbigniew Bodek /* [0] pre increment word swap[1] pre increment byte swap[2] pre ... */
315049b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_CONFIG_TWEAK_ENDIANITY_SWAP_MASK 0x0000003F
315149b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_CONFIG_TWEAK_ENDIANITY_SWAP_SHIFT 0
315249b49cdaSZbigniew Bodek /* [0] pre encryption word swap[1] pre encryption byte swap[2] p ... */
315349b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_CONFIG_DATA_ENDIANITY_SWAP_MASK 0x00003F00
315449b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_CONFIG_DATA_ENDIANITY_SWAP_SHIFT 8
315549b49cdaSZbigniew Bodek /* direction flip, used in order to use same TID entry for both TX & RX traffic */
315649b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_CONFIG_CRYPTO_DIR_FLIP (1 << 14)
315749b49cdaSZbigniew Bodek /* Enabling pipe line optimization */
315849b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_CONFIG_PIPE_CALC_EN (1 << 16)
315949b49cdaSZbigniew Bodek /* enable performance counters */
316049b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_CONFIG_PERF_CNT_EN  (1 << 17)
316149b49cdaSZbigniew Bodek /* [0] pre aes word swap[1] pre aes byte swap[2] pre aes bit swa ... */
316249b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_CONFIG_AES_ENDIANITY_SWAP_MASK 0x03F00000
316349b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_CONFIG_AES_ENDIANITY_SWAP_SHIFT 20
316449b49cdaSZbigniew Bodek /* [0] data aes key word swap[1] data aes key byte swap[2] data  ... */
316549b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_CONFIG_AES_KEY_ENDIANITY_SWAP_MASK 0xFC000000
316649b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_CONFIG_AES_KEY_ENDIANITY_SWAP_SHIFT 26
316749b49cdaSZbigniew Bodek 
316849b49cdaSZbigniew Bodek /**** tx_override register ****/
316949b49cdaSZbigniew Bodek /* all transactions are encrypted */
317049b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_OVERRIDE_ENCRYPT_ONLY (1 << 0)
317149b49cdaSZbigniew Bodek /* all transactions are decrypted */
317249b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_OVERRIDE_DECRYPT_ONLY (1 << 1)
317349b49cdaSZbigniew Bodek /* all pkts use IV */
317449b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_OVERRIDE_ALWAYS_DRIVE_IV (1 << 2)
317549b49cdaSZbigniew Bodek /* no pkt uses IV */
317649b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_OVERRIDE_NEVER_DRIVE_IV (1 << 3)
317749b49cdaSZbigniew Bodek /* all pkts perform authentication calculation */
317849b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_OVERRIDE_ALWAYS_PERFORM_SIGN (1 << 4)
317949b49cdaSZbigniew Bodek /* no pkt performs authentication calculation */
318049b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_OVERRIDE_NEVER_PERFORM_SIGN (1 << 5)
318149b49cdaSZbigniew Bodek /* all pkts perform encryption calculation */
318249b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_OVERRIDE_ALWAYS_PERFORM_ENC (1 << 6)
318349b49cdaSZbigniew Bodek /* no pkt performs encryption calculation */
318449b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_OVERRIDE_NEVER_PERFORM_ENC (1 << 7)
318549b49cdaSZbigniew Bodek /* Enforce pkt trimming
318649b49cdaSZbigniew Bodek bit[0] relates to metadata_pkt_trim
318749b49cdaSZbigniew Bodek bit[1] relates to trailer_pkt_trime
318849b49cdaSZbigniew Bodek bit[2] relates to sign_trim
318949b49cdaSZbigniew Bodek bit[3] relates to aes_padding_trim */
319049b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_OVERRIDE_ALWAYS_BYPASS_PKT_TRIM_MASK 0x00000F00
319149b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_OVERRIDE_ALWAYS_BYPASS_PKT_TRIM_SHIFT 8
319249b49cdaSZbigniew Bodek /* Enforce no pkt trimming
319349b49cdaSZbigniew Bodek bit[0] relates to metadata_pkt_trim
319449b49cdaSZbigniew Bodek bit[1] relates to trailer_pkt_trime
319549b49cdaSZbigniew Bodek bit[2] relates to sign_trim
319649b49cdaSZbigniew Bodek bit[3] relates to aes_padding_trim */
319749b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_OVERRIDE_NEVER_BYPASS_PKT_TRIM_MASK 0x0000F000
319849b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_OVERRIDE_NEVER_BYPASS_PKT_TRIM_SHIFT 12
319949b49cdaSZbigniew Bodek /* chicken bit to disable metadata handling optimization */
320049b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_OVERRIDE_EXPLICIT_METADATA_STAGE (1 << 16)
320149b49cdaSZbigniew Bodek 
320249b49cdaSZbigniew Bodek /**** rx_override register ****/
320349b49cdaSZbigniew Bodek /* all transactions are encrypted */
320449b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_OVERRIDE_ENCRYPT_ONLY (1 << 0)
320549b49cdaSZbigniew Bodek /* all transactions are decrypted */
320649b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_OVERRIDE_DECRYPT_ONLY (1 << 1)
320749b49cdaSZbigniew Bodek /* all pkts use IV */
320849b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_OVERRIDE_ALWAYS_DRIVE_IV (1 << 2)
320949b49cdaSZbigniew Bodek /* no pkt uses IV */
321049b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_OVERRIDE_NEVER_DRIVE_IV (1 << 3)
321149b49cdaSZbigniew Bodek /* all pkts perform authentication calculation */
321249b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_OVERRIDE_ALWAYS_PERFORM_SIGN (1 << 4)
321349b49cdaSZbigniew Bodek /* no pkt performs authentication calculation */
321449b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_OVERRIDE_NEVER_PERFORM_SIGN (1 << 5)
321549b49cdaSZbigniew Bodek /* all pkts perform encryption calculation */
321649b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_OVERRIDE_ALWAYS_PERFORM_ENC (1 << 6)
321749b49cdaSZbigniew Bodek /* no pkt performs encryption calculation */
321849b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_OVERRIDE_NEVER_PERFORM_ENC (1 << 7)
321949b49cdaSZbigniew Bodek /* Enforce pkt trimming
322049b49cdaSZbigniew Bodek bit[0] relates to metadata_pkt_trim
322149b49cdaSZbigniew Bodek bit[1] relates to trailer_pkt_trime
322249b49cdaSZbigniew Bodek bit[2] relates to sign_trim
322349b49cdaSZbigniew Bodek bit[3] relates to aes_padding_trim */
322449b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_OVERRIDE_ALWAYS_BYPASS_PKT_TRIM_MASK 0x00000F00
322549b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_OVERRIDE_ALWAYS_BYPASS_PKT_TRIM_SHIFT 8
322649b49cdaSZbigniew Bodek /* Enforce no pkt trimming
322749b49cdaSZbigniew Bodek bit[0] relates to metadata_pkt_trim
322849b49cdaSZbigniew Bodek bit[1] relates to trailer_pkt_trime
322949b49cdaSZbigniew Bodek bit[2] relates to sign_trim
323049b49cdaSZbigniew Bodek bit[3] relates to aes_padding_trim */
323149b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_OVERRIDE_NEVER_BYPASS_PKT_TRIM_MASK 0x0000F000
323249b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_OVERRIDE_NEVER_BYPASS_PKT_TRIM_SHIFT 12
323349b49cdaSZbigniew Bodek /* bit enable for writing to rx_cmpl metadata info */
323449b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_OVERRIDE_META_DATA_WRITE_EN_MASK 0x00070000
323549b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_OVERRIDE_META_DATA_WRITE_EN_SHIFT 16
323649b49cdaSZbigniew Bodek /* chicken bit to disable metadata handling optimization */
323749b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_OVERRIDE_EXPLICIT_METADATA_STAGE (1 << 19)
323849b49cdaSZbigniew Bodek /* crypto metadata offset in the rx cmpl_desc */
323949b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_OVERRIDE_META_DATA_BASE_MASK 0x07F00000
324049b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_OVERRIDE_META_DATA_BASE_SHIFT 20
324149b49cdaSZbigniew Bodek 
324249b49cdaSZbigniew Bodek /**** tx_enc_iv_construction register ****/
324349b49cdaSZbigniew Bodek /* for each IV byte, select between src1 & src2. Src1 & src2 ... */
324449b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_ENC_IV_CONSTRUCTION_MUX_SEL_MASK 0x0000FFFF
324549b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_ENC_IV_CONSTRUCTION_MUX_SEL_SHIFT 0
324649b49cdaSZbigniew Bodek /* configure meaning of mux_sel=1'b0 (2'b00 – zeros, 2'b01 f...  */
324749b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_ENC_IV_CONSTRUCTION_MAP_0_MASK 0x00030000
324849b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_ENC_IV_CONSTRUCTION_MAP_0_SHIFT 16
324949b49cdaSZbigniew Bodek /* configure meaning of mux_sel=1'b1 (2'b00 – zeros, 2'b01 ...  */
325049b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_ENC_IV_CONSTRUCTION_MAP_1_MASK 0x000C0000
325149b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_ENC_IV_CONSTRUCTION_MAP_1_SHIFT 18
325249b49cdaSZbigniew Bodek /* Per-byte mux select taken from Crypto table (otherwise ...  */
325349b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_ENC_IV_CONSTRUCTION_SEL_FROM_TABLE (1 << 20)
325449b49cdaSZbigniew Bodek /* [0] word swap en
325549b49cdaSZbigniew Bodek [1] byte swap en
325649b49cdaSZbigniew Bodek [2] bit swap en */
325749b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_ENC_IV_CONSTRUCTION_ENDIANITY_SWAP_MASK 0x00E00000
325849b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_ENC_IV_CONSTRUCTION_ENDIANITY_SWAP_SHIFT 21
325949b49cdaSZbigniew Bodek 
326049b49cdaSZbigniew Bodek /**** rx_enc_iv_construction register ****/
326149b49cdaSZbigniew Bodek /* for each IV byte, select between src1 & src2. Src1 & src2 ...  */
326249b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_ENC_IV_CONSTRUCTION_MUX_SEL_MASK 0x0000FFFF
326349b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_ENC_IV_CONSTRUCTION_MUX_SEL_SHIFT 0
326449b49cdaSZbigniew Bodek /* configure meaning of mux_sel=1'b0 (2'b00 – zeros, 2'b01 – ...  */
326549b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_ENC_IV_CONSTRUCTION_MAP_0_MASK 0x00030000
326649b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_ENC_IV_CONSTRUCTION_MAP_0_SHIFT 16
326749b49cdaSZbigniew Bodek /* configure meaning of mux_sel=1'b1 (2'b00 – zeros, 2'b01 – ...  */
326849b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_ENC_IV_CONSTRUCTION_MAP_1_MASK 0x000C0000
326949b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_ENC_IV_CONSTRUCTION_MAP_1_SHIFT 18
327049b49cdaSZbigniew Bodek /* Per-byte mux select taken from Crypto table (otherwise from ...  */
327149b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_ENC_IV_CONSTRUCTION_SEL_FROM_TABLE (1 << 20)
327249b49cdaSZbigniew Bodek /* [0] word swap en
327349b49cdaSZbigniew Bodek [1] byte swap en
327449b49cdaSZbigniew Bodek [2] bit swap en */
327549b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_ENC_IV_CONSTRUCTION_ENDIANITY_SWAP_MASK 0x00E00000
327649b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_ENC_IV_CONSTRUCTION_ENDIANITY_SWAP_SHIFT 21
327749b49cdaSZbigniew Bodek 
327849b49cdaSZbigniew Bodek /**** rx_enc_iv_map register ****/
327949b49cdaSZbigniew Bodek /* [0] word swap en
328049b49cdaSZbigniew Bodek [1] byte swap en
328149b49cdaSZbigniew Bodek [2] bit swap en */
328249b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_0_OFFSET_MASK 0x0000001F
328349b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_0_OFFSET_SHIFT 0
328449b49cdaSZbigniew Bodek /* number of valid bytes in word, as generated by field extract ... */
328549b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_0_LENGTH_MASK 0x000000E0
328649b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_0_LENGTH_SHIFT 5
328749b49cdaSZbigniew Bodek /* [0] word swap en
328849b49cdaSZbigniew Bodek [1] byte swap en
328949b49cdaSZbigniew Bodek [2] bit swap en */
329049b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_1_OFFSET_MASK 0x00001F00
329149b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_1_OFFSET_SHIFT 8
329249b49cdaSZbigniew Bodek /* number of valid bytes in word, as generated by field extract ... */
329349b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_1_LENGTH_MASK 0x0000E000
329449b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_1_LENGTH_SHIFT 13
329549b49cdaSZbigniew Bodek /* [0] word swap en
329649b49cdaSZbigniew Bodek [1] byte swap en
329749b49cdaSZbigniew Bodek [2] bit swap en */
329849b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_2_OFFSET_MASK 0x001F0000
329949b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_2_OFFSET_SHIFT 16
330049b49cdaSZbigniew Bodek /* number of valid bytes in word, as generated by field extract ... */
330149b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_2_LENGTH_MASK 0x00E00000
330249b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_2_LENGTH_SHIFT 21
330349b49cdaSZbigniew Bodek /* [0] word swap en
330449b49cdaSZbigniew Bodek [1] byte swap en
330549b49cdaSZbigniew Bodek [2] bit swap en */
330649b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_3_OFFSET_MASK 0x1F000000
330749b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_3_OFFSET_SHIFT 24
330849b49cdaSZbigniew Bodek /* number of valid bytes in word, as generated by field extract ... */
330949b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_3_LENGTH_MASK 0xE0000000
331049b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_3_LENGTH_SHIFT 29
331149b49cdaSZbigniew Bodek 
331249b49cdaSZbigniew Bodek /**** tx_pkt_trim_len register ****/
331349b49cdaSZbigniew Bodek /* metadata shift-reg length */
331449b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_PKT_TRIM_LEN_META_MASK 0x00000007
331549b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_PKT_TRIM_LEN_META_SHIFT 0
331649b49cdaSZbigniew Bodek /* pkt trailer shift-reg length */
331749b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_PKT_TRIM_LEN_TRAIL_MASK 0x000000F0
331849b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_PKT_TRIM_LEN_TRAIL_SHIFT 4
331949b49cdaSZbigniew Bodek /* sign shift-reg length */
332049b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_PKT_TRIM_LEN_SIGN_MASK 0x00000300
332149b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_PKT_TRIM_LEN_SIGN_SHIFT 8
332249b49cdaSZbigniew Bodek /* crypto padding shift-reg length */
332349b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_PKT_TRIM_LEN_CRYPTO_PADDING_MASK 0x00003000
332449b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_PKT_TRIM_LEN_CRYPTO_PADDING_SHIFT 12
332549b49cdaSZbigniew Bodek /* hardware chooses shift-registers configurations automatically – no need for sw configuration */
332649b49cdaSZbigniew Bodek #define EC_CRYPTO_TX_PKT_TRIM_LEN_AUTO_MODE (1 << 16)
332749b49cdaSZbigniew Bodek 
332849b49cdaSZbigniew Bodek /**** rx_pkt_trim_len register ****/
332949b49cdaSZbigniew Bodek /* metadata shift-reg length */
333049b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_PKT_TRIM_LEN_META_MASK 0x00000007
333149b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_PKT_TRIM_LEN_META_SHIFT 0
333249b49cdaSZbigniew Bodek /* pkt trailer shift-reg length */
333349b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_PKT_TRIM_LEN_TRAIL_MASK 0x000000F0
333449b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_PKT_TRIM_LEN_TRAIL_SHIFT 4
333549b49cdaSZbigniew Bodek /* sign shift-reg length */
333649b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_PKT_TRIM_LEN_SIGN_MASK 0x00000300
333749b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_PKT_TRIM_LEN_SIGN_SHIFT 8
333849b49cdaSZbigniew Bodek /* crypto padding shift-reg length */
333949b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_PKT_TRIM_LEN_CRYPTO_PADDING_MASK 0x00003000
334049b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_PKT_TRIM_LEN_CRYPTO_PADDING_SHIFT 12
334149b49cdaSZbigniew Bodek /* hardware chooses shift-registers configurations automatically – no need for sw configuration */
334249b49cdaSZbigniew Bodek #define EC_CRYPTO_RX_PKT_TRIM_LEN_AUTO_MODE (1 << 16)
334349b49cdaSZbigniew Bodek 
334449b49cdaSZbigniew Bodek /**** total_tx_secured_pkts_cipher_mode_cmpr register ****/
334549b49cdaSZbigniew Bodek 
334649b49cdaSZbigniew Bodek #define EC_CRYPTO_PERF_CNTR_TOTAL_TX_SECURED_PKTS_CIPHER_MODE_CMPR_MODE_MASK 0x0000000F
334749b49cdaSZbigniew Bodek #define EC_CRYPTO_PERF_CNTR_TOTAL_TX_SECURED_PKTS_CIPHER_MODE_CMPR_MODE_SHIFT 0
334849b49cdaSZbigniew Bodek 
334949b49cdaSZbigniew Bodek /**** total_rx_secured_pkts_cipher_mode_cmpr register ****/
335049b49cdaSZbigniew Bodek 
335149b49cdaSZbigniew Bodek #define EC_CRYPTO_PERF_CNTR_TOTAL_RX_SECURED_PKTS_CIPHER_MODE_CMPR_MODE_MASK 0x0000000F
335249b49cdaSZbigniew Bodek #define EC_CRYPTO_PERF_CNTR_TOTAL_RX_SECURED_PKTS_CIPHER_MODE_CMPR_MODE_SHIFT 0
335349b49cdaSZbigniew Bodek 
335449b49cdaSZbigniew Bodek #ifdef __cplusplus
335549b49cdaSZbigniew Bodek }
335649b49cdaSZbigniew Bodek #endif
335749b49cdaSZbigniew Bodek 
335849b49cdaSZbigniew Bodek #endif /* __AL_HAL_EC_REG_H */
335949b49cdaSZbigniew Bodek 
336049b49cdaSZbigniew Bodek /** @} end of ... group */
336149b49cdaSZbigniew Bodek 
336249b49cdaSZbigniew Bodek 
3363