blob: 1bbc37f15d2434a7980b17bcdbd2abc72c104ba4 [file] [log] [blame]
/*
* Copyright (c) 2016-2017, 2019, The Linux Foundation. All rights reserved.
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all copies.
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
* OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
/**
* @defgroup
* @{
*/
#ifndef HPPE_FDB_REG_H
#define HPPE_FDB_REG_H
/*[register] L2_DBG_ADDR*/
#define L2_DBG_ADDR
#define L2_DBG_ADDR_ADDRESS 0x0
#define L2_DBG_ADDR_NUM 1
#define L2_DBG_ADDR_INC 0x4
#define L2_DBG_ADDR_TYPE REG_TYPE_RW
#define L2_DBG_ADDR_DEFAULT 0x0
/*[field] L2_DBG_ADDR*/
#define L2_DBG_ADDR_L2_DBG_ADDR
#define L2_DBG_ADDR_L2_DBG_ADDR_OFFSET 0
#define L2_DBG_ADDR_L2_DBG_ADDR_LEN 32
#define L2_DBG_ADDR_L2_DBG_ADDR_DEFAULT 0x0
struct l2_dbg_addr {
a_uint32_t l2_dbg_addr:32;
};
union l2_dbg_addr_u {
a_uint32_t val;
struct l2_dbg_addr bf;
};
/*[register] L2_DBG_DATA*/
#define L2_DBG_DATA
#define L2_DBG_DATA_ADDRESS 0x4
#define L2_DBG_DATA_NUM 1
#define L2_DBG_DATA_INC 0x4
#define L2_DBG_DATA_TYPE REG_TYPE_RO
#define L2_DBG_DATA_DEFAULT 0x0
/*[field] L2_DBG_DATA*/
#define L2_DBG_DATA_L2_DBG_DATA
#define L2_DBG_DATA_L2_DBG_DATA_OFFSET 0
#define L2_DBG_DATA_L2_DBG_DATA_LEN 32
#define L2_DBG_DATA_L2_DBG_DATA_DEFAULT 0x0
struct l2_dbg_data {
a_uint32_t l2_dbg_data:32;
};
union l2_dbg_data_u {
a_uint32_t val;
struct l2_dbg_data bf;
};
/*[register] FDB_TBL_OP*/
#define FDB_TBL_OP
#define FDB_TBL_OP_ADDRESS 0x8
#define FDB_TBL_OP_NUM 1
#define FDB_TBL_OP_INC 0x4
#define FDB_TBL_OP_TYPE REG_TYPE_RW
#define FDB_TBL_OP_DEFAULT 0x0
/*[field] CMD_ID*/
#define FDB_TBL_OP_CMD_ID
#define FDB_TBL_OP_CMD_ID_OFFSET 0
#define FDB_TBL_OP_CMD_ID_LEN 4
#define FDB_TBL_OP_CMD_ID_DEFAULT 0x0
/*[field] BYP_RSLT_EN*/
#define FDB_TBL_OP_BYP_RSLT_EN
#define FDB_TBL_OP_BYP_RSLT_EN_OFFSET 4
#define FDB_TBL_OP_BYP_RSLT_EN_LEN 1
#define FDB_TBL_OP_BYP_RSLT_EN_DEFAULT 0x0
/*[field] OP_TYPE*/
#define FDB_TBL_OP_OP_TYPE
#define FDB_TBL_OP_OP_TYPE_OFFSET 5
#define FDB_TBL_OP_OP_TYPE_LEN 3
#define FDB_TBL_OP_OP_TYPE_DEFAULT 0x0
/*[field] HASH_BLOCK_BITMAP*/
#define FDB_TBL_OP_HASH_BLOCK_BITMAP
#define FDB_TBL_OP_HASH_BLOCK_BITMAP_OFFSET 8
#define FDB_TBL_OP_HASH_BLOCK_BITMAP_LEN 2
#define FDB_TBL_OP_HASH_BLOCK_BITMAP_DEFAULT 0x0
/*[field] OP_MODE*/
#define FDB_TBL_OP_OP_MODE
#define FDB_TBL_OP_OP_MODE_OFFSET 10
#define FDB_TBL_OP_OP_MODE_LEN 1
#define FDB_TBL_OP_OP_MODE_DEFAULT 0x0
/*[field] ENTRY_INDEX*/
#define FDB_TBL_OP_ENTRY_INDEX
#define FDB_TBL_OP_ENTRY_INDEX_OFFSET 11
#define FDB_TBL_OP_ENTRY_INDEX_LEN 11
#define FDB_TBL_OP_ENTRY_INDEX_DEFAULT 0x0
struct fdb_tbl_op {
a_uint32_t cmd_id:4;
a_uint32_t byp_rslt_en:1;
a_uint32_t op_type:3;
a_uint32_t hash_block_bitmap:2;
a_uint32_t op_mode:1;
a_uint32_t entry_index:11;
a_uint32_t _reserved0:10;
};
union fdb_tbl_op_u {
a_uint32_t val;
struct fdb_tbl_op bf;
};
/*[register] FDB_TBL_RD_OP*/
#define FDB_TBL_RD_OP
#define FDB_TBL_RD_OP_ADDRESS 0x10
#define FDB_TBL_RD_OP_NUM 1
#define FDB_TBL_RD_OP_INC 0x4
#define FDB_TBL_RD_OP_TYPE REG_TYPE_RW
#define FDB_TBL_RD_OP_DEFAULT 0x0
/*[field] CMD_ID*/
#define FDB_TBL_RD_OP_CMD_ID
#define FDB_TBL_RD_OP_CMD_ID_OFFSET 0
#define FDB_TBL_RD_OP_CMD_ID_LEN 4
#define FDB_TBL_RD_OP_CMD_ID_DEFAULT 0x0
/*[field] BYP_RSLT_EN*/
#define FDB_TBL_RD_OP_BYP_RSLT_EN
#define FDB_TBL_RD_OP_BYP_RSLT_EN_OFFSET 4
#define FDB_TBL_RD_OP_BYP_RSLT_EN_LEN 1
#define FDB_TBL_RD_OP_BYP_RSLT_EN_DEFAULT 0x0
/*[field] OP_TYPE*/
#define FDB_TBL_RD_OP_OP_TYPE
#define FDB_TBL_RD_OP_OP_TYPE_OFFSET 5
#define FDB_TBL_RD_OP_OP_TYPE_LEN 3
#define FDB_TBL_RD_OP_OP_TYPE_DEFAULT 0x0
/*[field] HASH_BLOCK_BITMAP*/
#define FDB_TBL_RD_OP_HASH_BLOCK_BITMAP
#define FDB_TBL_RD_OP_HASH_BLOCK_BITMAP_OFFSET 8
#define FDB_TBL_RD_OP_HASH_BLOCK_BITMAP_LEN 2
#define FDB_TBL_RD_OP_HASH_BLOCK_BITMAP_DEFAULT 0x0
/*[field] OP_MODE*/
#define FDB_TBL_RD_OP_OP_MODE
#define FDB_TBL_RD_OP_OP_MODE_OFFSET 10
#define FDB_TBL_RD_OP_OP_MODE_LEN 1
#define FDB_TBL_RD_OP_OP_MODE_DEFAULT 0x0
/*[field] ENTRY_INDEX*/
#define FDB_TBL_RD_OP_ENTRY_INDEX
#define FDB_TBL_RD_OP_ENTRY_INDEX_OFFSET 11
#define FDB_TBL_RD_OP_ENTRY_INDEX_LEN 11
#define FDB_TBL_RD_OP_ENTRY_INDEX_DEFAULT 0x0
struct fdb_tbl_rd_op {
a_uint32_t cmd_id:4;
a_uint32_t byp_rslt_en:1;
a_uint32_t op_type:3;
a_uint32_t hash_block_bitmap:2;
a_uint32_t op_mode:1;
a_uint32_t entry_index:11;
a_uint32_t _reserved0:10;
};
union fdb_tbl_rd_op_u {
a_uint32_t val;
struct fdb_tbl_rd_op bf;
};
/*[register] FDB_TBL_OP_RSLT*/
#define FDB_TBL_OP_RSLT
#define FDB_TBL_OP_RSLT_ADDRESS 0x20
#define FDB_TBL_OP_RSLT_NUM 1
#define FDB_TBL_OP_RSLT_INC 0x4
#define FDB_TBL_OP_RSLT_TYPE REG_TYPE_RO
#define FDB_TBL_OP_RSLT_DEFAULT 0x0
/*[field] CMD_ID*/
#define FDB_TBL_OP_RSLT_CMD_ID
#define FDB_TBL_OP_RSLT_CMD_ID_OFFSET 0
#define FDB_TBL_OP_RSLT_CMD_ID_LEN 4
#define FDB_TBL_OP_RSLT_CMD_ID_DEFAULT 0x0
/*[field] OP_RSLT*/
#define FDB_TBL_OP_RSLT_OP_RSLT
#define FDB_TBL_OP_RSLT_OP_RSLT_OFFSET 4
#define FDB_TBL_OP_RSLT_OP_RSLT_LEN 1
#define FDB_TBL_OP_RSLT_OP_RSLT_DEFAULT 0x0
/*[field] VALID_CNT*/
#define FDB_TBL_OP_RSLT_VALID_CNT
#define FDB_TBL_OP_RSLT_VALID_CNT_OFFSET 5
#define FDB_TBL_OP_RSLT_VALID_CNT_LEN 4
#define FDB_TBL_OP_RSLT_VALID_CNT_DEFAULT 0x0
/*[field] ENTRY_INDEX*/
#define FDB_TBL_OP_RSLT_ENTRY_INDEX
#define FDB_TBL_OP_RSLT_ENTRY_INDEX_OFFSET 9
#define FDB_TBL_OP_RSLT_ENTRY_INDEX_LEN 11
#define FDB_TBL_OP_RSLT_ENTRY_INDEX_DEFAULT 0x0
struct fdb_tbl_op_rslt {
a_uint32_t cmd_id:4;
a_uint32_t op_rslt:1;
a_uint32_t valid_cnt:4;
a_uint32_t entry_index:11;
a_uint32_t _reserved0:12;
};
union fdb_tbl_op_rslt_u {
a_uint32_t val;
struct fdb_tbl_op_rslt bf;
};
/*[register] FDB_TBL_RD_OP_RSLT*/
#define FDB_TBL_RD_OP_RSLT
#define FDB_TBL_RD_OP_RSLT_ADDRESS 0x30
#define FDB_TBL_RD_OP_RSLT_NUM 1
#define FDB_TBL_RD_OP_RSLT_INC 0x4
#define FDB_TBL_RD_OP_RSLT_TYPE REG_TYPE_RO
#define FDB_TBL_RD_OP_RSLT_DEFAULT 0x0
/*[field] CMD_ID*/
#define FDB_TBL_RD_OP_RSLT_CMD_ID
#define FDB_TBL_RD_OP_RSLT_CMD_ID_OFFSET 0
#define FDB_TBL_RD_OP_RSLT_CMD_ID_LEN 4
#define FDB_TBL_RD_OP_RSLT_CMD_ID_DEFAULT 0x0
/*[field] OP_RSLT*/
#define FDB_TBL_RD_OP_RSLT_OP_RSLT
#define FDB_TBL_RD_OP_RSLT_OP_RSLT_OFFSET 4
#define FDB_TBL_RD_OP_RSLT_OP_RSLT_LEN 1
#define FDB_TBL_RD_OP_RSLT_OP_RSLT_DEFAULT 0x0
/*[field] VALID_CNT*/
#define FDB_TBL_RD_OP_RSLT_VALID_CNT
#define FDB_TBL_RD_OP_RSLT_VALID_CNT_OFFSET 5
#define FDB_TBL_RD_OP_RSLT_VALID_CNT_LEN 4
#define FDB_TBL_RD_OP_RSLT_VALID_CNT_DEFAULT 0x0
/*[field] ENTRY_INDEX*/
#define FDB_TBL_RD_OP_RSLT_ENTRY_INDEX
#define FDB_TBL_RD_OP_RSLT_ENTRY_INDEX_OFFSET 9
#define FDB_TBL_RD_OP_RSLT_ENTRY_INDEX_LEN 11
#define FDB_TBL_RD_OP_RSLT_ENTRY_INDEX_DEFAULT 0x0
struct fdb_tbl_rd_op_rslt {
a_uint32_t cmd_id:4;
a_uint32_t op_rslt:1;
a_uint32_t valid_cnt:4;
a_uint32_t entry_index:11;
a_uint32_t _reserved0:12;
};
union fdb_tbl_rd_op_rslt_u {
a_uint32_t val;
struct fdb_tbl_rd_op_rslt bf;
};
/*[register] AGE_TIMER*/
#define AGE_TIMER
#define AGE_TIMER_ADDRESS 0x34
#define AGE_TIMER_NUM 1
#define AGE_TIMER_INC 0x4
#define AGE_TIMER_TYPE REG_TYPE_RW
#define AGE_TIMER_DEFAULT 0x0
/*[field] AGE_VAL*/
#define AGE_TIMER_AGE_VAL
#define AGE_TIMER_AGE_VAL_OFFSET 0
#define AGE_TIMER_AGE_VAL_LEN 20
#define AGE_TIMER_AGE_VAL_DEFAULT 0x0
struct age_timer {
a_uint32_t age_val:20;
a_uint32_t _reserved0:12;
};
union age_timer_u {
a_uint32_t val;
struct age_timer bf;
};
/*[register] L2_GLOBAL_CONF*/
#define L2_GLOBAL_CONF
#define L2_GLOBAL_CONF_ADDRESS 0x38
#define L2_GLOBAL_CONF_NUM 1
#define L2_GLOBAL_CONF_INC 0x4
#define L2_GLOBAL_CONF_TYPE REG_TYPE_RW
#define L2_GLOBAL_CONF_DEFAULT 0xc0
/*[field] FDB_HASH_MODE_0*/
#define L2_GLOBAL_CONF_FDB_HASH_MODE_0
#define L2_GLOBAL_CONF_FDB_HASH_MODE_0_OFFSET 0
#define L2_GLOBAL_CONF_FDB_HASH_MODE_0_LEN 2
#define L2_GLOBAL_CONF_FDB_HASH_MODE_0_DEFAULT 0x0
/*[field] FDB_HASH_MODE_1*/
#define L2_GLOBAL_CONF_FDB_HASH_MODE_1
#define L2_GLOBAL_CONF_FDB_HASH_MODE_1_OFFSET 2
#define L2_GLOBAL_CONF_FDB_HASH_MODE_1_LEN 2
#define L2_GLOBAL_CONF_FDB_HASH_MODE_1_DEFAULT 0x0
/*[field] FDB_HASH_FULL_FWD_CMD*/
#define L2_GLOBAL_CONF_FDB_HASH_FULL_FWD_CMD
#define L2_GLOBAL_CONF_FDB_HASH_FULL_FWD_CMD_OFFSET 4
#define L2_GLOBAL_CONF_FDB_HASH_FULL_FWD_CMD_LEN 2
#define L2_GLOBAL_CONF_FDB_HASH_FULL_FWD_CMD_DEFAULT 0x0
/*[field] LRN_EN*/
#define L2_GLOBAL_CONF_LRN_EN
#define L2_GLOBAL_CONF_LRN_EN_OFFSET 6
#define L2_GLOBAL_CONF_LRN_EN_LEN 1
#define L2_GLOBAL_CONF_LRN_EN_DEFAULT 0x1
/*[field] AGE_EN*/
#define L2_GLOBAL_CONF_AGE_EN
#define L2_GLOBAL_CONF_AGE_EN_OFFSET 7
#define L2_GLOBAL_CONF_AGE_EN_LEN 1
#define L2_GLOBAL_CONF_AGE_EN_DEFAULT 0x1
/*[field] LRN_CTRL_MODE*/
#define L2_GLOBAL_CONF_LRN_CTRL_MODE
#define L2_GLOBAL_CONF_LRN_CTRL_MODE_OFFSET 8
#define L2_GLOBAL_CONF_LRN_CTRL_MODE_LEN 1
#define L2_GLOBAL_CONF_LRN_CTRL_MODE_DEFAULT 0x0
/*[field] AGE_CTRL_MODE*/
#define L2_GLOBAL_CONF_AGE_CTRL_MODE
#define L2_GLOBAL_CONF_AGE_CTRL_MODE_OFFSET 9
#define L2_GLOBAL_CONF_AGE_CTRL_MODE_LEN 1
#define L2_GLOBAL_CONF_AGE_CTRL_MODE_DEFAULT 0x0
/*[field] FAILOVER_EN*/
#define L2_GLOBAL_CONF_FAILOVER_EN
#define L2_GLOBAL_CONF_FAILOVER_EN_OFFSET 10
#define L2_GLOBAL_CONF_FAILOVER_EN_LEN 1
#define L2_GLOBAL_CONF_FAILOVER_EN_DEFAULT 0x0
/*[field] SERVICE_CODE_LOOP*/
#define L2_GLOBAL_CONF_SERVICE_CODE_LOOP
#define L2_GLOBAL_CONF_SERVICE_CODE_LOOP_OFFSET 11
#define L2_GLOBAL_CONF_SERVICE_CODE_LOOP_LEN 1
#define L2_GLOBAL_CONF_SERVICE_CODE_LOOP_DEFAULT 0x0
struct l2_global_conf {
a_uint32_t fdb_hash_mode_0:2;
a_uint32_t fdb_hash_mode_1:2;
a_uint32_t fdb_hash_full_fwd_cmd:2;
a_uint32_t lrn_en:1;
a_uint32_t age_en:1;
a_uint32_t lrn_ctrl_mode:1;
a_uint32_t age_ctrl_mode:1;
a_uint32_t failover_en:1;
a_uint32_t service_code_loop:1;
a_uint32_t l2_flow_copy_escape:1;
a_uint32_t _reserved0:19;
};
union l2_global_conf_u {
a_uint32_t val;
struct l2_global_conf bf;
};
/*[register] L2_DBGCNT_CMD*/
#define L2_DBGCNT_CMD
#define L2_DBGCNT_CMD_ADDRESS 0x44
#define L2_DBGCNT_CMD_NUM 1
#define L2_DBGCNT_CMD_INC 0x4
#define L2_DBGCNT_CMD_TYPE REG_TYPE_RW
#define L2_DBGCNT_CMD_DEFAULT 0x0
/*[field] ADDR*/
#define L2_DBGCNT_CMD_ADDR
#define L2_DBGCNT_CMD_ADDR_OFFSET 0
#define L2_DBGCNT_CMD_ADDR_LEN 8
#define L2_DBGCNT_CMD_ADDR_DEFAULT 0x0
/*[field] TYPE*/
#define L2_DBGCNT_CMD_TYPE_F
#define L2_DBGCNT_CMD_TYPE_F_OFFSET 8
#define L2_DBGCNT_CMD_TYPE_F_LEN 2
#define L2_DBGCNT_CMD_TYPE_F_DEFAULT 0x0
struct l2_dbgcnt_cmd {
a_uint32_t addr:8;
a_uint32_t type:2;
a_uint32_t _reserved0:22;
};
union l2_dbgcnt_cmd_u {
a_uint32_t val;
struct l2_dbgcnt_cmd bf;
};
/*[register] L2_DBGCNT_RDATA*/
#define L2_DBGCNT_RDATA
#define L2_DBGCNT_RDATA_ADDRESS 0x48
#define L2_DBGCNT_RDATA_NUM 1
#define L2_DBGCNT_RDATA_INC 0x4
#define L2_DBGCNT_RDATA_TYPE REG_TYPE_RO
#define L2_DBGCNT_RDATA_DEFAULT 0x0
/*[field] DATA*/
#define L2_DBGCNT_RDATA_DATA
#define L2_DBGCNT_RDATA_DATA_OFFSET 0
#define L2_DBGCNT_RDATA_DATA_LEN 32
#define L2_DBGCNT_RDATA_DATA_DEFAULT 0x0
struct l2_dbgcnt_rdata {
a_uint32_t data:32;
};
union l2_dbgcnt_rdata_u {
a_uint32_t val;
struct l2_dbgcnt_rdata bf;
};
/*[register] L2_DBGCNT_WDATA*/
#define L2_DBGCNT_WDATA
#define L2_DBGCNT_WDATA_ADDRESS 0x4c
#define L2_DBGCNT_WDATA_NUM 1
#define L2_DBGCNT_WDATA_INC 0x4
#define L2_DBGCNT_WDATA_TYPE REG_TYPE_RW
#define L2_DBGCNT_WDATA_DEFAULT 0x0
/*[field] DATA*/
#define L2_DBGCNT_WDATA_DATA
#define L2_DBGCNT_WDATA_DATA_OFFSET 0
#define L2_DBGCNT_WDATA_DATA_LEN 32
#define L2_DBGCNT_WDATA_DATA_DEFAULT 0x0
struct l2_dbgcnt_wdata {
a_uint32_t data:32;
};
union l2_dbgcnt_wdata_u {
a_uint32_t val;
struct l2_dbgcnt_wdata bf;
};
/*[register] FDB_TBL_RD_OP_RSLT_DATA0*/
#define FDB_TBL_RD_OP_RSLT_DATA0
#define FDB_TBL_RD_OP_RSLT_DATA0_ADDRESS 0x200
#define FDB_TBL_RD_OP_RSLT_DATA0_NUM 1
#define FDB_TBL_RD_OP_RSLT_DATA0_INC 0x10
#define FDB_TBL_RD_OP_RSLT_DATA0_TYPE REG_TYPE_RO
#define FDB_TBL_RD_OP_RSLT_DATA0_DEFAULT 0x0
/*[field] DATA*/
#define FDB_TBL_RD_OP_RSLT_DATA0_DATA
#define FDB_TBL_RD_OP_RSLT_DATA0_DATA_OFFSET 0
#define FDB_TBL_RD_OP_RSLT_DATA0_DATA_LEN 32
#define FDB_TBL_RD_OP_RSLT_DATA0_DATA_DEFAULT 0x0
struct fdb_tbl_rd_op_rslt_data0 {
a_uint32_t data:32;
};
union fdb_tbl_rd_op_rslt_data0_u {
a_uint32_t val;
struct fdb_tbl_rd_op_rslt_data0 bf;
};
/*[register] FDB_TBL_RD_OP_RSLT_DATA1*/
#define FDB_TBL_RD_OP_RSLT_DATA1
#define FDB_TBL_RD_OP_RSLT_DATA1_ADDRESS 0x204
#define FDB_TBL_RD_OP_RSLT_DATA1_NUM 1
#define FDB_TBL_RD_OP_RSLT_DATA1_INC 0x10
#define FDB_TBL_RD_OP_RSLT_DATA1_TYPE REG_TYPE_RO
#define FDB_TBL_RD_OP_RSLT_DATA1_DEFAULT 0x0
/*[field] DATA*/
#define FDB_TBL_RD_OP_RSLT_DATA1_DATA
#define FDB_TBL_RD_OP_RSLT_DATA1_DATA_OFFSET 0
#define FDB_TBL_RD_OP_RSLT_DATA1_DATA_LEN 32
#define FDB_TBL_RD_OP_RSLT_DATA1_DATA_DEFAULT 0x0
struct fdb_tbl_rd_op_rslt_data1 {
a_uint32_t data:32;
};
union fdb_tbl_rd_op_rslt_data1_u {
a_uint32_t val;
struct fdb_tbl_rd_op_rslt_data1 bf;
};
/*[register] FDB_TBL_RD_OP_RSLT_DATA2*/
#define FDB_TBL_RD_OP_RSLT_DATA2
#define FDB_TBL_RD_OP_RSLT_DATA2_ADDRESS 0x208
#define FDB_TBL_RD_OP_RSLT_DATA2_NUM 1
#define FDB_TBL_RD_OP_RSLT_DATA2_INC 0x10
#define FDB_TBL_RD_OP_RSLT_DATA2_TYPE REG_TYPE_RO
#define FDB_TBL_RD_OP_RSLT_DATA2_DEFAULT 0x0
/*[field] DATA*/
#define FDB_TBL_RD_OP_RSLT_DATA2_DATA
#define FDB_TBL_RD_OP_RSLT_DATA2_DATA_OFFSET 0
#define FDB_TBL_RD_OP_RSLT_DATA2_DATA_LEN 32
#define FDB_TBL_RD_OP_RSLT_DATA2_DATA_DEFAULT 0x0
struct fdb_tbl_rd_op_rslt_data2 {
a_uint32_t data:32;
};
union fdb_tbl_rd_op_rslt_data2_u {
a_uint32_t val;
struct fdb_tbl_rd_op_rslt_data2 bf;
};
/*[register] FDB_TBL_OP_DATA0*/
#define FDB_TBL_OP_DATA0
#define FDB_TBL_OP_DATA0_ADDRESS 0x230
#define FDB_TBL_OP_DATA0_NUM 1
#define FDB_TBL_OP_DATA0_INC 0x10
#define FDB_TBL_OP_DATA0_TYPE REG_TYPE_RW
#define FDB_TBL_OP_DATA0_DEFAULT 0x0
/*[field] DATA*/
#define FDB_TBL_OP_DATA0_DATA
#define FDB_TBL_OP_DATA0_DATA_OFFSET 0
#define FDB_TBL_OP_DATA0_DATA_LEN 32
#define FDB_TBL_OP_DATA0_DATA_DEFAULT 0x0
struct fdb_tbl_op_data0 {
a_uint32_t data:32;
};
union fdb_tbl_op_data0_u {
a_uint32_t val;
struct fdb_tbl_op_data0 bf;
};
/*[register] FDB_TBL_OP_DATA1*/
#define FDB_TBL_OP_DATA1
#define FDB_TBL_OP_DATA1_ADDRESS 0x234
#define FDB_TBL_OP_DATA1_NUM 1
#define FDB_TBL_OP_DATA1_INC 0x10
#define FDB_TBL_OP_DATA1_TYPE REG_TYPE_RW
#define FDB_TBL_OP_DATA1_DEFAULT 0x0
/*[field] DATA*/
#define FDB_TBL_OP_DATA1_DATA
#define FDB_TBL_OP_DATA1_DATA_OFFSET 0
#define FDB_TBL_OP_DATA1_DATA_LEN 32
#define FDB_TBL_OP_DATA1_DATA_DEFAULT 0x0
struct fdb_tbl_op_data1 {
a_uint32_t data:32;
};
union fdb_tbl_op_data1_u {
a_uint32_t val;
struct fdb_tbl_op_data1 bf;
};
/*[register] FDB_TBL_OP_DATA2*/
#define FDB_TBL_OP_DATA2
#define FDB_TBL_OP_DATA2_ADDRESS 0x238
#define FDB_TBL_OP_DATA2_NUM 1
#define FDB_TBL_OP_DATA2_INC 0x10
#define FDB_TBL_OP_DATA2_TYPE REG_TYPE_RW
#define FDB_TBL_OP_DATA2_DEFAULT 0x0
/*[field] DATA*/
#define FDB_TBL_OP_DATA2_DATA
#define FDB_TBL_OP_DATA2_DATA_OFFSET 0
#define FDB_TBL_OP_DATA2_DATA_LEN 32
#define FDB_TBL_OP_DATA2_DATA_DEFAULT 0x0
struct fdb_tbl_op_data2 {
a_uint32_t data:32;
};
union fdb_tbl_op_data2_u {
a_uint32_t val;
struct fdb_tbl_op_data2 bf;
};
/*[register] FDB_TBL_RD_OP_DATA0*/
#define FDB_TBL_RD_OP_DATA0
#define FDB_TBL_RD_OP_DATA0_ADDRESS 0x260
#define FDB_TBL_RD_OP_DATA0_NUM 1
#define FDB_TBL_RD_OP_DATA0_INC 0x10
#define FDB_TBL_RD_OP_DATA0_TYPE REG_TYPE_RW
#define FDB_TBL_RD_OP_DATA0_DEFAULT 0x0
/*[field] DATA*/
#define FDB_TBL_RD_OP_DATA0_DATA
#define FDB_TBL_RD_OP_DATA0_DATA_OFFSET 0
#define FDB_TBL_RD_OP_DATA0_DATA_LEN 32
#define FDB_TBL_RD_OP_DATA0_DATA_DEFAULT 0x0
struct fdb_tbl_rd_op_data0 {
a_uint32_t data:32;
};
union fdb_tbl_rd_op_data0_u {
a_uint32_t val;
struct fdb_tbl_rd_op_data0 bf;
};
/*[register] FDB_TBL_RD_OP_DATA1*/
#define FDB_TBL_RD_OP_DATA1
#define FDB_TBL_RD_OP_DATA1_ADDRESS 0x264
#define FDB_TBL_RD_OP_DATA1_NUM 1
#define FDB_TBL_RD_OP_DATA1_INC 0x10
#define FDB_TBL_RD_OP_DATA1_TYPE REG_TYPE_RW
#define FDB_TBL_RD_OP_DATA1_DEFAULT 0x0
/*[field] DATA*/
#define FDB_TBL_RD_OP_DATA1_DATA
#define FDB_TBL_RD_OP_DATA1_DATA_OFFSET 0
#define FDB_TBL_RD_OP_DATA1_DATA_LEN 32
#define FDB_TBL_RD_OP_DATA1_DATA_DEFAULT 0x0
struct fdb_tbl_rd_op_data1 {
a_uint32_t data:32;
};
union fdb_tbl_rd_op_data1_u {
a_uint32_t val;
struct fdb_tbl_rd_op_data1 bf;
};
/*[register] FDB_TBL_RD_OP_DATA2*/
#define FDB_TBL_RD_OP_DATA2
#define FDB_TBL_RD_OP_DATA2_ADDRESS 0x268
#define FDB_TBL_RD_OP_DATA2_NUM 1
#define FDB_TBL_RD_OP_DATA2_INC 0x10
#define FDB_TBL_RD_OP_DATA2_TYPE REG_TYPE_RW
#define FDB_TBL_RD_OP_DATA2_DEFAULT 0x0
/*[field] DATA*/
#define FDB_TBL_RD_OP_DATA2_DATA
#define FDB_TBL_RD_OP_DATA2_DATA_OFFSET 0
#define FDB_TBL_RD_OP_DATA2_DATA_LEN 32
#define FDB_TBL_RD_OP_DATA2_DATA_DEFAULT 0x0
struct fdb_tbl_rd_op_data2 {
a_uint32_t data:32;
};
union fdb_tbl_rd_op_data2_u {
a_uint32_t val;
struct fdb_tbl_rd_op_data2 bf;
};
/*[register] PORT_BRIDGE_CTRL*/
#define PORT_BRIDGE_CTRL
#define PORT_BRIDGE_CTRL_ADDRESS 0x300
#define PORT_BRIDGE_CTRL_NUM 8
#define PORT_BRIDGE_CTRL_INC 0x4
#define PORT_BRIDGE_CTRL_TYPE REG_TYPE_RW
#define PORT_BRIDGE_CTRL_DEFAULT 0x2ff09
/*[field] NEW_ADDR_LRN_EN*/
#define PORT_BRIDGE_CTRL_NEW_ADDR_LRN_EN
#define PORT_BRIDGE_CTRL_NEW_ADDR_LRN_EN_OFFSET 0
#define PORT_BRIDGE_CTRL_NEW_ADDR_LRN_EN_LEN 1
#define PORT_BRIDGE_CTRL_NEW_ADDR_LRN_EN_DEFAULT 0x1
/*[field] NEW_ADDR_FWD_CMD*/
#define PORT_BRIDGE_CTRL_NEW_ADDR_FWD_CMD
#define PORT_BRIDGE_CTRL_NEW_ADDR_FWD_CMD_OFFSET 1
#define PORT_BRIDGE_CTRL_NEW_ADDR_FWD_CMD_LEN 2
#define PORT_BRIDGE_CTRL_NEW_ADDR_FWD_CMD_DEFAULT 0x0
/*[field] STATION_MOVE_LRN_EN*/
#define PORT_BRIDGE_CTRL_STATION_MOVE_LRN_EN
#define PORT_BRIDGE_CTRL_STATION_MOVE_LRN_EN_OFFSET 3
#define PORT_BRIDGE_CTRL_STATION_MOVE_LRN_EN_LEN 1
#define PORT_BRIDGE_CTRL_STATION_MOVE_LRN_EN_DEFAULT 0x1
/*[field] STATION_MOVE_FWD_CMD*/
#define PORT_BRIDGE_CTRL_STATION_MOVE_FWD_CMD
#define PORT_BRIDGE_CTRL_STATION_MOVE_FWD_CMD_OFFSET 4
#define PORT_BRIDGE_CTRL_STATION_MOVE_FWD_CMD_LEN 2
#define PORT_BRIDGE_CTRL_STATION_MOVE_FWD_CMD_DEFAULT 0x0
/*[field] PORT_ISOLATION_BITMAP*/
#define PORT_BRIDGE_CTRL_PORT_ISOLATION_BITMAP
#define PORT_BRIDGE_CTRL_PORT_ISOLATION_BITMAP_OFFSET 8
#define PORT_BRIDGE_CTRL_PORT_ISOLATION_BITMAP_LEN 8
#define PORT_BRIDGE_CTRL_PORT_ISOLATION_BITMAP_DEFAULT 0xff
/*[field] TXMAC_EN*/
#define PORT_BRIDGE_CTRL_TXMAC_EN
#define PORT_BRIDGE_CTRL_TXMAC_EN_OFFSET 16
#define PORT_BRIDGE_CTRL_TXMAC_EN_LEN 1
#define PORT_BRIDGE_CTRL_TXMAC_EN_DEFAULT 0x0
/*[field] PROMISC_EN*/
#define PORT_BRIDGE_CTRL_PROMISC_EN
#define PORT_BRIDGE_CTRL_PROMISC_EN_OFFSET 17
#define PORT_BRIDGE_CTRL_PROMISC_EN_LEN 1
#define PORT_BRIDGE_CTRL_PROMISC_EN_DEFAULT 0x1
struct port_bridge_ctrl {
a_uint32_t new_addr_lrn_en:1;
a_uint32_t new_addr_fwd_cmd:2;
a_uint32_t station_move_lrn_en:1;
a_uint32_t station_move_fwd_cmd:2;
a_uint32_t _reserved0:2;
a_uint32_t port_isolation_bitmap:8;
a_uint32_t txmac_en:1;
a_uint32_t promisc_en:1;
a_uint32_t _reserved1:14;
};
union port_bridge_ctrl_u {
a_uint32_t val;
struct port_bridge_ctrl bf;
};
/*[register] PORT_LRN_LIMIT_CTRL*/
#define PORT_LRN_LIMIT_CTRL
#define PORT_LRN_LIMIT_CTRL_ADDRESS 0x400
#define PORT_LRN_LIMIT_CTRL_NUM 8
#define PORT_LRN_LIMIT_CTRL_INC 0x4
#define PORT_LRN_LIMIT_CTRL_TYPE REG_TYPE_RW
#define PORT_LRN_LIMIT_CTRL_DEFAULT 0x1800
/*[field] LRN_LMT_CNT*/
#define PORT_LRN_LIMIT_CTRL_LRN_LMT_CNT
#define PORT_LRN_LIMIT_CTRL_LRN_LMT_CNT_OFFSET 0
#define PORT_LRN_LIMIT_CTRL_LRN_LMT_CNT_LEN 12
#define PORT_LRN_LIMIT_CTRL_LRN_LMT_CNT_DEFAULT 0x800
/*[field] LRN_LMT_EN*/
#define PORT_LRN_LIMIT_CTRL_LRN_LMT_EN
#define PORT_LRN_LIMIT_CTRL_LRN_LMT_EN_OFFSET 12
#define PORT_LRN_LIMIT_CTRL_LRN_LMT_EN_LEN 1
#define PORT_LRN_LIMIT_CTRL_LRN_LMT_EN_DEFAULT 0x1
/*[field] LRN_LMT_EXCEED_FWD*/
#define PORT_LRN_LIMIT_CTRL_LRN_LMT_EXCEED_FWD
#define PORT_LRN_LIMIT_CTRL_LRN_LMT_EXCEED_FWD_OFFSET 13
#define PORT_LRN_LIMIT_CTRL_LRN_LMT_EXCEED_FWD_LEN 2
#define PORT_LRN_LIMIT_CTRL_LRN_LMT_EXCEED_FWD_DEFAULT 0x0
struct port_lrn_limit_ctrl {
a_uint32_t lrn_lmt_cnt:12;
a_uint32_t lrn_lmt_en:1;
a_uint32_t lrn_lmt_exceed_fwd:2;
a_uint32_t _reserved0:17;
};
union port_lrn_limit_ctrl_u {
a_uint32_t val;
struct port_lrn_limit_ctrl bf;
};
/*[register] PORT_LRN_LIMIT_COUNTER*/
#define PORT_LRN_LIMIT_COUNTER
#define PORT_LRN_LIMIT_COUNTER_ADDRESS 0x500
#define PORT_LRN_LIMIT_COUNTER_NUM 8
#define PORT_LRN_LIMIT_COUNTER_INC 0x4
#define PORT_LRN_LIMIT_COUNTER_TYPE REG_TYPE_RO
#define PORT_LRN_LIMIT_COUNTER_DEFAULT 0x0
/*[field] LRN_CNT*/
#define PORT_LRN_LIMIT_COUNTER_LRN_CNT
#define PORT_LRN_LIMIT_COUNTER_LRN_CNT_OFFSET 0
#define PORT_LRN_LIMIT_COUNTER_LRN_CNT_LEN 12
#define PORT_LRN_LIMIT_COUNTER_LRN_CNT_DEFAULT 0x0
struct port_lrn_limit_counter {
a_uint32_t lrn_cnt:12;
a_uint32_t _reserved0:20;
};
union port_lrn_limit_counter_u {
a_uint32_t val;
struct port_lrn_limit_counter bf;
};
/*[table] RFDB_TBL*/
#define RFDB_TBL
#define RFDB_TBL_ADDRESS 0x1000
#define RFDB_TBL_NUM 32
#define RFDB_TBL_INC 0x8
#define RFDB_TBL_TYPE REG_TYPE_RW
#define RFDB_TBL_DEFAULT 0x0
/*[field] MAC_ADDR*/
#define RFDB_TBL_MAC_ADDR
#define RFDB_TBL_MAC_ADDR_OFFSET 0
#define RFDB_TBL_MAC_ADDR_LEN 48
#define RFDB_TBL_MAC_ADDR_DEFAULT 0x0
/*[field] VALID*/
#define RFDB_TBL_VALID
#define RFDB_TBL_VALID_OFFSET 48
#define RFDB_TBL_VALID_LEN 1
#define RFDB_TBL_VALID_DEFAULT 0x0
struct rfdb_tbl {
a_uint32_t mac_addr_0:32;
a_uint32_t mac_addr_1:16;
a_uint32_t valid:1;
a_uint32_t _reserved0:15;
};
union rfdb_tbl_u {
a_uint32_t val[2];
struct rfdb_tbl bf;
};
/*[table] FDB_TBL*/
#define FDB_TBL
#define FDB_TBL_ADDRESS 0x10000
#define FDB_TBL_NUM 2048
#define FDB_TBL_INC 0x10
#define FDB_TBL_TYPE REG_TYPE_RW
#define FDB_TBL_DEFAULT 0x0
/*[field] MAC_ADDR*/
#define FDB_TBL_MAC_ADDR
#define FDB_TBL_MAC_ADDR_OFFSET 0
#define FDB_TBL_MAC_ADDR_LEN 48
#define FDB_TBL_MAC_ADDR_DEFAULT 0x0
/*[field] ENTRY_VALID*/
#define FDB_TBL_ENTRY_VALID
#define FDB_TBL_ENTRY_VALID_OFFSET 48
#define FDB_TBL_ENTRY_VALID_LEN 1
#define FDB_TBL_ENTRY_VALID_DEFAULT 0x0
/*[field] LOOKUP_VALID*/
#define FDB_TBL_LOOKUP_VALID
#define FDB_TBL_LOOKUP_VALID_OFFSET 49
#define FDB_TBL_LOOKUP_VALID_LEN 1
#define FDB_TBL_LOOKUP_VALID_DEFAULT 0x0
/*[field] VSI*/
#define FDB_TBL_VSI
#define FDB_TBL_VSI_OFFSET 50
#define FDB_TBL_VSI_LEN 5
#define FDB_TBL_VSI_DEFAULT 0x0
/*[field] DST_INFO*/
#define FDB_TBL_DST_INFO
#define FDB_TBL_DST_INFO_OFFSET 55
#define FDB_TBL_DST_INFO_LEN 14
#define FDB_TBL_DST_INFO_DEFAULT 0x0
/*[field] SA_CMD*/
#define FDB_TBL_SA_CMD
#define FDB_TBL_SA_CMD_OFFSET 69
#define FDB_TBL_SA_CMD_LEN 2
#define FDB_TBL_SA_CMD_DEFAULT 0x0
/*[field] DA_CMD*/
#define FDB_TBL_DA_CMD
#define FDB_TBL_DA_CMD_OFFSET 71
#define FDB_TBL_DA_CMD_LEN 2
#define FDB_TBL_DA_CMD_DEFAULT 0x0
/*[field] HIT_AGE*/
#define FDB_TBL_HIT_AGE
#define FDB_TBL_HIT_AGE_OFFSET 73
#define FDB_TBL_HIT_AGE_LEN 2
#define FDB_TBL_HIT_AGE_DEFAULT 0x0
struct fdb_tbl {
a_uint32_t mac_addr_0:32;
a_uint32_t mac_addr_1:16;
a_uint32_t entry_valid:1;
a_uint32_t lookup_valid:1;
a_uint32_t vsi:5;
a_uint32_t dst_info_0:9;
a_uint32_t dst_info_1:5;
a_uint32_t sa_cmd:2;
a_uint32_t da_cmd:2;
a_uint32_t hit_age:2;
a_uint32_t _reserved0:21;
};
union fdb_tbl_u {
a_uint32_t val[3];
struct fdb_tbl bf;
};
#endif