// ========== Copyright Header Begin ==========================================
// OpenSPARC T2 Processor File: mac_shadow_class.vr
// Copyright (C) 1995-2007 Sun Microsystems, Inc. All Rights Reserved
// 4150 Network Circle, Santa Clara, California 95054, U.S.A.
// * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; version 2 of the License.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
// For the avoidance of doubt, and except that if any non-GPL license
// choice is available it will apply instead, Sun elects to use only
// the General Public License version 2 (GPLv2) at this time for any
// software where a choice of GPL license versions is made
// available with the language indicating that GPLv2 or any later version
// may be used, or where a choice of which version of the GPL is applied is
// otherwise unspecified.
// Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
// CA 95054 USA or visit www.sun.com if you need additional information or
// ========== Copyright Header End ============================================
#include <vera_defines.vrh>
#include "bmac_memory_map.vri"
#include "neptune_memory_map.vri"
bit [32:0] all_mac_regs[];
bit [32:0] fall_mac_regs[];
bit [31:0] btxmac_sw_rst;
bit [31:0] brxmac_sw_rst;
bit [31:0] mac_send_pause;
bit [31:0] btxmac_status;
bit [31:0] brxmac_status;
bit [31:0] bmac_ctrl_stat;
bit [31:0] btxmac_stat_msk;
bit [31:0] brxmac_stat_msk;
bit [31:0] mac_ctrl_config;
bit [31:0] mac_xif_config;
bit [31:0] mac_slot_time;
bit [31:0] mac_attmpt_lmt;
bit [31:0] mac_ctrl_type;
bit [31:0] mac_add_filt0;
bit [31:0] mac_add_filt1;
bit [31:0] mac_add_filt2;
bit [31:0] mac_add_filt12_mask;
bit [31:0] mac_add_filt00_mask;
bit [31:0] mac_hash_tbl0;
bit [31:0] mac_hash_tbl1;
bit [31:0] mac_hash_tbl2;
bit [31:0] mac_hash_tbl3;
bit [31:0] mac_hash_tbl4;
bit [31:0] mac_hash_tbl5;
bit [31:0] mac_hash_tbl6;
bit [31:0] mac_hash_tbl7;
bit [31:0] mac_hash_tbl8;
bit [31:0] mac_hash_tbl9;
bit [31:0] mac_hash_tbl10;
bit [31:0] mac_hash_tbl11;
bit [31:0] mac_hash_tbl12;
bit [31:0] mac_hash_tbl13;
bit [31:0] mac_hash_tbl14;
bit [31:0] mac_hash_tbl15;
bit [31:0] bmac_oa_col_cnt;
bit [31:0] bmac_ex_col_cnt;
bit [31:0] bmac_lt_col_cnt;
bit [31:0] mac_def_timer;
bit [31:0] bmac_pk_att_cnt;
bit [31:0] brxmac_frm_cnt;
bit [31:0] mac_len_er_cnt;
bit [31:0] bmac_al_er_cnt;
bit [31:0] bmac_crc_er_cnt;
bit [31:0] bmac_cd_vio_cnt;
bit [31:0] bmac_altad_cmpen;
bit [31:0] bmac_host_inf0;
bit [31:0] bmac_host_inf1;
bit [31:0] bmac_host_inf2;
bit [31:0] bmac_host_inf3;
bit [31:0] bmac_host_inf4;
bit [31:0] bmac_host_inf5;
bit [31:0] bmac_host_inf6;
bit [31:0] bmac_host_inf7;
bit [31:0] btxmac_frm_cnt;
bit [31:0] btxmac_byte_cnt;
bit [31:0] brxmac_byte_cnt;
btxmac_sw_rst=32'h0000_0000;
brxmac_sw_rst=32'h0000_0000;
mac_send_pause=32'h0000_xxxx;
btxmac_status=32'h0000_0000;
brxmac_status=32'h0000_0000;
bmac_ctrl_stat=32'h0000_0000;
btxmac_stat_msk=32'h0000_01ff;
brxmac_stat_msk=32'h0000_007f;
bmac_c_s_msk=32'h0000_0007;
txmac_config=32'h0000_0000;
rxmac_config=32'h0000_0000;
mac_ctrl_config=32'h0000_0000;
mac_xif_config=32'h0000_000a;
mac_slot_time=32'hxxxx_xxxx;
bmac_max= {16'hxxxx,1'b0,15'hxxxx};
mac_pa_size=32'hxxxx_xxxx;
mac_jam_size=32'hxxxx_xxxx;
mac_attmpt_lmt=32'hxxxx_xxxx;
mac_ctrl_type=32'hxxxx_xxxx;
bmac_addr0=32'hxxxx_xxxx;
bmac_addr1=32'hxxxx_xxxx;
bmac_addr2=32'hxxxx_xxxx;
mac_addr10=32'hxxxx_xxxx;
mac_addr11=32'hxxxx_xxxx;
mac_addr12=32'hxxxx_xxxx;
mac_addr13=32'hxxxx_xxxx;
mac_addr14=32'hxxxx_xxxx;
mac_addr15=32'hxxxx_xxxx;
mac_addr16=32'hxxxx_xxxx;
mac_addr17=32'hxxxx_xxxx;
mac_addr18=32'hxxxx_xxxx;
mac_addr19=32'hxxxx_xxxx;
mac_addr20=32'hxxxx_xxxx;
mac_addr21=32'hxxxx_xxxx;
mac_addr22=32'hxxxx_xxxx;
mac_addr23=32'hxxxx_xxxx;
mac_addr24=32'hxxxx_xxxx;
mac_addr25=32'hxxxx_xxxx;
mac_addr26=32'hxxxx_xxxx;
mac_addr27=32'hxxxx_xxxx;
mac_addr28=32'hxxxx_xxxx;
mac_addr29=32'hxxxx_xxxx;
mac_addr30=32'hxxxx_xxxx;
mac_addr31=32'hxxxx_xxxx;
mac_addr32=32'hxxxx_xxxx;
mac_addr33=32'hxxxx_xxxx;
mac_addr34=32'hxxxx_xxxx;
mac_addr35=32'hxxxx_xxxx;
mac_addr36=32'hxxxx_xxxx;
mac_addr37=32'hxxxx_xxxx;
mac_addr38=32'hxxxx_xxxx;
mac_addr39=32'hxxxx_xxxx;
mac_addr40=32'hxxxx_xxxx;
mac_addr41=32'hxxxx_xxxx;
mac_addr42=32'hxxxx_xxxx;
mac_addr43=32'hxxxx_xxxx;
mac_addr44=32'hxxxx_xxxx;
mac_fc_addr0=32'hxxxx_xxxx;
mac_fc_addr1=32'hxxxx_xxxx;
mac_fc_addr2=32'hxxxx_xxxx;
mac_add_filt0=32'hxxxx_xxxx;
mac_add_filt1=32'hxxxx_xxxx;
mac_add_filt2=32'hxxxx_xxxx;
mac_add_filt12_mask=32'hxxxx_xxxx;
mac_add_filt00_mask=32'hxxxx_xxxx;
mac_hash_tbl0=32'hxxxx_xxxx;
mac_hash_tbl1=32'hxxxx_xxxx;
mac_hash_tbl2=32'hxxxx_xxxx;
mac_hash_tbl3=32'hxxxx_xxxx;
mac_hash_tbl4=32'hxxxx_xxxx;
mac_hash_tbl5=32'hxxxx_xxxx;
mac_hash_tbl6=32'hxxxx_xxxx;
mac_hash_tbl7=32'hxxxx_xxxx;
mac_hash_tbl8=32'hxxxx_xxxx;
mac_hash_tbl9=32'hxxxx_xxxx;
mac_hash_tbl10=32'hxxxx_xxxx;
mac_hash_tbl11=32'hxxxx_xxxx;
mac_hash_tbl12=32'hxxxx_xxxx;
mac_hash_tbl13=32'hxxxx_xxxx;
mac_hash_tbl14=32'hxxxx_xxxx;
mac_hash_tbl15=32'hxxxx_xxxx;
bmac_col_cnt=32'hxxxx_xxxx;
bmac_oa_col_cnt=32'hxxxx_xxxx;
bmac_ex_col_cnt=32'hxxxx_xxxx;
bmac_lt_col_cnt=32'hxxxx_xxxx;
mac_def_timer=32'hxxxx_xxxx;
bmac_pk_att_cnt=32'h0000_0000;
brxmac_frm_cnt=32'hxxxx_xxxx;
mac_len_er_cnt=32'hxxxx_xxxx;
bmac_al_er_cnt=32'hxxxx_xxxx;
bmac_crc_er_cnt=32'hxxxx_xxxx;
bmac_cd_vio_cnt=32'hxxxx_xxxx;
mac_rnd_seed=32'hxxxx_xxxx;
bmac_sm_reg=32'h0000_0000;
bmac_altad_cmpen=32'h0000_0000;
bmac_host_inf0=32'h0000_0000;
bmac_host_inf1=32'h0000_0000;
bmac_host_inf2=32'h0000_0000;
bmac_host_inf3=32'h0000_0000;
bmac_host_inf4=32'h0000_0000;
bmac_host_inf5=32'h0000_0000;
bmac_host_inf6=32'h0000_0000;
bmac_host_inf7=32'h0000_0000;
btxmac_byte_cnt=32'hxxxx_xxxx;
btxmac_frm_cnt=32'hxxxx_xxxx;
brxmac_byte_cnt=32'hxxxx_xxxx;
task put_fdata(integer mport, bit [47:0] data) {
task get_fdata(integer mport, var bit[47:0] data) {
task get_data (bit [32:0] addr, var bit [31:0] data,
var bit [31:0] data_mask, var bit data_valid) {
data_mask = 32'hffff_ffff;
data_mask= BTxMAC_SW_RST_MASK;
data_mask=BRxMAC_SW_RST_MASK;
data_mask = MAC_SEND_PAUSE_MASK;
data_mask = BTxMAC_STATUS_MASK;
data_mask = BRxMAC_STATUS_MASK;
data_mask = BMAC_CTRL_STAT_MASK;
data_mask = BTxMAC_STAT_MSK_MASK;
data_mask = BRxMAC_STAT_MSK_MASK;
data_mask =BMAC_C_S_MSK_MASK;
data_mask=TxMAC_CONFIG_MASK;
data_mask =RxMAC_CONFIG_MASK;
data_mask = MAC_CTRL_CONFIG_MASK;
data_mask = MAC_XIF_CONFIG_MASK;
data_mask = MAC_IPG0_MASK;
data_mask = MAC_IPG1_MASK;
data_mask = MAC_IPG2_MASK;
data_mask = MAC_SLOT_TIME_MASK;
data_mask = BMAC_MIN_MASK;
data_mask = BMAC_MAX_MASK;
data_mask = MAC_PA_SIZE_MASK;
data_mask = MAC_JAM_SIZE_MASK;
data_mask = MAC_ATTMPT_LMT_MASK;
data_mask = MAC_CTRL_TYPE_MASK;
data_mask = BMAC_ADDR0_MASK;
data_mask = BMAC_ADDR1_MASK;
data_mask = BMAC_ADDR2_MASK;
data_mask = MAC_ADDR3_MASK;
data_mask= MAC_ADDR4_MASK;
data_mask = MAC_ADDR5_MASK;
data_mask = MAC_ADDR6_MASK;
data_mask = MAC_ADDR7_MASK;
data_mask = MAC_ADDR8_MASK;
data_mask = MAC_ADDR9_MASK;
data_mask = MAC_ADDR10_MASK;
data_mask = MAC_ADDR11_MASK;
data_mask = MAC_ADDR12_MASK;
data_mask = MAC_ADDR13_MASK;
data_mask = MAC_ADDR14_MASK;
data_mask = MAC_ADDR15_MASK;
data_mask = MAC_ADDR16_MASK;
data_mask = MAC_ADDR17_MASK;
data_mask= MAC_ADDR18_MASK;
data_mask = MAC_ADDR19_MASK;
data_mask = MAC_ADDR20_MASK;
data_mask = MAC_ADDR21_MASK;
data_mask = MAC_ADDR22_MASK;
data_mask = MAC_ADDR23_MASK;
data_mask = MAC_ADDR24_MASK;
data_mask = MAC_ADDR25_MASK;
data_mask= MAC_ADDR26_MASK;
data_mask = MAC_ADDR27_MASK;
data_mask = MAC_ADDR28_MASK;
data_mask = MAC_ADDR29_MASK;
data_mask= MAC_ADDR30_MASK;
data_mask = MAC_ADDR31_MASK;
data_mask = MAC_ADDR32_MASK;
data_mask = MAC_ADDR33_MASK;
data_mask = MAC_ADDR34_MASK;
data_mask = MAC_ADDR35_MASK;
data_mask = MAC_ADDR36_MASK;
data_mask = MAC_ADDR37_MASK;
data_mask = MAC_ADDR38_MASK;
data_mask = MAC_ADDR39_MASK;
data_mask = MAC_ADDR40_MASK;
data_mask = MAC_ADDR41_MASK;
data_mask = MAC_ADDR42_MASK;
data_mask = MAC_ADDR43_MASK;
data_mask = MAC_ADDR44_MASK;
data_mask = MAC_FC_ADDR0_MASK;
data_mask = MAC_FC_ADDR1_MASK;
data_mask = MAC_FC_ADDR2_MASK;
data_mask = MAC_ADD_FILT0_MASK;
data_mask = MAC_ADD_FILT1_MASK;
data_mask = MAC_ADD_FILT2_MASK;
data = mac_add_filt12_mask;
data_mask = MAC_ADD_FILT12_MASK_MASK;
data = mac_add_filt00_mask;
data_mask = MAC_ADD_FILT00_MASK_MASK;
data_mask = MAC_HASH_TBL0_MASK;
data_mask = MAC_HASH_TBL1_MASK;
data_mask = MAC_HASH_TBL2_MASK;
data_mask = MAC_HASH_TBL3_MASK;
data_mask = MAC_HASH_TBL4_MASK;
data_mask = MAC_HASH_TBL5_MASK;
data_mask = MAC_HASH_TBL6_MASK;
data_mask = MAC_HASH_TBL7_MASK;
data_mask = MAC_HASH_TBL8_MASK;
data_mask = MAC_HASH_TBL9_MASK;
data_mask = MAC_HASH_TBL10_MASK;
data_mask =MAC_HASH_TBL11_MASK;
data_mask = MAC_HASH_TBL12_MASK;
data_mask = MAC_HASH_TBL13_MASK;
data_mask = MAC_HASH_TBL14_MASK;
data_mask = MAC_HASH_TBL15_MASK;
data_mask = BMAC_COL_CNT_MASK;
data_mask = BMAC_OA_COL_CNT_MASK;
data_mask = BMAC_EX_COL_CNT_MASK;
data_mask = BMAC_LT_COL_CNT_MASK;
data_mask = MAC_DEF_TIMER_MASK;
data_mask= BMAC_PK_ATT_CNT_MASK;
data_mask = BRxMAC_FRM_CNT_MASK;
data_mask = MAC_LEN_ER_CNT_MASK;
data_mask = BMAC_AL_ER_CNT_MASK;
data_mask= BMAC_CRC_ER_CNT_MASK;
data_mask = BMAC_CD_VIO_CNT_MASK;
data_mask = MAC_RND_SEED_MASK;
data_mask = BMAC_SM_REG_MASK;
data_mask = BMAC_ALTAD_CMPEN_MASK;
data_mask = BMAC_HOST_INFO0_MASK;
data_mask = BMAC_HOST_INFO1_MASK;
data_mask = BMAC_HOST_INFO2_MASK;
data_mask = BMAC_HOST_INFO3_MASK;
data_mask = BMAC_HOST_INFO4_MASK;
data_mask = BMAC_HOST_INFO5_MASK;
data_mask = BMAC_HOST_INFO6_MASK;
data_mask = BMAC_HOST_INFO7_MASK;
data_mask = BTxMAC_BYTE_CNT_MASK;
data_mask = BTxMAC_BYTE_CNT_MASK;
data_mask = BRxMAC_BYTE_CNT_MASK;
task put_data (bit [32:0] addr, bit [31:0] data)
BTxMAC_SW_RST :btxmac_sw_rst = data;
BRxMAC_SW_RST :brxmac_sw_rst = data;
MAC_SEND_PAUSE :mac_send_pause = data;
BTxMAC_STATUS :btxmac_status = data;
BRxMAC_STATUS :brxmac_status = data;
BMAC_CTRL_STAT :bmac_ctrl_stat = data;
BTxMAC_STAT_MSK :btxmac_stat_msk = data;
BRxMAC_STAT_MSK :brxmac_stat_msk = data;
BMAC_C_S_MSK :bmac_c_s_msk = data;
TxMAC_CONFIG :txmac_config = data;
RxMAC_CONFIG :rxmac_config = data;
MAC_CTRL_CONFIG :mac_ctrl_config = data;
MAC_XIF_CONFIG :mac_xif_config = data;
MAC_IPG0 :mac_ipg0 = data;
MAC_IPG1 :mac_ipg1 = data;
MAC_IPG2 :mac_ipg2 = data;
MAC_SLOT_TIME :mac_slot_time = data;
BMAC_MIN :bmac_min = data;
BMAC_MAX :bmac_max = data;
MAC_PA_SIZE :mac_pa_size = data;
MAC_JAM_SIZE :mac_jam_size = data;
MAC_ATTMPT_LMT :mac_attmpt_lmt = data;
MAC_CTRL_TYPE :mac_ctrl_type = data;
BMAC_ADDR0 :bmac_addr0 = data;
BMAC_ADDR1 :bmac_addr1 = data;
BMAC_ADDR2 :bmac_addr2 = data;
MAC_ADDR3 :mac_addr3 = data;
MAC_ADDR4 :mac_addr4 = data;
MAC_ADDR5 :mac_addr5 = data;
MAC_ADDR6 :mac_addr6 = data;
MAC_ADDR7 :mac_addr7 = data;
MAC_ADDR8 :mac_addr8 = data;
MAC_ADDR9 :mac_addr9 = data;
MAC_ADDR10 :mac_addr10 = data;
MAC_ADDR11 :mac_addr11 = data;
MAC_ADDR12 :mac_addr12 = data;
MAC_ADDR13 :mac_addr13 = data;
MAC_ADDR14 :mac_addr14 = data;
MAC_ADDR15 :mac_addr15 = data;
MAC_ADDR16 :mac_addr16 = data;
MAC_ADDR17 :mac_addr17 = data;
MAC_ADDR18 :mac_addr18 = data;
MAC_ADDR19 :mac_addr19 = data;
MAC_ADDR20 :mac_addr20 = data;
MAC_ADDR21 :mac_addr21 = data;
MAC_ADDR22 :mac_addr22 = data;
MAC_ADDR23 :mac_addr23 = data;
MAC_ADDR24 :mac_addr24 = data;
MAC_ADDR25 :mac_addr25 = data;
MAC_ADDR26 :mac_addr26 = data;
MAC_ADDR27 :mac_addr27 = data;
MAC_ADDR28 :mac_addr28 = data;
MAC_ADDR29 :mac_addr29 = data;
MAC_ADDR30 :mac_addr30 = data;
MAC_ADDR31 :mac_addr31 = data;
MAC_ADDR32 :mac_addr32 = data;
MAC_ADDR33 :mac_addr33 = data;
MAC_ADDR34 :mac_addr34 = data;
MAC_ADDR35 :mac_addr35 = data;
MAC_ADDR36 :mac_addr36 = data;
MAC_ADDR37 :mac_addr37 = data;
MAC_ADDR38 :mac_addr38 = data;
MAC_ADDR39 :mac_addr39 = data;
MAC_ADDR40 :mac_addr40 = data;
MAC_ADDR41 :mac_addr41 = data;
MAC_ADDR42 :mac_addr42 = data;
MAC_ADDR43 :mac_addr43 = data;
MAC_ADDR44 :mac_addr44 = data;
MAC_FC_ADDR0 :mac_fc_addr0 = data;
MAC_FC_ADDR1 :mac_fc_addr1 = data;
MAC_FC_ADDR2 :mac_fc_addr2 = data;
MAC_ADD_FILT0 :mac_add_filt0 = data;
MAC_ADD_FILT1 :mac_add_filt1 = data;
MAC_ADD_FILT2 :mac_add_filt2 = data;
MAC_ADD_FILT12_MASK :mac_add_filt12_mask = data;
MAC_ADD_FILT00_MASK :mac_add_filt00_mask = data;
MAC_HASH_TBL0 :mac_hash_tbl0 = data;
MAC_HASH_TBL1 :mac_hash_tbl1 = data;
MAC_HASH_TBL2 :mac_hash_tbl2 = data;
MAC_HASH_TBL3 :mac_hash_tbl3 = data;
MAC_HASH_TBL4 :mac_hash_tbl4 = data;
MAC_HASH_TBL5 :mac_hash_tbl5 = data;
MAC_HASH_TBL6 :mac_hash_tbl6 = data;
MAC_HASH_TBL7 :mac_hash_tbl7 = data;
MAC_HASH_TBL8 :mac_hash_tbl8 = data;
MAC_HASH_TBL9 :mac_hash_tbl9 = data;
MAC_HASH_TBL10 :mac_hash_tbl10 = data;
MAC_HASH_TBL11 :mac_hash_tbl11 = data;
MAC_HASH_TBL12 :mac_hash_tbl12 = data;
MAC_HASH_TBL13 :mac_hash_tbl13 = data;
MAC_HASH_TBL14 :mac_hash_tbl14 = data;
MAC_HASH_TBL15 :mac_hash_tbl15 = data;
BMAC_COL_CNT :bmac_col_cnt = data;
BMAC_OA_COL_CNT :bmac_oa_col_cnt = data;
BMAC_EX_COL_CNT :bmac_ex_col_cnt = data;
BMAC_LT_COL_CNT :bmac_lt_col_cnt = data;
MAC_DEF_TIMER :mac_def_timer = data;
BMAC_PK_ATT_CNT :bmac_pk_att_cnt = data;
BRxMAC_FRM_CNT :brxmac_frm_cnt = data;
MAC_LEN_ER_CNT :mac_len_er_cnt = data;
BMAC_AL_ER_CNT :bmac_al_er_cnt = data;
BMAC_CRC_ER_CNT :bmac_crc_er_cnt = data;
BMAC_CD_VIO_CNT :bmac_cd_vio_cnt = data;
MAC_RND_SEED :mac_rnd_seed = data;
BMAC_SM_REG :bmac_sm_reg = data;
BMAC_ALTAD_CMPEN :bmac_altad_cmpen = data;
BMAC_HOST_INFO :bmac_host_inf0 = data;
BMAC_HOST_INF1 :bmac_host_inf1 = data;
BMAC_HOST_INF2 :bmac_host_inf2 = data;
BMAC_HOST_INF3 :bmac_host_inf3 = data;
BMAC_HOST_INF4 :bmac_host_inf4 = data;
BMAC_HOST_INF5 :bmac_host_inf5 = data;
BMAC_HOST_INF6 :bmac_host_inf6 = data;
BMAC_HOST_INF7 :bmac_host_inf7 = data;
BTxMAC_BYTE_CNT :btxmac_byte_cnt = data;
BTxMAC_FRM_CNT :btxmac_frm_cnt = data;
BRxMAC_BYTE_CNT :brxmac_byte_cnt = data;