Path: blob/main/sys/contrib/alpine-hal/eth/al_hal_eth_ec_regs.h
48255 views
/*-1*******************************************************************************2Copyright (C) 2015 Annapurna Labs Ltd.34This file may be licensed under the terms of the Annapurna Labs Commercial5License Agreement.67Alternatively, this file can be distributed under the terms of the GNU General8Public License V2 as published by the Free Software Foundation and can be9found at http://www.gnu.org/licenses/gpl-2.0.html1011Alternatively, redistribution and use in source and binary forms, with or12without modification, are permitted provided that the following conditions are13met:1415* Redistributions of source code must retain the above copyright notice,16this list of conditions and the following disclaimer.1718* Redistributions in binary form must reproduce the above copyright19notice, this list of conditions and the following disclaimer in20the documentation and/or other materials provided with the21distribution.2223THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND24ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED25WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE26DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR27ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES28(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;29LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON30ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT31(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS32SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.3334*******************************************************************************/3536/**37* @{38* @file al_hal_eth_ec_regs.h39*40* @brief Ethernet controller registers41*42*/4344#ifndef __AL_HAL_EC_REG_H45#define __AL_HAL_EC_REG_H4647#include "al_hal_plat_types.h"4849#ifdef __cplusplus50extern "C" {51#endif52/*53* Unit Registers54*/55565758struct al_ec_gen {59/* [0x0] Ethernet controller Version */60uint32_t version;61/* [0x4] Enable modules operation. */62uint32_t en;63/* [0x8] Enable FIFO operation on the EC side. */64uint32_t fifo_en;65/* [0xc] General L2 configuration for the Ethernet controlle ... */66uint32_t l2;67/* [0x10] Configure protocol index values */68uint32_t cfg_i;69/* [0x14] Configure protocol index values (extended protocols ... */70uint32_t cfg_i_ext;71/* [0x18] Enable modules operation (extended operations). */72uint32_t en_ext;73uint32_t rsrvd[9];74};75struct al_ec_mac {76/* [0x0] General configuration of the MAC side of the Ethern ... */77uint32_t gen;78/* [0x4] Minimum packet size */79uint32_t min_pkt;80/* [0x8] Maximum packet size */81uint32_t max_pkt;82uint32_t rsrvd[13];83};84struct al_ec_rxf {85/* [0x0] Rx FIFO input controller configuration 1 */86uint32_t cfg_1;87/* [0x4] Rx FIFO input controller configuration 2 */88uint32_t cfg_2;89/* [0x8] Threshold to start reading packet from the Rx FIFO */90uint32_t rd_fifo;91/* [0xc] Threshold to stop writing packet to the Rx FIFO */92uint32_t wr_fifo;93/* [0x10] Threshold to stop writing packet to the loopback FI ... */94uint32_t lb_fifo;95/* [0x14] Rx FIFO input controller loopback FIFO configuratio ... */96uint32_t cfg_lb;97/* [0x18] Configuration for dropping packet at the FIFO outpu ... */98uint32_t out_drop;99uint32_t rsrvd[25];100};101struct al_ec_epe {102/* [0x0] Ethernet parsing engine configuration 1 */103uint32_t parse_cfg;104/* [0x4] Protocol index action table address */105uint32_t act_table_addr;106/* [0x8] Protocol index action table data */107uint32_t act_table_data_1;108/* [0xc] Protocol index action table data */109uint32_t act_table_data_2;110/* [0x10] Protocol index action table data */111uint32_t act_table_data_3;112/* [0x14] Protocol index action table data */113uint32_t act_table_data_4;114/* [0x18] Protocol index action table data */115uint32_t act_table_data_5;116/* [0x1c] Protocol index action table data */117uint32_t act_table_data_6;118/* [0x20] Input result vector, default values for parser inpu ... */119uint32_t res_def;120/* [0x24] Result input vector selection */121uint32_t res_in;122uint32_t rsrvd[6];123};124struct al_ec_epe_res {125/* [0x0] Parser result vector pointer */126uint32_t p1;127/* [0x4] Parser result vector pointer */128uint32_t p2;129/* [0x8] Parser result vector pointer */130uint32_t p3;131/* [0xc] Parser result vector pointer */132uint32_t p4;133/* [0x10] Parser result vector pointer */134uint32_t p5;135/* [0x14] Parser result vector pointer */136uint32_t p6;137/* [0x18] Parser result vector pointer */138uint32_t p7;139/* [0x1c] Parser result vector pointer */140uint32_t p8;141/* [0x20] Parser result vector pointer */142uint32_t p9;143/* [0x24] Parser result vector pointer */144uint32_t p10;145/* [0x28] Parser result vector pointer */146uint32_t p11;147/* [0x2c] Parser result vector pointer */148uint32_t p12;149/* [0x30] Parser result vector pointer */150uint32_t p13;151/* [0x34] Parser result vector pointer */152uint32_t p14;153/* [0x38] Parser result vector pointer */154uint32_t p15;155/* [0x3c] Parser result vector pointer */156uint32_t p16;157/* [0x40] Parser result vector pointer */158uint32_t p17;159/* [0x44] Parser result vector pointer */160uint32_t p18;161/* [0x48] Parser result vector pointer */162uint32_t p19;163/* [0x4c] Parser result vector pointer */164uint32_t p20;165uint32_t rsrvd[12];166};167struct al_ec_epe_h {168/* [0x0] Header length, support for header length table for ... */169uint32_t hdr_len;170};171struct al_ec_epe_p {172/* [0x0] Data for comparison */173uint32_t comp_data;174/* [0x4] Mask for comparison */175uint32_t comp_mask;176/* [0x8] Compare control */177uint32_t comp_ctrl;178uint32_t rsrvd[4];179};180struct al_ec_epe_a {181/* [0x0] Protocol index action register */182uint32_t prot_act;183};184struct al_ec_rfw {185/* [0x0] Tuple (4/2) Hash configuration */186uint32_t thash_cfg_1;187/* [0x4] Tuple (4/2) Hash configuration */188uint32_t thash_cfg_2;189/* [0x8] MAC Hash configuration */190uint32_t mhash_cfg_1;191/* [0xc] MAC Hash configuration */192uint32_t mhash_cfg_2;193/* [0x10] MAC Hash configuration */194uint32_t hdr_split;195/* [0x14] Masking the errors described in register rxf_drop ... */196uint32_t meta_err;197/* [0x18] Configuration for generating the MetaData for the R ... */198uint32_t meta;199/* [0x1c] Configuration for generating the MetaData for the R ... */200uint32_t filter;201/* [0x20] 4 tupple hash table address */202uint32_t thash_table_addr;203/* [0x24] 4 tupple hash table data */204uint32_t thash_table_data;205/* [0x28] MAC hash table address */206uint32_t mhash_table_addr;207/* [0x2c] MAC hash table data */208uint32_t mhash_table_data;209/* [0x30] VLAN table address */210uint32_t vid_table_addr;211/* [0x34] VLAN table data */212uint32_t vid_table_data;213/* [0x38] VLAN p-bits table address */214uint32_t pbits_table_addr;215/* [0x3c] VLAN p-bits table data */216uint32_t pbits_table_data;217/* [0x40] DSCP table address */218uint32_t dscp_table_addr;219/* [0x44] DSCP table data */220uint32_t dscp_table_data;221/* [0x48] TC table address */222uint32_t tc_table_addr;223/* [0x4c] TC table data */224uint32_t tc_table_data;225/* [0x50] Control table address */226uint32_t ctrl_table_addr;227/* [0x54] Control table data */228uint32_t ctrl_table_data;229/* [0x58] Forwarding output configuration */230uint32_t out_cfg;231/* [0x5c] Flow steering mechanism,232Table address */233uint32_t fsm_table_addr;234/* [0x60] Flow steering mechanism,235Table data */236uint32_t fsm_table_data;237/* [0x64] Selection of data to be used in packet forwarding0 ... */238uint32_t ctrl_sel;239/* [0x68] Default VLAN data, used for untagged packets */240uint32_t default_vlan;241/* [0x6c] Default HASH output values */242uint32_t default_hash;243/* [0x70] Default override values, if a packet was filtered b ... */244uint32_t default_or;245/* [0x74] Latched information when a drop condition occurred */246uint32_t drop_latch;247/* [0x78] Check sum calculation configuration */248uint32_t checksum;249/* [0x7c] LRO offload engine configuration register */250uint32_t lro_cfg_1;251/* [0x80] LRO offload engine Check rules configurations for I ... */252uint32_t lro_check_ipv4;253/* [0x84] LRO offload engine IPv4 values configuration */254uint32_t lro_ipv4;255/* [0x88] LRO offload engine Check rules configurations for I ... */256uint32_t lro_check_ipv6;257/* [0x8c] LRO offload engine IPv6 values configuration */258uint32_t lro_ipv6;259/* [0x90] LRO offload engine Check rules configurations for T ... */260uint32_t lro_check_tcp;261/* [0x94] LRO offload engine IPv6 values configuration */262uint32_t lro_tcp;263/* [0x98] LRO offload engine Check rules configurations for U ... */264uint32_t lro_check_udp;265/* [0x9c] LRO offload engine Check rules configurations for U ... */266uint32_t lro_check_l2;267/* [0xa0] LRO offload engine Check rules configurations for U ... */268uint32_t lro_check_gen;269/* [0xa4] Rules for storing packet information into the cache ... */270uint32_t lro_store;271/* [0xa8] VLAN table default */272uint32_t vid_table_def;273/* [0xac] Control table default */274uint32_t ctrl_table_def;275/* [0xb0] Additional configuration 0 */276uint32_t cfg_a_0;277/* [0xb4] Tuple (4/2) Hash configuration (extended for RoCE a ... */278uint32_t thash_cfg_3;279/* [0xb8] Tuple (4/2) Hash configuration , mask for the input ... */280uint32_t thash_mask_outer_ipv6;281/* [0xbc] Tuple (4/2) Hash configuration , mask for the input ... */282uint32_t thash_mask_outer;283/* [0xc0] Tuple (4/2) Hash configuration , mask for the input ... */284uint32_t thash_mask_inner_ipv6;285/* [0xc4] Tuple (4/2) Hash configuration , mask for the input ... */286uint32_t thash_mask_inner;287uint32_t rsrvd[10];288};289struct al_ec_rfw_udma {290/* [0x0] Per UDMA default configuration */291uint32_t def_cfg;292};293struct al_ec_rfw_hash {294/* [0x0] key configuration (320 bits) */295uint32_t key;296};297struct al_ec_rfw_priority {298/* [0x0] Priority to queue mapping configuration */299uint32_t queue;300};301struct al_ec_rfw_default {302/* [0x0] Default forwarding configuration options */303uint32_t opt_1;304};305struct al_ec_fwd_mac {306/* [0x0] MAC address data [31:0] */307uint32_t data_l;308/* [0x4] MAC address data [15:0] */309uint32_t data_h;310/* [0x8] MAC address mask [31:0] */311uint32_t mask_l;312/* [0xc] MAC address mask [15:0] */313uint32_t mask_h;314/* [0x10] MAC compare control */315uint32_t ctrl;316};317struct al_ec_msw {318/* [0x0] Configuration for unicast packets */319uint32_t uc;320/* [0x4] Configuration for multicast packets */321uint32_t mc;322/* [0x8] Configuration for broadcast packets */323uint32_t bc;324uint32_t rsrvd[3];325};326struct al_ec_tso {327/* [0x0] Input configuration */328uint32_t in_cfg;329/* [0x4] MetaData default cache table address */330uint32_t cache_table_addr;331/* [0x8] MetaData default cache table data */332uint32_t cache_table_data_1;333/* [0xc] MetaData default cache table data */334uint32_t cache_table_data_2;335/* [0x10] MetaData default cache table data */336uint32_t cache_table_data_3;337/* [0x14] MetaData default cache table data */338uint32_t cache_table_data_4;339/* [0x18] TCP control bit operation for first segment */340uint32_t ctrl_first;341/* [0x1c] TCP control bit operation for middle segments */342uint32_t ctrl_middle;343/* [0x20] TCP control bit operation for last segment */344uint32_t ctrl_last;345/* [0x24] Additional TSO configurations */346uint32_t cfg_add_0;347/* [0x28] TSO configuration for tunnelled packets */348uint32_t cfg_tunnel;349uint32_t rsrvd[13];350};351struct al_ec_tso_sel {352/* [0x0] MSS value */353uint32_t mss;354};355struct al_ec_tpe {356/* [0x0] Parsing configuration */357uint32_t parse;358uint32_t rsrvd[15];359};360struct al_ec_tpm_udma {361/* [0x0] Default VLAN data */362uint32_t vlan_data;363/* [0x4] UDMA MAC SA information for spoofing */364uint32_t mac_sa_1;365/* [0x8] UDMA MAC SA information for spoofing */366uint32_t mac_sa_2;367};368struct al_ec_tpm_sel {369/* [0x0] Ethertype values for VLAN modification */370uint32_t etype;371};372struct al_ec_tfw {373/* [0x0] Tx FIFO Wr configuration */374uint32_t tx_wr_fifo;375/* [0x4] VLAN table address */376uint32_t tx_vid_table_addr;377/* [0x8] VLAN table data */378uint32_t tx_vid_table_data;379/* [0xc] Tx FIFO Rd configuration */380uint32_t tx_rd_fifo;381/* [0x10] Tx FIFO Rd configuration, checksum insertion */382uint32_t tx_checksum;383/* [0x14] Tx forwarding general configuration register */384uint32_t tx_gen;385/* [0x18] Tx spoofing configuration */386uint32_t tx_spf;387/* [0x1c] TX data FIFO status */388uint32_t data_fifo;389/* [0x20] Tx control FIFO status */390uint32_t ctrl_fifo;391/* [0x24] Tx header FIFO status */392uint32_t hdr_fifo;393uint32_t rsrvd[14];394};395struct al_ec_tfw_udma {396/* [0x0] Default GMDA output bitmap for unicast packet */397uint32_t uc_udma;398/* [0x4] Default GMDA output bitmap for multicast packet */399uint32_t mc_udma;400/* [0x8] Default GMDA output bitmap for broadcast packet */401uint32_t bc_udma;402/* [0xc] Tx spoofing configuration */403uint32_t spf_cmd;404/* [0x10] Forwarding decision control */405uint32_t fwd_dec;406uint32_t rsrvd;407};408struct al_ec_tmi {409/* [0x0] Forward packets back to the Rx data path for local ... */410uint32_t tx_cfg;411uint32_t rsrvd[3];412};413struct al_ec_efc {414/* [0x0] Mask of pause_on [7:0] for the Ethernet controller ... */415uint32_t ec_pause;416/* [0x4] Mask of Ethernet controller Almost Full indication ... */417uint32_t ec_xoff;418/* [0x8] Mask for generating XON indication pulse */419uint32_t xon;420/* [0xc] Mask for generating GPIO output XOFF indication fro ... */421uint32_t gpio;422/* [0x10] Rx FIFO threshold for generating the Almost Full in ... */423uint32_t rx_fifo_af;424/* [0x14] Rx FIFO threshold for generating the Almost Full in ... */425uint32_t rx_fifo_hyst;426/* [0x18] Rx FIFO threshold for generating the Almost Full in ... */427uint32_t stat;428/* [0x1c] XOFF timer for the 1G MACSets the interval (in SB_C ... */429uint32_t xoff_timer_1g;430/* [0x20] PFC force flow control generation */431uint32_t ec_pfc;432uint32_t rsrvd[3];433};434struct al_ec_fc_udma {435/* [0x0] Mask of "pause_on" [0] for all queues */436uint32_t q_pause_0;437/* [0x4] Mask of "pause_on" [1] for all queues */438uint32_t q_pause_1;439/* [0x8] Mask of "pause_on" [2] for all queues */440uint32_t q_pause_2;441/* [0xc] Mask of "pause_on" [3] for all queues */442uint32_t q_pause_3;443/* [0x10] Mask of "pause_on" [4] for all queues */444uint32_t q_pause_4;445/* [0x14] Mask of "pause_on" [5] for all queues */446uint32_t q_pause_5;447/* [0x18] Mask of "pause_on" [6] for all queues */448uint32_t q_pause_6;449/* [0x1c] Mask of "pause_on" [7] for all queues */450uint32_t q_pause_7;451/* [0x20] Mask of external GPIO input pause [0] for all queue ... */452uint32_t q_gpio_0;453/* [0x24] Mask of external GPIO input pause [1] for all queue ... */454uint32_t q_gpio_1;455/* [0x28] Mask of external GPIO input pause [2] for all queue ... */456uint32_t q_gpio_2;457/* [0x2c] Mask of external GPIO input pause [3] for all queue ... */458uint32_t q_gpio_3;459/* [0x30] Mask of external GPIO input [4] for all queues */460uint32_t q_gpio_4;461/* [0x34] Mask of external GPIO input [5] for all queues */462uint32_t q_gpio_5;463/* [0x38] Mask of external GPIO input [6] for all queues */464uint32_t q_gpio_6;465/* [0x3c] Mask of external GPIO input [7] for all queues */466uint32_t q_gpio_7;467/* [0x40] Mask of "pause_on" [7:0] for the UDMA stream inter ... */468uint32_t s_pause;469/* [0x44] Mask of Rx Almost Full indication for generating XO ... */470uint32_t q_xoff_0;471/* [0x48] Mask of Rx Almost Full indication for generating XO ... */472uint32_t q_xoff_1;473/* [0x4c] Mask of Rx Almost Full indication for generating XO ... */474uint32_t q_xoff_2;475/* [0x50] Mask of Rx Almost Full indication for generating XO ... */476uint32_t q_xoff_3;477/* [0x54] Mask of Rx Almost Full indication for generating XO ... */478uint32_t q_xoff_4;479/* [0x58] Mask of Rx Almost Full indication for generating XO ... */480uint32_t q_xoff_5;481/* [0x5c] Mask of Rx Almost Full indication for generating XO ... */482uint32_t q_xoff_6;483/* [0x60] Mask of Rx Almost Full indication for generating XO ... */484uint32_t q_xoff_7;485uint32_t rsrvd[7];486};487struct al_ec_tpg_rpa_res {488/* [0x0] NOT used */489uint32_t not_used;490uint32_t rsrvd[63];491};492struct al_ec_eee {493/* [0x0] EEE configuration */494uint32_t cfg_e;495/* [0x4] Number of clocks to get into EEE mode. */496uint32_t pre_cnt;497/* [0x8] Number of clocks to stop MAC EEE mode after getting ... */498uint32_t post_cnt;499/* [0xc] Number of clocks to stop the Tx MAC interface after ... */500uint32_t stop_cnt;501/* [0x10] EEE status */502uint32_t stat_eee;503uint32_t rsrvd[59];504};505struct al_ec_stat {506/* [0x0] Rx Frequency adjust FIFO input packets */507uint32_t faf_in_rx_pkt;508/* [0x4] Rx Frequency adjust FIFO input short error packets */509uint32_t faf_in_rx_short;510/* [0x8] Rx Frequency adjust FIFO input long error packets */511uint32_t faf_in_rx_long;512/* [0xc] Rx Frequency adjust FIFO output packets */513uint32_t faf_out_rx_pkt;514/* [0x10] Rx Frequency adjust FIFO output short error packets ... */515uint32_t faf_out_rx_short;516/* [0x14] Rx Frequency adjust FIFO output long error packets */517uint32_t faf_out_rx_long;518/* [0x18] Rx Frequency adjust FIFO output drop packets */519uint32_t faf_out_drop;520/* [0x1c] Number of packets written into the Rx FIFO (without ... */521uint32_t rxf_in_rx_pkt;522/* [0x20] Number of error packets written into the Rx FIFO (w ... */523uint32_t rxf_in_fifo_err;524/* [0x24] Number of packets written into the loopback FIFO (w ... */525uint32_t lbf_in_rx_pkt;526/* [0x28] Number of error packets written into the loopback F ... */527uint32_t lbf_in_fifo_err;528/* [0x2c] Number of packets read from Rx FIFO 1 */529uint32_t rxf_out_rx_1_pkt;530/* [0x30] Number of packets read from Rx FIFO 2 (loopback FIF ... */531uint32_t rxf_out_rx_2_pkt;532/* [0x34] Rx FIFO output drop packets from FIFO 1 */533uint32_t rxf_out_drop_1_pkt;534/* [0x38] Rx FIFO output drop packets from FIFO 2 (loopback) */535uint32_t rxf_out_drop_2_pkt;536/* [0x3c] Rx Parser 1, input packet counter */537uint32_t rpe_1_in_rx_pkt;538/* [0x40] Rx Parser 1, output packet counter */539uint32_t rpe_1_out_rx_pkt;540/* [0x44] Rx Parser 2, input packet counter */541uint32_t rpe_2_in_rx_pkt;542/* [0x48] Rx Parser 2, output packet counter */543uint32_t rpe_2_out_rx_pkt;544/* [0x4c] Rx Parser 3 (MACsec), input packet counter */545uint32_t rpe_3_in_rx_pkt;546/* [0x50] Rx Parser 3 (MACsec), output packet counter */547uint32_t rpe_3_out_rx_pkt;548/* [0x54] Tx parser, input packet counter */549uint32_t tpe_in_tx_pkt;550/* [0x58] Tx parser, output packet counter */551uint32_t tpe_out_tx_pkt;552/* [0x5c] Tx packet modification, input packet counter */553uint32_t tpm_tx_pkt;554/* [0x60] Tx forwarding input packet counter */555uint32_t tfw_in_tx_pkt;556/* [0x64] Tx forwarding input packet counter */557uint32_t tfw_out_tx_pkt;558/* [0x68] Rx forwarding input packet counter */559uint32_t rfw_in_rx_pkt;560/* [0x6c] Rx Forwarding, packet with VLAN command drop indica ... */561uint32_t rfw_in_vlan_drop;562/* [0x70] Rx Forwarding, packets with parse drop indication */563uint32_t rfw_in_parse_drop;564/* [0x74] Rx Forwarding, multicast packets */565uint32_t rfw_in_mc;566/* [0x78] Rx Forwarding, broadcast packets */567uint32_t rfw_in_bc;568/* [0x7c] Rx Forwarding, tagged packets */569uint32_t rfw_in_vlan_exist;570/* [0x80] Rx Forwarding, untagged packets */571uint32_t rfw_in_vlan_nexist;572/* [0x84] Rx Forwarding, packets with MAC address drop indica ... */573uint32_t rfw_in_mac_drop;574/* [0x88] Rx Forwarding, packets with undetected MAC address */575uint32_t rfw_in_mac_ndet_drop;576/* [0x8c] Rx Forwarding, packets with drop indication from th ... */577uint32_t rfw_in_ctrl_drop;578/* [0x90] Rx Forwarding, packets with L3_protocol_index drop ... */579uint32_t rfw_in_prot_i_drop;580/* [0x94] EEE, number of times the system went into EEE state ... */581uint32_t eee_in;582uint32_t rsrvd[90];583};584struct al_ec_stat_udma {585/* [0x0] Rx forwarding output packet counter */586uint32_t rfw_out_rx_pkt;587/* [0x4] Rx forwarding output drop packet counter */588uint32_t rfw_out_drop;589/* [0x8] Multi-stream write, number of Rx packets */590uint32_t msw_in_rx_pkt;591/* [0xc] Multi-stream write, number of dropped packets at SO ... */592uint32_t msw_drop_q_full;593/* [0x10] Multi-stream write, number of dropped packets at SO ... */594uint32_t msw_drop_sop;595/* [0x14] Multi-stream write, number of dropped packets at EO ... */596uint32_t msw_drop_eop;597/* [0x18] Multi-stream write, number of packets written to th ... */598uint32_t msw_wr_eop;599/* [0x1c] Multi-stream write, number of packets read from the ... */600uint32_t msw_out_rx_pkt;601/* [0x20] Number of transmitted packets without TSO enabled */602uint32_t tso_no_tso_pkt;603/* [0x24] Number of transmitted packets with TSO enabled */604uint32_t tso_tso_pkt;605/* [0x28] Number of TSO segments that were generated */606uint32_t tso_seg_pkt;607/* [0x2c] Number of TSO segments that required padding */608uint32_t tso_pad_pkt;609/* [0x30] Tx Packet modification, MAC SA spoof error */610uint32_t tpm_tx_spoof;611/* [0x34] Tx MAC interface, input packet counter */612uint32_t tmi_in_tx_pkt;613/* [0x38] Tx MAC interface, number of packets forwarded to th ... */614uint32_t tmi_out_to_mac;615/* [0x3c] Tx MAC interface, number of packets forwarded to th ... */616uint32_t tmi_out_to_rx;617/* [0x40] Tx MAC interface, number of transmitted bytes */618uint32_t tx_q0_bytes;619/* [0x44] Tx MAC interface, number of transmitted bytes */620uint32_t tx_q1_bytes;621/* [0x48] Tx MAC interface, number of transmitted bytes */622uint32_t tx_q2_bytes;623/* [0x4c] Tx MAC interface, number of transmitted bytes */624uint32_t tx_q3_bytes;625/* [0x50] Tx MAC interface, number of transmitted packets */626uint32_t tx_q0_pkts;627/* [0x54] Tx MAC interface, number of transmitted packets */628uint32_t tx_q1_pkts;629/* [0x58] Tx MAC interface, number of transmitted packets */630uint32_t tx_q2_pkts;631/* [0x5c] Tx MAC interface, number of transmitted packets */632uint32_t tx_q3_pkts;633uint32_t rsrvd[40];634};635struct al_ec_msp {636/* [0x0] Ethernet parsing engine configuration 1 */637uint32_t p_parse_cfg;638/* [0x4] Protocol index action table address */639uint32_t p_act_table_addr;640/* [0x8] Protocol index action table data */641uint32_t p_act_table_data_1;642/* [0xc] Protocol index action table data */643uint32_t p_act_table_data_2;644/* [0x10] Protocol index action table data */645uint32_t p_act_table_data_3;646/* [0x14] Protocol index action table data */647uint32_t p_act_table_data_4;648/* [0x18] Protocol index action table data */649uint32_t p_act_table_data_5;650/* [0x1c] Protocol index action table data */651uint32_t p_act_table_data_6;652/* [0x20] Input result vector, default values for parser inpu ... */653uint32_t p_res_def;654/* [0x24] Result input vector selection */655uint32_t p_res_in;656uint32_t rsrvd[6];657};658struct al_ec_msp_p {659/* [0x0] Header length, support for header length table for ... */660uint32_t h_hdr_len;661};662struct al_ec_msp_c {663/* [0x0] Data for comparison */664uint32_t p_comp_data;665/* [0x4] Mask for comparison */666uint32_t p_comp_mask;667/* [0x8] Compare control */668uint32_t p_comp_ctrl;669uint32_t rsrvd[4];670};671struct al_ec_wol {672/* [0x0] WoL enable configuration,Packet forwarding and inte ... */673uint32_t wol_en;674/* [0x4] Password for magic_password packet detection - bits ... */675uint32_t magic_pswd_l;676/* [0x8] Password for magic+password packet detection - 47: ... */677uint32_t magic_pswd_h;678/* [0xc] Configured L3 Destination IP address for WoL IPv6 p ... */679uint32_t ipv6_dip_word0;680/* [0x10] Configured L3 Destination IP address for WoL IPv6 p ... */681uint32_t ipv6_dip_word1;682/* [0x14] Configured L3 Destination IP address for WoL IPv6 p ... */683uint32_t ipv6_dip_word2;684/* [0x18] Configured L3 Destination IP address for WoL IPv6 p ... */685uint32_t ipv6_dip_word3;686/* [0x1c] Configured L3 Destination IP address for WoL IPv4 p ... */687uint32_t ipv4_dip;688/* [0x20] Configured EtherType for WoL EtherType_da/EtherType ... */689uint32_t ethertype;690uint32_t rsrvd[7];691};692struct al_ec_pth {693/* [0x0] System time counter (Time of Day) */694uint32_t system_time_seconds;695/* [0x4] System time subseconds in a second (MSBs) */696uint32_t system_time_subseconds_msb;697/* [0x8] System time subseconds in a second (LSBs) */698uint32_t system_time_subseconds_lsb;699/* [0xc] Clock period in femtoseconds (MSB) */700uint32_t clock_period_msb;701/* [0x10] Clock period in femtoseconds (LSB) */702uint32_t clock_period_lsb;703/* [0x14] Control register for internal updates to the system ... */704uint32_t int_update_ctrl;705/* [0x18] Value to update system_time_seconds with */706uint32_t int_update_seconds;707/* [0x1c] Value to update system_time_subseconds_msb with */708uint32_t int_update_subseconds_msb;709/* [0x20] Value to update system_time_subseconds_lsb with */710uint32_t int_update_subseconds_lsb;711/* [0x24] Control register for external updates to the system ... */712uint32_t ext_update_ctrl;713/* [0x28] Value to update system_time_seconds with */714uint32_t ext_update_seconds;715/* [0x2c] Value to update system_time_subseconds_msb with */716uint32_t ext_update_subseconds_msb;717/* [0x30] Value to update system_time_subseconds_lsb with */718uint32_t ext_update_subseconds_lsb;719/* [0x34] This value represents the APB transaction delay fro ... */720uint32_t read_compensation_subseconds_msb;721/* [0x38] This value represents the APB transaction delay fro ... */722uint32_t read_compensation_subseconds_lsb;723/* [0x3c] This value is used for two purposes:1 */724uint32_t int_write_compensation_subseconds_msb;725/* [0x40] This value is used for two purposes:1 */726uint32_t int_write_compensation_subseconds_lsb;727/* [0x44] This value represents the number of cycles it for a ... */728uint32_t ext_write_compensation_subseconds_msb;729/* [0x48] This value represents the number of cycles it for a ... */730uint32_t ext_write_compensation_subseconds_lsb;731/* [0x4c] Value to be added to system_time before transferrin ... */732uint32_t sync_compensation_subseconds_msb;733/* [0x50] Value to be added to system_time before transferrin ... */734uint32_t sync_compensation_subseconds_lsb;735uint32_t rsrvd[11];736};737struct al_ec_pth_egress {738/* [0x0] Control register for egress trigger #k */739uint32_t trigger_ctrl;740/* [0x4] threshold for next egress trigger (#k) - secondsWri ... */741uint32_t trigger_seconds;742/* [0x8] Threshold for next egress trigger (#k) - subseconds ... */743uint32_t trigger_subseconds_msb;744/* [0xc] threshold for next egress trigger (#k) - subseconds ... */745uint32_t trigger_subseconds_lsb;746/* [0x10] External output pulse width (subseconds_msb)(Atomic ... */747uint32_t pulse_width_subseconds_msb;748/* [0x14] External output pulse width (subseconds_lsb)(Atomic ... */749uint32_t pulse_width_subseconds_lsb;750uint32_t rsrvd[2];751};752struct al_ec_pth_db {753/* [0x0] timestamp[k], in resolution of 2^18 femtosec =~ 0 */754uint32_t ts;755/* [0x4] Timestamp entry is valid */756uint32_t qual;757uint32_t rsrvd[4];758};759struct al_ec_gen_v3 {760/* [0x0] Bypass enable */761uint32_t bypass;762/* [0x4] Rx Completion descriptor */763uint32_t rx_comp_desc;764/* [0x8] general configuration */765uint32_t conf;766uint32_t rsrvd[13];767};768struct al_ec_tfw_v3 {769/* [0x0] Generic protocol detect Cam compare table address */770uint32_t tx_gpd_cam_addr;771/* [0x4] Tx Generic protocol detect Cam compare data_1 (low) ... */772uint32_t tx_gpd_cam_data_1;773/* [0x8] Tx Generic protocol detect Cam compare data_2 (high ... */774uint32_t tx_gpd_cam_data_2;775/* [0xc] Tx Generic protocol detect Cam compare mask_1 (low) ... */776uint32_t tx_gpd_cam_mask_1;777/* [0x10] Tx Generic protocol detect Cam compare mask_1 (high ... */778uint32_t tx_gpd_cam_mask_2;779/* [0x14] Tx Generic protocol detect Cam compare control */780uint32_t tx_gpd_cam_ctrl;781/* [0x18] Tx Generic crc parameters legacy */782uint32_t tx_gcp_legacy;783/* [0x1c] Tx Generic crc prameters table address */784uint32_t tx_gcp_table_addr;785/* [0x20] Tx Generic crc prameters table general */786uint32_t tx_gcp_table_gen;787/* [0x24] Tx Generic crc parametrs tabel mask word 1 */788uint32_t tx_gcp_table_mask_1;789/* [0x28] Tx Generic crc parametrs tabel mask word 2 */790uint32_t tx_gcp_table_mask_2;791/* [0x2c] Tx Generic crc parametrs tabel mask word 3 */792uint32_t tx_gcp_table_mask_3;793/* [0x30] Tx Generic crc parametrs tabel mask word 4 */794uint32_t tx_gcp_table_mask_4;795/* [0x34] Tx Generic crc parametrs tabel mask word 5 */796uint32_t tx_gcp_table_mask_5;797/* [0x38] Tx Generic crc parametrs tabel mask word 6 */798uint32_t tx_gcp_table_mask_6;799/* [0x3c] Tx Generic crc parametrs tabel crc init */800uint32_t tx_gcp_table_crc_init;801/* [0x40] Tx Generic crc parametrs tabel result configuration ... */802uint32_t tx_gcp_table_res;803/* [0x44] Tx Generic crc parameters table alu opcode */804uint32_t tx_gcp_table_alu_opcode;805/* [0x48] Tx Generic crc parameters table alu opsel */806uint32_t tx_gcp_table_alu_opsel;807/* [0x4c] Tx Generic crc parameters table alu constant value */808uint32_t tx_gcp_table_alu_val;809/* [0x50] Tx CRC/Checksum replace */810uint32_t crc_csum_replace;811/* [0x54] CRC/Checksum replace table address */812uint32_t crc_csum_replace_table_addr;813/* [0x58] CRC/Checksum replace table */814uint32_t crc_csum_replace_table;815uint32_t rsrvd[9];816};817818struct al_ec_rfw_v3 {819/* [0x0] Rx Generic protocol detect Cam compare table addres ... */820uint32_t rx_gpd_cam_addr;821/* [0x4] Rx Generic protocol detect Cam compare data_1 (low) ... */822uint32_t rx_gpd_cam_data_1;823/* [0x8] Rx Generic protocol detect Cam compare data_2 (high ... */824uint32_t rx_gpd_cam_data_2;825/* [0xc] Rx Generic protocol detect Cam compare mask_1 (low) ... */826uint32_t rx_gpd_cam_mask_1;827/* [0x10] Rx Generic protocol detect Cam compare mask_1 (high ... */828uint32_t rx_gpd_cam_mask_2;829/* [0x14] Rx Generic protocol detect Cam compare control */830uint32_t rx_gpd_cam_ctrl;831/* [0x18] Generic protocol detect Parser result vector pointe ... */832uint32_t gpd_p1;833/* [0x1c] Generic protocol detect Parser result vector pointe ... */834uint32_t gpd_p2;835/* [0x20] Generic protocol detect Parser result vector pointe ... */836uint32_t gpd_p3;837/* [0x24] Generic protocol detect Parser result vector pointe ... */838uint32_t gpd_p4;839/* [0x28] Generic protocol detect Parser result vector pointe ... */840uint32_t gpd_p5;841/* [0x2c] Generic protocol detect Parser result vector pointe ... */842uint32_t gpd_p6;843/* [0x30] Generic protocol detect Parser result vector pointe ... */844uint32_t gpd_p7;845/* [0x34] Generic protocol detect Parser result vector pointe ... */846uint32_t gpd_p8;847/* [0x38] Rx Generic crc parameters legacy */848uint32_t rx_gcp_legacy;849/* [0x3c] Rx Generic crc prameters table address */850uint32_t rx_gcp_table_addr;851/* [0x40] Rx Generic crc prameters table general */852uint32_t rx_gcp_table_gen;853/* [0x44] Rx Generic crc parametrs tabel mask word 1 */854uint32_t rx_gcp_table_mask_1;855/* [0x48] Rx Generic crc parametrs tabel mask word 2 */856uint32_t rx_gcp_table_mask_2;857/* [0x4c] Rx Generic crc parametrs tabel mask word 3 */858uint32_t rx_gcp_table_mask_3;859/* [0x50] Rx Generic crc parametrs tabel mask word 4 */860uint32_t rx_gcp_table_mask_4;861/* [0x54] Rx Generic crc parametrs tabel mask word 5 */862uint32_t rx_gcp_table_mask_5;863/* [0x58] Rx Generic crc parametrs tabel mask word 6 */864uint32_t rx_gcp_table_mask_6;865/* [0x5c] Rx Generic crc parametrs tabel crc init */866uint32_t rx_gcp_table_crc_init;867/* [0x60] Rx Generic crc parametrs tabel result configuration ... */868uint32_t rx_gcp_table_res;869/* [0x64] Rx Generic crc parameters table alu opcode */870uint32_t rx_gcp_table_alu_opcode;871/* [0x68] Rx Generic crc parameters table alu opsel */872uint32_t rx_gcp_table_alu_opsel;873/* [0x6c] Rx Generic crc parameters table alu constant value ... */874uint32_t rx_gcp_table_alu_val;875/* [0x70] Generic crc engin parameters alu Parser result vect ... */876uint32_t rx_gcp_alu_p1;877/* [0x74] Generic crc engine parameters alu Parser result vec ... */878uint32_t rx_gcp_alu_p2;879/* [0x78] Header split control table address */880uint32_t hs_ctrl_table_addr;881/* [0x7c] Header split control table */882uint32_t hs_ctrl_table;883/* [0x80] Header split control alu opcode */884uint32_t hs_ctrl_table_alu_opcode;885/* [0x84] Header split control alu opsel */886uint32_t hs_ctrl_table_alu_opsel;887/* [0x88] Header split control alu constant value */888uint32_t hs_ctrl_table_alu_val;889/* [0x8c] Header split control configuration */890uint32_t hs_ctrl_cfg;891/* [0x90] Header split control alu Parser result vector point ... */892uint32_t hs_ctrl_alu_p1;893/* [0x94] Header split control alu Parser result vector point ... */894uint32_t hs_ctrl_alu_p2;895uint32_t rsrvd[26];896};897struct al_ec_crypto {898/* [0x0] Tx inline crypto configuration */899uint32_t tx_config;900/* [0x4] Rx inline crypto configuration */901uint32_t rx_config;902/* [0x8] reserved FFU */903uint32_t tx_override;904/* [0xc] reserved FFU */905uint32_t rx_override;906/* [0x10] inline XTS alpha [31:0] */907uint32_t xts_alpha_1;908/* [0x14] inline XTS alpha [63:32] */909uint32_t xts_alpha_2;910/* [0x18] inline XTS alpha [95:64] */911uint32_t xts_alpha_3;912/* [0x1c] inline XTS alpha [127:96] */913uint32_t xts_alpha_4;914/* [0x20] inline XTS sector ID increment [31:0] */915uint32_t xts_sector_id_1;916/* [0x24] inline XTS sector ID increment [63:32] */917uint32_t xts_sector_id_2;918/* [0x28] inline XTS sector ID increment [95:64] */919uint32_t xts_sector_id_3;920/* [0x2c] inline XTS sector ID increment [127:96] */921uint32_t xts_sector_id_4;922/* [0x30] IV formation configuration */923uint32_t tx_enc_iv_construction;924/* [0x34] IV formation configuration */925uint32_t rx_enc_iv_construction;926/* [0x38] IV formation configuration */927uint32_t rx_enc_iv_map;928/*929[0x3c] effectively shorten shift-registers used for930eop-pkt-trim, in order to improve performance.931Each value must be built of consecutive 1's (bypassed regs),932and then consecutive 0's (non-bypassed regs)933*/934uint32_t tx_pkt_trim_len;935/*936[0x40] effectively shorten shift-registers used for937eop-pkt-trim, in order to improve performance.938Each value must be built of consecutive 1's (bypassed regs),939and then consecutive 0's (non-bypassed regs)940*/941uint32_t rx_pkt_trim_len;942/* [0x44] reserved FFU */943uint32_t tx_reserved;944/* [0x48] reserved FFU */945uint32_t rx_reserved;946uint32_t rsrvd[13];947};948struct al_ec_crypto_perf_cntr {949/* [0x0] */950uint32_t total_tx_pkts;951/* [0x4] */952uint32_t total_rx_pkts;953/* [0x8] */954uint32_t total_tx_secured_pkts;955/* [0xc] */956uint32_t total_rx_secured_pkts;957/* [0x10] */958uint32_t total_tx_secured_pkts_cipher_mode;959/* [0x14] */960uint32_t total_tx_secured_pkts_cipher_mode_cmpr;961/* [0x18] */962uint32_t total_rx_secured_pkts_cipher_mode;963/* [0x1c] */964uint32_t total_rx_secured_pkts_cipher_mode_cmpr;965/* [0x20] */966uint32_t total_tx_secured_bytes_low;967/* [0x24] */968uint32_t total_tx_secured_bytes_high;969/* [0x28] */970uint32_t total_rx_secured_bytes_low;971/* [0x2c] */972uint32_t total_rx_secured_bytes_high;973/* [0x30] */974uint32_t total_tx_sign_calcs;975/* [0x34] */976uint32_t total_rx_sign_calcs;977/* [0x38] */978uint32_t total_tx_sign_errs;979/* [0x3c] */980uint32_t total_rx_sign_errs;981};982struct al_ec_crypto_tx_tid {983/* [0x0] tid_default_entry */984uint32_t def_val;985};986987struct al_ec_regs {988uint32_t rsrvd_0[32];989struct al_ec_gen gen; /* [0x80] */990struct al_ec_mac mac; /* [0xc0] */991struct al_ec_rxf rxf; /* [0x100] */992struct al_ec_epe epe[2]; /* [0x180] */993struct al_ec_epe_res epe_res; /* [0x200] */994struct al_ec_epe_h epe_h[32]; /* [0x280] */995struct al_ec_epe_p epe_p[32]; /* [0x300] */996struct al_ec_epe_a epe_a[32]; /* [0x680] */997struct al_ec_rfw rfw; /* [0x700] */998struct al_ec_rfw_udma rfw_udma[4]; /* [0x7f0] */999struct al_ec_rfw_hash rfw_hash[10]; /* [0x800] */1000struct al_ec_rfw_priority rfw_priority[8]; /* [0x828] */1001struct al_ec_rfw_default rfw_default[8]; /* [0x848] */1002struct al_ec_fwd_mac fwd_mac[32]; /* [0x868] */1003struct al_ec_msw msw; /* [0xae8] */1004struct al_ec_tso tso; /* [0xb00] */1005struct al_ec_tso_sel tso_sel[8]; /* [0xb60] */1006struct al_ec_tpe tpe; /* [0xb80] */1007struct al_ec_tpm_udma tpm_udma[4]; /* [0xbc0] */1008struct al_ec_tpm_sel tpm_sel[4]; /* [0xbf0] */1009struct al_ec_tfw tfw; /* [0xc00] */1010struct al_ec_tfw_udma tfw_udma[4]; /* [0xc60] */1011struct al_ec_tmi tmi; /* [0xcc0] */1012struct al_ec_efc efc; /* [0xcd0] */1013struct al_ec_fc_udma fc_udma[4]; /* [0xd00] */1014struct al_ec_tpg_rpa_res tpg_rpa_res; /* [0xf00] */1015struct al_ec_eee eee; /* [0x1000] */1016struct al_ec_stat stat; /* [0x1100] */1017struct al_ec_stat_udma stat_udma[4]; /* [0x1300] */1018struct al_ec_msp msp; /* [0x1700] */1019struct al_ec_msp_p msp_p[32]; /* [0x1740] */1020struct al_ec_msp_c msp_c[32]; /* [0x17c0] */1021uint32_t rsrvd_1[16];1022struct al_ec_wol wol; /* [0x1b80] */1023uint32_t rsrvd_2[80];1024struct al_ec_pth pth; /* [0x1d00] */1025struct al_ec_pth_egress pth_egress[8]; /* [0x1d80] */1026struct al_ec_pth_db pth_db[16]; /* [0x1e80] */1027uint32_t rsrvd_3[416];1028struct al_ec_gen_v3 gen_v3; /* [0x2680] */1029struct al_ec_tfw_v3 tfw_v3; /* [0x26c0] */1030struct al_ec_rfw_v3 rfw_v3; /* [0x2740] */1031struct al_ec_crypto crypto; /* [0x2840] */1032struct al_ec_crypto_perf_cntr crypto_perf_cntr[2]; /* [0x28c0] */1033uint32_t rsrvd_4[48];1034struct al_ec_crypto_tx_tid crypto_tx_tid[8]; /* [0x2a00] */1035};103610371038/*1039* Registers Fields1040*/104110421043/**** version register ****/1044/* Revision number (Minor) */1045#define EC_GEN_VERSION_RELEASE_NUM_MINOR_MASK 0x000000FF1046#define EC_GEN_VERSION_RELEASE_NUM_MINOR_SHIFT 01047/* Revision number (Major) */1048#define EC_GEN_VERSION_RELEASE_NUM_MAJOR_MASK 0x0000FF001049#define EC_GEN_VERSION_RELEASE_NUM_MAJOR_SHIFT 81050/* Day of release */1051#define EC_GEN_VERSION_DATE_DAY_MASK 0x001F00001052#define EC_GEN_VERSION_DATE_DAY_SHIFT 161053/* Month of release */1054#define EC_GEN_VERSION_DATA_MONTH_MASK 0x01E000001055#define EC_GEN_VERSION_DATA_MONTH_SHIFT 211056/* Year of release (starting from 2000) */1057#define EC_GEN_VERSION_DATE_YEAR_MASK 0x3E0000001058#define EC_GEN_VERSION_DATE_YEAR_SHIFT 251059/* Reserved */1060#define EC_GEN_VERSION_RESERVED_MASK 0xC00000001061#define EC_GEN_VERSION_RESERVED_SHIFT 3010621063/**** en register ****/1064/* Enable Frequency adjust FIFO input controller operation. */1065#define EC_GEN_EN_FAF_IN (1 << 0)1066/* Enable Frequency adjust FIFO output controller operation. */1067#define EC_GEN_EN_FAF_OUT (1 << 1)1068/* Enable Rx FIFO input controller 1 operation. */1069#define EC_GEN_EN_RXF_IN (1 << 2)1070/* Enable Rx FIFO output controller operation. */1071#define EC_GEN_EN_RXF_OUT (1 << 3)1072/* Enable Rx forwarding input controller operation. */1073#define EC_GEN_EN_RFW_IN (1 << 4)1074/* Enable Rx forwarding output controller operation. */1075#define EC_GEN_EN_RFW_OUT (1 << 5)1076/* Enable Rx multi-stream write controller operation. */1077#define EC_GEN_EN_MSW_IN (1 << 6)1078/* Enable Rx first parsing engine output operation. */1079#define EC_GEN_EN_RPE_1_OUT (1 << 7)1080/* Enable Rx first parsing engine input operation. */1081#define EC_GEN_EN_RPE_1_IN (1 << 8)1082/* Enable Rx second parsing engine output operation. */1083#define EC_GEN_EN_RPE_2_OUT (1 << 9)1084/* Enable Rx second parsing engine input operation. */1085#define EC_GEN_EN_RPE_2_IN (1 << 10)1086/* Enable Rx MACsec parsing engine output operation. */1087#define EC_GEN_EN_RPE_3_OUT (1 << 11)1088/* Enable Rx MACsec parsing engine input operation. */1089#define EC_GEN_EN_RPE_3_IN (1 << 12)1090/* Enable Loopback FIFO input controller 1 operation. */1091#define EC_GEN_EN_LBF_IN (1 << 13)1092/* Enable Rx packet analyzer operation. */1093#define EC_GEN_EN_RPA (1 << 14)10941095#define EC_GEN_EN_RESERVED_15 (1 << 15)1096/* Enable Tx stream interface operation. */1097#define EC_GEN_EN_TSO (1 << 16)1098/* Enable Tx parser input controller operation. */1099#define EC_GEN_EN_TPE_IN (1 << 17)1100/* Enable Tx parser output controller operation. */1101#define EC_GEN_EN_TPE_OUT (1 << 18)1102/* Enable Tx packet modification operation. */1103#define EC_GEN_EN_TPM (1 << 19)1104/* Enable Tx forwarding input controller operation. */1105#define EC_GEN_EN_TFW_IN (1 << 20)1106/* Enable Tx forwarding output controller operation. */1107#define EC_GEN_EN_TFW_OUT (1 << 21)1108/* Enable Tx MAC interface controller operation. */1109#define EC_GEN_EN_TMI (1 << 22)1110/* Enable Tx packet generator operation. */1111#define EC_GEN_EN_TPG (1 << 23)11121113#define EC_GEN_EN_RESERVED_31_MASK 0xFF0000001114#define EC_GEN_EN_RESERVED_31_SHIFT 2411151116/**** fifo_en register ****/1117/* Enable Frequency adjust FIFO operation (input). */1118#define EC_GEN_FIFO_EN_FAF_IN (1 << 0)1119/* Enable Frequency adjust FIFO operation (output). */1120#define EC_GEN_FIFO_EN_FAF_OUT (1 << 1)1121/* Enable Rx FIFO operation. */1122#define EC_GEN_FIFO_EN_RX_FIFO (1 << 2)1123/* Enable Rx forwarding FIFO operation. */1124#define EC_GEN_FIFO_EN_RFW_FIFO (1 << 3)1125/* Enable Rx multi-stream write FIFO operation */1126#define EC_GEN_FIFO_EN_MSW_FIFO (1 << 4)1127/* Enable Rx first parser FIFO operation. */1128#define EC_GEN_FIFO_EN_RPE_1_FIFO (1 << 5)1129/* Enable Rx second parser FIFO operation. */1130#define EC_GEN_FIFO_EN_RPE_2_FIFO (1 << 6)1131/* Enable Rx MACsec parser FIFO operation. */1132#define EC_GEN_FIFO_EN_RPE_3_FIFO (1 << 7)1133/* Enable Loopback FIFO operation. */1134#define EC_GEN_FIFO_EN_LB_FIFO (1 << 8)11351136#define EC_GEN_FIFO_EN_RESERVED_15_9_MASK 0x0000FE001137#define EC_GEN_FIFO_EN_RESERVED_15_9_SHIFT 91138/* Enable Tx parser FIFO operation. */1139#define EC_GEN_FIFO_EN_TPE_FIFO (1 << 16)1140/* Enable Tx forwarding FIFO operation. */1141#define EC_GEN_FIFO_EN_TFW_FIFO (1 << 17)11421143#define EC_GEN_FIFO_EN_RESERVED_31_18_MASK 0xFFFC00001144#define EC_GEN_FIFO_EN_RESERVED_31_18_SHIFT 1811451146/**** l2 register ****/1147/* Size of a 802.3 Ethernet header (DA+SA) */1148#define EC_GEN_L2_SIZE_802_3_MASK 0x0000003F1149#define EC_GEN_L2_SIZE_802_3_SHIFT 01150/* Size of a 802.3 + MACsec 8 byte header */1151#define EC_GEN_L2_SIZE_802_3_MS_8_MASK 0x00003F001152#define EC_GEN_L2_SIZE_802_3_MS_8_SHIFT 81153/* Offset of the L2 header from the beginning of the packet. */1154#define EC_GEN_L2_OFFSET_MASK 0x7F0000001155#define EC_GEN_L2_OFFSET_SHIFT 2411561157/**** cfg_i register ****/1158/* IPv4 protocol index */1159#define EC_GEN_CFG_I_IPV4_INDEX_MASK 0x0000001F1160#define EC_GEN_CFG_I_IPV4_INDEX_SHIFT 01161/* IPv6 protocol index */1162#define EC_GEN_CFG_I_IPV6_INDEX_MASK 0x000003E01163#define EC_GEN_CFG_I_IPV6_INDEX_SHIFT 51164/* TCP protocol index */1165#define EC_GEN_CFG_I_TCP_INDEX_MASK 0x00007C001166#define EC_GEN_CFG_I_TCP_INDEX_SHIFT 101167/* UDP protocol index */1168#define EC_GEN_CFG_I_UDP_INDEX_MASK 0x000F80001169#define EC_GEN_CFG_I_UDP_INDEX_SHIFT 151170/* MACsec with 8 bytes SecTAG */1171#define EC_GEN_CFG_I_MACSEC_8_INDEX_MASK 0x01F000001172#define EC_GEN_CFG_I_MACSEC_8_INDEX_SHIFT 201173/* MACsec with 16 bytes SecTAG */1174#define EC_GEN_CFG_I_MACSEC_16_INDEX_MASK 0x3E0000001175#define EC_GEN_CFG_I_MACSEC_16_INDEX_SHIFT 2511761177/**** cfg_i_ext register ****/1178/* FcoE protocol index */1179#define EC_GEN_CFG_I_EXT_FCOE_INDEX_MASK 0x0000001F1180#define EC_GEN_CFG_I_EXT_FCOE_INDEX_SHIFT 01181/* RoCE protocol index */1182#define EC_GEN_CFG_I_EXT_ROCE_INDEX_L3_1_MASK 0x000003E01183#define EC_GEN_CFG_I_EXT_ROCE_INDEX_L3_1_SHIFT 51184/* RoCE protocol index */1185#define EC_GEN_CFG_I_EXT_ROCE_INDEX_L3_2_MASK 0x00007C001186#define EC_GEN_CFG_I_EXT_ROCE_INDEX_L3_2_SHIFT 101187/* RoCE protocol index */1188#define EC_GEN_CFG_I_EXT_ROCE_INDEX_L4_MASK 0x000F80001189#define EC_GEN_CFG_I_EXT_ROCE_INDEX_L4_SHIFT 1511901191/**** en_ext register ****/1192/* Enable Usage of Ethernet port memories for testing */1193#define EC_GEN_EN_EXT_MEM_FOR_TEST_MASK 0x0000000F1194#define EC_GEN_EN_EXT_MEM_FOR_TEST_SHIFT 01195#define EC_GEN_EN_EXT_MEM_FOR_TEST_VAL_EN \1196(0xa << EC_GEN_EN_EXT_MEM_FOR_TEST_SHIFT)1197#define EC_GEN_EN_EXT_MEM_FOR_TEST_VAL_DIS \1198(0x0 << EC_GEN_EN_EXT_MEM_FOR_TEST_SHIFT)1199/* Enable MAC loop back (Rx --> Tx, after MAC layer) for 802 */1200#define EC_GEN_EN_EXT_MAC_LB (1 << 4)1201/* CRC forward value for the MAC Tx when working in loopback mod ... */1202#define EC_GEN_EN_EXT_MAC_LB_CRC_FWD (1 << 5)1203/* Ready signal configuration when in loopback mode:00 - Ready f ... */1204#define EC_GEN_EN_EXT_MAC_LB_READY_CFG_MASK 0x000000C01205#define EC_GEN_EN_EXT_MAC_LB_READY_CFG_SHIFT 61206/* Bypass the PTH completion update. */1207#define EC_GEN_EN_EXT_PTH_COMPLETION_BYPASS (1 << 16)1208/* Selection between the 1G and 10G MAC:12090 - 1G12101 - 10G */1211#define EC_GEN_EN_EXT_PTH_1_10_SEL (1 << 17)1212/* avoid timestamping every pkt in 1G */1213#define EC_GEN_EN_EXT_PTH_CFG_1G_TIMESTAMP_OPT (1 << 18)1214/* Selection between descriptor caching options (WORD selection) ... */1215#define EC_GEN_EN_EXT_CACHE_WORD_SPLIT (1 << 20)12161217/**** gen register ****/1218/* Enable swap of input byte order */1219#define EC_MAC_GEN_SWAP_IN_BYTE (1 << 0)12201221/**** min_pkt register ****/1222/* Minimum packet size */1223#define EC_MAC_MIN_PKT_SIZE_MASK 0x000FFFFF1224#define EC_MAC_MIN_PKT_SIZE_SHIFT 012251226/**** max_pkt register ****/1227/* Maximum packet size */1228#define EC_MAC_MAX_PKT_SIZE_MASK 0x000FFFFF1229#define EC_MAC_MAX_PKT_SIZE_SHIFT 012301231/**** cfg_1 register ****/1232/* Drop packet at the ingress0 - Packets are not dropped at the ... */1233#define EC_RXF_CFG_1_DROP_AT_INGRESS (1 << 0)1234/* Accept packet criteria at start of packet indication */1235#define EC_RXF_CFG_1_SOP_ACCEPT (1 << 1)1236/* Select the arbiter between Rx packets and Tx packets (packets ... */1237#define EC_RXF_CFG_1_ARB_SEL (1 << 2)1238/* Arbiter priority when strict priority is selected in arb_sel0 ... */1239#define EC_RXF_CFG_1_ARB_P (1 << 3)1240/* Force loopback operation */1241#define EC_RXF_CFG_1_FORCE_LB (1 << 4)1242/* Forwarding selection between Rx path and/or packet analyzer */1243#define EC_RXF_CFG_1_FWD_SEL_MASK 0x000003001244#define EC_RXF_CFG_1_FWD_SEL_SHIFT 812451246/**** cfg_2 register ****/1247/* FIFO USED threshold for accepting new packets, low threshold ... */1248#define EC_RXF_CFG_2_FIFO_USED_TH_L_MASK 0x0000FFFF1249#define EC_RXF_CFG_2_FIFO_USED_TH_L_SHIFT 01250/* FIFO USED threshold for accepting new packets, high threshold ... */1251#define EC_RXF_CFG_2_FIFO_USED_TH_H_MASK 0xFFFF00001252#define EC_RXF_CFG_2_FIFO_USED_TH_H_SHIFT 1612531254/**** rd_fifo register ****/1255/* Minimum number of entries in the data FIFO to start reading p ... */1256#define EC_RXF_RD_FIFO_TH_DATA_MASK 0x0000FFFF1257#define EC_RXF_RD_FIFO_TH_DATA_SHIFT 01258/* Enable cut through operation */1259#define EC_RXF_RD_FIFO_EN_CUT_TH (1 << 16)12601261/**** wr_fifo register ****/12621263#define EC_RXF_WR_FIFO_TH_DATA_MASK 0x0000FFFF1264#define EC_RXF_WR_FIFO_TH_DATA_SHIFT 012651266#define EC_RXF_WR_FIFO_TH_INFO_MASK 0xFFFF00001267#define EC_RXF_WR_FIFO_TH_INFO_SHIFT 1612681269/**** lb_fifo register ****/12701271#define EC_RXF_LB_FIFO_TH_DATA_MASK 0x0000FFFF1272#define EC_RXF_LB_FIFO_TH_DATA_SHIFT 012731274#define EC_RXF_LB_FIFO_TH_INFO_MASK 0xFFFF00001275#define EC_RXF_LB_FIFO_TH_INFO_SHIFT 1612761277/**** cfg_lb register ****/1278/* FIFO USED threshold for accepting new packets */1279#define EC_RXF_CFG_LB_FIFO_USED_TH_INT_MASK 0x0000FFFF1280#define EC_RXF_CFG_LB_FIFO_USED_TH_INT_SHIFT 01281/* FIFO USED threshold for generating ready for the Tx path */1282#define EC_RXF_CFG_LB_FIFO_USED_TH_EXT_MASK 0xFFFF00001283#define EC_RXF_CFG_LB_FIFO_USED_TH_EXT_SHIFT 1612841285/**** out_drop register ****/12861287#define EC_RXF_OUT_DROP_MAC_ERR (1 << 0)12881289#define EC_RXF_OUT_DROP_MAC_COL (1 << 1)12901291#define EC_RXF_OUT_DROP_MAC_DEC (1 << 2)12921293#define EC_RXF_OUT_DROP_MAC_LEN (1 << 3)12941295#define EC_RXF_OUT_DROP_MAC_PHY (1 << 4)12961297#define EC_RXF_OUT_DROP_MAC_FIFO (1 << 5)12981299#define EC_RXF_OUT_DROP_MAC_FCS (1 << 6)13001301#define EC_RXF_OUT_DROP_MAC_ETYPE (1 << 7)13021303#define EC_RXF_OUT_DROP_EC_LEN (1 << 8)13041305#define EC_RXF_OUT_DROP_EC_FIFO (1 << 9)13061307/**** parse_cfg register ****/1308/* MAX number of beats for packet parsing */1309#define EC_EPE_PARSE_CFG_MAX_BEATS_MASK 0x000000FF1310#define EC_EPE_PARSE_CFG_MAX_BEATS_SHIFT 01311/* MAX number of parsing iterations for packet parsing */1312#define EC_EPE_PARSE_CFG_MAX_ITER_MASK 0x0000FF001313#define EC_EPE_PARSE_CFG_MAX_ITER_SHIFT 813141315/**** act_table_addr register ****/1316/* Address for accessing the table */1317#define EC_EPE_ACT_TABLE_ADDR_VAL_MASK 0x0000001F1318#define EC_EPE_ACT_TABLE_ADDR_VAL_SHIFT 013191320/**** act_table_data_1 register ****/1321/* Table data[5:0] - Offset to next protocol [bytes][6] - Next p ... */1322#define EC_EPE_ACT_TABLE_DATA_1_VAL_MASK 0x03FFFFFF1323#define EC_EPE_ACT_TABLE_DATA_1_VAL_SHIFT 013241325/**** act_table_data_2 register ****/1326/* Table Data [8:0] - Offset to data in the packet [bits][17:9] ... */1327#define EC_EPE_ACT_TABLE_DATA_2_VAL_MASK 0x1FFFFFFF1328#define EC_EPE_ACT_TABLE_DATA_2_VAL_SHIFT 013291330/**** act_table_data_3 register ****/1331/* Table Data [8:0] - Offset to data in the packet [bits] [17:9 ... */1332#define EC_EPE_ACT_TABLE_DATA_3_VAL_MASK 0x1FFFFFFF1333#define EC_EPE_ACT_TABLE_DATA_3_VAL_SHIFT 013341335/**** act_table_data_4 register ****/1336/* Table data[7:0] - Offset to header length location in the pac ... */1337#define EC_EPE_ACT_TABLE_DATA_4_VAL_MASK 0x0FFFFFFF1338#define EC_EPE_ACT_TABLE_DATA_4_VAL_SHIFT 013391340/**** act_table_data_6 register ****/1341/* Table data[0] - WR header length[10:1] - Write header length ... */1342#define EC_EPE_ACT_TABLE_DATA_6_VAL_MASK 0x007FFFFF1343#define EC_EPE_ACT_TABLE_DATA_6_VAL_SHIFT 013441345/**** res_in register ****/1346/* Selector for input parse_en0 - Input vector1 - Default value ... */1347#define EC_EPE_RES_IN_SEL_PARSE_EN (1 << 0)1348/* Selector for input protocol_index 0 - Input vector 1 - Defaul ... */1349#define EC_EPE_RES_IN_SEL_PROT_INDEX (1 << 1)1350/* Selector for input hdr_offset 0 - Input vector 1 - Default va ... */1351#define EC_EPE_RES_IN_SEL_HDR_OFFSET (1 << 2)13521353/**** p1 register ****/1354/* Location of the input protocol index in the parser result vec ... */1355#define EC_EPE_RES_P1_IN_PROT_INDEX_MASK 0x000003FF1356#define EC_EPE_RES_P1_IN_PROT_INDEX_SHIFT 013571358/**** p2 register ****/1359/* Location of the input offset in the parser result vector */1360#define EC_EPE_RES_P2_IN_OFFSET_MASK 0x000003FF1361#define EC_EPE_RES_P2_IN_OFFSET_SHIFT 013621363/**** p3 register ****/1364/* Location of the input parse enable in the parser result vecto ... */1365#define EC_EPE_RES_P3_IN_PARSE_EN_MASK 0x000003FF1366#define EC_EPE_RES_P3_IN_PARSE_EN_SHIFT 013671368/**** p4 register ****/1369/* Location of the control bits in the parser result vector */1370#define EC_EPE_RES_P4_CTRL_BITS_MASK 0x000003FF1371#define EC_EPE_RES_P4_CTRL_BITS_SHIFT 013721373/**** p5 register ****/1374/* Location of the MAC DA in the parser result vector */1375#define EC_EPE_RES_P5_DA_MASK 0x000003FF1376#define EC_EPE_RES_P5_DA_SHIFT 013771378/**** p6 register ****/1379/* Location of the MAC SA in the parser result vector */1380#define EC_EPE_RES_P6_SA_MASK 0x000003FF1381#define EC_EPE_RES_P6_SA_SHIFT 013821383/**** p7 register ****/1384/* Location of the first VLAN in the parser result vector */1385#define EC_EPE_RES_P7_VLAN_1_MASK 0x000003FF1386#define EC_EPE_RES_P7_VLAN_1_SHIFT 013871388/**** p8 register ****/1389/* Location of the second VLAN in the parser result vector */1390#define EC_EPE_RES_P8_VLAN_2_MASK 0x000003FF1391#define EC_EPE_RES_P8_VLAN_2_SHIFT 013921393/**** p9 register ****/1394/* Location of the L3 protocol index in the parser result vector ... */1395#define EC_EPE_RES_P9_L3_PROT_INDEX_MASK 0x000003FF1396#define EC_EPE_RES_P9_L3_PROT_INDEX_SHIFT 013971398/**** p10 register ****/1399/* Location of the L3 offset in the parser result vector */1400#define EC_EPE_RES_P10_L3_OFFSET_MASK 0x000003FF1401#define EC_EPE_RES_P10_L3_OFFSET_SHIFT 014021403/**** p11 register ****/1404/* Location of the L3 SIP in the parser result vector */1405#define EC_EPE_RES_P11_L3_SIP_MASK 0x000003FF1406#define EC_EPE_RES_P11_L3_SIP_SHIFT 014071408/**** p12 register ****/1409/* Location of the L3 DIP in the parser result vector */1410#define EC_EPE_RES_P12_L3_DIP_MASK 0x000003FF1411#define EC_EPE_RES_P12_L3_DIP_SHIFT 014121413/**** p13 register ****/1414/* Location of the L3 priority in the parser result vector */1415#define EC_EPE_RES_P13_L3_PRIORITY_MASK 0x000003FF1416#define EC_EPE_RES_P13_L3_PRIORITY_SHIFT 014171418/**** p14 register ****/1419/* Location of the L3 header length in the parser result vector */1420#define EC_EPE_RES_P14_L3_HDR_LEN_MASK 0x000003FF1421#define EC_EPE_RES_P14_L3_HDR_LEN_SHIFT 014221423/**** p15 register ****/1424/* Location of the L4 protocol index in the parser result vector ... */1425#define EC_EPE_RES_P15_L4_PROT_INDEX_MASK 0x000003FF1426#define EC_EPE_RES_P15_L4_PROT_INDEX_SHIFT 014271428/**** p16 register ****/1429/* Location of the L4 source port in the parser result vector */1430#define EC_EPE_RES_P16_L4_SRC_PORT_MASK 0x000003FF1431#define EC_EPE_RES_P16_L4_SRC_PORT_SHIFT 014321433/**** p17 register ****/1434/* Location of the L4 destination port in the parser result vect ... */1435#define EC_EPE_RES_P17_L4_DST_PORT_MASK 0x000003FF1436#define EC_EPE_RES_P17_L4_DST_PORT_SHIFT 014371438/**** p18 register ****/1439/* Location of the L4 offset in the parser result vector */1440#define EC_EPE_RES_P18_L4_OFFSET_MASK 0x000003FF1441#define EC_EPE_RES_P18_L4_OFFSET_SHIFT 014421443/**** p19 register ****/1444/* Location of the Ether type in the parser result vector when w ... */1445#define EC_EPE_RES_P19_WOL_ETYPE_MASK 0x000003FF1446#define EC_EPE_RES_P19_WOL_ETYPE_SHIFT 014471448/**** p20 register ****/1449/* Location of the RoCE QP number field in the parser result vec ... */1450#define EC_EPE_RES_P20_ROCE_QPN_MASK 0x000003FF1451#define EC_EPE_RES_P20_ROCE_QPN_SHIFT 014521453/**** hdr_len register ****/1454/* Value for selecting table 1 */1455#define EC_EPE_H_HDR_LEN_TABLE_1_MASK 0x000000FF1456#define EC_EPE_H_HDR_LEN_TABLE_1_SHIFT 01457/* Value for selecting table 2 */1458#define EC_EPE_H_HDR_LEN_TABLE_2_MASK 0x00FF00001459#define EC_EPE_H_HDR_LEN_TABLE_2_SHIFT 1614601461/**** comp_data register ****/1462/* Data 1 for comparison */1463#define EC_EPE_P_COMP_DATA_DATA_1_MASK 0x0000FFFF1464#define EC_EPE_P_COMP_DATA_DATA_1_SHIFT 01465/* Data 2 for comparison1466[18:16] - Stage1467[24:19] - Branch ID */1468#define EC_EPE_P_COMP_DATA_DATA_2_MASK 0x01FF00001469#define EC_EPE_P_COMP_DATA_DATA_2_SHIFT 1614701471/**** comp_mask register ****/1472/* Data 1 for comparison */1473#define EC_EPE_P_COMP_MASK_DATA_1_MASK 0x0000FFFF1474#define EC_EPE_P_COMP_MASK_DATA_1_SHIFT 01475/* Data 2 for comparison1476[18:16] - Stage1477[24:19] - Branch ID */1478#define EC_EPE_P_COMP_MASK_DATA_2_MASK 0x01FF00001479#define EC_EPE_P_COMP_MASK_DATA_2_SHIFT 1614801481/**** comp_ctrl register ****/1482/* Output result value */1483#define EC_EPE_P_COMP_CTRL_RES_MASK 0x0000001F1484#define EC_EPE_P_COMP_CTRL_RES_SHIFT 01485/* Compare command for the data_1 field00 - Compare01 - <=10 - > ... */1486#define EC_EPE_P_COMP_CTRL_CMD_1_MASK 0x000300001487#define EC_EPE_P_COMP_CTRL_CMD_1_SHIFT 161488/* Compare command for the data_2 field 00 - Compare 01 - <= 10 ... */1489#define EC_EPE_P_COMP_CTRL_CMD_2_MASK 0x000C00001490#define EC_EPE_P_COMP_CTRL_CMD_2_SHIFT 181491/* Entry is valid */1492#define EC_EPE_P_COMP_CTRL_VALID (1 << 31)14931494/**** prot_act register ****/1495/* Drop indication for the selected protocol index */1496#define EC_EPE_A_PROT_ACT_DROP (1 << 0)1497/* Mapping value Used when mapping the entire protocol index ran ... */1498#define EC_EPE_A_PROT_ACT_MAP_MASK 0x00000F001499#define EC_EPE_A_PROT_ACT_MAP_SHIFT 815001501/**** thash_cfg_1 register ****/1502/* Hash function output selection:000 - [7:0]001 - [15:8]010 - [ ... */1503#define EC_RFW_THASH_CFG_1_OUT_SEL_MASK 0x000000071504#define EC_RFW_THASH_CFG_1_OUT_SEL_SHIFT 01505/* Selects between hash functions00 - toeplitz01 - CRC-3210 - 0x ... */1506#define EC_RFW_THASH_CFG_1_FUNC_SEL_MASK 0x000003001507#define EC_RFW_THASH_CFG_1_FUNC_SEL_SHIFT 81508/* Enable SIP/DIP swap if SIP<DIP */1509#define EC_RFW_THASH_CFG_1_ENABLE_IP_SWAP (1 << 16)1510/* Enable PORT swap if SPORT<DPORT */1511#define EC_RFW_THASH_CFG_1_ENABLE_PORT_SWAP (1 << 17)15121513/**** mhash_cfg_1 register ****/1514/* Hash function output selection:000 - [7:0]001 - [15:8]010 - [ ... */1515#define EC_RFW_MHASH_CFG_1_OUT_SEL_MASK 0x000000071516#define EC_RFW_MHASH_CFG_1_OUT_SEL_SHIFT 01517/* Selects the input to the MAC hash function0 - DA1 - DA + SA ... */1518#define EC_RFW_MHASH_CFG_1_INPUT_SEL (1 << 4)1519/* Selects between hash functions00 - toeplitz01 - CRC-3210 - 0x ... */1520#define EC_RFW_MHASH_CFG_1_FUNC_SEL_MASK 0x000003001521#define EC_RFW_MHASH_CFG_1_FUNC_SEL_SHIFT 815221523/**** hdr_split register ****/1524/* Default header length for header split */1525#define EC_RFW_HDR_SPLIT_DEF_LEN_MASK 0x0000FFFF1526#define EC_RFW_HDR_SPLIT_DEF_LEN_SHIFT 01527/* Enable header split operation */1528#define EC_RFW_HDR_SPLIT_EN (1 << 16)15291530/**** meta_err register ****/1531/* Mask for error 1 in the Rx descriptor */1532#define EC_RFW_META_ERR_MASK_1_MASK 0x000003FF1533#define EC_RFW_META_ERR_MASK_1_SHIFT 01534/* Mask for error 2 in the Rx descriptor */1535#define EC_RFW_META_ERR_MASK_2_MASK 0x03FF00001536#define EC_RFW_META_ERR_MASK_2_SHIFT 1615371538/**** meta register ****/1539/* Selection of the L3 offset source: 1 - Inner packet 0 - Outer ... */1540#define EC_RFW_META_L3_LEN_SEL (1 << 0)1541/* Selection of the L3 offset source:1 - Inner packet0 - Outer p ... */1542#define EC_RFW_META_L3_OFFSET_SEL (1 << 1)1543/* Selection of the l3 protocol index source: 1 - Inner packet 0 ... */1544#define EC_RFW_META_L3_PROT_SEL (1 << 2)1545/* Selection of the l4 protocol index source: 1 - Inner packet ... */1546#define EC_RFW_META_L4_PROT_SEL (1 << 3)1547/* Selects how to calculate the L3 header length when L3 is IpPv ... */1548#define EC_RFW_META_L3_LEN_CALC (1 << 4)1549/* Selection of the IPv4 fragment indication source: 1 - Inner ... */1550#define EC_RFW_META_FRAG_SEL (1 << 5)1551/* Selection of the L4 offset source:1 - Inner packet0 - Outer p ... */1552#define EC_RFW_META_L4_OFFSET_SEL (1 << 6)15531554/**** filter register ****/1555/* Filter undetected MAC DA */1556#define EC_RFW_FILTER_UNDET_MAC (1 << 0)1557/* Filter specific MAC DA based on MAC table output. */1558#define EC_RFW_FILTER_DET_MAC (1 << 1)1559/* Filter all tagged. */1560#define EC_RFW_FILTER_TAGGED (1 << 2)1561/* Filter all untagged. */1562#define EC_RFW_FILTER_UNTAGGED (1 << 3)1563/* Filter all broadcast. */1564#define EC_RFW_FILTER_BC (1 << 4)1565/* Filter all multicast. */1566#define EC_RFW_FILTER_MC (1 << 5)1567/* Filter based on parsing output (used to drop selected protoco ... */1568#define EC_RFW_FILTER_PARSE (1 << 6)1569/* Filter packet based on VLAN table output. */1570#define EC_RFW_FILTER_VLAN_VID (1 << 7)1571/* Filter packet based on control table output. */1572#define EC_RFW_FILTER_CTRL_TABLE (1 << 8)1573/* Filter packet based on protocol index action register. */1574#define EC_RFW_FILTER_PROT_INDEX (1 << 9)1575/* Filter packet based on WoL decision */1576#define EC_RFW_FILTER_WOL (1 << 10)1577/* Override filter decision and forward to default UDMA/queue;dr ... */1578#define EC_RFW_FILTER_OR_UNDET_MAC (1 << 16)1579/* Override filter decision and forward to default UDMA/queue;Dr ... */1580#define EC_RFW_FILTER_OR_DET_MAC (1 << 17)1581/* Override filter decision and forward to default UDMA/queue;Dr ... */1582#define EC_RFW_FILTER_OR_TAGGED (1 << 18)1583/* Override filter decision and forward to default UDMA/queue;Dr ... */1584#define EC_RFW_FILTER_OR_UNTAGGED (1 << 19)1585/* Override filter decision and forward to default UDMA/queue;Dr ... */1586#define EC_RFW_FILTER_OR_BC (1 << 20)1587/* Override filter decision and forward to default UDMA/queue;Dr ... */1588#define EC_RFW_FILTER_OR_MC (1 << 21)1589/* Override filter decision and forward to default UDMA/queue;Dr ... */1590#define EC_RFW_FILTER_OR_PARSE (1 << 22)1591/* Override filter decision and forward to default UDMA/queue;Dr ... */1592#define EC_RFW_FILTER_OR_VLAN_VID (1 << 23)1593/* Override filter decision and forward to default UDMA/queue;Dr ... */1594#define EC_RFW_FILTER_OR_CTRL_TABLE (1 << 24)1595/* Override filter decision and forward to default UDMA/queue;Dr ... */1596#define EC_RFW_FILTER_OR_PROT_INDEX (1 << 25)1597/* Override filter decision and forward to default UDMA/queue;Dr ... */1598#define EC_RFW_FILTER_OR_WOL (1 << 26)15991600/**** thash_table_addr register ****/1601/* Address for accessing the table */1602#define EC_RFW_THASH_TABLE_ADDR_VAL_MASK 0x000000FF1603#define EC_RFW_THASH_TABLE_ADDR_VAL_SHIFT 016041605/**** thash_table_data register ****/1606/* Table data (valid only after configuring the table address re ... */1607#define EC_RFW_THASH_TABLE_DATA_VAL_MASK 0x00003FFF1608#define EC_RFW_THASH_TABLE_DATA_VAL_SHIFT 016091610/**** mhash_table_addr register ****/1611/* Address for accessing the table */1612#define EC_RFW_MHASH_TABLE_ADDR_VAL_MASK 0x000000FF1613#define EC_RFW_MHASH_TABLE_ADDR_VAL_SHIFT 016141615/**** mhash_table_data register ****/1616/* Table data (valid only after configuring the table address re ... */1617#define EC_RFW_MHASH_TABLE_DATA_VAL_MASK 0x0000003F1618#define EC_RFW_MHASH_TABLE_DATA_VAL_SHIFT 016191620/**** vid_table_addr register ****/1621/* Address for accessing the table */1622#define EC_RFW_VID_TABLE_ADDR_VAL_MASK 0x00000FFF1623#define EC_RFW_VID_TABLE_ADDR_VAL_SHIFT 016241625/**** vid_table_data register ****/1626/* Table data (valid only after configuring the table address re ... */1627#define EC_RFW_VID_TABLE_DATA_VAL_MASK 0x0000003F1628#define EC_RFW_VID_TABLE_DATA_VAL_SHIFT 016291630/**** pbits_table_addr register ****/1631/* Address for accessing the table */1632#define EC_RFW_PBITS_TABLE_ADDR_VAL_MASK 0x000000071633#define EC_RFW_PBITS_TABLE_ADDR_VAL_SHIFT 016341635/**** pbits_table_data register ****/1636/* VLAN P-bits to internal priority mapping */1637#define EC_RFW_PBITS_TABLE_DATA_VAL_MASK 0x000000071638#define EC_RFW_PBITS_TABLE_DATA_VAL_SHIFT 016391640/**** dscp_table_addr register ****/1641/* Address for accessing the table */1642#define EC_RFW_DSCP_TABLE_ADDR_VAL_MASK 0x000000FF1643#define EC_RFW_DSCP_TABLE_ADDR_VAL_SHIFT 016441645/**** dscp_table_data register ****/1646/* IPv4 DSCP to internal priority mapping */1647#define EC_RFW_DSCP_TABLE_DATA_VAL_MASK 0x000000071648#define EC_RFW_DSCP_TABLE_DATA_VAL_SHIFT 016491650/**** tc_table_addr register ****/1651/* Address for accessing the table */1652#define EC_RFW_TC_TABLE_ADDR_VAL_MASK 0x000000FF1653#define EC_RFW_TC_TABLE_ADDR_VAL_SHIFT 016541655/**** tc_table_data register ****/1656/* IPv6 TC to internal priority mapping */1657#define EC_RFW_TC_TABLE_DATA_VAL_MASK 0x000000071658#define EC_RFW_TC_TABLE_DATA_VAL_SHIFT 016591660/**** ctrl_table_addr register ****/1661/* Address for accessing the table[0] - VLAN table control out[1 ... */1662#define EC_RFW_CTRL_TABLE_ADDR_VAL_MASK 0x000007FF1663#define EC_RFW_CTRL_TABLE_ADDR_VAL_SHIFT 016641665/**** ctrl_table_data register ****/1666/* Control table output for selecting the forwarding MUXs[3:0] - ... */1667#define EC_RFW_CTRL_TABLE_DATA_VAL_MASK 0x000FFFFF1668#define EC_RFW_CTRL_TABLE_DATA_VAL_SHIFT 016691670/**** out_cfg register ****/1671/* Number of MetaData at the end of the packet1 - One MetaData b ... */1672#define EC_RFW_OUT_CFG_META_CNT_MASK 0x000000031673#define EC_RFW_OUT_CFG_META_CNT_SHIFT 01674/* Enable packet drop */1675#define EC_RFW_OUT_CFG_DROP_EN (1 << 2)1676/* Swap output byte order */1677#define EC_RFW_OUT_CFG_SWAP_OUT_BYTE (1 << 3)1678/* Enable the insertion of the MACsec decoding result into the M ... */1679#define EC_RFW_OUT_CFG_EN_MACSEC_DEC (1 << 4)1680/* Sample time of the time stamp:0 - SOP (for 10G MAC)1 - EOP (f ... */1681#define EC_RFW_OUT_CFG_TIMESTAMP_SAMPLE (1 << 5)1682/* Determines which queue to write into the packet header0 - Ori ... */1683#define EC_RFW_OUT_CFG_QUEUE_OR_SEL (1 << 6)1684/* Determines the logic of the drop indication:0 - Sample the dr ... */1685#define EC_RFW_OUT_CFG_DROP_LOGIC_SEL (1 << 7)1686/* Determines the logic of the drop indication:0 - Sample the dr ... */1687#define EC_RFW_OUT_CFG_PKT_TYPE_DEF (1 << 8)16881689/**** fsm_table_addr register ****/1690/* Address for accessing the table :[2:0] - Outer header control ... */1691#define EC_RFW_FSM_TABLE_ADDR_VAL_MASK 0x0000007F1692#define EC_RFW_FSM_TABLE_ADDR_VAL_SHIFT 016931694/**** fsm_table_data register ****/1695/* Flow steering mechanism output selectors:[1:0] - Input select ... */1696#define EC_RFW_FSM_TABLE_DATA_VAL_MASK 0x000000071697#define EC_RFW_FSM_TABLE_DATA_VAL_SHIFT 016981699/**** ctrl_sel register ****/1700/* Packet type (UC/MC/BC) for the control table */1701#define EC_RFW_CTRL_SEL_PKT_TYPE (1 << 0)1702/* L3 protocol index for the control table */1703#define EC_RFW_CTRL_SEL_L3_PROTOCOL (1 << 1)1704/* Selects the content and structure of the control table addres ... */1705#define EC_RFW_CTRL_SEL_ADDR_MASK 0x0000000C1706#define EC_RFW_CTRL_SEL_ADDR_SHIFT 217071708/**** default_vlan register ****/1709/* Default VLAN data, used for untagged packets */1710#define EC_RFW_DEFAULT_VLAN_DATA_MASK 0x0000FFFF1711#define EC_RFW_DEFAULT_VLAN_DATA_SHIFT 017121713/**** default_hash register ****/1714/* Default UDMA */1715#define EC_RFW_DEFAULT_HASH_UDMA_MASK 0x0000000F1716#define EC_RFW_DEFAULT_HASH_UDMA_SHIFT 01717/* Default queue */1718#define EC_RFW_DEFAULT_HASH_QUEUE_MASK 0x000300001719#define EC_RFW_DEFAULT_HASH_QUEUE_SHIFT 1617201721/**** default_or register ****/1722/* Default UDMA */1723#define EC_RFW_DEFAULT_OR_UDMA_MASK 0x0000000F1724#define EC_RFW_DEFAULT_OR_UDMA_SHIFT 01725/* Default queue */1726#define EC_RFW_DEFAULT_OR_QUEUE_MASK 0x000300001727#define EC_RFW_DEFAULT_OR_QUEUE_SHIFT 1617281729/**** checksum register ****/1730/* Check that the length in the UDP header matches the length in ... */1731#define EC_RFW_CHECKSUM_UDP_LEN (1 << 0)1732/* Select the header that will be used for the checksum when a t ... */1733#define EC_RFW_CHECKSUM_HDR_SEL (1 << 1)1734/* Enable L4 checksum when L3 fragmentation is detected */1735#define EC_RFW_CHECKSUM_L4_FRAG_EN (1 << 2)1736/* L3 Checksum result selection for the Metadata descriptor0 - O ... */1737#define EC_RFW_CHECKSUM_L3_CKS_SEL (1 << 4)1738/* L4 Checksum result selection for the Metadata descriptor0 - O ... */1739#define EC_RFW_CHECKSUM_L4_CKS_SEL (1 << 5)17401741/**** lro_cfg_1 register ****/1742/* Select the header that will be used for the LRO offload engin ... */1743#define EC_RFW_LRO_CFG_1_HDR_SEL (1 << 0)1744/* Select the L2 header that will be used for the LRO offload en ... */1745#define EC_RFW_LRO_CFG_1_HDR_L2_SEL (1 << 1)17461747/**** lro_check_ipv4 register ****/1748/* Check version field. */1749#define EC_RFW_LRO_CHECK_IPV4_VER (1 << 0)1750/* Check IHL field == 5. */1751#define EC_RFW_LRO_CHECK_IPV4_IHL_0 (1 << 1)1752/* Check IHL field >= 5. */1753#define EC_RFW_LRO_CHECK_IPV4_IHL_1 (1 << 2)1754/* Compare to previous packet. */1755#define EC_RFW_LRO_CHECK_IPV4_IHL_2 (1 << 3)1756/* Compare DSCP to previous packet. */1757#define EC_RFW_LRO_CHECK_IPV4_DSCP (1 << 4)1758/* Check that Total length >= lro_ipv4_tlen_val. */1759#define EC_RFW_LRO_CHECK_IPV4_TLEN (1 << 5)1760/* Compare to previous packet value +1. */1761#define EC_RFW_LRO_CHECK_IPV4_ID (1 << 6)1762/* Compare to lro_ipv4_flags_val with lro_ipv4_flags_mask_0. */1763#define EC_RFW_LRO_CHECK_IPV4_FLAGS_0 (1 << 7)1764/* Compare to previous packet flags with lro_ipv4_flags_mask_1. */1765#define EC_RFW_LRO_CHECK_IPV4_FLAGS_1 (1 << 8)1766/* Verify that the fragment offset field is 0. */1767#define EC_RFW_LRO_CHECK_IPV4_FRAG (1 << 9)1768/* Verify that the TTL value >0. */1769#define EC_RFW_LRO_CHECK_IPV4_TTL_0 (1 << 10)1770/* Compare TTL value to previous packet. */1771#define EC_RFW_LRO_CHECK_IPV4_TTL_1 (1 << 11)1772/* Compare to previous packet protocol field. */1773#define EC_RFW_LRO_CHECK_IPV4_PROT_0 (1 << 12)1774/* Verify that the protocol is TCP or UDP. */1775#define EC_RFW_LRO_CHECK_IPV4_PROT_1 (1 << 13)1776/* Verify that the check sum is correct. */1777#define EC_RFW_LRO_CHECK_IPV4_CHECKSUM (1 << 14)1778/* Compare SIP to previous packet. */1779#define EC_RFW_LRO_CHECK_IPV4_SIP (1 << 15)1780/* Compare DIP to previous packet. */1781#define EC_RFW_LRO_CHECK_IPV4_DIP (1 << 16)17821783/**** lro_ipv4 register ****/1784/* Total length minimum value */1785#define EC_RFW_LRO_IPV4_TLEN_VAL_MASK 0x0000FFFF1786#define EC_RFW_LRO_IPV4_TLEN_VAL_SHIFT 01787/* Flags value */1788#define EC_RFW_LRO_IPV4_FLAGS_VAL_MASK 0x000700001789#define EC_RFW_LRO_IPV4_FLAGS_VAL_SHIFT 161790/* Flags mask */1791#define EC_RFW_LRO_IPV4_FLAGS_MASK_0_MASK 0x003800001792#define EC_RFW_LRO_IPV4_FLAGS_MASK_0_SHIFT 191793/* Flags mask */1794#define EC_RFW_LRO_IPV4_FLAGS_MASK_1_MASK 0x01C000001795#define EC_RFW_LRO_IPV4_FLAGS_MASK_1_SHIFT 221796/* Version value */1797#define EC_RFW_LRO_IPV4_VER_MASK 0xF00000001798#define EC_RFW_LRO_IPV4_VER_SHIFT 2817991800/**** lro_check_ipv6 register ****/1801/* Check version field */1802#define EC_RFW_LRO_CHECK_IPV6_VER (1 << 0)1803/* Compare TC to previous packet. */1804#define EC_RFW_LRO_CHECK_IPV6_TC (1 << 1)1805/* Compare flow label field to previous packet. */1806#define EC_RFW_LRO_CHECK_IPV6_FLOW (1 << 2)1807/* Check that Total length >= lro_ipv6_pen_val. */1808#define EC_RFW_LRO_CHECK_IPV6_PLEN (1 << 3)1809/* Compare to previous packet next header field. */1810#define EC_RFW_LRO_CHECK_IPV6_NEXT_0 (1 << 4)1811/* Verify that the next header is TCP or UDP. */1812#define EC_RFW_LRO_CHECK_IPV6_NEXT_1 (1 << 5)1813/* Verify that hop limit is >0. */1814#define EC_RFW_LRO_CHECK_IPV6_HOP_0 (1 << 6)1815/* Compare hop limit to previous packet. */1816#define EC_RFW_LRO_CHECK_IPV6_HOP_1 (1 << 7)1817/* Compare SIP to previous packet. */1818#define EC_RFW_LRO_CHECK_IPV6_SIP (1 << 8)1819/* Compare DIP to previous packet. */1820#define EC_RFW_LRO_CHECK_IPV6_DIP (1 << 9)18211822/**** lro_ipv6 register ****/1823/* Payload length minimum value */1824#define EC_RFW_LRO_IPV6_PLEN_VAL_MASK 0x0000FFFF1825#define EC_RFW_LRO_IPV6_PLEN_VAL_SHIFT 01826/* Version value */1827#define EC_RFW_LRO_IPV6_VER_MASK 0x0F0000001828#define EC_RFW_LRO_IPV6_VER_SHIFT 2418291830/**** lro_check_tcp register ****/1831/* Compare to previous packet. */1832#define EC_RFW_LRO_CHECK_TCP_SRC_PORT (1 << 0)1833/* Compare to previous packet. */1834#define EC_RFW_LRO_CHECK_TCP_DST_PORT (1 << 1)1835/* If (SYN == 1), don't check */1836#define EC_RFW_LRO_CHECK_TCP_SN (1 << 2)1837/* Check data offset field == 5. */1838#define EC_RFW_LRO_CHECK_TCP_OFFSET_0 (1 << 3)1839/* Check data offset field >= 5. */1840#define EC_RFW_LRO_CHECK_TCP_OFFSET_1 (1 << 4)1841/* Compare to previous packet. */1842#define EC_RFW_LRO_CHECK_TCP_OFFSET_2 (1 << 5)1843/* Compare reserved field to lro_tcp_res. */1844#define EC_RFW_LRO_CHECK_TCP_RES (1 << 6)1845/* Compare to lro_tcp_ecn_val and lro_tcp_ecn_mask_0. */1846#define EC_RFW_LRO_CHECK_TCP_ECN_0 (1 << 7)1847/* Compare to previous packet ECN field with lro_tcp_ecn_mask_1 */1848#define EC_RFW_LRO_CHECK_TCP_ECN_1 (1 << 8)1849/* Compare to lro_tcp_ctrl_val and lro_tcp_ctrl_mask_0. */1850#define EC_RFW_LRO_CHECK_TCP_CTRL_0 (1 << 9)1851/* Compare to previous packet ECN field with lro_tcp_ctrl_mask_1 */1852#define EC_RFW_LRO_CHECK_TCP_CTRL_1 (1 << 10)1853/* Verify that check sum is correct. */1854#define EC_RFW_LRO_CHECK_TCP_CHECKSUM (1 << 11)18551856/**** lro_tcp register ****/1857/* Reserved field default value */1858#define EC_RFW_LRO_TCP_RES_MASK 0x000000071859#define EC_RFW_LRO_TCP_RES_SHIFT 01860/* ECN field value */1861#define EC_RFW_LRO_TCP_ECN_VAL_MASK 0x000000381862#define EC_RFW_LRO_TCP_ECN_VAL_SHIFT 31863/* ECN field mask */1864#define EC_RFW_LRO_TCP_ECN_MASK_0_MASK 0x000001C01865#define EC_RFW_LRO_TCP_ECN_MASK_0_SHIFT 61866/* ECN field mask */1867#define EC_RFW_LRO_TCP_ECN_MASK_1_MASK 0x00000E001868#define EC_RFW_LRO_TCP_ECN_MASK_1_SHIFT 91869/* Control field value */1870#define EC_RFW_LRO_TCP_CTRL_VAL_MASK 0x0003F0001871#define EC_RFW_LRO_TCP_CTRL_VAL_SHIFT 121872/* Control field mask */1873#define EC_RFW_LRO_TCP_CTRL_MASK_0_MASK 0x00FC00001874#define EC_RFW_LRO_TCP_CTRL_MASK_0_SHIFT 181875/* Control field mask */1876#define EC_RFW_LRO_TCP_CTRL_MASK_1_MASK 0x3F0000001877#define EC_RFW_LRO_TCP_CTRL_MASK_1_SHIFT 2418781879/**** lro_check_udp register ****/1880/* Compare to previous packet. */1881#define EC_RFW_LRO_CHECK_UDP_SRC_PORT (1 << 0)1882/* Compare to previous packet. */1883#define EC_RFW_LRO_CHECK_UDP_DST_PORT (1 << 1)1884/* Verify that check sum is correct. */1885#define EC_RFW_LRO_CHECK_UDP_CHECKSUM (1 << 2)18861887/**** lro_check_l2 register ****/1888/* Compare to previous packet. */1889#define EC_RFW_LRO_CHECK_L2_MAC_DA (1 << 0)1890/* Compare to previous packet. */1891#define EC_RFW_LRO_CHECK_L2_MAC_SA (1 << 1)1892/* Compare to previous packet. */1893#define EC_RFW_LRO_CHECK_L2_VLAN_1_EXIST (1 << 2)1894/* Compare to previous packet. */1895#define EC_RFW_LRO_CHECK_L2_VLAN_1_VID (1 << 3)1896/* Compare to previous packet. */1897#define EC_RFW_LRO_CHECK_L2_VLAN_1_CFI (1 << 4)1898/* Compare to previous packet. */1899#define EC_RFW_LRO_CHECK_L2_VLAN_1_PBITS (1 << 5)1900/* Compare to previous packet. */1901#define EC_RFW_LRO_CHECK_L2_VLAN_2_EXIST (1 << 6)1902/* Compare to previous packet. */1903#define EC_RFW_LRO_CHECK_L2_VLAN_2_VID (1 << 7)1904/* Compare to previous packet. */1905#define EC_RFW_LRO_CHECK_L2_VLAN_2_CFI (1 << 8)1906/* Compare to previous packet. */1907#define EC_RFW_LRO_CHECK_L2_VLAN_2_PBITS (1 << 9)1908/* Verify that the FCS is correct. */1909#define EC_RFW_LRO_CHECK_L2_FCS (1 << 10)19101911/**** lro_check_gen register ****/1912/* Compare to previous packet */1913#define EC_RFW_LRO_CHECK_GEN_UDMA (1 << 0)1914/* Compare to previous packet */1915#define EC_RFW_LRO_CHECK_GEN_QUEUE (1 << 1)19161917/**** lro_store register ****/1918/* Store packet information if protocol match. */1919#define EC_RFW_LRO_STORE_IPV4 (1 << 0)1920/* Store packet information if protocol match. */1921#define EC_RFW_LRO_STORE_IPV6 (1 << 1)1922/* Store packet information if protocol match. */1923#define EC_RFW_LRO_STORE_TCP (1 << 2)1924/* Store packet information if protocol match. */1925#define EC_RFW_LRO_STORE_UDP (1 << 3)1926/* Store packet if IPv4 flags match the register value with mask */1927#define EC_RFW_LRO_STORE_IPV4_FLAGS_VAL_MASK 0x000000701928#define EC_RFW_LRO_STORE_IPV4_FLAGS_VAL_SHIFT 41929/* Mask for IPv4 flags */1930#define EC_RFW_LRO_STORE_IPV4_FLAGS_MASK_MASK 0x000003801931#define EC_RFW_LRO_STORE_IPV4_FLAGS_MASK_SHIFT 71932/* Store packet if TCP control and ECN match the register value ... */1933#define EC_RFW_LRO_STORE_TCP_CTRL_VAL_MASK 0x0007FC001934#define EC_RFW_LRO_STORE_TCP_CTRL_VAL_SHIFT 101935/* Mask for TCP control */1936#define EC_RFW_LRO_STORE_TCP_CTRL_MASK_MASK 0x0FF800001937#define EC_RFW_LRO_STORE_TCP_CTRL_MASK_SHIFT 1919381939/**** vid_table_def register ****/1940/* Table default data (valid only after configuring the table ad ... */1941#define EC_RFW_VID_TABLE_DEF_VAL_MASK 0x0000003F1942#define EC_RFW_VID_TABLE_DEF_VAL_SHIFT 01943/* Default data selection19440 - Default value19451 - Table data out */1946#define EC_RFW_VID_TABLE_DEF_SEL (1 << 6)19471948/**** ctrl_table_def register ****/1949/* Control table output for selecting the forwarding MUXs [3:0] ... */1950#define EC_RFW_CTRL_TABLE_DEF_VAL_MASK 0x000FFFFF1951#define EC_RFW_CTRL_TABLE_DEF_VAL_SHIFT 01952/* Default data selection 0 - Default value 1 - Table data out ... */1953#define EC_RFW_CTRL_TABLE_DEF_SEL (1 << 20)19541955/**** cfg_a_0 register ****/1956/* Selection of the L3 checksum result in the Metadata00 - L3 ch ... */1957#define EC_RFW_CFG_A_0_META_L3_CHK_RES_SEL_MASK 0x000000031958#define EC_RFW_CFG_A_0_META_L3_CHK_RES_SEL_SHIFT 01959/* Selection of the L4 checksum result in the Metadata0 - L4 che ... */1960#define EC_RFW_CFG_A_0_META_L4_CHK_RES_SEL (1 << 2)1961/* Selection of the LRO_context_value result in the Metadata0 - ... */1962#define EC_RFW_CFG_A_0_LRO_CONTEXT_SEL (1 << 4)19631964/**** thash_cfg_3 register ****/1965/* Enable Hash value for RoCE packets in outer packet. */1966#define EC_RFW_THASH_CFG_3_ENABLE_OUTER_ROCE (1 << 0)1967/* Enable Hash value for RoCE packets in inner packet. */1968#define EC_RFW_THASH_CFG_3_ENABLE_INNER_ROCE (1 << 1)1969/* Enable Hash value for FcoE packets in outer packet. */1970#define EC_RFW_THASH_CFG_3_ENABLE_OUTER_FCOE (1 << 2)1971/* Enable Hash value for FcoE packets in inner packet. */1972#define EC_RFW_THASH_CFG_3_ENABLE_INNER_FCOE (1 << 3)19731974/**** thash_mask_outer_ipv6 register ****/1975/* IPv6 source IP address */1976#define EC_RFW_THASH_MASK_OUTER_IPV6_SRC_MASK 0x0000FFFF1977#define EC_RFW_THASH_MASK_OUTER_IPV6_SRC_SHIFT 01978/* IPv6 destination IP address */1979#define EC_RFW_THASH_MASK_OUTER_IPV6_DST_MASK 0xFFFF00001980#define EC_RFW_THASH_MASK_OUTER_IPV6_DST_SHIFT 1619811982/**** thash_mask_outer register ****/1983/* IPv4 source IP address */1984#define EC_RFW_THASH_MASK_OUTER_IPV4_SRC_MASK 0x0000000F1985#define EC_RFW_THASH_MASK_OUTER_IPV4_SRC_SHIFT 01986/* IPv4 destination IP address */1987#define EC_RFW_THASH_MASK_OUTER_IPV4_DST_MASK 0x000000F01988#define EC_RFW_THASH_MASK_OUTER_IPV4_DST_SHIFT 41989/* TCP source port */1990#define EC_RFW_THASH_MASK_OUTER_TCP_SRC_PORT_MASK 0x000003001991#define EC_RFW_THASH_MASK_OUTER_TCP_SRC_PORT_SHIFT 81992/* TCP destination port */1993#define EC_RFW_THASH_MASK_OUTER_TCP_DST_PORT_MASK 0x00000C001994#define EC_RFW_THASH_MASK_OUTER_TCP_DST_PORT_SHIFT 101995/* UDP source port */1996#define EC_RFW_THASH_MASK_OUTER_UDP_SRC_PORT_MASK 0x000030001997#define EC_RFW_THASH_MASK_OUTER_UDP_SRC_PORT_SHIFT 121998/* UDP destination port */1999#define EC_RFW_THASH_MASK_OUTER_UDP_DST_PORT_MASK 0x0000C0002000#define EC_RFW_THASH_MASK_OUTER_UDP_DST_PORT_SHIFT 1420012002/**** thash_mask_inner_ipv6 register ****/2003/* IPv6 source IP address */2004#define EC_RFW_THASH_MASK_INNER_IPV6_SRC_MASK 0x0000FFFF2005#define EC_RFW_THASH_MASK_INNER_IPV6_SRC_SHIFT 02006/* IPv6 destination IP address */2007#define EC_RFW_THASH_MASK_INNER_IPV6_DST_MASK 0xFFFF00002008#define EC_RFW_THASH_MASK_INNER_IPV6_DST_SHIFT 1620092010/**** thash_mask_inner register ****/2011/* IPv4 source IP address */2012#define EC_RFW_THASH_MASK_INNER_IPV4_SRC_MASK 0x0000000F2013#define EC_RFW_THASH_MASK_INNER_IPV4_SRC_SHIFT 02014/* IPv4 destination IP address */2015#define EC_RFW_THASH_MASK_INNER_IPV4_DST_MASK 0x000000F02016#define EC_RFW_THASH_MASK_INNER_IPV4_DST_SHIFT 42017/* TCP source port */2018#define EC_RFW_THASH_MASK_INNER_TCP_SRC_PORT_MASK 0x000003002019#define EC_RFW_THASH_MASK_INNER_TCP_SRC_PORT_SHIFT 82020/* TCP destination port */2021#define EC_RFW_THASH_MASK_INNER_TCP_DST_PORT_MASK 0x00000C002022#define EC_RFW_THASH_MASK_INNER_TCP_DST_PORT_SHIFT 102023/* UDP source port */2024#define EC_RFW_THASH_MASK_INNER_UDP_SRC_PORT_MASK 0x000030002025#define EC_RFW_THASH_MASK_INNER_UDP_SRC_PORT_SHIFT 122026/* UDP destination port */2027#define EC_RFW_THASH_MASK_INNER_UDP_DST_PORT_MASK 0x0000C0002028#define EC_RFW_THASH_MASK_INNER_UDP_DST_PORT_SHIFT 1420292030/**** def_cfg register ****/2031/* Number of padding bytes to add at the beginning of each Ether ... */2032#define EC_RFW_UDMA_DEF_CFG_RX_PAD_MASK 0x0000003F2033#define EC_RFW_UDMA_DEF_CFG_RX_PAD_SHIFT 020342035/**** queue register ****/2036/* Mapping between priority and queue number */2037#define EC_RFW_PRIORITY_QUEUE_MAP_MASK 0x000000032038#define EC_RFW_PRIORITY_QUEUE_MAP_SHIFT 020392040/**** opt_1 register ****/2041/* Default UDMA for forwarding */2042#define EC_RFW_DEFAULT_OPT_1_UDMA_MASK 0x0000000F2043#define EC_RFW_DEFAULT_OPT_1_UDMA_SHIFT 02044/* Default priority for forwarding */2045#define EC_RFW_DEFAULT_OPT_1_PRIORITY_MASK 0x000007002046#define EC_RFW_DEFAULT_OPT_1_PRIORITY_SHIFT 82047/* Default queue for forwarding */2048#define EC_RFW_DEFAULT_OPT_1_QUEUE_MASK 0x000300002049#define EC_RFW_DEFAULT_OPT_1_QUEUE_SHIFT 1620502051/**** data_h register ****/2052/* MAC address data */2053#define EC_FWD_MAC_DATA_H_VAL_MASK 0x0000FFFF2054#define EC_FWD_MAC_DATA_H_VAL_SHIFT 020552056/**** mask_h register ****/2057/* MAC address mask */2058#define EC_FWD_MAC_MASK_H_VAL_MASK 0x0000FFFF2059#define EC_FWD_MAC_MASK_H_VAL_SHIFT 020602061/**** ctrl register ****/2062/* Control value for Rx forwarding engine[0] - Drop indication[2 ... */2063#define EC_FWD_MAC_CTRL_RX_VAL_MASK 0x000001FF2064#define EC_FWD_MAC_CTRL_RX_VAL_SHIFT 020652066/* Drop indication */2067#define EC_FWD_MAC_CTRL_RX_VAL_DROP (1 << 0)20682069/* control table command input */2070#define EC_FWD_MAC_CTRL_RX_VAL_CTRL_CMD_MASK 0x000000062071#define EC_FWD_MAC_CTRL_RX_VAL_CTRL_CMD_SHIFT 120722073/* UDMA selection */2074#define EC_FWD_MAC_CTRL_RX_VAL_UDMA_MASK 0x0000000782075#define EC_FWD_MAC_CTRL_RX_VAL_UDMA_SHIFT 320762077/* queue number */2078#define EC_FWD_MAC_CTRL_RX_VAL_QID_MASK 0x000001802079#define EC_FWD_MAC_CTRL_RX_VAL_QID_SHIFT 720802081/* Entry is valid for Rx forwarding engine. */2082#define EC_FWD_MAC_CTRL_RX_VALID (1 << 15)2083/* Control value for Tx forwarding engine */2084#define EC_FWD_MAC_CTRL_TX_VAL_MASK 0x001F00002085#define EC_FWD_MAC_CTRL_TX_VAL_SHIFT 162086/* Entry is valid for Tx forwarding engine. */2087#define EC_FWD_MAC_CTRL_TX_VALID (1 << 31)20882089/**** uc register ****/2090/* timer max value for waiting for a stream to be ready to accep ... */2091#define EC_MSW_UC_TIMER_MASK 0x0000FFFF2092#define EC_MSW_UC_TIMER_SHIFT 02093/* Drop packet if target queue in the UDMA is full */2094#define EC_MSW_UC_Q_FULL_DROP_MASK 0x000F00002095#define EC_MSW_UC_Q_FULL_DROP_SHIFT 162096/* Drop packet if timer expires. */2097#define EC_MSW_UC_TIMER_DROP_MASK 0x0F0000002098#define EC_MSW_UC_TIMER_DROP_SHIFT 2420992100/**** mc register ****/2101/* Timer max value for waiting for a stream to be ready to accep ... */2102#define EC_MSW_MC_TIMER_MASK 0x0000FFFF2103#define EC_MSW_MC_TIMER_SHIFT 02104/* Drop packet if target queue in UDMA is full. */2105#define EC_MSW_MC_Q_FULL_DROP_MASK 0x000F00002106#define EC_MSW_MC_Q_FULL_DROP_SHIFT 162107/* Drop packet if timer expires. */2108#define EC_MSW_MC_TIMER_DROP_MASK 0x0F0000002109#define EC_MSW_MC_TIMER_DROP_SHIFT 2421102111/**** bc register ****/2112/* Timer max value for waiting for a stream to be ready to accep ... */2113#define EC_MSW_BC_TIMER_MASK 0x0000FFFF2114#define EC_MSW_BC_TIMER_SHIFT 02115/* Drop packet if target queue in UDMA is full. */2116#define EC_MSW_BC_Q_FULL_DROP_MASK 0x000F00002117#define EC_MSW_BC_Q_FULL_DROP_SHIFT 162118/* Drop packet if timer expires. */2119#define EC_MSW_BC_TIMER_DROP_MASK 0x0F0000002120#define EC_MSW_BC_TIMER_DROP_SHIFT 2421212122/**** in_cfg register ****/2123/* Swap input bytes order */2124#define EC_TSO_IN_CFG_SWAP_BYTES (1 << 0)2125/* Selects strict priority or round robin scheduling between GDM ... */2126#define EC_TSO_IN_CFG_SEL_SP_RR (1 << 1)2127/* Selects scheduler numbering direction */2128#define EC_TSO_IN_CFG_SEL_SCH_DIR (1 << 2)2129/* Minimum L2 packet size (not including FCS) */2130#define EC_TSO_IN_CFG_L2_MIN_SIZE_MASK 0x00007F002131#define EC_TSO_IN_CFG_L2_MIN_SIZE_SHIFT 82132/* Swap input bytes order */2133#define EC_TSO_IN_CFG_SP_INIT_VAL_MASK 0x000F00002134#define EC_TSO_IN_CFG_SP_INIT_VAL_SHIFT 1621352136/**** cache_table_addr register ****/2137/* Address for accessing the table */2138#define EC_TSO_CACHE_TABLE_ADDR_VAL_MASK 0x0000000F2139#define EC_TSO_CACHE_TABLE_ADDR_VAL_SHIFT 021402141/**** ctrl_first register ****/2142/* Data to be written into the control BIS. */2143#define EC_TSO_CTRL_FIRST_DATA_MASK 0x000001FF2144#define EC_TSO_CTRL_FIRST_DATA_SHIFT 02145/* Mask for control bits */2146#define EC_TSO_CTRL_FIRST_MASK_MASK 0x01FF00002147#define EC_TSO_CTRL_FIRST_MASK_SHIFT 1621482149/**** ctrl_middle register ****/2150/* Data to be written into the control BIS. */2151#define EC_TSO_CTRL_MIDDLE_DATA_MASK 0x000001FF2152#define EC_TSO_CTRL_MIDDLE_DATA_SHIFT 02153/* Mask for the control bits */2154#define EC_TSO_CTRL_MIDDLE_MASK_MASK 0x01FF00002155#define EC_TSO_CTRL_MIDDLE_MASK_SHIFT 1621562157/**** ctrl_last register ****/2158/* Data to be written into the control BIS. */2159#define EC_TSO_CTRL_LAST_DATA_MASK 0x000001FF2160#define EC_TSO_CTRL_LAST_DATA_SHIFT 02161/* Mask for the control bits */2162#define EC_TSO_CTRL_LAST_MASK_MASK 0x01FF00002163#define EC_TSO_CTRL_LAST_MASK_SHIFT 1621642165/**** cfg_add_0 register ****/2166/* MSS selection option:0 - MSS value is selected using MSS_sel ... */2167#define EC_TSO_CFG_ADD_0_MSS_SEL (1 << 0)21682169/**** cfg_tunnel register ****/2170/* Enable TSO with tunnelling */2171#define EC_TSO_CFG_TUNNEL_EN_TUNNEL_TSO (1 << 0)2172/* Enable outer UDP checksum update */2173#define EC_TSO_CFG_TUNNEL_EN_UDP_CHKSUM (1 << 8)2174/* Enable outer UDP length update */2175#define EC_TSO_CFG_TUNNEL_EN_UDP_LEN (1 << 9)2176/* Enable outer Ip6 length update */2177#define EC_TSO_CFG_TUNNEL_EN_IPV6_PLEN (1 << 10)2178/* Enable outer IPv4 checksum update */2179#define EC_TSO_CFG_TUNNEL_EN_IPV4_CHKSUM (1 << 11)2180/* Enable outer IPv4 Identification update */2181#define EC_TSO_CFG_TUNNEL_EN_IPV4_IDEN (1 << 12)2182/* Enable outer IPv4 length update */2183#define EC_TSO_CFG_TUNNEL_EN_IPV4_TLEN (1 << 13)21842185/**** mss register ****/2186/* MSS value */2187#define EC_TSO_SEL_MSS_VAL_MASK 0x000FFFFF2188#define EC_TSO_SEL_MSS_VAL_SHIFT 021892190/**** parse register ****/2191/* Max number of bus beats for parsing */2192#define EC_TPE_PARSE_MAX_BEATS_MASK 0x0000FFFF2193#define EC_TPE_PARSE_MAX_BEATS_SHIFT 021942195/**** vlan_data register ****/2196/* UDMA default VLAN 1 data */2197#define EC_TPM_UDMA_VLAN_DATA_DEF_1_MASK 0x0000FFFF2198#define EC_TPM_UDMA_VLAN_DATA_DEF_1_SHIFT 02199/* UDMA default VLAN 2 data */2200#define EC_TPM_UDMA_VLAN_DATA_DEF_2_MASK 0xFFFF00002201#define EC_TPM_UDMA_VLAN_DATA_DEF_2_SHIFT 1622022203/**** mac_sa_2 register ****/2204/* MAC source address data [47:32] */2205#define EC_TPM_UDMA_MAC_SA_2_H_VAL_MASK 0x0000FFFF2206#define EC_TPM_UDMA_MAC_SA_2_H_VAL_SHIFT 02207/* Drop indication for MAC SA spoofing0 – Don't drop */2208#define EC_TPM_UDMA_MAC_SA_2_DROP (1 << 16)2209/* Replace indication for MAC SA spoofing 0 - Don't replace */2210#define EC_TPM_UDMA_MAC_SA_2_REPLACE (1 << 17)22112212/**** etype register ****/2213/* Ether type value */2214#define EC_TPM_SEL_ETYPE_VAL_MASK 0x0000FFFF2215#define EC_TPM_SEL_ETYPE_VAL_SHIFT 022162217/**** tx_wr_fifo register ****/2218/* Max data beats that can be used in the Tx FIFO */2219#define EC_TFW_TX_WR_FIFO_DATA_TH_MASK 0x0000FFFF2220#define EC_TFW_TX_WR_FIFO_DATA_TH_SHIFT 02221/* Max packets that can be stored in the Tx FIFO */2222#define EC_TFW_TX_WR_FIFO_INFO_TH_MASK 0xFFFF00002223#define EC_TFW_TX_WR_FIFO_INFO_TH_SHIFT 1622242225/**** tx_vid_table_addr register ****/2226/* Address for accessing the table */2227#define EC_TFW_TX_VID_TABLE_ADDR_VAL_MASK 0x00000FFF2228#define EC_TFW_TX_VID_TABLE_ADDR_VAL_SHIFT 022292230/**** tx_vid_table_data register ****/2231/* Table data (valid only after configuring the table address re ... */2232#define EC_TFW_TX_VID_TABLE_DATA_VAL_MASK 0x0000001F2233#define EC_TFW_TX_VID_TABLE_DATA_VAL_SHIFT 022342235/**** tx_rd_fifo register ****/2236/* Read data threshold when cut through mode is enabled. */2237#define EC_TFW_TX_RD_FIFO_READ_TH_MASK 0x0000FFFF2238#define EC_TFW_TX_RD_FIFO_READ_TH_SHIFT 02239/* Enable cut through operation of the Tx FIFO. */2240#define EC_TFW_TX_RD_FIFO_EN_CUT_THROUGH (1 << 16)22412242/**** tx_checksum register ****/2243/* Enable L3 checksum insertion. */2244#define EC_TFW_TX_CHECKSUM_L3_EN (1 << 0)2245/* Enable L4 checksum insertion. */2246#define EC_TFW_TX_CHECKSUM_L4_EN (1 << 1)2247/* Enable L4 checksum when L3 fragmentation is detected. */2248#define EC_TFW_TX_CHECKSUM_L4_FRAG_EN (1 << 2)22492250/**** tx_gen register ****/2251/* Force forward of all Tx packets to MAC. */2252#define EC_TFW_TX_GEN_FWD_ALL_TO_MAC (1 << 0)2253/* Select the Packet generator as the source of Tx packets0 - Tx ... */2254#define EC_TFW_TX_GEN_SELECT_PKT_GEN (1 << 1)22552256/**** tx_spf register ****/2257/* Select the VID for spoofing check:[0] - Packet VID[1] - Forwa ... */2258#define EC_TFW_TX_SPF_VID_SEL (1 << 0)22592260/**** data_fifo register ****/2261/* FIFO used value (number of entries) */2262#define EC_TFW_DATA_FIFO_USED_MASK 0x0000FFFF2263#define EC_TFW_DATA_FIFO_USED_SHIFT 02264/* FIFO FULL status */2265#define EC_TFW_DATA_FIFO_FULL (1 << 16)2266/* FIFO EMPTY status */2267#define EC_TFW_DATA_FIFO_EMPTY (1 << 17)22682269/**** ctrl_fifo register ****/2270/* FIFO used value (number of entries) */2271#define EC_TFW_CTRL_FIFO_USED_MASK 0x0000FFFF2272#define EC_TFW_CTRL_FIFO_USED_SHIFT 02273/* FIFO FULL status */2274#define EC_TFW_CTRL_FIFO_FULL (1 << 16)2275/* FIFO EMPTY status */2276#define EC_TFW_CTRL_FIFO_EMPTY (1 << 17)22772278/**** hdr_fifo register ****/2279/* FIFO used value (number of entries) */2280#define EC_TFW_HDR_FIFO_USED_MASK 0x0000FFFF2281#define EC_TFW_HDR_FIFO_USED_SHIFT 02282/* FIFO FULL status */2283#define EC_TFW_HDR_FIFO_FULL (1 << 16)2284/* FIFO EMPTY status */2285#define EC_TFW_HDR_FIFO_EMPTY (1 << 17)22862287/**** uc_udma register ****/2288/* Default UDMA bitmap2289(MSB represents physical port) */2290#define EC_TFW_UDMA_UC_UDMA_DEF_MASK 0x0000001F2291#define EC_TFW_UDMA_UC_UDMA_DEF_SHIFT 022922293/**** mc_udma register ****/2294/* Default UDMA bitmap (MSB represents physical port.) */2295#define EC_TFW_UDMA_MC_UDMA_DEF_MASK 0x0000001F2296#define EC_TFW_UDMA_MC_UDMA_DEF_SHIFT 022972298/**** bc_udma register ****/2299/* Default UDMA bitmap (MSB represents physical port.) */2300#define EC_TFW_UDMA_BC_UDMA_DEF_MASK 0x0000001F2301#define EC_TFW_UDMA_BC_UDMA_DEF_SHIFT 023022303/**** spf_cmd register ****/2304/* Command for the VLAN spoofing00 – Ignore mismatch */2305#define EC_TFW_UDMA_SPF_CMD_VID_MASK 0x000000032306#define EC_TFW_UDMA_SPF_CMD_VID_SHIFT 02307/* Command for VLAN spoofing 00 - Ignore mismatch */2308#define EC_TFW_UDMA_SPF_CMD_MAC_MASK 0x0000000C2309#define EC_TFW_UDMA_SPF_CMD_MAC_SHIFT 223102311/**** fwd_dec register ****/2312/* Forwarding decision control:[0] – Enable internal switch */2313#define EC_TFW_UDMA_FWD_DEC_CTRL_MASK 0x000003FF2314#define EC_TFW_UDMA_FWD_DEC_CTRL_SHIFT 023152316/**** tx_cfg register ****/2317/* Swap output byte order */2318#define EC_TMI_TX_CFG_SWAP_BYTES (1 << 0)2319/* Enable forwarding to the Rx data path. */2320#define EC_TMI_TX_CFG_EN_FWD_TO_RX (1 << 1)2321/* Force forwarding all packets to the MAC. */2322#define EC_TMI_TX_CFG_FORCE_FWD_MAC (1 << 2)2323/* Force forwarding all packets to the MAC. */2324#define EC_TMI_TX_CFG_FORCE_FWD_RX (1 << 3)2325/* Force loop back operation */2326#define EC_TMI_TX_CFG_FORCE_LB (1 << 4)23272328/**** ec_pause register ****/2329/* Mask of pause_on [7:0] */2330#define EC_EFC_EC_PAUSE_MASK_MAC_MASK 0x000000FF2331#define EC_EFC_EC_PAUSE_MASK_MAC_SHIFT 02332/* Mask of GPIO input [7:0] */2333#define EC_EFC_EC_PAUSE_MASK_GPIO_MASK 0x0000FF002334#define EC_EFC_EC_PAUSE_MASK_GPIO_SHIFT 823352336/**** ec_xoff register ****/2337/* Mask 1 for XOFF [7:0]2338Mask 1 for Almost Full indication, */2339#define EC_EFC_EC_XOFF_MASK_1_MASK 0x000000FF2340#define EC_EFC_EC_XOFF_MASK_1_SHIFT 02341/* Mask 2 for XOFF [7:0] Mask 2 for sampled Almost Full indicati ... */2342#define EC_EFC_EC_XOFF_MASK_2_MASK 0x0000FF002343#define EC_EFC_EC_XOFF_MASK_2_SHIFT 823442345/**** xon register ****/2346/* Mask 1 for generating XON pulse, masking XOFF [0] */2347#define EC_EFC_XON_MASK_1 (1 << 0)2348/* Mask 2 for generating XON pulse, masking Almost Full indicati ... */2349#define EC_EFC_XON_MASK_2 (1 << 1)23502351/**** gpio register ****/2352/* Mask for generating GPIO output XOFF indication from XOFF[0] */2353#define EC_EFC_GPIO_MASK_1 (1 << 0)23542355/**** rx_fifo_af register ****/2356/* Threshold */2357#define EC_EFC_RX_FIFO_AF_TH_MASK 0x0000FFFF2358#define EC_EFC_RX_FIFO_AF_TH_SHIFT 023592360/**** rx_fifo_hyst register ****/2361/* Threshold low */2362#define EC_EFC_RX_FIFO_HYST_TH_LOW_MASK 0x0000FFFF2363#define EC_EFC_RX_FIFO_HYST_TH_LOW_SHIFT 02364/* Threshold high */2365#define EC_EFC_RX_FIFO_HYST_TH_HIGH_MASK 0xFFFF00002366#define EC_EFC_RX_FIFO_HYST_TH_HIGH_SHIFT 1623672368/**** stat register ****/2369/* 10G MAC PFC mode, input from the 10 MAC */2370#define EC_EFC_STAT_PFC_MODE (1 << 0)23712372/**** ec_pfc register ****/2373/* Force PFC flow control */2374#define EC_EFC_EC_PFC_FORCE_MASK 0x000000FF2375#define EC_EFC_EC_PFC_FORCE_SHIFT 023762377/**** q_pause_0 register ****/2378/* [i] – Mask for Q[i] */2379#define EC_FC_UDMA_Q_PAUSE_0_MASK_MASK 0x0000000F2380#define EC_FC_UDMA_Q_PAUSE_0_MASK_SHIFT 023812382/**** q_pause_1 register ****/2383/* [i] - Mask for Q[i] */2384#define EC_FC_UDMA_Q_PAUSE_1_MASK_MASK 0x0000000F2385#define EC_FC_UDMA_Q_PAUSE_1_MASK_SHIFT 023862387/**** q_pause_2 register ****/2388/* [i] - Mask for Q[i] */2389#define EC_FC_UDMA_Q_PAUSE_2_MASK_MASK 0x0000000F2390#define EC_FC_UDMA_Q_PAUSE_2_MASK_SHIFT 023912392/**** q_pause_3 register ****/2393/* [i] - Mask for Q[i] */2394#define EC_FC_UDMA_Q_PAUSE_3_MASK_MASK 0x0000000F2395#define EC_FC_UDMA_Q_PAUSE_3_MASK_SHIFT 023962397/**** q_pause_4 register ****/2398/* [i] - Mask for Q[i] */2399#define EC_FC_UDMA_Q_PAUSE_4_MASK_MASK 0x0000000F2400#define EC_FC_UDMA_Q_PAUSE_4_MASK_SHIFT 024012402/**** q_pause_5 register ****/2403/* [i] - Mask for Q[i] */2404#define EC_FC_UDMA_Q_PAUSE_5_MASK_MASK 0x0000000F2405#define EC_FC_UDMA_Q_PAUSE_5_MASK_SHIFT 024062407/**** q_pause_6 register ****/2408/* [i] - Mask for Q[i] */2409#define EC_FC_UDMA_Q_PAUSE_6_MASK_MASK 0x0000000F2410#define EC_FC_UDMA_Q_PAUSE_6_MASK_SHIFT 024112412/**** q_pause_7 register ****/2413/* [i] - Mask for Q[i] */2414#define EC_FC_UDMA_Q_PAUSE_7_MASK_MASK 0x0000000F2415#define EC_FC_UDMA_Q_PAUSE_7_MASK_SHIFT 024162417/**** q_gpio_0 register ****/2418/* [i] - Mask for Q[i] */2419#define EC_FC_UDMA_Q_GPIO_0_MASK_MASK 0x0000000F2420#define EC_FC_UDMA_Q_GPIO_0_MASK_SHIFT 024212422/**** q_gpio_1 register ****/2423/* [i] - Mask for Q[i] */2424#define EC_FC_UDMA_Q_GPIO_1_MASK_MASK 0x0000000F2425#define EC_FC_UDMA_Q_GPIO_1_MASK_SHIFT 024262427/**** q_gpio_2 register ****/2428/* [i] - Mask for Q[i] */2429#define EC_FC_UDMA_Q_GPIO_2_MASK_MASK 0x0000000F2430#define EC_FC_UDMA_Q_GPIO_2_MASK_SHIFT 024312432/**** q_gpio_3 register ****/2433/* [i] - Mask for Q[i] */2434#define EC_FC_UDMA_Q_GPIO_3_MASK_MASK 0x0000000F2435#define EC_FC_UDMA_Q_GPIO_3_MASK_SHIFT 024362437/**** q_gpio_4 register ****/2438/* [i] - Mask for Q[i] */2439#define EC_FC_UDMA_Q_GPIO_4_MASK_MASK 0x0000000F2440#define EC_FC_UDMA_Q_GPIO_4_MASK_SHIFT 024412442/**** q_gpio_5 register ****/2443/* [i] - Mask for Q[i] */2444#define EC_FC_UDMA_Q_GPIO_5_MASK_MASK 0x0000000F2445#define EC_FC_UDMA_Q_GPIO_5_MASK_SHIFT 024462447/**** q_gpio_6 register ****/2448/* [i] - Mask for Q[i] */2449#define EC_FC_UDMA_Q_GPIO_6_MASK_MASK 0x0000000F2450#define EC_FC_UDMA_Q_GPIO_6_MASK_SHIFT 024512452/**** q_gpio_7 register ****/2453/* [i] - Mask for Q[i] */2454#define EC_FC_UDMA_Q_GPIO_7_MASK_MASK 0x0000000F2455#define EC_FC_UDMA_Q_GPIO_7_MASK_SHIFT 024562457/**** s_pause register ****/2458/* Mask of pause_on [7:0] */2459#define EC_FC_UDMA_S_PAUSE_MASK_MAC_MASK 0x000000FF2460#define EC_FC_UDMA_S_PAUSE_MASK_MAC_SHIFT 02461/* Mask of GPIO input [7:0] */2462#define EC_FC_UDMA_S_PAUSE_MASK_GPIO_MASK 0x0000FF002463#define EC_FC_UDMA_S_PAUSE_MASK_GPIO_SHIFT 824642465/**** q_xoff_0 register ****/2466/* [i] - Mask for Q[i] */2467#define EC_FC_UDMA_Q_XOFF_0_MASK_MASK 0x0000000F2468#define EC_FC_UDMA_Q_XOFF_0_MASK_SHIFT 024692470/**** q_xoff_1 register ****/2471/* [i] - Mask for Q[i] */2472#define EC_FC_UDMA_Q_XOFF_1_MASK_MASK 0x0000000F2473#define EC_FC_UDMA_Q_XOFF_1_MASK_SHIFT 024742475/**** q_xoff_2 register ****/2476/* [i] - Mask for Q[i] */2477#define EC_FC_UDMA_Q_XOFF_2_MASK_MASK 0x0000000F2478#define EC_FC_UDMA_Q_XOFF_2_MASK_SHIFT 024792480/**** q_xoff_3 register ****/2481/* [i] - Mask for Q[i] */2482#define EC_FC_UDMA_Q_XOFF_3_MASK_MASK 0x0000000F2483#define EC_FC_UDMA_Q_XOFF_3_MASK_SHIFT 024842485/**** q_xoff_4 register ****/2486/* [i] - Mask for Q[i] */2487#define EC_FC_UDMA_Q_XOFF_4_MASK_MASK 0x0000000F2488#define EC_FC_UDMA_Q_XOFF_4_MASK_SHIFT 024892490/**** q_xoff_5 register ****/2491/* [i] - Mask for Q[i] */2492#define EC_FC_UDMA_Q_XOFF_5_MASK_MASK 0x0000000F2493#define EC_FC_UDMA_Q_XOFF_5_MASK_SHIFT 024942495/**** q_xoff_6 register ****/2496/* [i] - Mask for Q[i] */2497#define EC_FC_UDMA_Q_XOFF_6_MASK_MASK 0x0000000F2498#define EC_FC_UDMA_Q_XOFF_6_MASK_SHIFT 024992500/**** q_xoff_7 register ****/2501/* [i] - Mask for Q[i] */2502#define EC_FC_UDMA_Q_XOFF_7_MASK_MASK 0x0000000F2503#define EC_FC_UDMA_Q_XOFF_7_MASK_SHIFT 025042505/**** cfg_e register ****/2506/* Use MAC Tx FIFO empty status for EEE control. */2507#define EC_EEE_CFG_E_USE_MAC_TX_FIFO (1 << 0)2508/* Use MAC Rx FIFO empty status for EEE control. */2509#define EC_EEE_CFG_E_USE_MAC_RX_FIFO (1 << 1)2510/* Use Ethernet controller Tx FIFO empty status for EEE control */2511#define EC_EEE_CFG_E_USE_EC_TX_FIFO (1 << 2)2512/* Use Ethernet controller Rx FIFO empty status for EEE control */2513#define EC_EEE_CFG_E_USE_EC_RX_FIFO (1 << 3)2514/* Enable Low power signalling. */2515#define EC_EEE_CFG_E_ENABLE (1 << 4)2516/* Mask output to MAC. */2517#define EC_EEE_CFG_E_MASK_MAC_EEE (1 << 8)2518/* Mask output to stop MAC interface. */2519#define EC_EEE_CFG_E_MASK_EC_TMI_STOP (1 << 9)25202521/**** stat_eee register ****/2522/* EEE state */2523#define EC_EEE_STAT_EEE_STATE_MASK 0x0000000F2524#define EC_EEE_STAT_EEE_STATE_SHIFT 02525/* EEE detected */2526#define EC_EEE_STAT_EEE_DET (1 << 4)25272528/**** p_parse_cfg register ****/2529/* MAX number of beats for packet parsing */2530#define EC_MSP_P_PARSE_CFG_MAX_BEATS_MASK 0x000000FF2531#define EC_MSP_P_PARSE_CFG_MAX_BEATS_SHIFT 02532/* MAX number of parsing iterations for packet parsing */2533#define EC_MSP_P_PARSE_CFG_MAX_ITER_MASK 0x0000FF002534#define EC_MSP_P_PARSE_CFG_MAX_ITER_SHIFT 825352536/**** p_act_table_addr register ****/2537/* Address for accessing the table */2538#define EC_MSP_P_ACT_TABLE_ADDR_VAL_MASK 0x0000001F2539#define EC_MSP_P_ACT_TABLE_ADDR_VAL_SHIFT 025402541/**** p_act_table_data_1 register ****/2542/* Table data[5:0] - Offset to next protocol [bytes] [6] - Next ... */2543#define EC_MSP_P_ACT_TABLE_DATA_1_VAL_MASK 0x03FFFFFF2544#define EC_MSP_P_ACT_TABLE_DATA_1_VAL_SHIFT 025452546/**** p_act_table_data_2 register ****/2547/* Table data [8:0] - Offset to data in the packet [bits][17:9] ... */2548#define EC_MSP_P_ACT_TABLE_DATA_2_VAL_MASK 0x1FFFFFFF2549#define EC_MSP_P_ACT_TABLE_DATA_2_VAL_SHIFT 025502551/**** p_act_table_data_3 register ****/2552/* Table data [8:0] - Offset to data in the packet [bits] [17 ... */2553#define EC_MSP_P_ACT_TABLE_DATA_3_VAL_MASK 0x1FFFFFFF2554#define EC_MSP_P_ACT_TABLE_DATA_3_VAL_SHIFT 025552556/**** p_act_table_data_4 register ****/2557/* Table data [7:0] - Offset to the header length location in th ... */2558#define EC_MSP_P_ACT_TABLE_DATA_4_VAL_MASK 0x0FFFFFFF2559#define EC_MSP_P_ACT_TABLE_DATA_4_VAL_SHIFT 025602561/**** p_act_table_data_6 register ****/2562/* Table data [0] - Wr header length [10:1] - Write header lengt ... */2563#define EC_MSP_P_ACT_TABLE_DATA_6_VAL_MASK 0x007FFFFF2564#define EC_MSP_P_ACT_TABLE_DATA_6_VAL_SHIFT 025652566/**** p_res_in register ****/2567/* Selector for input parse_en 0 - Input vector 1 - Default valu ... */2568#define EC_MSP_P_RES_IN_SEL_PARSE_EN (1 << 0)2569/* Selector for input protocol_index 0 - Input vector 1 - Defa ... */2570#define EC_MSP_P_RES_IN_SEL_PROT_INDEX (1 << 1)2571/* Selector for input hdr_offset 0 - Input vector 1 - Default v ... */2572#define EC_MSP_P_RES_IN_SEL_HDR_OFFSET (1 << 2)25732574/**** h_hdr_len register ****/2575/* Value for selecting table 1 */2576#define EC_MSP_P_H_HDR_LEN_TABLE_1_MASK 0x000000FF2577#define EC_MSP_P_H_HDR_LEN_TABLE_1_SHIFT 02578/* Value for selecting table 2 */2579#define EC_MSP_P_H_HDR_LEN_TABLE_2_MASK 0x00FF00002580#define EC_MSP_P_H_HDR_LEN_TABLE_2_SHIFT 1625812582/**** p_comp_data register ****/2583/* Data 1 for comparison */2584#define EC_MSP_C_P_COMP_DATA_DATA_1_MASK 0x0000FFFF2585#define EC_MSP_C_P_COMP_DATA_DATA_1_SHIFT 02586/* Data 2 for comparison2587[18:16] - Stage2588[24:19] - Branch ID */2589#define EC_MSP_C_P_COMP_DATA_DATA_2_MASK 0x01FF00002590#define EC_MSP_C_P_COMP_DATA_DATA_2_SHIFT 1625912592/**** p_comp_mask register ****/2593/* Data 1 for comparison */2594#define EC_MSP_C_P_COMP_MASK_DATA_1_MASK 0x0000FFFF2595#define EC_MSP_C_P_COMP_MASK_DATA_1_SHIFT 02596/* Data 2 for comparison2597[18:16] - Stage2598[24:19] - Branch ID */2599#define EC_MSP_C_P_COMP_MASK_DATA_2_MASK 0x01FF00002600#define EC_MSP_C_P_COMP_MASK_DATA_2_SHIFT 1626012602/**** p_comp_ctrl register ****/2603/* Output result value */2604#define EC_MSP_C_P_COMP_CTRL_RES_MASK 0x0000001F2605#define EC_MSP_C_P_COMP_CTRL_RES_SHIFT 02606/* Compare command for the data_1 field 00 - Compare 01 - <= 10 ... */2607#define EC_MSP_C_P_COMP_CTRL_CMD_1_MASK 0x000300002608#define EC_MSP_C_P_COMP_CTRL_CMD_1_SHIFT 162609/* Compare command for the data_2 field 00 - Compare 01 - <= 10 ... */2610#define EC_MSP_C_P_COMP_CTRL_CMD_2_MASK 0x000C00002611#define EC_MSP_C_P_COMP_CTRL_CMD_2_SHIFT 182612/* Entry is valid */2613#define EC_MSP_C_P_COMP_CTRL_VALID (1 << 31)26142615/**** wol_en register ****/2616/* Interrupt enable WoL MAC DA Unicast detected packet */2617#define EC_WOL_WOL_EN_INTRPT_EN_UNICAST (1 << 0)2618/* Interrupt enable WoL L2 Multicast detected packet */2619#define EC_WOL_WOL_EN_INTRPT_EN_MULTICAST (1 << 1)2620/* Interrupt enable WoL L2 Broadcast detected packet */2621#define EC_WOL_WOL_EN_INTRPT_EN_BROADCAST (1 << 2)2622/* Interrupt enable WoL IPv4 detected packet */2623#define EC_WOL_WOL_EN_INTRPT_EN_IPV4 (1 << 3)2624/* Interrupt enable WoL IPv6 detected packet */2625#define EC_WOL_WOL_EN_INTRPT_EN_IPV6 (1 << 4)2626/* Interrupt enable WoL EtherType+MAC DA detected packet */2627#define EC_WOL_WOL_EN_INTRPT_EN_ETHERTYPE_DA (1 << 5)2628/* Interrupt enable WoL EtherType+L2 Broadcast detected packet */2629#define EC_WOL_WOL_EN_INTRPT_EN_ETHERTYPE_BC (1 << 6)2630/* Interrupt enable WoL parser detected packet */2631#define EC_WOL_WOL_EN_INTRPT_EN_PARSER (1 << 7)2632/* Interrupt enable WoL magic detected packet */2633#define EC_WOL_WOL_EN_INTRPT_EN_MAGIC (1 << 8)2634/* Interrupt enable WoL magic+password detected packet */2635#define EC_WOL_WOL_EN_INTRPT_EN_MAGIC_PSWD (1 << 9)2636/* Forward enable WoL MAC DA Unicast detected packet */2637#define EC_WOL_WOL_EN_FWRD_EN_UNICAST (1 << 16)2638/* Forward enable WoL L2 Multicast detected packet */2639#define EC_WOL_WOL_EN_FWRD_EN_MULTICAST (1 << 17)2640/* Forward enable WoL L2 Broadcast detected packet */2641#define EC_WOL_WOL_EN_FWRD_EN_BROADCAST (1 << 18)2642/* Forward enable WoL IPv4 detected packet */2643#define EC_WOL_WOL_EN_FWRD_EN_IPV4 (1 << 19)2644/* Forward enable WoL IPv6 detected packet */2645#define EC_WOL_WOL_EN_FWRD_EN_IPV6 (1 << 20)2646/* Forward enable WoL EtherType+MAC DA detected packet */2647#define EC_WOL_WOL_EN_FWRD_EN_ETHERTYPE_DA (1 << 21)2648/* Forward enable WoL EtherType+L2 Broadcast detected packet */2649#define EC_WOL_WOL_EN_FWRD_EN_ETHERTYPE_BC (1 << 22)2650/* Forward enable WoL parser detected packet */2651#define EC_WOL_WOL_EN_FWRD_EN_PARSER (1 << 23)26522653/**** magic_pswd_h register ****/2654/* Password for magic_password packet detection - bits 47:32 */2655#define EC_WOL_MAGIC_PSWD_H_VAL_MASK 0x0000FFFF2656#define EC_WOL_MAGIC_PSWD_H_VAL_SHIFT 026572658/**** ethertype register ****/2659/* Configured EtherType 1 for WoL EtherType_da/EtherType_bc pack ... */2660#define EC_WOL_ETHERTYPE_VAL_1_MASK 0x0000FFFF2661#define EC_WOL_ETHERTYPE_VAL_1_SHIFT 02662/* Configured EtherType 2 for WoL EtherType_da/EtherType_bc pack ... */2663#define EC_WOL_ETHERTYPE_VAL_2_MASK 0xFFFF00002664#define EC_WOL_ETHERTYPE_VAL_2_SHIFT 1626652666#define EC_PTH_SYSTEM_TIME_SUBSECONDS_LSB_VAL_MASK 0xFFFFC0002667#define EC_PTH_SYSTEM_TIME_SUBSECONDS_LSB_VAL_SHIFT 1426682669#define EC_PTH_CLOCK_PERIOD_LSB_VAL_MASK 0xFFFFC0002670#define EC_PTH_CLOCK_PERIOD_LSB_VAL_SHIFT 1426712672/**** int_update_ctrl register ****/2673/* This field chooses between two methods for SW to update the s ... */2674#define EC_PTH_INT_UPDATE_CTRL_UPDATE_TRIG (1 << 0)2675/* 3'b000 - Set system time according to the value in {int_updat ... */2676#define EC_PTH_INT_UPDATE_CTRL_UPDATE_METHOD_MASK 0x0000000E2677#define EC_PTH_INT_UPDATE_CTRL_UPDATE_METHOD_SHIFT 12678/* 1'b1 - Next update writes to system_time_subseconds1'b0 - Nex ... */2679#define EC_PTH_INT_UPDATE_CTRL_SUBSECOND_MASK (1 << 4)2680/* 1'b1 - Next update writes to system_time_seconds1'b0 - Next u ... */2681#define EC_PTH_INT_UPDATE_CTRL_SECOND_MASK (1 << 5)2682/* Enabling / disabling the internal ingress trigger (ingress_tr ... */2683#define EC_PTH_INT_UPDATE_CTRL_INT_TRIG_EN (1 << 16)2684/* Determines if internal ingress trigger (ingress_trigger #0) s ... */2685#define EC_PTH_INT_UPDATE_CTRL_PULSE_LEVEL_N (1 << 17)2686/* Internal ingress trigger polarity (ingress_trigger #0)1'b0 - ... */2687#define EC_PTH_INT_UPDATE_CTRL_POLARITY (1 << 18)26882689/**** int_update_subseconds_lsb register ****/26902691#define EC_PTH_INT_UPDATE_SUBSECONDS_LSB_RESERVED_13_0_MASK 0x00003FFF2692#define EC_PTH_INT_UPDATE_SUBSECONDS_LSB_RESERVED_13_0_SHIFT 026932694#define EC_PTH_INT_UPDATE_SUBSECONDS_LSB_VAL_MASK 0xFFFFC0002695#define EC_PTH_INT_UPDATE_SUBSECONDS_LSB_VAL_SHIFT 142696/* 3'b000 - Set system time according to the value in {int_updat ... */2697#define EC_PTH_EXT_UPDATE_CTRL_UPDATE_METHOD_MASK 0x0000000E2698#define EC_PTH_EXT_UPDATE_CTRL_UPDATE_METHOD_SHIFT 12699/* 1'b1 - next update writes to system_time_subseconds1'b0 - nex ... */2700#define EC_PTH_EXT_UPDATE_CTRL_SUBSECOND_MASK (1 << 4)2701/* 1'b1 - Next update writes to system_time_seconds1'b0 - Next u ... */2702#define EC_PTH_EXT_UPDATE_CTRL_SECOND_MASK (1 << 5)2703/* Enabling / disabling the external ingress triggers (ingress_t ... */2704#define EC_PTH_EXT_UPDATE_CTRL_EXT_TRIG_EN_MASK 0x00001F002705#define EC_PTH_EXT_UPDATE_CTRL_EXT_TRIG_EN_SHIFT 82706/* Determines if external ingress triggers (ingress_triggers #1- ... */2707#define EC_PTH_EXT_UPDATE_CTRL_PULSE_LEVEL_N_MASK 0x001F00002708#define EC_PTH_EXT_UPDATE_CTRL_PULSE_LEVEL_N_SHIFT 162709/* bit-field configurations of external ingress trigger polarity ... */2710#define EC_PTH_EXT_UPDATE_CTRL_POLARITY_MASK 0x1F0000002711#define EC_PTH_EXT_UPDATE_CTRL_POLARITY_SHIFT 2427122713/**** ext_update_subseconds_lsb register ****/27142715#define EC_PTH_EXT_UPDATE_SUBSECONDS_LSB_RESERVED_13_0_MASK 0x00003FFF2716#define EC_PTH_EXT_UPDATE_SUBSECONDS_LSB_RESERVED_13_0_SHIFT 027172718#define EC_PTH_EXT_UPDATE_SUBSECONDS_LSB_VAL_MASK 0xFFFFC0002719#define EC_PTH_EXT_UPDATE_SUBSECONDS_LSB_VAL_SHIFT 1427202721#define EC_PTH_READ_COMPENSATION_SUBSECONDS_LSB_VAL_MASK 0xFFFFC0002722#define EC_PTH_READ_COMPENSATION_SUBSECONDS_LSB_VAL_SHIFT 1427232724#define EC_PTH_INT_WRITE_COMPENSATION_SUBSECONDS_LSB_VAL_MASK 0xFFFFC0002725#define EC_PTH_INT_WRITE_COMPENSATION_SUBSECONDS_LSB_VAL_SHIFT 1427262727#define EC_PTH_EXT_WRITE_COMPENSATION_SUBSECONDS_LSB_VAL_MASK 0xFFFFC0002728#define EC_PTH_EXT_WRITE_COMPENSATION_SUBSECONDS_LSB_VAL_SHIFT 1427292730#define EC_PTH_SYNC_COMPENSATION_SUBSECONDS_LSB_VAL_MASK 0xFFFFC0002731#define EC_PTH_SYNC_COMPENSATION_SUBSECONDS_LSB_VAL_SHIFT 1427322733/**** trigger_ctrl register ****/2734/* Enabling / disabling the egress trigger1'b1 - Enabled1'b0 - D ... */2735#define EC_PTH_EGRESS_TRIGGER_CTRL_EN (1 << 0)2736/* Configuration that determines if the egress trigger is a peri ... */2737#define EC_PTH_EGRESS_TRIGGER_CTRL_PERIODIC (1 << 1)2738/* Configuration of egress trigger polarity */2739#define EC_PTH_EGRESS_TRIGGER_CTRL_POLARITY (1 << 2)2740/* If the pulse is marked as periodic (see periodic field), this ... */2741#define EC_PTH_EGRESS_TRIGGER_CTRL_PERIOD_SUBSEC_MASK 0x00FFFFF02742#define EC_PTH_EGRESS_TRIGGER_CTRL_PERIOD_SUBSEC_SHIFT 42743/* If the pulse is marked as periodic (see periodic field), this ... */2744#define EC_PTH_EGRESS_TRIGGER_CTRL_PERIOD_SEC_MASK 0xFF0000002745#define EC_PTH_EGRESS_TRIGGER_CTRL_PERIOD_SEC_SHIFT 2427462747/**** trigger_subseconds_lsb register ****/27482749#define EC_PTH_EGRESS_TRIGGER_SUBSECONDS_LSB_RESERVED_13_0_MASK 0x00003FFF2750#define EC_PTH_EGRESS_TRIGGER_SUBSECONDS_LSB_RESERVED_13_0_SHIFT 027512752#define EC_PTH_EGRESS_TRIGGER_SUBSECONDS_LSB_VAL_MASK 0xFFFFC0002753#define EC_PTH_EGRESS_TRIGGER_SUBSECONDS_LSB_VAL_SHIFT 1427542755/**** pulse_width_subseconds_lsb register ****/27562757#define EC_PTH_EGRESS_PULSE_WIDTH_SUBSECONDS_LSB_RESERVED_13_0_MASK 0x00003FFF2758#define EC_PTH_EGRESS_PULSE_WIDTH_SUBSECONDS_LSB_RESERVED_13_0_SHIFT 027592760#define EC_PTH_EGRESS_PULSE_WIDTH_SUBSECONDS_LSB_VAL_MASK 0xFFFFC0002761#define EC_PTH_EGRESS_PULSE_WIDTH_SUBSECONDS_LSB_VAL_SHIFT 1427622763/**** qual register ****/27642765#define EC_PTH_DB_QUAL_TS_VALID (1 << 0)27662767#define EC_PTH_DB_QUAL_RESERVED_31_1_MASK 0xFFFFFFFE2768#define EC_PTH_DB_QUAL_RESERVED_31_1_SHIFT 127692770/**** rx_comp_desc register ****/2771/* Selection for word0[13]:0- legacy SR-A01- per generic protoco ... */2772#define EC_GEN_V3_RX_COMP_DESC_W0_L3_CKS_RES_SEL (1 << 0)2773/* Selection for word0[14]:0- legacy SR-A01- per generic protoco ... */2774#define EC_GEN_V3_RX_COMP_DESC_W0_L4_CKS_RES_SEL (1 << 1)2775/* Selection for word3[29]:0-macsec decryption status[13] (legac ... */2776#define EC_GEN_V3_RX_COMP_DESC_W3_DEC_STAT_13_L4_CKS_RES_SEL (1 << 8)2777/* Selection for word3[30]:0-macsec decryption status[14] (legac ... */2778#define EC_GEN_V3_RX_COMP_DESC_W3_DEC_STAT_14_L3_CKS_RES_SEL (1 << 9)2779/* Selection for word3[31]:0-macsec decryption status[15] (legac ... */2780#define EC_GEN_V3_RX_COMP_DESC_W3_DEC_STAT_15_CRC_RES_SEL (1 << 10)2781/* Selection for word 0 [6:5], source VLAN count0- source vlan c ... */2782#define EC_GEN_V3_RX_COMP_DESC_W0_SRC_VLAN_CNT (1 << 12)2783/* Selection for word 0 [4:0], l3 protocol index0- l3 protocol ... */2784#define EC_GEN_V3_RX_COMP_DESC_W0_L3_PROT_INDEX (1 << 13)2785/* Selection for word 1 [31:16], lP fragment checksum0- IP frag ... */2786#define EC_GEN_V3_RX_COMP_DESC_W1_IP_FRAG_CHECKSUM (1 << 14)2787/* Selection for word 2 [15:9], L3 offset0- LL3 offset1- CRC re ... */2788#define EC_GEN_V3_RX_COMP_DESC_W2_L3_OFFSET (1 << 15)2789/* Selection for word 2 [8:0], tunnel offset0- tunnel offset1- ... */2790#define EC_GEN_V3_RX_COMP_DESC_W2_TUNNEL_OFFSET (1 << 16)27912792/**** conf register ****/2793/* Valid signal configuration when in loopback mode:00 - valid f ... */2794#define EC_GEN_V3_CONF_MAC_LB_EC_OUT_S_VALID_CFG_MASK 0x000000032795#define EC_GEN_V3_CONF_MAC_LB_EC_OUT_S_VALID_CFG_SHIFT 02796/* Valid signal configuration when in loopback mode:00 – valid f ... */2797#define EC_GEN_V3_CONF_MAC_LB_EC_IN_S_VALID_CFG_MASK 0x0000000C2798#define EC_GEN_V3_CONF_MAC_LB_EC_IN_S_VALID_CFG_SHIFT 227992800/**** tx_gpd_cam_addr register ****/2801/* Cam compare table address */2802#define EC_TFW_V3_TX_GPD_CAM_ADDR_VAL_MASK 0x0000001F2803#define EC_TFW_V3_TX_GPD_CAM_ADDR_VAL_SHIFT 02804/* cam entry is valid */2805#define EC_TFW_V3_TX_GPD_CAM_CTRL_VALID (1 << 31)28062807/**** tx_gcp_legacy register ****/2808/* 0-choose parameters from table1- choose legacy crce roce para ... */2809#define EC_TFW_V3_TX_GCP_LEGACY_PARAM_SEL (1 << 0)28102811/**** tx_gcp_table_addr register ****/2812/* parametrs table address */2813#define EC_TFW_V3_TX_GCP_TABLE_ADDR_VAL_MASK 0x0000001F2814#define EC_TFW_V3_TX_GCP_TABLE_ADDR_VAL_SHIFT 028152816/**** tx_gcp_table_gen register ****/2817/* polynomial selcet28180-crc32(0x104C11DB7)28191-crc32c(0x11EDC6F41) */2820#define EC_TFW_V3_TX_GCP_TABLE_GEN_POLY_SEL (1 << 0)2821/* Enable bit complement on crc result */2822#define EC_TFW_V3_TX_GCP_TABLE_GEN_CRC32_BIT_COMP (1 << 1)2823/* Enable bit swap on crc result */2824#define EC_TFW_V3_TX_GCP_TABLE_GEN_CRC32_BIT_SWAP (1 << 2)2825/* Enable byte swap on crc result */2826#define EC_TFW_V3_TX_GCP_TABLE_GEN_CRC32_BYTE_SWAP (1 << 3)2827/* Enable bit swap on input data */2828#define EC_TFW_V3_TX_GCP_TABLE_GEN_DATA_BIT_SWAP (1 << 4)2829/* Enable byte swap on input data */2830#define EC_TFW_V3_TX_GCP_TABLE_GEN_DATA_BYTE_SWAP (1 << 5)2831/* Number of bytes in trailer which are not part of crc calculat ... */2832#define EC_TFW_V3_TX_GCP_TABLE_GEN_TRAIL_SIZE_MASK 0x000003C02833#define EC_TFW_V3_TX_GCP_TABLE_GEN_TRAIL_SIZE_SHIFT 62834/* Number of bytes in header which are not part of crc calculati ... */2835#define EC_TFW_V3_TX_GCP_TABLE_GEN_HEAD_SIZE_MASK 0x00FF00002836#define EC_TFW_V3_TX_GCP_TABLE_GEN_HEAD_SIZE_SHIFT 162837/* corrected offset calculation0- subtract head_size (roce)1- ad ... */2838#define EC_TFW_V3_TX_GCP_TABLE_GEN_HEAD_CALC (1 << 24)2839/* 0-replace masked bits with 01-replace masked bits with 1 (roc ... */2840#define EC_TFW_V3_TX_GCP_TABLE_GEN_MASK_POLARITY (1 << 25)28412842/**** tx_gcp_table_res register ****/2843/* Not in use */2844#define EC_TFW_V3_TX_GCP_TABLE_RES_SEL_MASK 0x0000001F2845#define EC_TFW_V3_TX_GCP_TABLE_RES_SEL_SHIFT 02846/* Not in use */2847#define EC_TFW_V3_TX_GCP_TABLE_RES_EN (1 << 5)2848/* Not in use */2849#define EC_TFW_V3_TX_GCP_TABLE_RES_DEF (1 << 6)28502851/**** tx_gcp_table_alu_opcode register ****/2852/* first opcode2853e.g. (A op1 B) op3 (C op2 D) */2854#define EC_TFW_V3_TX_GCP_TABLE_ALU_OPCODE_OPCODE_1_MASK 0x0000003F2855#define EC_TFW_V3_TX_GCP_TABLE_ALU_OPCODE_OPCODE_1_SHIFT 02856/* second opcode2857e.g. (A op1 B) op3 (C op2 D) */2858#define EC_TFW_V3_TX_GCP_TABLE_ALU_OPCODE_OPCODE_2_MASK 0x00000FC02859#define EC_TFW_V3_TX_GCP_TABLE_ALU_OPCODE_OPCODE_2_SHIFT 62860/* third opcode2861e.g. (A op1 B) op3 (C op2 D) */2862#define EC_TFW_V3_TX_GCP_TABLE_ALU_OPCODE_OPCODE_3_MASK 0x0003F0002863#define EC_TFW_V3_TX_GCP_TABLE_ALU_OPCODE_OPCODE_3_SHIFT 1228642865/**** tx_gcp_table_alu_opsel register ****/2866/* frst opsel, input selection */2867#define EC_TFW_V3_TX_GCP_TABLE_ALU_OPSEL_OPSEL_1_MASK 0x0000000F2868#define EC_TFW_V3_TX_GCP_TABLE_ALU_OPSEL_OPSEL_1_SHIFT 02869/* second opsel, input selection */2870#define EC_TFW_V3_TX_GCP_TABLE_ALU_OPSEL_OPSEL_2_MASK 0x000000F02871#define EC_TFW_V3_TX_GCP_TABLE_ALU_OPSEL_OPSEL_2_SHIFT 42872/* third opsel, input selction */2873#define EC_TFW_V3_TX_GCP_TABLE_ALU_OPSEL_OPSEL_3_MASK 0x00000F002874#define EC_TFW_V3_TX_GCP_TABLE_ALU_OPSEL_OPSEL_3_SHIFT 82875/* fourth opsel, input selction */2876#define EC_TFW_V3_TX_GCP_TABLE_ALU_OPSEL_OPSEL_4_MASK 0x0000F0002877#define EC_TFW_V3_TX_GCP_TABLE_ALU_OPSEL_OPSEL_4_SHIFT 1228782879/**** tx_gcp_table_alu_val register ****/2880/* value for alu input */2881#define EC_TFW_V3_TX_GCP_TABLE_ALU_VAL_VAL_MASK 0x000001FF2882#define EC_TFW_V3_TX_GCP_TABLE_ALU_VAL_VAL_SHIFT 028832884/**** crc_csum_replace register ****/2885/* 0- use table28861- legacy SR-A0 */2887#define EC_TFW_V3_CRC_CSUM_REPLACE_L3_CSUM_LEGACY_SEL (1 << 0)2888/* 0- use table28891- legacy SR-A0 */2890#define EC_TFW_V3_CRC_CSUM_REPLACE_L4_CSUM_LEGACY_SEL (1 << 1)2891/* 0- use table28921- legacy SR-A0 */2893#define EC_TFW_V3_CRC_CSUM_REPLACE_CRC_LEGACY_SEL (1 << 2)28942895/**** crc_csum_replace_table_addr register ****/2896/* parametrs table address */2897#define EC_TFW_V3_CRC_CSUM_REPLACE_TABLE_ADDR_VAL_MASK 0x0000007F2898#define EC_TFW_V3_CRC_CSUM_REPLACE_TABLE_ADDR_VAL_SHIFT 028992900/**** crc_csum_replace_table register ****/2901/* L3 Checksum replace enable */2902#define EC_TFW_V3_CRC_CSUM_REPLACE_TABLE_L3_CSUM_EN (1 << 0)2903/* L4 Checksum replace enable */2904#define EC_TFW_V3_CRC_CSUM_REPLACE_TABLE_L4_CSUM_EN (1 << 1)2905/* CRC replace enable */2906#define EC_TFW_V3_CRC_CSUM_REPLACE_TABLE_CRC_EN (1 << 2)29072908/**** rx_gpd_cam_addr register ****/2909/* Cam compare table address */2910#define EC_RFW_V3_RX_GPD_CAM_ADDR_VAL_MASK 0x0000001F2911#define EC_RFW_V3_RX_GPD_CAM_ADDR_VAL_SHIFT 02912/* cam entry is valid */2913#define EC_RFW_V3_RX_GPD_CAM_CTRL_VALID (1 << 31)29142915/**** gpd_p1 register ****/2916/* Location in bytes of the gpd cam data1 in the parser result v ... */2917#define EC_RFW_V3_GPD_P1_OFFSET_MASK 0x000003FF2918#define EC_RFW_V3_GPD_P1_OFFSET_SHIFT 029192920/**** gpd_p2 register ****/2921/* Location in bytes of the gpd cam data2 in the parser result v ... */2922#define EC_RFW_V3_GPD_P2_OFFSET_MASK 0x000003FF2923#define EC_RFW_V3_GPD_P2_OFFSET_SHIFT 029242925/**** gpd_p3 register ****/2926/* Location in bytes of the gpd cam data3 in the parser result v ... */2927#define EC_RFW_V3_GPD_P3_OFFSET_MASK 0x000003FF2928#define EC_RFW_V3_GPD_P3_OFFSET_SHIFT 029292930/**** gpd_p4 register ****/2931/* Location in bytes of the gpd cam data4 in the parser result v ... */2932#define EC_RFW_V3_GPD_P4_OFFSET_MASK 0x000003FF2933#define EC_RFW_V3_GPD_P4_OFFSET_SHIFT 029342935/**** gpd_p5 register ****/2936/* Location in bytes of the gpd cam data5 in the parser result v ... */2937#define EC_RFW_V3_GPD_P5_OFFSET_MASK 0x000003FF2938#define EC_RFW_V3_GPD_P5_OFFSET_SHIFT 029392940/**** gpd_p6 register ****/2941/* Location in bytes of the gpd cam data6 in the parser result v ... */2942#define EC_RFW_V3_GPD_P6_OFFSET_MASK 0x000003FF2943#define EC_RFW_V3_GPD_P6_OFFSET_SHIFT 029442945/**** gpd_p7 register ****/2946/* Location in bytes of the gpd cam data7 in the parser result v ... */2947#define EC_RFW_V3_GPD_P7_OFFSET_MASK 0x000003FF2948#define EC_RFW_V3_GPD_P7_OFFSET_SHIFT 029492950/**** gpd_p8 register ****/2951/* Location in bytes of the gpd cam data8 in the parser result v ... */2952#define EC_RFW_V3_GPD_P8_OFFSET_MASK 0x000003FF2953#define EC_RFW_V3_GPD_P8_OFFSET_SHIFT 029542955/**** rx_gcp_legacy register ****/2956/* 0-choose parameters from table1- choose legacy crce roce para ... */2957#define EC_RFW_V3_RX_GCP_LEGACY_PARAM_SEL (1 << 0)29582959/**** rx_gcp_table_addr register ****/2960/* parametrs table address */2961#define EC_RFW_V3_RX_GCP_TABLE_ADDR_VAL_MASK 0x0000001F2962#define EC_RFW_V3_RX_GCP_TABLE_ADDR_VAL_SHIFT 029632964/**** rx_gcp_table_gen register ****/2965/* polynomial selcet29660-crc32(0x104C11DB7)29671-crc32c(0x11EDC6F41) */2968#define EC_RFW_V3_RX_GCP_TABLE_GEN_POLY_SEL (1 << 0)2969/* Enable bit complement on crc result */2970#define EC_RFW_V3_RX_GCP_TABLE_GEN_CRC32_BIT_COMP (1 << 1)2971/* Enable bit swap on crc result */2972#define EC_RFW_V3_RX_GCP_TABLE_GEN_CRC32_BIT_SWAP (1 << 2)2973/* Enable byte swap on crc result */2974#define EC_RFW_V3_RX_GCP_TABLE_GEN_CRC32_BYTE_SWAP (1 << 3)2975/* Enable bit swap on input data */2976#define EC_RFW_V3_RX_GCP_TABLE_GEN_DATA_BIT_SWAP (1 << 4)2977/* Enable byte swap on input data */2978#define EC_RFW_V3_RX_GCP_TABLE_GEN_DATA_BYTE_SWAP (1 << 5)2979/* Number of bytes in trailer which are not part of crc calculat ... */2980#define EC_RFW_V3_RX_GCP_TABLE_GEN_TRAIL_SIZE_MASK 0x000003C02981#define EC_RFW_V3_RX_GCP_TABLE_GEN_TRAIL_SIZE_SHIFT 62982/* Number of bytes in header which are not part of crc calculati ... */2983#define EC_RFW_V3_RX_GCP_TABLE_GEN_HEAD_SIZE_MASK 0x00FF00002984#define EC_RFW_V3_RX_GCP_TABLE_GEN_HEAD_SIZE_SHIFT 162985/* corrected offset calculation0- subtract head_size (roce)1- ad ... */2986#define EC_RFW_V3_RX_GCP_TABLE_GEN_HEAD_CALC (1 << 24)2987/* 0-replace masked bits with 01-replace masked bits with 1 (roc ... */2988#define EC_RFW_V3_RX_GCP_TABLE_GEN_MASK_POLARITY (1 << 25)29892990/**** rx_gcp_table_res register ****/2991/* Bit mask for crc/checksum result options for metadata W0[13][ ... */2992#define EC_RFW_V3_RX_GCP_TABLE_RES_SEL_0_MASK 0x0000001F2993#define EC_RFW_V3_RX_GCP_TABLE_RES_SEL_0_SHIFT 02994/* Bit mask for crc/checksum result options for metadata W0[14][ ... */2995#define EC_RFW_V3_RX_GCP_TABLE_RES_SEL_1_MASK 0x000003E02996#define EC_RFW_V3_RX_GCP_TABLE_RES_SEL_1_SHIFT 52997/* Bit mask for crc/checksum result options for metadata W3[29][ ... */2998#define EC_RFW_V3_RX_GCP_TABLE_RES_SEL_2_MASK 0x00007C002999#define EC_RFW_V3_RX_GCP_TABLE_RES_SEL_2_SHIFT 103000/* Bit mask for crc/checksum result options for metadata W3[30][ ... */3001#define EC_RFW_V3_RX_GCP_TABLE_RES_SEL_3_MASK 0x000F80003002#define EC_RFW_V3_RX_GCP_TABLE_RES_SEL_3_SHIFT 153003/* Bit mask for crc/checksum result options for metadata W3[31][ ... */3004#define EC_RFW_V3_RX_GCP_TABLE_RES_SEL_4_MASK 0x01F000003005#define EC_RFW_V3_RX_GCP_TABLE_RES_SEL_4_SHIFT 203006/* enable crc result check */3007#define EC_RFW_V3_RX_GCP_TABLE_RES_EN (1 << 25)3008/* default value for crc check for non-crc protocol */3009#define EC_RFW_V3_RX_GCP_TABLE_RES_DEF (1 << 26)30103011/**** rx_gcp_table_alu_opcode register ****/3012/* first opcode3013e.g. (A op1 B) op3 (C op2 D) */3014#define EC_RFW_V3_RX_GCP_TABLE_ALU_OPCODE_OPCODE_1_MASK 0x0000003F3015#define EC_RFW_V3_RX_GCP_TABLE_ALU_OPCODE_OPCODE_1_SHIFT 03016/* second opcode3017e.g. (A op1 B) op3 (C op2 D) */3018#define EC_RFW_V3_RX_GCP_TABLE_ALU_OPCODE_OPCODE_2_MASK 0x00000FC03019#define EC_RFW_V3_RX_GCP_TABLE_ALU_OPCODE_OPCODE_2_SHIFT 63020/* third opcode3021e.g. (A op1 B) op3 (C op2 D) */3022#define EC_RFW_V3_RX_GCP_TABLE_ALU_OPCODE_OPCODE_3_MASK 0x0003F0003023#define EC_RFW_V3_RX_GCP_TABLE_ALU_OPCODE_OPCODE_3_SHIFT 1230243025/**** rx_gcp_table_alu_opsel register ****/3026/* frst opsel, input selection */3027#define EC_RFW_V3_RX_GCP_TABLE_ALU_OPSEL_OPSEL_1_MASK 0x0000000F3028#define EC_RFW_V3_RX_GCP_TABLE_ALU_OPSEL_OPSEL_1_SHIFT 03029/* second opsel, input selection */3030#define EC_RFW_V3_RX_GCP_TABLE_ALU_OPSEL_OPSEL_2_MASK 0x000000F03031#define EC_RFW_V3_RX_GCP_TABLE_ALU_OPSEL_OPSEL_2_SHIFT 43032/* third opsel, input selction */3033#define EC_RFW_V3_RX_GCP_TABLE_ALU_OPSEL_OPSEL_3_MASK 0x00000F003034#define EC_RFW_V3_RX_GCP_TABLE_ALU_OPSEL_OPSEL_3_SHIFT 83035/* fourth opsel, input selction */3036#define EC_RFW_V3_RX_GCP_TABLE_ALU_OPSEL_OPSEL_4_MASK 0x0000F0003037#define EC_RFW_V3_RX_GCP_TABLE_ALU_OPSEL_OPSEL_4_SHIFT 1230383039/**** rx_gcp_table_alu_val register ****/3040/* value for alu input */3041#define EC_RFW_V3_RX_GCP_TABLE_ALU_VAL_VAL_MASK 0x000001FF3042#define EC_RFW_V3_RX_GCP_TABLE_ALU_VAL_VAL_SHIFT 030433044/**** rx_gcp_alu_p1 register ****/3045/* Location in bytes of field 1 in the parser result vector */3046#define EC_RFW_V3_RX_GCP_ALU_P1_OFFSET_MASK 0x000003FF3047#define EC_RFW_V3_RX_GCP_ALU_P1_OFFSET_SHIFT 03048/* Right shift for field 1 in the parser result vector */3049#define EC_RFW_V3_RX_GCP_ALU_P1_SHIFT_MASK 0x000F00003050#define EC_RFW_V3_RX_GCP_ALU_P1_SHIFT_SHIFT 1630513052/**** rx_gcp_alu_p2 register ****/3053/* Location in bytes of field 2 in the parser result vector */3054#define EC_RFW_V3_RX_GCP_ALU_P2_OFFSET_MASK 0x000003FF3055#define EC_RFW_V3_RX_GCP_ALU_P2_OFFSET_SHIFT 03056/* Right shift for field 2 in the parser result vector */3057#define EC_RFW_V3_RX_GCP_ALU_P2_SHIFT_MASK 0x000F00003058#define EC_RFW_V3_RX_GCP_ALU_P2_SHIFT_SHIFT 1630593060/**** hs_ctrl_table_addr register ****/3061/* Header split control table address */3062#define EC_RFW_V3_HS_CTRL_TABLE_ADDR_VAL_MASK 0x000000FF3063#define EC_RFW_V3_HS_CTRL_TABLE_ADDR_VAL_SHIFT 030643065/**** hs_ctrl_table register ****/3066/* Header split length select */3067#define EC_RFW_V3_HS_CTRL_TABLE_SEL_MASK 0x000000033068#define EC_RFW_V3_HS_CTRL_TABLE_SEL_SHIFT 03069/* enable header split */3070#define EC_RFW_V3_HS_CTRL_TABLE_ENABLE (1 << 2)30713072/**** hs_ctrl_table_alu_opcode register ****/3073/* first opcode3074e.g. (A op1 B) op3 (C op2 D) */3075#define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPCODE_OPCODE_1_MASK 0x0000003F3076#define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPCODE_OPCODE_1_SHIFT 03077/* second opcode3078e.g. (A op1 B) op3 (C op2 D) */3079#define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPCODE_OPCODE_2_MASK 0x00000FC03080#define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPCODE_OPCODE_2_SHIFT 63081/* third opcode3082e.g. (A op1 B) op3 (C op2 D) */3083#define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPCODE_OPCODE_3_MASK 0x0003F0003084#define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPCODE_OPCODE_3_SHIFT 1230853086/**** hs_ctrl_table_alu_opsel register ****/3087/* frst opsel, input selection */3088#define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPSEL_OPSEL_1_MASK 0x0000000F3089#define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPSEL_OPSEL_1_SHIFT 03090/* second opsel, input selection */3091#define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPSEL_OPSEL_2_MASK 0x000000F03092#define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPSEL_OPSEL_2_SHIFT 43093/* third opsel, input selction */3094#define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPSEL_OPSEL_3_MASK 0x00000F003095#define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPSEL_OPSEL_3_SHIFT 83096/* fourth opsel, input selction */3097#define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPSEL_OPSEL_4_MASK 0x0000F0003098#define EC_RFW_V3_HS_CTRL_TABLE_ALU_OPSEL_OPSEL_4_SHIFT 1230993100/**** hs_ctrl_table_alu_val register ****/3101/* value for alu input */3102#define EC_RFW_V3_HS_CTRL_TABLE_ALU_VAL_VAL_MASK 0x0000FFFF3103#define EC_RFW_V3_HS_CTRL_TABLE_ALU_VAL_VAL_SHIFT 031043105/**** hs_ctrl_cfg register ****/3106/* Header split enable static selction0 – legacy1 – header split ... */3107#define EC_RFW_V3_HS_CTRL_CFG_ENABLE_SEL (1 << 0)3108/* Header split length static selction0 – legacy1 – header split ... */3109#define EC_RFW_V3_HS_CTRL_CFG_LENGTH_SEL (1 << 1)31103111/**** hs_ctrl_alu_p1 register ****/3112/* Location in bytes of field 1 in the parser result vector */3113#define EC_RFW_V3_HS_CTRL_ALU_P1_OFFSET_MASK 0x000003FF3114#define EC_RFW_V3_HS_CTRL_ALU_P1_OFFSET_SHIFT 03115/* Right shift for field 1 in the parser result vector */3116#define EC_RFW_V3_HS_CTRL_ALU_P1_SHIFT_MASK 0x000F00003117#define EC_RFW_V3_HS_CTRL_ALU_P1_SHIFT_SHIFT 1631183119/**** hs_ctrl_alu_p2 register ****/3120/* Location in bytes of field 2 in the parser result vector */3121#define EC_RFW_V3_HS_CTRL_ALU_P2_OFFSET_MASK 0x000003FF3122#define EC_RFW_V3_HS_CTRL_ALU_P2_OFFSET_SHIFT 03123/* Right shift for field 2 in the parser result vector */3124#define EC_RFW_V3_HS_CTRL_ALU_P2_SHIFT_MASK 0x000F00003125#define EC_RFW_V3_HS_CTRL_ALU_P2_SHIFT_SHIFT 1631263127/**** tx_config register ****/3128/* [0] pre increment word swap[1] pre increment byte swap[2] pre ... */3129#define EC_CRYPTO_TX_CONFIG_TWEAK_ENDIANITY_SWAP_MASK 0x0000003F3130#define EC_CRYPTO_TX_CONFIG_TWEAK_ENDIANITY_SWAP_SHIFT 03131/* [0] pre encryption word swap[1] pre encryption byte swap[2] p ... */3132#define EC_CRYPTO_TX_CONFIG_DATA_ENDIANITY_SWAP_MASK 0x00003F003133#define EC_CRYPTO_TX_CONFIG_DATA_ENDIANITY_SWAP_SHIFT 83134/* direction flip, used in order to use same TID entry for both TX & RX traffic */3135#define EC_CRYPTO_TX_CONFIG_CRYPTO_DIR_FLIP (1 << 14)3136/* Enabling pipe line optimization */3137#define EC_CRYPTO_TX_CONFIG_PIPE_CALC_EN (1 << 16)3138/* enable performance counters */3139#define EC_CRYPTO_TX_CONFIG_PERF_CNT_EN (1 << 17)3140/* [0] pre aes word swap[1] pre aes byte swap[2] pre aes bit swa ... */3141#define EC_CRYPTO_TX_CONFIG_AES_ENDIANITY_SWAP_MASK 0x03F000003142#define EC_CRYPTO_TX_CONFIG_AES_ENDIANITY_SWAP_SHIFT 203143/* [0] pre aes key word swap[1] pre aes key byte swap[2] pre aes ... */3144#define EC_CRYPTO_TX_CONFIG_AES_KEY_ENDIANITY_SWAP_MASK 0xFC0000003145#define EC_CRYPTO_TX_CONFIG_AES_KEY_ENDIANITY_SWAP_SHIFT 2631463147/**** rx_config register ****/3148/* [0] pre increment word swap[1] pre increment byte swap[2] pre ... */3149#define EC_CRYPTO_RX_CONFIG_TWEAK_ENDIANITY_SWAP_MASK 0x0000003F3150#define EC_CRYPTO_RX_CONFIG_TWEAK_ENDIANITY_SWAP_SHIFT 03151/* [0] pre encryption word swap[1] pre encryption byte swap[2] p ... */3152#define EC_CRYPTO_RX_CONFIG_DATA_ENDIANITY_SWAP_MASK 0x00003F003153#define EC_CRYPTO_RX_CONFIG_DATA_ENDIANITY_SWAP_SHIFT 83154/* direction flip, used in order to use same TID entry for both TX & RX traffic */3155#define EC_CRYPTO_RX_CONFIG_CRYPTO_DIR_FLIP (1 << 14)3156/* Enabling pipe line optimization */3157#define EC_CRYPTO_RX_CONFIG_PIPE_CALC_EN (1 << 16)3158/* enable performance counters */3159#define EC_CRYPTO_RX_CONFIG_PERF_CNT_EN (1 << 17)3160/* [0] pre aes word swap[1] pre aes byte swap[2] pre aes bit swa ... */3161#define EC_CRYPTO_RX_CONFIG_AES_ENDIANITY_SWAP_MASK 0x03F000003162#define EC_CRYPTO_RX_CONFIG_AES_ENDIANITY_SWAP_SHIFT 203163/* [0] data aes key word swap[1] data aes key byte swap[2] data ... */3164#define EC_CRYPTO_RX_CONFIG_AES_KEY_ENDIANITY_SWAP_MASK 0xFC0000003165#define EC_CRYPTO_RX_CONFIG_AES_KEY_ENDIANITY_SWAP_SHIFT 2631663167/**** tx_override register ****/3168/* all transactions are encrypted */3169#define EC_CRYPTO_TX_OVERRIDE_ENCRYPT_ONLY (1 << 0)3170/* all transactions are decrypted */3171#define EC_CRYPTO_TX_OVERRIDE_DECRYPT_ONLY (1 << 1)3172/* all pkts use IV */3173#define EC_CRYPTO_TX_OVERRIDE_ALWAYS_DRIVE_IV (1 << 2)3174/* no pkt uses IV */3175#define EC_CRYPTO_TX_OVERRIDE_NEVER_DRIVE_IV (1 << 3)3176/* all pkts perform authentication calculation */3177#define EC_CRYPTO_TX_OVERRIDE_ALWAYS_PERFORM_SIGN (1 << 4)3178/* no pkt performs authentication calculation */3179#define EC_CRYPTO_TX_OVERRIDE_NEVER_PERFORM_SIGN (1 << 5)3180/* all pkts perform encryption calculation */3181#define EC_CRYPTO_TX_OVERRIDE_ALWAYS_PERFORM_ENC (1 << 6)3182/* no pkt performs encryption calculation */3183#define EC_CRYPTO_TX_OVERRIDE_NEVER_PERFORM_ENC (1 << 7)3184/* Enforce pkt trimming3185bit[0] relates to metadata_pkt_trim3186bit[1] relates to trailer_pkt_trime3187bit[2] relates to sign_trim3188bit[3] relates to aes_padding_trim */3189#define EC_CRYPTO_TX_OVERRIDE_ALWAYS_BYPASS_PKT_TRIM_MASK 0x00000F003190#define EC_CRYPTO_TX_OVERRIDE_ALWAYS_BYPASS_PKT_TRIM_SHIFT 83191/* Enforce no pkt trimming3192bit[0] relates to metadata_pkt_trim3193bit[1] relates to trailer_pkt_trime3194bit[2] relates to sign_trim3195bit[3] relates to aes_padding_trim */3196#define EC_CRYPTO_TX_OVERRIDE_NEVER_BYPASS_PKT_TRIM_MASK 0x0000F0003197#define EC_CRYPTO_TX_OVERRIDE_NEVER_BYPASS_PKT_TRIM_SHIFT 123198/* chicken bit to disable metadata handling optimization */3199#define EC_CRYPTO_TX_OVERRIDE_EXPLICIT_METADATA_STAGE (1 << 16)32003201/**** rx_override register ****/3202/* all transactions are encrypted */3203#define EC_CRYPTO_RX_OVERRIDE_ENCRYPT_ONLY (1 << 0)3204/* all transactions are decrypted */3205#define EC_CRYPTO_RX_OVERRIDE_DECRYPT_ONLY (1 << 1)3206/* all pkts use IV */3207#define EC_CRYPTO_RX_OVERRIDE_ALWAYS_DRIVE_IV (1 << 2)3208/* no pkt uses IV */3209#define EC_CRYPTO_RX_OVERRIDE_NEVER_DRIVE_IV (1 << 3)3210/* all pkts perform authentication calculation */3211#define EC_CRYPTO_RX_OVERRIDE_ALWAYS_PERFORM_SIGN (1 << 4)3212/* no pkt performs authentication calculation */3213#define EC_CRYPTO_RX_OVERRIDE_NEVER_PERFORM_SIGN (1 << 5)3214/* all pkts perform encryption calculation */3215#define EC_CRYPTO_RX_OVERRIDE_ALWAYS_PERFORM_ENC (1 << 6)3216/* no pkt performs encryption calculation */3217#define EC_CRYPTO_RX_OVERRIDE_NEVER_PERFORM_ENC (1 << 7)3218/* Enforce pkt trimming3219bit[0] relates to metadata_pkt_trim3220bit[1] relates to trailer_pkt_trime3221bit[2] relates to sign_trim3222bit[3] relates to aes_padding_trim */3223#define EC_CRYPTO_RX_OVERRIDE_ALWAYS_BYPASS_PKT_TRIM_MASK 0x00000F003224#define EC_CRYPTO_RX_OVERRIDE_ALWAYS_BYPASS_PKT_TRIM_SHIFT 83225/* Enforce no pkt trimming3226bit[0] relates to metadata_pkt_trim3227bit[1] relates to trailer_pkt_trime3228bit[2] relates to sign_trim3229bit[3] relates to aes_padding_trim */3230#define EC_CRYPTO_RX_OVERRIDE_NEVER_BYPASS_PKT_TRIM_MASK 0x0000F0003231#define EC_CRYPTO_RX_OVERRIDE_NEVER_BYPASS_PKT_TRIM_SHIFT 123232/* bit enable for writing to rx_cmpl metadata info */3233#define EC_CRYPTO_RX_OVERRIDE_META_DATA_WRITE_EN_MASK 0x000700003234#define EC_CRYPTO_RX_OVERRIDE_META_DATA_WRITE_EN_SHIFT 163235/* chicken bit to disable metadata handling optimization */3236#define EC_CRYPTO_RX_OVERRIDE_EXPLICIT_METADATA_STAGE (1 << 19)3237/* crypto metadata offset in the rx cmpl_desc */3238#define EC_CRYPTO_RX_OVERRIDE_META_DATA_BASE_MASK 0x07F000003239#define EC_CRYPTO_RX_OVERRIDE_META_DATA_BASE_SHIFT 2032403241/**** tx_enc_iv_construction register ****/3242/* for each IV byte, select between src1 & src2. Src1 & src2 ... */3243#define EC_CRYPTO_TX_ENC_IV_CONSTRUCTION_MUX_SEL_MASK 0x0000FFFF3244#define EC_CRYPTO_TX_ENC_IV_CONSTRUCTION_MUX_SEL_SHIFT 03245/* configure meaning of mux_sel=1'b0 (2'b00 – zeros, 2'b01 f... */3246#define EC_CRYPTO_TX_ENC_IV_CONSTRUCTION_MAP_0_MASK 0x000300003247#define EC_CRYPTO_TX_ENC_IV_CONSTRUCTION_MAP_0_SHIFT 163248/* configure meaning of mux_sel=1'b1 (2'b00 – zeros, 2'b01 ... */3249#define EC_CRYPTO_TX_ENC_IV_CONSTRUCTION_MAP_1_MASK 0x000C00003250#define EC_CRYPTO_TX_ENC_IV_CONSTRUCTION_MAP_1_SHIFT 183251/* Per-byte mux select taken from Crypto table (otherwise ... */3252#define EC_CRYPTO_TX_ENC_IV_CONSTRUCTION_SEL_FROM_TABLE (1 << 20)3253/* [0] word swap en3254[1] byte swap en3255[2] bit swap en */3256#define EC_CRYPTO_TX_ENC_IV_CONSTRUCTION_ENDIANITY_SWAP_MASK 0x00E000003257#define EC_CRYPTO_TX_ENC_IV_CONSTRUCTION_ENDIANITY_SWAP_SHIFT 2132583259/**** rx_enc_iv_construction register ****/3260/* for each IV byte, select between src1 & src2. Src1 & src2 ... */3261#define EC_CRYPTO_RX_ENC_IV_CONSTRUCTION_MUX_SEL_MASK 0x0000FFFF3262#define EC_CRYPTO_RX_ENC_IV_CONSTRUCTION_MUX_SEL_SHIFT 03263/* configure meaning of mux_sel=1'b0 (2'b00 – zeros, 2'b01 – ... */3264#define EC_CRYPTO_RX_ENC_IV_CONSTRUCTION_MAP_0_MASK 0x000300003265#define EC_CRYPTO_RX_ENC_IV_CONSTRUCTION_MAP_0_SHIFT 163266/* configure meaning of mux_sel=1'b1 (2'b00 – zeros, 2'b01 – ... */3267#define EC_CRYPTO_RX_ENC_IV_CONSTRUCTION_MAP_1_MASK 0x000C00003268#define EC_CRYPTO_RX_ENC_IV_CONSTRUCTION_MAP_1_SHIFT 183269/* Per-byte mux select taken from Crypto table (otherwise from ... */3270#define EC_CRYPTO_RX_ENC_IV_CONSTRUCTION_SEL_FROM_TABLE (1 << 20)3271/* [0] word swap en3272[1] byte swap en3273[2] bit swap en */3274#define EC_CRYPTO_RX_ENC_IV_CONSTRUCTION_ENDIANITY_SWAP_MASK 0x00E000003275#define EC_CRYPTO_RX_ENC_IV_CONSTRUCTION_ENDIANITY_SWAP_SHIFT 2132763277/**** rx_enc_iv_map register ****/3278/* [0] word swap en3279[1] byte swap en3280[2] bit swap en */3281#define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_0_OFFSET_MASK 0x0000001F3282#define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_0_OFFSET_SHIFT 03283/* number of valid bytes in word, as generated by field extract ... */3284#define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_0_LENGTH_MASK 0x000000E03285#define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_0_LENGTH_SHIFT 53286/* [0] word swap en3287[1] byte swap en3288[2] bit swap en */3289#define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_1_OFFSET_MASK 0x00001F003290#define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_1_OFFSET_SHIFT 83291/* number of valid bytes in word, as generated by field extract ... */3292#define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_1_LENGTH_MASK 0x0000E0003293#define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_1_LENGTH_SHIFT 133294/* [0] word swap en3295[1] byte swap en3296[2] bit swap en */3297#define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_2_OFFSET_MASK 0x001F00003298#define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_2_OFFSET_SHIFT 163299/* number of valid bytes in word, as generated by field extract ... */3300#define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_2_LENGTH_MASK 0x00E000003301#define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_2_LENGTH_SHIFT 213302/* [0] word swap en3303[1] byte swap en3304[2] bit swap en */3305#define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_3_OFFSET_MASK 0x1F0000003306#define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_3_OFFSET_SHIFT 243307/* number of valid bytes in word, as generated by field extract ... */3308#define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_3_LENGTH_MASK 0xE00000003309#define EC_CRYPTO_RX_ENC_IV_MAP_FIELD_EXTRACT_3_LENGTH_SHIFT 2933103311/**** tx_pkt_trim_len register ****/3312/* metadata shift-reg length */3313#define EC_CRYPTO_TX_PKT_TRIM_LEN_META_MASK 0x000000073314#define EC_CRYPTO_TX_PKT_TRIM_LEN_META_SHIFT 03315/* pkt trailer shift-reg length */3316#define EC_CRYPTO_TX_PKT_TRIM_LEN_TRAIL_MASK 0x000000F03317#define EC_CRYPTO_TX_PKT_TRIM_LEN_TRAIL_SHIFT 43318/* sign shift-reg length */3319#define EC_CRYPTO_TX_PKT_TRIM_LEN_SIGN_MASK 0x000003003320#define EC_CRYPTO_TX_PKT_TRIM_LEN_SIGN_SHIFT 83321/* crypto padding shift-reg length */3322#define EC_CRYPTO_TX_PKT_TRIM_LEN_CRYPTO_PADDING_MASK 0x000030003323#define EC_CRYPTO_TX_PKT_TRIM_LEN_CRYPTO_PADDING_SHIFT 123324/* hardware chooses shift-registers configurations automatically – no need for sw configuration */3325#define EC_CRYPTO_TX_PKT_TRIM_LEN_AUTO_MODE (1 << 16)33263327/**** rx_pkt_trim_len register ****/3328/* metadata shift-reg length */3329#define EC_CRYPTO_RX_PKT_TRIM_LEN_META_MASK 0x000000073330#define EC_CRYPTO_RX_PKT_TRIM_LEN_META_SHIFT 03331/* pkt trailer shift-reg length */3332#define EC_CRYPTO_RX_PKT_TRIM_LEN_TRAIL_MASK 0x000000F03333#define EC_CRYPTO_RX_PKT_TRIM_LEN_TRAIL_SHIFT 43334/* sign shift-reg length */3335#define EC_CRYPTO_RX_PKT_TRIM_LEN_SIGN_MASK 0x000003003336#define EC_CRYPTO_RX_PKT_TRIM_LEN_SIGN_SHIFT 83337/* crypto padding shift-reg length */3338#define EC_CRYPTO_RX_PKT_TRIM_LEN_CRYPTO_PADDING_MASK 0x000030003339#define EC_CRYPTO_RX_PKT_TRIM_LEN_CRYPTO_PADDING_SHIFT 123340/* hardware chooses shift-registers configurations automatically – no need for sw configuration */3341#define EC_CRYPTO_RX_PKT_TRIM_LEN_AUTO_MODE (1 << 16)33423343/**** total_tx_secured_pkts_cipher_mode_cmpr register ****/33443345#define EC_CRYPTO_PERF_CNTR_TOTAL_TX_SECURED_PKTS_CIPHER_MODE_CMPR_MODE_MASK 0x0000000F3346#define EC_CRYPTO_PERF_CNTR_TOTAL_TX_SECURED_PKTS_CIPHER_MODE_CMPR_MODE_SHIFT 033473348/**** total_rx_secured_pkts_cipher_mode_cmpr register ****/33493350#define EC_CRYPTO_PERF_CNTR_TOTAL_RX_SECURED_PKTS_CIPHER_MODE_CMPR_MODE_MASK 0x0000000F3351#define EC_CRYPTO_PERF_CNTR_TOTAL_RX_SECURED_PKTS_CIPHER_MODE_CMPR_MODE_SHIFT 033523353#ifdef __cplusplus3354}3355#endif33563357#endif /* __AL_HAL_EC_REG_H */33583359/** @} end of ... group */33603361336233633364