blob: 7a94bc332901a9e64a1ca497645a89b9b3bcea39 [file] [log] [blame]
/*
* Copyright (c) 2016-2017, 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_VSI_REG_H
#define HPPE_VSI_REG_H
/*[table] VSI_TBL*/
#define VSI_TBL
#define VSI_TBL_ADDRESS 0x1800
#define VSI_TBL_NUM 32
#define VSI_TBL_INC 0x10
#define VSI_TBL_TYPE REG_TYPE_RW
#define VSI_TBL_DEFAULT 0x0
/*[field] MEMBER_PORT_BITMAP*/
#define VSI_TBL_MEMBER_PORT_BITMAP
#define VSI_TBL_MEMBER_PORT_BITMAP_OFFSET 0
#define VSI_TBL_MEMBER_PORT_BITMAP_LEN 8
#define VSI_TBL_MEMBER_PORT_BITMAP_DEFAULT 0x0
/*[field] UUC_BITMAP*/
#define VSI_TBL_UUC_BITMAP
#define VSI_TBL_UUC_BITMAP_OFFSET 8
#define VSI_TBL_UUC_BITMAP_LEN 8
#define VSI_TBL_UUC_BITMAP_DEFAULT 0x0
/*[field] UMC_BITMAP*/
#define VSI_TBL_UMC_BITMAP
#define VSI_TBL_UMC_BITMAP_OFFSET 16
#define VSI_TBL_UMC_BITMAP_LEN 8
#define VSI_TBL_UMC_BITMAP_DEFAULT 0x0
/*[field] BC_BITMAP*/
#define VSI_TBL_BC_BITMAP
#define VSI_TBL_BC_BITMAP_OFFSET 24
#define VSI_TBL_BC_BITMAP_LEN 8
#define VSI_TBL_BC_BITMAP_DEFAULT 0x0
/*[field] NEW_ADDR_LRN_EN*/
#define VSI_TBL_NEW_ADDR_LRN_EN
#define VSI_TBL_NEW_ADDR_LRN_EN_OFFSET 32
#define VSI_TBL_NEW_ADDR_LRN_EN_LEN 1
#define VSI_TBL_NEW_ADDR_LRN_EN_DEFAULT 0x0
/*[field] NEW_ADDR_FWD_CMD*/
#define VSI_TBL_NEW_ADDR_FWD_CMD
#define VSI_TBL_NEW_ADDR_FWD_CMD_OFFSET 33
#define VSI_TBL_NEW_ADDR_FWD_CMD_LEN 2
#define VSI_TBL_NEW_ADDR_FWD_CMD_DEFAULT 0x0
/*[field] STATION_MOVE_LRN_EN*/
#define VSI_TBL_STATION_MOVE_LRN_EN
#define VSI_TBL_STATION_MOVE_LRN_EN_OFFSET 35
#define VSI_TBL_STATION_MOVE_LRN_EN_LEN 1
#define VSI_TBL_STATION_MOVE_LRN_EN_DEFAULT 0x0
/*[field] STATION_MOVE_FWD_CMD*/
#define VSI_TBL_STATION_MOVE_FWD_CMD
#define VSI_TBL_STATION_MOVE_FWD_CMD_OFFSET 36
#define VSI_TBL_STATION_MOVE_FWD_CMD_LEN 2
#define VSI_TBL_STATION_MOVE_FWD_CMD_DEFAULT 0x0
struct vsi_tbl {
a_uint32_t member_port_bitmap:8;
a_uint32_t uuc_bitmap:8;
a_uint32_t umc_bitmap:8;
a_uint32_t bc_bitmap:8;
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:26;
};
union vsi_tbl_u {
a_uint32_t val[2];
struct vsi_tbl bf;
};
/*[table] VLAN_CNT_TBL*/
#define VLAN_CNT_TBL
#define VLAN_CNT_TBL_ADDRESS 0x78000
#define VLAN_CNT_TBL_NUM 32
#define VLAN_CNT_TBL_INC 0x10
#define VLAN_CNT_TBL_TYPE REG_TYPE_RW
#define VLAN_CNT_TBL_DEFAULT 0x0
/*[field] RX_PKT_CNT*/
#define VLAN_CNT_TBL_RX_PKT_CNT
#define VLAN_CNT_TBL_RX_PKT_CNT_OFFSET 0
#define VLAN_CNT_TBL_RX_PKT_CNT_LEN 32
#define VLAN_CNT_TBL_RX_PKT_CNT_DEFAULT 0x0
/*[field] RX_BYTE_CNT*/
#define VLAN_CNT_TBL_RX_BYTE_CNT
#define VLAN_CNT_TBL_RX_BYTE_CNT_OFFSET 32
#define VLAN_CNT_TBL_RX_BYTE_CNT_LEN 40
#define VLAN_CNT_TBL_RX_BYTE_CNT_DEFAULT 0x0
struct vlan_cnt_tbl {
a_uint32_t rx_pkt_cnt:32;
a_uint32_t rx_byte_cnt_0:32;
a_uint32_t rx_byte_cnt_1:8;
a_uint32_t _reserved0:24;
};
union vlan_cnt_tbl_u {
a_uint32_t val[3];
struct vlan_cnt_tbl bf;
};
/*[table] EG_VSI_COUNTER_TBL*/
#define EG_VSI_COUNTER_TBL
#define EG_VSI_COUNTER_TBL_ADDRESS 0x600
#define EG_VSI_COUNTER_TBL_NUM 32
#define EG_VSI_COUNTER_TBL_INC 0x10
#define EG_VSI_COUNTER_TBL_TYPE REG_TYPE_RW
#define EG_VSI_COUNTER_TBL_DEFAULT 0x0
/*[field] TX_PACKETS*/
#define EG_VSI_COUNTER_TBL_TX_PACKETS
#define EG_VSI_COUNTER_TBL_TX_PACKETS_OFFSET 0
#define EG_VSI_COUNTER_TBL_TX_PACKETS_LEN 32
#define EG_VSI_COUNTER_TBL_TX_PACKETS_DEFAULT 0x0
/*[field] TX_BYTES*/
#define EG_VSI_COUNTER_TBL_TX_BYTES
#define EG_VSI_COUNTER_TBL_TX_BYTES_OFFSET 32
#define EG_VSI_COUNTER_TBL_TX_BYTES_LEN 40
#define EG_VSI_COUNTER_TBL_TX_BYTES_DEFAULT 0x0
struct eg_vsi_counter_tbl {
a_uint32_t tx_packets:32;
a_uint32_t tx_bytes_0:32;
a_uint32_t tx_bytes_1:8;
a_uint32_t _reserved0:24;
};
union eg_vsi_counter_tbl_u {
a_uint32_t val[3];
struct eg_vsi_counter_tbl bf;
};
/*[table] PRE_L2_CNT_TBL*/
#define PRE_L2_CNT_TBL
#define PRE_L2_CNT_TBL_ADDRESS 0x7c000
#define PRE_L2_CNT_TBL_NUM 32
#define PRE_L2_CNT_TBL_INC 0x20
#define PRE_L2_CNT_TBL_TYPE REG_TYPE_RW
#define PRE_L2_CNT_TBL_DEFAULT 0x0
/*[field] RX_PKT_CNT*/
#define PRE_L2_CNT_TBL_RX_PKT_CNT
#define PRE_L2_CNT_TBL_RX_PKT_CNT_OFFSET 0
#define PRE_L2_CNT_TBL_RX_PKT_CNT_LEN 32
#define PRE_L2_CNT_TBL_RX_PKT_CNT_DEFAULT 0x0
/*[field] RX_BYTE_CNT*/
#define PRE_L2_CNT_TBL_RX_BYTE_CNT
#define PRE_L2_CNT_TBL_RX_BYTE_CNT_OFFSET 32
#define PRE_L2_CNT_TBL_RX_BYTE_CNT_LEN 40
#define PRE_L2_CNT_TBL_RX_BYTE_CNT_DEFAULT 0x0
/*[field] RX_DROP_PKT_CNT*/
#define PRE_L2_CNT_TBL_RX_DROP_PKT_CNT
#define PRE_L2_CNT_TBL_RX_DROP_PKT_CNT_OFFSET 72
#define PRE_L2_CNT_TBL_RX_DROP_PKT_CNT_LEN 32
#define PRE_L2_CNT_TBL_RX_DROP_PKT_CNT_DEFAULT 0x0
/*[field] RX_DROP_BYTE_CNT*/
#define PRE_L2_CNT_TBL_RX_DROP_BYTE_CNT
#define PRE_L2_CNT_TBL_RX_DROP_BYTE_CNT_OFFSET 104
#define PRE_L2_CNT_TBL_RX_DROP_BYTE_CNT_LEN 40
#define PRE_L2_CNT_TBL_RX_DROP_BYTE_CNT_DEFAULT 0x0
struct pre_l2_cnt_tbl {
a_uint32_t rx_pkt_cnt:32;
a_uint32_t rx_byte_cnt_0:32;
a_uint32_t rx_byte_cnt_1:8;
a_uint32_t rx_drop_pkt_cnt_0:24;
a_uint32_t rx_drop_pkt_cnt_1:8;
a_uint32_t rx_drop_byte_cnt_0:24;
a_uint32_t rx_drop_byte_cnt_1:16;
a_uint32_t _reserved0:16;
};
union pre_l2_cnt_tbl_u {
a_uint32_t val[5];
struct pre_l2_cnt_tbl bf;
};
#endif